Based on a logitech wingman extreme digital 3d, we designed a wireless battery powered joystick to control the quadcopter.

The joystick has 11 buttons and 4 potentiometers measuring the X-, Y-, Z-axis and the throttle handle.

After turning on the joystick the communication mode can be set by pressing key D6. There are two communication modes available, the slave mode and the master mode. By default the master mode will be used. The difference between these modes is only, that in master mode the joystick searches for a quadcopter in range and connects to it and in slave mode the joystick accepts a incoming connection from e.g. a computer. The salve mode can be used as a debug interface or to analyze the packets.

When the connection has been established, the green LED signals this to the user. Now the motors of the quadcopter can be started by pressing D2. If now the trigger is pulled, the quadcopter increases the engine power and starts hovering. Now the control system is working and tries to keep the quadcopter stable. Moving the handle in X or Y direction lets the quadcopter also move into this direction. The throttle slider can be used to increase the height. When the trigger will be released the quadcopter stops the control circuit. D3 disables the motors.



1. Power supply

The joystick can be powered via a USB-micro connector providing 5V. If a LiPo-battery is connected to the PCB, it will be charged. The charger-IC (MAX1811) is a standalone device, so it is possible to charge the battery without the need to power up the microcontroller. A low dropout regulator (LDO, TPS78233) converts the battery voltage, which is about 4.1V to 3.3V to supply the system. A status line from the charger to the microcontroller tells the microcontroller if the battery is being charged, or not.

2. Microcontroller

The main-processor is a ATmega168PA, providing 23 GPIOs, three timers and a 12-bit ADC. It operates at 8 MHz using the internal RC-oscillator. The internal 12-bit ADC is used to measure the potentiometer. By doing this the angles and the throttle position can be calculated. The communication with the Bluetooth module happens via UART.

3. Debug-Interface

To program the microcontroller we decided to use the ISP (in system programming) interface. This interface uses just 3 pins of the microcontroller, with the lack of a debugging capability.

4. Bluetooth Module

The Bluetooth module (RN-41) enables the communication to the quadcopter. It is qualified for Class 1 and Class 2.1 Bluetooth. The module can be configured via UART. When the connection has been established, the module will be switched to communication mode and acts as a serial interface connection.


Reading the handle peripherals

The top key and the Z-axis potentiometer have to be read from a matrix. The result after reverse-engineering the top PCB was following circuit: