Embedded Computing
  • About
  • Blog
  • Hardware
    • Which Platform?
    • Controller Platforms >
      • Adafruit Platform
      • Arduino Plaform
      • BBC micro:bit
      • Espressif Platform
      • iLabs Platform
      • Raspberry Pi Platform (MCU)
      • Seeed Platform
      • Silicon Labs Platform
      • Teensy Plaform
    • Computer Platforms >
      • BeagleBone Platform
      • Raspberry Pi Platform (SBC)
      • UDOO Platform
    • Peripherals >
      • Shields
      • Grove System
      • Sensors
      • Actuators
    • Displays >
      • E-Paper Displays
      • Reflective Displays
      • TFT Displays
      • LCD Displays
    • Legacy Platforms >
      • chipKIT Plaform
      • 4D Systems Platform
      • Intel Platform
      • LaunchPad Plaform
      • BoosterPacks for LaunchPads
      • LightBlue Bean
      • Maple Plaform
      • Mediatek Platform
      • Microsoft Azure IoT DevKit
      • Particle Platform
  • Software
    • Exploring RTOS with Galaxia >
      • Event Library
      • Semaphore Library
      • Mailbox Library
      • Timer Library
      • Clock Library
      • SWI Library
      • Task Library
    • Ultra-Low Power with EnergyTrace >
      • Ultra-Low Power with MSP430
      • Ultra-Low Power with Energia MT and Galaxia
    • Using Integers Instead of Reals
    • Going Python?
  • IoT
    • IoT Platforms: Which Hardware? >
      • Matter with Silicon Labs MG24
    • IoT Services: Which Solution? >
      • Recommended IoT Solutions
      • Platform-Specific IoT Solutions
      • Other IoT Solutions
      • Not tested IoT Solutions
      • Notification Solutions
    • Get Date and Time from Internet with NTP
    • Fast and Easy WiFi Connection with QR-Code
  • Tools
    • How to Start?
    • Reference >
      • Asking for Help
      • Boards Pins Maps
      • Ruler
      • Boards and Plugs
      • I²C Logic Level Converter
      • Standards for Connectors
    • Training >
      • Texas Instruments Workshops
      • Embedded Systems: Shape The World — MOOC edX UTAustinX UT.6.02x
      • Embedded Systems - Shape The World: Microcontroller Input/Output — MOOC edX UTAustinX UT.6.10x
      • Embedded Systems - Shape The World: Multi-Threaded Interfacing — MOOC edX UTAustinX UT.6.20x
      • Real-Time Bluetooth Networks: Shape the World — MOOC edX UTAustinX UT.RTBN.12.01x
      • Systems Thinking with Texas Instruments Robotics System Learning Kit
    • Books >
      • Getting Started with the MSP430 LaunchPad
      • Getting Started with Arduino
      • Arduino Cookbook
    • IDE >
      • The Battle of IDEs
      • More Options
      • Assessing the Next Generation of IDEs
      • Tools for Documentation
    • Equipment >
      • Saleae Logic Analyser
      • Rigol DS1102E Oscilloscope
      • XDS110 Debug Probe with EnergyTrace​
      • Segger J-Link Programmer-Debugger
      • Nordic Power Profiler Kit II
  • Projects
    • Libraries >
      • Master I²C Software Library
      • Date and Time Library
      • highView Library Suite
      • Others Libraries
    • smartDevices >
      • I²C smartColours Smart Sensor
      • I²C smartRFID Smart Sensor
      • I²C smartLED Display
      • I²C smartControls Smart Device
      • I²C smartWiFi Smart Device
      • I²C smartBLE Smart Device
      • I²C smartNode Smart Device
    • IoT Projects >
      • Remote E-Paper Weather and Message Board
      • Typie-Walkie with LoRa and E-Paper Screen
      • Typie-Walkie with E-Paper Screen
      • Remote e-Paper Pictures Panel
      • Remote e-Paper Messages Panel
      • Industrial IoT Project
      • Remote Contactless Temperature Monitor
      • Using Node-RED for IIoT
      • Low Power Home Network Weather Monitoring
      • Updated Low Power Home Network Weather Monitoring
      • Weather and Security Station with Blynk
      • SensorTag to Blynk Using Node-RED
      • Pervasive Reporting
    • AI Projects >
      • Colour Recognition with Neural Network
    • Other Projects >
      • Air Quality Monitoring
      • Driving a Large E-Paper Display with a Compact Xiao RP2040
      • Low-Power E-Paper Weather Station
      • Portable Particulate​ Matter Monitor
      • FRAM-based E-Paper Screen Controller
      • General Purpose 3.5" Screen
      • Colour Recognition with Neural Network
      • A Low Power Weather Station
      • Digital Volt-Amp-Watt Meter
      • Mobile Measurement with LCD Display
      • Screen with SRAM for GUI
      • Volt-Amp-Watt-Meter for Grove
      • Multi-Touch Project with CapTIvate

