Audio Effects DSP Board

Started by markseel, June 13, 2016, 11:53:46 AM

Previous topic - Next topic


There are plenty of those three dollar nRF51822 boards available, the one I linked above doesn't seem to have integrated antenna. Wonder which of those is the best design. Some other ones have the antenna on the PCB but not so many I/O's, probably just some serial interface.

This one comes from Hong Kong meaning you will get it faster, and it has plenty of pins and the antenna:

This is cheaper but has only few IO pins.


Right now I'm thinking all I want is a BLE-MIDI to/from MIDI-UART bridge.  So just a couple of I/O's for UART TX/RX would be enough ... I think.

Then I could use the FlexFX UART TX/RX MIDI interface as-is and the BLE transport would be transparent - FlexFX wouldn't know if it's a wired or wireless MIDI interface.


This one also from HK is smaller and apparently copy of another board:


Orig with documentation:


Hey all - it's been a while since I posted an update, and also I'd like some input ...

The board (I have three prototypes) works great so far and other than an error on the 1.0V switching regulator resistor divider (that sets the output voltage).  Simple enough to fix with my rework station so I'm calling the FlexFX board done and ready for a small production run (perhaps via KickStarter).

I want to supply a mother board of sorts that the FlexFX plugs into.  This board provides analog input and output and a guitar interface (1/4" jacks), three rotary encoders (with push buttons) for parameter control, and a foot-switch hookup for stomp-box usage.  It also provides one of the two below:

1) A 5 digit seven-segment LED display to show preset/memory selection, parameter selection, and parameter values.
2) A Bluetooth LE module that exposes a BLE service that indicates preset/memory selection, parameter selection, and parameter values.  Would then profile a simple app for iPhone, and maybe other platforms.

I'm also designing a milled aluminum case to be offered as incentive during the KickStarter campaign.  Of course #1 and #2 have slightly different case requirements.

I can only do one of these for now.  #1 is pretty standard but with just 5 numerical digits the navigation of parameters and setting values might be a bit cumbersome.  #2 requires that an iPhone, Android phone, or computer (maybe even a browser?) is used as the display device but this approach has many more possibilities then the LED display.



How about an OLED display? or a 16x4 LCD module? You can display more information using it than a 7segment LED.


Since you're asking, I'd prefer to keep it simple and focus on the foundation. You'll probably be busy enough as it is  :icon_wink:

That said, if a 5 segment 7 digit is a possible, a serial 16x4 lcd should be comparable in complexity but add more flexibility?


The way I see it, the options presented are not really at the same level, unless in the BT case you would be able to also relatively easily use an external display (perhaps with an additional blue pill/arduino to drive a display of choice). The BT solution sounds really interesting, but I'm not sure how practical it is to always be required to have a secondary device in use to get any interaction feedback. Conceptually it seems to be quite restrictive at first thought.



I have a number of axoloti boards.  STM based audio device with a great programming environment.
Check it out.  If a similar environment is possible for this board, it would be very powerful.
I am very interested in this board, and would probably purchase more than one when available.
I have an xmos startkit with audio board and have tried a couple things with it.
The only thing I would request is additional ram for longer delay/looping capability.  Is this difficult?
This looks to be a great dsp board when it becomes available, thanks.


Hi skraninger.  I'm really glad you're interested in the board  :D

I've seen the Axoloti software and it looks cool.  If *anyone* ever wanted to do something like that for this board I'd be more than happy to provide the needed XMOS firmware to make that work.

An update for this project; I'm working on the MIDI data flow and firmware upgrade support (via MIDI) so folks can build their own effects and upload using USB/MIDI.  An example project doing cab simulation using IR data is almost done.  Stay tuned - a Kick Starter campaign will start soon.

Digital Larry

It's not been widely advertised but SparkFun has come up with a Teensy-based effects pedal for which someone developed a graphical UI to create DSP code.  See:

I created a Java program that provides a GUI for FV-1 code.  I wrote all the GUI code and it was a massive undertaking.  However, the Sparkfun tool leverages the "node-red" networking application GUI, which is open source.

I haven't looked closely at the Sparkfun thing but I think it generates C code which you have to put a little extra effort into in order for it to work with whatever chip/compiler you are using.  It's possible that some of this might translate directly to this Xmos chip (portable C code).  The main reason I bring this up is that if *someone* wants to write a tool specifically for this Xmos platform I would really suggest leveraging something like node-red to start with so you can focus on the platform specific stuff.
Digital Larry
Want to quickly design your own effects patches for the Spin FV-1 DSP chip?


Sorry - I'm confused.  :)  What did I miss?


it's a bot. Try searching in google for a piece of the text. I just reported it.

Thanks to the admins for getting rid of the bot :)
Software Developer @


Haven't posted an update in a while so here's one ...

The board on the left is the FlexFX board that supports USB audio class 2.0, USB MIDI, multi-channel I2S, DSP processing, and I2C control of peripherals.

The board on the right is a support/test/example board of sorts that it plugs into that provides the audio ADC/DAC, guitar input, line out, EEPROM storage, 4 channel ADC for sensing pots, 3 pots, and two stereo jacks.

The DSP board can be programmed (uses an XMOS XEF232) by using the XMOS compiler and my FlexFX framework that provides all of the USB/I2S/MIDI/I2C functions - so you just add your DSP algorithms, your MIDI handling code for handling data loading and control, and your I2C control code for sensing pots and  controlling displays.

I have a sample application (free to use and serves as a programming example) for stereo IR processing (e.g. speaker cab sim) which is up and running -- will update GitHub with that soon.

I can load IR's (in .wav file format) over USB using a Python script - it takes less than one second to load an IR.

For test I ran my overdrive/distortion effects pedal into this board with the board sending the simulated speaker audio (mixed with USB audio for fun) to a pair of Presonus powered monitors.  Sounds great!

BTW I bought a bunch of IR's for Celestion speakers directly from Celestion - very reasonable price!

Ready to KickStart this now  :icon_biggrin:



Nice! I am definitely in for one!
Software Developer @


Excellent! I'll be interested in this kickstart.

Just to be clear, does your framework run under Windows and load the complied code via USB into the FX board? In the photo there is another module plugged into the USB port on the FX board. I'm guessing that is not part of the final unit?




I see that the the additional board is the JTAG board (£14.75 from Farnell in UK). So to rephrase my question, is this necessary for putting the code into the FX board or can it be programmed directly via the USB?




Good question ...

1) Source code is compiled and linked using the XMOS toolchain (free download).
2) The XMOS toolchain can burn the firmware image to the XEF232 internal flash via the JTAG board.
3) The JTAG board has a 2x10 0.10" header while the FlexFX board has a 2x5 0.05" header.  I have an adapter board (as seen) that will ship (ribbon cable included) with the FlexFX board.
4) The final board will support firmware upgrades via USB.  This isn't done yet - the current board has a design flaw that prevents this.  But the next board rev should fix it.


Thanks for the clarification Mark.

I'm looking forward to the kickstart.