Old age coping strategies

I got some slippers for Christmas. I really like the way that they look like proper shoes. Now I just need some pyjamas that look like jeans and a sweatshirt and I’ll be perfectly equipped for old age. Read more →


ESP32 Retaining timing over deep sleep

In the last post we saw how easy it is to make an ESP32 processor sleep for a particular time. However, we also noticed that at the end of the sleep the processor is reset and all the variables in the program are reset. This is difficult if you want to keep track of time in your application. However, it is possible to get around this limitation by storing a time value in memory that is retained du… Read more →


Demystificating VPNs

After seeing yet another article that misunderstands and misrepresents VPNs, I just hda to make a post about it. This post actually started life as a reddit comment, but I decided to expand on it and make it a full post here on my blog. VPNs are a technology that simply sends your traffic through an encrypted tunnel that pops out somewhere else. For the curious, they do this by creating what's kno… Read more →


ESP32 Deep Sleep Mode

I'm very proud of the picture above. It shows that I'm getting around 0.1ma current consumption on our new environmental sensor when it is in deep sleep mode. It's very easy to put an ESP 32 into deep sleep mode. This is the code that I'm using: #define uS_TO_mS_FACTOR 1000 /* Conversion factor for micro seconds to miliseconds */ void sleepSensor(unsigned long sleepMillis) { esp_sleep_enable_timer… Read more →


Arduino debugging 2: Using #define to manage debugging output

Last time, in the post here we discovered how the __FILE__ and __LINE__ symbols make it possible for a program to print out a tracing information. This can be very useful if, as is the case with Arduino development, there is no easy way to step through your code. The problem that we now have is that we need to add calls to the trace method, and we will have to remove them later. show_location(__FI… Read more →


An apology

The post for today would have been the second instalment of the Arduino debugging series, but since the Squarespace web based editor has decided that the penalty for clicking outside the post edit window is to have the entire post instantly discarded (thereby removing an hour of writing) you are going to have to make do with this minor rant. Read more →


Absurd scientific advice is good reading

This book is a fun read. There’s some really nice science in with the absurd questions, along with the quirky illustrations that Randall Munroe is so good at. I got it at a very good price. And mine is signed too.A long time ago I wondered about getting a blowlamp and selling singed copies of my books. Read more →


Own Your Code Series List

Hey there! It's time for another series list. This time it's for my Own Your Code series, where I take a look into Gitea and Laminar CI. Following this series, I plan to also post about my apt repository, which is hosting a growing list of software - including the tiled map editor (support them with a donation if you can), gossa (a minimalist file browser interface), and webhook - if you find any… Read more →


Sometimes life is a box of chocolates

Is it wrong to buy your wife a box of chocolates for Christmas with the intention of using the empty chocolate box for a hardware project? Oh, and is it also wrong to get impatient when she takes her time eating the chocolates and making the box available?Asking for a friend. Read more →


Arduino debugging 1: Getting your Arduino program to tell you where it has got to

Why not have a mini-sequence of posts about Arduino debugging. Why not indeed?Let’s start with a consideration of why the Arduino is hard to debug. The main reason is that you have no idea what is going in inside your code. If you’re writing a program on a computer with a keyboard and screen you can use any number of tools to find out what broke. There are debugging tools in Visual Studio that let… Read more →