Inside a KORG Kaossilator Pro
By JC on Thursday 4 September 2014, 21:48 - Hacking - Permalink
The Kaossilator Pro is a Dynamic Phrase Synthesizer/Loop recorder from KORG, and I just got mine this week !
However, the version I was able to find for a reasonable price is the Pro one, which is discontinued... It has been replaced by the Pro + version which looks almost the same, but offers 50 more programs.
I played a little with it, but soon I wondered if it was possible to upgrade it to the "+" version. After all, both version might share the same hardware (HW) ? It is quite possible since I do not see any real improvement that would justify a entirely new HW revision. Maybe a bigger ROM to fit the new programs ?
I tried to find some service manuals, schematics, pictures of the inside of both versions, or any other useful information, but I had no luck. Well, that's not entirely true since I found the service manual of the KORG Kaoss Pad 3 (KP3). The KP3 looks like a red Kaossilator Pro, only offers effects (in a more advanced way than the Kaossilator Pro would), is also discontinued, and has been replaced by a "+" version too ! So not the same product, but they might still share some HW/production related stuff/firmware layout, and we will see they do ! I also found, on KORG's website, one firmware upgrade for the Kaossilator Pro and and one for the KP3. No firmware upgrade for the Kaossilator Pro + however (that would have helped a lot), nor for the KP3 + yet... That's pretty much what I found so far.
The KP3 service manual is full of interesting things : a block diagram of the device, a disassembly guide, all the schematics, the special key combinations used in production/RMA, the touchscreen calibration procedure and the BOM ! If the Kaossilator Pro and the KP3 HW are close enough, I might be able to turn mine into a KP3...
So now I'm currently following two paths for deeper investigations :
- the hardware one
- the firmware one
Let's start with the hardware
Since I found nothing on the Kaossilator Pro hardware, it did not take long before I opened mine, so here are some pictures :
We see that the KP3 and KaossPro HW are similar, but not identical.
They share (only the main ICs) :
- the C55xx DSP from TI (TMS320VC5501PGF 300)
- the AKM 4384ET DAC
- the 128Mbit SDRAM
They do not share :
- the H8S/2215C CPU : the KP3 has a HD64F2215UTE16V (256KB ROM, 16KB RAM), the KaossPro has a HD64F2215CTE24V which is probably this one (256KB ROM, 20KB RAM)
- the ADC : the KP3 has a AKM 5381ET, the KaossPro has a AKM 5358AE
- the 64Kbit EEPROM : the KP3 has an SPI AKM 93C10AF, the KaossPro has what appears to be an I2C L64 0S33W EEPROM which is unknown to Google
The ADCs are probably compatible, and the H8S/2215C CPU (the manual can be found here) of the KaossPro should be able to run the KP3 code just fine. However, if they switched from an SPI EEPROM to an I2C one, the KP3 FW will need to be patched...
I do not have the KaossPro schematics to check every connection, so if someone has/finds the Kaossilator Pro Service Manual, please let me know !
I would also gladly appreciate if someone could do the same work on a Kaossilator Pro + or a KP3 +.
That's mainly what I found so far on the hardware side.
Now on the software side
I looked at both, the KaossPro (V1.02) and the KP3 (v2.00) firmware, and they follow the same format :
- a 256 byte header
- a 256 kbyte (0x40000 bytes) block, which is the actual FW padded with 0xFF (the size of the H8S/2215C On-chip ROM, lucky us !)
I saw no encryption/compression, nor signature.
The header format seems to be :
- the string "KORG SYSTEM FILE" on 16 bytes
- the string "KaossilatorPro" or "KaossPad3" (depending on the targeted device), padded with 0x00 on 16 bytes
- the string "SYSTEM" padded with 0x00 on 10 bytes
- the FW version on 2 bytes (big-endian), read, as far as I know, by the Updater application only
- a 4 byte unknown big-endian value (00 01 0E FF for the KaossPro, 78 FF FF FF for the KP3)
- 16 unkown bytes (00 00 00 00 00 00 04 00 00 00 00 00 00 00 04 00 for both)
- a 2 byte unknown value (02 80 for the KaossPro, FF FF for the KP3)
- 190 bytes being all 0xFF
The FW block seems to be exactly what the Updater will write into the ROM. The first 512 bytes match the expected Exception Handling Vector Table, the first vector being the actual entry point address (0x210).
I built the binutils tools for the H8S arch, and used the generated objdump to disassemble the code. The result at 0x210 looks legit as expected, but I did not find enough time to analyze the code yet...
The first bytes of the code section (0x200) are "KORG", followed by what appears to be the version in big-edian, probably the one returned/displayed by the device itself.
What we learned so far
The KP3 HW is very similar to the KaossPro one, however its firmware won't work as is on it. Some parts (at least the EEPROM access) will probably need to be patched. I say probably because we can see an unpopulated footprint close to the EEPROM that might be a SPI alternative for it.
I still hope that the Kaossilator Pro/Pro + HWs are the same, but since I have no information on it at all, please do not hesitate to share anything you might find.
Regarding the firmware format itself, it seems that the code can be easily modified. However, that looks a little risky considering there is no recovery nor bootloader that would allow to restore a working firmware in case something goes wrong (the code allowing to update the unit seems to be in the firmware)... So for now, I will not play with that !
According to the H8S/2215C manual, it looks like there is a way to boot the CPU from the USB, which would allow to repair a damaged unit, as well as perform some safe tests. I will try to find more information about that !
Comments
Hi, Very Nice post, thanx for this. On my hand I found "Kaoss PAD 3 Service manual".
I put it there : http://nsatn.net/wp-content/Panoram...
Some infos you can add (or not) to your post
It seems Korg use TI DSP TMS320VC5501P in all of their Kaoss Pad products, maybe in Electribe too.
Service Man show a jtag connector on pin 154 to 161 on DSP
( http://nsatn.net/wp-content/Panoram... )
On your photos (Kaossillator pro), it seems to be the CN101 pinouts block
( http://nsatn.net/wp-content/Panoram... )
Pinouts are like the following on this DSP :
( http://nsatn.net/wp-content/Panoram... )
Curiously, Mini kaossilator has some pins on the left, which can be easily connected.
( http://nsatn.net/wp-content/Panoram... )
Next step (for me) would be to get a Jtag emulator for this sort of TI DSP (available on farnell for approx 60 €), and a mini kaossilator (Approx 50 €) to see what can be leak.
Good luck ;c)
Good job man
I have a kaossilator pro+
It Will be intéresting to patch the ron
To get New samples. Is that possible
It Will be great.
Cheers
Hey ! I own the k pro +. I would be happy to help.
I feel there's huge potential gain in the kaoss pro series, with only one extra feature:
- Sequential loop recording/playing (possibility here are endless but some may include: a total sampling time of 36 measures!, or two overlapped sequences (a->b / c->d ), seq repeat (ax3 -> b -> cx3 -> d), etc).
I would have been able to program that in Synthmaker (Flowstone) since you CAN send the A-B-C-D button press while in play mode, with MIDI note ons (36 to 39), BUT (huge but!) you CAN'T while in rec mode, this disallows the extended sampling time features.
Do you think an electronics hack could be donde to REMOTELY (think pedal / automatic as in an implementation of the feature I described) handle start/stop sampling ?