I wrote drivers for the following devices: === Power devices === * **DC-motors** -- Both on/off cw/ccw and PWM drive. * **Stepper motors** -- With real-time stepping control, dynamic acceleration ramps, homing state-machine, etc. * **Peltier cells** and **PWM heaters** === Sensors === * **A/D converters** -- Interrupt-driven, high-speed sampling and data processing * **D/A converters** -- Employing PWMs, multiplexing of multiple channels and other advanced techniques * **GPIO lines** -- Direct or multiplexed, interrupt driven, polled, etc. * **NTCs**, **Thermo-couples** -- Temperature control * **Photocells** -- Light intensity measurement === User interface === * **7-segment BCD and british-flag alphanumerical displays** * **Alphanumerical LCD displays** -- Like the popular Hitachi HD44xxx controller. * **B/W bitmap LCD displays** -- Using a homebrew library to draw text and graphics (see DevLib). * **Thermal Printers** -- Both serial and full printing head control. * **Keyboards** -- Simple and matrix scan, with debounce and complex input gestures. * **RTC Clocks** -- Like the Dallas DS1302 and compatibles. === Communication and Networking === * **Serial ports** -- RS232, RS485, SPI, I2C and many other custom serial lines, both interrupt-driven and software buffered. * **Ethernet** -- CS8900A and RTL8019 (NE2000 compatible). * **USB** -- With HCI drivers provided by manufacturer. === Storage === * **NOR flash devices** -- Using several programming algorithms. * **Serial EEPROMs** -- Like the I2C 24Cxxx chips. A few sample drivers for the most generic devices are available in DevLib.