06/19/2021 at 23:53 •
I made the first revision of this device years ago, but it was when I transitioned to working-from-home full-time that I decided to give it an overhaul. Hence revision 2.
It's a great, whimsical device that gives me a little bit of happiness whenever I need to adjust the volume level of music or a video call.
02/11/2021 at 06:11 •
Here I incorporated some learnings from the intervening years. Upgrades from the first revision included:
- Schematic and PCB layout completely redone but using KiCad instead of Eagle.
- Microcontroller changed from an AT90usb162 AVR to an ATmega32U4.
- Remove the serial Tx/Rx connector.
- Remove the reset tact-switch.
- Use smd components instead of through-hole.
- Connect with a USB type C connector instead of a USB type B.
- Have the PCB fabricated (JLCPCB) instead of the home-made copper-etch method.
- A couple of LEDs on the bottom of the PCB purely to visualise the gray code (Rev 1 had LEDs but they only barely shone through etched sections of the PCB).
- Generally improved and cleaner code (still using the LUFA library).
In action. The LEDs are a fun way of visualising the gray code.
02/11/2021 at 06:07 •
This was a few years ago but I did record my goals for the initial revision of volcon:
- The optical encoder parts (sensors and disk) were salvaged from an old track-ball.
- The "knob" was made from the head drum of a VHS VCR (remember those?). This is the part that spins and is used to adjust volume on my PC.
- The optical disk was fixed to the shaft and optical sensors mounted off some strip-board and attached to the base of the drum.
- This assembly is mounted to a custom PCB with some nylon stand-offs. The PCB became the base of the whole unit.
- I cut some wooden rings to enclose the electronics and the base of the VCR drum.
- The custom PCB was designed in eagle and etched at home from some single-sided copper-clad board. The circuit was designed around an AVR at90usb162.
- The code is written in C and implements the LUFA library developed by Dean Camera.
- The whole unit plugs into a PC via USB and is automatically identified as a HID - no drivers required (tested in Debian Linux and Windows).
- It's a very simple device - rotate clockwise to increase volume, counter-clockwise to decrease.
Rev 1 PCB was a home-made etched job. Some minor bodging required:
The first revision was pretty ugly: