halfbyte

compact musings of a multi faceted geek

I must admit that so far, I haven't been a strong proponent of electrically powered bicycles. I did see the benefits for people who, for what ever reasons were not able to ride bikes at “normal” speeds (What one considers “normal” is debatable, but I think 20 km/h, which is the speed city planners in cities like Copenhagen assume as the average speed, is a good threshold), but that was about it. Now, mind, apart from the occasional elderly riding their e-bike way outside their (or, rather, my) comfort zone, I didn't really think there was anything wrong with riding an e-bike – I just thought (and partially still think) that riding a good bicycle without additional help on an daily basis has benefits on its own and of course, e-bike tech will add additional weight and also cost to your bike that isn't strictly necessary.

That is until we loaned a pair of bikes for a day during our last vacation, on a rather windy day at the north sea coast.

The shop (Not a paid ad, we just really like their service) is famous for mostly loaning out these ridiculously looking cruiser bikes and while my s.o. got a rather normal looking dutch ride (albeit, as you might have guessed, with a beefy electric motor), I loaned one of their entry model cruisers.

Wheeeeeeee

And my mind was instantly blown. We spent that day driving around 45-50km in total in a little under 4 hours with some extended breaks (We are on holidays, after all). We've done similar trips before without motorization and I can tell you that those days usually leave us quite exhausted – Not so much with these magical electrically powered wonder horses. (Never mind I had just recently rolled my right ankle and so riding with electric support was the “healthier” option at that moment.

At times, driving these bikes almost felt like defying physics. Driving through open fields, with rather strong headwinds did require us to bump up the level of electric support eventually, but it almost feels surreal to push the pedals and you feel the wind, but the force required to push does not square with the wind resistance you're feeling and it all doesn't make any sense, probably especially for someone like me who rides their bike every single day under any conditions.

We probably had an average speed of around 22-23 km/h, so a bit below the max supported speed (you can ride these bikes as fast as you want, but if you're quicker than 25 km/h, you won't get any electric support at all) and most of the time I rode in “eco” mode and it still felt pretty much effortless. And it was really great to be able, for example to climb a dike, to just bump up the support from Eco to Tour to Sport to Turbo and just feel your own pedal power being multiplied by a bit of clever motor driving electronics.

So now that I have experienced that magic, how does that change my perception of e-bikes in general?

Good enough

First of all, it seems clear to me now that e-bike tech is already firmly in the “good enough” stage of product development and it will hopefully get a bit cheaper over time, the batteries maybe a bit smaller and lighter (or, if you choose, a bit more far reaching), but at its current state with ranges of well beyond 100km for one charge, it should be good enough for any sort of urban and suburban commuter use. I know I am just late to the game and this state has been probably reached quite a couple of years ago, but the exploding amount of e-bikes I encounter on the streets every day seems to suggest that some sort of threshold has been passed quite recently.

What we have here is a backup system

Second, I think I have to revise my thinking around when an e-bike can be useful. While I am quite okay with riding my non electrified bike most of the times, I think we all (who cycle every day) know these days where you step on the pedals and everything feels like a slog. It might be an upcoming cold, or just unfavourable wind conditions, or your route is surprisingly hilly, but it feels like you're driving through quicksand and you're not getting anywhere while quickly getting sweaty and uncomfortable. Being able to show these kinda days the finger and just bump the support level of the electric motor would definitely enhance my life quality.

And of course, they would make trips viable where I usually would probably take public transportation or even the car, for example the 15 odd km to my mums house, where I know that I can either treat it as a workout or just take the subway and take a book with me.

And augmentation to an augmentation

As biomechanical engineers long have stated, a human on a bicycle is by far the most effective animal in terms of both speed and endurance. I think it is this initial effectiveness of the human+bike system that makes it so incredibly easy and effective to lift it to another level with relatively small motors. The regulatory maximum in Germany for e-bikes classified as bikes (and not as motorbikes) is 250 Watts, or, if you prefer units particularly stuck in the petrol past or worse, 0.33 PS. And most of the time, at least in the city, you probably only need a fraction of that.

I could now definitely see my next bicycle to be an e-bike. Not 100% sure about this yet, I already drive a relatively expensive bike and I probably have to double the price of that to get a decent e-bike and also I know how good regular commutes without any support are for my health and fitness, but if it helps me to do even more trips by bike I would usually do with other means, it may just be worth it.

In any case: What an awesome experience. If you have the chance, on a vacation or otherwise, to test out an e-bike in a relaxed, realistic setting, do yourself a favour and do it. It may blow your mind.

For quite some time now I have replaced “real” milk with oat milk for most of my needs.

