Sunday, January 29, 2012

Modding a 2.4GHz Traxxas Link Transmitter [Part 1]

TL;DR: Tried to turn 2-channel transmitter into 4-channel with no success.

I own a Traxxas Rustler VXL that I bought for last year's SparkFun AVC and plan to use again this year. It came with a 2-channel 2.4GHz Traxxas Link transmitter, pictured below.


Two channels is fine for regular RC cars, since all you need is throttle and steering. For my purposes though, I'd like to have some way to switch between manual and autonomous modes (and a kill switch to prevent expensive electronics from driving into water hazards). Last year I mapped the extremes of the steering input to these modes, which worked okay. This year I'd like something nicer, like additional transmitter channels (the Traxxas receiver is 5-channel). And of course, I'd like this without buying new hardware.

A clever user on the Traxxas forums noticed that there were unpopulated pads on his 2-channel transmitter's mainboard. He voided his warranty, soldered up a couple switches, and lo-and-behold, he suddenly had a more expensive 4-channel transmitter. A Traxxas employee responded on the forum thread, and noted that a small number of 2-channel transmitters were set up as 4-channel, but that this modification would not work on most 2-channel transmitters. There's a quick way to check the setup, by using the transmitter's menu to try to configure channels beyond the first two. Unfortunately, I don't have one of the lucky units.

The four unpopulated pads are the Channel 3/4/5 inputs.
There were more recent posts with people claiming that the number of channels is determined at power-on, by checking for voltage inputs on those channels. Seemed plausible, and people said it turned their transmitter into a 4-channel. I tried it by shorting the inputs to VCC or GND on power-on, to no avail. A couple people claimed what worked for them was shorting VCC to GND. This would just overload the regulator on the board, so I'm very skeptical.

Anyway, at this point there wasn't going to be any easy modification, so I started looking closer. There's a 2x4 programming header on the bottom of the board that leads to the brains of the transmitter, a STM8S105K6T6 microcontroller.

2.00mm pitch header
I buzzed out the header, here's the pinout. Header pin 1 has a square pad, and is closest to the on/off switch.

Header Pin IC Pin STM8 Pin Board Signal
1 6, 7, 9 VDD, VDDIO, VDDA VCC
2 27 PD1/SWIM
3 4, 10 VSS, VSSA GND
4 1 NRST
5 19 PC2/TIM1_CH2
6 20 PC3/TIM1_CH3
7 30 PD5/UART2_TX
8 BATTERY+ (switched)

Conveniently, the first four pins match the ST SWIM (single wire interface module) pinout. I happen to have an ST-LINK programmer that came on my STM8L-Discovery board, so I hooked that up on the slim chance that the memory wasn't readout protected. It was readout protected.

ST-LINK SWIM connection
No dice.
Don't really know where to go from here. If I had to guess, all the transmitters get the same firmware, and then have settings in EEPROM to determine the number of channels. The other header pins connected to the microcontroller remain a mystery.

Part 2 sometime if I get any bright ideas.

No comments:

Post a Comment