Category Archives: ESP8266

Home Control ESP Software Branding at Last

For far too long I’ve been sitting watching others give their ESP8266 home control software branding without following the trend. Having just spend umpteen solid hours updating the software, I’m taking the opportunity, merely for clarity, to go with the trend, The ESP8266 software, used extensively here and by blog readers is to be called ESP-go

This, as regular readers may know, i s native C code for the ESP8266 using the ESPRESSIF SDK (2.0) to provide comprehensive firmware for esp8266 when working with the likes of Raspberry Pi and “the script” in which Node-Red, supported by Mosquito MQTT, allows you to put together home control rapidly. This is all detailed elsewhere in the blog.

At the time of writing version is 2.19, recently (April 2018) updated to fixed a remaining minor issue with fixed IP addressing and to update the supporting Word Document.

Also just realised that a timeout is not practical for permanent manual override in node-red-contrib-bigtimer – so turned that off for version 1.9.2


The Script and ESP8266 Code for Beginners

I’m often asked about setting up MQTT, Node-Red etc. on the likes of Raspberry Pi, with a view to controlling ESP8266 devices.

Novice readers start here

Usually it is difficult for me to see this from a beginner perspective, but having spent 2 months in hospital thanks to an untimely stroke from which I’m still recovering, 4 months after the event, I recently found myself doing new installs without the benefit of doing this stuff every day. I am just SO glad I blog everything.

Array of Raspberry PIs

Continue reading The Script and ESP8266 Code for Beginners


ESP8266 and ATMEGA2560 Mega Board

ESP8266 and Atmega 2560You may recall my blog entry about my “universal peripheral” – using the little Arduino Nano or similar clones with an ESP8266 – with the former providing GPIO via an I2c connection.

Well, that led me to getting this little number from Banggood – the Wemos Atmega + WiFi R2 Atmega2560+ESP8266 32Mb Memory board.

It’s not 32 MEG of course – it is 4MB – but that’s the same as a normal ESP12. but with the GPIO power of an Atmega 2560 – all in one neat board.

Initial impressions – it looks well put together.  According to the underside, it takes DC 7-16v in – and has DC out at 5v 1.6A and 3.3v at 1 amp – so it actually is a little more than just the two boards – looks like there’s lots of power there for peripherals.

Continue reading ESP8266 and ATMEGA2560 Mega Board


INA219/ESP8266 and Node Red

tmpB2D1In a previous blog entry we were playing with the INA219 voltage and current monitor. Here I team the little board up with the ESP8266 and Node-Red.

In this entry, I have teamed up the INA219 with my ESP8266 code which already has a driver in for this chip and also has support for the SSD1306 – hence, thanks to MQTT, this little combined chip can easily show the current status on the on-board display and also show it on a Node-Red dashboard in gauges and also a combined graph.

Please note that I have updated the ESP8266 code (v2.3.15) and changed how this works as I ended up writing way too fast to the device… this code works.

Power MonitorOf course that’s how I’ve done it – armed with info you can do any variation you like. I’ve set the graph limits here to 6 volts, I guess it would make sense to set it to 30v.

I’m also using a 1 second inject node, perhaps something more flexible and externally programmable would be better – in which case you could have different graphing speeds. Nice for checking battery charging?

As my ESP8266 code (documented on the blog – see right menu, ROMS available, recently updated) already does all the display and INA219 handling, everything was done in Node-Red.


Power Monitor

Here is the code for “Process Chart”

var ina=JSON.parse(msg.payload);
var msg1={};
var msg2={};
var v=Math.round((ina.voltage/1000.0)*100)/100;
var a=Math.round((ina.current/1000.0)*100)/100;
var w=Math.round((v*a)*100)/100;

msg.payload=v; msg.topic="voltage";
msg1.payload=a; msg1.topic="current";
msg2.payload=w; msg2.topic="watts";

The injector node has a topic of ina219/toesp (assuming you set the ID of the board to “ina219” of course) and a payload (string) of:


