Whitterm-220 Clever Serial Terminal

21/12/18 UPDATE: Hello to Hack a Day readers. This project was shared when I did it but re-posted recently. It is 2.5 years old and there are many things I would do differently. I am considering work on a IO board specific to the project (RS232 driver, GPIO break-out, proper RX/TX LED buffers and potentially internal LiPo UPS). Glad there is renewed interest in the project as I still use it day to day :).

30/06/19 UPDATE: I did what I was considering! See the updated WT-220 2.0 here

The Whitterm-220 (WT-220) is my latest project. It’s a clever terminal, in the sense that it aims to emulate the dumb terminals of the 80s but with the versatility of something produced now. The name comes from my inspiration for the project: failure to win a VT-220 on eBay. I decided it would be fun to make a homage to the VT-220, that would actually be useful – a not so dumb, or clever terminal – that would do more than simply parsing RS232 levels into Ascii characters.

Noise Crayon – Noise Amplitude to Light Spectrum Converter

Continuing on from my Ambient Noise Level Indicator, I wanted to create an enclosure and make it stand-alone – not requiring a computer to do the processing. I ended up with a little device that converts noise amplitude to the light spectrum: Noise Crayon.

The Ambient Noise Level Indicator used the MCU serial host Processing to perform a FFT and various averaging routines to create an indicator for ambient noise. The idea being that it would change colour when background levels rise above a threshold. Moving to an ATMEGA328, performing this processing – especially the FFT – is asking a little too much of it. There are libraries but I’ve heard of limited successes.

Ambient Noise Level Indicator

As part of my work at MACH Acoustics – understanding how internal ambient noise levels affect different environments – I was inspired to create an indicator that shows when noise becomes higher than the base level. Some solutions already exist but they are pricey (because they used calibrated sound level meters), and not very engaging. I wanted something that could sit in a classroom and be a friendly indicator for the teachers and students, bringing the noise back down and perhaps learning something in the process!

The solution is a simple RGB led connected to the PWM outputs of an Arduino and uses Processing with the Minim Library to perform a FFT on the mic input – similar to a couple of other projects.

The operation is best described by the video below and commented code. I’ve added a handy GUI that allows the user to do a number of things:

• View the mic reading, background sample, instantaneous sample, current colour and sample difference.
• Change the threshold between colours and benchmark colour.
• Set continuous sampling, direct LED/mic feedback
• Resample the background
• Set the frequency band that is used for the amplitude average – this is useful to demonstrate that it is working and also to ignore low frequency to only show speech for example; screechy children in a classroom!

Its only a prototype concept at the moment. I’d like to design an enclosure that would suit the particular environment, such as a glowing star or dragon for a classroom.

Long-Range Coastal Autonomous Underwater Vehicle (AUV)

The second semester of the third year of my Mechanical Engineering degree was a group design project. My group of six was tasked with the design of a coastal autonomous underwater vehicle (AUV). I was assigned design of the gliding sub-system (a long-range AUV it had to optimise energy use) and was also the business manager (as part of the project we were required to develop a business plan).

HDD Clock

With a cupboard full of old hard drives and some spare time, I recently set about making a persistence of vision clock. Using the platter of a hard disk, a slot is cut to allow backlighting to be emit. When the disk is spinning at 5400rpm+ and backlight constant, the disk appears opaque, as the slit is ‘refreshing’ each point of the revolution faster than our eyes. The trick is to measure the revolution time then flash or change the backlight colour at a fraction of this revolution time at the same point each revolution, in order to create a light segment. For example, flashing the light at a frequency twelve times the disk frequency in phase with the disk will create 12 light segments:

$f_{light}=12.f_{disk}=\frac{12}{p_{disk}}$

Expanding on this, one can create a light based clock, which takes some getting one’s head around on first sight!