Casio PX410R MIDI Out Hack

Hello and Merry Christmas to everyone!

Having been playing with my Roland Integra 7, I decided that having a keyboard which could interface with it would be troublesome as I don’t have an expensive Yamaha MOTIF XF, Roland Fantom or anything which has MIDI Out.

Yes I do have a JX305 which is out on loan, however it only has 61 keys. Though I also am a happy owner of the Casio PX410R/400R. Believe it or not, this thing has 4MB sampling capability, though that’s for another review.

The point of this post is to show you how to add MIDI Out to this keyboard. The PX410R has only USB MIDI, which allows it connect to a host PC, but you can’t connect it directly to a device like the Integra 7 as neither is capable of USB OTG.

First, I opened up the keyboard and located the main PCB.

WP_20161211_001.jpg

You’ll find that there is a MIDI communications channel between the two main ICs there

For reference, this is the underside of the board.

WP_20161211_002.jpg

After probing around and toggling the sustain pedal, I was able to find a signal which resembled a MIDI signal. However, it’s at 215.5kBaud.

WP_20161211_004.jpg

There is no ‘simple’ way to convert a 215.5kbaud signal to 31250 baud required for MIDI. So I took upon reprogramming an ATMEGA32P (same as arduino) to do the conversion. With the internal RC clock running at 8MHz, there is no nice divisor which allows a 215.5kbaud UART.

Instead, the UART is used for the bootloader and the 31250 baud, while INT0 is used for a soft UART. You’ll be able to see that the timings to achieve the 215.5kbaud is done via assembler ‘nops’. We really do need to count cycles in this application.

Source code here: https://app.assembla.com/spaces/pic-source/git/source/master/AVR/UARTRateConverter

Solder up the necessary parts (including the reset pullup)WP_20161213_004.jpg

 

 

 

 

 

 

 

 

You also need to solder up the (right to left) +5V, GND and the MIDI Out at 215.5kbaud

WP_20161213_005.jpg

Wire up a socket with the 220 ohm resistor. Note that the additional connection on Pin1 is the RXD required for the bootloader, to allow field upgrads of the ATMEGA32P if required in the future.

WP_20161213_009.jpg

Drill a hole and mount the connector.

WP_20161213_010.jpg

WP_20161213_011.jpg

And there you have it! MIDI Out enabled Casio PX410R. This modification might work on other Casio models which don’t have a MIDI Out port.

Either way, my Casio PX410R is happily playing with my Integra 7 via MIDI!

 

 

 

Advertisements