Converting the Turnigy Plush 30A into a I2C BLC controller
- WARNING
Purchased in June 2011 (or later) Turnigy Plush 30A (ver 3.1) controllers are no longer suitable for the modifications below!
These Turnigy Plush BLC are based on a "SIL F334 Chip" and not on a ATMEGA!
This is a step-by-step guide to convert the Turnigy Plush controllers into a high-speed i2c controller that can be used on e.g. a UAVP-NG. A lot of pictures are added for clarity. If you have any questions, you can alway find me in the forum or IRC (Jeroen).
Step 1
This is (hopefully) the state the Turnigy Plush 30A ESC (Electronic Speed Controller) arrives in.
This is probably a good time to take some ESD measures. Make sure no charge can build up in you or any of the tools.
Step 2
Remove the shrink-tube from the ESC by cutting it on one side. BE CAREFULL: it is possible to cut into the PCB/components and ruin the ESC even before you have started.
Step 3
After removing the shink-tube, the ESC should like like this.
Please note that the heat sinks are also removed. Be carefull with them as you need them later on again.
Step 4
The next step is the first soldering step. Remove the PPM cable from the ESC.
Also keep this cable as you need it later on to connect the i2c bus (GND, CLK, SDA) to the ESC.
Step 5
The next step is a bit harder. The two 7805 voltage regulators are to be removed as they can be a problem when using the ESC at 4S (14.8V). The two 7805 regulators can be most easily removed when they are first soldered (again) using lead-solder. Because of the ROHS solder (no lead) the two chips are VERY hard to remove. By adding a bit of new lead-solder to all pins of the chips, they come loose more easily. The desoldering is done best with a hot-air station. I use a Aoyue 852+ rework station for this job. If you don't have one: consider buying one. They are not expensive and VERY nice for this type of work.
Step 6
The ESC now looks like this.
Note that also a few capacitors are removed from the PCB. This is done because they WILL interfere with the i2c communication and that will lead to your expensive UAVP crashing!
Step 7
The next step is a bit fiddly. You have to remove two tracks. Make sure you remove enough copper so that the connection is really gone
You have to remove two tracks near the resistor arrays as shown in the photo.
Step 8
Now we connect two unused pins of the Atmel microcontroller to the resistor arrays. After all: we do want to use the resistors for back-EMF sensing.
I use enamelled winding wire (0.2mm) for this job. It is very thin and there is no isolation that can burn away. To remove the isolation at the end of the wire, put a blob of tin on your soldering iron and hold the end of the wire in the blob for a few seconds. As you will see this removes the isolation very well.
Step 9
Now we want connect the i2c pins of the Atmel microcontrollerr back to the three-wire connection. Fortunally there are pins near the microcontroller that lead to the soldering pads where the PPM cable was connected to.
Step 10
And the second wire is connected to a pad on the other side of the microcontroller.
You can measure the resistance between the microcontroller pins and the three-wire-pads. It should be a near-perfect conductor.
Step 11
Now connect a servo-wire (the one you kept in step 4) to the three pads where they were in the first place.
Step 12
Solder an 8-pin header to the programming pads near the microcontroller and flash the quax-software in the Atmel. I use a AVRISP MKII for this job. It is relatively cheap and it can connect to a lot of different microcontrollers of Atmel. Be sure to power the ESC with something like 11 Volts (not very critical). If you don't the programmer will not work. Pinout of the AVRISP MKii:
1:MISO |
2:VCC |
3:SCK |
4:MOSI |
5:RESET |
6:GND |
Pinout of the programming pads on the Plush controller (pad 6 is on the edge on the controller near the motor connections)
1:MOSI |
2:MISO |
3:SCK |
4:GND |
5:VCC |
6:RESET |
Step 13
Cleanup: place the heatsink back on the side with fets (not on the microcontroller-side) and put a new shrink-tube over the ESC.
Step 14
Test if the i2c bus is working. Connect to a NG and NG-OS should recognise the ESC as an actor. If not: probably something is wrong with the i2c wiring.
Step 15
Test if the motor runs. Do this using the blc HAL
Step 16
You are done...
