nmaupu / yokis-hack

Some hacking regarding Yokis modules
Apache License 2.0
19 stars 4 forks source link

Version esp32 #28

Open TTHOMAS52 opened 9 months ago

TTHOMAS52 commented 9 months ago

Bonjour, j'ai modifié les librairies pour un esp32. j'arrive pas a flasher voila voici le message Capture d’écran du 2024-01-27 18-45-27 ![Uploading Capture d’écran du 2024-01-27 18-45-27.png…]()

TTHOMAS52 commented 9 months ago

Si cela est parlant pour quelq'un je suis preneur, il n'y a pas d'erreur de compilation en amont, mais un avertissement concernant RingBuf

In file included from .pio/libdeps/esp32/RingBuf/RingBuf.c:7: .pio/libdeps/esp32/RingBuf/RingBuf.h:50:10: warning: #warning "This library only fully supports AVR and ESP8266 Boards." [-Wcpp]

warning "This library only fully supports AVR and ESP8266 Boards."

      ^~~~~~~

.pio/libdeps/esp32/RingBuf/RingBuf.h:51:10: warning: #warning "Operations on the buffer in ISRs are not safe!" [-Wcpp]

warning "Operations on the buffer in ISRs are not safe!"

nmaupu commented 9 months ago

Salut,

Le warning est juste un warning donc ça ne devrait planter la compilation... Cependant, ringbuf n'étant pas compatible avec l'esp32, je ne pense pas que ça puisse fonctionner. Cela étant, qu'est ce que tu as modifié exactement ?

TTHOMAS52 commented 9 months ago

Bonjour, Et merci pour la réactivité , le probleme a été résolut en suppriment ~Mqtt(); dans /include/net/mmqt.h.

Pour les modif , j'ai changé les noms de toutes les bibliothèques version esp32, les ifesp8266... par ifesp32

_Dans globals.h_

define CE_PIN D2 ---> #define CE_PIN 4

define CSN_PIN D8 ----> #define CSN_PIN 5

define IRQ_PIN D1 -----> #define IRQ_PIN 27 (pour esp32 il ne faut pas connecter la pin d'apres la bibliothèque )

// status led to turn off

define STATUS_LED D4 -----> #define STATUS_LED 2

Dans /src/net/wifi.cpp modification de

