All Projects → john30 → ebusd-esp

john30 / ebusd-esp

Licence: other
Firmware for ESP8266 allowing eBUS communication for ebusd (https://github.com/john30/ebusd)

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to ebusd-esp

micropython-TEA5767
MicroPython driver for TEA5767 FM radio module on ESP8266/ESP32/Pico
Stars: ✭ 24 (-64.71%)
Mutual labels:  esp8266, esp32
wireless-esp8266-dap
ESP8266 Wireless Debugger. Based on CMSIS-DAP v2.0.0. Optional 40MHz SPI acceleration, etc. ESP8266 无线调试器
Stars: ✭ 154 (+126.47%)
Mutual labels:  esp8266, esp32
Blog
A set of various projects based on ESP8266, ESP32, ATtiny13, ATtiny85, ATtiny2313, ATmega8, ATmega328, ATmega32, STM32 and more.
Stars: ✭ 198 (+191.18%)
Mutual labels:  esp8266, esp32
Esp8266 React
A framework for ESP8266 & ESP32 microcontrollers with a React UI
Stars: ✭ 193 (+183.82%)
Mutual labels:  esp8266, esp32
iot-product-dev-book
Source code for example apps from IoT Development for ESP32 and ESP8266 with JavaScript.
Stars: ✭ 38 (-44.12%)
Mutual labels:  esp8266, esp32
Esp Webota
Simple web based Over-the-Air (OTA) updates for ESP based projects
Stars: ✭ 189 (+177.94%)
Mutual labels:  esp8266, esp32
Dsckeybusinterface
An Arduino/esp8266/esp32 library to directly interface with DSC security systems.
Stars: ✭ 202 (+197.06%)
Mutual labels:  esp8266, esp32
Dhtesp
Optimized DHT library for ESP32/ESP8266 using Arduino framework
Stars: ✭ 184 (+170.59%)
Mutual labels:  esp8266, esp32
Arduinowebsockets
A library for writing modern websockets applications with Arduino (ESP8266 and ESP32)
Stars: ✭ 213 (+213.24%)
Mutual labels:  esp8266, esp32
Awesome Esp
📶 A curated list of awesome ESP8266/32 projects and code
Stars: ✭ 212 (+211.76%)
Mutual labels:  esp8266, esp32
Blynk Server
Blynk is an Internet of Things Platform aimed to simplify building mobile and web applications for the Internet of Things. Easily connect 400+ hardware models like Arduino, ESP8266, ESP32, Raspberry Pi and similar MCUs and drag-n-drop IOT mobile apps for iOS and Android in 5 minutes
Stars: ✭ 8 (-88.24%)
Mutual labels:  esp8266, esp32
Esp32marauder
A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32
Stars: ✭ 233 (+242.65%)
Mutual labels:  esp8266, esp32
Easybutton
Arduino library for debouncing momentary contact switches, detect press, release, long press and sequences with event definitions and callbacks.
Stars: ✭ 187 (+175%)
Mutual labels:  esp8266, esp32
Jled
Non-blocking LED controlling library for Arduino and friends.
Stars: ✭ 197 (+189.71%)
Mutual labels:  esp8266, esp32
Mongoose Os
Mongoose OS - an IoT Firmware Development Framework. Supported microcontrollers: ESP32, ESP8266, CC3220, CC3200, STM32F4, STM32L4, STM32F7. Amazon AWS IoT, Microsoft Azure, Google IoT Core integrated. Code in C or JavaScript.
Stars: ✭ 2,234 (+3185.29%)
Mutual labels:  esp8266, esp32
Awot
Arduino web server library.
Stars: ✭ 200 (+194.12%)
Mutual labels:  esp8266, esp32
Arduino Applemidi Library
Send and receive MIDI messages over Ethernet (rtpMIDI or AppleMIDI)
Stars: ✭ 177 (+160.29%)
Mutual labels:  esp8266, esp32
Openmqttgateway
MQTT gateway for ESP8266, ESP32, Sonoff RF Bridge or Arduino with bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE, Bluetooth, beacons detection, mi flora, mi jia, LYWSD02, LYWSD03MMC, Mi Scale, TPMS, BBQ thermometer compatibility, SMS & LORA.
Stars: ✭ 2,413 (+3448.53%)
Mutual labels:  esp8266, esp32
Lwesp
Lightweight Espressif AT parser library for ESP8266 and ESP32 devices.
Stars: ✭ 212 (+211.76%)
Mutual labels:  esp8266, esp32
Ems Esp
ESP8266 firmware to read and control EMS and Heatronic compatible equipment such as boilers, thermostats, solar modules, and heat pumps
Stars: ✭ 226 (+232.35%)
Mutual labels:  esp8266, esp32

ebusd-esp

Firmware for ESP8266, ESP8285, and ESP32 allowing eBUS communication for ebusd with lowest possible latency.

History

For a history of version and changes made therein, see the change log.

Flashing

First of all, you need to flash the firmware to the ESP board. Currently, the following boards are supported and require flashing the corresponding binary:

Other boards might work as well, but were not tested.

In order to flash the firmware to the ESP board, you need one of the tools mentioned on NodeMCU, e.g.:

Using that tool, simply flash the right binary from the dist folder to the ESP board. Erasing the flash before might be a good idea (if you don't want to keep the settings).

Flashing with esptool.py

For using the esptool.py either an OS with python installed is needed (e.g. Windows with Python 3.8 installed), or it needs to be made available by e.g. using docker or WSL. With WSL it is a bit tricky to get hold of the USB port of the Windows host but not impossible (e.g. by using usbipd-win).

The image can then be flashed using the flash.sh script which mainly does the following:

  • takes one optional argument with the name of the image file to flash (e.g. ./dist/ebusd-v3_d1mini.bin which is the default as well)
  • erases the flash completely (for ESP32: only if you pass one of the ...32_factory.bin images as argument)
  • fills or resets the init data areas appropriately
  • flashes the image itself

Flashing with NodeMCU Flasher

For the NodeMCU Flasher, first pick the right file for your board from the dist folder and set the address to 0x0000:
pick file

Then adjust the transfer settings according to your board (settings for Wemos D1 mini shown):
transfer

And finally, start the upload by pressing Flash:
flash

Flashing with esptool

For the esptool flasher, just run it on command line like this (replacing COM4 with the corresponding port on Windows or the right serial device like /dev/ttyUSB0 under Linux, and replacing ebus-v3_d1mini.bin with the right filename for your board):
esptool -cp COM4 -bm dio -cd nodemcu -cb 921600 -ce -cf ebus-v3_d1mini.bin

Flashing ESP32 images

For all ESP32 images, the first flashing of a blank or otherwise differently flashed device has to be done with the image having "_factory" as suffix in the name, e.g. ebus-v3_lolin32_factory.bin. This contains all relevant parts to get the device up and running.

Configuration

The firmware can be configured with a simple HTML frontend or by using the serial link (using the onboard USB serial converter).

Configuration with serial link

Simply connect with e.g. Putty to the COM port at 115200 Baud (8N1) after connecting the board to your computer, and you will see the following configuration options:

Welcome to eBUS adapter 3, build 20211226
Configured as WIFI access point EBUS without password.
For configuration with web browser, connect to this WIFI and open http://192.168.4.1/
Entering configuration mode.
Chip ID: ********, d1mini
Hostname: ebus-******

Configuration (new):
 1. WIFI SSID: EBUS
 2. WIFI secret:
 3. WIFI IP address: DHCP (failed: disconnected, reason: 1)
 w. WIFI power: normal
 W. WIFI phy mode: 11N
 4. WIFI hostname: ebus-******
 5. eBUS RX+TX PINs: Adapter 3 RX+TX (GPIO3+1)
 6. ebusd connection: enhanced on port 9999
 7. HTTP TCP port: 80
 8. LED PINs: RX:disabled, TX:disabled
 9. Initial PINs: D4:H

 p. Set current PINs: D4:H
 t. Toggle current output PIN
 s. Scan & read sensors
 c. Connect WIFI
 e. Dump EEPROM content
 f. Load factory settings
 F. Factory reset (i.e. erase EEPROM)
 o. OTA enabled: waiting
 r. Reboot (without saving)
 0. Save configuration and reboot

Enter your choice:

By entering one of the characters at the start of each configuration line and pressing ENTER, you can change the corresponding configuration item or initiate the action behind it.

Once you have entered the desired data and verified their correctness, press "0" for saving the configuration and rebooting the device.

For WIFI connection, you can try the connection (after SSID and secret were set) by using "c" and ENTER.

Configuration with HTML frontend

After flashing, the device acts as an WIFI access point with SSID "EBUS", no password, and IP address "192.168.4.1".

The HTTP TCP port is set to port 80 by default. By entering the IP address of the device in a web browser, a status page like this is shown:

Web Status

The main configuration settings can be changed similarly to the serial link interface (not all options are available though) by clicking on Configuration:

Web Configuration

Use "Check & Update" to check your input and if no error message appeared and after you have verified the correctness of the values, simply press "Save & Reset" to save the changes and reboot the device.

It is also possible to change PINs directly on the PINs page:

Web PINs

If you want to change the initial PIN settings, just use the last column for that and afterwards go to the Configuration page and press "Save & Reset" to save the changes and reboot the device.

Support for 1-wire temperature sensors is experimental, so handle with care. Once a PIN is configured as sensor PIN, the connected sensors are scanned and sensor data can be retrieved with the "/sensor" URL in JSON format and show up in the HTML frontend.

LED

The onboard LED is used to give some feedback about the current state.

During reset, it usually blinks shortly as some data is sent on the debug output (which usually is connected to the onboard LED).

The LED status after the reset depends on the selected eBUS RX+TX PIN mode.

LED in hardware UART (direct or swapped) and mixed RX + software D2 eBUS RX+TX PIN mode

When in one of these eBUS RX+TX PIN modes, the LED provides the following feedback:

  • After reset, it blinks two times slowly to indicate it was (re-)started.
  • While establishing the WIFI connection, it dims down from on several times up to 5 seconds.
  • When the WIFI connection was successfully established, it is switched off for around 5 seconds. During that time (when no eBUS signal was detected), sending any key to the serial port makes the firmware go to serial configuration mode.
  • When an ebusd instance has connected successfully to the TCP/UDP port and there is a steady eBUS signal, then the LED is turned on permanently either at full brightness (if ebusd regularly sends something to the eBUS) or less brightness (if ebusd does not write to the eBUS).

If anything goes wrong during these steps, the LED will turn off. So everything is fine only if the LED is on permanently at full or less brightness.

LED in mixed software D1 + TX1 D4 eBUS RX+TX PIN mode

When the RX+TX PIN mode is set to mixed software D1 + TX1 D4 mode, the onboard LED will blink when something is sent actively from the board on the eBUS only.

PINs

If the HTTP port is configured, you can use the "/pin" URL for changing the value of an output PIN or reading the current status of all PINs in JSON format including the analog input PIN.

E.g. in order to set D0 (GPIO16) to LOW, you could use the URL http://192.168.4.1/pin?pin=0&mode=l, and using http://192.168.4.1/pin?pin=0&mode=h for HIGH.

Firmware update

In order to update the firmware (after the device was flashed initially as stated above), you can use the HTML frontend or the serial frontend for activating OTA.

Using the HTML frontend, you can also upload a new firmware directly after enabling OTA in the configuration page. This is not possible for all variants though (e.g. when flash size is too small).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].