Loading files…
tl;dr it can collect, display, and store data locally and remotely, interfacing with various other devices.
Modular, low-cost hardware data logger that can be easily extended or modified by changing the cards connected to it. The idea is that instead of reworking or changing the entire concept, only some cards need to be replaced, making it more reusable.
The project is based on:
The project has the following features:
The STM32F103RBTx serves as the main microcontroller, handling data acquisition, processing, serialization, and user interaction.
The ESP32WROOM32E is only used for data transfer via WiFi; in the future, it will support FOTA (Firmware Over-The-Air).
Due to the availability of low-cost, high-quality PCB manufacturing, home-etched PCBs have become largely obsolete. While the PCB design for this project may be difficult to etch at home, it is still possible. Subparts of the circuit can be assembled on a breadboard, making the process much easier, and the modular software design allows for easy reuse of these components.
Toolchain: KiCad
Circuit exported to .pdf is available here (there are many PCBs due to modular design):
Embedded development is cool, but constantly flashing the target device for non-hardware-related logic, like the human-machine interface, can be time-consuming and frustrating. To make this easier, a simulation was developed that isolates the firmware not directly tied to hardware, adds stubs for drivers, and includes a GUI. This allows all high-level aspects, such as what’s displayed on the LCD, user interaction via buttons, and data parsing, to be tested without the need for hardware.
While this simulation handles the firmware, speed of execution isn't a concern since it focuses solely on high-level logic. For hardware or driver-related issues, traditional methods like using an oscilloscope or logic analyzer are still necessary, as the simulation cannot be used.
Unit tests are good (they are used in this project as well, along with code coverage), but they don't test the software as a whole. This is especially important here where there are multiple nodes (STM32, ESP8266, remote host). To fill this gap, fully automated integration tests were added.
It's good to let the machine handle the boring work of checking code quality.
Info on how to build the image and use the environment for development. Note that Simulation and Integration Tests (see below) have their own READMEs explaining usage, but they still use the common Docker image.
Updated
No comments yet. Be the first to ask about this board.