Convention for compile time configuration of PlatformIO projects

Convention for compile time configuration of PlatformIO projects
Separation between code and data (specifically configuration data) is a critical concept in any development environment. Having worked a lot with the nodejs stack I found the way configuration is handled in embedded Arduino/PlatformIO projects surprisingly messy. I decided to come up with a convention to simplify this and I will describe it below. tl;dr, ...

Changing a “dumb” Rinnai water heater to a smart one 2

Changing a
This article covers a home automation project, in which I extended a control panel of a Rinnai gas water heater with an ESP32. The ESP32 then functions as an interface between the control panel and Home Assistant, a home automation software. tl;dr, the ESP32 sits as a MitM (proxy) on a few data lines inside ...

Repurposing unused steering wheel buttons as generic macros for an Android head unit 5

Repurposing unused steering wheel buttons as generic macros for an Android head unit
This article covers an automotive project, in which I connect unused buttons on my car’s steering wheel to a micro-controller, which in turn emulates a keyboard and mouse device to the car’s infotainment system via USB. tl;dr, the buttons form a resistor ladder and I use an STM32 black pill board to read the state ...

Should you throw away your CC41 HM-10 clones now that Android 8 is here? 40

Should you throw away your CC41 HM-10 clones now that Android 8 is here?
With the release of Android 8.0 (“Oreo”), I as well as others have noticed that they cannot find some HM-10 clone BLE modules when scanning for them with an Android 8.0 phone. Why is that happening and what can you do about it? tl;dr, the issue is due to a bug in the firmware of ...

40 cent DIY pressure sensor based on a capacitive principle 13

40 cent DIY pressure sensor based on a capacitive principle
Lately I am spending a lot of time working on Fochica. Fochica is a system that alerts parents if they unknowingly leave a child in a car. The Fochica device is Arduino-based, installed in a vehicle and communicates with the parents’ smartphones via Bluetooth. Fochica is a finalist in the Hackaday Prize 2017 competition and ...

Fochica™ – Forgotten Child in Car Alert

Fochica™ – Forgotten Child in Car Alert
Over the last 12 months I have been working on an interesting project with an important mission: to prevent forgetting children in vehicles. Kids who are left alone in cars are likely to suffer a heat stroke, often with grave consequences. Naturally, this is a bigger concern in hot countries, such as Israel, where I ...

Fixing a bad STATE pin on an MLT-BT05 BLE module 17

Fixing a bad STATE pin on an MLT-BT05 BLE module
This is a follow up article to the detailed review of the MLT-BT05 BLE module. In that previous post I mentioned that I got some MLT-BT05 modules with their STATE pin floating. No working STATE pin was an issue for me and I decided to investigate the cause. Update: same issue was observed with Bolutek ...

Efficient DC 12V to 5V conversion for low-power electronics, evaluation of six modules 29

Efficient DC 12V to 5V conversion for low-power electronics, evaluation of six modules
I am currently working on a vehicle-installed Arduino project. The device is designed to be powered constantly and I decided to use the car battery as the constant power source. I am designing the device for low power consumption, consuming 50mA or less, ’cause who wants to get stuck with a flat battery, right? Car ...

MLT-BT05 BLE module – a clone of a clone?? 124

MLT-BT05 BLE module - a clone of a clone??
Previously I covered the HM-10 Bluetooth Low Energy (BLE) module and its clone, the CC41-A.  Those are two popular modules that allow simple BLE communication through a serial interface and are handy with Arduinos and other hobby micro controllers. Make sure you read that article first as it provides important background for this curious update. ...

HM-10 or CC41-A module? Automatic Arduino BLE module identification 87

HM-10 or CC41-A module? Automatic Arduino BLE module identification
Lately I am working a lot with Arduino, which is a new field for me, hence fewer posts. Arduino is a very popular entry level embedded electronics platform. My latest Arduino project features Bluetooth Low Energy (BLE) communication. Arduino boards have no built-in BLE capabilities so I was looking to add a BLE module to ...