Forum Replies Created
I’m Radu, I live in Timisoara, Romania. I was trained as a software developer, been doing that for a few years now, focusing mostly on mobile development. Hobby brings me close to electronics and physics.
These are all valid points, Vinz, and we should see how to secure the central server dependancy.
But at least for the IP, things are not that bad:
– the units use DNS to resolve data.uradmonitor.com to latest IP
– if communication fails, the units will automatically reboot, part of a watchdog mechanism, so at least this part is covered.
As you said it is a good time to start thinking about a way “to break the dependency to the central server”, while keeping the solution easy to use (plug and play)
It sure does! 🙂 The risk is there, alright. The hardware is the problem, it just doesn’t have enough memory to store the download, and then replace the current firmware, like it’s done with other OTA updates.
The microcontrollers used are the atmega328p, with 32K of flash, 2KB ram and 1KB eeprom.
The binary firmware is currently getting close to 14KB.
I guess some will be able to update the firmware, while some will only be able to continue using the stock one.
Currently there is a single database for both development and production. There are two tables, one is devices and the other is uradmonitor.
Has a single row / uRADMonitor detector, the primary key is the device id. It holds only the latest readings, the 24h average for radiation (as CPM) , the detected location, the overridden location , country code and offline/online status (considered offline if no data received for more than 10minutes).
As we speak this has 116rows and uses a little over 12KB.
This now has 7,4 million rows and a size of 432MB.
Each unit in the network sends data via a HTTP Get call to the data.uradmonitor.com . The parameters include the unit ID, measurements and a CRC. All this data gets into the database.
So each minute, one station send aprox. 58Bytes of data to the server.
The problem is we got quickly from one unit to ten, and we are now approaching 100 units.
Probably we’ll need to archive some of the old data. Would be nice to find a way to do it automatically, to get faster DB queries on the fresh data, but for scientific purposes to allow slower queries but on ALL the data.
Delay check might help at least to exclude packets coming too early, so we could have this among other mechanisms.
PKI would be excellent, but probably impossible for the reasons you’ve mentioned, but also because it requires a relatively complex code, and the available memory is low.
We also need to think of a solution as close to plug-and-play as possible. If it’s too hard to implement on DIY units, it will not work.
We’ll need to open the units and do the update manually 🙁
Wish there was a way to implement OTA updates, but that’s simply not possible with the current firmware.
To update, a programmer is needed. I personally use the USPAsp. Any of these two variants will work:
Though I prefer the one with longer cable. Also it’s important they are set to 3.3V using the jumper. Using it set at 5V is dangerous for the Ethernet module in the uRADMonitor unit.