Arduino MIDI interface for Keio Mini Pops Junior

SynthDIY:Drum Machine | SynthDIY:MIDI

Adding MIDI control to the drum machine Keio Mini Pops Junior (Keio is now known as Korg).

The Mini Pops Jr. has no other connections available than audio output so it's not possible to trigger sounds or sync the rhythms to an external source.

Project goals

  • Trigger the sounds with MIDI notes
  • Sync the built-in rhythm to MIDI clock
  • Make it flexible enough to be used in any old drum machine

The building blocks

MIDI input circuit

The input circuit is very basic and following the MIDI standard.
It takes the incoming serial MIDI signal and pass it thru an optocoupler before feeding it to the microprocessor.


This is the "brain" needed to run the program handling the MIDI signal.
It must take the incoming serial MIDI signal and, depending on what type of event it receives, output a voltage on one of it's pins.

The Arduino was a natural choice

  • it has hardware serial support
  • there is a MIDI library available that does all the hard work and will decode the MIDI serial signal and attach event handlers to incoming events like NoteOn? and Clock pulses
  • the output pins can be PWM modulated (variable output voltage 0-5v)
  • very quick and easy to program and upload code to

This prototype use the Arduino Micro (a tiny version of Leonardo) which has a USB connector for easy power and programming access during development and testing.
Might use a stand-alone chip for the final version but then I loose the USB connection ...we'll see.

Output circuit

There is a lowpass filter on each of the trigger outputs.
The Arduino can switch an output pin between HIGH(+5v) and LOW(0v) which is nice for sending a 5v pulse.
But Junior plays a louder sound with a higher trigger voltage -> we can have velocity on our sounds! :)
The Arduino can vary the output voltage with PWM (Pulse Width Modulation) which, very simply put, chops up the 5v DC signal by continuously turning it on/off very quick. So if the 5v signal is turned on half the time and off the other half, the result is 2.5v on the output pin.
The default PWM speed for the Arduino is 500Hz for some pins and 1000Hz for some(they use different internal timers) which is not good for us because the result is a very audible square wave from the PWM signal which mixes with the drum sound.
The fix for this is to put a lowpass filter on the output which will smothen out the square wave to a fairly nice DC voltage.
We also need to increase the PWM speed on the Arduino; the lower the speed the harder it is to remove the square wave.

Power supply

We need to take the 15v from Junior down to a more suitable 5v for the Arduino.

Preparing the Mini Pops Junior

Locating trigger points for the individual drum sounds

The Mini Pops Junior has 5 drum sounds, each with its own circuit for generating the sound.
The nice people at Korg has even marked the pcb with the letters for the sound so locating suitable trigger points was easy.
I took a 4*AA battery-pack and connected the black cable(-) to earth on the pcb and poked around with the red(+) cable on solder joints likely to be good trigger points.

  • TIP: don't poke around in Junior witha cable connected directly to an output pin on the Arduino; Junior runs on 15v and your Arduino on 5v so if you touch the wrong spot on the pcb you kill the output pin.
  • TIP: since it has unisolated mains voltage inside as well you should be *very careful* if you poke around with the power plugged in!

Locate connection point for sync signal

Without the schematics and with my limited electronics knowlegde this was a bit harder.
I've located the oscillator on the pcb but it's not clear to me where the output from it is, and experimenting means desoldering components and cutting traces so it's a bit more hassel. be continued...

Programming the Arduino

Get the MIDI library


#include <MIDI.h>

#define LED_ACT  13   // LED pin on Arduino board
#define VC_1  3
#define VC_2  5
#define VC_3  6
#define VC_4  10
#define VC_5  11

IC sockets
Type Needed
No data

Rate this project

Rating: 0.0/5 (0 votes cast)

Project notes

No data

Who's building this

No data