After the last week’s FAQ, some of you were asking about MIDI input and output and how to attach other peripherals to PICO DSP and control their parameters. So, last week we designed an adaptor board to demonstrate how to connect various user interface elements to the main PCB.
This board is exactly the same dimensions as the main board and, by soldering stackable headers (included with every PICO DSP), simply sits on top of the main board, so you can still access any unused GPIOs on your breadboard. The board includes MIDI input and output via a Type A, TRS connectors.
The MIDI Tx and Rx signals are routed to IO13 and IO14 on the ESP32, which can be assigned to a hardware serial port in firmware. Two potentiometers are routed to ADC1 and two push buttons, for changing application parameters.
The PCB is a two-layer board, with most of the signal routing on the top copper layer:
At the end of the campaign, we will publish the board files and schematics in our GitHub repo, while the adapter will be available on the Ohmic website once PICO DSP is ready to ship. The template for this adapter could also be used to develop other I/O connections, for example an I2C display or other peripheral instead of the MIDI inputs and outputs.
The PICO DSP Eurorack Module will now ship with a default firmware application that includes the OTA update functionality, as seen in the campaign video. It will be supported by a choice of several different firmware applications. For instance, if you are new to programming and simply want to use the module out of the box without writing any code, you can simply select the new firmware from our website and update the module using a web browser. Firmware files will be available when the module is ready to ship.
Q: Pico DSP seems like a perfect host for Faust. Faust support would make a huge collection of DSP programs available on Pico DSP. Is it possible?
A: You can program PICO DSP in C or C++ using Faust, other C++ code, C-based code such as the Espressif ADF framework, and also Micropython. If you have a look in our Github repository you will see there are a number of examples using Faust for Arduino IDE and VS Code with PlatformIO for ESP-IDF and Arduino ESP32 frameworks. During development, we discovered that some of the functionality of the codec was missing from the various libraries available. So we added a few additional functions to the WM8978 library used by the Faust compiler. You can now change the sample rate of the codec to match the sample rate of the Faust DSP code, for instance, or put the codec into standby mode for power saving.
Q: Have you given thought to ways of adding control inputs to Pico DSP?
A: Regarding control inputs, there are a few different ways to interface with the main development board. For example, you can connect potentiometers or sensors to the ADC using the GPIO header, while for wireless UI options OSC over WiFI, or MIDI over BLE are all possible.
Finally for this update, thanks so much to everyone who has backed the campaign so far and/or shared this project! If you know someone who might be interested in it please send them a link and keep an ear out for our next update soon!