Real-Time Audio Spectrum Analyser

This project implements a real-time audio spectrum analyser using a PIC18F4550 8-bit microcontroller. The spectrum frequency analysis is performed by a highly optimised 16-bit Fast Fourier Transformation (FFT) routine coded entirely in C. The output from the FFT is displayed using a 128×64 graphical LCD to allow a real-time view of an audio signal. YouTube […]

Reverse Engineering the Stylophone

The DubReq Stylophone is an icon of English innovation originally made in the UK during 1968 and famously promoted by Rolf Harris until manufacturing was stopped in 1975. The ‘original’ Stylophone has (since 1975) been remade several times, firstly the ‘new sound’ Stylophone which was based around a 555 timer oscillator and more recently as […]


If you regularly breadboard USB designs you’ll know that every project requires you to build the basic building block of a PIC and associated components for USB communication before continuing with your experimental design. ToothPIC is a very small PIC18F2550 board which includes the required PIC microcontroller, 20Mhz clock, USB connector and the standard passives […]


For the first version of my Open Source Framework for USB Generic HID devices based on the PIC18F and Windows I made a quick example of how to use the library using a USB interface for an LCD. Now that I’ve completed the second version of the library I thought it would be fun to […]

PIC18F USART implementation with Go-back-N ARQ

As part of an ongoing project to build a robot based around the PIC18F range of microcontrollers I decided recently that the flexibility of the robot would be greatly improved with the inclusion of a two-way radio link which interfaced the robot with a computer via USB. To do this I purchase two Easy Radio […]


This project creates a RGB LED VU Meter which is controlled via USB by a Windows 7 or Vista host machine. The project serves several purposes: Firstly, it demonstrates how to read audio information from the Windows machine and pass this over USB to the device (which is a question which popped up several times […]

Rotary Encoder Demonstration

Rotary encoders are very versatile input devices for microcontroller projects, not only do they provide 360 degrees of rotational freedom they also allow digital positioning information to be gained without the use of analogue to digital converters (ADCs). When using rotational encoders in projects it’s possible to use the same encoder to represent a number […]

USB Performance Monitor

The USB Performance monitor is a PIC18F2550 based device which shows the performance of your computer using two analogue meters and a RGB LED. The design is based around a stock Hi-Fi VU-meter which is controlled using PWM from the PIC18F microcontroller. This project was inspired by a friend of mine who wanted a way […]

Controlling LED brightness using PWM

Pulse Width Modulation or PWM is a term you hear a lot if you are interested in controlling power output using a microcontroller. It has many applications, although one of the most popular amongst hobbyists is controlling the brightness of LEDs. In this tutorial we will cover the basic principles behind PWM and how it […]

Open Source Framework for USB Generic HID devices based on the PIC18F and Windows

If you’ve dabbled with PIC18F microcontrollers and the USB Generic HID standard before (perhaps you’ve even tried my Building a PIC18F USB device project) then you will have noticed that there is a lot of complexity in supporting USB on both the PIC18F and the Windows host-side of things. Getting beyond the basic steps of […]

1 2 3 4 5