{"id":15170428,"url":"https://github.com/john30/ebusd-esp","last_synced_at":"2025-10-01T05:30:40.739Z","repository":{"id":65039853,"uuid":"107845063","full_name":"john30/ebusd-esp","owner":"john30","description":"Firmware for ESP8266 allowing eBUS communication for ebusd (https://github.com/john30/ebusd)","archived":true,"fork":false,"pushed_at":"2024-06-15T14:49:10.000Z","size":9611,"stargazers_count":153,"open_issues_count":15,"forks_count":22,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-01-20T17:33:50.721Z","etag":null,"topics":["ebus","esp32","esp8266","micropython"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/john30.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-22T07:11:25.000Z","updated_at":"2025-01-02T06:37:32.000Z","dependencies_parsed_at":"2024-09-14T04:02:27.136Z","dependency_job_id":null,"html_url":"https://github.com/john30/ebusd-esp","commit_stats":{"total_commits":78,"total_committers":3,"mean_commits":26.0,"dds":"0.14102564102564108","last_synced_commit":"b287d6f674f0c96e8d4f269064e380a2609c6898"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/john30/ebusd-esp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john30%2Febusd-esp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john30%2Febusd-esp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john30%2Febusd-esp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john30%2Febusd-esp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/john30","download_url":"https://codeload.github.com/john30/ebusd-esp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john30%2Febusd-esp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277797726,"owners_count":25878857,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-01T02:00:09.286Z","response_time":88,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ebus","esp32","esp8266","micropython"],"created_at":"2024-09-27T08:02:31.489Z","updated_at":"2025-10-01T05:30:40.068Z","avatar_url":"https://github.com/john30.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ebusd-esp\nFirmware for ESP8266, ESP8285, and ESP32 allowing eBUS communication for ebusd with lowest possible latency.\n\n**Note: Development on this firmware is discontinued.**  \nInstead, using a [Wemos C3 mini](https://www.wemos.cc/en/latest/c3/c3_mini.html) with the [special build of the V5 adapter firmware](https://adapter.ebusd.eu/v5/wemos.en) can easily be used as replacement.\n\nThis repository is kept for historical reasons only.\n\n\n## History\nFor a history of versions and changes made therein, see the [change log](Changelog.md).\n\n\n## Flashing\nFirst of all, you need to flash the firmware to the ESP board. Currently, the following boards are supported and\nrequire flashing the corresponding binary:\n\n* [Wemos D1 mini](https://www.wemos.cc/en/latest/d1/d1_mini.html):  \n  * chip: ESP8266\n  * flash size: 4MB\n  * firmware: [d1mini](dist/ebus-v3_d1mini.bin)\n* [Wemos D1 mini Lite](https://www.wemos.cc/en/latest/d1/d1_mini_lite.html):  \n  * chip: ESP8285\n  * flash size: 1MB\n  * firmware: [d1mini_lite_1m](dist/ebus-v3_d1mini_lite_1m.bin)\n* [Wemos D1 mini Pro](https://www.wemos.cc/en/latest/d1/d1_mini_pro.html):  \n  * chip: ESP8266\n  * flash size: 16MB\n  * firmware: [d1mini_pro_16m](dist/ebus-v3_d1mini_pro_16m.bin)\n  * attention: some boards are sold as \"pro\" but are actually equipped with 4MB flash only. These need to be flashed\n    with the [d1mini](dist/ebus-v3_d1mini.bin) variant instead of the pro!\n* [NodeMcu v1.0](https://github.com/nodemcu/nodemcu-devkit-v1.0):  \n  * chip: ESP8266\n  * flash size: 4MB\n  * firmware: [nodemcu1](dist/ebus-v3_nodemcu1.bin)\n* [ESP-01S](http://www.ai-thinker.com/pro_view-60.html):\n  * chip: ESP8266\n  * flash size: 1MB\n  * firmware: [esp01](dist/ebus-v3_esp01.bin)\n* [Wemos D32](https://www.wemos.cc/en/latest/d32/d32.html) (aka Lolin32):  \n  * chip: ESP-WROOM-32\n  * flash size: 4MB\n  * firmware: [lolin32](dist/ebus-v3_lolin32.bin)\n  * first time flashing: use [factory image](dist/ebus-v3_lolin32_factory.bin), see [note on \"factory\" image below](README.md#flashing-with-esptool)\n* [D1 mini 32](https://forum.mhetlive.com/topic/8/mh-et-live-minikit-for-esp32):\n  * chip: ESP-WROOM-32\n  * flash size: 4MB\n  * firmware: [d1mini32](dist/ebus-v3_d1mini32.bin)\n  * first time flashing: use [factory image](dist/ebus-v3_d1mini32_factory.bin), see [note on \"factory\" image below](README.md#flashing-with-esptool)\n\nOther boards might work as well, but were not tested.\n\nIn order to flash the firmware to the ESP board, you need one of these tools:\n* [esptool.py](https://nodemcu.readthedocs.io/en/release/flash/#esptoolpy),\n* [NodeMCU Flasher](https://github.com/nodemcu/nodemcu-flasher), or\n* [esptool](https://github.com/igrr/esptool-ck/releases).\n\nUsing that tool, simply flash the right binary from the\n[dist folder](https://github.com/john30/ebusd-esp/tree/master/dist) to the ESP board.\nErasing the flash before might be a good idea (if you don't want to keep the settings).\n\n### Flashing with esptool.py\nFor using the esptool.py either an OS with python installed is needed (e.g. Windows with Python 3.8 installed), or it\nneeds 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\nWindows host but not impossible (e.g. by using [usbipd-win](https://github.com/dorssel/usbipd-win)).\n\nThe image can then be flashed using the [flash.sh](./flash.sh) script which mainly does the following:\n* 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)\n* erases the flash completely (for ESP32: only if you pass one of the `...32_factory.bin` images as argument)\n* fills or resets the init data areas appropriately\n* flashes the image itself\n\n### Flashing with NodeMCU Flasher\nFor the [NodeMCU Flasher](https://github.com/nodemcu/nodemcu-flasher), first pick the right file for your board from the\n[dist folder](https://github.com/john30/ebusd-esp/tree/master/dist) and set the address to 0x0000:  \n![pick file](flashco.png)\n\nThen adjust the transfer settings according to your board (settings for Wemos D1 mini shown):  \n![transfer](flashad.png)\n\nAnd finally, start the upload by pressing Flash:  \n![flash](flashop.png)\n\n### Flashing with esptool\nFor the [esptool](https://github.com/igrr/esptool-ck/releases) flasher, just run it on command line like this\n(replacing COM4 with the corresponding port on Windows or the right serial device like /dev/ttyUSB0 under Linux, and\nreplacing ebus-v3_d1mini.bin with the right filename for your board):  \n`esptool -cp COM4 -bm dio -cd nodemcu -cb 921600 -ce -cf ebus-v3_d1mini.bin`\n\n### Flashing ESP32 images\nFor all ESP32 images, the first flashing of a blank or otherwise differently flashed device has to be done with the image\nhaving \"_factory\" as suffix in the name, e.g. [ebus-v3_lolin32_factory.bin](dist/ebus-v3_lolin32_factory.bin). This\ncontains all relevant parts to get the device up and running.\n\n\n## Configuration\nThe firmware can be configured with a simple HTML frontend or by using the serial link (using the onboard USB serial\nconverter).\n\n### Configuration with serial link\nSimply connect with e.g. Putty to the COM port at 115200 Baud (8N1) after connecting the board to your computer, and you\nwill see the following configuration options:\n\n```\nWelcome to eBUS adapter 3, build 20221215\nConfigured as WIFI access point EBUS without password.\nFor configuration with web browser, connect to this WIFI and open http://192.168.4.1/\nEntering configuration mode (4).\nChip ID: ********, d1mini@80\nHostname: ebus-******\n\nConfiguration (new):\n 1. WIFI SSID: EBUS\n 2. WIFI secret:\n 3. WIFI IP address: DHCP (not started yet)\n w. WIFI power: normal (17 dBm)\n W. WIFI phy mode: 802.11 g/b/n = Wi-Fi 4\n 4. WIFI hostname: ebus-******\n 5. eBUS RX+TX PINs: Adapter 3.1 RX+TX high-speed (if enhanced) =GPIO3+1\n 6. ebusd connection: enhanced on port 9999\n 7. HTTP TCP port: 80\n 8. LED PINs: RX:disabled, TX:disabled\n 9. Initial PINs: D4:H\n\n p. Set current PINs: D4:H\n t. Toggle current output PIN\n s. Scan \u0026 read sensors\n c. Connect WIFI\n e. Dump EEPROM content\n f. Load factory settings\n F. Factory reset (i.e. erase EEPROM)\n l. Log lines\n o. OTA enabled: waiting\n r. Reboot (without saving)\n R. Run (without saving)\n 0. Save and Reboot\n\nEnter your choice:\n```\n\nBy entering one of the characters at the start of each configuration line and pressing ENTER, you can change the\ncorresponding configuration item or initiate the action behind it.\n\nOnce you have entered the desired data and verified their correctness, press \"0\" for saving the configuration and\nrebooting the device.\n\nFor WIFI connection, you can try the connection (after SSID and secret were set) by using \"c\" and ENTER.\n\n### Configuration with HTML frontend\nAfter flashing, the device acts as an WIFI access point with SSID \"EBUS\", no password, and IP address \"192.168.4.1\".\n\nThe 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\nlike this is shown:\n\n[![Web Status](web.png)](http://192.168.4.1/)\n\nThe main configuration settings can be changed similarly to the serial link interface (not all options are available\nthough) by clicking on [Configuration](http://192.168.4.1/config):\n\n[![Web Configuration](webcfg.png)](http://192.168.4.1/config)\n\nWhen configuring for an eBUS adapter 3, the necessary\n[ebuspicloader](https://github.com/john30/ebusd/blob/master/src/tools/README.md)\nsettings will be shown in the appropriate section. Please make sure to set them accordingly.\nFor older PIC firmware versions, the hardware jumpers are shown as well, but these are obsolete now.\n\nUse \"Check \u0026 Update\" to check your input and if no error message appeared and after you have verified the correctness of\nthe values, simply press \"Save \u0026 Reboot\" to save the changes and reboot the device.\n\nIf you're unsure with the settings, you can press \"Run (without saving)\" to check them before saving.\n\nThe red \"config mode\" pill in the UI changes to a green \"running\" after reboot and the \"new\" pill at the \"Configuration\"\ntab will be gone.\n\nIt is also possible to change PINs directly on the [PINs](http://192.168.4.1/pins) page:\n\n[![Web PINs](webpins.png)](http://192.168.4.1/pins)\n\nIf you want to change the initial PIN settings, just use the last column for that and afterwards go to the\n[Configuration](http://192.168.4.1/config) page and press \"Save \u0026 Reset\" to save the changes and reboot the device.\n\nSupport for 1-wire temperature sensors is experimental, so handle with care. Once a PIN is configured as sensor PIN, the\nconnected sensors are scanned and sensor data can be retrieved with the \"[/sensor](http://192.168.4.1/sensor)\" URL in JSON\nformat and show up in the HTML frontend.\n\n## LED\nThe onboard LED is used to give some feedback about the current state.\n\nDuring reset, it usually blinks shortly as some data is sent on the debug output (which usually is connected to the\nonboard LED).\n\nThe LED status after the reset depends on the selected eBUS RX+TX PIN mode.\n\n### LED in hardware RX+TX UART and mixed RX + software D2 eBUS RX+TX PIN mode\nWhen in one of these eBUS RX+TX PIN modes, the LED provides the following feedback:\n- After reset, it blinks two times slowly to indicate it was (re-)started.\n- While establishing the WIFI connection, it dims down from on several times up to 8 seconds.\n- When the WIFI connection was successfully established, it is switched off for around 5 seconds.\n  During that time and when no eBUS signal was detected, sending the enter key twice on the serial port makes the\n  firmware go to serial configuration mode.\n- When an ebusd instance has connected successfully to the TCP/UDP port and there is a steady eBUS signal, then the LED\n  is turned on permanently either at full brightness (if ebusd regularly sends something to the eBUS) or less brightness\n  (if ebusd does not write to the eBUS).\n\nIf anything goes wrong during these steps, the LED will turn off. So everything is fine only if the LED is on\npermanently at full or less brightness.\n\n### LED in mixed software D1 + TX1 D4 eBUS RX+TX PIN mode\nWhen the RX+TX PIN mode is set to mixed software D1 + TX1 D4 mode, the onboard LED will blink when something is sent\nactively from the board on the eBUS only.\n\n\n## PINs\nIf the HTTP port is configured, you can use the \"/pin\" URL for changing the value of an output PIN or reading the\ncurrent status of all PINs in JSON format including the analog input PIN.\n\nE.g. in order to set D0 (GPIO16) to LOW, you could use the URL\n[http://192.168.4.1/pin?pin=0\u0026mode=l](http://192.168.4.1/pin?pin=0\u0026mode=l), and using\n[http://192.168.4.1/pin?pin=0\u0026mode=h](http://192.168.4.1/pin?pin=0\u0026mode=h) for HIGH.\n\n\n## Log\nThe \"Log\" tab will show the last log entries (up to 64) and is more for debugging.\n\n\n## PIC\nWhen configured for one of the eBUS adapter 3 modes, a \"PIC\" tab appears that allows enabling a pass-through mode to the\nPIC which can be used to change the settings or update the PIC firmware using\n[ebuspicloader](https://github.com/john30/ebusd/blob/master/src/tools/README.md).\n\n\n## Firmware update\n\nIn order to update the firmware (after the device was flashed initially as stated above), you can use the HTML frontend\nor the serial frontend for activating OTA.\n\nUsing the HTML frontend, you can also upload a new firmware directly after enabling OTA in the configuration page.\nThis is not possible for all variants though (e.g. when flash size is too small).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohn30%2Febusd-esp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohn30%2Febusd-esp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohn30%2Febusd-esp/lists"}