Current RC Transmitters are very expensive in order to get something "decent", and all modules under $200 are very basic software and hardware wise. Many "hack" projects exist to try to revive and breathe new life into them, but they are often prey to poor hardware. Its also very expensive to buy different transmitter "modules" to use for different aircraft, also, very few TXs support more than one or two telemetry protocols from said radios.
What it does
Due TX aims to provide an open source firmware, backed by some seriously beefy (but cheap and off the shelf) hardware that will hopefully create a hacking platform for firmware modders as well as eventually provide a virtually "universal" (with all major 2.4Ghz RC radios) Transmitter experience.. Its currently a fully working RC transmitter with planned use of Transistor based power management, wireless "buddy boxing" control schemes, and a whole lot more planned features. (Please see final list of finished and planned features at the end of this description)
How I built it
The project revolves around an Arduino Due Micro-controller, and uses RC grade gimbal controls, as well as a miniature OLED screen for the menu interface. The current module also has support for FPV video, so far using an external VRX (video receiver).
Challenges I ran into
I ran into a lot of challenges, form generating the PPM Signal on non-AVR architecture, to creating the menu interface (where I sank the most time and effort most likely). Overall there was a lot of work but I feel like it has also been very rewarding.
Accomplishments that I'm proud of
I think that overall this is turning out well. I'm especially proud that after a ton of work the menu interface and screens look as nice as they do. (Please see final list of finished and planned features at the end of this description)
What I learned
I learned the PLA is annoying to print with, ARM Atmel boards are crazy fast compared to their AVR counterparts but are annoying/impossible to use without logic level shifters. Messing with the way Arduino does Timer Interrupts leads to a world of pain when you need to do any other task than what you modified the timers for. Also finally learned to use and implement (mostly against my will ;), but project driven) Finite State Machines.
What's next for Due TX
I am currently very serious about this project, so in the following days I plan to actually create a proper PCB layout of all the parts needed, and actually get a "final" version of the hardware. I think that I will be able to get a dev-kit for the platform within the month (maybe a little more due to school time constraints). I am really excited to get this working. I wish I had a couple more days to work on it here :D (Please see final list of finished and planned features at the end of this description)
Achieved: Arduino Due Pulse Position Modulation Generation - timing matched to the Turnigy 9X Both “standard” and “inverted” PPM is software selectable without performance degradation of any kind. i2c Display initial screen Support for most 128x64 and larger i2c based displays (compile-time selectable) in both hardware-pin and bit-banged options depending on application. Live throttle readout in menu Clean menu interface created Menu scrolling Menu check-boxes Front Panel Rev 1.0 Designed and 3D Printed All buttons debounced PPM Up to 16 channels of actual data being sent confirmed to work Gimbal value matched to standard RC required values Model deemed “working state” and should be able to be hooked up to aircraft in current state Much smaller form factor comparing to “inferior” feature set “standard” size RC Transmitters, all this while managing to pack in a 3.7” screen for FPV live-video-out
Achieved…. sort of: Electric Imp Live Weather - (Achieved temporarily, but link wasn’t reliable enough. Need to revise. Also need to add support of GPS based data instead of predefined ZIP code. ) Battery Voltage Readout (using simple voltage divider) Transistor Power States (almost completely implemented in software, would need all the actual modules, but will work for sure) Servo Testing (No servos on hand but simple PWM signal) Universal TX Setup (Wireless Modules Identified, ready for purchase) Menu selection working on a hardware level, a little buggy in software currently Buzzer added, will buzz when devices starts NFC Tags (reading and writing tags with temporary sequence done, but required the use of an external AVR board that supports 5V logic level signals as the library interferes with the u8lib library timing, will need to get logic level shifting set up to talk properly. Also need to implement serial data parsing for this part of the project. ) More or less complete schematic Need to setup reassignment of analog pins to axis of motion, menu created and almost completely implemented in code, held back because of select bug
SD Card Support Wireless Buddybox (NRF modules) Model Saving over NFC with “Model Cards” Android App to write said NFC Model Cards Multi-dimensional FSM for deep menu structures “Legacy” buddy-box support for different protocols “Telemetry” module support (spotty current support) Rear casing to be done