FUZIX (Unix-like OS) ported to the ESP8266

Well here’s some really interesting news. I have a job set-up to update “interesting” GitHub projects to local disk on a daily basis, so I can just do a quick listing every morning to see what, if anything, has changed. This morning the FUZIX project flagged changes (FUZIX is a minimal, unix-like OS for very small, resource-limited micros, which started off being targeted at the Z80 series). When I checked the repository to see what the updates actually were, I found:-

drwxrwxr-x 10 gaijin gaijin 20 Feb 18 05:38 ..
-rw-rw-r-- 1 gaijin gaijin 11536 Feb 18 05:38 Makefile
-rw-rw-r-- 1 gaijin gaijin 273 Feb 18 05:38 .gitignore
-rw-rw-r-- 1 gaijin gaijin 35670 Feb 18 05:38 filesys.c
-rw-rw-r-- 1 gaijin gaijin 252 Feb 18 05:38 dep.mk
drwxrwxr-x 2 gaijin gaijin 6 Feb 18 05:38 cpu-armm0
drwxrwxr-x 2 gaijin gaijin 24 Feb 18 05:38 platform-esp8266

Which led, in turn, to David Given’s marathon videos (there are roughly 30-hours of keyboard-bashing and puzzling-out-loud available right now, with another five videos still to be released on a daily basis) detailing his work to port FUZIX to the ESP8266. David’s web site has some further explanation of how far along the port currently is, along with some pre-compiled, loadable binaries for the ESP8266 (I haven’t had time to try them yet). All of David’s work is available from his GitHub repository.

You will need to attach an SD card to get the full FUZIX experience, but David says it is reasonably speedy on the ESP8266, with a boot time of just 4 seconds.

