Bare scales PCB
A few weeks ago, I started work on internet connected bathroom scales, and I finally received my custom PCB’s to finish the job. I discovered that most digital scales use strain gauges to calculate the amount of weight on them, meaning there is almost no mechanical movement making them perfect to interface with.
The set of scales that I purchased handily had the Wheatstone bridge markings on the PCB silkscreen, which made connecting up the ADC nice and easy.Continue reading
For a while I’ve wanted to connect some scales to my home network to track weight day by day automatically. Its great having scales, but unless you can remember or write down the previous readings, its pretty useless if you’re looking to track performance. So I set about figuring out a way of getting an accurate reading from a set of cheap bathroom scales with an Arduino.
Having some experience with quadcopters, they all use something called an IMU – inertial measurement unit – which gives you the pitch, roll and yaw of the craft. These two values are generated by a gyroscope and accelerometer working together cancelling out each others possible errors. Additional measurements are normally available, a compass for direction and a barometer for altitude readings. With a GPS, the compass (magnometer) allows you to plot a course and have the vehicle follow waypoints; sounds like its worth a look.
An IMU board is now pretty cheap to get your hands on, in fact you can get a complete quadcopter ‘brain’ for $35 here, which contains an Atmel ATMEGA2560, with all of the above sensors ready to use. For my boards, a pre-made I2C board would be ideal which is exactly what I found; the GY-80.
Cycling is my main form of transportation which often means I’m travelling at night, hoping other road users can see me as I ride along. I used cheap LED lights for a while, but the batteries either ran out too quickly, or their light output was sub-par. I looked around for a better more expensive set but ended up – foolishly – deciding I could do a much better job myself.
The first iteration was an Arduino Fio with a stripboard MOSFET driver board which lead to my discovery of OSH Park and – after a few months of experimentation and feature-creep – I ended up with a GPS RTC enabled board reporting its position and battery level back through a GPRS module. This board eventually suffered a catastrophic failure which I’m still unsure why it happened, but I was left without lights which was my biggest concern.Continue reading
The BT Home Hub project is now almost finished, its just the last few quirks to work out and fix. For the last time, I’ve added a new module to my monitoring dashboard which allows me to see usage against time.
A spike in sent and received usage @ 2am
While checking out whether this page was working, I noticed an interesting spike in both sent and received traffic…
With the mechanics somewhat decided on, the control circuitry was the next on the list. After ‘mastering’ radio control, temperature sensing and internet connectivity, I was pretty well versed with the Arduino ecosphere, and felt pretty comfortable making my own PCBs with the help of OSHPark.
I felt the tank needed multiple separate boards, not only to compartmentalize functionality but to work around the maximum board size in the free version of Eagle I was using to design the circuit boards. After much deliberation, I settled on 4 boards; control, connectivity, LED, and power.
I’ve been working on collecting BT Home Hub 5A usage by connecting with PHP + cURL and extracting data from the status page. The last piece of the puzzle is figuring out the roll-over point of the data counter; it resets when it reaches a high enough level.
BT Home Hub 5A helpdesk screen
I collected data every second for a few hours while repeatedly downloading linux torrents (I have unlimited usage) and here are my results.
In an earlier post, I experimented with retrieving date usage and uptime stats from a BT Home Hub 5A, and cobbled together a PHP class to automatically load a privileged page. With access to the data, I need to parse it before committing the results to a persistent database. Step in regex…
I’ve had the BT Home Hub 5 for a few months now, and it keeps restarting and generally acting like a cut-price pile o’ shite. So, in an effort to monitor its shitey-ness, I figured that my home server could extract the uptime and the traffic usage every x minutes.
A BT Home Hub 5A in its natural environment, with what looks like pubic hair in the carpet
The HH5 is – on paper – a great little router especially as it has an Infinity modem built in meaning you can do away with the separate OpenReach white box. You can’t mount it on the wall which is annoying, and the feet are fairly useless at keeping it from toppling over, but it does output both 2.4 and 5Ghz wireless networks. One of its big downside, at least for myself, is the lack of any way of scripted monitoring (e.g. SNMP).
I’ve tried my hand – literally – at quadcopters, submarines, and RC buggies, and now its time to make a tank. Hmmm, I guess more of a tracked box but we’ll call it a tank.
While searching for information on the subject, I ran across a website describing how he had made the treads out of bike chain and acrylic, the motors were ripped from cordless drills, and the chassis was essentially adult Meccano. All of this looks to be within the realm of possibility, and has the potential for being massively over-engineered – the best way to engineer.