Keyboard Twister

From C64 DTV Hacking Wiki

Jump to: navigation, search


[edit] About

Shadowolf's keyboard twister is an ATtiny45-based hardware solution to fix some issues in the DTV's keyboard emulation as well as mapping german keyboard layout.

[edit] Features

  • Map german keys properly
    • Mapping to other keyboards is also possible. Please contribute any other mappings!
  • Fix switched SHIFTs
  • Fix F7
  • Fix powerup problem (keyboard does not work properly on first startup but only after reset)


  • "Twister should send $f4 to keyboard (and drop the resulting $fa) whenever it gets $aa. Zee used a PIC that did this to fix a PS/2 'compatible' keyboard (that I happened to own too)." - Nojoopa
  • Keeping some mapped keys pressed is visible on DTV side as multiple keypresses. This does not matter in BASIC but is annoying in games (e.g., in Elite decelerating using "/index.html" is very slow).
  • Add macro functionality for F9-F12. In record mode (Win+Fx?), write keycodes of keys pressed to EEPROM.

[edit] Contact

[edit] Download

Source code and binaries

[edit] Hardware

  • CKDIV8 has to be disabled (unprogrammed/1) so that the ATtiny runs at 8MHz.
  • PC_CLOCK/PC_DATA are C64DTV side.

Programming an ATtiny45 with AVRDUDE:
avrdude -p t45 -U flash:w:scancon.hex:i -U lfuse:w:0xE2:m

OSX with AVR-USB500 SMD:
avrdude -c stk500v2 -P /dev/tty.usbserial-A20008Du -p ATtiny45 -U flash:w:keyboardtwister.hex:i -U lfuse:w:0xE2:m

There have been reports of Keyboard Twister behaving weird because of the two 5k1 resistors. Better leave them away - in circuit programming of the ATtiny can still be done (detach keyboard for programming then).