|�l�c|����{���B�p�n�dNn���cp��cl r$p�N�s����cN�|����B�|�N�l��l�Nl�d Nr���N��{$�o�nod���no��rdp�n���l"o�|����p��no�$�$�no$�{$or���o� �n�2NNl��|�N��lp�N��d�#n�|���b��Nn�d�l �oo$�{lor���N$�$sےNl��FUZIX version 0.4pre1
 Copyright (c) 1988-2002 by H.F.Bower, D.Braun, S.Nitschke, H.Peraza
 Copyright (c) 1997-2001 by Arcady Schekochikhin, Adriano C. R. da Cunha
 Copyright (c) 2013-2015 Will Sowerbutts will@sowerbutts.com
 Copyright (c) 2014-2020 Alan Cox alan@etchedpixels.co.uk
 80kB total RAM, 64kB available to processes (15 processes max)
 Enabling interrupts … ok.
 Scanning flash: 2591kB: hda: 
 SD drive 0: hdb: hdb1 hdb2 
 Mounting root fs (root_dev=18, ro): warning: mounting dirty file system, forcing r/o.
 Starting /init
 init version 0.9.0ac#1
 login: root
 Welcome to FUZIX.

David notes in the README (contained in the binary tar-file) that the system does have some limitations; first and foremost is that it is almost unusable running from flash, so you really do need to wire up an SD card (pinouts for this are included in the same README). Here is his ToDo list:-

  • userland binaries can’t find their error messages.
  • CPU exceptions should be mapped to signals.
  • single-tasking mode should be switched off (which would allow pipes to work).
  • someone needs to overhaul the SD SPI code who understands it.
  • not all the ROM routines are hooked up to userland binaries.

Right, I’m off to look for an SD card and a spare ESP. See you later!

Wireless enable your multimeter

David Pilling’s blog is chock full of interesting stuff and, not surprisingly, he has discovered the ESP8266, too.  This is a pointer to David’s article on adding wireless capability to the Vichy VC99 multimeter.  I should warn you  in advance not to expect too much in the way of photos, diagrams or other pictures in David’s blog.  All of his articles which I’ve read so far appear to be targeted at an audience of fellow enthusiasts (ie:- people who know one end of a soldering iron from the other …even when it’s turned off) and who consequently don’t need too much hand-holding (we’re definitely not talking “Instructables” here).  Don’t limit your visit to the ESP add-on, though.  This is one of those blogs where there’s almost certainly something else which will grab your interest (be prepared to lose an hour or so of your free time).



Tinkering with the Sonoff TH (by Tinkerman)

Xose Pérez has a great blog (Tinkerman.cat) with lots of hardware projects (as you’d expect from the title).  He’s also heavily into the ESP8266, so it comes as no surprise that he’s already got his hands on the latest offerings from ITead Studio, the Sonoff TH10 and TH16 high power switches.

Annotated board (bottom)Of course, it would be no fun at all if Xose just reviewed the units, but we can trust him to go a lot further than that.  In a recent article, he shows us round the interior of the units (highlighting the differences and the improvements between these new versions and the smaller original) and then demonstrates how to add i2c functionality to the existing sensor socket.  With his small modification, the Sonoff TH goes from being able to interface with either a DS18B20 (One-wire temperature sensor) or AMD2301 (DHT22 style humidity sensor) to being able to handle the whole gamut of i2c enabled input and output devices.

While we’re looking at Xose’s ESP8266 stuff, you might also like to check out his BitBucket repository.  You’ll find an alternative firmware version for the Sonoff series (named “Espurna”), which is probably where the code for the i2c mod will end up, as well as a WiFi manager library (named “JustWifi”), which features automatic AP connection based on signal strength.  There’s a ton of other, interesting stuff in there; some ESP-based and some not.  Definitely a treasure trove.



Another nice breakout board on Tindie

McUdude Breakout Board

This one caught my eye recently, mainly because it’s so versatile.  It accepts several flavours of ESP8266 module, has two voltage regulators to support different input voltage options and also has a prototyping area.  The prototyping area is nicely laid out, with ground and 3v3 rails running up the middle and the broken-out GPIO connections from the ESP lined up along one side.  The only down side is that it is a touch expensive, at $9.90 plus shipping for the populated board (not including an ESP8266 module).  It’s available now on Tindie, shipping from Norway (which unfortunately adds $4 to the price for my particular location).

UI5 on an ESP8266

If you’re anything like me (poor eyesight and clueless), you might be wondering what the heck UI5 actually is (for as start, is that “Ewe-one-five”, “Ewe-Ell-five” or “Ewe-Ai-five”?).  Well, it turns out that it is shorthand for the “User Interface Development Toolkit for HTML5” (so “Ewe-Ai-five”) and here’s a “Give me the jargon-filled-buzzword-compliant-sales-hype” run down on what it is/does.

Jan Penninkhof's UI5 application

Jan Penninkhof has some neat ESP8266 projects over on his blog and he decided that UI5 was absolutely essential to his automated veranda control box (;TLDR version: He wanted to be able to configure newly installed ESP’s with their basic info and network settings from pretty much any HTML5-capable device).  The main problem being that a bare-bones UI5 build, without an application or any extra configuration files, weighs in at about 4MB.  Jan’s blog is a neat tale of how he sheared, pruned and trimmed down UI5 to be able to fit it into the ESP8266 available flash space and still do useful stuff with it.  Definitely worth a read!


Weekend Reads [2016/06/04]

This week we have a couple of hardware projects at the front of our queue, so you might want to switch your soldering iron on to heat up now.

Finally, here’s a teaser from a high-school in Spain where they are using cascaded ESP8266’es (rather than mesh networking).  I class it as a teaser because there’s an explanation and a video (in Spanish), but no code or example configs that I can see (updates welcome in the comments section, below).


Weekend Reads [2016/5/28]

Another eclectic electric collection for your delectation.

One of Theo’s more recent updates is to add a couple of photos to the README.md for the Sonoff-MQTT-OTA-Arduino project (scroll down to the bottom of the page) of a (broken) Kaku 433Mhz mains switch which he has gutted and replaced with an ESP8266 to make a Sonoff look-alike.  I can’t find any further details of the project, but from what we can see from the photograph (click to enlarge) and what we already know of the Sonoff, it should be relatively easy to duplicate this if you have any of these older Kaku units gathering dust.

Weekend Reads [21st May 2016]

Here we go with a few more links which tickled my ESP8266 fancy.  Enjoy!


This final link needs a couple of warnings …the first is that it is not ESP8266 specific, but it has a metric ton of great information for those of us who want to use an RTC with the ESP8266 in data-logging applications; the second is that you are going to lose a lot of time once you start reading …this whole blog is just chock-full of interesting stuff.  Edward Mallon shows us how to implement an RTC (and temperature sensing) on his “Cave Pearl” underwater sensors.  A fascinating read.


Weekend Reads [14th May 2016]

Here’s another small selection of interesting stuff from the web.

Weekend Reads [7th May 2016]

As a little bit of a break from the ongoing TASMOTA series, here are a few links for some light, ESP-related, weekend reading.

Finally, here’s one just to amuse you.  It’s not an ESP8266 project, but a project along the same lines of the ESP relay switching boards which have generated so much discussion in the forums recently (about the relative safety of their designs).  This one popped up in the Editor’s Choice newsletter from Instructables (and obviously, when it comes to basic electronics,  the Instructables editor is as clueless as the original submitter).

What I’d like to know though, is how the submitter actually did what he did?  Take a look at the “$1 AUTOMATIC WATER LEVEL CONTROLLER” project and see how many mistakes you can spot (you’ll need to  scroll well down in the comments to see an image of the bottom of the board).  I’ll give you a clue for the first one …I’m colour-blind, but not that colour-blind!  At any rate, please feel free to ignore the author’s advice that this is a working design for an AC pump.

Have a good one!