You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mach327 4595f05f4d readme updates 3 years ago
.gitignore first p0st 3 years ago readme updates 3 years ago
christmasmeshmash.ino first p0st 3 years ago
example_creds.h first p0st 3 years ago
example_devices.json first p0st 3 years ago
example_upload_destination first p0st 3 years ago
example_wifi_add.h first p0st 3 years ago
makefile fix makefile for upload after file rename ssh->upload 3 years ago


An MQTT led strip sketch with cryptographically signed updates over HTTP and multiple wifi network support.

Started out as a mesh project, but one of my family was hospitalized and wasn't going to make the family christmas, so I quickly rewrote it to be internet-based. I intend to re-add the mesh at some point, but it may be a while.

Use at your own risk, but I'll help troubleshoot if I can.

If you are interested in this project, also check out: the web interface and some shell scripts.

Get started

Assuming you have all requisites:

openssl genrsa -out private.key 2048
openssl rsa -in private.key -outform PEM -pubout -out public.key

stand up an mqtt server (with websocket support) on a host somewhere
copy all example_* files to proper name (e.g. example_devices.json becomes devices.json)
edit your new files to include 
	arduino devices
	your wifi networks, 
	chosen hostname or IP for server, 
	mqtt connection details, 
	public.key contents,
	upload destination,
	... etc.
	(See each example file for details.)
Read christmasmeshmash.ino, and start testing.

Troubleshooting Updater:

On esp8266:esp8266@2.5.0-beta2, If you get error like:

/home/mike/.arduino15/packages/esp8266/hardware/esp8266/2.5.0-beta2/cores/esp8266/Updater.cpp:21:1: error: expected primary-expression before 'extern'
 extern "C" {

then edit Updater.cpp and delete the #include <Updater_Signing.h>

If you are on 2.5.0-beta1 and get constant rst_cause:2 reboots when getting updates over http, the Updater is not feeding the software watchdog, and therefore the watchdog is timing out and resetting. esp8266 core 2.5.0-beta2 (and presumably higher) have fixed this. (This was written when 2.5.0-beta2 was latest available).