Casio USB-MIDI to Class-Compliant USB-MIDI Converter

Status
Not open for further replies.

jdmcs

New member
I recently purchased a second-hand Casio WK-110 from Goodwill. I did some research beforehand, and thought the USB was MIDI-compatible. However, when I plugged the keyboard into my Mac and launched Audio MIDI Setup, the keyboard didn't show up.

A few quick web searches later, and I discover that:
1. The keyboard is older than I thought. (Someone really took care of this keyboard; its condition belies its age!)
2. It required some Casio USB-MIDI driver, not available for macOS 10.13... the newest driver I can find is from an open-source project, last updated for Mac OS X 10.7.

Here's what I am thinking:
I would like to use a Teensy 3.6, with its built-in USB Host and USB MIDI capability, to create a two-way converter for Casio Keyboards that required the "Casio USB-MIDI" driver. Yeah, I could try to update that open-source driver, but that wouldn't give me an excuse to use a Teensy :D. I might embed the Teensy in my keyboard (there seems to be plenty of room), but I would like to make it external-capable for anyone following along -- so desoldering the USB jack on the keyboard is a possibility for this project, but trying to find a clever place to tap off the PCB is out.

The questions that I have thought of, so far:
1. Has anyone else done something like this before?
2. How hard would it be to connect to an "arbitrary" USB device, in order to use the Teensy as a bus analyzer?
 
The wk-110 usb out seems to work on linux.
So you can connect the usb out to the teensy 3.6 usb-host in and see what comes in on the port.
Dian
 
Yes, I was able to get my WK-110 to work in Linux. It was plug and play.

I think I pieced the pieces together of an abandoned CasioUSBMIDI driver from Google Code (abandoned in that it doesn't seem to have been updated since Mac OS X 10.7), which is "entirely based on the SampleUSBMIDIDriver provided by Apple with the CoreAudio SDK". The one compatibility report on their website is for the WK-110. It looks like ths driver is connecting to devices with a Vendor ID of 0x07CF and a Product ID of 0x6802, and creating (per a code comment) an "entity for each port, with 1 source, 1 destination". I don't see any code that translates messages two and from differing formats, so if I can get the Teensy to connect to my Casio keyboard and otherwise treat it as a MIDI device, I should be golden... right?

Unfortunately, I don't know the USB specification, so none of the USBHost_t36 examples make sense. (Also, not surprisingly, neither of the MIDI examples seem to want anything to do with the WK-110 out of the box.) It would be nice if there was an example that simply reported out what was found off of the USB Host port (even if there were no matching drivers), then at least I would know that the Teensy will see my keyboard...

Reference: Casio USB MIDI Driver for Mac OS X 10.5 - 10.7

And yes, if anyone is wondering why I don't just try to get the Casio USB MIDI Driver compiling under macOS 10.13: That wouldn't help me if I wanted to plug the keyboard into a Windows PC. Getting the Teensy to translate will.
 
Status
Not open for further replies.
Back
Top