Go to file
informatic 21bf526897 display: add toggle mode
this is used in memetic stringy light control switch
2019-04-30 21:03:00 +02:00
base-firmware Generic firmware proof of concept 2017-10-01 23:24:41 +02:00
common Centralize build system 2017-09-30 09:03:16 +02:00
display display: add toggle mode 2019-04-30 21:03:00 +02:00
ledcontroller ledcontroller: wide flaschentaschen input 2019-04-16 16:12:11 +02:00
master Update docker-compose file 2017-02-05 18:39:30 +01:00
mopidy-control Dump some existing projects based on Spejsiot 2018-06-28 15:37:32 +02:00
projection-screen Dump some existing projects based on Spejsiot 2018-06-28 15:37:32 +02:00
sonoff Centralize build system 2017-09-30 09:03:16 +02:00
spejsiot Update to Sming 0b646a58 to fix DHT library 2018-09-02 18:32:13 +02:00
switch Centralize build system 2017-09-30 09:03:16 +02:00
temperature Update to Sming 0b646a58 to fix DHT library 2018-09-02 18:32:13 +02:00
.editorconfig More or less consistent .editorconfig 2016-10-04 21:06:45 +02:00
.gitignore Initial commit 2015-12-27 00:58:01 +01:00
Makefile Fix make target redefinition error for BUILD_ID 2017-09-30 09:07:29 +02:00
README.md Fix typo in README 2017-02-05 18:43:18 +01:00



This is the repository of hswaw spejsiot project, meant to IoTize EVERYTHING easily.

This includes simple framework for building appliances compatible with Homie MQTT convention, based on cheapo ESP8266 SoCs and Sming.

It currently supports most of Homie protcol (with homie/ prefix replaced by iot/), OTA and preliminary SSL support. (provided by Sming itself, currently not enabled)

Sample application is present in switch/ directory. (simple relay device) For more information take a look at project wiki page.

Getting started

# Create relevant environment variables in your ~/.bashrc
cat >> ~/.bashrc <<EOF
    # ESP8266 toolchain setup
    export ESP_HOME="$HOME/esp-open-sdk"
    export SDK_BASE="$ESP_HOME/sdk"
    export XTENSA_TOOLS_ROOT="$ESP_HOME/xtensa-lx106-elf/bin"
    # Sming setup
    export SMING_HOME="$HOME/Sming/Sming"
    export ESPTOOL="$ESP_HOME/xtensa-lx106-elf/bin/esptool.py"
    export ESPTOOL2="$HOME/esptool2/esptool2"
    # This is for Wemos D1 Mini and some NodeMCU boards
    export ESPPORT="/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0"
    export COM_PORT="$ESPPORT"
    # Make flashing slightly (4x) faster.
    export ESPBAUD=460800

source ~/.bashrc

# Setup ESP8266 development environment (some additional packages may be needed)
git clone --recursive https://github.com/pfalcon/esp-open-sdk.git $ESP_HOME
pushd $ESP_HOME && make && popd

git clone https://github.com/raburton/esptool2 $ESPTOOL2/..
pushd $ESPTOOL2/.. && make && popd

# Setup Sming environment
git clone --recursive https://github.com/SmingHub/Sming $SMING_HOME/..
pushd $SMING_HOME && make && popd

# Build test spejsiot app
git clone https://code.hackerspace.pl/informatic/spejsiot
cd spejsiot/switch/ && make flash

WARNING! Sming.reset(); jumps to (serial) bootloader right after flashing. This causes OTA to fail with wdt reset. External RESET assert is required after flashing.


Basic node configuration (MQTT broker IP, 802.11 credentials) is present in common/common_config.h.


  • Store configuration (credentials, broker IP, maybe endpoints?) in flash memory
  • Docs, ffs