Czy wolisz polską wersję strony elektroda?
Nie, dziękuję Przekieruj mnie taminsmod wrote:TXW is in acceptable enough state.
insmod wrote:And i mentioned some time earlier that this one should be merged: https://github.com/openshwprojects/OpenBK7231T_App/pull/1727
divadiow wrote:were there any concerns still @p.kaczmarek2 @max4elektroda? is it because it's quite a big change?
insmod wrote:it boots fully and creates connectable AP.
Wifi scan sees 5ghz networks.
$ esptool.py -p /dev/ttyACM0 --no-stub chip_id
esptool.py v4.8.0
Serial port /dev/ttyACM0
Connecting...
Detecting chip type... ESP32-C5
Chip is ESP32-C5 (revision v1.0)
Features: WiFi 6, BT 5, IEEE802.15.4
Crystal is 48MHz
MAC: XX:XX:XX:XX:XX
BASE MAC: XX:XX:XX:XX:XX
MAC_EXT: ff:fe
Enabling default SPI flash mode...
Warning: ESP32-C5 has no Chip ID. Reading MAC instead.
MAC: XX:XX:XX:XX:XX
BASE MAC: XX:XX:XX:XX:XX
MAC_EXT: ff:fe
Hard resetting via RTS pin...
esptool.py -p /dev/ttyACM0 --no-stub -b 921600 write_flash 0 OpenESP32C5_1.18.171_4M.factory.bin
esptool.py v4.8.0
Serial port /dev/ttyACM0
Connecting...
Detecting chip type... ESP32-C5
Chip is ESP32-C5 (revision v1.0)
Features: WiFi 6, BT 5, IEEE802.15.4
Crystal is 48MHz
MAC: XX:XX:XX:XX:XX
BASE MAC: XX:XX:XX:XX:XX
MAC_EXT: ff:fe
ROM expects crystal freq: 48 MHz, detected 48 MHz
Changing baud rate to 921600
Changed.
Enabling default SPI flash mode...
Configuring flash size...
WARNING: In case of failure, please set a specific --flash_size.
Flash will be erased from 0x00000000 to 0x0012ffff...
Erasing flash...
Took 1.64s to erase flash block
Wrote 1244160 bytes at 0x00000000 in 7.9 seconds (1267.3 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...divadiow wrote:Did yours come with anything on it?
max4elektroda wrote:To get infos or flash I used esptool with "--no-stub" (else got "A fatal error occurred: Unable to verify flash chip connection (No serial data received.)."
assert failed: spinlock_acquire spinlock.h:142 (lock->count == 0)
Backtrace: 0x4008b009:0x3ffcaff0 0x4008afd1:0x3ffcb010 0x40092b4d:0x3ffcb030 0x4008bd9e:0x3ffcb150 0x4008a8ce:0x3ffcb180 0x4008ac3e:0x3ffcb1c0 0x40116a68:0x3ffcb200 0x400d8685:0x3ffcb250
void HAL_UART_Flush(void)
{
uart_flush(uartnum);
}
insmod wrote:>>21689071
Crashes because uart is already initialized in DMX_Init?
void sendDMXFrame()
{
digitalWrite(RS485_EN_PIN, HIGH);
Serial485.flush();
// BREAK: pull TX low manually
pinMode(RS485_TX_PIN, OUTPUT);
digitalWrite(RS485_TX_PIN, LOW);
delayMicroseconds(120); // ≥88µs
digitalWrite(RS485_TX_PIN, HIGH);
delayMicroseconds(12); // MAB ≥8µs
// restore UART and send DMX data
Serial485.begin(250000, SERIAL_8N2, RS485_RX_PIN, RS485_TX_PIN);
Serial485.write(dmxBuffer, sizeof(dmxBuffer));
Serial485.flush();
}
insmod wrote:>>21689071 For TX use uart_wait_tx_done. (https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/peripherals/uart.html#_CPPv410uart_flush11uart_port_t)
insmod wrote:And what do you think about caching toolchains in workflow to speed-up build process? In some cases it builds faster by more than 1 minute. Full build of everything is only 6m 36s (https://github.com/openshwprojects/OpenBK7231T_App/actions/runs/17720392809)
https://github.com/openshwprojects/OpenBK7231T_App/pull/1793
Project "D:\a\OpenBK7231T_App\OpenBK7231T_App\openBeken_win32_mvsc2017.vcxproj" on node 1 (default targets).
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.Cpp.WindowsSDK.targets(46,5): error MSB8036: The Windows SDK version 10.0.17763.0 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution". [D:\a\OpenBK7231T_App\OpenBK7231T_App\openBeken_win32_mvsc2017.vcxproj]
Done Building Project "D:\a\OpenBK7231T_App\OpenBK7231T_App\openBeken_win32_mvsc2017.vcxproj" (default targets) -- FAILED.insmod wrote:Downgrade windows-latest to windows-2022 in workflow?
diff --git a/.github/workflows/workflow.yaml b/.github/workflows/workflow.yaml
index bff6add79..8dafd1df5 100644
--- a/.github/workflows/workflow.yaml
+++ b/.github/workflows/workflow.yaml
@@ -58,7 +58,7 @@ jobs:
build2:
name: Build Simulator
needs: refs
- runs-on: windows-latest
+ runs-on: windows-2022
steps:
- name: Checkout repositoryp.kaczmarek2 wrote:Does it work when ran from console?
If so, then maybe stack size..
Attempting to connect to ESP32...
.
Synced with ESP32!
Configuring SPI flash pins (SpiAttach)...
SPI_ATTACH success.
Requesting baud rate change to 230400...
Baud rate changed to 230400 successfully.
Trying GET_SECURITY_INFO...
Trying ReadReg 0x40001000...
Reading Reg 40001000...
Failed to read chip magic: Failed to read register 40001000, resp len -1
Reading Reg 3FF5A004...
Failed to read MAC: Failed to read register 3FF5A004, resp len -1
Reading Flash ID...
Reading Reg 3FF42000...
Failed to read Flash ID: Failed to read register 3FF42000, resp len -1
OBK config load failed.
Synced with ESP32!
Configuring SPI flash pins (SpiAttach)...
SPI_ATTACH success.
Trying GET_SECURITY_INFO...
Got Chip ID from Security Info: 12 (ESP32-C2)
Reading Reg 3FF5A004...
Reading Reg 3FF5A008...
MAC Address: 00-00-00-00-00-00
Reading Flash ID...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42000...
Reading Reg 3FF42080...
Flash ID: 18E3FFF7
Unknown Flash Size Code: E3
Synced with ESP32!
Configuring SPI flash pins (SpiAttach)...
Chip returned error for CMD 8: Status 1, Error 5
Chip returned error for CMD 8: Status 1, Error 5
Chip returned error for CMD 8: Status 1, Error 5
Chip returned error for CMD 8: Status 1, Error 5
Chip returned error for CMD 8: Status 1, Error 5
Chip returned error for CMD 8: Status 1, Error 5
Chip returned error for CMD 8: Status 1, Error 5
Chip returned error for CMD 8: Status 1, Error 5
SPI_ATTACH failed (no response or error status).
Failed to configure SPI pins.
Synced with ESP32!
Configuring SPI flash pins (SpiAttach)...
SPI_ATTACH success.
Trying GET_SECURITY_INFO...
Chip returned error for CMD D: Status 1, Error 5
Trying ReadReg 0x40001000...
Reading Reg 40001000...
Read Magic Reg 0x40001000: F01D83 (ESP32)
Reading Reg 3FF5A004...
Reading Reg 3FF5A008...
MAC Address: 2C-BC-BB-92-1E-18
Reading Flash ID...
Reading Reg 3FF42000...
Reading Reg 3FF42080...
Flash ID: B51660C4
Detected Flash Size: 4194304 bytes (4MB)
Setting SPI flash parameters for 4MB...
SPI_SET_PARAMS success
Synced with ESP32!
Configuring SPI flash pins (SpiAttach)...
SPI_ATTACH success.
Trying GET_SECURITY_INFO...
Got Chip ID from Security Info: 5 (ESP32-C3)
Reading Reg 3FF5A004...
Reading Reg 3FF5A008...
MAC Address: 00-00-00-00-00-00
Reading Flash ID...
Reading Reg 3FF42000...
Reading Reg 3FF42080...
Flash ID: 0
Unknown Flash Size Code: 0
OBK config load failed.
Synced with ESP32!
Configuring SPI flash pins (SpiAttach)...
SPI_ATTACH success.
Trying GET_SECURITY_INFO...
Got Chip ID from Security Info: 13 (ESP32-C6)
Reading Reg 3FF5A004...
Reading Reg 3FF5A008...
MAC Address: 00-00-00-00-00-00
Reading Flash ID...
Reading Reg 3FF42000...
Reading Reg 3FF42080...
Flash ID: 0
Unknown Flash Size Code: 0
OBK config load failed.
Synced with ESP32!
Configuring SPI flash pins (SpiAttach)...
SPI_ATTACH success.
Requesting baud rate change to 230400...
Baud rate changed to 230400 successfully.
Trying GET_SECURITY_INFO...
Got Chip ID from Security Info: 23 (Unknown)
Reading Reg 3FF5A004...
Failed to read MAC: Failed to read register 3FF5A004, resp len -1
Reading Flash ID...
Reading Reg 3FF42000...
Failed to read Flash ID: Failed to read register 3FF42000, resp len -1
OBK config load failed.
Synced with ESP32!
Configuring SPI flash pins (SpiAttach)...
SPI_ATTACH success.
Requesting baud rate change to 230400...
Baud rate changed to 230400 successfully.
Trying GET_SECURITY_INFO...
Got Chip ID from Security Info: 9 (ESP32-S3)
Reading Reg 3FF5A004...
Reading Reg 3FF5A008...
MAC Address: 00-00-00-00-00-00
Reading Flash ID...
Reading Reg 3FF42000...
Reading Reg 3FF42080...
Flash ID: 0
Unknown Flash Size Code: 0
Synced with ESP32!
Configuring SPI flash pins (SpiAttach)...
SPI_ATTACH success.
Requesting baud rate change to 230400...
Baud rate changed to 230400 successfully.
Trying GET_SECURITY_INFO...
Got Chip ID from Security Info: 20 (Unknown)
Reading Reg 3FF5A004...
Reading Reg 3FF5A008...
MAC Address: 00-00-00-00-00-00
Reading Flash ID...
Reading Reg 3FF42000...
Reading Reg 3FF42080...
Flash ID: 0
Unknown Flash Size Code: 0
p.kaczmarek2 wrote:What's exactly going on there? Can't we, in OBK, just use Tuya's RF location?
TL;DR: 4MB stało się domyślną bazą dla OpenESP32, a autor poprawki napisał: "Now configured with 4MB by default". Ten FAQ jest dla osób uruchamiających OpenBeken na ESP32 i wyjaśnia, jak dobrać build, rozwiązać błędy partycji, bootloadera, OTA, UART i Wi‑Fi na C2, C3, S2, S3 oraz klasycznym ESP32. [#21220790]
Dlaczego to ważne: Błędny rozmiar flash, zły offset bootloadera albo niewłaściwy typ obrazu potrafią dać „invalid header”, bootloop albo bezpieczny tryb AP mimo sprawnego sprzętu.
| Wariant | Typowy flash z wątku | Co działało najlepiej | Najczęstszy problem |
|---|---|---|---|
| ESP32-C3 | 4MB | Wi‑Fi, OTA, PWM, czujniki I2C | SuperMini miewa problemy z Wi‑Fi i DHCP |
| Klasyczny ESP32 | 4MB, czasem wykrywany jako 2MB | GPIO, OTA, Wi‑Fi po poprawnym flashu | błędy tabeli partycji i safe mode po reboocie |
| ESP32-S2/S3 | 4MB lub 16MB | DS1820, GPIO, AP/STA po poprawkach | stack overflow, problemy z temperaturą wewnętrzną |
| ESP32-C2 | 4MB | podstawowe funkcje, PWM | mało RAM, czułość na taktowanie i baud |
| ESP8266 | 1MB, 4MB, 8MB po swapie | eksperymenty po rozdzieleniu wątku | zbyt mały flash dla dual-OTA przy 8Mbit |
Najważniejszy wniosek: Na ESP32 najpierw dobierz właściwy obraz do realnego flashu i układu, a dopiero potem diagnozuj skrypty, UART lub Wi‑Fi. W wątku większość „magicznych” awarii okazała się skutkiem złego rozmiaru flash, złego offsetu bootloadera albo użycia factory.bin zamiast .img. [#21221363]
sdkconfig.defaults.esp32; to była kluczowa poprawka startowa całego portu. [#21220790]sdkconfig.defaults.esp32 i ustaw w nim wariant 4MB jako domyślny dla ESP32. To właśnie ta zmiana odblokowała poprawny start portu i autor podsumował ją krótko: „Now configured with 4MB by default”. Jeśli tworzysz także obraz scalony, dopasuj --flash_size 4MB, bo samo SDK nie naprawi błędnego merge bin. [#21220790]factory.bin został zmergowany z nagłówkiem 2MB, mimo że płytka ma fizycznie 4MB. W logu widać wtedy SPI Flash Size : 2MB, a zaraz potem błąd typu partition ... exceeds flash chip size 0x200000. W wątku poprawka polegała na zmianie polecenia esptool.py merge_bin z --flash_size 2MB na --flash_size 4MB, bez zmiany samej płyty. [#21221363]factory.bin to obraz scalony z bootloaderem, tabelą partycji i aplikacją, a .img to zwykle sam obraz aplikacji do istniejącego układu partycji. Gdy układ startuje od zera, po erase_flash, albo masz uszkodzone partycje, użyj factory.bin. Gdy bootloader i partycje już są poprawne, często bezpieczniej użyć .img; w wątku klasyczny ESP32 ruszył po przejściu z factory na non-factory. [#21221359]erase_flash, aby usunąć stare partycje, konfigurację i błędne autostarty. 2. Wgraj właściwy obraz dla układu i realnego flashu: factory.bin przy czystym starcie albo .img przy istniejących partycjach. 3. Na S2 wejdź w boot przez przyciski RST i 0, a potem sprawdź log i AP przed testem GPIO. Ten schemat przywrócił poprawne działanie LED-ów i factory.bin na kilku płytkach. [#21221622]invalid header. Na ESP32-C3 boot ROM oczekiwał bootloadera od 0x0, więc obraz z offsetem 0x1000 wyglądał jak uszkodzony mimo poprawnego flashowania. [#21221037]g_deltaTimeMS i z niepoprawnego użycia opóźnienia FreeRTOS. Poprawa miała dwa elementy: dla ESP-IDF czas zaczęto brać z esp_timer_get_time()/1000, a w wątku timera zmieniono vTaskDelay(QUICK_TMR_DURATION) na vTaskDelay(QUICK_TMR_DURATION / portTICK_RATE_MS). To ograniczyło dryf, który wcześniej dawał wynik około MAIN:Time 150 przy kanale zwiększonym tylko do 121. [#21221114]Flash Encryption: Enabled i nie startował jak zwykła płytka deweloperska. Po zmianie eFuse tak, by raport pokazywał Flash Encryption: Disabled oraz SPI_BOOT_CRYPT_CNT: 0x3, urządzenie zaczęło bootować OpenBeken poprawnie. [#21221080]lfs is absent oznacza zwykle brak zamontowanej partycji LFS lub jeszcze nieutworzony system plików. W wątku ten komunikat pojawiał się przy starcie, ale później testy pokazały, że skrypty i zapis zaczęły działać po dalszych poprawkach partycji i flashowania. [#21221088]TG0WDT_SYS_RESET lub TG1WDT_SYS_RESET, szukaj blokującego kodu, a nie problemu RTC WDT. Jeśli log mówi o stack overflow w sys_evt, quick albo IntTemp, zwiększ stack albo znajdź pętlę rekurencyjną. W wątku restart rozbijał się o nieskończoną pętlę: WIFI_STA_DISCONNECTED wywoływało HAL_DisconnectFromWifi, które generowało ten sam event ponownie. [#21224554]UART_AppendByteToReceiveRingBuffer dodał vTaskDelay(3), aby uniknąć crasha. To stabilizowało pracę, ale przy większym strumieniu danych nadal mogło przepełnić bufor, wywołać flush wejścia i reset kolejki. [#21222660]powersave 1 10, gdzie 10 oznacza 10 dBm, a w jednym przypadku urządzenie połączyło się dopiero przy 6 dBm. To pomogło przy wolnym DHCP, braku adresu IP i niestabilnych połączeniach, typowych właśnie dla SuperMini. [#21450298]esptool flash_id poprawnie raportował nowy rozmiar pamięci. Po wymianie zawsze sprawdź producenta układu, kod urządzenia i Detected flash size, bo to jedyny szybki sposób potwierdzenia, że lutowanie i konfiguracja SPI są poprawne. [#21238166]addChangeHandler, bez dalszej odpowiedzi z działającym rozwiązaniem. Jeśli chcesz pozostać zgodny z tym wątkiem, jedyną potwierdzoną ścieżką jest dalszy eksperyment ze skryptami lub Berry, ale bez gotowej recepty opisanej w podanych postach. [#21798097]