The Boris Beacon – A 1mW solar powered hifer beacon


Dave Richards (AA7EE) has written an article detailing his 1mW solar-powered HiFER beacon project, the Boris Beacon:

In this post from May of last year, I detailed the construction of a 1mW solar-powered HiFER beacon. I named it the Boris Beacon, in tribute to my neighbor’s cat. The beacon was never mounted permanently outside. I kept it indoors, powered from a small solar panel in the window, and feeding an “antenna” of sorts, consisting of the original dipole wires folded up into two small bundles. Obviously, I had no serious intention of it being heard by anyone; I just liked having it come on every day when the sun came up, and transmitting until later in the day, when the light was too low to sustain operation.

See the full post on his blog.

Viewing ARM CPU activity in real time


Jeremy Bentham writes:

In previous blog posts, I have described how an FTDI USB device can be programmed in Python to access the SWD bus of an ARM microprocessor. This allows the internals of the CPU to be accessed, without disrupting the currently running program.
In this blog I take the process one step further, and add a graphical front-end, that shows the CPU activity in real time

More details on Iosoft blog. Source files are available on GitHub.

DIY Arduino based RC transmitter



Dejan over at HowToMechatronics posted a detailed how-to on building DIY Arduino RC transmitter:

Now I can wirelessly control any Arduino project with just some small adjustments at the receiver side. This transmitter can be also used as any commercial RC transmitter for controlling RC toys, cars, drones and so on. For that purpose it just needs a simple Arduino receiver which then generates the appropriate signals for controlling those commercial RC devices. I will explain how everything works in this video through few examples of controlling an Arduino robot car, controlling the Arduino Ant Robot from my previous video and controlling a brushless DC motor using an ESC and some servo motors.

More details on HowToMechatronics’ project page.

Check out the video after the break.

PLA dielectric strength measurement

PLA Dielectric Strength Measurement

Kerry Wong did some experiment measuring the dielectric breakdown voltage of PLA:

In my previous post, I designed and 3D printed a high voltage connector for my Bertan 225-20R high voltage power supply. The silicone high voltage wire I ordered had finally arrived so I made a couple of cables using the connectors I printed. A few of my viewers had questioned the suitability of using PLA as printing material in high voltage applications so I decided to measure the dielectric breakdown voltage of PLA and gather some real-world data.

See the full post on his blog here.

Check out the video after the break.

App note: Simplify home audio systems With the PCM9211 – A versatile audio interface transceiver


A digital interface PCM9211 from Texas Instruments app note. Link here (PDF)

Large-screen HDTVs are selling in huge volumes over last few years, primarily driven by amazing improvements in picture quality & form factor (thinner screens). The form factor constraints from having skinny screens result in tiny built-in speakers that are undersized, under-powered and are typically aimed at wrong direction. Hence sound bars have exploded in popularity as complementary audio system by providing a sound experience that more closely matches the TV’s life-like pictures. In addition, with release of HDMI 2.1 specification we finally have a nocompromise audio solution for HDMI as part of the eARC [enhanced Audio Return Channel]. This tech note reviews eARC and simplified Sound Bar design using PCM9211 and how to interface eARC signals with PCM9211.

App note: Noise suppression for wireless headphones


Wireless headphone interference investigation from muRata. Link here

Recently, the popularity of wireless headsets has been growing as the number of situations where people “play sports while listening to music” increases.

Bluetooth is frequently used for communication between smartphones and headsets. However, audio can skip due to communication errors, so countermeasures are required.

This is an extremely important point of user evaluation and a difficult issue to resolve.
Here we depict an actual case to explain the interference mechanism in the device which causes the audio to skip, and key points for improvement to introduce useful countermeasures for solving the problem.
We hope that you will use it as a guide to help your design work proceed more smoothly.

ESP32 (38) – Factory reset

In the previous two posts of this tutorial, I explained how to perform an over-the-air update of the firmware running on the esp32 chip.

Sometimes you may need to revert to the factory firmware, that is the firmware stored in the flash memory when the chip was programmed. Many consumer devices have a button or a pin that, if you press it for some seconds, triggers a reset function:


In this post I’ll show you how to add this functionality to your project.


As explained in a previous post, the flash memory connected to the esp32 chip is divided into some partitions, based on a layout configured when you program the chip.

Partitions that can store firmwares are of the app type. The partition that contains the firmware programmed via USB, has the factory subtype.

The esp-idf framework includes a method to search partitions in the flash memory:

#include "esp_partition.h"
esp_partition_iterator_t esp_partition_find(
  esp_partition_type_t type, esp_partition_subtype_t subtype, const char* label);

You can specify some filters to narrow down the results (they are not mandatory, use NULL if a filter is not needed): the type of the partition, the subtype and also a specific label.

If you want to look for the partition that contains the factory firmware, you can therefore write:

esp_partition_iterator_t pi = esp_partition_find(

The method returns a partition iterator, that is an object that allows to scroll through the partitions found.

If the search was successful, this object is not NULL and you can get a pointer to the partition with the method:

const esp_partition_t* esp_partition_get(esp_partition_iterator_t iterator);

After the use, it’s important to release the iterator object with:

void esp_partition_iterator_release(esp_partition_iterator_t iterator);

After having obtained the correct partition, that contains the factory firmware, you only have to flag it as the boot partition and restart the chip:

if(pi != NULL) {
  const esp_partition_t* factory = esp_partition_get(pi);
  if(esp_ota_set_boot_partition(factory) == ESP_OK) esp_restart();	


In the following video you can see how to perform a factory reset. In the video you can also learn how to “count” the number of seconds a button is pressed to trigger the reset function only after a fixed threshold (3 seconds in my example). Enjoy!

MusiCubes project


Michael Teeuw published a new build:

Now that the MusiCubes tray is assembled and the RFID-sensor and LEDs are working as expected, It’s time to add the last feature of the original concept: invisible capacitive touch sensors to control the volume of the music.

See the full post on Xonay Labs blog. Be sure to see Part 1 and 2.

Check out the video after the break.

App note: The Phytochrome system – Why use far-red?


App note from Würth Elektronik on why plants evolved to use far-red wavelengths and why it is essential for them. Link here (PDF)

The light requirement of plants is now known to be far more complex than originally thought leading to the development of numerous LED technologies that produce a variety of different light spectra, both monochromatic and polychromatic.

Far-red encompasses wavelengths 700 – 800 nm, a region of light that is on the edge of visibility in humans. However, these wavelengths have been proven to result in faster growth, increased biomass and better sensory characteristics (e.g. smell, taste, texture, color).