Saboten is the latest incarnation of the FreakLabs wireless sensor node. The Freakduino was designed for learning about wireless communications, wireless sensor networks, and rapid prototyping. Saboten was designed for the specific purpose of outdoor environmental monitoring and ready to deploy as a wireless sensor node in the field. Saboten is based on the many environmental monitoring projects we’ve undertaken at FreakLabs working with groups like UNESCO and World Bank and the experiences we’ve built up around those projects.
One of the most prominent features of Saboten is that it comes with an optional ruggedized, weatherproof enclosure. The enclosure is rated IP65 which is an international standard rating system for harsh industrial environments with the specific designation meaning its waterproof and dustproof. This allows the electronics to be protected while being kept outdoors for environmental monitoring projects. You can also optionally drill holes for cable glands which allow you to run cables into and out of the enclosure without breaking the watertight seal.
The Saboten features the same radio as the Freakduino and as of this writing, supports the 900 MHz and 2.4 GHz long range radios. Which one you choose depends on your requirements, but the rule of thumb is that if you need speed, the 2.4 GHz radio is the one to use since it can support up to a 2 Mbps data transfer rate. If you need range, the 900 MHz radio is better since you get less path loss which can translate to a few extra km of range.
The Saboten radios also come with an RF front end which includes an amplifier on the transmit side and an amplifier on the receive side. On the transmit side, the amplifier is 500 mW for the 900 MHz version and 150 mW for the 2.4 GHz. version. For the receiver, the amplifier is 12 dB or 16x power gain for both 900 MHz and 2.4 GHz versions. In total, this translates into huge gains in range versus the stock radio. Range for the Saboten can usually be measured in kilometers rather than meters.
There is also an external antenna connector that reaches outside the enclosure and is protected from water via a rubber gasket. The external antenna connector allows you to connect all types of antennas to it. There is an optional stock omnidirectional antenna as well as directional antennas that will provide more range.
Power management is one of the most important features of a wireless sensor node. They are designed to stay in the field for long stretches of time without having maintenance such as changing their batteries. Because of this, you can optionally power the sensor nodes off of lithium ion batteries and charge them via solar panel. We’ve included a solar charging circuit that will keep the battery charged and works with any single cell lithium-ion battery. The typical cell is 2000 mAh but its also possible to use cells larger than this. The solar charging circuit will also keep the battery topped up in the field increasing its battery life to the actual functional life of the battery rather than a single battery charge.
The solar panel uses a 2.5mm JST XH connector to interface to the board and must be at least 5V. There is also a similar connector for the lithium ion battery. The battery connector is to the right of the solar panel connector and accepts a standard single cell lithium-ion battery. The power switch allows you to choose between powering the board off the USB VBUS power or the connected battery. To power Saboten from the USB, the USB module must be plugged in and connected to a USB host. To power Saboten from the battery, a battery must be plugged in.
There is also a real time clock (RTC) on the Saboten which serves many purposes. One of the biggest features of this RTC is that it’s temperature compensated. This means that it will have less drift outdoors in varying temperatures. Typically, clock accuracy is a function of temperature so as temperature varies, so do clock inaccuracies. By compensating for temperature, this clock is able to maintain a higher timing accuracy than for uncompensated clocks.
A real time clock is very useful for wireless sensor nodes and one of the primary applications is for timestamping data. The timestamp is used to align data into a time series, especially for data that’s collected from different sensor nodes. This timestamped data is tagged on to collected data and then can be stored locally as well as transmitted to a remote server for storage.
Along with timestamping, the real time clock serves to wake the node at specific times. It’s possible to put the node to sleep and use the alarm function of the RTC to have it wake up every hour, every day, or even at specific times every month. From a power management perspective, this is a huge benefit because the deice can then only expend as much energy as it needs to capture data and then conserve its remaining energy by sleeping. This allows the device to stay in the field for months and potentially years on a single charge.
Even if the main battery dies, it’s important that the clock IC retain it’s time. That way, when the sun comes out and recharges the main battery, it will still know what time it is and can resume operation. Because of this, a backup battery was added to the board to power the real time clock when the main battery dies. This backup battery uses a CR2032 and should last years on a single battery.
The Saboten also comes with on-board diagnostic circuitry to monitor critical parameters. There is circuitry to monitor the solar panel voltage, battery voltage, and temperature inside the enclosure. Using these diagnostics, its possible to diagnose if a board is failing and estimate how long until it completely fails. Combined with the SD card, it’s possible to log diagnostics for failure analysis. That way, when a device fails in the field, there will be a trail of timestamped diagnostic data to trace the failure. For instance, if the solar panel voltage stays low all the time, even if the sun is out, this could indicate there is a problem with the solar panel. At this point, it would be reasonable to estimate the battery would be continuously discharging and based on the rate of discharge, its possible to estimate how much time before the sensor node can survive before it needs to have maintenance done or it’s completely out of commission.
Another example is if the solar panel voltage is normal but the battery voltage is continuously dropping. This indicates the battery is constantly discharging and could indicate a rogue circuit that’s pulling too much current or that there’s a problem with the charge circuitry. This also would give an estimate of how long in the field the node has before it is required to be maintained.
The Saboten comes with a microSD card slot which makes it possible to use SD cards for an almost infinite supply of storage space for things like flash images, sensor data, and diagnostic data. The Saboten can run the standard Arduino SD card libraries that support FAT32 so its possible to use most off-the-shelf SD cards. You should be careful when choosing SD cards though. Some of the cheaper SD cards do not support power savings modes according to the SD card specification. I’ve had excellent results maintaining low power in sleep mode using Sandisk SD cards. I recommend testing the power consumption in sleep mode with any SD card you choose to make sure it maintains low power operation.
Saboten uses an external USB Serial module for programming and development. It’s assumed that when it’s deployed, the USB serial interface will not be needed so to save power and complexity, it was kept as an external module. The external module uses a CH340G USB Serial IC to interface
Saboten is the next step up from the Freakduino and is the culmination of many outdoor environmental monitoring projects. Whereas the Freakduino is designed for rapid prototyping and learning about wireless sensor networks, the Saboten is designed for actual deployable applications like collecting research data, monitoring structures, or automating tasks in harsh or outdoor environments. It encompasses the features that we wanted most in a wireless sensor node while we were working on our monitoring projects and we hope you find it a useful addition to your tool arsenal too.
- Download the latest version of the Arduino IDE
- Download and install the correct USB/Serial driver for the version of board you’re using
Freakduino Version | USB Serial Chip | USB Serial Driver |
---|---|---|
1.x | FTDI FT232RL | FTDI USB Serial Drivers |
2.x | FTDI FT231XS | FTDI USB Serial Drivers |
3.x | Silicon Labs CP2102 | Silicon Labs USB Serial Drivers |
- Download the latest board support package from the Freaklabs website
- Open the Arduino IDE, go to File/Preferences, and copy the sketchbook location folder.
- Go to that folder and copy the board support files into the /hardware directory. If that directory doesn’t exist, create it.
- This is what it looks like on Windows:
- This is what it looks like on Linux:
- This is what it looks like on Mac OSX (On OSX in English, that would be the Documents folder):
- Once you copy the files into the /hardware directory, restart the Arduino IDE and go to the Tools/Board menu. You should find the Freakduino boards in there.
- Select the Saboten series boards from the menu list
- Then re-open the Tools menu and go down to the Tools/Version menu. Select the Saboten Long Range, 3.3V, 8 MHz w/ATMega1284P version.
- The hardware board files should now be installed.
The first step is to install the chibiArduino library. You can find instructions to do this here.
You will also need to install the Saboten library and it’s dependencies in order to use all the peripherals on the board. You can get the Saboten library here.
Finally, you will need to install the SdFat library. You can get it from here. You can also use the SD library which is default for Arduino however the power management for SD cards does not seem to work properly. In sleep mode, the SD card still uses a lot of power compared to the SdFat library. This will require further investigation.
The library installation instructions should be the same as for the chibiArduino library. They will all go into the /libraries folder of your particular system.