dinsdag 28 november 2017

Racal Cougar Standalone Programmer - Part 4

Since i posted about the stand alone programmer earlier this year i have been working on the protocol used to fill the crypto keys, a PCB for the programmer and a 3D printed case to house the electronics of the programmer.
Inside the programmer
In this post will try to give some details including the schematic and binary version of the code driving the programmer (the sketch it self will be released later).

Important:


This information is supplied "As is" meaning i'm not responsible for any damage to your precious Cougar. Also i don't have the time to support you on your build, feel free to send me an email message with questions but don't expect 24/7 support.

Schema


The design is basically made up of all the components described in a previous post, Racal Cougar Standalone Programmer - part 2 with the addition of some additional parts in a single schema used to create a custom PCB.

The programmer code should also work on a default Arduino Nano with a 4x4 keypad, an I2C LCD driver and a 20x04 LCD as long as you keep the pins connecting them to the ATMEGA 328 the same as used in the above schema.

A note on the I2C LCD driver

The I2C LCD driver is based on the NXP PCF8574A I2C 8-bit I/O expander. There are two versions of this IC: the PCF8574 and the PCF8574A which only differ in the usable I2C address range:

PCF8574         0x20 ... 0x27
PCF8574A      0x38 ... 0x3F

(see datasheet)

On the PCB and in the code i used the PCF8574A set to address 0x38.

PCB


I had some PCB's made that could be placed on top of the 20x04 LCD. This PCB contains the following parts:

  • DC-Jack and power regulator to generate 5 volt to drive the battery charger
  • Single cell Li-Po/ Li-Ion charger circuit with status leds.
  • 5 volt DC DC converter (without under-voltage protection so use li-po/li-ion's with protection circruit)
  • ATMega 328 micro controller (as used in Arduino Nano).
  • PCF8574A I2C 8-bit I/O expander set to address 0x38 (see datasheet)
  • Racal interface circuit (level shifter, DB9 connector)
The Gerber files for the PCB can be downloaded using this link.

Battery


I used a 18650 Li-Ion battery to power the programmer. There is no under voltage or reverse polarity protection so make sure you use a battery containing a protection circuit and when you accidentally connect it the wrong way around it will for sure damage the DC-DC converter IC.

The Sketch


I'm still working on the sketch and will release the code as soon as i think it is ready to be released. In the mean time i will provide a binary version of the sketch which can be downloaded using this link.

More information about how to upload hex files to the Arduino can be found on the Arduino forum using this link for example.


3D printed case


The housing of the programmer is made up of 3 separate parts that are tied together using M3 hex screws and M3 stand-off nuts:
  • Top part containing all the elctronics
  • 18650 battery holder that is placed on top of the keypad using 4 short M3 screws.
  • Bottom part with ventilation slots.
I printed these parts using PLA and PETG with a 0.4 mm nozzle and 0.2 mm layer height and as long as you set the correct speed/ nozzle temperature there is little shrinkage. I haven't tried to print the casing using  ABS.

The STL files for the housing can be downloaded using this link