Building Atmel Studio ASF Project using External Makefile

The Atmel Studio IDE is a useful tool thanks to the comprehensive debugging support and management of project drivers via the Atmel Software Framework (ASF) – coming from a hardcore Vim advocate. One thing I dislike about IDEs is the fact they hide the make process from the user making it difficult to break a project away from the software. On wishing to develop code on different operating systems (being Visual Studio based, Atmel Studio is limited to Windows), and outside the IDE, I set about creating a Makefile for an Atmel Studio project built around the ASF.

Continue reading Building Atmel Studio ASF Project using External Makefile

Wooden Bits – Binary Clock

Wooden Bits Gif

I’ve been meaning to make a binary wall clock for a while and to also try out kerf bending with the laser cutter. What put me off creating kerf bends before I found OpenSCAD, was the manual creation of all the lines in the right places. It’s the kind of repetitive, uniform task computers were made to do.

Continue reading Wooden Bits – Binary Clock

Laser Cut Adaptable Wire Dispenser in OpenSCAD

I wanted a wire dispenser that wasn’t fixed in place so I could move it to where I was working. To my surprise, such a thing doesn’t exist (I couldn’t seem to find fixed ones either, other than using a kitchen towel rail). Keen to put my new found love for OpenSCAD to use, I set about making such a thing.

The `projection()` command in *OpenSCAD* allows one to easily create 3d objects that can be exported as 2d .dxf for printing
The projection() command in *OpenSCAD* allows one to easily create 3d objects that can be exported as 2d .dxf for printing

OpenSCAD really suits this type of design requirement; something that is going to need to scale user defined variables (the wire reel in this case). I didn’t want to create a design for 6 wire reels from a specific manufacturer, then find they change their spindle, or I decide I need more reels. It’s particularly hard scaling a laser cut box because of all the teeth/dents that slot it together. With a GUI based CAD program, you’d send hours fiddling around with the spacings/length or trying to create patterns – then still ending up with bits that don’t fit together! This is actually my second project in OpenSCAD that I’d bashed together quickly. I’ve got another more complex project to document too.
Continue reading Laser Cut Adaptable Wire Dispenser in OpenSCAD

SoundBar VU Meter Laminated Wooden Speaker

I felt that the battery powered Bluetooth speaker I made could be improved with more colour! Taking a leaf from the VU meters on amplifiers of the 80s, I decided it would be neat to sandwich clear acrylic between the plywood layers, each with an integrated LED that would form a full body amplitude meter.

Having a look around, I found a IC made by Texas instruments that did the VU meter job for me: the LM3915. Below is a photo series showing the construction and completed unit. I designed this version as a soundbar to sit below my monitors at work, so it doesn’t have a battery or Bluetooth, making the wiring easier inside and a slimmer unit. For this one I also used an Oak stain rather than a clear stain on the ply and filled the text with black acrylic, which looks much better I think.

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!
The control panel when the Java applet is running.
The control panel when the Java applet is running.

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.

Continue reading Ambient Noise Level Indicator

MATLAB Finite Difference Time Domain Acoustic Modelling

As part of MACH Acoustics’ open window research, they wanted a FDTD model to visualise sound waves moving through various window opening scenarios. I created a FDTD function, that would create an impulse wave at a specified position then calculate discrete pressure points across a defined grid size and time step. Geometry (boundary conditions) could be loaded loaded into the function using scripts for different objects (opening, top/bottom swing window, baffle, etc), video saved and pressure, mic, time step data saved for repeat plotting (the solver took a few minutes to run so being able to plot existing data saved time). There is no currently no absorption so the sound does not decay, reflecting 100%. For short periods however this does not hinder the visualisation too drastically.

A GUI I created to control the simulation settings.
A GUI I created to control the simulation settings.

The videos below show it in action.

Opening with internal baffle plotted in isometric using surf

Opening with internal baffle plotted in isometric using surf

Laser Cut Battery Powered Bluetooth Speaker

I wanted to create a special birthday present for my girlfriend, whom had no speaker system. I decided a battery powered Bluetooth speaker would be neat, and having just learnt use of the laser cutter I came up with a layered design.

I created a mock up in SketchUp, which I used to visualise the layers together and make sure it would work.
I create a mock up in SketchUp, which I used to visualise the layers together and make sure it would work.

The internals consist of a 2x15W RMS digital amp, 2x15W 80 cones, a Bluetooth module, 1800mAh NiMH battery and a basic fast charger – plus a few voltage regulators to bring everything together. It’s all wired so that you can charge while plugged in and still play, and turn the Bluetooth on and off. Finally it’s all insulated with sheep’s wool I had left from doing my van. I found the insulation helped reduce reverberation (probably due to the thin layers) that muddied the mid-ranges. One thing I like about it is that the front and back can be easily changed: the front grill pattern to change the look and the rear could be tuned to include a bass port for better bass response.

I fairly pleased with the result and might start producing them if there is enough interest.