LSDJ-MC is a design from firestARTer that makes LittleSoundDJ, a Game Boy music software, MIDI capable. More information about it can be found on the author’s website.

This webpage describes the PCB I designed (”LSDJ-MC2+”) based on the author’s schematic (with some minor differences), and provides an assembly guide.


This PCB is licensed under a Creative Commons BY-NC-SA license.


The information and methods described herein are provided “AS-IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. Use the concepts, examples and information at your own risk. There may be errors and inaccuracies, that could be damaging to your devices. Proceed with caution, and although it is highly unlikely that accidents will happen because of following advice or procedures described in this document, the author does not take any responsibility for any damage claimed to be caused by doing so.

Design goals

My design goals were to implement a fully compatible PCB for LSDJ-MC2, with an emphasis on compactness and reduced costs.

  • The final PCB is 5x5 cm
  • The PCB is 99.9% compatible with the original software (it just needs a change in the PIC configuration option)
  • The PCB can accomdate parts from various vendors for easier procurement
  • The PCB is 100% compliant with the original documentation (save for a simple renumbering of the LEDs)

I have a limited number of extra PCBs that are up for sale, drop me a line if interested :)


Here’s the schematic of the current design:


Schematic explanation

This schematic is essentially a clone of the original one, with a few minor differences:

  • Pullup resistors have been removed (weak pullups are enabled directly in PIC firmware
  • The PIC’s MCLR is tied to VCC in firmware, removing the need for the original coupling RC network
  • The bias network for the 6N138 optocoupler has been modified to ensure better timings (sharp signal edges)
  • The coupling capacitors have been removed or have had their values changed where necessary to lower part count and build cost
  • An actual DC jack is used (center-positive)
  • The option to power the circuit from the Game Boy itself is provided (although not recommended)


Here’s a compact two-sided through-hole layout that fits on 50 x 50 mm PCB (a completed PCB is also shown):

assembled pcb

The partlist is here.

Assembly guide available here.


This layout is fairly straightforward. Routing has been done by hand, with a focus on compactedness, simplicity and “user-friendliness” (easy to assemble by hand). It uses a ground plane for all the usual reasons (simplified routing, better shielding against noise and better coherence of the ground level across the whole PCB). The DIN-5 layout can accommodate most available DIN-5 plugs, likewise the DC jack layout can be used with 2 or 3-tab PCB jacks.

Note: I recommend to put the PIC in a socket, for all the obvious reasons (not exposing it to soldering temperature or ESD, and easy replacement).


Pic firmware

The PIC firmware is almost the exact same as the author’s original with only two modifications:

  1. The weak pullups are enabled on Port B
  2. MCLR is internally tied to VCC

Because there is no other change, the original documentation applies to this device with only one caveat: the LEDs are numbered from 1 instead of 2, so the original documentation’s “LED D2” is LED1 on the PCB, and so on.

Firmware files

The provided file can be programmed on a PIC16F628A, the only changes from the original are mentioned above. This is version V1.4.