Emil's Projects & Reviews

OpenHardware & OpenSource

Entries from January 2018.

MIDI Note Velocity for Korg Volca FM 4th January 2018

Korg Volca FM is a great little FM synthesizer which also includes a step sequencer.

Korg Volca FM Front Panel

This entry has been cut, click to read on.

OpenLog AVR board


The board is about 15×15mm in size and has all the necessary connections routed to .1" pins. The SPI on one side of the board needs to be used to program a special MIDI bootloader which after reset will listen for SysEx messages to load and program the main code running on this AVR chip. The microSD socket on the back of the PCB won't be used and it's better to mask it with tape to prevent any contacts with the components inside the Volca.

The board is small enough to fit near the MIDI In socket, where to optocoupler is located. Just four wires are needed to solder it inside: Vcc and Gnd to ground and 3.3V, Rx to the optocoupler output and Tx to the corresponding serial input of the ARM processor. The original trace between the optocoupler and the ARM processor needs to be cut.

The crystal on the OpenLog board is 16MHz which divides exactly to get the MIDI bitrate of 31250 bauds. The processor main code will intercept all the NoteOn messages "9n kk vv" and send before another Velocity message of "Bn 29 vv" followed by the unchanged NoteOn.

The insertion of this AVR processor will delay all the MIDI messages with about 1ms which is imperceptible. Also to avoid changing the global velocity before each played note first it should compare the new velocity to the previous one and ignore it if it doesn't differ more than +/-5 (velocity ranges from 0-127).

This mod will work for all of the Volca synthesizers series and also has the advantage of easy reprogram the code inside the AVR (bypassing it entirely if so needed) via SysEx messages using a free program like like MIDIOx on PC or SysEx Librarian on Mac OS.


This entry has been cut, click to read on.

One can re-encode the firmware to WAV files using the volca_fw_encode program like this:

$ volca_fw_encode -n FM -b 0 -v 109 volcafm_sys_1_0109RC.bin volcafm_sys_2_0109RC.bin

This will create the following WAV files if you want to update your firmware over the audio cable: volca_sys_1_0109RC.wav and volca_sys_2_0109RC.wav
The volca_fw_encode [v1.2] and volca_fw_decode [v1.2] programs are perfectly reversible and they produce even the WAV file exactly as the Korg's originals.


To dump or program the Volca (or recover from a brick event) connect a J-Link interface to the SwD 6 pin connector and issue the following commands in the cmd line utility (usually JLinkExe):

si swd
speed auto
device MB9BF164L
connect
-- then --
savebin fw_name.bin,0x0,0x40000
--- or ---
loadfile fw_name_1.bin 0x0
loadfile fw_name_2.bin 0x20000
10 comments. Tags: fm synthesis, midi, synthesiser, volca.

RSS Feed