c2po's blog - RC Groups
c2po's blog View Details
Posted by c2po | Sep 04, 2011 @ 01:30 PM | 9,530 Views
As many of us noticed all recently purchased Turnigy Plush ESC (10A in particular) are a little bit different now. They have slightly bigger length of the board and are based on a totally new microcontroller, which is now SIL F334 instead of good old ATmega8.
I don't know yet if that's a good thing or not, but one thing for sure is that they cannot be modded anymore using firmware which was written for AVR (like for instance conversion to I2C instead of PWM).

Another interesting observation is that Turnigy Plush 10A and Exceed Proton (former Volcano) 10A ESC are exactly the same, I mean everything, including the board version HW1 33V2.0 and all components, as you can see on the attached pictures. The only difference is that Plush has two 5V 1A voltage regulators stacked on top of each other, giving the 2A BEC rating, and Proton has just one regulator with corresponding 1A BEC rating.
Oh, and wires are blue on Proton.
Posted by c2po | Aug 20, 2011 @ 02:05 PM | 15,776 Views
Another project is more or less finished, shaped into it's final form, and it works quite nicely.
FrSky D8R-II receiver, DFT transmitter module, Arduino Pro Mini, Cat's Whisker LCD.
Displays battery voltage/current with the graphs, consumed energy in mAh, power in watts, and RSSI level graph.
Video shows the main screen, screens can be switched using LCD buttons, there's another screen with RSSI levels, and I will probably add something later.
Binary sketch size is 7680 bytes, source code attached.

Update (08/22/2011): added connection diagram. Also I modified DFT module to have TTL levels instead of RS232, so for original unmodified module line 49 in the FrSkyCW.pde should be:
NewSoftSerial FrSky = NewSoftSerial(FRS_RX_PIN, FRS_TX_PIN, true);
Regarding sensors: for voltage I use simple 1/4 resistor divider (30KOhm/10KOhm), for current I use Allegro ACS715LLCTR-30A sensor breakout board from Pololu.
So as max voltage on D8R receiver inputs is 3.3V - those sensors give me up to 13.2V and 21.0A respectively.

Update (08/27/2011): changes in the code, added proper byte stuffing processing (7D 5D = 7D, 7D 5E = 7E), new version attached.

FrSky Telemetry (0 min 36 sec)

Posted by c2po | Aug 20, 2011 @ 02:27 AM | 8,274 Views
Finally... after endless wiring, rewiring, disassembling, desoldering, relocating stuff, assembling and rewiring it again and again - finally I'm more or less satisfied with the result. Now I just need to crash-test it.
Both Kinjal frame and CopterControl board truly are masterpieces each in their own league, and together they are just wonderful.
Bluetooth full flight telemetry and setup, and FrSky voltage/current telemetry are just adding nice final touch.

And although SeismicCWave said in the main thread that CC is not plug and play - it kinda is, really.
I just plugged it in with almost all default settings (well, except setting config to QuadX and calibrating the radio) and it just flies so well that it's hovering very stable hands off even in the Rate mode!

Kudos to OpenPilot guys, they definitely know what they are doing, thank you!
Posted by c2po | Jul 28, 2011 @ 12:37 AM | 13,858 Views
Interesting... I didn't think it would be that easy.

It is a well known fact that FrSky Tx modules (and receivers too) use RS232 as interface, therefore connecting them to a computer might be kinda problematic.
Basically there are three options:
- find a PC with a real RS232 COM port, usually old PC and laptops have it, and use a RS232 cable that came with the module;
- buy a RS232 to USB adapter - proves to be the most problematic since most of the adapters are not properly working under newer versions of Windows, like Windows 7 x64;
- since RS232 uses inverse voltage levels comparing the FTDI TTL levels - build a signal inverter using two transistors which is kinda messy, but then you can use any FTDI adapter, usually no drivers needed, works with every version of Windows, just plug it in.

Last option is the most preferrable because probably anyone who messes with microcontrollers should already have FDTI cable or adapter anyway.
I decided to look inside the FrSky Tx module to see if I can find an easier way than finding four resistors, two transistors, and then solder all that stuff on some board, and then putting it somewhere... Hmm, there's a Sipex SP3232E chip that provides the RS232 output levels and actually does quite opposite from what I need - it converts TTL levels into RS232 levels. So why don't I just circumvent those two inverters... then I would get normal TTL levels!

Tiny soldering iron - check, helping hands with magnifying glass - check,...Continue Reading
Posted by c2po | Jun 20, 2011 @ 03:41 PM | 10,318 Views
Although I already have Spectrum DX6i for playing with my Bind-N-Fly toys like Blade MSR I always wanted to control them with a normal radio with nice gimbals and decent programming, namely my newly aquired well used old trusty Futaba 9CHP.

Inspired by that thread I thought wat da heck, I have everything to do that: not needed E-Flite LP4DSM - check, Arduino Pro Mini - check, soldering station - check, donor for plastic case and 5 pin connector not needed Futaba module - check.
Well, as I never repeat the design as it is, always changing/modifying/rewriting/adding something, it was the same for this project. So I'll try to list all things that I changed.

For a transmitter I used a low power DSM2 TX module ripped off of my RTF Parkzone P-51 Mustang LP4DSM which I never used and probably never will.
Main processing is done by a Sparkfun Arduino Pro Mini 328 running at 3.3V/8MHz, it was chosen in order to save some power over the 5V/16MHz one. Processing power at 8MHz is more than enough to do the job.
As a voltage regulator I used LM1117 Low Dropout Voltage Regulator in SOT-223 package which I had laying around.
Instead of two LEDs I used two-color red/green LED which I also already had, saves some space and just looks cool.

