The sample code from XMOS talks to the dfu mode on my Focusrite Forte after changing the usb vendor and product ids to match. The Forte uses an older XMOS chip. I wanted to know about linux support before buying the Tone Board, so can't test further. It would be useful if
@Ben1987 could test and confirm for linux and Mac users as it seems I'm not the only one.
The sample code is in the 'USB audio 2.0 software' from
XMOS (free account needed). After unzipping, go to sc_usb_audio/module_dfu/host/xmos_dfu_osx where you'll find xmosdfu.cpp as referred to in
this thread which explains how to compile it on linux. It looks for the xmos vendor id and the product ids of their evaluation boards, so unless the Tone Board reuses those you'll need to change XMOS_VID and the pidList[] accordingly before compiling. There's no command line help, so refer to the source for usage. Note that dfu takes a device centric view of things, so 'upload' transfers existing firmware from the board to the computer, and 'download' loads new firmware onto the board. I tried fetching existing firmware from the Forte to local file forte-test.dfu:
Code:
$ sudo ./xmosdfu --upload forte-test.dfu
VID = 0x1d6b, PID = 0x3, BCDDevice: 0x415
VID = 0x1235, PID = 0x8010, BCDDevice: 0x1f6
XMOS DFU application started - Interface 3 claimed
Detaching device from application mode.
Waiting for device to restart and enter DFU mode...
VID = 0x1235, PID = 0x8010, BCDDevice: 0x1f6
... DFU firmware upgrade device opened
... Uploading image (forte-test.dfu) from device
... Returning device to application mode
I ended up with a small binary file, and a Forte that's not broken.