ppk_usb_lufa
Palm Portable Keyboard USB conversion
inspired by this great project ([featured on Hackaday.com](featured on HackADay)
with the main goals/changes:
- keep electronics inside the fold-up case
- make it possible to use multimedia and other key-codes
the later was achieved by porting the arduino code to plain avr-c with lufa for the HID-keyboard handling and half a software serial implementation based on application note avr309 (with code snippets from here)
parts list
dis-assembly
- remove the metal backplate on the left side (side with the palm-docking port) - take care not to cut yourself on the sharp edges
- remove the two screws connecting the fold-up stand to the keyboard followed by the two holding the docking-port
- free the flexible flat cable from the plastik parts (might need to cut some plastik away)
- desolder the spring-pins from the flat-cable
- to be able to fit the Micro into the tight space its micro-usb plug needs to be desoldered (... fun)
wiring
since these keyboards where built for multiple kinds of PDAs the dock-adapters had to be easily exchangable - that seems to be the reason why the flat cable running from the dock itself is joined to another "commmon" 6-wire flex cable with a special conductive tape that runs the remaining length around a bend to the keyboards pcb on the other side
this common flex cable has the following pinout
viewed from above - "through" the keyboard; from left to right:
Number |
Name |
F1 |
VCC |
F2 |
RX_PIN |
F3 |
RTS_PIN |
F4 |
probably TX_PIN, unused anyway |
F5 |
PIN_DCD |
F6 |
GND |
On the Micro the following pins are used:
flex cable |
name |
Micro Pin |
- |
- |
(reset to GND via the tactile switch) |
F1 |
VCC |
Pin 5 |
F6 |
GND |
Pin 6 |
F2 |
RX |
Pin 3 |
F3 |
RTS |
Pin 2 |
F5 |
DCD |
Pin 4 |
- |
- |
pulldown resistor from Pin 8 to Pin 3 |
assembly
- wire the usb-breakout to the Micro (in the final assembly the former usb port faces the micro-usb breakout)
- wire the Micro to the flex cable where the spring-pins of the docking connector used to be
- on the Micro board Gnd and Reset pins are spaced so that the reset button fits perfectly in between (covering +3V and +5V pins which need to be insulated!) putting the button on the board so that it sits flush
- remove the support of the usb-port in the 3d printed part and slightly drill out the screw holes with a 3mm drill, so that the screw heads are flush with the surface
- fixing the Micro and the usb-breakout with some hot-melt glue to the 3d-printed part
- slide in the back-cover (might need to apply some heat to bend it a litte over the electronics, should close up flush with the other 3d printed part)
code compilation
requires gcc-avr and avrdude to compile via the makefile