When a microcontroler project needs more input and output pins than the available number, it is always interesting to use a single pin for more than one purpose. I show in this post how to use a single GPIO pin as an output to control a light-emitting diode and as an input to read the state of a normally open push button switch. [...more]
After a considerable delay, I have finally begun to improve the router monitor built around a Sonoff Wi-Fi switch that I mentioned back in April 2018. Among the improvements, I have added manual override of the monitoring function and MQTT functionality which makes it possible to remotely control the router monitor through an MQTT broker [...more]
This is a much needed update of the original October 2017 post on how
to set up rsyslog on Raspbian
Buster as a centralized
syslog server and how to
enable remote error loggin in Tasmota
Without Windows, the software provided by Itead to flash firmware on the newly available Sonoff Mini and Basic R3 cannot be used. Here's how to install Tasmota in Linux with the DIY mode REST API without using the Sonoff_Devices_DIY_Tools utility. I think we could do the same in Mac OS and Windows. On the other hand, more hardware is needed to create a Wi-Fi hotspot connected to the local network [...more]
In the original version of this post, I overstated problems with the
installation instructions kindly provided by Adrian
Mihalko on GitHub. I hope to have made honourable
amends in this revised version of the post by showing that the
instructions do work in Raspbian
Stretch. It is also shown that WireGuard can be installed with the
if an additional step is taken. I have also found a German language post
by Michael Bachmann, which updates the instructions for
Buster. Finally, the Dietpi script which works in both
Back on the October 17, 2018 I backed a Kickstarter project by Libre Computer, named La Frite: Open Source Fries. Delivery was slated for November 2018, but there was a slight delay, and I received the package in the mail yesterday. Here are my first impressions after I installed Debian Stretch on a headless system [...more]
Installing the WireGuard VPN server on Raspbian
was not difficult, in great measure because there was good information
available on the Web.
But just lately, the instructions that I was following
no longer work. So I hurriedly wrote this post to point out that
the DietPi crew has a working script to install WireGuard on
Rapbian Buster that also works on Raspbian Strech
The good news is that the newest version of the Official Linux Bluetooth protocol
stack BlueZ is included in Raspbian
Buster available since June 20, 2019.
However some tweaking still needs to be done to use Bluetooth on the Raspberry Pi
A major retailer sells Wi-Fi dimmers and other IoT devices that meet Canadian safety standards and that are certified by recognized agencies. Here's how I installed two of these devices and how it was possible to integrate them into the Domoticz home automation system. Voice commands (Google Home and Alexa) also work [...more (in French)]
Here is a short note showing that it is possible to access tide data in Canada made available on the Web by the Canadian Hydrographic Service using a Python script. It's just a debut [...more]
About some problems with the May 5th stable version of Domoticz. There was no reason to adopt it so quickly and had I been less eager I would have avoided some difficulties. Nevertheless, all's well that ends well [...more]
It is about time that a watchdog be setup on the Raspberry Pi that is hosting my home automation system. This post describes a first effort which aims to implement the basics:
- Reboot if the hardware watchdog times out.
- Reboot if Domoticz hangs.
- Send an email notification when the system reboots.
Perhaps undeservedly, the Orange Pi Zero has the reputation of running
hot. I wanted to use the Domoticz data logging
facilities to record the core temperature of the single board computer
which is on all the time running
HA-Bridge. And while
setting that up, I decided that I should also log any errors occurring
during the execution of the script that updates the temperature data on a
regular basis and look into sending some sort of notification if the
Orange Pi Zero seems to be getting too hot
This note is about how to configure an
rsyslog server to
have it forward some or all of the log messages it receives to a remote
syslog server. A method to send an email in response to an
alert message is also discussed.
or How to Use a $ 1,000 Desktop Computer to Emulate a $ 5 Infrared Remote Control. The note introduces a Free Pascal/Lazarus program that emulates a very old IR remote control that will soon be totally unusable [...more]
As I speculated, HA Bridge is very good as a proxy between Amazon Alexa and IoT devices defined in Domoticz. And installation was a snap [...more]
While LIRC could be useful for some, many will just want to use
an IR remote control with software designed for that purpose such as
Kodi. In that case, LIRC will not be needed
if the remote control uses
one of the following IR protocols: rc-5, rc-5-sz, jvc, sony, nec, sanyo, mce_kbd, rc-6, sharp,
and xmp. The
ir-keytable utility contains over 130
remote control definitions and can be used to craft one if the IR remote
is not among that list
To quote lirc.org "Using lirc on Raspberry Pie [sic] is quite popular these days." Being a self-style contrarian I installed the package on the Orange Pi Zero. I managed to get simple demonstration programs working with it. [...more]
The note shows the basics about handling button presses from an infrared
remote control using the
python-evdev package and the
built in kernel support for IR events on an Orange Pi Zero. Neither
LIRC (Linux Infrared Remote Control) nor
ir-keytable is used
Lately, I'm using an Orange Pi Zero for new projects. This means burning the OS image on a microSD card and then performing a number of initial steps, setting up networks, upgrading all installed packages and so on, that need to be repeated in exactly the same way each time a new image is used. All this takes time. So I decided to create a custom binary image that avoids these steps [...more]
This is a second look at the Amazon Echo Dot 3rd generation with emphasis on using it with HA Bridge on an Orange Pi Zero for local control of IoT devices. This is not a detailed explanation but a reassurance that devices installed in the bridge will be discovered with the 3rd generation Echo Dot [...more]
This is a continuation of the previous note on Bluetooth on the November 2018 version of Raspbian Stretch in which the default version of BlueZ is replaced with version 5.49 and later version 5.50. There is not much difference between these three versions of Bluetooth protocol stack at least for audio streaming [...more]
This is a short note reporting some changes encountered with the newest version of BlueAlsa when used with BlueZ version 5.43 with the latest version of Raspbian Stretch [...more]
Lately, I have experimented a lot with the new version of Raspbian Stretch Lite, trying different configurations and
software. To check that everything works, I prefer to return to the
operating system as obtained from the Raspberry Foundation. Whenever the
image is copied to the SD card, the
/boot partition must be
changed in order to start the Raspberry Pi without a keyboard or monitor.
Then the operating system has to be upgraded. All this takes time. So I
decided to create a binary image that avoids these steps
[...more (in French)]
This post shows how to install version 1.4.35 of the Lighttp web server in Rasbian Stretch. It then becomes possible to route the video stream obtained from MJPG-Streamer as could be done in Jessie. The problem with version 1.4.45 of Lighttpd is also better identified though no solution is offered [...more]
The original post has been corrected. Some changes were minor but it was wrong to state that the latest version of Mosquitto could not be installed. It was a good opportunity to make clearer how to connect the real-time clock and temperature and humidity sensor without having to refer to older out of date posts [...more]
How can I get on with software experiments and updates when new hardware keeps on arriving? In this second "mailbag" post without a video stream, I will present my first impressions of a cheap wireless IP camera, the 3-pole Itead Sonoff T1 wall switch, the new version of the Itead Sonoff Basic and the 3rd generation Amazon Echo Dot [...more]
The post entitled All does not always work has been updated and translated into English. I added an item about the automatic update of the home automation IP address at FreeDNS. I also added an explanation for my problems with using the Arduino IDE to compile TASMOTA.
Information about installing and using K3b to burn a CD/DVD/Blu-Ray disk has been added to Installing Ubuntu 18.04.1, Additions and Adjustements. This post is in French only.
The New Year seemed like a good time to tackle once again the task of updating the Raspbian operating system on my Raspberry Pi hosting my home automation server. This is but another of my series of posts on setting up a Raspberry Pi so it would be of interest mostly to new fans of small single-board computers. I did manage to do a truly headless installation, and I did resolve some little problems which may be of general interest [...more]
Here are three projects under development that work on the home Wi-Fi network: a touch-controlled lamp, a Wi-Fi temperature sensor, and a weather data display. The first two are connected to home automation software, Domoticz, the latter could be in the future [...more (in French)]
By way of proof that I am far from being an expert in the field, here are some projects that have not succeeded as expected [...more]
This is a rewrite of the August 17, 2018 post named Installing Free Pascal and Lazarus with fpcupdeluxe on Ubuntu 18.04. I followed the instructions in that initial post but the Free Pascal compiler and Lazarus IDE would not install on a fresh Mint 19 distribution. It turns out that my initial instructions left out some requirements that needed to be installed. These were present when I first used FPCUPdeluxe because of previous installations [...more]
I added a fourth search engine to search my entire website. Qwant, like DuckDuckGo, promises to keep no information about the searches made. The site uses an unusual URL syntax to limit searches to a particular website. I decided to use an approach other than the one recommended to do this local searches. [...more (in French)]
The translation into English of the post entitled More Weather API is now completed.
3 Year Anniversary
This site has been up for about three years. The site has grown in that time. It now contains 755 files of which 119 are English-language Web pages and 66 are in French. The rest of the files are images (about 420), archives (37), python and bash scripts (29), and other source code.
I know it's the 3rd anniversary because the Web hosting provider has recently sent me a bill to renew the service for another three years. Even if the cost has almost doubled, I will in all probability go ahead and renew, in part because the number of "unique" visitors has been steadily climbing (over 12,000 per month) and in part there is the occasional positive feedback which is very gratifying. Sometimes I get to directly help others who send in e-mails. I must admit that some overestimate the depth of my knowledge; they must be disappointed that I cannot provide the solution to their problem. On the other hand, it is great to see that most do find the answer on their own after the exchange of a few e-mails. It reminds me of the best part of being a teacher in a former life.
Today, I have added a fourth search engine that can be used to search through the web site. Qwant [b]ased and designed in Europe,[...] is the first search engine which protects its users freedoms and ensures that the digital ecosystem remains healthy. Our keywords: privacy and neutrality. I am not too sure how different this search engine is from DuckDuckGo where you can ... take back your privacy! No tracking, no ad targeting, just searching. Both can be viewed as alternatives to mainstream search engines for those worried about their privacy... although this site does not contain anything remotely controversial.
In February, I found out how to recover weather conditions and forecasts from Yahoo Weather with a program written in Pascal. I decided to extend my exploration to other suppliers: Apixu, Dark Sky, MET Norway, OpenWeatherMap et Weatherbit.io [...more]
Support for ESP8266 Wi-Fi connection with Wi-Fi Protected Setup (WPS) is not available in the current version of the ESP8266/Arduino core (version 2.4.2). However, it can be included by generating a new ESP8266 card definition file [...more]
This post is a continuation of the discussion about switching to the latest LTS version of Ubuntu. Two major applications are added to the distribution: Virtual Box and the Arduino integrated development environment. I have also added Timeshift which backups the system at regular intervals. Other less important topics discussed are the removal of the annoying emoji icons in Thunderbird and the addition of the Microsoft's core fonts [...more (in French)]
Lately, I installed the newest (
svn trunk) versions of the
Free Pascal compiler and the Lazarus IDE from scratch with the fpcupdeluxe tool on a fresh Ubuntu
18.04.1 desktop. There was a slight complication associated with
OpenGL libraries. But after much, self inflicted,
tribulations everything seems to be working as expected.
I renamed the February post about Free Pascal / Lazarus on Ubuntu 17.10 to better differentiate the two posts.
This long post is composed of my notes for future reference that describe the installation of Ubuntu 18.04.1 on an empty hard drive. I preferred to install the new version of Ubuntu rather than update version 17.10 used since November 2017. [...more (in French)]
New version of Domoticz
A new version of the home automation server Domoticz (version 4.9700) has been available for a few weeks. This version in now compatible with Raspbian Stretch (version: June 2018, kernel: 4.14).
However, I ran into problems with the secure connection of the video stream as described in the post entitled Secure Webcam streaming with MJPG-Streamer on a Raspberry Pi. For some reason, I can get snapshots through the secure lighttpd proxy server but not the video stream. If I ever solve this mystery, I will update the post.
At last, the final version of the loop watchdog is available as a library that can be loaded into the Arduino IDE. This version only works with the real-time clock RAM of the ESP8266. [...more]
This post, a continuation of the one of June 9, proposes a strategy for breaking out of a cycle of restarts caused by an exception or the action one of the ESP8266 watchdogs. Assuming it's the consequence of a programming error, it proposes an automatic over the air download of an earlier version of the ESP firmware. [...more (in French)]
Rather than translate the three English language posts about ESP8266 watchdog timers that date from August and September of last year, I decided to rewrite them in French hoping to stumble into a clearer presentation and producing simpler code. In this post, a simplified version of a third watchdog created to detect when the main loop of an Arduino sketch is no longer executed is presented. [...more (in French)]
While working on an ESP8266 project, I was disappointed with my loop watchdog. It did not report the name of the "module" in which the watchdog was biting. The cause of the error was difficule to ascertain. Hopefully the problem has now been found. The corrected archive is now named lwdt_full_example_0206.zip.
Looking over the code, I decided there was room for improvement... of course. I have rewritten the version that works with RTC memory, I have yet to try the revision with EEPROM memory. And of course, I will have to test thoroughly. [...more]
This is my second Arduino library that takes care of the minutia of flashing a LED. It's a blinky! Obviously, there is nothing much to it, I just wanted a reusable module that had some flexibility yet was simple to use. [...more]
The Sonoff (an ESP8266 device often mentioned here) has one user input: a push button. I needed a routine to return the number of times the push button was pressed in quick succession or to indicate that the button had been pressed for a long time. With help from expert artcles found on the Internet, I implemented an Arduino library that meets my need and seems to work with all boards. [...more]
Presenting an internet radio player for Linux based on the Music On Console player. It is a test bed for an Internet radio player to be built around a Raspberry Pi to be connected to an older sound system. The source code is available. The application written with Lazarus, the open source Free Pascal RAD IDE. [...more]
This is a second take on connecting a Bluetooth speaker to the Raspberry Pi 3 running under Raspbian Stretch (based on Debian 9). In this version, the somewhat more radical route of updating BlueZ is used. This post also goes on to show how the Raspberry Pi 3 can be a used as a Bluetooth speaker playing sound emanating from another Bluetooth enable device. [...more]
Installing Music On Console (MOC) on a Raspberry Pi 3 running with Raspbian Stretch was just as simple as it had been when I installed it on an Orange Pi Zero with Armbian a few weeks ago. However things got complicated when I tried to send the sound out to a Bluetooth speaker [...more]
April 23, 2018. First version: April 11, 2018
I have just finished translating the April 11 post to French. As often occurs when there is a fair amount of time before I undertake a translation, I actually modified the content a little bit. This reflects the experience I have gained in streaming the webcam. The English version is now updated.
Using MJPG-Streamer it is possible to stream video from a webcam connected to a single core Raspberry Pi B+ that is also running my home automation server and an mqtt broker. Furthermore, using a web server on the same Raspberry Pi, the video stream can be encoded and served over an HTTPS connection. [...more]
In HTML, floating areas in a <div> type block do not change the size of the block. This can result in a local alignment problem. There are more or less well-known solutions, this is about some of them [...more]
Just two days ago, I removed the search bar from the top of every page on this site. I wanted to have more than one search engine but I did not have a compact way to do it. Then I thought of an input box for the search words followed by three buttons for each of the search engines [...more]
Kyle Fleming found two errors in the posts on ESP8266 watchdogs. Because his suggested corrections were spot on, it was not hard fix the posts. Kyle co-founded Black Prism. Those interested in the interface of decorative arts and technology should visit the site.
The search box is gone from the top of all pages. Instead, there are
three search boxes (DuckDuckGo, Google and Bing) on the one
page, previously titled Archives but now renamed Archives and Search. It dawned on me that I don't
use Google Search by default on my main browser.
Why then was I foisting one particular engine on the readers who
wanted to search my site?
DuckDuckGo does not offer the ability to embed the search result in a frame on the site as was the case with the Google search box that I was using before. So, for the sake of symmetry, the search results will be displayed in a new browser tab or a new browser window no matter which engine is used.
The November 6, 2017 post on Google Assistant on an Orange Pi Zero running DietPi is out of date. I added a warning to that effect. Google Assistant is a moving target; it is not easy to be on the leading edge.
With a seeed studio ReSpeaker 2-Mics Pi HAT, it becomes possible to move my voice recognition project over to a Raspberry Pi 3. Hotword recognition will be done with snowboy from KITT.AI. The good news is that the ReSpeaker HAT seems to work well. The bad news is that there is now some sort of incompatibility between snowboy and Google Assistant Service [...more]
Some readers have been sending emails about missing downloads.
I didn't think much about because it only involved one
file. I just uploaded the file again and tested to verify that it was
there. Everything seemed fine and I answered the emails saying that
the file was available.
On a hunch today, I checked and was mildly annoyed that the file
was no longer available. I was rather surprised when I realised that
zip file was gone from the server. What is going on?
I have uploaded hopefully all the missing archives. And I will check tomorrow and later to see if they are still there. In the meantime my apologies to all that have been and may yet be inconvenienced by this.
Correction, Winter Storm and Announcement
The previous post has been corrected because I had not correctly
report the linguistic abilities of
They are the same as is
google-assistant-demo at least for English and French.
The fourth snowstorm in March arrived with the chronological beginning of spring. If I mention it here it is because it caused a power failure that damaged the SD card of the Raspberry Pi hosting the home automation system. Since then, one of the Sonoff switches no longer communicates with the local network, no matter the recovery manoeuvres attempted. I had to rebuild the operating system. Did you know that Domoticz et Raspbian (Stretch) are incompatible? It's time for me to look at three things: transferring the file system to a USB drive, installing watchdogs for the Raspberry Pi, and adding an uninterruptible power supply (UPS). There may be future posts on these topics.
Soon there will be a post on the use of
voice recognition, and
with the ReSpeaker 2-Mics HAT.
This post is just like a ubiquitous YouTube "mailbag" video only without a video feed and without a sound track. In the space of a few days, I have received, from far, far away, five 8G micro SD cards, two ReSpeaker 2-Mics Pi HATs and a Xiaomi Mi WiFi 3G router [...more]
Pursuant to the previous post, this is another short note about enabling threads in Free Pascal programs for the Unix/Linux environment. [...more]
Another Free Pascal short note about running a process in a thread. In it I
show how the
aplay utility can be launched to play a
wav file in a thread so that the application GUI remains
responsive and it becomes possible to stop
aplay at any
This is just a short note about using FCPUpdeluxe to upgrade or install the Free Pascal Compiler and Lazarus IDE and LCL on a Linux system. I assume that it would be mostly the same on a Windows system. [...more]
Mea culpa for a very local solution to getting weather reports in a previous post which would have been of interest to only a few. Here is a solution using Yahoo! YQL queries with a potentially wider audiance [...more]
This post is all about using the Music on Console (MOC) audio player on an Orange Pi Zero running Armbian. In other words it is a continuation of the previous post wherein MOC replaces the Music Player Daemon (MPD) which could not quite handle some streams running at higher bit rates. [...more]
These last few days I have been improving my home automation assistant based on experience gained from using the Google Home Mini. While not at all anticipated, the latter's ability to play radio stations has proved useful. It has also been helpful to get weather information with Google Home. Accordingly I wanted to add similar capabilities to my DIY project running on the Orange Pi Zero [...more]
I installed two Python libraries for voice recognition on an Orange Pi Zero running DietPi. The libraries are the hotword recognition engine snowboy from KITT.AI and the excellent SpeechRecognition library by Anthony Zhang (Uberi). It provides a uniform Python interface to many speech recognition engines. I have tested with two online services: Google Speech Recognition and Microsoft Bing Voice Recognition as well as with the off line engine Pocket Sphynx from Carnegie Mellon University. I wrote this back at the end of November, I don't recall the reason I delayed putting it up. [...more]
I have finished translating the corrected post on the use of the Google Home Mini as a home automation voice assistant. The original text was published a week ago and considerably modified since then to remove a bad suggestion on my part that compromised the security of the home automation system. [...more]
This is a happy day! I finally managed to get the scanner of the Brother DCP-7040 working in Ubuntu 17.10. [...more]
Taking advantage of a half price sale before the holidays, I bought the Google Home Mini. Unfortunately, Google Home no longer supports Sonoff switches programmed with Theo Arends' Tasmota firmware. On the other hand, it is possible to create applets with IFTTT to send HTML requests to the Domoticz server and thus control home automation devices with voice commands [...more]
This is a short follow up on a previous blog about using a Raspberry Pi as a remote log server. Using information posted by knowledgeable persons, I removed the source of what turned out to be spurious error messages that were filling up the log... [...more]
As I have been trying to learn Python by dabbling with voice recognition and home automation project, it has become obvious that I had to familiarize myself with virtual Python environments. The principle is not difficult, but I ran into practical problems. This post, more than two weeks in the writing, describes how I now manage and use virtual environments on three different Debian based Linux distributions. [...more]
A chance meeting with cheap Bluetooth portable speakers with hands free capabilities led to a grand scheme to use them to talk to vocal assistants with the help of a Raspberry Pi 3. Before going ahead with the project, I had to learn the basics of using Bluetooth in Raspbian (Stretch). Here is a description of my first steps in this arcane world. [...more]