HomeHome AutomationMarvelous 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 with BTC: 1FwFqqh71mUTENcRe9q4s9AWFgoc8BA9ZU

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

Nora – Google Assistant in NodeRED

Integrate Google Assistant with NodeRED thanks to Nora - NodeRED home automation

NEST your old thermostat under $5

Nest-ing up your older thermostat under $5

Sonoff R3 DIY mode & why it sucks

Long awaited Sonoff R3 DIY mode is even worse than I expected.

Things they don’t tell you about IKEA Trådfri

There are things you should know about IKEA Tradfri before you make your purchase

Flashing ESP with Tasmotizer is a dream come true

How to flash Tasmota on ESP devices with new Tasmotizer tool

Smart Home

The quietest roller shade driver I used!

Aqara Roller Shade Driver E1 is ZigBee 3.0 wireless and the quietest controller for blinds, rollers and verticals.

M5Stack UnitV2 update brings WiFi

M5Stack UnitV2 finally gets much needed WiFi update and I will show you how to make the settings stick

Flashing Tasmota on Sonoff POWR3

How to flash tasmota on Sonoff POWR3 and set it up correctly

Amped to 25 – Sonoff POWR3

It's bigger, better and comes with massive 25A current limit - for all your present needs - meet Sonoff POWR3

SwitchBot made an IP Camera

SwitchBot Indoor Cam is small and inexpensive 1080p camera with smart assistant support and 2 way communications