Building an Arduino based capacitive touch kitchen timer – Part 1

A dear friend of mine recently sent me a very interesting idea for a new project, and I decided to pick it up and got working at it as soon as I could. His idea was to build a digital kitchen timer that operates like the USB volume knob I built a while ago. I didn’t just want to recycle an old design, and the USB volume knob would be pretty unsanitary in a kitchen anyway. So we came up with a new idea that involves capacitive touch sensing and an Arduino, and this series of articles discusses each part of the project from the first idea, to the theoretical aspects, all the way to the hardware and software. I decided to write this series as the project goes along (similarly to the older word clock series), so things are subject to changes. However, I think this gives you a good opportunity to see just how much trial and error goes into such a project, and I hope I can help you avoid mistakes that I make by documenting them.

Continue reading Building an Arduino based capacitive touch kitchen timer – Part 1

Arduino MKR Vidor 4000 Verilog FPGA and MCU hello world tutorial

This article discusses how user code can be uploaded to both, the MCU and the FPGA, of the Arduino MKR Vidor 4000. Some time ago, I wrote this summary of the topic which, however, didn’t include an easy to follow tutorial. Instead, it was more of an outline aimed at more experienced users. However, today I tried to re-create the steps, and I noticed that the original article wasn’t as simple to follow for beginners as I’d have liked it to be.

Continue reading Arduino MKR Vidor 4000 Verilog FPGA and MCU hello world tutorial

Native real-time and multithreaded programming on the Arduino Nano 33 BLE (Mbed OS)

A long time ago, I released a series about real-time programming on a BeagleBone Black. I then decided to use the BBB to control the CRT display of an old Macintosh Classic computer. As you can imagine, I was thrilled when the new Arduino Nano series with built-in real-time capabilities was announced and in this article, I’d like to revisit the old topic and discuss what has changed over the years.

Continue reading Native real-time and multithreaded programming on the Arduino Nano 33 BLE (Mbed OS)

USB volume knob for Windows, Mac OS and Linux – Part 2

I finally came around finishing this project and I also made a video in which I explain the build and also show you how to assemble the project. This article covers the case design and some changes in the source code in more detail compared to the video.

Continue reading USB volume knob for Windows, Mac OS and Linux – Part 2

How to use Websockets to control an ESP8266 and a Raspberry Pi with a web browser

For a current project of mine, I had to evaluate how high the latency is when using websockets. In my case, I wanted to use a small single board computer as the server and any device, that can run a web browser, as the client. This tutorial illustrates how a Raspberry Pi and an ESP8266 can be used to act as a websocket server that can be controlled with a standard webbrowser.

Continue reading How to use Websockets to control an ESP8266 and a Raspberry Pi with a web browser

How to use the ESP8266 for wireless communication

More than often enough parts of projects will have to communicate with each other or external devices. This can either be done by directly connecting the devices with cables but sometimes it’s more convenient to wirelessly connect the different pieces of hardware. This article will show you how to use the ESP8266 and it also includes two examples for using it with a Raspberry Pi and Arduino boards.

Continue reading How to use the ESP8266 for wireless communication

How to use an EEPROM to permanently store data with your Arduino

Some Arduino boards have a built-in EEPROM that can be written to and read from in your programs. I not only want to discuss how that’s possible but I also want to show you an alternative while talking about EEPROMs and memory in general.

Continue reading How to use an EEPROM to permanently store data with your Arduino