Closed G-Redos closed 1 month ago
Arduino 1.8.19 should work for Espressif v2.0.13. the CRC usage has changed:
I am using Arduino 1.8.19 (windows store 1.8.57.0 build) ESP32 version: ESP32-WROOM-32D DEVKIT V4
Should I install a lower version of the CRC library? Load a different firmware onto the ESP32?
Arduino 1.8.19 should work for Espressif v2.0.13. the CRC usage has changed:
54fffa1#diff-e7316332106dc654d8f30af0cdf756e0c4567aba2bc82414f8e3a00ef53658a4
So to my understanding, I should switch to CRC v1.0.2? Should I also use your code base instead of the LimeIoT file?
'sendDisplayLED' is declared in 'display.h' which is not up-to-date in this branch. delete everything and start with the 'themed' branch. you need to "ESP32 Sketch Data Upload" the mp3 files only once.
@A-Emile hasn't created a 'themed' branch yet, so while this pull request is pending you can clone from this fork instead.
git clone -b themed https://github.com/aIecxs/Lime_Gen3_IoT_Replacement.git
'sendDisplayLED' is declared in 'display.h' which is not up-to-date in this branch. delete everything and start with the 'themed' branch. you need to "ESP32 Sketch Data Upload" the mp3 files only once.
@A-Emile hasn't created a 'themed' branch yet, so while this pull request is pending you can clone from this fork instead.
git clone -b themed https://github.com/aIecxs/Lime_Gen3_IoT_Replacement.git
Hi alecxs,
Thank you for the reply. I have previously managed to locate your repo and download all the files. I have done the ESP32 Sketch Data Upload for the mp3 files. I have changed type std::string to String in line 3, and in the rest of the .ino files. I have installed CRC v1.0.2, for compatibility.
Using library CRC at version 1.0.2 Using library BLE at version 3.0.5 Using library ESP8266Audio at version 1.9.9 Using library LittleFS at version 3.0.5 Using library FS at version 3.0.5 Using library SPIFFS at version 3.0.5 Using library HTTPClient at version 3.0.5 Using library Network at version 3.0.5 Using library NetworkClientSecure at version 3.0.5 Using library SD at version 3.0.5 Using library SPI at version 3.0.5
Using Arduino 1.8.19, I am still receiving error output:
In the settings.ino file, line 28: sendControllerCommand(data, value.size());
This error appears: exit status 1 'class String' has no member named 'size'
I have changed type std::string to String in line 3, and in the rest of the .ino files.
Why?
This error appears: exit status 1 'class String' has no member named 'size'
it's because of the changes you made
This is seriously getting confusing.
exit status 1 'class String' has no member named 'size'
https://github.com/aIecxs/Lime_Gen3_IoT_Replacement/blob/themed/LimeIoT/settings.ino File: settings.ino Line 28: sendControllerCommand(data, value.size());
I have changed type std::string to String in line 3, and in the rest of the .ino files.
Why?
This error appears: exit status 1 'class String' has no member named 'size'
it's because of the changes you made
You said to do it here: https://github.com/A-Emile/Lime_Gen3_IoT_Replacement/issues/16
What version of the ESP32 are you guys using? I have size errors.
text section exceeds available space in board Sketch uses 1349289 bytes (102%) of program storage space. Maximum is 1310720 bytes. Global variables use 39756 bytes (12%) of dynamic memory, leaving 287924 bytes for local variables. Maximum is 327680 bytes. Sketch too big; see https://support.arduino.cc/hc/en-us/articles/360013825179 for tips on reducing it. Error compiling for board ESP32 Dev Module.
You said to do it here:
16
this is another issue regarding Arduino 2.3.2, not sure why you linked that here.
it's a long time ago I compiled the code. I have Arduino 1.8.19 installed under linux.
these are the Additional Boards Manager URLs:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
https://www.pjrc.com/teensy/package_teensy_index.json
http://dan.drown.org/stm32duino/package_STM32duino_index.json
this is what I see under Boards Manager:
Arduino AVR Boards Built-In by Arduino version 1.8.3 INSTALLED
esp32 by Espressif Systems version 2.0.9 INSTALLED
STM32F1xx/GD32F1xx boards by stm32duino version 2022.9.26 INSTALLED
this is what I see under Library Manager:
Bridge Built-In by Arduino Version 1.7.0 INSTALLED
Esplora Built-In by Arduino Version 1.0.4 INSTALLED
Ethernet Built-In by Arduino Version 2.0.0 INSTALLED
Firmata Built-In by Firmata team Version 2.5.8 INSTALLED
GSM Built-In by Arduino Version 1.0.6 INSTALLED
Keyboard Built-In by Arduino Version 1.0.2 INSTALLED
LiquidCrystal Built-In by Arduino Version 1.0.7 INSTALLED
Mouse Built-In by Arduino Version 1.0.1 INSTALLED
Robot Control Built-In by Arduino Version 1.0.4 INSTALLED
Robot IR Remote Built-In by Arduino Version 2.0.0 INSTALLED
Robot Motor Built-In by Arduino Version 1.0.3 INSTALLED
SD Built-In by Arduino Version 1.2.4 INSTALLED
Servo Built-In by Arduino Version 1.1.8 INSTALLED
SpacebrewYun Built-In by Julio Terra Version 1.0.2 INSTALLED
Stepper Built-In by Arduino Version 1.1.3 INSTALLED
Temboo Built-In by Temboo Version 1.2.1 INSTALLED
TFT Built-In by Arduino Version 1.0.6 INSTALLED
WiFi Built-In by Arduino Version 1.2.7 INSTALLED
Adafruit Circuit Playground Built-In by Adafruit Version 1.11.3 INSTALLED
CRC by Rob Tillaart Version 1.0.2 INSTALLED
ESP8266Audio by Earle F. Philhower, III Version 1.9.7 INSTALLED
FreeRTOS by Phillip Stevens Version 10.5.1-0 INSTALLED
TaskScheduler by Anatoli Arkhipenko Version 3.7.0 INSTALLED
this is the Board I selected:
ESP32 Arduino -> DOIT ESP32 DEVKIT V1
not sure where you got the version of the libraries from, I have none of the libs you listed?
Downgrade esp32 by Espressif Systems version 2.0.13 to avoid exceeding of program storage space. Maximum is 1310720 bytes.
You said to do it here:
16
this is another issue regarding Arduino 2.3.2, not sure why you linked that here.
it's a long time ago I compiled the code. I have Arduino 1.8.19 installed under linux.
these are the Additional Boards Manager URLs:
https://espressif.github.io/arduino-esp32/package_esp32_index.json https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json https://www.pjrc.com/teensy/package_teensy_index.json http://dan.drown.org/stm32duino/package_STM32duino_index.json
this is what I see under Boards Manager:
Arduino AVR Boards Built-In by Arduino version 1.8.3 INSTALLED esp32 by Espressif Systems version 2.0.9 INSTALLED STM32F1xx/GD32F1xx boards by stm32duino version 2022.9.26 INSTALLED
this is what I see under Library Manager:
Bridge Built-In by Arduino Version 1.7.0 INSTALLED Esplora Built-In by Arduino Version 1.0.4 INSTALLED Ethernet Built-In by Arduino Version 2.0.0 INSTALLED Firmata Built-In by Firmata team Version 2.5.8 INSTALLED GSM Built-In by Arduino Version 1.0.6 INSTALLED Keyboard Built-In by Arduino Version 1.0.2 INSTALLED LiquidCrystal Built-In by Arduino Version 1.0.7 INSTALLED Mouse Built-In by Arduino Version 1.0.1 INSTALLED Robot Control Built-In by Arduino Version 1.0.4 INSTALLED Robot IR Remote Built-In by Arduino Version 2.0.0 INSTALLED Robot Motor Built-In by Arduino Version 1.0.3 INSTALLED SD Built-In by Arduino Version 1.2.4 INSTALLED Servo Built-In by Arduino Version 1.1.8 INSTALLED SpacebrewYun Built-In by Julio Terra Version 1.0.2 INSTALLED Stepper Built-In by Arduino Version 1.1.3 INSTALLED Temboo Built-In by Temboo Version 1.2.1 INSTALLED TFT Built-In by Arduino Version 1.0.6 INSTALLED WiFi Built-In by Arduino Version 1.2.7 INSTALLED Adafruit Circuit Playground Built-In by Adafruit Version 1.11.3 INSTALLED CRC by Rob Tillaart Version 1.0.2 INSTALLED ESP8266Audio by Earle F. Philhower, III Version 1.9.7 INSTALLED FreeRTOS by Phillip Stevens Version 10.5.1-0 INSTALLED TaskScheduler by Anatoli Arkhipenko Version 3.7.0 INSTALLED
this is the Board I selected:
ESP32 Arduino -> DOIT ESP32 DEVKIT V1
not sure where you got the version of the libraries from, I have none of the libs you listed?
Downgrade esp32 by Espressif Systems version 2.0.13 to avoid exceeding of program storage space. Maximum is 1310720 bytes.
Hi Alecxs,
I have linked issue #16 because I get the exact same problem using the IDE Arduino 1.8.19.
The libs I have listed, I downloaded from the Library Manager/Type/Arduino and Recommended.
Configuration: IDE: Arduino 1.8.19 OS: Windows 10 CRC: 1.0.2 ESP32: 2.0.13
Additional Boards Manager URLs: https://espressif.github.io/arduino-esp32/package_esp32_index.json, https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json, https://www.pjrc.com/teensy/package_teensy_index.json, http://dan.drown.org/stm32duino/package_STM32duino_index.json,
Boards Manager: Arduino AVR Boards - version 1.8.6 Arduino ESP32 Boards - version 2.0.17
Board selected: ESP32 DOIT ESP32 DEVKIT V1 (Baud 115200-works) ESP32-WROOM-DA Module (Baud 115200-works) ESP32 Dev Module (Baud 115200-works)
I have been trying multiple combinations with your repo, and the updated main branch from A-Emile.
1. REPO: https://github.com/aIecxs/Lime_Gen3_IoT_Replacement/tree/themed/LimeIoT
When compiling your code, with Board/ESP32 DOIT ESP32 DEVKIT V1, the following error is provided: exit status 1 format '%d' expects argument of type 'int', but argument 4 has type 'long unsigned int' [-Werror=format=] FILE: I2Saudio.ino LINE 119: snprintf(rtttlString, sizeof(rtttlString), "note:d=1,o=5,b=%d:%s", tempo, note);
When compiling your code, with Board/ESP32-WROOM-DA Module, the following error is provided: exit status 1 format '%d' expects argument of type 'int', but argument 4 has type 'long unsigned int' [-Werror=format=] FILE: I2Saudio.ino LINE 119: snprintf(rtttlString, sizeof(rtttlString), "note:d=1,o=5,b=%d:%s", tempo, note);
When compiling your code, with Board/ESP32 Dev Module, the following error is provided: exit status 1 format '%d' expects argument of type 'int', but argument 4 has type 'long unsigned int' [-Werror=format=] FILE: I2Saudio.ino LINE 119: snprintf(rtttlString, sizeof(rtttlString), "note:d=1,o=5,b=%d:%s", tempo, note);
Replacing %d with %zu does not help. https://stackoverflow.com/questions/21128092/d-expects-argument-of-type-int-but-argument-2-has-type-long-unsigned-int
2. REPO: https://github.com/A-Emile/Lime_Gen3_IoT_Replacement/tree/main/LimeIoT -with the newest branch merge in files commands.ino and settings.ino
When compiling the code, with Board/DOIT ESP32 DEVKIT V1, the following error is provided:
exit status 1
conversion from 'std::cxx11::string' {aka 'std::cxx11::basic_string
When compiling the code, with Board/ESP32-WROOM-DA Module, the following error is provided:
exit status 1
conversion from 'std::cxx11::string' {aka 'std::cxx11::basic_string
When compiling the code, with Board/ESP32 Dev Module, the following error is provided:
exit status 1
conversion from 'std::cxx11::string' {aka 'std::cxx11::basic_string
All day today, with no success in flashing the ESP32, using 2 repos.
You're using Arduino ESP32 Boards - version 2.0.17 you should use esp32 by Espressif Systems - version 2.0.13
I would not have access to the DOIT ESP32 Devkit V1, if I didn't have the board manager installed for Espressif Systems.
please note the difference
Boards Manager: Arduino AVR Boards - version 1.8.6 Arduino ESP32 Boards - version 2.0.17
please note the difference
Boards Manager: Arduino AVR Boards - version 1.8.6 Arduino ESP32 Boards - version 2.0.17
This is what I exactly have installed on the IDE:
uninstall Arduino ESP32 Boards
I have tested the themes branch, it compiles fine under Windows and Linux.
ESP32 Dev Module error: exit status 1 format '%d' expects argument of type 'int', but argument 4 has type 'long unsigned int' [-Werror=format=]
DOIT ESP32 error: exit status 1 format '%d' expects argument of type 'int', but argument 4 has type 'long unsigned int' [-Werror=format=]
Maybe I should uninstall the IDE, and reinstall it again?
I have the following ESP32: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32/esp32-devkitc/user_guide.html#what-you-need
delete the messed up repo and compile the themed branch
git clone -b themed https://github.com/aIecxs/Lime_Gen3_IoT_Replacement.git
Thank you @aIecxs !
But still, the repos need to be overhauled and organized better. Currently there are 2 branches. It makes everything confusing for someone trying to get it done.
At least anyone new, trying to replicate the process, will have a full guideline or your repo @aIecxs.
The code base should be sorted into:
Arduino IDE version 1.8: -With speaker support -Without speaker support -With sensor support -Without sensor support
Arduino IDE version 2.0: -With speaker support -Without speaker support -With sensor support -Without sensor support
someone changed 'main' branch to work with Arduino 2.0 and forgot to update README.md.
careful read README.md in 'themed' branch there is outlined the Arduino 1.8 requirements with link to pcb board.
for support ask in forum.
Hi @aIecxs ,
After connecting the IOT to the main device, I am not able to see the ESP32 Bluetooth connection. No transmission is being picked up by the NRF application on android.
FILE: LimeIoT.ino has the UUID number, but I am not picking it up.
// BLE
Do I need to reset the ESP32, to startup the Bluetooth function? Or is there another process?
I am afraid your ESP32 is not compatible with 'themed' branch. Try again with http://github.com/lorol/arduino-esp32fs-plugin/releases
use the LittleFS test sketch and try to create proper board config for your ESP32 https://esp32.com/viewtopic.php?t=35691
You cannot also Auto Format the code in the Arduino IDE 1.8, if you do that, you won't be able to flash the esp32. You will be forced to start over with a new code base.
The current error I am getting, is an acceptable error, and I am able to connect via Bluetooth now.
I suggest adding the comment in the LimeIoT.ino file, that you can change the name of the scooter, and the password.
it's not acceptable error because the ESP32 will crash when trying to play mp3 / file not found. not sure what you mean with Auto Format but you can repartition and reformat the LittleFS maybe that solves the error. if not check the boards.txt for correct flash size / partitioning
it's not acceptable error because the ESP32 will crash when trying to play mp3 / file not found. not sure what you mean with Auto Format but you can repartition and reformat the LittleFS maybe that solves the error. if not check the boards.txt for correct flash size / partitioning
In the Arduino IDE 1.8, you have the Ctrl + T shortcut to auto format the code.
Hi guys,
I am fairly new to Arduino. I have managed to figure out majority of the stuff myself, but I am stuck on the "uploading code" to the esp32 part.
I understand that this is a functioning code base and works with the ESP32? If it is functioning, what CRC versions are you using. I have the newest one installed on the 1.8 IDE, and I am getting a lot of errors. Do I need to use a specific version?
Also do I need to use a specific verison for the BLE stack?
I have posted the errors below.
Am I doing something wrong?
Arduino Sketchbook\LimeIoT\controller.ino: In function 'void readController()':
Arduino Sketchbook\LimeIoT\controller.ino:19:36: warning: 'uint16_t crc16(const uint8_t*, crc_size_t, uint16_t, uint16_t, uint16_t, bool, bool, crc_size_t)' is deprecated: Use calcCRC16() instead [-Wdeprecated-declarations] 19 | uint16_t new_checksum = crc16(command, sizeof(command) - 2, 0x1021, 0x0000, 0x0000, false, false); |
~^~~~~~~~~~~~~~~~ In file included from Arduino Sketchbook\LimeIoT\LimeIoT.ino:2: Arduino Sketchbook\libraries\CRC\src/CRC.h:87:10: note: declared here 87 | uint16_t crc16( | ^~~~~Arduino Sketchbook\LimeIoT\controller.ino:34:12: warning: unused variable 't' [-Wunused-variable] 34 | char t = Serial.read(); | ^
Arduino Sketchbook\LimeIoT\display.ino: In function 'void turnOffDisplayLed()':
Arduino Sketchbook\LimeIoT\display.ino:17:23: warning: 'uint8_t crc8(const uint8_t*, crc_size_t, uint8_t, uint8_t, uint8_t, bool, bool, crc_size_t)' is deprecated: Use calcCRC8() instead [-Wdeprecated-declarations] 17 | byte checksum = crc8(myByte, sizeof(myByte), crc_poly, crc_init, crc_xorout, crc_refin, crc_refout); |
~~^~~~~~~~~~~~~~~~~ Arduino Sketchbook\libraries\CRC\src/CRC.h:67:9: note: declared here 67 | uint8_t crc8( | ^~~~Arduino Sketchbook\LimeIoT\display.ino: In function 'void sendDisplayCommand(int, byte, String)':
Arduino Sketchbook\LimeIoT\display.ino:50:27: warning: 'uint8_t crc8(const uint8_t*, crc_size_t, uint8_t, uint8_t, uint8_t, bool, bool, crc_size_t)' is deprecated: Use calcCRC8() instead [-Wdeprecated-declarations] 50 | uint8_t crc_value = crc8(input_bytes, input_len / 2, crc_poly, crc_init, crc_xorout, crc_refin, crc_refout); |
~~^~~~~~~~~~~~~~~~~Arduino Sketchbook\libraries\CRC\src/CRC.h:67:9: note: declared here 67 | uint8_t crc8( | ^~~~Arduino Sketchbook\LimeIoT\loop.ino: In function 'void loop()':
Arduino Sketchbook\LimeIoT\loop.ino:24:48: warning: narrowing conversion of 'speed' from 'float' to 'byte' {aka 'unsigned char'} [-Wnarrowing] 24 | byte txByte[] = { isUnlocked, unlockForEver, speed, battery, throttle, lightIsOn, controllerIsOn, isCharging, alarmIsOn }; | ^~~~~
Arduino Sketchbook\LimeIoT\loop.ino:25:27: warning: narrowing conversion of 'max_speed' from 'int' to 'byte' {aka 'unsigned char'} [-Wnarrowing] 25 | byte settingsByte[] = { max_speed, alarm_delay, alarm_freq, alarm_reps }; | ^
~~~~Arduino Sketchbook\LimeIoT\loop.ino:25:38: warning: narrowing conversion of 'alarm_delay' from 'int' to 'byte' {aka 'unsigned char'} [-Wnarrowing] 25 | byte settingsByte[] = { max_speed, alarm_delay, alarm_freq, alarm_reps }; | ^
~~Arduino Sketchbook\LimeIoT\loop.ino:25:51: warning: narrowing conversion of 'alarm_freq' from 'int' to 'byte' {aka 'unsigned char'} [-Wnarrowing] 25 | byte settingsByte[] = { max_speed, alarm_delay, alarm_freq, alarm_reps }; | ^
~~~~~Arduino Sketchbook\LimeIoT\loop.ino:25:63: warning: narrowing conversion of 'alarm_reps' from 'int' to 'byte' {aka 'unsigned char'} [-Wnarrowing] 25 | byte settingsByte[] = { max_speed, alarm_delay, alarm_freq, alarm_reps }; | ^
~~~~~Arduino Sketchbook\LimeIoT\settings.ino: In member function 'virtual void SettingsBLECallback::onWrite(BLECharacteristic*)':
Arduino Sketchbook\LimeIoT\settings.ino:33:29: warning: narrowing conversion of 'max_speed' from 'int' to 'byte' {aka 'unsigned char'} [-Wnarrowing] 33 | byte settingsByte[] = { max_speed, alarm_delay, alarm_freq, alarm_reps }; | ^
~~~~Arduino Sketchbook\LimeIoT\settings.ino:33:40: warning: narrowing conversion of 'alarm_delay' from 'int' to 'byte' {aka 'unsigned char'} [-Wnarrowing] 33 | byte settingsByte[] = { max_speed, alarm_delay, alarm_freq, alarm_reps }; | ^
~~Arduino Sketchbook\LimeIoT\settings.ino:33:53: warning: narrowing conversion of 'alarm_freq' from 'int' to 'byte' {aka 'unsigned char'} [-Wnarrowing] 33 | byte settingsByte[] = { max_speed, alarm_delay, alarm_freq, alarm_reps }; | ^
~~~~~Arduino Sketchbook\LimeIoT\settings.ino:33:65: warning: narrowing conversion of 'alarm_reps' from 'int' to 'byte' {aka 'unsigned char'} [-Wnarrowing] 33 | byte settingsByte[] = { max_speed, alarm_delay, alarm_freq, alarm_reps }; | ^
~~~~~Arduino Sketchbook\LimeIoT\setup.ino: In function 'void setup()':
Arduino Sketchbook\LimeIoT\setup.ino:71:11: warning: unused variable 'oob_support' [-Wunused-variable] 71 | uint8_t oob_support = ESP_BLE_OOB_DISABLE; | ^
~~Arduino Sketchbook\LimeIoT\utilsC.ino: In function 'void lockScooter()': utilsC:4:16: error: 'LOCK_RELAY' was not declared in this scope; did you mean 'LOCK_EX'? 4 | digitalWrite(LOCK_RELAY, HIGH); | ^
~~~~~ | LOCK_EXArduino Sketchbook\LimeIoT\utilsC.ino: In function 'void unlockScooter()': utilsC:11:16: error: 'LOCK_RELAY' was not declared in this scope; did you mean 'LOCK_EX'? 11 | digitalWrite(LOCK_RELAY, LOW); | ^
~~~~~ | LOCK_EXArduino Sketchbook\LimeIoT\utilsO.ino: At global scope: utilsO:1:6: error: redefinition of 'void lockScooter()' 1 | void lockScooter() { | ^
~~Arduino Sketchbook\LimeIoT\utilsC.ino:2:6: note: 'void lockScooter()' previously defined here 2 | void lockScooter() { | ^
~~utilsO:6:6: error: redefinition of 'void unlockScooter()' 6 | void unlockScooter() { | ^
~~~~Arduino Sketchbook\LimeIoT\utilsC.ino:9:6: note: 'void unlockScooter()' previously defined here 9 | void unlockScooter() { | ^
~~~~Using library CRC at version 1.0.3 in folder: Arduino Sketchbook\libraries\CRC
Using library BLE at version 3.0.4 in folder: ArduinoData\packages\esp32\hardware\esp32\3.0.4\libraries\BLE exit status 1
'LOCK_RELAY' was not declared in this scope; did you mean 'LOCK_EX'?