void setupWifi(String ssid, String password) { ...... WiFi.mode(WIFI_STA); WiFi.setSleepMode(WIFI_NONE_SLEEP); ----------->remplacer par WiFi.setSleep(false); WiFi.setAutoReconnect(true); ETS_UART_INTR_DISABLE(); <----- supprimer wifi_station_disconnect(); -----------------> remplacer par WiFi.disconnect(); ( peut etre une connerie) ETS_UART_INTR_ENABLE(); <----- supprimer

int reconnectWifi() { //WiFi.disconnect(true); // this makes wifi not connecting somehow WiFi.mode(WIFI_STA); WiFi.setSleepMode(WIFI_NONE_SLEEP); --->remplacer par WiFi.setSleep(false);

void setupWifiAP() { .... // Scan network here String ssid = "YokisHack-"; ssid += String(ESP.getFlashChipId(), HEX); ---------> remplacer par ssid += String(ESP.getFlashChipMode(), HEX);

J'ai encore un probleme, lorsque je lance la command de status, le transiver est toujours off, et impossible de pairer mon module yokis

TTHOMAS52 commented 9 months ago

Voici la version du platformio.ini pour les interessés


[platformio]
default_envs = esp32

; defaults
[env]
framework = arduino
lib_deps =
  nrf24/RF24@1.3.11

[env:esp32]
platform = espressif32
board = esp32dev

build_flags =
  #-D WIFI_SSID="\"${sysenv.WIFI_SSID}\""
  #-D WIFI_PASSWORD="\"${sysenv.WIFI_PASSWORD}\""
  -D MQTT_ENABLED 
  # MQTT_MAX_PACKET_SIZE is used by PubSubclient library
  -D MQTT_MAX_PACKET_SIZE=1024
  -D PROG_VERSION="\"${sysenv.PROG_VERSION}\""
lib_deps =
  ${env.lib_deps}
  WiFi
  knolleary/PubSubClient@^2.8
  https://github.com/nmaupu/telnetspy
  RingBuf
  AsyncTCP
  ESP Async WebServer
nmaupu commented 9 months ago

Bonjour, Et merci pour la réactivité , le probleme a été résolut en suppriment ~Mqtt(); dans /include/net/mmqt.h.

Ah oui, c'est un destructeur virtual qui n'a pas de définition concrète.

Pour les modif , j'ai changé les noms de toutes les bibliothèques version esp32, les ifesp8266... par ifesp32

_Dans globals.h_

define CE_PIN D2 ---> #define CE_PIN 4 #define CSN_PIN D8 ----> #define CSN_PIN 5 #define IRQ_PIN D1 -----> #define IRQ_PIN 27 (pour esp32 il ne faut pas connecter la pin d'apres la bibliothèque ) // status led to turn off #define STATUS_LED D4 -----> #define STATUS_LED 2

Dans /src/net/wifi.cpp modification de

void setupWifi(String ssid, String password) { ...... WiFi.mode(WIFI_STA); WiFi.setSleepMode(WIFI_NONE_SLEEP); ----------->remplacer par WiFi.setSleep(false); WiFi.setAutoReconnect(true); ETS_UART_INTR_DISABLE(); <----- supprimer wifi_station_disconnect(); -----------------> remplacer par WiFi.disconnect(); ( peut etre une connerie) ETS_UART_INTR_ENABLE(); <----- supprimer

int reconnectWifi() { //WiFi.disconnect(true); // this makes wifi not connecting somehow WiFi.mode(WIFI_STA); WiFi.setSleepMode(WIFI_NONE_SLEEP); --->remplacer par WiFi.setSleep(false);

void setupWifiAP() { .... // Scan network here String ssid = "YokisHack-"; ssid += String(ESP.getFlashChipId(), HEX); ---------> remplacer par ssid += String(ESP.getFlashChipMode(), HEX);

Une PR avec des ifdef autour de ces changements pour la compat avec l'esp32 serait top ;)

J'ai encore un probleme, lorsque je lance la command de status, le transiver est toujours off, et impossible de pairer mon module yokis

Qu'est-ce que tu appelles le tranceiver ? Le NRF24 ?

TTHOMAS52 commented 9 months ago

oui le module de reception. Une fois les modif opération si tu veux je rajouterais lees ifdef pour la compatibilité et je te le mes a disposition si tu veux le publier

TTHOMAS52 commented 9 months ago

Bousoir, j'ai un probleme sur la bibliothéque LITTLEFS pour ESP32 Voici l'erreur Compiling .pio/build/esp32/lib2f5/LittleFS_esp32/LITTLEFS.cpp.o .pio/libdeps/esp32/LittleFS_esp32/src/LITTLEFS.cpp: In member function 'virtual bool LITTLEFSImpl::exists(const char*)': .pio/libdeps/esp32/LittleFS_esp32/src/LITTLEFS.cpp:44:28: error: no matching function for call to 'LITTLEFSImpl::open(const char*&, const char [2])' File f = open(path, "r"); ^ In file included from .pio/libdeps/esp32/LittleFS_esp32/src/LITTLEFS.cpp:17: /home/titi/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/vfs_api.h:38:17: note: candidate: 'virtual fs::FileImplPtr VFSImpl::open(const char*, const char*, bool)' FileImplPtr open(const char* path, const char* mode, const bool create) override; ^~~~ /home/titi/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/vfs_api.h:38:17: note: candidate expects 3 arguments, 2 provided *** [.pio/build/esp32/lib2f5/LittleFS_esp32/LITTLEFS.cpp.o] Error 1

je suis preneur de toute solution

TTHOMAS52 commented 9 months ago

solution: Mon neveu a modifier la librarie LITTLEFS a raoujet un ,false mais je sai plus dans quel void

nmaupu commented 9 months ago

Je ne pense pas vraiment que tout ça est fait dans les règles de l'art. Faudrait que je regarde un jour parce que là, tu n'auras jamais de mise à jour et dans quelques années, tu vas te détester 😅

TTHOMAS52 commented 9 months ago

Oui, je suis d'accords, le probleme peut etre contourné en mettant LITTLEFS.open(paths, oprtion,false) Parcontre j'arrive pas encore a pair mon yokis J'ai 2 recpteurs

avec le ancien j'ai Device Status = OFF

avec le nouveau j'ai Device Status = UNDEFINED