Low Power Home Network Weather Monitoring

Despite the I in IoT, not all the IoT projects require a connection to internet and the use of cloud services.

​This project explores a low power local network for home weather monitoring. 

The LaunchPad, BoosterPack and SensorTag boards were sampled by Texas Instruments, and the e-paper screens by Pervasive Displays.

The Updated Low Power Home Network Weather Monitoring page describes an updated version of the project, now based on the CC1352 LaunchPad SensorTag Kit.
Picture

Hardware

The first decision is about the radio. There are three requirements: sufficient bandwidth, low power, range especially through concrete walls. 

The three contenders are WiFi, Bluetooth and Sub-1 GHz.
  • WiFi is too power hungry.
  • Bluetooth is low power but doesn't offer the required range, as radio is blocked by concrete walls.
  • Only sub-1 GHz meets all the requirements.
​​
Picture
The system includes three modules:
  • The Nodes report temperature, humidity, pressure, light and battery level every ten minutes. The nodes consist on either a CC1310 / CC150 LaunchPad with the Sensors BoosterPack or a CC1350 SensorTag.​​
Picture
Left: CC1310 / CC150 LaunchPad + Sensors BoosterPack
​Right: CC1350 SensorTag
  • The Base receives data from other nodes, collects its own, and sends all the measures to the screen every ten minutes. The base runs on a CC1310 / CC1350 LaunchPad with the Sensors BoosterPack.
  • The Screen features a Pervasive Displays e-ink screen, receives the data from the base and updates the display accordingly. The screen is powered by a MSP432P401R LaunchPad with the Pervasive Displays e-ink screen BoosterPack.
​
The CC1310 / CC1350 LaunchPad doesn't provide enough RAM with 20 KB to keep the frame-buffers required by the e-papaer screen. The MSP432P401R LaunchPad hosts multiple fonts and the frame-buffers for the 400 by 300 pixels screen with 256 KB of Flash and 64 KB of RAM.

Picture
Left: CC1310 / CC1350 LaunchPad + Sensors BoosterPack
Right:
MSP432P401R LaunchPad + Pervasive Displays BoosterPack.
Neither SPI slave or I²C slave are implemented on the MSP432P401R, so the connection is done using JSON messages through a serial port.
​

Picture
Picture
Although marketed as development kit, Texas Instruments recommends the CC1310 / CC1350 LaunchPad over the CC1350 SensorTag for development. However, both solutions do not share the exact same sensors.

Additionally, the total cost is not the same. Adding the Sensors BoosterPack and the CC1310 / CC1350 LaunchPad sums USD54, while the CC1350 SensorTag with the Debug DevPack totals USD44.
Picture

Software

Both the CC1310 / CC1350 LaunchPad and the CC1350 SensorTag support Energia MT with multi-tasking, and thus could be used with the Galaxia Library, which brings the most popular elements of TI-RTOS as objects.

The radio is managed by the EasyLink library, which comes with some serious limitations. For example, only broadcasting, or sending a message to everyone, is supported. Similarly, there is no acknowledgement of receipt and no wake-up on receive implemented on the EasyLink library.

However, those features are available, but are provided by the underlying library and not exposed by the Energia library. Address filtering is performed by the receivers: a list of authorised addresses is passed on to the radio, and only the messages sent to those addresses are received.​

Picture
I conducted a test with two CC1350 SensorTags (Nodes 1 and 2, top) and two CC1350 LaunchPads with Sensors BoosterPacks (Base and Node 3, bottom).

However, results from the CC1350 SensorTag differ significantly from those measured by the Sensors BoosterPacks, even after half an hour of use.

