Transmitter setup

Headtracker setup on Turnigy 9XR

The following configuration was made with OpenTX firmware, version 2.1.9. Note that this is an example configuration and may be different on other setups.

To use Futaba trainer port in Turnigy 9XR a small modification may be necessary to enable the PPM-IN. In some 9XR versions it may be not connected to PCB as default. Check if it applies to your controller before you make any changes.

In 9XR the PPM-IN (trainer input) can be used by the JR port. The HT would also work if connected by this port but the problem is that the JR doesn’t support power. The solution is to connect the pointed below Signal Input pin of Futaba port to the PPM-IN of JR port with a short cable. After that 3 wires can be used: VCC, GND to power the HT, and PPM-Input to transmit the PPM signal from HT to the controller.


The trainer port has default configuration.


The pitch (up-down) is on trainter channel 7 (TR7) and yaw (left-right) is on trainer channel 8 (TR8). It was set on mixers CH6 and CH7. The switch ELE was uses to turn the Headtracker on and off. When the HT is off the MAX is active both for CH6 and CH7. When the ELE is on the mixer gets the PPM signal from trainer port.


The MAX setup positions the camera at fixed angle. The CH6 was moved to constant 50 that moves the camera up and CH7 was set to 6 that moves the camera slightly to the side to center initial position. This matches the initial (center) headtracker position equal with ELE switch off (fixed position) and on (HT active).


The CH6 and CH7 Weight is set to full scale 100. The minus sign is selected according to direction of rotation.


The Offset above (the initial servos position) was set to 0 because the true offset was set in HT Calibration Tool. 950us for pitch and 1170us for yaw angles takes the camera up and little to the side. Compare the values to the standard servo center which is 1200us (it is 1500us with 300us PPM pause).


To slow down the work of servos the „Slow Up” and „Slow Dn” can be set. This can be useful to reduce the wear of servos.


Optionally the Extended Limits can be enabled to increase the servo’s angle of inclination. When set for CH7 it allowes to see a little further to the left and right.


FPV Headtracker

FPV Headtracker

The Headtracker is a DIY OpenSource (GPL) project that was designed for RC-FPV purposes. Sensors used to build the device are LSM6DS33 (gyroscope and accelerometer) and LIS3MDL (magnetometer). The HT is compatible with the IMU modules parts of Pololu MinIMU-9 v5 and AltIMU-10 v5. The device was tested on Turnigy 9XR controller but should be compatible with most RC controllers with PPM input support.



  • 2-axis support: pitch and yaw (easy expandable to 3-axis)
  • No drift with 9DOF IMU: gyro, accelerometer, magnetometer
  • Easy to use – one button to center position
  • 1-side THT PCB project
  • Fast 16MHz clock for smooth HT operation (PPM resolution up to 0.5us)
  • 8-channel configurable PPM output (default: pitch on ch.7, yaw on ch.8)
  • Configurable to work with any camera orientation
  • OpenSource C code good for learning AVR programming
  • Very stable and natural experience
  • Few electronic components
  • Calibration and configuration tool included
  • Fun to make


Technical info

  • Dimenstions: 50x29mm
  • uC: ATMega328 @ 16MHz
  • Power: 7-15V (3S/4S LiPo)


Bill of materials

  • 1-side copper plate
  • 1x LM7805
  • 1x Atmega328 DIP28
  • 1x DIP28 socket
  • 1x MinIMU-9 v5 (LSM6DS33, LIS3MDL)
  • 1x 16MHz Crystal
  • 1x R 10K
  • 3x R 240
  • 1x CP 220uF 24V
  • 1x CP 47uF 16V
  • 2x C 22pF
  • 4x C 100nF
  • 1x LED 3mm
  • 1x Tactile button
  • 1x Straigth 3-PIN 2.54mm (UART I/O)
  • 1x Angled 3-PIN 2.54mm (Main connector)
  • 1x Straigth 5-PIN socket 2.54 (IMU connector)


Recommended IMU

The IMU module used for HT can be powered with 5V, It has build-in level converter and compact size that makes it ideal for the project. It simplifies the PCB design and minimizes the number of components.

MinIMU-9 v5; AltIMU-10 v5 (altimeter is not supported in HT)


Wiring diagram

The Headtracker is connected directly to the Turnigy 9XR controller through Futaba port with 3-wires: Vcc, Gnd and PPM. The Vcc is for powere the HT from controller’s battery (3S LiPo). The PPM is the output from HT to the controller’s trainer port. The signal is combined with other PWMs and send to radio transmitter. Most of the parameters can be configure in HT’s Calibration Tool or in the controller (OpenTX in this case).



PCB project





Calibration Tool

Making of HT PCB

Print a diagram on chalk paper on a laser printer. Use a blank paper or a good quality magazine paper.

Make sure the printout matches the electronic components.

Cut the rectangular shape from copper plate.

Smooth the surface with fine sandpaper.

