Intro

Most of my robots use ble, xbee or lora radios to communicate with custom built transmitters, but no matter how cool my robot was I was always holding a weird remote, or reusing a ps3 controller. But for me that was not good enough. A major drawback of reusing controllers is the lack if screens, I could not "see" or have control of what buttons did what, check information coming from the robot, or even seeing what the robot was seeing.

That was when I build my first DIY remote controller link, it fixed most of the issues, had plenty of channels, had video stream and worked great for the most part, unfortunately, if was somewhat fragile, had terrible gimbals and  looked very DIY.


Requirements

I had few requirements for this project:

  • Embeded video stream
  • Multiple wireless protocols 
  • More channels that I could possible
  • Look like a bought transmitter

Implementation

I spent a lot of time on designing the controller, I wanted something that had the same look and feel of the Horus X12S.  

The heart of the transmitter is a custom board with an ESP32, two MCP23017 gpio expanders,  one ads1115 16 bit adc and some voltage regulators, those handle 10 switches (2 of them are 3 position switches) 2 encoders, 2 buttons and two scroll wheel with navigation switch and two potentiometers 

I took apart a 5.8 video transmitter, and a cheap 4.3 tft screen from amazon, and also embedded a 2.8 capacitive touchscreen.

Firmware is still a work in progress, I wanted to use micropython on esp32, but the only library to handle the GUI that I could find that has somewhat support to micropython is lvglfor now I'm writing the firmware on C/C++ 

Once I have the entire project working I'm going to create a github page and release the entire project.