You don't need to buy a $30 Arduino just to get started with hardware hacking. Most of the functionality an of an Arduino is provided by the AVR microcontroller; that's the $4 chip you plug into the board. You can plug the chip into a solderless breadboard instead, and program it directly. This is more efficient, closer to the metal, and you can use your normal programming tools instead of the clunky Arduino IDE. Four dollars is too expensive for me* so I use the two dollar Attiny26 which is essentially the same chip but with less RAM and flash. It has ADC, PWM, timers, interrupts, serial interface, and so on. 2kB ought to be enough for anybody! By using standard C code instead of the crap Arduino libraries, you will need much less RAM or flash to run your program. This is a simple set of makefiles and source code to get you started with avr-gcc, the free C compiler for AVR. The ATtiny26 datasheet** is necessary to understand the meaning of special variables in the code. All of the examples can be downloaded into an ATtiny26 by issuing the command 'make install'. Start with "blinky" which blinks an LED. A hex file is included so you can test your programmer and chip without needing to get the compiler set up first. You can do 'make install' or download the file to the chip with avrdude manually. When you get bored with blinky, move on to "breathe" which makes an LED breathe like a macintosh in sleep mode, using hardware PWM functionality. The "quadrature" example tests reading an optical encoder by using hardware interrupts. Finally, if you're feeling bold, examine "servo", which controls a brushed dc motor with a high resolution optical encoder along with the PID motion control algorithm. I never quite got the "I" term to work right though. You will also need a DC motor, motor driver circuit, and encoder to try this out. If you wish to build your own chip flashing circuit, see the files "avrisp-buffered.gif" or "avrisp-unbuffered.gif". The first circuit is more reliable and noise-resistant, but the second is extremely simple to build. * no, not really. this document was written a long time ago. also, the physical pin layout on the newer chips is somewhat confusing. ** at https://ww1.microchip.com/downloads/en/DeviceDoc/doc1477.pdf