Page 1 of 1

FlexFX XMOS tiny USB/DSP Board

Posted: Sat Sep 15, 2018 1:30 am
by markseel
Here's a 1.0" x 1.4" XMOS board with a XUF216 on it.



https://github.com/flexfx/flexfx.github.io

Contains the CPU, oscillator, 1.0V regulator, 3.3V regulator, reset supervisor, and USB connector.

Can be self powered or bus powered. The XTAG/JTAG signals are exposed in case you want to program your own custom firmware for it. Otherwise you can use the free FlexFX dev kit on GitHub to create custom audio effect applications and use the USB for firmware downloading.

Has pins for ground, V5, Vbus, five 1-bit ports on tile 0, two 4-bit ports on tile 0. Tile 1 is dedicated to DSP.

Re: FlexFX XMOS tiny USB/DSP Board

Posted: Sun Sep 16, 2018 10:23 pm
by ozel
Hi mark,
what an amazing work! I've seen this already being discussed on another forum and was waiting for the final release. Backed it instantly.
The USB-MIDI upload is awesome. Do you plan to publish your XMOS firmware, too?

I think these kind of small and universal modules is exactly what the community needs.
Maybe XMOS could jump in and give some publicity to your project?
Almost 6 years ago a nice modular XMOS concept called XDev was on kickstarter but sadly didn't get enough attention.

And don't forget to target the eurorack modular synth folks. They'll love this module.

Re: FlexFX XMOS tiny USB/DSP Board

Posted: Sun Sep 16, 2018 10:55 pm
by markseel
Thanks ozel! :-)

The low level source code has not been released and is only supplied via library (called 'xio.a'). This library handles USB enumeration, USB audio flow, USB MIDI flow, ASRC, UART, SPI, I2C, I2S/PCM/TDM, and audio sample routing to/from the DSP threads. This is custom code and took a lot of work but it also hides a lot of complexity not related to audio effects DSP development - and I wanted to make DSP easier to folks. Pretty much the only significant XMOS source code I use is a version of their USB library (libUSB) and FLASH library (libFlash). But all of the DSP algorithms and audio effects algorithms are in GitHub. The module has the XTAG/JTAG connector on it therefore any XMOS code that runs on a XUF216 or smaller and that has I/O demands that doesn't exceed the board's I/O capabilities can be ported to this board.

Re: FlexFX XMOS tiny USB/DSP Board

Posted: Mon Sep 17, 2018 12:29 am
by markseel
BTW the XUF216 pins wired to the module headers are: X0D00, X0D11, X0D35, X0D36, X0D37, X0D38, X0D39, X0D26/27/32/33, and X0D28/29/30/31. FlexFX uses the Tile0:4E and 4F ports for I2S/TDM/PCM supporting up to 8 TDM channels on all for port pins (32x32 total channels). The 1-bit ports 1A,1D,1L,1M,1N,1O,1P are used for I2S clocks (MCLK, BCLK, WCLK), I2C, UART, GPIO's, etc. The I2S bus can be master or slave.