Help needed with firmware upgrade on TTGO T-Display (INVALID_FW' error)
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Área
- embedded-iot, security
Línea de trabajo
Comienza por la ruta de fallo en jade_ota.py:360 y jadepy/jade.py:584, y después revisa los metadatos capturados de la placa, el firmware, secure-boot y OTA. Reproduce el error INVALID_FW en el TTGO T-Display y establece una solución accionable de compatibilidad del firmware o un procedimiento de recuperación confirmado por un mantenedor.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi,
I’m having trouble upgrading the firmware on my TTGO T-Display device. I have successfully unlocked my device using:
python jade_ota.py --noagent
However, the process fails every time my T-Display shows the message:
preparing firmware update
I’ve followed the Crypto Guide tutorial and made some progress, but I always struggle with updating the firmware after secure boot has been enabled.
I should note that I’m not a developer, just an enthusiastic hobbyist trying to get this working. Any guidance or tips would be greatly appreciated.
_
C:\Jade>python jade_ota.py --noagent
No module named 'bleak'
BLE scanning/connectivity will not be available
Jade OTA over serialSending get_version_info request 463272 length 35
Received reply 463272Jade device for OTA:
{
"JADE_VERSION": "1.0.35-25-g58850908-dirty",
"JADE_OTA_MAX_CHUNK": 4096,
"JADE_CONFIG": "BLE",
"BOARD_TYPE": "TTGO_TDISPLAYS3PROCAMERA",
"JADE_FEATURES": "SB",
"IDF_VERSION": "v5.4.1-849-g28980b62c9",
"CHIP_FEATURES": "12000000",
"EFUSEMAC": "XXXXXX",
"BATTERY_STATUS": 0,
"JADE_STATE": "LOCKED",
"JADE_NETWORKS": "MAIN",
"JADE_HAS_PIN": true
}Reading file build/jade.bin
Read 1,336,480 bytes
Compressing 1,336,480 bytes
Compressed to 789,840 bytes
Deduced compressed firmware filepath: build/1.0.38-82-ga9d475b9-dirty_noradio_1336480_fw.bin
Filename suggests full firmware: 1.0.38-82-ga9d475b9-dirty_noradio_1336480_fw.bin
Got fw file of length 789,840 with expected uncompressed final fw length 1,336,480
Final fw hash: e5b0486664fc6a3c594353609a20fe7d8f43942a64e04b946f466b4bfa1f9231Sending auth_user request 720802 length 63
Received reply 720802Sending pin request 746353 length 165
Received reply 746353Sending ota request 279114 length 156
Received reply 279114Sending ota_data request 770532 length 4133
Received reply 770532
17.06 B/s - progress 0.52% - 46047.46 seconds left
Written 4,096 B in 240.04 s
Confirmed: False, Write progress: 0%Sending ota_data request 512882 length 4133
Received reply 512882
34.13 B/s - progress 1.04% - 34354.79 seconds left
Written 8,192 B in 360.05 s
Confirmed: False, Write progress: 0%Sending ota_data request 819331 length 4133
Received reply 819331Exception causing JadeAPI context exit.
<class 'jadepy.jade_error.JadeError'>
JadeError: -32603 - Error uploading OTA data (Data: b'OTA_ERR_INVALIDFW')File "C:\Jade\jade_ota.py", line 526, in
has_radio, bleid = ota(args, jade, info, extended_replies)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Jade\jade_ota.py", line 360, in ota
result = jade.ota_update(fwcompressed, fwlength, chunksize, fwhash,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Jade\jadepy\jade.py", line 584, in ota_update
result = self._jadeRpc('ota_data', chunk)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Jade\jadepy\jade.py", line 393, in _jadeRpc
result = self._get_result_or_raise_error(reply)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Jade\jadepy\jade.py", line 343, in _get_result_or_raise_error
raise JadeError(e.get('code'), e.get('message'), e.get('data'))Draining interface...
_
- Lenguaje dominante
- C
- Estrellas
- 507
- Forks
- 133
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Blockstream/Jade
-
REPRODUCIBLE.MD issues/commentsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Blockstream/Jade#329 · 4 comentarios ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Blockstream/Jade#315 · 3 comentarios ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Blockstream/Jade#345 · 4 comentarios ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Blockstream/Jade#344 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Blockstream/Jade#340 · 2 comentarios ·
Los mantenedores suelen responder en 2 días
Todos los issues de Blockstream/Jade
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
DaveGamble/cJSON#1100 ·
-
UB: (int) cast of a user double outside int range in dispatch / vm_index_is_int / flat_index_atAbiertoarea:runtime-vm
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
InauguralSystems/EigenScript#1748 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
leanprover/lean4#15677 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
wasm-micro-runtime/wasm-micro-runtime#5159 ·
Los mantenedores suelen responder en 7 días