Nothing to see here ...

To content | To menu | To search

Sunday 14 September 2014

Adding a fan to a Sanguinololu v1.3b

Few months ago, I completed the build of my RepRap Prusa i3, and decided in the process to add a fan to it.


There are several parts that can benefit from a fan, but since I'm exclusively printing PLA, I was mainly interested in cooling down the print itself. I easily found some nice fan mounts on Thingiverse, but I had some difficulties to find the fan connector of my Sanguinololu 1.3b. And for good reasons, since there is none. Well, not dedicated to a fan at least.

A 5V to 12V PWM converter

Here is a list of what I used to add a regular 12V PC chipset fan to you my Sanguinololu v1.3b (should work on v1.2 or superior) :

  1. A 2-pin 40mm 12V fan (3-pin should work too using the 12V and GND pins only)
  3. A 10 kOhm SMD resistor
  4. An SMD Schottky diode
  5. Three 2-pin connectors (one for the FAN, two for the Sanguinololu)
  6. A piece of heat-shrink tube
  7. Some wire
  8. Some Kapton

The idea was to use the 5V PWM pin from the Sanguinololu to pilot the 12V fan. In order to do so, I used a simple MOSFET and a 10 kOhm pull-down resistor. I also added a flyback diode to the fan that the MOSFET is controlling. Of course, if you have a 5V fan, you just need the flyback diode.
In order to have a nice connector for the fan and no piece of PCB hanging, I tried to fit everything inside the heat-shrink tube.

The schematic of the converter : Fan-Schematics.png

Building it

I first soldered the diode directly on the 2-pin connector.

IMG_20140317_113359.jpg IMG_20140317_115021.jpg

Then I soldered two of the MOSFET Drain pins on the 2-pin connector GND pin (on the other side of the connector this time). The blue paste was some nail polish I put to isolate the 12V pin, but it did not work as expected since the heat was melting the nail polish... Eventually, I had to use some Kapton instead, but this is not shown in the pictures.


The last component needed was the pull-down resistor I soldered between the Gate and Source pins.

IMG_20140317_172754.jpg IMG_20140317_172821.jpg

Here is the final result with the protecting heat-shrink tube :


To connect it to the Sanguinololu, I used two 2-pin connectors : one for the 12V and GND pins, and one for the D12 5V PWM pin (leaving one hole of the connector empty).
It had be connected as follows :


I then printed these nice fan mount and duct from Thingiverse, and mounted everything in place.

IMG_20140913_153626.jpg IMG_20140913_153708.jpg

Final touch

From a software point of view, the fan needed to be enabled with the proper pin in the Sanguinololu firmware. I'm using Sprinter as firmware, so I had to edit Sprinter/pins.h, and replace

#define FAN_PIN -1


#define FAN_PIN 4 // D12 PWM pin

in the Sanguinololu pin assignment (MOTHERBOARD == 62).

Once the firmware rebuilt and flashed, I had a working fan mounted on my Prusa i3 !

Wednesday 10 September 2014

Enhanced Rovio (WowWee)

I played a little with the discontinued Rovio from WowWee this week, and found out that the firmware source code has been released some times ago.

Several custom firmwares already exist, but I played with only one so far : Rovio Chat custom firmware. This custom firmware integrates some interesting functionalities (mainly a Network Watchdog), but I wanted to add other features, like turning ON/OFF the blue LEDs.

That's why I just set up a Github repository, importing the original source code (v5.03) with Rovio Chat changes on top of it as a starting point.

So far, I also added the following functionalities :

  • Blue LEDs control integrated into the WEB interface
  • Incremental camera adjustment control (from Rovio Chat) integrated into the WEB interface

The repository can be found here, and some nice building instructions here.

Feel free to check it out !

Thursday 4 September 2014

Inside a KORG Kaossilator Pro

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 :

IMG_8417.JPG IMG_8418.JPG IMG_8419.JPG IMG_8421.JPG IMG_8423.JPG IMG_8424.JPG IMG_8425.JPG IMG_8434.JPG IMG_8436.JPG IMG_8441.JPG IMG_8442.JPG IMG_8445.JPG IMG_8448.JPG IMG_8449.JPG IMG_8450.JPG IMG_8451.JPG IMG_8456.JPG IMG_8458.JPG IMG_8461.JPG IMG_8465.JPG IMG_8466.JPG IMG_8469.JPG IMG_8473.JPG IMG_8451.JPG IMG_8451.JPG IMG_8451.JPG IMG_8451.JPG IMG_8451.JPG IMG_8508.JPG IMG_8512.JPG IMG_8515.JPG IMG_8519.JPG IMG_8525.JPG IMG_8526.JPG IMG_8530.JPG IMG_8532.JPG IMG_8533.JPG IMG_8539.JPG IMG_8549.JPG IMG_8555.JPG IMG_8557.JPG IMG_8560.JPG IMG_8562.JPG IMG_8566.JPG IMG_8567.JPG IMG_8569.JPG

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 :

  1. a 256 byte header
  2. 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 :

  1. the string "KORG SYSTEM FILE" on 16 bytes
  2. the string "KaossilatorPro" or "KaossPad3" (depending on the targeted device), padded with 0x00 on 16 bytes
  3. the string "SYSTEM" padded with 0x00 on 10 bytes
  4. the FW version on 2 bytes (big-endian), read, as far as I know, by the Updater application only
  5. a 4 byte unknown big-endian value (00 01 0E FF for the KaossPro, 78 FF FF FF for the KP3)
  6. 16 unkown bytes (00 00 00 00 00 00 04 00 00 00 00 00 00 00 04 00 for both)
  7. a 2 byte unknown value (02 80 for the KaossPro, FF FF for the KP3)
  8. 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 !

Thursday 30 January 2014

First !

Well, this is my first post on this blog, and I hope others will soon follow...