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.
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).
For my tank project, I’ll be sending parameters over radio to control the motors so the data packets should be checked to see if they’re valid or if the transmission was corrupted. This is a widely used concept in computing – almost every transaction comes with a checksum which lets you know whether the data that was sent is the same data that you received. If you’ve ever seen a cyclic redundancy check error on older versions of Windows, you’ve seen a bad checksum; the hard drive transmitted something that the operating system checked and found it wasn’t correct.
Looks like someone has beaten me to it, and created something much better. Here is an implementation which uses the built-in CRC module on the Teensy 3 to improve CRC calculation speed, and also creates 32 bit checksums.