Close

Revised DIN module

A project log for Modular MIDI

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

davidDavid 04/06/2023 at 10:110 Comments

I started this round of revisions with the simplest module: the DIN module. 

All this time the DIN output has not been working, because it has been inverted. It happened because the first version of this module used another MCU with the ability to invert any pin function (and I misread the datasheet for the current one). It should now be fixed by adding another inverter stage.

I have also complained about the lack of EEPROM in this MCU. But the only thing I can think of that needs changing in this module is the MIDI group, so I added a DIP switch instead. This DIP switch is piano style for side access since the faceplate of this module can't be removed.

Buttons to enter bootloader mode have been added, one just resets the module, and the other selects prog mode (if it is held during reset). This should make uploading firmware easier. Although the SAM-BA bootloader program has too many steps in my opinion, maybe I'll try to make it easier sometime.

I added some protection on the 5V power to prevent the USB connection from powering the rest of the rack. I had some issues with that on the USB module, but it can occur when updating the firmware over USB on this module. This is solved with a PMOS transistor which should result in a lower voltage drop than a diode would have.

Power protection of the 5V rail, VBUS is from the USB connector

I considered doing hardware control of the activity LEDs by using peak detectors on the UART lines. But the PCB is already tight, so I could not fit the extra components. It isn't necessary anyways, the CPU load on this module is pretty low.

The rest of the changes are component and silkscreen changes. The USB connector has been switched to an SMD version with THT on the shield because the THT version I used before was not within the fab's capabilities, so I had to adjust it. Room has been made for a latching bus connector which may prolong how long it lasts. The SWD programming header is now horizontal so it can be accessed from the side. And I have added reminders for which pins are which.

Discussions