Sunday, June 28, 2009

Updating Akai MPD24 Firmware

Two weeks ago, I set out to do something that I thought was going to be simple: update the firmware on my Akai MPD24. Mine still had 1.05, which is what it came with from the factory. I wanted to update to the latest, 1.10, mainly to get a new feature of this version: the ability to set the transport buttons to send MIDI Continuous Controller commands instead of MIDI Machine Control (which, for reasons not clear to me, hardly any DAW software recognizes). This all started because several weeks ago, I was asked to record a spoken-word piece for someone on VSE. While in the process of doing this, I kept having to run back and forth to the computer to start and stop recording -- it would have been a lot easier if I could have taken the MPD24 over to the mic location, which I could have done easily, and used its transport controls.

Anyway... I thought this was going to be pretty easy. Akai has a software package called Vyzex, which can edit MPD24 presets and also has a function for downloading arbitrary sysex (the firmware update comes in the form of one, very long sysex string). Both PC and Mac OSX versions are available. I downloaded the Mac version of Vyzex, installed it, downloaded the firmware update, fired up Vyzex, and sent the update. And... it didn't work. The data appeared to be sending too fast for the MPD24; it would stop receiving data mid-update, at some random point which was different each time. At first I thought it had to do with the USB hub I was using, so I tried my other one. No difference. Then I tried bypassing the hub and plugging it directly into one of the USB ports in the back of the Mac. That didn't work either. Bad USB cable? I tried a different one. No difference.

I then tried slowing down the transmission using some rate throttling parameters in Vyzex. They were hard to figure out, but I managed to figure out how to get some delays put in. No help. I went through the routine with the different USB ports and cables again, with no results.

So at this point I figured maybe I needed to try using my laptop PC for the update. It certainly wouldn't be the first time a vendor released a "dual platform" app with a botched Mac version. Oops... the old boot ROMs on my MPD24 aren't compatible with the Vista SP1 USB class driver. So Vyzex couldn't find the MPD24 port. So I started thinking: Since the firmware update was in the form of a big sysex, couldn't it be sent using the actual MIDI ports on the MPD24? I got out my little Edirol 1x1 interface, connected its USB to the laptop, and its MIDI connections to the MPD24.

And downloaded. It took a while at MIDI cable speeds, but eventually it finished, and the display told me it was done and to press ENTER to bring up the new firmware. So I pressed ENTER and... nothing. Absolutely nothing happened. It just sat there, telling me to press ENTER. I figured maybe it just needed to be power cycled at this point, but when I did so, it went back to asking for an update again.

Of which I should elaborate on... the update process for the MPD24 begins with erasing the existing firmware from its flash memory. So once you've done this, the MPD24 is unusuable until you succeed at getting a firmware update loaded. So at this point, my MPD24 was bricked. After a bunch of Googling, I found a post claiming that the MIDI cable method could be made to work by switching from USB power to external power after the update loads. I got a universal, voltage-selectable wall wart (which I normally use with my Roland DR-202 drum box) and connected it after the update finished, disconnected the USB, and pressed ENTER. Nothing.

At this point I was desparate. I decided to try some different software. I tried a bunch of things -- using my DAW (Metro) on the Mac, a version of Uniquest on the PC, another PC freeware application. Nothing helped. I even considered writing my own app on the Mac just to do this, but I eventually convinced myself that the software that was doing the sending wasn't the problem. After all, it really doesn't have to do much -- open a port, send one sysex string to it. The problem seemed to be in the connections to the MPD24. But I had tried all kinds of connection combinations.

Out of sheer desparation, I decided to try something random. Because my printer is away from the Mac, I have a USB cord with an extender to reach it. With the extender, the cord is actually a few feet longer than the maximum length allowed in the USB standard. But it works with the printer. I decided to try that one. Going back to Vyzex on the Mac, I sent the sysex without any special parameter settings. It ran and at the end, the MPD24's display showed "ERROR 0010", and the "press ENTER" light lit on the display. Well, at least this was different. I pressed ENTER, prepared to try something else, and...

The new firmware came up! I checked in the global edit mode and verified that 1.10 was running. Then I went to edit the transport controls. This part of the code appears to be a quick-n-dirty hack; when you go into edit mode and then press a transport key, it tells you to press ENTER. When you do, the display goes blank. To change the controls from MIDI machine control mode to MIDI CC mode, you turn the data knob to the right; to change it back, you turn it to the left. The display gives you no indication of what mode you have selected while in edit mode. To verify it, you go back to preset mode, press a transport button, and then look at the display to see what it sent. Unlike all of the other controls on the MPD24, you have no choice as to what CC sequences it sends; they are fixed in the CC mode. Fortunately, Akai chose some CC numbers high in the range that are seldom used, and I had no conflicts. The CC numbers used are:

  • Reverse: 115
  • Forward: 116
  • Stop: 117
  • Play: 118
  • Record: 119

So that was quite an adventure. And I'm not sure what the lesson is, other than that before you do a firmware update on your MPD24, you should think long and hard about whether you really need the features of the firmware update, considering that there appears to be a non-trivial chance that you could wind up with a bricked unit. Doing some further reading on the net, it appears that the only reliable platforms for doing the update with are a Windows machine running XP, or a Mac running OSX 10.4. Apparently, with Windows 98/2000/Me, there is a driver incompatibility that will blue-screen the computer if the MPD24's USB is connected to it; Vista cannot see the boot port on MPD24's with older boot ROMs, and there is some kind of port compatibility problem with OSX 10.5. (Some users report that they have been able to do the update with OSX 10.5 by using Sysex Librarian. Note that there is a problem with 10.5.6 in which Audio Midi Setup will see the MPD24 itself, but not its external MIDI ports.)


Ben said...

that sucks man. I just want to use the transport controls in Live but have firmware version 1.07 and only have a mac on OS 10.6.6
the only PC i have access to is a Vista PC so it's looks like I'm out of luck here.
After hours of googling, I think I'll have to give up :-(

LoMaX said...

where do you download the firmware?

tunemunch said...

thank you so so much for this explaination. cleared up a lot of confused thoughts. REALLY dissapointed in AKAI though since they no longer offer support for the mpd24 on their website and take weeks to reply to simple customer service questions. AKAI also went one step further to disable members of the VYSEX forum from sending the v10 .syx file. This has made me turn my back on AKAI and i dont plan on going back.