LoLRa project – Transmitting LoRa packets without radio using CH32V003, ESP8266, or ESP32-S2 MCU


The LoLRa project is a firmware-only LoRa transmission open-source project that works without a Semtech radio and instead relies on an I2S or SPI interface (so not exactly bit-banging) to transmit data with microcontrollers such as WCH CH32V003, or Espressif Systems ESP8266 and ESP32-S2 microcontrollers. LoRa is a proprietary protocol by Semtech, but people have been trying to reverse-engineer the LoRa PHY for years, and this culminated with a LoRa GNU Radio SDR implementation last year. But CNLohr found out you don’t even need a radio to send LoRa packets and you can instead use SPI or I2S interfaces from general-purpose microcontrollers to send packets that can be decoded by commercial off-the-shelf LoRa gateways and other chips. The current implementation is designed for the  ITU Region 2 (aka The Americas) targeting the 902-928MHz frequency band, but the code could be changed for Region 1 (EU, Russia, Africa) to target 863-870MHz […]

Review of ALLPCB PCB manufacturing services with an ESP8266 board (Sponsored)

E66R Transmitter PCBA

ALLPCB, a PCB manufacturer based in China, has offered us to review their PCB manufacturing services. We’ve taken them up on their offer and will report our experience with the ordering process, shipping, and the board itself, in this review. We will be using the E66 Transmitter board based on an ESP8266 module, and designed to read values from an I2C sensor and send them over RS485 using the Modbus RTU protocol for a range of up to 1.2 km. Since the E66 Transmitter can also connect to WiFi thanks to the ESP8266 module, Modbus TCP is also supported. Since we have our PCB design ready, we can go to the ALLPCB website to start the ordering process. We just had to upload the Gerber files, and then select parameters such as the number of boards, the number of layers, thickness, material type, and whether to include a Stencil or […]

smolOS brings a Linux-like command line interface to ESP8266 microcontroller

smolOS command line ESP8266

smolOS (pronounced small OS) is an open-source, lightweight MicroPython program that implements a POSIX-style (Linux-like) command line interface for the ESP8266 WiFi microcontroller. Krzysztof Jankowski (w84death) designed smolOS to be easy to use, allowing the listing and removing of files and also including the smolEDitor which, as its name implies, is a simple text editor. There are currently eight commands with the familiar ls, cat, and rm, plus ed to launch the text editor, welcome to show the welcome screen above, cls to clear the screen, mhz to set the processor speed to 80 or 160 MHz, and info to display some hardware and software information. The project looks to be a work in progress, and the developer highlights the editor is at the alpha stage of development, so more features may be implemented over time by Krzysztof himself or by the community of developers. I also assume other microcontrollers […]

PicoMQTT – An MQTT Client/Broker library for ESP8266 and ESP32

PicoMQTT ESP8266 MQTT Broker

PicoMQTT is a lightweight MQTT library for Arduino/PlatformIO optimized for ESP8266 and ESP32. It not only supports the MQTT Client mode like most existing solutions but also the MQTT Broker mode which transforms an ESP8266 or ESP32 board into an MQTT gateway replacing a Raspberry Pi board or an IoT gateway typically used for this task.

The library follows MQTT 3.1.1 specification, supports the publishing and consuming of arbitrary-sized messages, can deliver thousands of messages per second, and supports easy integration with the ArduinoJson library to publish and consume JSON messages.

MicroBlocks is a visual programming IDE for 32-bit microcontrollers


MicroBlocks is a visual programming IDE for 32-bit microcontrollers currently supporting the BBC Micro:bit V1/V2, Calliope mini (aka the German Micro:bit), Adafruit Circuit Playground Express and Bluefruit, Raspberry Pi Pico and Pico W, and various other boards including ESP32 and ESP8266-based boards. I discovered MicroBlocks in the list of talks for FOSDEM 2023, and although it did not make it to my virtual schedule, I thought it was interesting to look into and write about it. In their upcoming FOSDEM talk, Bernat Romagosa and Kathy Giori refer to MicroBlocks as small, fast, and human-friendly with development guided by four guiding principles: liveness, parallelism, portability, and autonomy. The IDE is inspired by Scratch, and as such, looks very similar to other visual programming interfaces I have used over the years. You can launch MicroBlocks from Google Chrome or Microsoft Edge on a PC (not a mobile device) without having to install […]

ArduCam Mega – A 3MP or 5MP SPI camera for microcontrollers (Crowdfunding)

Arducam Mega SPI camera

ArduCam Mega is a 3MP or 5MP camera specifically designed for microcontrollers with an SPI interface, and the SDK currently supports Arduino UNO and Mega2560 boards, ESP32/ESP8266 boards, Raspberry Pi Pico and other boards based on RP2040 MCU, BBC Micro:bit V2, as well as STM32 and MSP430 platform. Both cameras share many of the same specifications including their size, but the 3MP model is a fixed-focus camera, while the 5MP variant supports autofocus. Potential applications include assets monitoring, wildfire monitoring, remote meter reading, TinyML applications, and so on. ArduCam Mega specifications: Camera Type 3MP with fixed focus 5MP with auto-focus from 8cm to infinity Optical size – 1/4-inch Shutter type – Rolling Focal ratio 3MP – F2.8 5MP – F2.0 Still Resolutions 320×240, 640×480, 1280×720 x 1600 x1200x 1920 x 1080 3MP – 2048 x 1536 5MP – 2592×1944 Output formats – RGB, YUV, or JPEG Wake-up time 3MP – […]

OpenPLC open-source Programmable Logic Controller Suite works with Arduino, ESP8266/ESP32, Raspberry Pi, etc.

OpenPLC Editor

OpenPLC is an open-source, free-to-use Programmable Logic Controller Suite, compliant with the IEC 61131-3 standard, and working with a range of hardware platforms such as Arduino, ESP8266/ESP32, Raspberry Pi SBCs, as well as Windows and Linux machines. When Arduino unveiled the Arduino PLC IDE, we noted the languages defined by the IEC 61131-3 standard were licensed, and the PLC key for the Portenta Machine Control unit sold for $17.60. One reader complained about the high license cost per device, but Massimo Banzi, the co-founder of the Arduino project, replied it was cost-effective for smaller deployments: Actually it’s not that much money compared to the cost of other PLC software (thousands of dollars per seat!). This model helps small companies with not that many devices.. It’s possible to negotiate bulk licenses for companies. But there’s also another option with OpenPLC open-source PLC suite that does not require any license fee. That’s […]

DIY air quality monitor is based on Wemos D1 mini ESP8266 board, Sensirion SGP41 TVOC sensor

AirGradient DIY air quality monitor

Open AirGradient is a DIY air quality monitor based on the Wemos D1 mini ESP8266 WiFi IoT board programmed with Arduino and fitted with a range of sensors including an optional Sensirion SGP41 TVOC sensor through a custom PCB designed with EasyEDA. Two versions of Open AirGradient are available. The Basic model includes an OLED display, a Plantower PMS5003 PM sensor, a Senseair S8 CO2 sensor, and SHT30 or SHT31 temperature & humidity sensor, while the Pro version adds a larger display, a plastic enclosure, and support for the SGP41 TVOC sensor. Open AirGradient key components: MCU board Basic – Wemos D1 Mini Pro Pro – Lolin D1 Mini v4 with USB-C port Display Basic – Wemos OLED shield Pro – 1.3-inch OLED display Sensors Plantower PMS5003 PM sensor Senseair S8 CO2 sensor SHT30 or SHT31 temperature and humidity sensor module Optional Sensirion SGP41 TVOC & NOx sensor (Pro version […]