XFM2: User Interface using an Arduino Nano
As per design, XFM and XFM2 were created as modules with no User Interface. The goal was to have the modules in a state which would allow for quick aggregation to a greater project, with the maximum flexibility and efficiency on what they do: they receive MIDI, calculate sound and deliver it.
User Interfaces can be wildly variate, from a single button or knob to a fully-fledged tactile screen. Here’s a small project which shows the principles behind creating user interfaces for XFM2.
All parameters in the module can be changed by:
-
Using the serial-over-USB interface, for instance from a computer.
-
Via MIDI Continuous Control (CC) messages (for most common parameters).
-
Via MIDI System Exclusive message (all parameters)
-
Using the External UART connections
The external UART is identical to the serial-over-USB, so any external interface could query and set the status of XFM2. Communication is very fast (500kbps) and in 8-bit, so this method is about 32x faster than MIDI sysex.
The Arduino Nano has eight analog inputs, so up to eight knobs can be used to control eight different parameters simultaneously. Using buttons, switches or external multiplexers, any number of parameters could be controlled. Here’s an example showing a single knob:
