Close

Revised CV module

A project log for Modular MIDI

Using a CAN bus to distribute MIDI messages in a modular synthesizer

davidDavid 05/19/2023 at 15:020 Comments

Most changes on the control voltage module were the same as in previous modules. It gets an SMD USB connector, EEPROM, power rail protection, a bootloader button, and a latching bus connector. But the remaining changes are more drastic.

The biggest change in this module is switching the MCU for an RP2040. That's not an easy choice at this point in the project, as I already have written a lot of code. But the SAMD21 already stutters, the code could definitively be optimized, but it would probably limit the features that could be added. I have been trying to keep the low-level drivers separate from the higher-level programs like the menu system and the code generating the output values, so I suppose it will test the quality of my code.

New core PCB
The new core PCB with the RP2040

The pico is more popular, so it may make a more appealing open-source project. Plus it has better support in libraries like TinyUSB. People have been implementing USB MIDI host support for the RP2040 in that library, so that's less work I would need to do on the USB module.

I also added a quad 16-bit DAC to replace the filtered PWM used in the current version of this module. This was primarily to reduce the noise on the outputs while providing better resolution. A side-effect of the change is that the outputs can be a lot faster, so the DAC could potentially provide audio-rate signals to all outputs. Seeing how far it can be pushed will be interesting.

Discussions