Skip to content

frederickk/PocketMidiLink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pocket Midi

Since the Analogue's production of Pockets and Pocket accessories seems to be delayed till 2023. Here's a DIY solution to sync the built-in Nanloop ROM with your other USB/DIN Midi devices.

I prefer the Digispark given the small form factor, however, it takes a bit more hustle to get everything working. But the size and price can't be beat, epecially for a use case like this.

However, If you're looking for something a bit easier to get going with a larger form factor you can also compile this code for the Arduino Micro, Teensy platforms, or any microcontroller with ATmega32U4 chip.

📝 Caveat

I'm using MacOS 12.0.1 so the following steps and commands apply to this setup. For those on Windows and Linux, you may have to tweak in ways that I can't help with.

⚡️ Compiling and Flashing

Platform Commands
Digispark $ ./build.sh or
$ ./build.sh digispark-tiny
Arduino Pro Micro $ ./build.sh pro-micro
Teensy $ ./build.sh teensy

GB link port pinout

There are many sources to find the pinout of the Game Boy serial port, but I'm including it here too. It's worth noting that color coding of wires is often called out, but that's not the most reliable means of identifying which pin corresponds to which color. When in doubt; test, test again, connect :)

Pin Description
1 3.3V / 5V (GB/C)
2 Serial out
3 Serial in
4 Serial data
5 Serial clock
6 Ground

Digispark

Digispark wiring diagram

I've found that for uploading to the Digispark a USB hub is necessary. A simple USB-A to USB-C adapter seems to be ineffecient resulting in the following error: Run error: Device not configured has occured ...

Updating Firmware

The following may be unecessary and/or overkill, but I'm including this here for the sake of completeness. I blatantly stole the following from Koen Vervloesem (thank you Koen! 🙏), but changed some of the commands to work for my afformentioned setup.

You'll need libusb in order to make this update. I recommend using brew, because life's just easier that way.

brew install libusb

If you're squared away with libusb, move forward to getting and installing the latest version of micronucleus.

$ cd ~/downloads
$ git clone https://github.com/micronucleus/micronucleus.git
$ cd ./micronucleus/commandline
$ make
$ sudo make install

Run a test micronucleus --help to confirm you've had success. Obvviously I'm a fan of platformio, but if you're keen to use the Arduino IDE for future Digispark based projects, you might as well update that package as well.

$ cd ~/Library/Arduino15/packages/digistump/tools/micronucleus/2.0a4
$ mv ./micronucleus ./micronucleus.original
$ cp /usr/local/bin/micronucleus .

Finally you can update the firmware with the following:

$ cd ~/downloads/micronucleus
$ micronucleus --run firmware/upgrades/upgrade-t85_default.hex

Refer to the source for more details.

Arduino Pro Micro/Leonardo

Arduino Pro Micro wiring diagram

Teensy

Teensy 2 wiring diagram


References