esp8266 web based firmware
I’ve been working on a project to create custom web based firmware for the esp8266 for about the last six months. If you landed here and you don’t know what an esp8266 is, it’s a tiny WiFi enabled microprocessor board in various models with varying features depending on which model you go for. There’s a large community around these devices with hobbyists / DIY electronics people and if you’re an avr / arduino tinkerer you’ll feel right at home playing around with esp8266 boards.
By and large these devices are made by a single manufacter Expressif Systems in China and out of the box these devices come with pre-built ‘AT’ firmware preinstalled. This firmware is called AT firmware because the device emulates an AT command set over it’s serial interface for communication / configuration purposes similar to the AT command set implemented in dial up modems of old. Some people develop applications with these devices with the preinstalled AT firmware in place along with some other device (e.g. an arduino board) to interface with the esp8266 over it’s serial AT interface. It is however entirely possible and reasonably easy to develop code to run directly on the esp8266 itself removing the need for some other device to act as the ‘intelligence’ in the setup. Enter esp8266 web based firmware..
Formulating a plan
Sometime ago back in December 2015 I was reading about these devices and thought ‘hmm sounds interesting’ so I dropped an order on Aliexpress for a single esp826612E board - it cost something like $2. It was looking like a fairly long estimated lead time for the device to actually arrive (about a month) so that gave me some time to think about what sort of project I could work on with it when it arrived. I didn’t have a specific application for this thing unlike other users that might need to monitor a door opening / closing, monitor their fish tank water filtering system, monitor / control greenhouse humidity etc so I tried to come up with an idea for something that might be generally useful with no specific hard wired application in mind - some sort of esp8266 electronics based / firmware abstration of an application if you will. I also thought of an idea where it would be nice if this application were accessible and easily usable without people having to get their soldering iron out to connect it up and use it. So the idea of custom web based firmware that would run on the device started to form along with a plan to eventually house the device in an enclosure to make it more ‘user friendly’.
That brings us up to date where I am today with development on this. About six months in, I admit it has been fairly slow going on this project but in my defence I only work on this in my own time and I do have a day job. So I’m fairly happy where this is up to, I’d say the firmware aspect of this is now at v1.0 and I’m moving into hardware design territory next with a bunch of new components in transit winging their way from the far east right now.
So what on earth is iD8266 and SkyNet? iD8266 is a sort of codename combined with a logo that is connected to half a plan to turn this project into a real product at some point. SkyNet is a joke that a mate came up with when I told him about this project - my esp8266 became LED aware on 23 March 2016 at 21:05 and it now rules the LEDs.
Videos / Features
Along the way I’ve recorded some progress videos to track development and implementation of the firmware and these are up on youtube highlighting various features including:
- bootstrap responsive design
- user authentication / session support
- flash persistence for all configuration
- network configuration support
- DNS support
- web server configuration support
- GPIO configuration and control
- GPIO MQTT support for open lightweight monitoring and control
- websockets support
- JSON Rest style API for 3rd party application development
- NTP client configuration support
- Support for logging to external services e.g. Thingspeak and any other HTTP server that accepts a GET request
- diagnostics display
- OTA firmware update
Take a look at the youtube videos here: https://www.youtube.com/channel/UCa_exk34O_W2tTnGeHXw5Og
Youtube comments and comments on this blog are always welcome.