leodesigner / espnowfloodingmeshlibrary2 Goto Github PK
View Code? Open in Web Editor NEWESP8266/ESP32 ESPNOW/Broadcast Arduino Flooding mesh library
License: Mozilla Public License 2.0
ESP8266/ESP32 ESPNOW/Broadcast Arduino Flooding mesh library
License: Mozilla Public License 2.0
Hi, thank's for your work !
I'm working with your fork. That's working fine with several esp32 like devkit and weemos d1mini but I can't get it working with the esp32-c3 board.
Any advice ?
Thank you again mate !
Hi, thanks for you job
I cannot to compile all the slave examples, i cant find the espNowFloodingMesh_isSyncedWithMaster(); and the espNowFloodingMesh_requestInstantTimeSyncFromMaster(); functions
Saludos!
They are testing your library, but when compiling VC with Platformio, I have errors in SLAVE:
espNowFloodingMesh_requestInstantTimeSyncFromMaster();
while(espNowFloodingMesh_isSyncedWithMaster()==false);
src/main.cpp: In function 'void setup()':
src/main.cpp:38:3: error: 'espNowFloodingMesh_requestInstantTimeSyncFromMaster' was not declared in this scope
src/main.cpp:39:9: error: 'espNowFloodingMesh_isSyncedWithMaster' was not declared in this scope
two functions are missing in the libraries.
Hi! Your library is amazing!! I admire you how much time you put into modifying this library. I've been using it for a while now and I have a question. Will there ever be an upgrade to be able to use the library for esp32 version 2.0 or higher ??
I'm trying to implement the esp_mesh_pir_sensor
node, in combination with the USB master esp_mesh_gw_node
. (both slightly modified, mostly cosmetic...)
It works when both devices are of the same ESP category, ESP8266 or ESP32.
But when mixing a ESP8266 with a ESP32, regardless of which type is master or node, I get a CRC error when receiving (with DEBUG_PRINTS
activated), and all messages gets ignored - in both directions, on both devices.
The actual messages are received and decrypted, seemingly OK. But somehow either the CRC calculation, or the content for the calculation, is handled differently by the two ESP types.
As a "copy-paste C++ amateur", I'd really need some help tracking this issue.
Here are some serial log outputs with DEBUG_PRINTS
activated. (Timestamps are from my terminal app)
ESP32 master - Receiving message from ESP8266 node:
[19834.07h.33m.20s.134] Recv from: 2c:3a:e8:32:90:b6
[19834.07h.33m.20s.134] REC[RAW]:
[19834.07h.33m.20s.135] 01 01 01 03 7B 06 D1 81 83 E3 01 8C F0 5C 21 2A ....{........\!*
[19834.07h.33m.20s.138] 15 01 D3 E8 68 89 B0 1E 5F A0 48 B4 7D A2 80 02 ....h..._.H.}...
[19834.07h.33m.20s.142] 49 24 D6 82 2C BE I$..,.
[19834.07h.33m.20s.144] Length: 38
[19834.07h.33m.20s.145] REC:
[19834.07h.33m.20s.145] 01 01 01 03 7B 06 07 05 01 4C 16 DC 00 00 00 00 ....{....L......
[19834.07h.33m.20s.148] 00 00 00 00 ....
[19834.07h.33m.20s.149] Length: 20
[19834.07h.33m.20s.151] REC HEADER:
[19834.07h.33m.20s.152] 01 01 01 03 7B 06 07 05 01 4C 16 DC 00 00 00 ....{....L.....
[19834.07h.33m.20s.155] Length: 15
[19834.07h.33m.20s.156] #CRC: 29879 1659
[19834.07h.33m.20s.156] 0x1,0x1,0x1,0x3,0x7B,
[19834.07h.33m.20s.158]
[19834.07h.33m.20s.158] 01 01 01 03 7B 06 07 05 01 4C 16 DC 00 00 00 00 ....{....L......
[19834.07h.33m.20s.162] 00 00 00 00 54 65 73 74 31 00 00 00 00 00 00 00 ....Test1.......
[19834.07h.33m.20s.164] 00 00 00 00 00 01 92 AF BB B6 BF 12 AC 5B 05 D6 .............[..
[19834.07h.33m.20s.167] 74 01 C8 EA BE 08 61 6C 75 65 20 7B 22 42 61 74 t.....alue.{"Bat
[19834.07h.33m.20s.171] 74 65 72 79 56 6F 6C 74 22 3A 33 2E 36 33 7D 0A teryVolt":3.63}.
[19834.07h.33m.20s.174] 00 00 00 00 00 01 14 36 68 61 A6 64 7D 34 CF AF .......6ha.d}4..
[19834.07h.33m.20s.178] 8E 28 BA 44 DB C0 3A 31 33 34 30 2C 22 43 6F 75 .(.D..:1340,"Cou
[19834.07h.33m.20s.181] 6E 74 65 72 22 3A 39 31 35 2C 22 54 69 6D 65 42 nter":915,"TimeB
[19834.07h.33m.20s.184] 6F 6F 74 22 3A 34 32 7D 0A 00 00 00 00 00 00 00 oot":42}........
[19834.07h.33m.20s.188] 00 00 00 00 00 00 0C 17 00 69 95 09 4F B0 6B F6 .........i..O.k.
[19834.07h.33m.20s.191] B0 6E AE 5F 8F 38 FB 3F 00 00 00 00 00 00 00 00 .n._.8.?........
[19834.07h.33m.20s.195] 00 00 00 00 48 49 08 40 F0 BF 00 40 30 0A 06 00 ....HI.@...@0...
[19834.07h.33m.20s.198] D4 FF 08 80 F0 B1 FC 3F .......?
[19834.07h.33m.20s.199] Length: 200
[19834.07h.33m.20s.201]
[19834.07h.33m.20s.202]
[19834.07h.33m.20s.202] 01 01 01 03 7B 06 D1 81 83 E3 01 8C F0 5C 21 2A ....{........\!*
[19834.07h.33m.20s.205] 15 01 D3 E8 68 89 B0 1E 5F A0 48 B4 7D A2 80 02 ....h..._.H.}...
[19834.07h.33m.20s.208] 49 24 D6 82 2C BE 00 00 00 F7 2C 01 00 EC 96 FC I$..,.....,.....
[19834.07h.33m.20s.212] 3F EC 96 FC 3F F7 05 B3 99 C5 C0 E0 5E FD C4 53 ?...?.......^..S
[19834.07h.33m.20s.214] 7B DA E4 75 C2 06 F6 BC AA E5 B8 3D 81 5A C3 80 {..u.......=.Z..
[19834.07h.33m.20s.219] 9F FA 31 57 4A 5F 00 00 00 00 00 00 00 00 00 00 ..1WJ_..........
[19834.07h.33m.20s.222] 00 4C D3 FC 3F E4 10 0C C0 90 D3 FC 3F 00 00 00 .L..?.......?...
[19834.07h.33m.20s.224] 00 12 64 00 00 07 00 00 00 00 00 00 00 00 7F D2 ..d.............
[19834.07h.33m.20s.228] 06 00 00 04 01 80 00 00 00 74 D1 23 F0 D4 03 FC .........t.#....
[19834.07h.33m.20s.231] 3F 1C AA 4F 63 AB 00 00 00 A0 00 01 BE CB 27 5B ?..Oc.........'[
[19834.07h.33m.20s.235] FA 14 FB 05 4C 00 00 40 76 C1 10 0C 00 D0 00 00 ....L..@v.......
[19834.07h.33m.20s.238] 00 FF FF FF FF D0 00 00 00 FF FF FF FF FF FF 24 ...............$
[19834.07h.33m.20s.241] 6F 28 A5 D3 E0 FF FF FF o(......
[19834.07h.33m.20s.244] Length: 200
Corresponding output from the ESP8266 node (first time-synk request after boot):
[19834.07h.33m.20s.127] Annonce + Request instant time sync from mesh.
[19834.07h.33m.20s.128] Send0:
[19834.07h.33m.20s.128] 01 01 01 03 7B 06 07 05 01 4C 16 DC 00 00 00 00 ....{....L......
[19834.07h.33m.20s.129] 00 00 00 00 54 65 73 74 31 ....Test1
[19834.07h.33m.20s.129] Length: 25
[19834.07h.33m.20s.130] Send[RAW]:
[19834.07h.33m.20s.130] 01 01 01 03 7B 06 D1 81 83 E3 01 8C F0 5C 21 2A ....{........\!*
[19834.07h.33m.20s.131] 15 01 D3 E8 68 89 B0 1E 5F A0 48 B4 7D A2 80 02 ....h..._.H.}...
[19834.07h.33m.20s.131] 49 24 D6 82 2C BE I$..,.
[19834.07h.33m.20s.132] Length: 38
ESP8266 node - Receiving message from ESP32 master (the periodic time-sync):
[19834.07h.33m.21s.781] Recv from: 24:6f:28:a5:d3:e0
[19834.07h.33m.21s.781] REC[RAW]:
[19834.07h.33m.21s.782] 01 01 01 00 CE 99 0B 8D AD 2F E7 9F 64 14 50 36 ........./..d.P6
[19834.07h.33m.21s.782] DF D1 E3 2E 99 2E ......
[19834.07h.33m.21s.783] Length: 22
[19834.07h.33m.21s.783] REC:
[19834.07h.33m.21s.783] 01 01 01 00 CE 99 02 00 29 3D 8C 8D 3A C1 24 66 ........)=..:.$f
[19834.07h.33m.21s.784] 00 00 00 ...
[19834.07h.33m.21s.784] Length: 19
[19834.07h.33m.21s.785] REC HEADER:
[19834.07h.33m.21s.785] 01 01 01 00 CE 99 02 00 29 3D 8C 8D 3A C1 ........)=..:.
[19834.07h.33m.21s.785] Length: 14
[19834.07h.33m.21s.786] #CRC: 31778 39374
[19834.07h.33m.21s.786]
[19834.07h.33m.21s.786]
[19834.07h.33m.21s.786] 01 01 01 00 CE 99 02 00 29 3D 8C 8D 3A C1 24 66 ........)=..:.$f
[19834.07h.33m.21s.787] 00 00 00 00 00 00 7E B6 39 98 DA B8 29 9E 65 14 ........9...).e.
[19834.07h.33m.21s.788] EA 46 2C 72 36 24 FF FF FF FF FF FF FF FF FF FF .F,r6$..........
[19834.07h.33m.21s.789] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
[19834.07h.33m.21s.790] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
[19834.07h.33m.21s.790] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
[19834.07h.33m.21s.791] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
[19834.07h.33m.21s.794] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
[19834.07h.33m.21s.794] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
[19834.07h.33m.21s.794] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
[19834.07h.33m.21s.799] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
[19834.07h.33m.21s.799] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
[19834.07h.33m.21s.799] FF FF FF FF FF FF FF FF ........
[19834.07h.33m.21s.799] Length: 200
[19834.07h.33m.21s.799]
[19834.07h.33m.21s.799]
[19834.07h.33m.21s.799] 01 01 01 00 CE 99 0B 8D AD 2F E7 9F 64 14 50 36 ........./..d.P6
[19834.07h.33m.21s.799] DF D1 E3 2E 99 2E 00 00 00 00 00 00 00 00 00 00 ................
[19834.07h.33m.21s.799] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[19834.07h.33m.21s.800] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[19834.07h.33m.21s.800] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[19834.07h.33m.21s.801] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[19834.07h.33m.21s.802] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[19834.07h.33m.21s.803] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[19834.07h.33m.21s.804] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[19834.07h.33m.21s.804] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[19834.07h.33m.21s.805] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[19834.07h.33m.21s.806] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[19834.07h.33m.21s.807] 00 00 00 00 00 00 00 00 ........
[19834.07h.33m.21s.809] Length: 200
Corresponding output from the ESP32 master:
[19834.07h.33m.21s.767] Send time sync message!!
[19834.07h.33m.21s.767] Send0:
[19834.07h.33m.21s.769] 01 01 01 00 CE 99 02 00 29 3D 8C 8D 3A C1 24 66 ........)=..:.$f
[19834.07h.33m.21s.771] 00 00 00 00 ....
[19834.07h.33m.21s.773] Length: 20
[19834.07h.33m.21s.774] Send[RAW]:
[19834.07h.33m.21s.774] 01 01 01 00 CE 99 0B 8D AD 2F E7 9F 64 14 50 36 ........./..d.P6
[19834.07h.33m.21s.779] DF D1 E3 2E 99 2E ......
[19834.07h.33m.21s.785] Length: 22
I'm attaching the full log-files from both devices during a "one-shot" from booting of the node device, with initial time-sync request and publishing of a mqtt message, + one periodic time-sync from the master.
(The node is configured to 3 retries for both time-sync request and publishing.)
EspNowMesh GW32 - CRC-error from ESP8266 node Test1.txt
EspNowMesh Test1 - CRC-error from ESP32 master.txt
Hello leodesigner,
I wanted to thank you very much for continuing the project.
I think the Floodingmesh library is the best mesh library for Arduino/ESP right now and I've already used it (the original one) for a prototype. (btw: I used a "Olimex Gateway" as Gateway between Mesh and Ethernet. So I did not need the serial connection or a Raspberry PI...)
At the moment I'm stuck on another project, but I want to continue working with your library later :-)
The idea with the telemetry data is great, I've already asked arttupii for a diagnosis function ...
Maybe the RSSI level of the slave will also be included in the future?
A second wish would be if there is a "message header" with a simple routing table:
e.g. JSON {"2": [{"n": 1, "r": - 68}, {"n": 255, "r": 0}, {"n": 1, "r": 0}, {"n": 0, "r": 0}]}
(borrowed from:https://nootropicdesign.com/projectlab/2018/10/20/lora-mesh-networking/)
So it would be possible to visualize the entire network like as:
Anyway, thank you once again for developing the lib further, ๐
I wish you a wonderful holiday and a happy new year 2021
There is a bug in wifi802_11.cpp
, line 136:
The enumerator ESP_IF_WIFI_STA
is invalid. It should be: WIFI_IF_STA
.
I don't have my own compile logs saved, so I'm lazy and refers to the second error in this post in arttupii's repo:
.pio/libdeps/esp32doit-devkit-v1_COM4/EspNowFloodingMesh/wifi802_11.cpp: In function 'void wifi_802_11_send(const uint8_t*, int)':
.pio/libdeps/esp32doit-devkit-v1_COM4/EspNowFloodingMesh/wifi802_11.cpp:125:78: error: cannot convert 'esp_interface_t' to 'wifi_interface_t'
esp_wifi_80211_tx(ESP_IF_WIFI_STA, buf, sizeof(raw_HEADER) + len+ 2, true);
^
In file included from .pio/libdeps/esp32doit-devkit-v1_COM4/EspNowFloodingMesh/wifi802_11.cpp:4:
C:/Users/marco/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_wifi/include/esp_wifi.h:984:46: note: initializing argument 1 of 'esp_err_t esp_wifi_80211_tx(wifi_interface_t, const void*, int, bool)'
esp_err_t esp_wifi_80211_tx(wifi_interface_t ifx, const void *buffer, int len, bool en_sys_seq);
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.