We are going to follow the excellent workshop from last month with one that builds on it. We will use a similar 8 pin Atmel microcontroller. The ATTiny13a we used last month is just fine for lots of projects, but we need more memory because we are going to emulate a USB keyboard. We will use a GPL library developed by Objective Development (http://www.obdev.at/products/vusb/index.html). It enables any AVR with enough memory to do a pretty good job of emulating a standard USB device. The AVR with this library is not fully within the USB 1.1 specification, but it works well enough for a lot of things. Before you try to make this into a commercial device, or something you depend on, please test and be sure it meets your needs. We are going to test it and see how well it works for us. I see lots of applications I could use it for. For example, I want a single big key to press when the next page is turned on the book scanner I hope to build. The Objective Development website has a page called Community Projects where you can see how a bunch of other people have used the library.
If you plan on attending this workshop, you need to bring a few things with you. You will need:
3 push buttons suitable for breadboarding
0.1 micro farad capacitor
A sacrificial USB cable
your computer, setup for Atmel programming
There are other parts needed, but we have them for you, unless we get too many participants. Tanners has .1 micro farad mica capacitors for 19 cents. The original design used electrolytic, but Tanners did not have those. I hope the mica ones work.
This project is derived from the work of Flip. You can see his project at: http://blog.flipwork.nl/?x=entry:entry100224-003937
The main change I made was to cut back the number of buttons from 4 to 3. He wanted to maximize the use of the little AVR chip. He disables reset on pin 1 to make it another button pin. This means he needs a special chip programmer. We are going to skip that complication and limit our design to 3 buttons.
This article is a work in progress. I decided to publish it as I go and maybe there will be some feedback to improve it before the workshop.