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 10

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 ...

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 ...

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

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 ...

Arduino sound level meter and spectrum analyzer 291

Arduino sound level meter and spectrum analyzer
Recently I have been doing some projects with the Arduino electronics platform. One of the projects involved benchmarking certain motors and required me to measure noise levels. I  will cover that project in more detail in one of the future articles, but now I would like to write about the process and best practices of ...

Understanding and improving VMware snapshot integration in FreeNAS 8

Understanding and improving VMware snapshot integration in FreeNAS
Those who followed my previous posts know that I am using a storage server called FreeNAS in a VMware virtualization environment. There are several benefits of why one would use a storage server rather than just a trivial storage solution. Two of such major benefits are snapshots and replication. In this article I will discuss ...

DiskSpdAuto: Automating IO performance tests and result collection using DiskSpd and PowerShell 3

DiskSpdAuto: Automating IO performance tests and result collection using DiskSpd and PowerShell
If you have followed my previous article titled IO Performance Benchmarking 101, you know that I am a big fan of using CrystalDiskMark for measuring disk IO throughput. CrystalDiskMark is a wonderful tool, but being a GUI application it is unsuitable for using in an automated environment or when you need to test several disks ...

Ten years in Tag Clouds

Ten years in Tag Clouds
Being an avid user of the Delicious bookmarking service for over 10 years, I have collected a significant amount (over 5K) of tagged bookmarks. Lately I have been doing some cleanups on this data-set. Being a big believer in automation, this repetitive task brought me to try the Delicious API. A few node.js scripts later ...