The aim of the MeteoFox project was to design an autonomous weather station using solar energy and Sigfox connectivity. The SPSWS is the main processing board of the device.
The boards were designed on Circuit Maker V1.3. Below is the list of hardware revisions:
Hardware revision | Description | Status |
---|---|---|
SPSWS HW1.0 | Initial version for prototyping. | ❌ |
SPSWS HW2.0 | PCB fitted to outdoor casing. Add connectors to external sensors and antennas. Separate SPI interfaces for radio and ADC. Improved power tree. Shielding added on the radio circuitry. |
✅ |
The weather station is also composed of 2 daughter boards which embed the meteorological sensors. These boards are located outdoor in a dedicated casing, out of the main enclosure.
Hardware revision | Description | Status |
---|---|---|
MPMCM HW1.0 | Initial version with all sensors. | ❌ |
THPSM HW1.0 | Initial version. | ❌ |
THPSM HW1.1 | Change form factor. | ✅ |
LUSM HW1.0 | Initial version. | ❌ |
LUSM HW1.1 | Change form factor. | ✅ |
As of version sw1.2.3
the embedded software is developed under Eclipse IDE version 2024-09 (4.33.0) and GNU MCU plugin. The script
folder contains Eclipse run/debug configuration files and JLink scripts to flash the MCU.
Warning
To compile any version under sw3.0
, the git_version.sh
script must be patched when sscanf
function is called: the SW
prefix must be replaced by sw
since Git tags have been renamed in this way.
The SPSWS boards are based on the STM32L041K6U6 (HW1.0) and the STM32L081C8T6 microcontroller of the STMicroelectronics L0 family. Each hardware revision has a corresponding build configuration in the Eclipse project, which sets up the code for the selected board version.
The project is organized as follow:
drivers
:device
: MCU startup code and linker script.registers
: MCU registers address definition.peripherals
: internal MCU peripherals drivers.components
: external components drivers.utils
: utility functions.
middleware
:analog
: High level analog measurements driver.cli
: AT commands implementation.gps
: High level GPS driver.power
: Board power tree manager.sigfox
: Sigfox EP_LIB and ADDON_RFP submodules and low level implementation.
application
: Main application.
Sigfox technology is very well suited for this application for 3 main reasons:
- Data quantity is low, weather data can be packaged on a few bytes and does not require high speed transmission.
- Low power communication enables energy harvesting (solar cell + supercap in this case), so that the device is autonomous.
- The weather station can be placed is very isolated places thanks to the long range performance.
The project is based on the Sigfox end-point open source library which is embedded as a Git submodule.