halfbyte

compact musings of a multi faceted geek

Okay, that's probably an exaggeration. I am neither in the Ukraine nor am I part of the Russian troops, so unless something goes extremely sideways within the next few weeks, I'm probably fine for now.

The reason for this drastic, probably a bit clickbaity headline is a serious one, though. The very thinly veiled threat of Putin to use his (to be fair, so far rather underutilised nuclear arsenal) did trigger some deeply ingrained fears in me. I grew up in the 80's (Born 1976) and as a rather astute (If I do say so myself) and curious young child, I unfortunately was a bit more influenced by the cold war antics of the day when a nuclear meltdown was essentially on the table on a day to day basis than you would think. So deeply ingrained were those fears, in fact, that my subconcious transported me directly into the centre of a nuclear explosion one morning in a dream when in fact, the only thing that happened was that some rather noisy construction work had started on the roof I was directly sleeping under. I was probably 14 or so and the risk of a sudden nuclear war was suddenly very low after the collapse of the soviet union and the german reuinfication. Still.

All goes to say, of course I am relatively safe here in Germany, all things considered, especially in contrast to my Ukrainian brothers and sisters but that doesn't mean that this doesn't trigger traumata in many of us born before the official end of the cold war.

The full on invasion of the Ukraine by Russia, a clear breach of international law and a couple of existing treaties, once again, changed everything.

Ah, ye olde militarism, can't say I missed ya

My country, Germany, usually obsessed with being as frugal as possible, suddenly found 100 Billion EUR to throw at our mismanaged and especially mis-consulted military. And our parliament, instead of bemoaning the necessities of war, gives itself standing ovations, as if every other member also sits on the board of directors of one of our countless weapons manufacturers (Actually, now that I think about that, that's probably closer to truth than I want to admit) or, worse, actually looks forward to finally show the world again that Germany is a strong country with a strong military.

Sorry, I had to puke and some of it got into my keyboard, it took a while to clean up.

The only silver lining seems to be that there seem to be some (finally) understanding that being completely dependent for energy sources (Coal, Oil, Gas) on a, shall we say slightly less democratic country like Russia is probably not a good idea and that renewables are actually a pretty clever idea to get rid of those dependencies.

Apart from that the new military budget, paired with the so called “debt brake” which disallows the state to increase the debt beyond certain limits makes for a rather bleak outlook in terms of investments into a more climate friendly future. Pretty sure all those new tanks and war planes we'll be getting will be hydrogen powered, right? Right?

Get to the fecken point, man!

After a lot of rambling, fuled by my very odd combination of a epidemic induced tiredness, excessive fear for our future (a nuclear winter might counteract global warming for some time, maybe?) and white hot rage, let's try to bring this to a point, because a point I wanted to make.

In the last couple of years, political commentators have often bemoaned the obvious lack of long term thinking in modern democratic politics. The (only recently ended) era of Chancellor Merkel was pretty much this very short term thinking and focus on reactive policing personified.

We have always said, that with the climate crisis, this short term thinking will fall on our feet at some point. Of course, this has already happened almost everywhere in the world, with Floods and Fires, Hurricanes, etc, but it is clear that a bit of global strategic, long term thinking could have prevented a lot of all of these terrible things.

To me, the Russian war on Ukraine and the limits of our space of possibilities to help Ukraine is also a result of that.

We could have made ourself less dependent on Russian energy sources a long time ago. Nord Stream 2, the gas pipeline now completed but probably doomed to never actually go into service (don't get me wrong, that's probably for the better, but what a waste of time and resources) is one of those examples where at every step someone should have said “No, this is not a great idea”.

Diamonds are an oligarchs best friend

Of course, the short term thinking was also paired with a healthy dose of greed (or should we just call it Capitalism?) as one could witness in the early talks about the sanctions against Russia where the dependencies on oligarch money became painfully clear – Milan wanted to be able to still sell overpriced bags, Antwerpen wanted to please be able to continue to sell Diamonds.

Do we need more lenses?

My friends and I often remarked during the pandemic how the coronavirus created a sort of lens through which faulting in our societies suddenly became visible (with the obviously terrible state of our health care work being the most drastic example).

It is both my hope and my fear that the next weeks shaped by this travesty of a war caused by a hurt ego of a very small man and his nationalist “thinkers” will create a lens that will inform our thinking and our actions for a very long time. Seeing the usually well buried but obviously not irradicated militarism awaken with such force in my home country does make me fear we might not only learn the correct lessons. It is our responsibility as citizens, as humans, to watch this closely and do everything we can to keep us from tumbling down the slippery slope that small man has so artfully created for us.

Glory to Ukraine!

All of that being said: A country led by a man who once played a piano with his penis on national television and who was the Ukrainian voice of Paddington Bear should be in a good position against any aggressor. And for once I am not even joking. Slava Ukraini!

After my last post about my first ride on an e-bike, things got out of hand quickly. First, a friend of mine, who recently started to work for dance.co got in touch and after a very nice breakfast with loads of nerding out on cycling and electronics, I got to test ride their current offering. It's a good bike that makes all the correct compromises for a city bike, I think. Unfortunately, while they definitely plan to expand beyond Berlin, a definite start date for Hamburg is not yet known and so I looked around and scanned the offerings of the biggest bike rental player, Swapfiets. They recently introduced the Power 1, which is, while quite a different beast than the dance bike, is at least the closest. With the introductory price of 49 EUR per month, testing this out was a no-brainer, and so I have one of these bikes in my posession right now.

It's a solid bike

The first, obvious thing is that this bike is heavy. At 25kg (with Battery) it is more than double the weight of my (comparably light) Stevens Courier SL and that makes heaving it in and out of my basement storage quite a different procedure.

The electric motor and drive is fine, but given that this is a single speed the experience of driving it is distinctly different from driving the 7 speed during our vacation. You accelerate to the 25 km limit quite quickly, but if you're sustaining at that tempo, it's quite exhausting, not so much for muscle power but for sheer speed of the movement. A different kind of workout, so to speak. That said, I think I tend to usually drive my bikes at rather low pedal speeds (tending towards the higher gears, so to speak) and so this may be a very specific problem of a low frequency pedaller.

Yeah, that front rack

The rest of the bike is the usual solid quality you come to expect from a dutch bicycle company, but I have to say, I really dislike the front wheel bike rack. I understand that many people really like that setup because you have your belongings always in sight, but the weight distribution, if I drive this with two loaded rack mount bags is far from ideal and there's really no way to mount something on the rear wheel.

Keeper?

All in all, I am not sure I'll keep this bike – Or rather, I am quite sure that I only will keep it until I can test out the dance bike.

There's also the question of how always driving an e-bike will impact my fitness, as my usual commute is definitely part of my cardio program – I decided to ignore this question for now and focus on the practicality of these bikes and then have a go at the question if an e-bike would make any sense for me in the city. Of that, I am not so sure right now.

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

Enter your email to subscribe to updates.