Serial port redirection from Windows to Linux with socat

My work computer is a Windows machine running several virtual machines with Linux and FreeBSD via VirtualBox. A part of my work requires developing software that interacts with hardware. Most of the time I have successfully used VirtualBox USB filtering to redirect USB devices to the virtual machines, but recently I got a USB device (CDC-ACM class) that refused to be forwarded to the VM.
Continue reading “Serial port redirection from Windows to Linux with socat”

Gentoo on Banana Pi

I like to use Gentoo for most of my tasks (except the smallest systems that run OpenWrt). I also wanted to have it on the Banana Pi. I did not find any specific manual for Gentoo and the Banana, so I followed the standard, two-step installation manual for any architecture:

  1. Extract a stage 3 tarball to the medium that will be the rootfs
  2. Try booting the kernel into it

Continue reading “Gentoo on Banana Pi”

RRDtool – quick tutorial


RRDtool is both a database and a graphing tool that is well-suited to visualize time-varying data like temperature, pressure and all kinds of telemetry.

There are many tutorials available, but they dig too much into the details (like the official one). Since I use RRDtool only for storing and graphing telemetry data I will explain how to do it the easy way.

I use RRDtool for graphing many sources of data, like my small solar system:
Continue reading “RRDtool – quick tutorial”

Banana Pi on battery power


The Banana Pi is a great alternative to the well-known Raspberry Pi. It is not a clone, nor a knock-off, rather a completely different, open single-board computer of a very similar size and good price. Most important features (compared to Raspi) to me are the 3 UARTs (one for the serial console, two free eg. for a GPS, the Raspi has only one in total) and a power management chip with battery charger.
Continue reading “Banana Pi on battery power”

B6AC battery charger teardown


I recently got some discarded NiCd batteries from emergency lighting fixtures (5 cells, 7 Ah) and I started looking for a way to check if they might still work. While searching for chargers I found model B6AC that: charges automatically almost any battery chemistry (various lithium, NiCd, NiMH, lead-acid), can discharge batteries in a controlled way, balance li-ion battery cells, can cycle the battery through several charges and discharges, indicates the charge and discharge capacity (and probably some more features I still do not realize).
Continue reading “B6AC battery charger teardown”

NodeMCU networked thermometer

In the last post I made a short introduction on development using the NodeMCU platform with a simple reading of a 1-wire thermometer. This time I will show how to make a basic networked application for the NodeMCU and the server part for a computer to gather some useful data.

The idea is pretty simple: do a temperature conversion, connect to a wireless network, transmit the reading to a server, maybe get back some configuration and start over.
Continue reading “NodeMCU networked thermometer”

First steps with NodeMCU


NodeMCU is a versatile board with the WiFi-enabled ESP8266 system-on-chip, USB to UART bridge, voltage regulator and some auxiliary components. With a price tag of about $9 on Aliexpress it allows you develop your own Internet “things” literally in minutes. The killer part is a build-in Lua interpreter, so no toolchain or development kit is required. The language is pretty easy. Text files containing Lua scripts are simply uploaded to the board and executed directly by the interpreter inside ESP8266. You can also type the commands directly via the terminal. NodeMCU firmware can also be uploaded to any ESP8266 module like the ESP-01, ESP-07 or bare ESP-12.

Continue reading “First steps with NodeMCU”