The Polverine project is a mikroBUS™ board designed for environmental sensing and monitoring applications.
The demo application from this repository can be compiled using PlatformIO IDE inside Visual Studio Code IDE.
We support programming the Polverine board on Linux and Windows 11 OSs.
A PC with Linux or Windows, and an USB-C cable is all you need to program the Polverine board.
For more information and Polverine FAQ go to our website.
Various versions of 3D printable shields are availble from the community:
Visual Studio Code can be freely downloaded and from the CODE site Once installed on your PC, select and install PlatformIO from the "Extensions Marketplace".
To use the code in the polverine repository click on the "Source Control" icon in VSCode interface and follow instructions to download and install the latest GIT version.
Then enter https://github.com/BlackIoT/Polverine.git to connect to BlackIoT Polverine GitHub repository and download code samples and instructions.
Reference: Custom embedded board
The custom embedded board JSON file for polverine board to be used in PlatoformIO environmentis in folder /boards .
- Create
boardsdirectory in core_dir if it doesn’t exist.- in Windows:
%HOMEPATH%\.platformio - in Linux:
~/.platformio
- in Windows:
- Copy
polverine.jsonfile in this boards directory. - Search available boards via
pio boardscommand. You should seepolverineboard.
Now, you can use polverine for the board option in “platformio.ini” (Project Configuration File).
The ESP-S3 MCU supports native JTAG debugging using the USB port on Polverine.
The installation on Windows 11 requires an USB drivers custom configuration to work properly.
The USB port on the Polverine board opens 2 interfaces, one for "serial like" communication (called interface 0) and another one for JTAG debugging (called interface 2).
When starting the PIO debugger interface in VSCode you may see the error:
The green rectangle outlines the reason of the failure: error to open the USB port.
To correct this error you must use the ZADIG to configure the USB drivers.
Download and run the ZADIG application, select Options -> List all Devices menu option and select the drivers:
Interface 0 must use usbser driver, interface 2 must use libusbK driver.
Press on the "Replace Driver" button to select the correct driver.
No need to reboot the PC, just restart PIO debugging
The green rectangle contains the correct GDB startup messages.
The demos in this repository that communicate with the Bosch BME690 & BMV080 sensors need to use the SDKs published by Bosch Sensortec.
The SDKs source code and compiled libraries cannot be stored in this repository, but must be downloaded by the user from the Bosch website by accepting the licence agreement.
Each project that uses the Bosch SDKs will contain a README file with instruction for copying needed files from Bosch file tree into the project source tree.
Brief description of the Demo Projects contained in this repository.
- POLVERINE_BLINK this is the "hello world" for the embedded firmware: just blinks the RGB led. For more information README
- POLVERINE_DEMO basic example of reading data from the sensor and streraming to the USB port. This is the default demo firmware pre-installed on Polverine. For more information README
- POLVERINE_FULL_MQTT_DEMO full application implementing publishing sensor data to MQTT broker. For more information README
- POLVERINE_FULL_BLE_DEMO full application implementing publishing sensor data with BLE serial emulation. For more information README
- POLVERINE_HOMEASSISTANT_DEMO full application implementing publishing sensor data to MQTT broker compatible with Home Assistant. For more information README and README_SETUP for Home Assistant configuration
The PlatformIO IDE automagically loads the bootloader binary and the partition table to the ESP32-S3 MCU the first time it is programmed.
If you want to initialize and load the blink demo from the esptool commandline tools, follow the instructions in README file.
The Polverine board supports loading the firmware from the USB connection.
If the USB port is not responding (for example the MCU is in low power state) the device can be rebooted into bootloader firmware with the sequence:
- press boot button (SW1- Boot)
- press reset button (SW2 - EN)
- release reset button
- release boot button
- upload the firmware
- press reset button
- release reset button
When in bootloader mode the RGB led is lit.
Two NodeRed flows are saved in the nodered folder.
Refer to the README file in nodered folder for flows description.
Refer to the README file in mongodb folder for database description.
Polverine board is fully compatible with the Arduino IDE. To use it, install the ESP32 support package by Espressif Systems, and select "ESP32S3 Dev Module" as the board in the IDE.
Debugging features are fully supported.
To begin programming, use the ARDUINO_BLINK example. For sensor integration, download the SDKs for the BME690 and BMV080 sensors from the Bosch Sensortec website.



