Thursday, 30 January 2014

Making And Testing Touchololu...

Packaged Touchololu 0.1 PCB From PCBTrain
Here is more detail on the construction of the Touchololu touch panel interface for RepRap Marlin. An emulation of an MCP23017 and capacitive touch I2C interface aka Panelolu 2.

The PCB was designed in Eagle CAD and fabricated by PCBTrain. The PCB is a 1.4mm,   double sided and through hole plated. Intended to connect to a Hitachi HD44780 compatible LCD display. Software, running on a Microchip 16F1829 micro controller, emulates the MCP23017 used in a Panelolu 2 unit and is transparent as far as the LCD display is concerned. So potentially other LCD devices could be connected. If Touchololu configuration was required on alternate devices the Touchololu firmware would need a tweak.

PCBTrain notified a shut down, after I placed the order, over the new year. Adding quite a bit of delay to the order. So rather than 15 working days, it ended up being around a month before I received the PCB. The item was shipped in plenty of packaging and sealed in a pink bubble wrap. Presumably to extend the shelf life of the PCB. A PCBTrain engineer was good enough to contact me as I omitted an Excellon 2 drill file with the PCB layout when placing the order. I tried to use a family firm local to me; however the set up costs were quite a bit higher, although in volume they would have been quite a bit cheaper.

Touchololu Sensor Harness For Capacitive Touch Pads
The harness was soldered to the copper pads prior to placing in the plastic housing. The pads should ideally be 15mm square. However these 35mm (approx) x 10mm pads work well and suit the format of the Curvy Panelolu case. The soldered harness connection to the pad was placed to ensure when the pads are in place in the case they did not interfere with the LCD bezel. The LCD bezel sizes change with each manufacturer. So a little checking and planning is needed to avoid pressing the LCD bezel into the soldered connection when the display is screwed into location in the Curvey Panelolu case. The soldered location on the pad avoided the edge of the pad to help ensure some adhesive on the rear of the copper tape for robust tape retention. As the adhesive can be degraded by the high temperature of the soldering process. Note the second conductor running with the connection to each pad, not terminated. This is a zero volt referenced conductor which serves to stabilse the capacitance of the harness and reduce interference.

Interestingly you can order coloured ribbon cable from Farnell electronics in meter length increments. I used the coloured ribbon cable to allow me to readily identify each of the conductors.

Touchololu Capacitive Touch Pads In Curvy Panelolu Case
The harness was routed in the case and arranged so as not to interfere with the LCD display when its subsequently fitted. The copper tape was smoothed on the plastic to assist with adhesion and remove as much trapped air as practicable.

There are two unused conductors on the harness connected to zero volts. These were reserved for a possible additional connection.  They were trimmed to terminate a little before the nearest connection, rather than near the IDC connector.

The harness needs to be in a stable position, routed away from potential interference such as heavy current or noisy conductors. In this instance the cable is routed behind mounting posts and a fold placed into the ribbon cable. As the Microchip mTouch software library establishes a baseline capacitance on power up. Provided a few simple precautions are followed the software will compensate for the specific routing configuration and subsequent longer term variations should contamination arise.

Prior to installing the LCD display into the case the front was covered with Kapton tape where it might touch the capacitive touch pads.

Touchololu LCD Bezel Insulation Prevents Contact With Pads
Assembly of electronics components onto the Touchololu PCB is relatively straight forward. All of the surface mount components are mounted on the same surface. The remaining components are through hole components. Some care needs to be exercised as the SSOP20 16F1289 has pins which are very closed to each other. However the prototype was assembled by hand, using a standard soldering iron, desolder braid, no clean flux and a magnifying glass.

The surface mount components were soldered in place followed by the connectors. The unit was programmed using a PicKit 3 programmer. When the software had been validated and the voltages on the connections to the LCD verified. The PCB was soldered to PCB header pins previously soldered to the LCD display. The PCB header pins had allowed testing of prototypes as the header pins allowed the display to be directly inserted into bread board.

Touchololu PCB Connected To LCD Display
The Touchololu PCB has a set of connections directly matching the LCD connector connections. A connector can be used if desired but I elected to use a set of straight PCB header pins. Header sockets might be used, depending on the arrangements for the housing for SD card access as these add a little to the height of the connection.

The PCB was positioned to allow a micro SD card to clear the front half of the case. This will allow a slot to be placed in the rear of the Curvy Panelolu case for access to a micro SD card if required. Avoiding the need to modify the top half of the case. The PCB can be supported with a printed (3D printer) support designed to match the display PCB (clearing features as required). A support will reduce the risk of 'dry joints' being formed arising from repeated pressure on the soldered joints if the card is inserted and removed frequently.

Touchololu MCP23017 Emulator PCB Installed On Rear Of LCD
Also available on the PCB is a place for a reset switch for the Sanguinololu (not fitted. in the images shown). If a reset button is to be used, a support should be created for the Touchololu PCB. To reduce forces that would be transferred onto the connection between the PCB and the LCD display module.

Finally the unit was tested using an Arduino UNO. The test software is included in the LiquidTWI library. This code can be used to test a traditional Panelolu 2 unit as well.

Having tested the unit, a ribbon cable was used to connect the Touchololu to Huxley #710. The connector to Huxley #710 is two HARWIN - M20 Series 6 way connectors. These are frequently found inside personal computers. These need HARWIN - M20-1180042 - CRIMP SOCKET. I used  this connector to enable me to test in stages with a prototype and accommodate issues that might have arisen in the PCB layout.

As can be seen on the video, everything worked fine.
Touchololu PCB Mounted On Rear Of LCD Display
Testing Touchololu MCP23017 Emulation With Arduino

Touchololu circuit diagram

No comments:

Post a Comment