PulkoMandy's AVR stuff

This repository gathers my electronics projects, so everyone can use and improve them.

Initially it was a lot of AVR based things, but the repository outgrew that and contains PIC and other electronics stuff as well. It's a bit of a mess but it's more convenient for me to have all these things in the same place, as there are often dependencies (some Kicad footprints are reused in several places, shared code libraries, ...).

List of projects

Well, as usual this got messier than planned. Anyway, here's an attempt to list the stuff. It's incomplete and often out of date.

There are two parts : libraries and project themselves. The idea is to separate the tools to quickly assemble them in a project. Each project provides a makefile, the libs are just sourcefiles.

Everything is licenced under the MIT licence, unless stated otherwise in the sourcecode.


(documentation will be done. maybe. someday.)

  • usart : access to the AVR serial port. Because printf is quite bulky and most of the time useless. (WIP)
  • ps2_keyboard : bit-bang reading from a ps/2 keyboard. Useful if you need a lot of keys.
  • amiga_keyboard : bit-bang reading from an amiga keyboard.


Keyboard and mouse related :

  • ps2toserial : read keycodes from a ps/2 keyboard and echo them to the serial port. (atmega8)
  • aktoserial : read keycodes from an amiga keyboard and echo them to the serial port. (atmega8)
  • ps2tousb : read keycodes from a ps/2 keyboard and act as an usb hid keyboard. (atmega8)
  • ak2tousb : read keycodes from an amiga keyboard and act as an usb hid keyboard. (atmega8)
  • matrix2ps2 : scan a keyboard matrix and act as a PS2 keyboard
  • pcwk : connect a PS/2 keyboard to an Amstrad PCW
  • pcw2hid : use an Amstrad PCW keyboard as an HID keyboard
  • xtk : connect a PS/2 keyboard to a PC/XT
  • AmiPS/2 : PS/2 mouse adapter for Atari ST and Amiga. Uses a PIC16f628


  • vusbdev : V-USB generic development board. Various applications, click the link !
  • GrIP2HID : Connect up to 4 Gravis Gamepad Pros to an USB port

Amstrad :

Most of the Amstrad stuff is documented at

  • CPC-CompactFlash : Finally a cheap and fast mass storage solution for CPC! (not really working)
  • FlashGordon : a new ROM expansion for CPC, using a flash memory chip.
  • microserial : a serial interface (and more) for the CPC/Plus (not fully working)
  • Ramcard : reverse engineering of the Ramcard ROM interface for CPC.
  • Albireo : USB host controller for Amstrad CPC, allowing to connect mass storage devices
  • PCW DkTronics soundcard clone (unfinished)
  • Willy : an adapter to connect Serdaco's parallel port soundcards to Amstrad CPC expansion port
  • Gemini : a 1MB RAM expansion for Amstrad CPC, which handles Amstrad Plus ASIC mapping to avoid conflicts with it
  • Nova : a real-time clock and nonvolatile RAM for Amstrad CPC

Other stuff :

  • blinkled : blink a led
  • beep : make music with an atmega8 and a loudspeaker
  • EPROxygen : UNIX software for SEEIT EPR-02 programmer (WIP)
  • ICSPBlaster : Driver for Altera USB Blaster (and clones) to program PICs with the ICSP protocol (WIP)
  • ledclock : A clock using large 7-segment LED displays
  • SCSI2SD : SCSI based SD card reader to increase the storage space on my Amiga. (WIP)
  • Lichee Pi Baseboard : a baseboard for the Lichee Pi Zero, to make a tiny computer with VGA, USB, ethernet and audio (64MB of RAM)

Getting the source

git clone ""

As the "libs" folder is shared between all the projects, you are more or less forced to get it all. Sorry!

You can use the "browse source" tab above to check them on your browser, if you just want to have a look. Or you can also browse through gitiles

Contributions are welcome, you can send them using Gerrit or just send me your work by email, I'll figure out how to include it.

Last modified 11 months ago Last modified on Jul 29, 2023, 3:11:18 PM
Note: See TracWiki for help on using the wiki.