Hardware

Arduino pins

Parts list:

  • C1: 100nF Capacitor
  • C2: 330nF Capacitor
  • LED1: Red LED
  • Nano1: Arduino Nano v3.0 with ATmega328 microcontroller
  • POT1...POT6: 10kΩ Linear Potentiometer
  • Piezo1: 18mm Piezo Transducer
  • R1: 12kΩ Resistor; 0.25W
  • R2: 10kΩ Resistor; 0.25W
  • R3: 270Ω Resistor; 0.25W
  • R4, R5: 47kΩ Resistor; 0.25W
  • U1: L7805 Voltage Regulator; voltage 5V
  • VCC: LiPo 2S 7.4V or NiMh 7.2V battery; 1000mAh


Microcontroller:
The software runs only on ATmega328 boards: Uno, Nano, Pro, Pro Mini, etc.
It is not compatible with ATmega2560 or ARM processors.

Power Supply:
The total current draw (Nano + RF module from HobbyKing T6A 2.4ghz tx + misc components) is 90mA so the Nano's internal 7805 should be strong enough (we can draw up to about 400 mA from it). However I have tested this configuration at the beginning of the project and I found that when the RF module was powered by the Nano, the RF signal was unstable, causing some erratic servo activity. This is why I use an external 7805.

The battery must deliver at least 7V for the 7805. A 7.4V (2S) 1000mAh LiPo battery should last nearly 10 hours.

The FTDI FT232RL chip on the Nano works only if the board is being powered over USB at startup. This means that when the Nano has been powered by the battery (on pin 27) at startup, its USB interface is not working. So, before connecting the Nano to your PC with a USB cable in Command mode, you must turn off the power from the battery with switch SwMain.

Battery monitoring:
The battery voltage is measured at the center of the R4,R5 resistor bridge using the A7 analog input. Low voltage may trigger an alarm. Voltage can be checked manually with the PRINT VOLT command.

Special Switches:
They are used to configure the transmitter, not to control channels. For each switch, one pin is connected to an Arduino digital pin, and the other one to the ground.

  • Mode switch: connected to Arduino digital pin D9
  • Dual Rate switch: connected to Arduino digital pin D12
  • Throttle cut switch: connected to Arduino digital pin D11
  • Model switch: connected to Arduino digital pin D8. The type of this switch depends of the way you prefer to switch models (you select it in arduinotx_config.h):
    • MODEL_SWITCH_SIMPLE: use a 2-positions switch for switching between 2 models (this was the default until version 1.4.0)
    • MODEL_SWITCH_STEPPING: use a push-button switch for stepping through all models (this is the default since version 1.5.5)
    • MODEL_SWITCH_ROTATING: use a 10-positions rotating switch for selecting a model. Connect this switch to analog input A6 (D8 is not used in this case).

Potentiometers:
Potentiometers are used to control proportional channels.
Any linear potentiometer between 1kΩ and 20kΩ will work, but lower values will drain more current from the battery.
The software implements 6 channels by default. If you need more (up to 9 channels), change CHANNELS in arduinotx_transmitter.h

For each proportional channel, you tell its controlling device is a potentiometer by setting the corresponding channel variables ICTx=1, ICNx=pot number (see Model Variables).
For each potentiometer, the cursor pin is connected to an Arduino analog input and the other 2 pins are connected to +5V and to the ground.
You can use up to 8 potentiometers: Potentiometer 1 is connected to A0, pot 2 to A1, ... pot 8 to A7.

Recommended potentiometer assignments for a HobbyKing T6A 2.4ghz transmitter case:

  • Potentiometer 1 : Right gimball/Horizontal, connected to Arduino analog input A0
  • Potentiometer 2 : Right gimball/Vertical, connected to Arduino analog input A1
  • Potentiometer 3 : Left gimball/Vertical, connected to Arduino analog input A2
  • Potentiometer 4 : Left gimball/Horizontal, connected to Arduino analog input A3
  • Potentiometer 5 : Right auxiliary knob, connected to Arduino analog input A4
  • Potentiometer 6 : Left auxiliary knob, connected to Arduino analog input A5

Channels switches:
Channels switches are used to control discrete (on/off) channels instead of potentiometers.
For each discrete channel, you tell its controlling device is a switch by setting the corresponding channel variable ICTx=2 and variable ICNx=switch number (see Model Variables).
For each switch, one pin is connected to an Arduino digital pin, and the other one to the ground.
The circuit schematics shows only one switch: SW1, labeled "CHAN" in the picture of my transmitter case.
But you can use up to 6 switches: Switch 1 is connected to D2, switch 2 to D3, ... switch 6 to D7.

LED:
This LED displays the transmitter status. By default, it is the Arduino's built-in Led on D13. You'll connect an external Led on this pin through a suitable resistor.

Buzzer:
This piezo buzzer plays the same codes as the LED. Alarm codes are played contiuously with a low pitch, other status codes are played 3 times with a higher pitch.

RF Module:
I have reused the RF module from my HobbyKing T6A 2.4ghz tx (its controller board was dead but its RF module was ok).
Many 2.4 Ghz modules are available at online hobby stores (google "2.4Ghz Module"). You need a module with PPM input.
Connect the module's PPM input pin to Arduino digital pin D10. Depending on your RF module, you may need to lower the PPM signal voltage from the Arduino. Look at your RF module datasheet to find out. My own RF module expected a 2.38V signal, so I used 2 resistors (R1, R2) to lower the 5V output from the Arduino.

Simplified Stripboard implementation:

Stripboard implemented in Hobbyking T6A 2.4ghz transmitter:

Suggested PCB implementation:

Download the Fritzing sketch to customize your own board.

See more implementations in the Gallery

Page last modified on February 03, 2015, at 08:33 AM
Powered by PmWiki