Skip to content

AlexOrlo/video_modem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Telemetry Transmission via Analog Video

This is a small project that allows for receiving digital data (telemetry) through analog video. Although most control systems today have a feedback channel, it is not always possible to use it. For instance, it might be prohibited in competitions or if the power and range are limited.

Personally, I use it as a receiving modem on my ground-based rotating antenna stations with analog video.

The device allows for data transmission at speeds of up to 800 bytes per second in PAL system and up to 720 bytes per second in NTSC system. An 8KB buffer helps handle short-term bursts in speed.

To optimize the use of the narrow channel, message type filtering for MAVLink and Crossfire protocols is supported. For example, I only use the MAVLink HIGH_LATENCY2 message, which contains all the necessary information and occupies 42 bytes. This allows setting the maximum update frequency of such a message to 800/42 = 19 times per second.

MAVLink Message List:

SYS_STATUS 		43 bytes
SCALED_IMU  	24 bytes
ATTITUDE 		28 bytes
GLOBAL_POSITION_INT 28 bytes
VFR_HUD 		20 bytes
ALTITUDE  		32 bytes
HIGH_LATENCY2  	42 bytes

Crossfire Message List:

CRSF_FRAMETYPE_VARIO 	6 bytes
CRSF_FRAMETYPE_BARO_ALT 	6 bytes
CRSF_FRAMETYPE_GPS 		19 bytes
CRSF_FRAMETYPE_LINK 	14 bytes
CRSF_FRAMETYPE_BATTERY 	11 bytes
CRSF_FRAMETYPE_ATTITUDE 	10 bytes
CRSF_FRAMETYPE_FLIGHT_MODE 	<=20 bytes

It is also possible to transmit any raw data without any filtering. For configuring the filter, selecting the protocol, and setting the UART port speed, commands are used via the serial terminal. Both the transmitting and receiving devices are built on an STM32F303CBT6 microcontroller. The GitHub repository contains ready-made projects for Keil MDK as well as schematics and PCBs in DipTrace. Ready binaries and Gerber files for the PCBs are also available.

To assemble the device, you need the following components: two STM32F303CBTx, one dual operational amplifier MAX4017ESA+, four MC33375ST-3.3T3 regulators, two 8MHz crystal oscillators, and a selection of SMD capacitors and resistors in 0805 package. The transmitting device has a form factor of 38x38 mm and a standard mounting hole distance of 30.5 mm.

If anyone is interested, let me know, and I can provide more detailed information on its configuration. Additionally, when using a full MAVLink setup (PX4/ArduPilot), I can add the capability to configure the message transmission frequency (the flight controller must support the MAV_CMD_SET_MESSAGE_INTERVAL command).

Interestingly, this device does not introduce any distortions in the video, works stably in interference conditions, and only fails in cases of total video degradation (when nothing is visible on the screen).

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages