Firmware

HM330x Sleep Fixes and SPS30 Support

The AttNode v3 firmware now has support for the Sensirion SPS30 Particulate Matter Sensor . At the moment the PM1, PM2.5, PM4 and PM10 values in µg/m³ are reported by the sensor. There is only support for the I2C-Mode for now. Since the Sensor needs a 5V power supply, you’ll need a power source that can provide that (e.g. USB), and connect the ATTNode via a PowerPack. the I2C-Pins of the Sensor can be directly connected to the ATTNode

Support for HM330x Particulate Matter Sensor

The AttNode v3 firmware now has support for the HM3301 particulate matter sensor from Seeed Studios . At the moment the PM1, PM2.5 and PM10 values in µg/m³ for atmospheric environment will be added to the payload if the sensor is connected and enabled.

The sensor can be connected to the regular I2C-pins (Vin, GND, SCL, SDA) and will run from a 3.3V power source. Be aware that the sensor can use up to 120mA of current, so your power source has to be able to provide at least 250mA (combined current of the sensor and the RFM95W while sending).

ATTNode v3 Firmware Now Uses PlatformIO

Recently PlatformIO added support for the Microchip ATTiny3216 used on the ATTNode v3. Starting today, all further development of the official firmware will use PlatformIO as the coding environment instead of Arduino IDE, because of the far better IDE, sensible library management and automated project configuration.

The old Arduino IDE variant of the firmware is archived as a separate branch arduinoide in the Git repository for reference purposes, but any new development will use the PlatformIO variant.

ATTNode v3 Set Send Interval via Downlink

In the newest revision of the ATTNode v3 firmware it is now possible to change the send interval at runtime using LoRa Downlink packets. This makes it possible to remote-configure nodes without reflashing them.

To set a sending interval it has to be scheduled as a downlink paket for the node as a 2-Byte uint value. To set an interval of 10 minutes for example, one has to send the value 0x000A (10 as a 2-Byte Hex), for 5 minutes it would be 0x0005 and so on. If you want to reset the node to the compiled in value just send 0xFFFF. Here is an example setting the interval to 10 at the TTN-Console:

ATTNode v3 Case and SHT21 Support

An adapted 3D-printable case for the ATTNode v3 is now available. Here is a first look of it (on the left in white) next to the case of an ATTNode v2:

ATTNode v3 vs v2 Case

Also the Firmware now supports the SHT21 Sensor in addition to the BME280.

ATTNode v3 Minimal Firmware Available

Since yesterday evening there is a first minimal firmware for the ATTNode v3 Available in the Git Repository . This Firmware does support the basic functionality of the Node as in:

  • Uses the MCCI LoRa LMIC for maximum LoRaWAN compatibility
  • Uses OTAA for Device Activation
  • Supports DeepSleep between Measuring/Sending for Maximum Power Savings
  • Implements the BME280 Sensor

As there is no support for the ATTiny3216 in PlatformIO yet, the firmware uses ArduinoIDE with the MetaTinyCore for the time being. Some hints about Configuring the ArduinoIDE are in the Repo. When PlatformIO Support becomes available for the 3216 I will switch to using it again as it has been with the ATTNodes v1/v2.

Measuring Brightness with a LED

twentysixer has developed a simple but effective way to detect brightness with the TinyLoRa. All that is needed is a simple LED:


With the TinyLoRa and a simple led you can detect brightness and darkness.

The LED is connected to 2 GPIOs in the reverse direction. The LED is charged and measured until it is discharged again. The darker it is, the longer it will take to discharge it. Clear LEDs with a low forward voltage are best suited, e.g. red or yellow

LoRa FrameCounter now Saved Across Reset/Power Loss

Up until now the Lora Frame Counter, which is a security feature to prevent replay attacks, was reset every time the ATTiny rebooted (e.g. because of reset or power loss). Because of this the Frame Counter Check in the settings of the Lora devices had to be disabled, or messages after a reset wouldn’t be processed by the TTN Backend.

I have now implemented a way to save the Frame Counter in the ATTinys integrated EEPROM, so it will survive resets and power loss. Because of that the Frame Counter Check can now be left enabled when using the current Firmware (starting from git commit 361f8e0b85). Please be aware that the EEPROM is reset when flashing the ATTINY, therefore you will have to reset the frame counter in the TTN-Console when reflasing a device with enabled Frame Counter Checks.