The Adafruit Feather M0 has a lot more power and a lot more inputs and outputs than most Arduinos. This was handy as this project was working with 5 different devices: particulate sensor, screen, GPS, SD card reader, USB serial for debugging, and a Lipo battery.
The process I use for building up all complex Physical Computing projects is the same. Divide it into chunks, get each part working separately, then add them to the whole one at a time. Building up the system, debugging, and cleaning as I go.
First, getting the Plantronics Particulate Matter Sensor PMS-7003 to work.
Next get the display and SD card working.
Now, I have got the GPS working, I’m listening to satellites in my back garden! It’s picking up 6 different satellites - this suddenly feels like unobtainable high technology… in my hands.
I went through multiple iterations of the visual display. It’s a great way to experiment with interaction design, and a bit of Tufte. This version wasn’t final - it has the current particulate levels top left, GPS on the right, and the histogram to display the recent historic levels. My favourite suggestion was a kind of Tamagotchi that would look sad or shrivel up if exposed to bad air.
Circuits working and the code is getting close, so time to transfer to a soldered protoboard.
I like to use protoboards and JST-XH 2.54mm sockets for one-off prototypes.
This is the worst form factor in the world! My professional work would have made it easy for me to design a 3D printed plastic box. But, I like to use play projects to experiment and learn. I had an idea that this might be a big bold wearable like a necklace or an epaulette. It’s clumsy and awkward, and by challenging the conventions, I learnt a lot about why we make products the way that we do.
Here is the air quality sensor working on a laser cutter. The laser cutter is making a plywood dome lampshade.
While writing to screen, it also data logs a string with time, date, location and particulate levels to the SD card in a format that neatly imports to spreadsheets for handing graphing. Can you tell when we turned the laser cutter on?
Yes, that is a tribute to Burning Dan’s watermelon welder image.
I tried building up the code with Circuit Python - here is the particulate sensor working. I think Circuit Python has a lot of potential to replace Arduino - it has a lot of advantages and the awesome team at Adafruit are putting a lot of effort into it, so it keeps getting better with every release. I’m not skilled enough with Python yet, and at the moment, Arduino has a lot more online resources, so I went back to Arduino. But one day I think I will move to Circuit Python.
When I get back to this I will rework the form factor, either to be more sensible, or more ridiculously improbable.
I’ve put the code up on Github: M0 Air Quality Monitor