For some time now I’ve been swamped with work, among other things working to finalise one of the hardware products I designed, the uRADMonitor D. This is the very one that goes back to 2015, and had a very quick start with the prototype being ready in only a month.
From BETA to the Final Version
As a BETA, everything was mainly working. The major modules were all in place, software was functioning properly, the device was doing its job. Almost.
Then the battery was leaking current resulting in quick shelf discharge, with device turned off. Why? Because of this and that, the idea is a new PCB had to be reworked.
Two new features impacted the design, as I added an SDCARD slot for offline data storage and a GPS module to precisely map coordinates to location. This required a new PCB design and a new product iteration. The WLAN antenna was removed in favour of an internal ceramic antenna, and the aluminium enclosure design had to be changed to find a way to let the radio waves escape the Faraday cage:
Next, the real time clock expressed some erratic issues, sometimes the second it counted was not really a second, it was more or less, resulting in incorrect time keeping. We don’t want a time machine here, we just need accurate time measurement, to accompany the data measurements. This had to do with some RF interference from the DC-DC converters, nasty stuff. Yes, new PCBs had to be made again. More time, more tests.
Finally, things were getting pushed the right direction, but at the cost of considerable time and effort. The 5th PCB iteration was performing good, all modules, all tests. I sent it in production:
The BETA code was 3000 lines of code. I rewrote the firmware completely. I didn’t write a bare OS for it, although I have to admit some threads would have come handy. Instead the implementation uses interrupts to do some of the essential things in parallel and that is good enough. So we have real time sensor readings via dedicated drivers, QVGA screen display, user touch gestures being recognised via the touchscreen, mini-webserver running in the background and Wifi Access Point, SDCARD I/O file ops, GPS readings, central server data sync. All this on an 8bit microcontroller, true it’s the powerful 2561 from Atmel.
Code got to 9000 lines. This includes the new UI , yes, there is an actual UI on this low level thing. Also the virtual keyboard, you need for configuring the WLAN. It’s almost a smartphone, built from scratch:
Finally, the LCD and the new GPS antenna needed some plastic parts to be held in place. I needed an affordable solution, but the only option I could use was via the silicone mold. Drawing the 3D models, then sending them to the manufacturer for ABS injection:
And a final photo (but without the final plastics):
Done? Unfortunately not yet. uRADMonitor D is an IOT device, and so it has a server component. With the addition of the GPS receiver, this unit became highly mobile, and there was no proper support for that. So a new development direction was to implement backend and frontend support for the new mobile uRADMonitor units:
I am about the ship the first batch of units to the early customers. For those of you interested in purchasing this hardware to support the development of the uRADMonitor project, you can find more info here.
For now, this product is complete, and life goes back to the “normal” pace.
The year is 2017 …
Huge work achievment with this model D.