RFQ for power control of VTX, Telemetry using external ATMEGA2560


Please give me a quote to accomplish any parts of the below project outline.

Thank you,

Tim Chapman

I am willing to separate this RFQ into pieces for different people to work on who have expertise in each area required.

If someone knows how to do all this without the ATMEGA2560 PCB, I am all ears.

My setup is as follows:

Taranis X9D transmitter with RFD TXMOD transmitting radio control and telementry.

  • I want to be able to control transmit power level as outlined below using a channel on the transmitter.

Quad copter has:

  • TBS UNIFY PRO32 HV video transmitter
  • RFD900x telemetry transceiver connected to Pixhawk 2.4.8 via sbus.
  • Runcam Split 3 Micro with DVR.

My objectives are to be able to:

  • change the TBS UNIFY PRO32 HV video transmitter power level.
  • Change RFD900x transceiver power level
  • start and stop Runcam Split 3 Micro recording video.
  • change the TX MOD power level.

I want these changes to be made using 4 separate radio channels with PWM outputs from the Pixhawk:

7 SB 3 position. RXD900x power level. 0dbm, 15dbm, 30dbm.
9 SG 3 position RC Transmitter (TX MOD) power level. 0dbm, 15dbm, 30dbm.
14 SE 3 position Video transmitter power level. 25mw, 400mw, 1000mw.
15 SF 2 position Video record or not.

Do I need to manually change the data rates of the TX MOD/RDF900x or if they will automatically set based on power levels?
If I have to control them, use channels 12 and 16 for this. These are SC and SD. Both are 3 position swtiches.

My plan is to have a small 3.3V atmega2560 pcb with level shifters if needed in the quad copter.
It will receive PWM input from the Pixhawk channels specified.
It will output the appropriate serial data to each device to control it accordingly.
If the device returns any data confirming its status, the atmega2560 will receive and verify the status for display on the DIY OSD below.

On startup, make the arduino put each device in the correct mode at the lowest power level.
Taranis will start up with switches in their rearmost position to avoid switch warning. This position of each switch will be lowest power on transmitters and video recording off.

The runcam and dvr runs on 5V. As far as I know the serial connection to the DVR is 3.3V.
I know the TBS UNIFY PRO32 HV video transmitter is 3.3v.
The RXD900x is 5V. Serial data interface is 3.3v.

The reason for doing this with the channels instead of moving through menus using the joysticks is that I won’t have to look down at the transmitter to make changes. I can just flip channel switches. I am setting up a MFE Fighter VTOL for search and rescue and I just don’t have enough time to figure all this stuff out.

Install DIY OSD (https://www.ebay.com/itm/283984411019) and video switcher (SmartFPV RC Camera Control v2.0 - https://smartfpv.com/store/video-switches/2-rc-camera-control-v2.html - I own 4 of these. They are no longer made.).
Connect DIY OSD to atmega2560.
Have atmega2560 output text to show me status of each device including LEDs, temperatures, power levels.
Have Atmega 2560 measure temperature of 5 ESCs and video transmitter and report this on DIY OSD as well. This will later be used in a VTOL aircraft which will have 5 ESCs. For now it will be 4 on my quad copter.
I am expecting that the number of items that will require temperature monitoring will increase to a maximum of 16 since there are 16 analog input pins on the ATMEGA2560.

Video switch will be controlled by RC Channel 11. This is a momentary switch. In its normal position, it will show me the MinimOSD output. When switched, it will show me the DIY OSD output.

It might make sense to use channel 8 to control the Minim OSD screens and the video switcher.

Make the ATMEGA2560 log the temperatures and power levels. It will need a time reference to match the logging on the Pixhawk. This should be when the Pixhawk is armed. Is there a way to make the pixhawk output a unique sequence on channel 11 for example when the Pixhawk is armed to tell the ATMEGA to start logging and set its time reference to zero?
Another way to handle the time is to connect the GPS to the ATMEGA2560 as well as the Pixhawk. The ATMEGA2560 can get the time from the GPS. Does the Pixhawk use the GPS as a time reference for logging as well?
The ATMEGA2560 would only need to read the GPS and get the time when it was logging something. That would be when one of the data values or switch positions changed.

My intent is to use this Arduino Mega 2560 pcb: https://www.ebay.com/itm/Mini-Meduino-Mega-2560-R3-Board-Pro-Mini-ATMEGA16U2-Female-header-for-Arduino/382570244931
I will design and have an interface PCB made which will have all the needed connections.

NOTE: The ATMEGA2560 is to be programmed entirely in BASCOM AVR with code that is commented well so that I can maintain it in the future.
I may omit this requirement if necessary to find someone who can do this project in a .ino file.

Lastly, is there any easy way to connect a signal from the ATMEGA2560 pcb to the Pixhawk that will inform me if there is an error on the ATMEGA2560 data?

Taranis X9D channels, switches and their uses:

1 Thr
2 Ail
3 Ele
4 Rud
5 S2 MODE SWITCH - 5 position.
7 SB 3 position. RXD900x power level. 0dbm, 15dbm, 30dbm.
9 SG 3 position RC Transmitter (TX MOD) power level. 0dbm, 15dbm, 30dbm.
10 LS left slider. CAMERA TILT.
11 SH momentary. Control Video switch (SmartFPV RC Camera Control v2.0).
12 SC 3 position. Use for TX MOD data speed if needed.
13 RS right slider. LEDs.
14 SE 3 position Video transmitter power level. 25mw, 400mw, 1000mw.
15 SF 2 position Video record or not.
16 SD 3 position. Use for RXD900x data speed if needed.