Other components are nothing special, just regular 1/8 or 1/4-Watt resistors and one capacitor. You can vary the values quite deliberately, for instance LED current limiting resistors can be anywhere from 100 to 300-400 ohms, and instead of...Continue Reading
Posted by c2po | Jun 19, 2011 @ 10:14 PM | 8,699 Views
I discovered interesting similarity while working on some DSM2 related project: two Spektrum devices strikingly resembling each other, not just using the same chips but also a PCB layout is almost the same. One on the left is a cheap clone of AR6100e, and one on the right is the low power TX module from Spektrum MLP4DSM transmitter that comes with Blade MCX/MSR, Parkzone small planes, and other similar RTF stuff.
I just thought it was worth taking a macro shot. Enjoy.
Posted by c2po | May 29, 2011 @ 06:09 PM | 9,353 Views
Another controller is soldered, resoldered, redesigned, resoldered again and again, and finally is connected, tuned up, and flight tested. Flies perfect!

It is based on Paris V3.0 board, Sparkfun Logic Level Converter, ITG3205 gyro made from Wii Morion+, and Sparkfun BMA180 accelerometer breakout board.

Controller uses PPM input from modified Berg 4L 72MHz receiver, and also senses the battery voltage and number of cells.
Posted by c2po | May 21, 2011 @ 03:22 PM | 10,037 Views
I've got quite a few cheap Nunchuk clones from Ebay, all of them are different, and pretty much all of them work fine, but...
One of the clones had a nice Bosch BMA140 analog accelerometer instead of a usual ADXL335, and looking at the raw data using special Arduino test sketch I like it much better than others.

So after I made MultiWii work directly with ITG3205 gyro from Motion+ I decided to add standalone Nunchuk as accelerometer. As I know this one works fine, so I was kind of surprised when I saw no data in MultiWii GUI after I connected it to the board. I looked at the code, verified connections, tried few options, changed I2C speed back and forth between 100 and 400kHz, even did a voodoo dance and casted some spells - nothing, nada, zip.

Puzzled with that I put in debugging print statement - well, all six bytes of data read as 0xA5, which is actually the Nunchuk read address sent in the previous statement.
Hmm... I know it works, OK? I'm sure the problem is not in the connections or the hardware. This Nunchuk works in test sketch just fine at 400kHz I2C speed.
I started looking at the I2C read and write procedures, and there was something in them that made me suspicious...

So three hours later around 4am in the morning original MultiWii I2C read/write code was replaced with very similar code borrowed from Peter Fleury I2C Master library:
Looks like Alex code is also based on that, but was heavily...Continue Reading
Posted by c2po | May 10, 2011 @ 04:22 PM | 9,398 Views
I thought that blue Wii Motion+ board with ITG3205 gyro on it is too big for me so decided to cut off unneeded parts.
And also mated it with the Sparkfun BMA180 accelerometer breakout board.
Works good and it's really tiny...
Posted by c2po | May 10, 2011 @ 04:10 PM | 9,047 Views
Finally I was able to tune MultiWiiCopter controller on the Gaui 300X frame more or less to my likings, I will share with my setup so someone might find that helpful.

Everything is stock GAUI 330X (not S version) except the controller.
Frame 330X with motor to motor size ~ 33cm (13in), weight is 400g without the battery, motors and ESC are from Gaui 330X kit, I guess Kv is around 1100, ESCs are probably 6 Amps.
Battery is Turnigy 2S 2200mAh,weight 122g, usually I put ~1200mAh after 10 min flight.
Radio is old 72MHz Futaba 7C, receiver is Berg 4L, hacked into it to get PPM output, using PPM is much simplier in the code and on the wiring.

Controller is based on the Really Bare Bones Board and mounted on a self made board used to connect all the parts together. Nunchuk is there underneath the gyro, but is not used at the moment, so with the I2C speed 400kHz I'm getting cycle time about 1750us. As a gyro I used ITG3205 from a cheap Motion+ clone bought on Ebay, gyro chip is connected to Arduino I2C pins directly, AVR built-in pull-ups are disabled.

I made a lot of changes to the code, mainly removing parts that I don't need, but the change which is relevant to using ITG3205 gyro is that I divide gyro output values by 8, originally it is divided by 20 (/4/5), lines 770-772 in MultiWiiV1_7.pde.
Parameters for PID and other stuff can be seen on the screenshot. They are for 2S setup, you have to reduce PID values for 3S battery.
Posted by c2po | May 10, 2011 @ 12:46 PM | 14,651 Views
It seems that a lot of people using Wii Motion+ with blue board with ITG3205, so that info and a picture might be useful to some of you.

I used the photo taken from this post (not sure who's the owner, I can't read German):
and also was inspired by this post to follow those traces on the board:

I guess picture should be pretty much self explanatory.
Just connect four wires to whatever places you prefer, I think golden pads on the back side are the most convenient place for I2C wires (SCL to X2, and SDA to X3), and pins 1 for +3.3V and 6-7 for GND. You can also connect INT to X4 if you intend to use interrupts.
I2C adress of ITG3205 is set to 0x68 (AD0 PIN connected to GND).

All you need to do to isolate ITG3205 from the other chip is to take proper tools and desolder and lift three legs (2, 3, and 4, which are connected accordingly to SCL, SDA, and INT), or just brutally cut or tear out those three legs if you never plan to use WM+ as it was intended.

Don't forget to power the board from +3.3V, and not 5V, otherwise you might get very strange readings.
I connected the SCL and SDA directly to Arduino I2C pins and just disabled AVR built-in pull-ups, no level converter needed, gyro works just fine.

UPDATE (08/25/2011): Since my brief description in the post seems to be confusing sometimes, I'll try to summarize all the needed changes here:

-...Continue Reading