alf45tar / PedalinoMini

Wireless and Bluetooth MIDI Foot Controller
GNU General Public License v3.0
479 stars 84 forks source link

Can't update from Webui #451

Closed Keeze closed 1 year ago

Keeze commented 1 year ago

Hi,

I try to update to the newest firmware via the web-interface. After pressin the button update and confirming I get the Progress=page, but nothing happens, even If i wait for a long time.

How can I solve this?

Cheers, kees

alf45tar commented 1 year ago

Update firmware from web is not supported in all cases. It depends by board memory and how big is the firmware. The firmware size must be less than 50% of the memory amount. Which firmware and which board are you using?

alf45tar commented 1 year ago

Only firmware compiled with

board_build.partitions = src/partitions_ota.csv

support web OTA update.

Keeze commented 1 year ago

I use the firmware esp32doit-devkit on a ESP32DOIT Devkit So, it looks like I use a 4GB firmware on a 4 GB Board.

Keeze commented 1 year ago

So I cloned the repo into VSCode and changed the platform.ini. I remembered the last time I had to do that because of the Oledscreen I use.

After that I built and uploaded the code and nog I seems the machine is in a bootloop. Here is the output of the terminal. Where did I go wrong is the question now...

ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5856
entry 0x400806a8
PedalinoMiniā„¢ - Version 3.1.6
CPU0 reset reason: SW_CPU_RESET Software reset CPU
CPU1 reset reason: SW_CPU_RESET Software reset CPU
PSRAM not found
ChipRevision 1, CPU Freq 240 MHz, SDK Version v3.3.5-1-g85c43024c
Flash Size 4194304, Flash Speed 80000000 Hz
Internal Total Heap 258792, Internal Free Heap 229820
PSRAM Total Heap 0, PSRAM Free Heap 0
nvs Total 65536
PlatformIO Built Environment: esp32doit-devkit-v1
_________           .___      .__  .__                 _____  .__       .__     ___ ________________    ___ 
\______  \ ____   __| _/____  |  | |__| ____   ____   /     \ |__| ____ |__|   /  / \__    ___/     \   \  \
|     ___// __ \ / __ |\__  \ |  | |  |/    \ /  _ \ /  \ /  \|  |/    \|  |  /  /    |    | /  \ /  \   \  \
|    |   \  ___// /_/ | / __ \|  |_|  |   |  (  <_> )    Y    \  |   |  \  | (  (     |    |/    Y    \   )  )
|____|    \___  >____ |(____  /____/__|___|  /\____/\____|__  /__|___|  /__|  \  \    |____|\____|__  /  /  /
              \/     \/     \/             \/               \/        \/       \__\                 \/  /__/ 
                                                                                  (c) 2018-2023 alf45star
                                                                      https://github.com/alf45tar/PedalinoMini

Hostname: 16C4F5FC
PSRAM not found
Internal Total Heap 258760, Internal Free Heap 229724
PSRAM Total Heap 0, PSRAM Free Heap 0
SPIFFS mount OK
'nvs' partition was successfully initialized
Reading NVS Global ... [E][Preferences.cpp:472] getString(): nvs_get_str len fail: BLE Server NOT_FOUND
done
[NVS][Global][Device Name]:      Pedalino
[NVS][Global][Boot Mode]:        1
[NVS][Global][BLE Server]:
[NVS][Global][STA SSID]:         XXXX
[NVS][Global][STA Password]:     XXXX
[NVS][Global][AP SSID]:          Pedalino-16C4F5FC
[NVS][Global][AP Password]:      16C4F5FC
[NVS][Global][HTTP Username]:
[NVS][Global][HTTP Password]:    
[NVS][Global][Bootstrap Theme]:  journal
[NVS][Global][Current Profile]:  0
[NVS][Global][Flip Screen]:      1
[NVS][Global][Screen Timeout]:   0
[NVS][Global][Tap Dance Mode]:   0
[NVS][Global][Bank Switch]:      0
[NVS][Global][Debounce Time]:    0
[NVS][Global][SimultaneousGap]:  0
[NVS][Global][Single Time]:      300
[NVS][Global][Double Time]:      400
[NVS][Global][Long   Time]:      500
[NVS][Global][Repeat Time]:      500
[NVS][Global][Encoder Sensit]:   5
[NVS][Global][RGB Order]:        10
[NVS][Global][LedsOnBright]:     207
[NVS][Global][LedsOffBright]:    22
[NVS][Global][OSCLocalPort]:     8000
[NVS][Global][OSCRemoteHost]:    255.255.255.255
[NVS][Global][OSCRemotePort]:    9000
[NVS][Global][Ladder]:           Ladder 1 Level 352
[NVS][Global][Ladder]:           Ladder 2 Level 533
[NVS][Global][Ladder]:           Ladder 3 Level 640
[NVS][Global][Ladder]:           Ladder 4 Level 723
[NVS][Global][Ladder]:           Ladder 5 Level 806
[NVS][Global][Ladder]:           Ladder 6 Level 1023
[W][esp32-hal-i2c.c:1419] i2cCheckLineState(): invalid state sda(21)=0, scl(22)=0
[E][esp32-hal-i2c.c:1434] i2cCheckLineState(): Bus Invalid State, TwoWire() Can't init sda=0, scl=0
[W][esp32-hal-i2c.c:1419] i2cCheckLineState(): invalid state sda(21)=0, scl(22)=0
[E][esp32-hal-i2c.c:1434] i2cCheckLineState(): Bus Invalid State, TwoWire() Can't init sda=0, scl=0

Boot NORMAL
Bluetooth Classic disabled: 15248 bytes released
Loading profile 0 ...
Reading NVS Profile A ... [E][Preferences.cpp:492] getBytesLength(): nvs_get_blob len fail: Controls NOT_FOUND
[E][Preferences.cpp:504] getBytes(): not enough space in buffer: 96 < 100
assertion "n == sizeof(action)" failed: file "src/Config.h", line 1837, function: void eeprom_read_profile(byte)
abort() was called at PC 0x4014f78f on core 1

ELF file SHA256: 0000000000000000

Backtrace: 0x40090858:0x3ffcff50 0x40090ad5:0x3ffcff70 0x4014f78f:0x3ffcff90 0x400e39f7:0x3ffcffc0 0x4010447b:0x3ffd0000 0x401058d6:0x3ffd0080 0x40131aae:0x3ffd0100 0x40091b2e:0x3ffd0120
  #0  0x40090858:0x3ffcff50 in invoke_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:695
  #1  0x40090ad5:0x3ffcff70 in abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:695
  #2  0x4014f78f:0x3ffcff90 in __assert_func at /Users/ivan/e/newlib_xtensa-2.2.0-bin/newlib_xtensa-2.2.0/xtensa-esp32-elf/newlib/libc/stdlib/../../../.././newlib/libc/stdlib/assert.c:63 (discriminator 8)
  #3  0x400e39f7:0x3ffcffc0 in eeprom_read_profile(unsigned char) at .pio/libdeps/esp32doit-devkit-v1/FastLED/src/controller.h:249
  #4  0x4010447b:0x3ffd0000 in controller_run(bool) at .pio/libdeps/esp32doit-devkit-v1/FastLED/src/controller.h:249
  #5  0x401058d6:0x3ffd0080 in setup() at .pio/libdeps/esp32doit-devkit-v1/FastLED/src/controller.h:249
  #6  0x40131aae:0x3ffd0100 in loopTask(void*) at C:/Users/keeze/.platformio/packages/framework-arduinoespressif32@3.10006.210326/cores/esp32/main.cpp:18
  #7  0x40091b2e:0x3ffd0120 in vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)

Rebooting...
alf45tar commented 1 year ago

Did you try to reset the EEPROM to factory default?

mattzzw commented 1 year ago

I had the exact same bootloop. Erasing Flash, doing a full clean and rebuilding and uploading firmware and flash filesystem helped.

alf45tar commented 1 year ago

Before any update save configuration, reset to factory default and reload configuration. EEPROM can change without any further advice.

Keeze commented 1 year ago

Erased all, flashed the filesystem and freshly build the software, now it starts to work again, except for the Oled.

In the logs I get lots of

[W][esp32-hal-i2c.c:1419] i2cCheckLineState(): invalid state sda(21)=0, scl(22)=1
[E][esp32-hal-i2c.c:1434] i2cCheckLineState(): Bus Invalid State, TwoWire() Can't init sda=0, scl=1
[W][esp32-hal-i2c.c:1419] i2cCheckLineState(): invalid state sda(21)=1, scl(22)=1
[E][esp32-hal-i2c.c:1434] i2cCheckLineState(): Bus Invalid State, TwoWire() Can't init sda=1, scl=1
[W][esp32-hal-i2c.c:1419] i2cCheckLineState(): invalid state sda(21)=1, scl(22)=1
[E][esp32-hal-i2c.c:1434] i2cCheckLineState(): Bus Invalid State, TwoWire() Can't init sda=1, scl=1
[W][esp32-hal-i2c.c:1419] i2cCheckLineState(): invalid state sda(21)=0, scl(22)=1
[E][esp32-hal-i2c.c:1434] i2cCheckLineState(): Bus Invalid State, TwoWire() Can't init sda=0, scl=1
[W][esp32-hal-i2c.c:1419] i2cCheckLineState(): invalid state sda(21)=1, scl(22)=1
[E][esp32-hal-i2c.c:1434] i2cCheckLineState(): Bus Invalid State, TwoWire() Can't init sda=1, scl=1
[W][esp32-hal-i2c.c:1419] i2cCheckLineState(): invalid state sda(21)=1, scl(22)=1
[E][esp32-hal-i2c.c:1434] i2cCheckLineState(): Bus Invalid State, TwoWire() Can't init sda=1, scl=1
[W][esp32-hal-i2c.c:1419] i2cCheckLineState(): invalid state sda(21)=1, scl(22)=1
[E][esp32-hal-i2c.c:1434] i2cCheckLineState(): Bus Invalid State, TwoWire() Can't init sda=1, scl=1

I have checked the voltages and continuity on the SDA and SCL lines, both are ok. I also checked the Oled on a testPI and it works ok to

alf45tar commented 1 year ago

Are you using a 3.3K (or similar) pullup resistor on SDA and SCL line?

https://learn.adafruit.com/working-with-i2c-devices/pull-up-resistors

Keeze commented 1 year ago

Nope, I am not, but looking at the article, on 3.3V I need 1.8K resistors?

alf45tar commented 1 year ago

You do not need to be so precise. From 2k to 10k are ok.

https://docs.particle.io/reference/device-os/api/wire-i2c/pull-up-resistors-i2c/

Keeze commented 1 year ago

Resistors have been bodged and testing have been done ;) It seems I have a working pedalboard again. Tnx for your help!