Wrap the prepared plate with paper so that the printed side adheres to the copper. Make sure the paper will not move relative to the plate.

Heat the wraped plate with an iron for about 3 minutes. Move the iron slightly against the edges of the plate.

Soak in warm water to make paper easier to be removed from the plate.

Make sure the paper is completely removed and the imprint remains on the plate. If the print is damaged, wash the plate with solvent and try again. Minor damage can be fixed with a marker.

Place the plate in the etching (B327) until the copper is completely removed.

Wash off the toner with solvent. Drill holes. Use 0.8mm bit for smaller elements and 1mm for voltage stabilizer and button.

Smooth the holes with fine sandpaper.

Place and solder the elements.

Sound patterns

No connection between TX and RX (disabled in new update)


Communication initialized (configuration received by RX)


No GPS fix (waiting for GPS fix or GPS fix lost)


Reference position and altitude set


Point P1 set or aerobatic mode enabled


Point P2 set or variometer mode enabled


Flight Area Ready (valid P1 and P2)


Flight Area locked and saved in internal memory


Aerobatic mode

Out of Area


Inside Green Zone (silent tone)


Through the Flight Area demo
Start at the pilots’ position → Towards the Green Zone (in front of Green Zone) → Inside the Green Zone → Towards the far end of the Flight Area (behind the Green Zone) → Out of Area → Back to the pilot’s position

Full features list

The list of configurable parameters

  • Distance in meters between the Pilot and the Flight Line
  • Area angle in degrees. This determines the height and width of Flight Plane
  • Flight Area width. Space on both sides of the Flight Line; E.g 200m means 100m in front of and 100m behind the Flight Line where the alarm will gradually change accordingly to airplane position in area.
  • Flight line width. Space on both sides of the Flight Line; E.g 30m means 15m in front of and 15m behind the Flight Line where the alarm will be constant tone
  • Flight Area boundary alarm (Out-Of-Area). If enabled this indicates that the airplane leaves the Flight Area vertical boundary on the left or right side. The distance to the boundaries is calculated regarding ‚dist’ and ‚angle’ options. This option has impact on flight scoring
  • Altitude alarm. If the airplane transcends configured altitude the alarm will indicate Out-Of-Area. To disable set hlimit to 0. If set to 1, the maximum altitude is calculated regarding ‚dist’ and ‚angle’ options. User can also set hlimit to the desired altitude in meters (if hlimit>1). In this case the hlimit an altitude relative to ground. This option has impact on flight scoring
  • Set points P1 and P2 manually. The maximum distance between p1 and p2 must not be greater then 200m. The numbers are decimal degrees with 6 digit precision. Note that these values overwrite the coordinates stored in RCFA memory
  • Automatic Flight Area lock (for example during start)
  • Real-time tracking. If enabled, the RCFA will send position data stream to the Receiver. The data are available on the TX pin of the RCFA RX. The data stream can be visualized directly in Google Earth. It is even possible to visualize real-time tracking as an overlay on Google StreetView picture
  • Automatic reference altitude. Minimum number of GPS satellites that must be active to acquire the reference altitude
  • The reference altitude can be set manually for faster system initialization. It can also be more accurate to use with Google Earth and therefore is strongly recommended. Set the altitude value that is visible in Google Earth at the bottom side of the screen marked as ‚elev’ at your airfield
  • GPS sample rate in ‚Reads Per Second’. The value 5 is the most optimal setting for general purposes. Some GPS can not run faster than in 5Hz mode
  • GPS Logger Automatic mode – The Logger will start and stop recording automatically when the aeroplane enters or leaves the Flight Area (Blue Box)
  • GPS Logger Manual mode (free flight) – In this mode user have to start and stop logging by long press button B
  • Set the Logger speed frequency in seconds. It denotes how frequently the logger will write coordinates to SD Card. This can not be more often then gpshz value
  • 4 different modeo of Floor option
  • ‚Low accuracy’ information feature can be used to verify the GPS signal quality after the flight. If the number of active GPS satellites is lower then lowacc, the system will write time and info: „GPS low Acc” on SD Card in rcfa.log file
  • Configurable filtering algorithm for GPS, Altimeter and Variometer
  • Radio module switch. The radio module can be disabled for lower power consumption
  • Altimeter switch. The RFCA uses barometer sensor for highly accurate altitude readings. This option can be override by „floor”
  • Variometer mode. If enabled the RCFA will send altitude changes data stream to the Receiver
  • (Variometer) Minumim vertical speed ratio. Vertical speed lower then hspmin will be regarded as horizontal flight
  • (Variometer) Maximum vertical speed ratio. When the vertical speed is faster than hspmax than the sound in the Receiver will play extreme tone. Lower values of hspmax cause the sound to change more rapidly at low rate of descent or ascend
  • Time zone relative to UTC. Note that the system does not detect summer and winter time
  • Initial sound volume in the Receiver
  • Event log