User Tools

Site Tools


hidkey_gpio

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
hidkey_gpio [2012/11/27 22:07]
steve_m [Hardware]
hidkey_gpio [2013/02/27 01:10] (current)
steve_m [Results]
Line 1: Line 1:
 ====== AVR Programmer built from a USB Keyboard ====== ====== AVR Programmer built from a USB Keyboard ======
  
-Recently, my old keyboard became louder and louder while typing, so I decided to buy a new one. But what to do with the old one? Ever since I saw the [[http://​www.pjrc.com/​hub_isp/​|AVR programmer that uses a USB hub]], I thought of abusing a USB keyboard for that.+Recently, my keyboard became louder and louder while typing, so I decided to buy a new one. But what to do with the old one? Ever since I saw the [[http://​www.pjrc.com/​hub_isp/​|AVR programmer that uses a USB hub]], I thought of abusing a USB keyboard for that.
  
 ===== Theory ===== ===== Theory =====
Line 36: Line 36:
 ===== Software ===== ===== Software =====
  
-First I wrote a small libusb-based test utility for experimenting with the keyboard. I'm directly communicating with the keyboard from userspace, unloading the kernel driver first.+First I wrote a [[https://​github.com/​steve-m/​hidkey_gpio|small libusb-based test utility]] for experimenting with the keyboard. I'm directly communicating with the keyboard from userspace, unloading the kernel driver first.
  
 ==== Speed ==== ==== Speed ====
Line 79: Line 79:
 </​code>​ </​code>​
  
-Well, as you can see, programming takes quite a while, mainly because of the slow input speed I mentioned before, but is very reliable. Since I assume that many people have some old USB keyboard ​laying ​around collecting dust, it still could be used as a bootstrap flasher for solving the old chicken-and-egg problem when building a faster programmer ([[http://​www.fischl.de/​usbasp/​|USBasp]],​ [[http://​www.ladyada.net/​make/​usbtinyisp/​|USBtinyISP]]) or as low-speed general purpose output for other applications. For example, many outputs could be driven using a simple serial-in, parallel-out shift register.+Well, as you can see, programming takes quite a while, mainly because of the slow input speed I mentioned before, but is very reliable. Since I assume that many people have some old USB keyboard ​lying around collecting dust, it still could be used as a bootstrap flasher for solving the old chicken-and-egg problem when building a faster programmer ([[http://​www.fischl.de/​usbasp/​|USBasp]],​ [[http://​www.ladyada.net/​make/​usbtinyisp/​|USBtinyISP]]) or as low-speed general purpose output for other applications. For example, many outputs could be driven using a simple serial-in, parallel-out shift register.
  
 ===== Update #1 ===== ===== Update #1 =====
Line 145: Line 145:
  
 I'd say that's quite an improvement,​ and very well acceptable for a chicken-and-egg bootstrap flasher :-) I'd say that's quite an improvement,​ and very well acceptable for a chicken-and-egg bootstrap flasher :-)
 +
 +This project was featured on [[http://​hackaday.com/​2012/​11/​26/​usb-keyboard-becomes-an-avr-programmer/​|Hackaday]].
  
 == Reference Literature == == Reference Literature ==
hidkey_gpio.1354050477.txt.gz ยท Last modified: 2012/11/27 22:07 by steve_m