General Hand Controller

This project covers a section of hardware that was built for my final year project and my group mechatronics project. This is a general purpose hand controller or human machine interface device.


The Hand Controller project was designed to be used within several different projects. Thus the design decisions involved made this device very versitile.

The features of this project are:

  • 20 x 4 Character LCD Display
  • RS232 Interface with Driver
  • ATMega32A
  • Hardware Reset
  • 4 way navigation keypad (Up, Down, Left and Right)
  • Enter and Back Buttons
  • Expansion Port
  • Battery Powered with regulated supply

The Design

There are several different sub circuits involved with this project. These will be discussed in the following sections.

The main controller used within this project is the Atmel ATMega32A, this micro controller was chosen due to its large range of features. There was enough I/O to be able to have all of the navigation buttons, LCD and Expansion header

The most prominent feature of this project is the LCD character display. This was a generic HD44870 20×4 Character display purchased from china. The circuit associated with interfacing the micro controller to the LCD can be seen in the following diagram:

It can be seen from the above diagram that there are two instances of GND and VCC. Pins 15 and 16 are for the backlight of the LCD. Check with the datasheet for your LCD to see if it can handle 5v input for the back light, many do not. The trim-pot R1 is used to adjust the contrast of the LCD

The design required a hardware reset switch to allow restarting of the micro-controller. This was used to enter the program selection menu as the device had several different programs installed on it for different projects. The Reset circuit can be seen below:

The reset switch circuit is fairly simple. It is very important that the soldering is 100% for the reset circuit, any dry joints can cause strange results.

The I/O Switches are used for navigation of programs these are very basic tactile push button switches connected to a GPIO pin on the microcontroller. The circuit for connecting a simple switch to a micro controller can be seen below:

This setup is suitable for a supply voltage of 5v

The project incorporates a RS232 interface. This uses a RS232 Line driver the circuit for which was derived from the datasheet.

This uses the MAX232 but a suitable replacement is the ST232, The ST232 is a much cheaper drop in replacement for the MAX232.

The final part of the board that i am going to detail is the expansion header. This was used for incorporating a Infra Red communications module (RX/TX). This header could also be used for adding wireless or any device that uses the SPI. The data lines that are sent to this header are taken direct from the micro controller rather than after the line driver. this allows for further expandibility.

The power supply used within this project can found in almost every other micro controller project and is also available in the .sch file attached at the conclusion of this project.

To power this device i have used a 9v Battery which is attached to the base of the PCB using double sided tape, this could be replaced with a battery holder. Further development could use 4 x AA 1.5v batteries, however replacement of the LM7805 with a low dropout equivalent would be required.

As usual i have attached the PCB and SCH files used with Altium Designer.

RS232Device – Schematic and PCB Files

Read IR – Handprog – Example Code used with Codevision (Requires Extra IR RX/TX Expansion)