Skip to content

Help needed with firmware upgrade on TTGO T-Display (INVALID_FW' error) #283

@DrewR-D

Description

@DrewR-D

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 serial

Sending get_version_info request 463272 length 35
Received reply 463272

Jade 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: e5b0486664fc6a3c594353609a20fe7d8f43942a64e04b946f466b4bfa1f9231

Sending auth_user request 720802 length 63
Received reply 720802

Sending pin request 746353 length 165
Received reply 746353

Sending ota request 279114 length 156
Received reply 279114

Sending 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 819331

Exception 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...

_

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions