News and Recent Posts

Setting up a Raspberry Pi as a Headless Computer in September 2021

September 4, 2021

This post is a draft of a projected multi-part guide on the installation of the Lite version of Raspberry Pi OS on a Raspberry Pi without connecting a monitor, keyboard or mouse to the single card computer. It is meant to replace a similar guide written in late 2019. While most things have not changed much in the intervening two years, the arrival of the Raspberry Pi Imager greatly simplifies installing the OS on a headless Pi right from the start [...more]

Web Site Offline in Previous Three Days

September 1, 2021

What can only be qualified as a malevolent attack brought down a number of servers belonging to the web hosting provider that I use. For three days, the provider has worked to restore these systems with mitigated success, but I was among the lucky customers [...more]

E-mail Notification of a Changed or Lost Public IP Address

August 9, 2021

This post presents a Python script that sends an e-mail notification if the public IP address (aslo called the outward facing or wide area network IP address) of the local area network has changed or if a dynamic domain name does not resolve to the current public IP address [...more]

I²C Clock and EEPROM Memory Module in Raspberry Pi OS

Last Update: July 20, 2021. Original version: June 21, 2020

Corrected a mistake in the original post. Thanks to Jürgen Bellin and Seamus de Mora I now know that it is possible to connect a real time clock to I²C bus 0 [...more]

DIY Tasmota Backups

July 19, 2021

Version 0.3.6 of the utility, that only used the MQTT broker and would not run at all if the mosquitto library is not installed, and tasmotasbacker0 which did not use MQTT at all have been combined into a single utility that offers two ways to discover Tasmota devices. Moreover the new 0.9 version of tamostasbacker will run on a system whether the mosquitto library is installed or not [...more]

DIY Tasmota Backups (version 0.3)

Last Update: July 10, 2021. Original version: July 5, 2021

One can find simple scripts that download the configuration of Tasmota devices. I wanted something which offered a few more options. On the other hand, there are much more complex solutions which include gathering all downloads into a database. That seemed much more than necessary for my needs: backing up to a sinple directory on a drive is sufficient. So here is what I came up with [...more]

Tide Data in Canada with Python - new REST API (May 2021)

June 15, 2021

The Canadian Hydrographic Service (CHS) at Fisheries and Oceans is changing its way of doing things and now offers access to its data a REST application programming interface. It is therefore necessary to modify the Python scripts which obtain the hours and heights of high and low tides [...more (in French)]

First Designs with OpenSCAD

June 9, 2021

After printing a few objects created by others with my new 3D printer, I wanted to try my hand at creating a practical 3D object with OpenSCAD. This post shows how I designed a tablet stand made of two three-dimensional A's with curly hooks at the ends of the legs that wrap around the bottom edge of the tablet [...more]

On Translating Free Pascal/Lazarus Programs

Last Update: May 31, 2021. Original version: May 27, 2021

A fractious look at the GNU gettext translation system as implemented in Free Pascal / Lazarus... Finally getting around to partly documenting the use of the reference field when dealing with PO files in the poutils utilities. [...more]

Not Much Going On

May 15, 2021

It may seem as if not much is happening on this site lately. But appearances can be deceiving and a number of projects are in various stages of development. Recently, I have uploaded three projects to my GitHub account:

I hope to find some time to provide more information about these projects here in the future.

This is a trend that will continue: posts with more or less detailed explanations will continue to be available here, but accompanying code will be made available through GitHub if I think that distribution model is best.

python-is-python Pain

May 9, 2021

There is conflict between the python-is-python3 and python-is-python2 packages that may need to be resolved when installing TortoiseHg and Virtual Box in Mint 20.1 [...more]

Scanning with the Brother DCP-7040 Multifunction Printer in Mint 20.1 or Ubuntu 20.04

Last Update: May 15, 2021. Original version: April 3, 2021

Yet again, the scanner in the Brother DCP-7040 multifunction printer does not work out of the box in Ubuntu 20.04 and Mint 20.1. In addition to fixing the changes to the directories that contain third-party scanner drivers, it is now necessary to install an old library to manage USB connections [...more]

First 3D Prints with an ANYCUBIC Mega Zero

March 29, 2021

In September 2020, I made a snap decision to get a ANYCUBIC Mega Zero 3D printer almost immediately after seeing YouTube videos about it. The printer was available in Canada at a surprisingly low price. The version I bought is being supplanted by the Mega Zero 2.0 but currently Americans can obtain the original Mega Zero at a very low price of $119 US + shipping charges. Not knowing how long this offer would last, I hurriedly wrote down my first impressions of the printer, in the hope that they could help other beginners who, like me, just want to try 3D printing before committing to a large expense [...more]

OctoPrint on a Raspberry Pi 3 - the Hard Way

March 25, 2021

As a temporary measure, I have installed OctoPrint and MJPG-Streamer on a Raspberry Pi 3. Since I intend to replace the Pi with a different single-board computer, I did not install the SD image OctoPi but instead proceeded with a manual installation of the needed packages just as I will have to do it with the other sbc in a short while [...more]

Installing WireGuard on openmediavault 5.6.1 (March 2021)

March 3, 2021

Installing a WireGuard virtual private network server on openmediavault running on an x86-64 system was faster and simpler than on the Raspberry Pi. The user and server configuration script by Adrian Mihalko worked just as well with just a little tweak for the network interface name. [...more]

Installing an OS on the Rock Pi S

February 12, 2021

Setting up Wi-Fi with a static address on this very small single-board computer running the Debian or Ubuntu OS images provided by Radxa turned into something of an obstacle course. To be fair, part of the difficulties were the result of stupid mistakes and in the end, the solutions is pretty simple. I hope this post will nevertheless be useful [...more]

Installing and Configuring WireGuard on Raspberry Pi OS (January 2021)

Last Update: January 14, 2021. Original version: July 4, 2020.

A second version of RaspberryPi OS has been available since December 2019. Preliminary tests have shown that, much like its predecessor, this updated version of Raspbian from the Raspberry Pi Foundation brings nothing much that is new insofar as installing and using the virtual private network software WireGuard is concerned. As far as I can tell there is one less step required in the installation process [...more]

ESP32 Internet Radio II

December 13, 2020

The first version of the "minimalist" Internet Radio did not generate much enthusiasm at home, so here is a new improved version [...more]

ESP32 Internet Radio

December 12, 2020

Just set up a satisfying Internet Radio which is a minimalist implementation of the GitHub project, ESP32-Radio, in less time than it took to write this post. Many thanks to Ed Smallenburg (Edzelf) for his repository [...more]

Overview of the SAMD21 Arm Cortex-M0+ Based Seeeduino XIAO

Last Update: December 2, 2020. Original version: April 4, 2020.

A section with links to more information on the web about the XIAO was added to the original post [...more]

The XAIO as a USB-Serial Converter

November 30, 2020

With a USB-C port and with two I/O pins providing USART Tx and Rx connectivity, the XAIO can fill in as a USB to serial converter in a pinch [...more]

GFX fonts with arbitrary character sets

November 29, 2020

The post contains a general approach to creating and using GFXfont type fonts containing up to 224 characters arbitrarily chosen from plane 0 of the Unicode character set. This proposal respects the Adafruit-GFX library's prime directive which is to maintain compatibility with existing Arduino sketches, since no changes are made to Adafruite-GFX. The post is similar to the one published on October 23 and replaces the October 8 post which was withdrawn [...more (in French)]


Last Update: November 4, 2020. Original version: December 7, 2016

The default licence for my code on this site has been changed to the BSD Zero Clause License created by Rob Landley. I have also finally got around to being more explicit about the copyright for the posts found here [...more]

About Facebook

October 31, 2020

A few days ago, someone sent a message to my Facebook account. Unfortunately, I somehow managed to delete the message without reading it nor can I remember the coordinates of the sender. I am sorry that I cannot reply and hope that the sender will accept my apologies.

Please do not try to reach me through Facebook/Messanger which is reserved for family and friends. Instead use the e-mail link at the bottom of each page and you will get a reply.

Syslog Server on Raspbian and Tasmota Remote Logging

Last Update: October 25, 2020. Original version: October 22, 2017

This is a much needed update of the original October 2017 post on how to set up rsyslog on Raspberry Pi OS as a centralized syslog server and how to enable remote error loggin in Tasmota [...more]

8 Bit GFXfonts

October 23, 2020

By default, proportional fonts that can be used with the Adafruit GFX Library and other libraries that are compatible with GFX fonts are limited to the 95 printable 7-bit ASCII characters (code points 32 (0x20) to 126 (0x7E). This is my attempt at supporting 8 bit character sets which is throwback to the pre UCS, pre Unicode code page concept. A modified fontconvert utility, called fontconvert8 can extract any subset of glyphs from a TTF font although I have included only two examples: ISO 8859-1 (Latin 1) and ISO 8859-15 (Latin 9). Then I have written two utf8tocp functions to simplify displaying UTF-8 encoded strings using these fonts with displays. This is not a universal solution, anyone wanting to use a different code page than the two provided will have to modify fontconvert8 source and the utf8tocp function [...more]

French Diacritical Letters with Adafruit GFX Fonts

Last Update: October 23, 2020. Original version: October 8, 2020.

Removed, soon to be replaced with something better... hopefully. Once again I have run into problems associated with French diacritical letters. The fonts supplied in the library that I use with a TFT display only contain ASCII characters from 32 to 126. However, the library is compatible with Adafruit_GFX type proportional fonts and it is relatively easy to add additional glyphes taken from the Latin-1 block in Unicode that corresponds to the ISO 8859-1 code page

Ubuntu 20.04 Server: Wi-Fi, Snap, etc.

September 5, 2020.

Installation and configuration of Ubuntu 20.04 Server on an older computer with a lesson learned about network configuration in Ubuntu [...more]

DNS and Static IP Address

August 17, 2020

Self inflicted wound: I had not expected that changing the domain name servers would break time synchronization on the backup server [...more]

Belated Spring Cleaning

Last Update: August 14, 2020. Original version: August 9, 2020

After delaying for quite some time, I have begun the long and boring job of cleaning up this site. This involves a slightly fresher and more compact start to each page as seen here. The home automation and programming indexes were removed mostly to make my life easier but also because I was feeling increasingly cramped with that choice.

There are now only two search engines on tap for a local search. I chose DuckDuckGo and StartPage because of their privacy claims. This choice is not an endorsement, as I have no way of verifying if a site tracks searches and uses, shares or sells the data. Searches limited to this web site with the usual search engines can be done from the archives page.

Converting the whole site will take quite some time. So far, the posts published in the last 12 months and a few older ones have the new look. Hopefully, nothing is broken but please send me an e-mail (link at the bottom) if there is something wrong.

Installing and Configuring WireGuard on Raspberry Pi OS (August 2020)

Last Update: August 5, 2020. Original version: July 4, 2020.

The WireGuard package is now included in the Debian and Raspbian testing repositories. The latter is very good news, because the Raspbian continues to support the ARMv6 architecture found in older Raspbery Pi models and current Zero models as well as the ARMv7 and ARMv8 architectures found on recent models. There is now a single approach to installing a WireGuard virtual private network server on any Raspberry Pi model [...more]

Installing and Configuring WireGuard on Raspberry Pi OS (May 2020)

Last Update: July 30, 2020. Original version: July 4, 2020.

While Raspberry Pi OS, the newest version of the "official" operating system for the Raspberry Pi, has changed name, it remains based on the 4.19 Linux kernel just as Raspbian Buster had been. Nevertheless, I tried to improve my post on the installation and configuration of a WireGuard virtual network server, because it is one of the most consulted pages on this site. There is an addendum showing how to install WireGuard on all Raspberry Pi models using a "beta" Raspbian WireGuard package [...more]

"Hello XIAO" in PlatformIO

June 24, 2020

PlatformIO now supports the Seeeduino XIAO. Some prefer PlatformIO to the Arduino IDE. New users of PlatformIO or those that are curious about that programming environment may want to consult this short post on how to upload a very simple program to the XIAO in that environment [...more]

I²C Clock and EEPROM Memory Module in Rasberry Pi OS

Last Update: July 20, 2021. Original version:June 21, 2020

While Raspberry Pi OS and Raspbian Buster are both based on Debian 10 and the 4.19 Linux kernel, there are differences that made my Febrary post about a ubiquitous DS3231 real-time clock with an AT24C32 EEPROM module out of date . I found it easier to leave the old post in place, and copy and paste most of it in this new article, only changing what needed to be fixed in the new OS. That way, it will not be necessary to refer to the old article unless one is still using Raspbian [...more]

Domoticz Backup Scripts

Last Update: June 12, 2020. Original version: May 29, 2020.

Once again, I will try to set up reasonable backup strategies. In this post, I discuss an important part of that endeavour, backing up the home automation server data files [...more]

Serial Peripheral Interface on the Raspberry Pi

Last Update: July 18, 2020. Original version: May 10, 2020.

This post is another of those that document my never ending need to learn something about micro-controllers. This time I am investigating the Serial Peripheral Interface (SPI) on the Raspberry Pi. I examine both the hardware and the Python spidev module and even attempt to update a "well-known" document about the later which was available about five years ago [...more]

Seeeduino XIAO Serial Communication Interfaces (SERCOM)

May 4, 2020

There are some good explanations on how to add a serial communication interface on SAM D21 based boards. However all those that I have found are for boards with many more I/O pins than the XIAO so that they are not that pertinent for this tiny board. In this post, I explain just what the problem is and how it is nevertheless possible to add a supplementary SPI, I²C or USART port on the XIAO as long as another type of communication interface is forgone [...more]

Adding the Seeeduino XIAO in PlatformIO

May 3, 2020

A very knowledgeable reader of the first version of the Overview of the SAMD21 Arm Cortex-M0+ Based Seeeduino XIAO kindly provided instructions to manually install the XIAO board definition in the PlatformIO development environment. Because all the hard work was already done for me, it was a simple two-step procedure [...more]

I²C Light Sensor using a Seeeduino XIAO

April 24, 2020

Using the XIAO in master mode to control and I²C slave device was already discussed in the first look at the Seeeduino XIAO. The topic of I²C communication with the XIAO is again the topic but this time the emphasis is on data exchange with a Raspberry Pi. To the latter, the XIAO will appear to be an I²C analogue light sensor [...more]

Installing and Configuring WireGuard on Raspbian Buster

April 19, 2020

For a few reasons, I decided to rewrite in large part the instructions on how to self-host a WireGuard virtual private network on a Raspberry Pi. For one thing, the original post was rushed because at it was difficult to get the correct repository keys. At the time, I was in the process of writing a long winded yet superficial explanation of VPN. Reading my old post when answering a query from someone, it became clear that there was a supposition that readers had read that non-existent dissertation. Clearly, pieces of the puzzle were missing. Another problem was that the old post was getting... old. More bits were expended on installation on Stretch than on Buster which is now on its third edition [...more]

Asynchronous Ping for an ESP8266 Internet Watchdog

April 11, 2020

While reviewing my ESP8266 router watchdog code, it struck me that using a blocking (or synchronous) ping library to check the status of the Internet connection was not the proper approach. In this post, I present an example project that monitors if the Internet can be reached using the AsyncPing library by akaJes [...more]

Overview of the SAMD21 Arm Cortex-M0+ Based Seeeduino XIAO

Last Update: December 2, 2020. Original version: April 4, 2020.

This post contains my first impressions of the Seeeduino XIAO from Seeed Studio. Because I don't really have much experience with micro-controllers except for a bit of work with the ESP8266 and the occasional experiment with Arduino boards, this overview will be at a rather superficial level. Nevertheless, it describes some 15 Arduino sketches showing different capabilities of this new development board. Hopefully, this will be of interest to others starting out with this impressive little board [...more]

Blink with a Wio Lite RISC-V

April 3, 2020

Seeed Studio has come out with a new board called the Wio Lite RISC-V with ESP8266. The unusually shaped board is based on the 32-bit RISC-V GD32VF103CBT6 micro-controller by GigaDevice. In addition there is a Wio core based on an ESP8266 which should provide Wi-Fi connectivity. The development software is not yet completed at least for the Arduino platform, but I did manage blink the on board LED with the PlatformIO development environment on a Linux desktop [...more]

For older posts see the Archives.