The 1 on the end implies a 64 pixel high ssd1306 display attached, a 0 would imply a 32 pixel high display and no parameter would assume no display and simply send the information out. Initialisation of the INA219 and optionally the display happens at first use – no need for separate init.

I’ve now added range adjustment – you MUST have the latest node-red-dashboard for this…

return msg;

In the case of setting the maximum range to 6 – the payload for that button (drop down and select JSON) is {"ymax":6} – have as many as you want!!

And that’s it  - simples…

I’ve not shown current here as I need to lower that LOAD resistor on the INA219 but you will normally see voltage, current and power in that graph! Once I figure out how to correctly reprogram the chip I’ll add that into the ESP8266 INA219 code.

I have some 0.025R resistors on the way but from China so it’ll be weeks. Meanwhile of course this is perfectly usable.

The first version of the software proved unreliable and so anyone who first looked at this may have noticed I've updated the ESP software. The current version I have sitting on a window on my PC.

It has now been running at 1 sample per second for the last 96 hours without a glitch. At some point I'll add disk (sqlite most likely) logging - though in Node-Red that is simple enough to do.


ESP8266 Lies and Deceit

tmpCE60It never ceases to amaze me when looking through Ebay, the level to which companies or individuals are prepared try to mislead the public or at best are simply unable to form sentences correctly. Some even tell outright lies.

Let’s take one of my favourite subjects, the ESP8266 boards. Way back in the past, ESP8266 life started off with the ESP-01 module, comprising an ESP8266, 512KB FLASH and most of the connections NOT brought out. Being surface mount, only the most agile could solder pins to get the extra outputs – but – we were all new to this – and what a bargain, for just a couple of pounds you could have a crippled ESP8266 and actually turn things on and off via WIFI.

Continue reading ESP8266 Lies and Deceit


Home Control 2017

Introduction (Latest update October 08, 2017)

HomeSick of reading about other people’s home control? Want to make your own? Got some electronics and software experience? You’re going to LOVE THIS! Rock-solid home control, flexible, low cost, DIY.


Home Control 2017

Continue reading Home Control 2017


A Flashing ESP Chips Surprise

Well, you could have blown me away.  Tonight was making a little relay controller for the hot tub using a WEMOS board and relay board. I carefully soldered them together and plugged them into a USB connection on my PC, as I’ve done thousands of times.

Also as I’ve done thousands of times I flashed the board with my ESP8266 standard software which I have down to a single button-press in Eclipse.

Continue reading A Flashing ESP Chips Surprise


The Wall Display

ESP8266 Wall DisplayI’ve just spent time working on my hallway wall display, the amount of which would be considered commercial suicide. Good job it isn’t commercial.

Of course I’ve not just been working on the pretty colours – I’ve revamped the control codes for the ESP8266-driven controller twice, discovered and fixed an OTA flaw in the code, re-hashed the Node-Red driving code, found and fixed countless other bits and pieces… and in the process taken pause for thought as to why I ever used the Dark Skies Node… you know – in other words – pretty much revamped everything just to improve a simple display.

Continue reading The Wall Display


Simple Scope

SPIYou may have noticed that I’ve been working on my ESP8266 home control software (see the updates elsewhere along with new diagram), specifically upgrading and adding to the number of OLED and LCD displays I can handle, either by I2c or SPI.

I’ve been doing a lot of optimising and simplifying – for example with SPI – assuming that there will only be the one SPI device at once on an ESP means you don’t need the CS line which can be grounded.  But there’s more….

Continue reading Simple Scope



QD-TechIn case you were wondering – no, I’ve not gone off the boil, I’ve been quietly beavering away on my ESP8266 code since deciding to abandon the old ESP-01 and adding fonts for displays. Right now I’m focussing on the QD-Tech boards – 120x160 but I’ll eventually migrate the use of the various icons to the other displays now that I’m not terrified of running out of space.

Continue reading Icons