Oat milk, especially the “barista” versions available by various producers, are “good enough” for me in the sense that I do like the taste (even though it is of course significantly different from dairy) and they work very well with Coffee and are also relatively easy to foam up for use in Cappucchinos etc.

Prices for my preferred oat milk are hovering around 2 EUR for 1l and that is substantially more expensive than getting cheap milk in the super market but I usually bought better, more expensive milk anyway.

One issue with oat milk is that it takes a relatively compact, dry ingredient, like oats and adds a ton of water before processing and shipping it in the usual milk cartons. That seems wasteful, right?

In fact, making your own oat milk seems to be (I haven't tried it yet) a relatively straight forward process but it obviously isn't as convenient as getting a carton, rip it open and pour.

Startups to the rescue

Lately, a lot of startups try to sell you “oat milk powder”, mostly via Instagram ads. The idea is that they process the oat flour in a way that turns it into something you can just dissolve in tap water and what you get is delicious oat milk.

We have tried one of these products now for a while and I have ... thoughts.

For one, in contrast to what they say on their website, I wasn't really able to foam it up for use with coffee. But even used in it's pure liquid form, for example in a hot cocoa, it lacked...something. After thinking about it for a while and studying the ingredients lists etc, I think I figured it out.

Salt Fat Acid Heat

The thing is, by itself, oat flour does contain very little fat. Milk, on the other hand (dairy milk, I mean) has, in the supermarket version, somewhere around 3,5% fat for “normal”, non skimmed, milk.

Most fluid oat milk variants contain a certain amount (seems like between 1% and 3%) of vegetable oil to get closer to “real” milk. Given that fat is a pretty strong carrier of flavour, it makes sense that drinking a much less fatty drink tastes weaker and more watery.

Now, with my limited understanding of food science, this is actually a relatively hard problem to solve (quite literally) for the powder producers.

Fats are obviously not water soluable, so to end up with a powder, you would need to add fats which are dry/solid at room temperature, but then these fats would still be dry/solid at room temperature in your oat solution after adding the powder to water, right?

Producers of liquid oat milk don't have the same problem – What they need to do is turn something that by everything I know about how this works is probably a mix of a suspension and a solution (meaning that some parts of the oat will be water soluable, while the rest will just suspend in the fluid, which is why you always need to shake up oat milk before pouring) into an emulsion between the oat milk and the oils. Somehow this seems to be possible without the additional use of emulgators but maybe they just use so little that they don't need to declare them.

Spreading yourself too thin

In general, what the powder producers seem to do, btw. is to err on the side of too little ingredients per volume. One producer, for example claims that you can get up to 8l out of 750g of powder, while even their recommended dosage of 10g per 1l of water seems quite thin to me (Well, they do say “add more to make it creamier” in their instructions.

What I will try to do, to see if I can make an emulsion myself is going to try to add small amounts of vegetable oil to the drink – Maybe that will fix part of the problem.

Initially, btw. I thought the powder manufacturers would use the old trick of fat reduced products to just add more sugar, but the liquid oat milks do actually contain more sugar, it seems. Which adds to my theory of them actually erring on the side of “too thin”.

Let's come back to the price. If you use their recommendation of 10g per 1l, the stuff we're currently testing comes around to a little more than 2 EUR per 1l. I know they are all just starting their businesses and there's probably quite a bit of room for price drops when scaling up but I find it quite irritating to pay more or the same for getting substantially less. And I don't necessarily mean the extra water but the whole convenience and, most importantly usability and taste.

The brand we're using has promised a “barista” variant. It will be interesting to see how they plan to address the obvious weaknesses of using a powder.

(I am probably a bad influencer by not linking you directly to a couple of these new oat milk powders with affiliate links, but to be honest, at the current state I can't really recommend this to anyone)

I am not yet ready to draw any major conclusions but wanted to quickly summarise my thoughts so far.

  • I am still occasionally struggling with the background process thing and MIUI. Geofencing applications become a lot less useful if you have to manually start them. Given that, for example, the Geofencing disables my security cameras in my office, I've been mostly deleting images from the app this week (An exaggeration, of course). I seem to have found all the right switches for now but I wonder how often I will have to reset them as I am pretty sure I had to do some of these preference edits at least twice.
  • Adding to that, the whole Settings thing is a disaster on MIUI. There are so many places where you can (and have to, see previous point) edit settings and permissions for apps with very different paths through various different apps (at least it feels that way) to get there that I can't remember them and always have to google them.
  • I still dislike the size and the heavyiness of the device – I recently bought a couple of short cyclying trousers and both pairs don't fully fit the F3 in the front pocket. On the positive side it doesn't fall out either.
  • The weight and size do come with some pretty obvious advantages, though – The screen is fantastic and I am happy about the additional size available to me. Also, the battery holds up great as well. I finally have a phone that is more than capable of carrying me through the day with room to spare. Also, when using the provided power adapter, the turbo charge is just impressive. When you can charge the phone to a level that gets you through the day in less than an hour, wireless charging (which, to be honest, I've never been able to try) looks a lot less desirable.
  • I can't say much about apps yet. Most of the apps I use are available for both iOS and Android and the quality in general seems to be fine. That being said, there are two apps I want to mention because I think they are doing a particularly great job: Pocketcasts quickly became my Podcast player of choice and has a pretty great UI, almost comparable to Castro which I've used on iOS. And FocusReader is a worthy replacement for my beloved Reeder, obviously taking a lot of cues from one another without being a blatant copy.
  • I enjoy the upgraded camera and was really surprised about the quality of both the Portrait mode (it does come with pretty hilarious artefacts every now and then but that's expected) and the macro lens which is really appreciated, as I love shooting macros. The wide angle lens is great as well, but I guess I would have loved a tele lens instead (But yeah, I know why that is difficult to do in a flat phone design)
  • Of course I had to run Geekbench on the new Phone and the F3 seems to come in at around 950 in GB5 single core and somewhere around 3000 in multi core. It helps that the Qualcomm chip has 8 cores, I guess.
  • My SO, on the day after I got the F3, got herself an iPhone SE, so I do have a device to compare things. I looked up the Geekbench scores for that and it seems that it beats my phone in single core (to be expected) by quite an amount but falls short in multi core slightly.
  • Last but not least, and I have yet to find out if that's a MIUI problem or a general Android 11 problem, I already twice found myself in a situation where I wanted to take a phone call (this is a phone, after all) and somehow managed to close the screen but then found no obvious way to get back to that or how to actually take the call. User error, sure, but definitely something that I think would never happen on iOS, at least not in the same confusing way.

My trusty iPhone 6s is slowly falling apart. Not literally, but well – Even though the next iOS will still support it, it barely holds up. Also, I've already had the battery replaced once and somehow it would feel like beating a dead horse to do that again – But I barely get through the day with one charge.

I thought about getting an iPhone 12 mini or maybe a current iPhone SE as a replacement, but given that I have my Computers migrated largely away from Apple, I was kinda curious about Android here as well to see if I could live without iOS.

Unfortunately, small phones are even more rare in the Android world, where currently 6,7” is sort of the sweet spot right now. I know there's the small Google Pixel and that seems to be generally regarded as a good phone, but my thinking here was that I wanted to take this as an opportunity to see if I could actually live with one of these humogous phones and see if I would enjoy the benefits.

So in the end I got a POCO F3 from Xiaomi in a sale. So, yes, a chinese phone. I am not 100% comfortable with that but would I really be more comfortable with a Google phone? I mean, really, really?

The F3 is a bold phone, especially in the blue metallic version I got. It is a large and heavy phone. It has many, many cameras. It has a pretty fast processor for an Android phone (according to Geekbench 5 about 2x faster in single core and 3x faster in multicore than my 6s).

The first thing I noticed, of course, coming from the dinosaur the 6s is by now, is the display. A gorgeous, large, OLED screen with almost no bezels, no real notch (of course the selfie-cam does obstruct parts of the titlebar, but this seems to be handled quite well in software).

Given that the last Android phone I played with was a smallish underpowered Redmi phone I bought in Singapore, my expectations were low, but strictly from a look and feel perspective, this phone actually does feel snappier than my ancient iPhone.

And so the last two days I mostly delved into the world of Android for the first time in earnest and with the expectation of using this as a daily driver as long as I can stand it.

I treat it as an experiment – I want to know how much I will miss some parts of iOS and how much I will enjoy some parts of Android and then, towards the end of the year, I can either declare this a success and then cancel all my Apple subscriptions and such, or I will sell the phone at a loss and get a modern iPhone.

And since this obviously needs time, there's actually not much I can say in terms of my experiences. But here's what I have learned so far:

  • In contrast to a super closed down walled garden like iOS, I really enjoy the relative openness of even a stock Android phone. The Play Store does have much less harsh restrictions of what is allowed there and so one of the first things I did install (apart from all the usual suspects and all the software I use daily on my iPhone) was actually RetroArch, the retro games emulator software. Playing Gameboy games with on screen buttons is probably not for me, but having the ability to set this up and then use a normal file access mode built into Android to mount the phone in Windows and simply copy over some games was glorious.
  • Unfortunately, this openness comes with drawbacks. In App-Ads are much more common and much more annoying than on iOS. I can already see that my main quest on Android will be to find the good pieces of software that allow me to pay for them so that they shut the hell up.
  • MIUI and the accompanying software suite from Xiaomi is ... alright. I can already see how I will probably fight some of the more annoying aspects of it and I have already (more out of curiosity than necessity) replaced the launcher, but in general, everything feels alright and not particularly buggy. One annoying aspect is the aggressive optimisation towards battery savings, which interferes with a lot of apps that try to do useful things in the background and I've learned that there are entire websites dedicated to Howtos for disabling these optimisations which use non public APIs and are largely undocumented. Yay.
  • Migrating my accounts over was mostly painless but of course there's the usual bunch of apps that either make it impossible to migrate or really annoying. Plus, I do have a couple of Apps where I have a running subscription via Apple, so that needs sorting at some point.

I'll try to remember to post an update to this in about a week or two with a couple of more observations, hopefully.

But whooo is this thing large and heavy.

It's not like I don't think Muse Group can be good stewards for Audacity, but the following tweet is one of those clear cut, no excuses tweets that unfortunately don't always hold up in practice, so I'm documenting it here for future reference. Link to Tweet.

Muse Group Brands tweets: "There will never be a single ad in the Audacity application., ever. It will always be open source and will remain 100% free, forever."

Well. That have been interesting 10 hours or so. I came to my studio today to have a bit of nonsense fun. Recently I started to fiddle around with some ESP microcontrollers, namely the ESP8266 and the ESP32, both fun and cheap devices (with pretty cheap devkits available at your typical electronics tinker stores) that have built in wifi capabilities.

To do something “useful-not-useful” with them, I started to look around for the most useless project I could do with them. And then, during a bit of cleanup at home, I stumbled over (not literally, luckily) my old 24 pin printer I used with my AMIGA in the 1990's. I thought to myself “how hard can it be to drive an old centronics interface from a modern microcontroller” and thought it would be a fun project to add a web api (as I have no interest in implementing one of the standard network printer interfaces) to an old 1990's printer.

So here's more or less what I did today:

  • I unpacked the printer, inspected it and after it made a couple of stalling noises when I powered it up, I had to clean the rail that carries the printer head and lube it (preliminary with some WD40, this needs some real grease, though). After that, no more stalling noises.
  • I connected it to my RaspberryPi with a USB-to-Parallel adapter. Apart from the usual udev access control fubar (you need to be a member of the “lp” group as I learned), this worked fine and I was able to print stuff by simply doing echo "Hello World" >> /dev/usb/lp0. The printer ribbon is, surprisingly, not totally dead (I already looked for replacements – They can be found, but are, at this point, a tad expensive. Not sure how much more hassle it will be to try to “refill” it myself, though.
  • I started to build a simple setup on a bread board to be able to drive the printer from my ESP8266. That was my first mistake. I had a sketch for an Arduino I found on The Forum and I should have tested it on an Arduino Uno or something comparable first. That would have given me some useful info.
  • Instead, I quickly noticed that I was running out of IO ports on the ESP8266. I was suspecting as such and so I started to rummage through my IC collections to see if I could find a serial-to-parallel shift register. Luckily I found some 74HC595's. Using a shift register actually simplified the code a bit, so I wasn't even mad.
  • I knew going in that my main issue was going to be that the Centronics port wants TTL levels (0/5V) and the ESP runs on 3.3V. I did recently buy some level shifters and so I was hoping that this would be a non issue. Well.
  • I connected all of that up, having the level shifter driving the shift register, so that I didn't have to shift all 8 data lines. Testing with some LED's that seemed to work fine, so it was time to wire in the actual parallel interface. In preparation of this project I bought a Sub-D-25-Pin breakout board that has some nifty screw terminals for all 25 pins of the “Computer” side of a Printer cable. Luckily I found some old printer cables in my basement.
  • Nothing works. I am checking all signals but nothing works. I start playing around with the timings, but none of these things should matter, according to the specs. I double check the wiring, I try to follow the signals with a cheap logic analyzer and one of these toy memory oscilloscopes but literally nothing works. The printer does not care about any of the signals I send to it, the BUSY and ACK lines stay silent from all I can tell.
  • I finally did what I should have done in the first place, wire the parallel port up with an Arduino that runs on 5V and use the before mentioned sketch and that bloody effin printer prints on first try. I am happy and angry at the same time.
  • I rewire and rewrite the Arduino version a bit to incorporate the shift register, to make sure it would work with one. Apart from a wiring mistake I made that made the printer print all kinds of fun crap this worked fine, too. The good news is: This works in principle. The bad news: There is something going on with the level shifting and that's the part where I am the least experienced. I am not an electronical engineer. Nope.
  • I rewire everything with the ESP and still nothing works. I find a couple of problems with my wiring but still no response from the printer. I play with the timings again. Suddenly, the printer does print something. I play a bit more. I remember that sending an ASCII code of 7 to the printer should make it beep which is good for debugging. I play a bit more with the timings and things get a bit more stable, but it's still very broken
  • I suspect some problem with the return signals and add another (unidirectional, this time) level shifter in the form of a 74HC4050 for the return signals. Things get worse.
  • After a couple of hours of debugging with all the tools, I finally try the logic analyser again and finally I see something my memory scope didn't want to show me: The Strobe signal, that technically should just go low for a couple of microseconds, flips around like no tomorrow. Interesting. Looks like the printer pulls up the signal and for some reason the combination of the ESP and the level shifter can't do what the Arduino was able to do: pull down the signal reliably. Hmmmmmmm.
  • I tried a couple of things (but don't take this as advice, as I said, I'm completely out of my depth here and probably need professional advice) and what seems to work fine is a 470 Ohm pull down resistor at the output of the level shifter.
  • After fixing all the timings I messed so much with, I now seem to have a setup that works reliably and so as soon as I have refueled the lost energy of today, I can start writing some code for all the network stuff for this project. Right now I am tired and I need to do something completely different :)

(Images, schematics etc. will hopefully appear on a more upbeat post I will write after this project is “done”)

Update

I now replaced the level shifters I used with a simpler component – The ones I used are based on a TXS0108E by TI and are probably a bit too clever for their own good, or rather, built for a different purpose. I've now replaced them with a simple, transistor based level shifter and this now seems to work without any pull down.

Now I need to get back to the software :)

When the Arduino platform became somewhat popular somewhere 2006-2007 ish, I was hooked and I actually cut my teeth on a couple of super over ambitious projects like sequencers and midi controllers. I did manage to make a couple of cool things, including a motion sensor controlled instrument (mostly built in PureData) that was driven by Kids jumping up and down on a bungee trampoline.

Over the following years, my interests shifted elsewhere and apart from a couple of failed attempts to build a somewhat universal sync box (which is still somewhere on my todo list) between MIDI, the Korg Volca sync and Nanoloop, I had a bunch of electronics lying around in my living rooms drawers (and now in my studio that are unused and slowly go the way of all things in the universe.

My interest in electronics was (more or less out of specific needs) revived when I got my first 3d printer, but the applications where simple and well documented.

And so I more or less completely missed how the Arduino world had evolved since those early years. I loosely followed the developments, and so I knew about things like MicroPython, CircuitPython and also, to compile modern versions of my 3D printer's firmware, I started to use Platformio. But all of that was rather superficial.

Fast forward to this year and due to my experiments with home automation, I stumbled across the world of ESP8266/ESP32 boards. The ESP8266 (and the follow up, the ESP32 family) is a microcontroller essentially made for the modern IOT world. It contains a Wifi stack (ESP32's also do BLE) and is powerful enough to serve simple web interfaces, do TLS connections (even though full TLS security is a bit challenging on these devices) and such.

NodeMCU ESP8266 development board
A NodeMCU ESP8266 development board

And the most fascinating thing for me as a maker, these devices are super cheap. A fully featured dev board, like the NodeMCU units or the D1 mini cost around 6 EUR when sourced in germany and can be as cheap as 3 EUR when you can stand the nervewracking shipping from china and the follwing discussions with a customs officer.

And now suddenly my interest in all of these things is reinvigorated. Back then, building an internet connected thing (which, you know, is somewhat interesting if you are a web developer in your normal life) was not only quite difficult (Cheap wifi chips were not really a thing back then and ethernet adapters were available, but that makes a sensor or something like that immediatly 100x more clunky) but also a lot more expensive. Who knew that almost 15 years of technological advancement would have such an enormous effect!

So far I really haven't gotten that far in my experiments, so not much to document here but one thing I noticed is how much bigger this whole ecosystem has become. Also kind of a no-brainer, of course, but to me, being more or less away from this scene for a couple of years, the contrast is stark.

A Bosch BMP180 breakout board with attached cables which shows the small footprint of the sensor
A Bosch BMP180 temperature sensor breakout board. The sensor is the small metal case on the top left

To me this boils down to a couple of points.

  1. You can buy a lot more stuff more easily and also in way more accessible packages. With the still ongoing miniturisation of all things electronics, there's a ton of components that's essentially inaccessible to a noob maker like me who has no skills (and not a particularly great interest) in designing circuit boards. Take the BMP180 temperature and pressure sensor from Bosch for example. That whole thing is probably 4x3 mm or so. Without the adapter board someone designed and decided to mass produce you can see in the picture, it would be completely useless to me. Now, you can buy these ready made boards for about 3-5 EUR (again, depending on your sourcing habits and quantities you buy) and you can take a couple of DuPont wires and connect them to your NodeMCU and with some software and a USB power supply you have a temperature sensor you can run wherever there's a power socket.

  2. The library eco system for Arduino etc. exploded. There's not a lot of useful components out there for which you would not find an arduino library. When I started to play with my first Arduinos, one of the first things I tried was interfacing with a DOGM display, which not only looked cooler than the typical LCD displays but also needed less wires to operate as they used SPI for communication instead of the weird parallel protocol most text displays use – but there wasn't a library for it, so I had to do it myself – It's still available on GitHub but today of course there's a fully featured library available directly from the Arduino IDE.

  3. These two points combined actually mean that “the maker” is now a veritable market in itself. Back when I started, only a couple of online shops carried Arduino and compatible things. Nowadays, you can buy stuff from Amazon, you can buy stuff directly from chinese vendors at Aliexpress or Banggood or you can order at one of the many specialised online shops. And everything comes with references to the specific Arduino libraries or board definitions – You don't buy stuff that “works with Arduino”, you buy stuff that is specifically made for this particular ecosystem.

I did notice this already when i started to get into 3d printers, though. Suddenly, after a few searches, my internet was full of 3d printer driver boards, heating beds and matching surfaces, mechanical parts, stepper motors and so on, definitely stuff that wasn't as readily available when I first looked into this (roughly at the same time as my arduino journey started).

I guess, part of that is that the makersphere in itself got so much bigger and became “a market” to serve. But part of that is, I guess, also individual efforts to make the whole world of electronics so much more accessible – My feeling is that the “old school” electronics geeks don't particularly like this, in the same way that greybeards running unix clusters front agains those modern JavaScript hustlers.

Of course, there's the original Arduino founders to mention who really sparked this whole movement, but over the course of the last few years I don't think you should underestimate the influence that Limor “ladyada” Fried has had with her Adafruit empire. The amount of influencial hardware designs (like the Feather series of boards) and software initiatives like CircuitPython coming out of the Adafruit lair is just impressive.

The next evolutionary step was that hardware vendors started to understand and leverage that new market. Microchip, owner of Atmel, and thus the main supplier of ATMega chips you'll find on most of the Arduino boards, now has a much closer relationship to hobbyists. Expressif, the manufacturer of the ESP chips actually maintains the Arduino board SDK for the ESP32 and while I haven't looked I'm pretty sure there are examples of component manufacturers maintaining Arduino libraries for their components.

This all has a pretty weird effect on me though. Part of the fun of adapting the DOGM display back then was having to actually read data sheets and trying to get it working. In 2021, most of that work has probably been done for you and all there is left to do is copy and paste a couple of lines from an example file and adapt them to your need. If your need is to get up and running quickly and solve a problem you wanted to solve, that's great, but sometimes, the journey is the fun part – It will be interesting to see how this will influence my own motivation over the next few experiments.

I do think though, from a 3km perspective (See what I did there?) this change overall is fantastic for makers and the wide availability and accessibility of incredible hardware of all sizes and shapes is great and makes for a lot of fun.

At my home, the only thing that's “home automation” is a set of Hue light bulbs I use as a wake up light and to illuminate the flat as I arrive on a dark evening. This is quite nice and works okay-ish (I have issues with the geofencing every now and then, though) but since my flat is very small, has a very simple heating system and no other big automatable challenges, I have no desire to bring more automation in.

In my new studio (rapidly approaching a one year anniversary) the situation is different. I don't have any desire or need to actually automate the lighting, but there are a couple of things with the electrical wiring that made me think of doing at least tiny bits of automation.

For example, since two weeks now, I started to work on a dashboard – I have a RaspberryPi 3B+ as the driver and a cheap HD screen as the display. It displays a variety of different data, including Updown status of a few web apps, some personal “quantified self” stuff, status of my 3D Printers etc.

But of course, it would be madness to run the dashboard 24/7 when I'm not in the building. But keeping in mind every evening to switch off the dashboard is sort of tedious. And while in my experience Raspberry Pi's and the underlying OS are extremely good at handling power cutoff and cold restarts, you probably still want to gracefully shut them down before cutting the power, making the process even more tedious.

Now of course, here things get interesting because we went from “managing a few wifi power outlets” to “be also able to shut down a raspberry pi from afar” and of course none of the commercially available automation systems (mostly based on crappy apps) actually do allow you to ssh into a different machine and run shutdown -h now.

In my research, of course I quickly stumbled upon OpenHAB, and started to play around with it. In my search for a cheap and easily integrated power outlet, I then found Tasmota, an open firmware for a specific class of devices all based around the same specialised microcontroller, the ESP8266, which would make it really easy to integrate into OpenHAB. The missing puzzle to actually get me motivated to start for real was Tuya Convert, a project that allows you to flash specific ESP8266 devices (based on products of a company called Tuya) without having to open them up to solder some serial connection on. After a bit of searching for the best option, I settled on the Gosund SP1, which is sold in practical 4 packs for around 30 EUR at the evil quasi-monopolist (don't @ me). The flashing process is quite straight forward and I did it all from my RaspberryPi 400.

A screenshot of the tasmota ui running on one of my Gosund SP1's

Configuring OpenHAB is a daunting task and parts of me want to replace this with a much simpler system I can code up in a few minutes in Ruby, but there are benefits to be had from a system that has such a large community and has bindings for practically everything.

A screenshot of the OpenHAB configuration for an MQTT device channel

OpenHAB runs great on my brand new Raspberry Pi 4 and has been a lot of fun to configure and try to get some more elaborated schedulings and stuff working.

A screenshot of the basic UI of OpenHAB

I'm pretty sure this is not just me, but this year (2020) has make me lose my voice. And I don't mean that in a physical sense, so far (knocking on wood as I write this) the virus has spared me and my family, but in the sense that my brain is on constant overload during this multi-tier crisis but I haven't been able very well to put it into words. On twitter, I manage to occasionally come up with some witty, sarcastic comment and that often helps to temporarily relieve the pressure, but every time I try to put my (also very much multi-tiered) thoughts into writing, I give up after a couple of sentences.

Let me at least (for future me looking at this text in 10 years – because I don't think young people in 2030 will believe our stories) describe the status quo as I see it – I'll try to refrain from the instinct to analyse reasons or motivations.

As I write this, my home country is in a terrible state. Every day, roughly 500-600 people die from (or, as some people are not getting tired to point out: with) Covid-19. These are mostly, but not exclusively old people which we failed to protect. Our country is supposed to be in somewhat of a lockdown, but as lockdowns go, this is a pretty shitty one – It's very close to christmas celebrations, so people do lots of shopping (and many shops that are supposed to be closed offer “click and collect”). Also, companies are “urged” to allow working from home (what we call, slightly irritatingly to UK people, “home office”) or let people go home early for the xmas break but given that it is not enforced in any way and how shitty a lot of companies treat their employees in the first place I'm pretty sure that there are large pockets of the work force that are forced (that's why it's called work force, right?) to go to the office like normal (with the usual regulations of distancing and mask wearing applied...again something that's not enforced nor controlled in any way).

Schools, on the other hand, now clearly known for their hand in the spreading of the virus to and from families, were not even fully closed (well, it's holidays now) and I'm afraid they will open right away, regardless of our viral incidence on the 10th of January when this lockdown is supposed to end.

Schools are a complex subject. Closing schools outright can be dangerous with rising levels of in-family violence and dramatically rising inequality in terms of chances to learn, as families (or single parents) in precarious situations hardly have any chance to earn a living and help their children learn (or afford the technical needs allow their kids to follow online learning courses) – But the fact is that politics here in germany have systematically downplayed the risk of in-school infections even go so far to fake study results to prove their point, all to prevent a more complex discussion on how we can reduce on-premise studying to lower the infection risks and also how to make all of this socially just and less stressful for parents that are stretched thin in the best of times.

All this happening while the federal government spent enormous amounts of money on “rescuing” the (of course very battered) airline industry (which then went on to cut thousands of jobs anyway) and, probably the worst investment of the last few years, surprisingly found 10 Billion EUR to further subsidise our car industry – An industry that has not made headlines recently with their top-tier electric car technology as one would expect given the enormous challenges of mobility in a carbon neutral future but instead with technical measures to cheat emission tests so that they can continue to sell bigger and bigger cars that burn fuel like there is no tomorrow (And in the process ensuring there won't be one to speak of).

At the same time, our hospitals fill up and health care workers who got rounds of applause every evening at 9pm during all of April, now get even longer work days and no monetary compensation to speak of. I wouldn't be super surprised we'll get a mass exodus from the health care sector (which has already massive problems to find enough qualified personnel) after this crisis is over – It would be understandable and would maybe, maybe, if we all help, lead to much needed change. I said it before and I'll say it again, the mere fact that we thought (and still think) that health care can be organised around capitalist principles and should be able to cut profits is completely indefensible and needs to be reversed as soon as possible.

And under this clusterfuck, that is amplified by the complexities of germany's federal system with each state being run by a different kind of terrible right now (with several head of states being tangled up in a directional battle and search-for-successor-to-larger-than-life chancellor Merkel), there's the climate crisis looming that for some reason doesn't seem to be super impressed by a virus that completely threw off humanity for, as it seems to be more realistic now, several years. In my eyes the difficulties modern day lobbyist entangled representative democracy seem to have to deal with the crisis at hand all over the world (with some very few exceptions) is, in all it's glory, quite comparable of the inability to deal with the looming climate crisis. Again, I'll refrain from analysis here, but it seems to be quite clear to me that we'll need to take a deep reflection on what went wrong in 2020 to understand how we might be able to deal with the climate crisis.

Happy holidays, everyone.

These version numbers are strange, especially since they don't contain the dot that makes it clear that this actually means 2020-04, like Ubuntu's versioning scheme helpfully does. And of course Windows releases come without cutesy animal nick names (at least not publicly?!?)

WSL 2 – The Kernel within

Window 2004 was of special interest to me as it comes with support for WSL2 – a much improved version of the (again, weird name) Windows Subsystem for Linux. This time, instead of trying to do a cleanroom implementation of the Linux Kernel APIs (a brilliant and equally stupid idea), WSL2 actually runs a real Linux Kernel within Microsofts VM platform. This has a couple of benefits, with the biggest one being massively improved performance, specifically in accessing disks, for both the virtualised Linux file system but also the Windows filesystem that gets mapped in. WSL1's performance when Disk i/o was involved was absymal. On WSL2 it's, well, adequate. Of course a modern Linux distro running on the same machine on bare metal runs circles around it, but it's good enough to not be super frustrating.

My experience so far

I've been running 2004 now for as long as it is out, so almost a month, and I must say, the benefit of not having to reboot every now and then when I need to access stuff in Windows is bigger than I expected, even with todays quick boot times.

Also: Windows Terminal. Not exactly at feature parity with my Linux favourite K KiTTY, it is a pretty damn good terminal, with Tabs, Panes, a good configuration system and adequate compatibility.

Here's how my development setup currently looks like: All projects are on the Linux file system and I run them in the WSL shell. The most surprising thing might be my choice of editor: I had a bunch of interop issues when pointing SublimeText directly at the Linux filesystem – It works but it gets line endings wrong and sometimes file changes are not picked up. Probably things that are specific to WSL2 and will get ironed out over time, but there is a sort of solution: I'm running an XServer (x410 in my case, which is probably a nicely packaged version of XMing and has good configurability) and then start SublimeText from within WSL. It was a bit tricky to get this working, since it needs a bit of Firewall config on stock Windows, but it now works fine and while I haven't yet figured out how to scale the UI in a way that doesn't look blurry, it's a workable solution. Performance in the editor seems fine for the most part. SublimeMerge also then runs from within WSL as I had even more interop problems with it.

Automation

This sounds like a super hacky solution but it feels much better than that. Apart from the initial setup that was a bit tricky (but is somewhat documented on the web) and some interesting things that need to go into your .zshrc to make things work, everything works pretty much as expected. Runlevels are currently not supported but systemd scripts work, so I also have to do sudo /etc/init.d/postgres start (which fits my brain better than the systemctl alternative. I'm old) every time I start a session. People built scripts to automate that, but I quite like the fact that I can decide myself if the database should run or not.

So far I have only seldom booted into my Ubuntu to look up stuff or push stuff I forgot to a git repo. I do miss Evolution a bit as an Email client (and somehow expect to have a lot of hoops to jump through to get that beast working in WSL) but Thunderbird isn't so bad.

Putting the ow in audio.

One thing I certainly don't miss is Linux audio trouble. It's still the main sore spot in my Linux experience and given that I do a lot of Audio, I ran into all the issues. Now, Audio and (even more so) MIDI aren't great on Windows, it's the one thing that I miss from macOS, but if I understand it correctly, things haven't exactly improved there either and in general, specifically with my current setup, I'm quite happy with the stability.

Reclaim the space

I'll definitely continue this experiment and if it turns out that I don't need Linux anymore, at least not in pure form, I'll happily delete the partitions and reclaim the disk space. Dual boot systems are never great, but especially my Laptop, that extra space will be well received.

Enter your email to subscribe to updates.