Home Home Automation Marvelous notifications - Putting ESP8266 Jarvis into toy Ironman

Marvelous notifications – Putting ESP8266 Jarvis into toy Ironman

It's a mini Jarvis!

I was looking at my shelf the other day and I noticed an Ironman figurine given to me by a friend. Initially, I was only going to paint it, so it would look more pretty, but upon closer examination, I thought I could make a little more interactive. With that said – meet Ironman – the rock star of Marvelous Notifications!

The Marvelous Notifications

The idea is to make an IoT device which will blink the LED over the Internet. This way I can visualise any notification or data. Here are proposed uses:

  • monitor http://notenoughtech.com website
  • flash when a phone notification is received
  • flash when a doorbell is pressed
  • flash when the Amazon Dash button is used
  • more

There is enough space inside to fit an ESP-01 and an RGB LED (WS2812b) – the same LEDs I used in my Automated Staircase project. A couple of minutes later, the Ironman’s head was open. There was no sign of Jarvis. The ESP-01 may not have the Jarvis computing power, but it is enough to drive a single LED even without 5V logic.

The breadboard test was a success, so it was time to paint the shell. I appreciate the gold colour, but I can do so much better than this with my art degree! See? All these years at the university won’t go to waste! I have a 10 min timelapse of that. The entire process took about 3h! I used just regular acrylic paints and varnish to improve the looks.

The Hardware

The hardware is pretty simple:

If you want to learn how to connect and flash ESP8266 – I have you covered! Read this guide to learn more. I also used my DIY flash adapter to make the process much quicker.

Because I was short on space inside the Ironman, I glued the LED to the ESP8266. I also shortened the CH-EN and VCC, so I only have to use one cable to power it on. The plan is to power it all of a USB.

The USB has 5V which is too much for the ESP8266-01 board, and this is where inline 5V to 3.3V step-down module comes in. That’s the complete hardware.

The Software

I wrote a specific library to drive the WS2812b LED via MQTT protocol. In short, I use the MQTT pubsubclient to send a string containing the following information:

Format: (num:red:green:blue:LedON:LedOFF:Brightness:loop)

num:        int 0-255  // number of blinks
red:        int 0-255  // red channel (use color picker)
green:      int 0-255  // green channel (use color picker)
blue:       int 0-255  // blue channel (use color picker)
LedOn/Off:  int mills 100 - 1000 // LED and break timings
Brightness: int 0-255  // LED brightness
loop:       int 0,1,2  // mode (count/constant blinking/clear)

Based on this key a sample message like this:


Would translate to 3 Blue 1 sec blinks every 300 ms at the full brightness. Now that I have the firmware ready, it’s time to take care of the notifications. I created a flow in NodeRED (tutorial to NodeRED) to test the setup. It’s simple for now, but I will add the notification bit later.

Ironman notifications – interfacing with other systems

It’s time to make my IoT Ironman usable! The default way of sending the configuration string will be via HTTP POST. I added the nodes. I will assume that the incoming string is already configured.

I mentioned, that I want to monitor my website. I can ping my server every X seconds and compose a configuration string to send single flashing green light


When the website ping is below 1000ms or continuous blinking red when the website is down or it is taking over 1sec to get the ping back:


And this is how you can monitor the website with Ironman. Let’s talk about mobile notifications next.

Mobile Notifications

Obviously to capture messages and notifications I’m going to use Tasker and AutoNotification plugin. Each time I receive a message of a certain type – let’s do WhatsApp and SMS – I want the Ironman to blink x times in y colour.

For WhatsApp I’m going to blink LED 6 times, set the colour to green


For SMS I want  LED to turn blue and blink 10 times


When I receive the appropriate notification on my phone, Tasker will check what was the notifying app and will send the correct HTTP POST with one of the strings above.

TASKER PROFILE - Ironman Intercept
Profile: Iron Man Intercept 
	Event: AutoNotification Intercept [ Configuration:Event Behaviour: true
	Has Reply Action: true
	Notification Apps: WhatsApp,Messages ]
	Enter: IronMan Notify
	A1: HTTP Post [ Server:Port:%HTTPuser:%HTTPpass@%NODEREDIP 
		Data / File:led=6:15:224:99:600:100:254:0 
		Cookies: User Agent: Timeout:10 
		Content Type:application/x-www-form-urlencoded 
		Output File: Trust Any Certificate:On ] 
			If [ %anapp ~ WhatsApp ]
	A2: HTTP Post [ Server:Port:%HTTPuser:%HTTPpass@%NODEREDIP 
		Path:/ironman/notifications/ Data / File:led=10:15:96:226:1000:300:254:0 
		Cookies: User Agent: Timeout:10 
		Content Type:application/x-www-form-urlencoded 
		Output File: Trust Any Certificate:On ] 
			If [ %anapp ~ Messages ]

The Tasker task is simple and it will select the correctly formatted post based on the IF statement checked against the AutoNotification’s %anapp (contains the app name)


I love this project, as at heart, this is a very simple idea. By giving it an Ironman spin, it’s fun, and it gives the entire project extra depth. You can transform many toys like this. You can make the parts move, you can add more LEDs, whatever you like!

It’s all about making it personal and special. I hope you will come up with your own ideas and upcycle toys or items you still care for.

Project Download

Download project files here. Bear in mind that Patreon supporters have early access to project files and videos.


Nothing says "Thank you" better than keeping my coffee jar topped up!


Support me on Patreon and get an early access to tutorial files and videos.


Bitcoin (BTC)

Use this QR to keep me caffeinated in style with crypto-currency

Smart Ideas with

Automate your space in with these ecosystems and integrate it with other automation services

Learn NodeRED

NodeRED for beginners: 1. Why do you need a NodeRED server?

To server or not to server? That's a very silly question!

Best Automation Projects

ESP8266 WIFI lights under $5

Your Sonoff device can't do this!

Free wireless doorbell (Amazon Dash button hack)

The most terrifying situation I can imagine* is missing a parcel

New Amazon Dash Buttons

You can teach new buttons old tricks!

ESP8266 ceiling light – demo

Testing the ESP8266 as a WIFI light controller

Try Tasker and Raspberry Pi for your home automation needs!

Raspberry Pi can help you with your Tasker profiles

Smart Home

Sonoff ZBMINI is in town!

ITEAD released a new product - Sonoff ZB Mini - a smarter twin brother of Sonoff Mini!

Testing 9 external antennas with CC2531 ZigBee coordinator

I have tested the range and the link quality of 9 external antennas with CC2531!

I have infinite buttons thanks to Aqara Opple

Gaming on Switch meets IoT - can you play games on Aqara Opple? Apparently you can! This and more uses of the connected wall switch

Smart lights won’t save you money

It's pretty clear how much power a smart light draws when turned on, but have you ever wonder how much do you pay to have it connected 24/7?

Alexa Routines: Setting volume on all Echos at once

Setting volumes on all Amazon Echo devices at once doesn't have to be a chore!