-
DIY low-power LoRa water-meter - Part 5 : Integration with TTN, Node-RED and Home-Assistant
Saturday, August 5, 2023
This blog post is part of a series of posts: Part 1 : Introduction Part 2 : From prototypes to V1.0 Part 3 : Hardware design Part 4 : Software Part 5 : Integration with TTN, Node-RED and Home-Assistant Now that the device is built and the firmware is running as expected, let’s see how to actually use it and get the measurements out of the sensor! As a reminder, the device counts pulses from the watermeter and sends the data (message number, battery voltage and number of pulses detected) to TTN using LoRaWAN technology.…
-
DIY low-power LoRa water-meter - Part 4 : Software
Saturday, August 5, 2023
This blog post is part of a series of posts: Part 1 : Introduction Part 2 : From prototypes to V1.0 Part 3 : Hardware design Part 4 : Software Part 5 : Integration with TTN, Node-RED and Home-Assistant Software The code is fully open source and available on my Codeberg account . The firmware is written in C, and mostly relies on two 3rd party libraries : LoRaMac-node and LittleFS.…
-
DIY low-power LoRa water-meter - Part 3 : Hardware design
Saturday, August 5, 2023
This blog post is part of a series of posts: Part 1 : Introduction Part 2 : From prototypes to V1.0 Part 3 : Hardware design Part 4 : Software Part 5 : Integration with TTN, Node-RED and Home-Assistant Hardware design Important notice : I’m a software engineer, and I have very limited knowledge and experience in anything related to hardware design and electronics. I can read a datasheet and a schematics, and I can plug components on a breadboard.…
-
DIY low-power LoRa water-meter - Part 2 : From prototypes to the final product
Saturday, August 5, 2023
This blog post is part of a series of posts: Part 1 : Introduction Part 2 : From prototypes to V1.0 Part 3 : Hardware design Part 4 : Software Part 5 : Integration with TTN, Node-RED and Home-Assistant As I previously said, I started this project more than 2 years ago. I obviously didn’t work on it full time since then, but I nevertheless tried many solutions to implement my idea.…
-
DIY low-power LoRa water-meter - Part 1 : Introduction
Saturday, August 5, 2023
This blog post is part of a series of posts: Part 1 : Introduction Part 2 : From prototypes to V1.0 Part 3 : Hardware design Part 4 : Software Part 5 : Integration with TTN, Node-RED and Home-Assistant Introduction My water consumption increased by a lot (+20%) in 2020-2021. Even if water isn’t the most expensive of my utility bills, I was still a bit concerned : maybe there’s leak in my water installation.…
-
Getting started with the BL618 and the BL618 development board
Saturday, January 14, 2023
Bouffalo has recently released their new chips : the BL616 and BL618 RISC-V MCU. Equipped with a WiFi6 + Bluetooth5 + Zigbee radio, this 32bit RISC-V single core chip runs at up to 320Mhz and is supported by 532KB of SRAM memory. Different variants of the chips exist with integrated flash and pSRAM memory. It also supports external flash and pSRAM memory. I was lucky enough to receive one of the first BL61X_MB development board.…
-
How to debug the Bouffalo BL60x MCU using JTAG, OpenOCD and GDB
Tuesday, August 23, 2022
BL602/604 is a RISC-V MCU by Bouffalolab. It’s integrated in the PineCone devboard by Pine64 , as well as in the PineDio STACK . This is a relatively new chip : developer tools are not mature yet and the documentation is often a bit lacking. This makes the developer experience not as comfortable is it should be. In this article, I’ll detail how to wire the PineCone to a JTAG adapter (the Pine64 USB JTAG adapter ), and how to setup OpenOCD and GDB to debug the code running on it.…
-
ULP (ESP32) : a simple example
Tuesday, January 15, 2019
The ULP is a low-power coprocessor (Ultra Low Power) integrated into the ESP32 MCU. It's a very small processor that can run independently from the main cores and that has access to the GPIOs, some peripheral and an I²C controller. The ULP is also able to run when the ESP32 is is deep-sleep mode. In this mode, nearly the whole MCU is powered-off, except the RTC domain, in which the ULP is built. It is also able to wake the ESP32 up. A possible application of the ULP is to acquire temperature while the ESP32 is in deep-sleep and to wake it up once it reaches a specified threshold. Programming the ULP seems very interesting, but even if the documentation from Espressif is very complete, I couldn't find a simple and easy example to learn how to use it. Here is then in details an ultra simple exemple : the traditional blink, which blinks 2 LEDs on the WROVER-KIT V3. …
-
ESP32, ESP-IDF, CMake & CLion
Sunday, January 13, 2019
I've been working with ESP8266 and ESP32 for some times now. Until now, I used the Arduino framework, mostly because it's easy : it provides a lot of services and libraries, allowing me to go straight to the point and concentrate on my own code. But I like to understand what lies underneath the top-layers, get closer to the metal, the transistors, the peripherals and the registers. For that, Espressif provides a well-documented SDK, and for which a lot of resources are available online. This framework, name ESP-IDF ("Ce framework, nommé ESP-IDF ("Espressif IoT Development Framework") provides toolchains and tools allowing the development of application for ESP32 MCU. In fact, the Arduino framework integrates this SDK to provide a higher-level API, and compatible with other platforms When I installed the IDF, I was surprised (in a very good way) to find CMake files! CMake is an open-source tool to manager the build process of a project, especially for C++ projects. And CMake is natively supported by my favorite IDE : CLion. So, shouldn't it be possible to create, edit, build and run an ESP-IDF project in CLion ? That's what we are going to see! (TL;DR : the answer is 'YES'!). …
-
Getting started with Neopixel (on STM32F4)
Sunday, March 29, 2015
I recently discovered Neopixels from Adafruit. These are cheap and simple to use little RGB LED modules. Multiple form factors are available : single LED, board with 8 LEDs, rings, strips, matrix,…). They can be driven by a lot of different processors (ranging from little 8-bits microcontroller to the BealgleBone Black, goind through Arduinos, for example. You can think of lot of applications for this kind of modules. On the net, I found people that use them to create high-tech jewelry, a luminous drum kit, clocks, and a lot of other very funny creations.…