Picture
​Some measures just can't be trusted, as they differ too much from one sensor to another, even after 30 minutes. 
  • Temperature: the BMP280 of the CC1350 SensorTags (Nodes 1 and 2) report 27 °C against 20 °C by the BME280 of the CC1350 LaunchPads with Sensors BoosterPacks (Base and Node 3).
  • Humidity: the HDC1000 of the CC1350 SensorTags (Nodes 1 and 2) report around 31% against 60% by the BME280 of the CC1350 LaunchPads with Sensors BoosterPacks (Base and Node 3).
  • Pressure: surprise, all the sensors, both BPM280 and BME280, converge to 1014 hPa.
  • Light: the same sensor OPT3001 give slightly different values from the CC1350 SensorTags (Nodes 1 and 2) and the BME280 of the CC1350 LaunchPads with Sensors BoosterPacks (Base and Node 3).

Since the libraries are the same, do the sensors and the boards explain those significant differences? Obviously, testing only two items of each configuration isn't sufficient. I would need a large population for significant statistics.

In any case, the sensors would need to be carefully calibrated before implementing them for real.
Picture

Node-RED Extension

Apart from receiving and displaying the data on the e-paper screen, the MSP432P401R LaunchPad also formats it into a JSON string and prints it on the Serial port.

​The Serial port is connected through USB to a computer, where Node-RED runs and generates a dashboard. The dashboard is refreshed every 10 minutes.
Picture
The Node-RED flow is very basic and makes extensive use of the JSON format.

Once again, just like on the Pervasive Reporting case, there are multiple solutions for a given project.

Picture

Low Power

With the use of Energia MT and the Galaxia library, I rewrote the whole project around a clock, an event and a task. The node performs the measures every ten minutes, and enters low power mode between two measures. 

The XDS110 programmer of the CC1350 LaunchPad doesn't feature EnergyTrace, so I used the EnergyTrace-enable programmer from the MSP430FR5969 LaunchPad to measure the power consumption.
​
  • When idle, the node only requires 0.0505 mW / 0.0141 mA. 
  • Acquiring and sending data take 607 ms and need more power.

This combination allows a single CR2032 coin cell battery to last for more than one year.

Power for the base and the screen still needs to be optimised.

​Updating the screen lasts 17 seconds and requires 6 mW with peaks up to 50 mW.
Picture
For the MSP432 in charge of the screen, I implemented an interrupt on pin 23.

When pin 23 is set low, the MSP432 awakes and listens to the serial port for 1 second. If a valid message is received, the MSP432 refreshes the screen with the new values. Finally, it goes to sleep again.

When idle, the screen requires 5.6 mW or 1.7 mA. Updating the screen peaks at 101.9 mW or 30,9 mA.
​
Picture
Improving power consumption on the base would require implementing the wake-on-radio feature.

This feature is not part of the EasyLink library.

Black-White-Red Display

I updated the display and took the iTC 4.2 BWR e-paper with the additional red colour. 
Picture
When the evolution of a measure exceeds a threshold, the new value is displayed in red. ​

I set the threshold to
  • ± 1.0 °C for temperature, 
  • ± 0.5 hPa for pressure,
  • ± 1.0 % for relative humidity, and
  • ± 10 lux for light.

On the first capture, Node 1 has joined the network. On the second capture, the values for light have changed on Node 1 and Node 2, while Base and Node 3 have no significant changes and remain in black. On the third capture, no value has changed significantly and thus all are displayed in black.

Conclusion

The CC1350 SensorTag offers a great alternative to the CC1310 / CC1350 LaunchPad. Energia MT and the Galaxia library manage low power mode easily and deliver incredible results for battery life. 

​As always, the Pervasive Displays screen offers unrivalled contrast and definition, with low power requirement. The red colour brings a new dimension to the data displayed.

​However, the measures taken by the CC1350 SensorTag are significantly different from those from the Sensors BoosterPacks on top of the CC1310 / CC1350 LaunchPads, putting the whole project in jeopardy unless each sensor is carefully calibrated.

The project has been updated with the CC1352 LaunchPad SensorTag Kit. The details are available at the Updated Low Power Home Network Weather Monitoring page.
Picture

Links

  • LCD_screen Library Suite
  • Weather Sensors library
  • Galaxia library
  • EasyLink library
  • CC1310 / CC1350 LaunchPad
  • CC1350 SensorTag
  • Pervasive Displays screens and BoosterPack
Picture
Picture
Picture
Picture

Posted: June 13, 2018
Updated:
June 14, 2018; June 21, 2018; June 23, 2018; July 9, 2018; July 20, 2018
Powered by Create your own unique website with customizable templates.