Servers by jDrones

Unable to Flash Bootloader


(davidbitton) #1

I have a Pixhawk 1 (PX4FMU 2.4) and I am unable to flash a bootloader. A dfu-util --list has a good output but the upload fails. Do I need to completely wipe the chip? I have a zubax droncode adapter if need be. Thanks.

Here’s the output of dfu-util:

  dfu-util --list
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Found Runtime: [05ac:8290] ver=0166, devnum=5, cfg=1, intf=5, path="20-8", alt=0, name="UNKNOWN", serial="UNKNOWN"
Found DFU: [0483:df11] ver=2200, devnum=7, cfg=1, intf=0, path="20-5", alt=3, name="@Device Feature/0xFFFF0000/01*004 e", serial="366238743034"
Found DFU: [0483:df11] ver=2200, devnum=7, cfg=1, intf=0, path="20-5", alt=2, name="@OTP Memory /0x1FFF7800/01*512 e,01*016 e", serial="366238743034"
Found DFU: [0483:df11] ver=2200, devnum=7, cfg=1, intf=0, path="20-5", alt=1, name="@Option Bytes  /0x1FFFC000/01*016 e/0x1FFEC000/01*016 e", serial="366238743034"
Found DFU: [0483:df11] ver=2200, devnum=7, cfg=1, intf=0, path="20-5", alt=0, name="@Internal Flash  /0x08000000/04*016Kg,01*064Kg,07*128Kg,04*016Kg,01*064Kg,07*128Kg", serial="366238743034"

in ~
  dfu-util -v -v -v -d 0483:df11 -a 0 -s 0x08000000 --dfuse-address 0x08000000 -D ~/src/ardupilot/Tools/bootloaders/px4fmuv2_bl.bin
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
[timestamp] [threadID] facility level [function call] <message>
--------------------------------------------------------------------------------
[ 0.004913] [00000307] libusb: debug [libusb_get_device_list]
[ 0.004973] [00000307] libusb: debug [libusb_get_device_descriptor]
[ 0.004978] [00000307] libusb: debug [libusb_get_config_descriptor] index 0
[ 0.004997] [00000307] libusb: debug [libusb_open] open 20.7
[ 0.005094] [00000307] libusb: debug [darwin_open] device open for access
[ 0.005111] [00000307] libusb: debug [libusb_alloc_transfer] transfer 0x7fce31701a88
[ 0.005115] [00000307] libusb: debug [libusb_submit_transfer] transfer 0x7fce31701a88
[ 0.005156] [00000307] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
[ 0.005173] [00000307] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.005183] [00000307] libusb: debug [handle_events] poll fds modified, reallocating
[ 0.005193] [00000307] libusb: debug [handle_events] poll() 1 fds with timeout in 60000ms
[ 0.005287] [00002807] libusb: debug [darwin_async_io_callback] an async io operation has completed
[ 0.005300] [00000307] libusb: debug [handle_events] poll() returned 1
[ 0.005307] [00000307] libusb: debug [handle_events] caught a fish on the event pipe
[ 0.005310] [00000307] libusb: debug [darwin_handle_transfer_completion] handling control completion with kernel status 0
[ 0.005313] [00000307] libusb: debug [usbi_handle_transfer_completion] transfer 0x7fce31701a88 has callback 0x108ad6130
[ 0.005315] [00000307] libusb: debug [sync_transfer_cb] actual_length=4
[ 0.005329] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7fce31701a88
[ 0.027787] [00000307] libusb: debug [libusb_alloc_transfer] transfer 0x7fce316028c8
[ 0.027799] [00000307] libusb: debug [libusb_submit_transfer] transfer 0x7fce316028c8
[ 0.027856] [00000307] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
[ 0.027860] [00002807] libusb: debug [darwin_async_io_callback] an async io operation has completed
[ 0.027864] [00000307] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.027879] [00000307] libusb: debug [handle_events] poll() 1 fds with timeout in 60000ms
[ 0.027889] [00000307] libusb: debug [handle_events] poll() returned 1
[ 0.027891] [00000307] libusb: debug [handle_events] caught a fish on the event pipe
[ 0.027893] [00000307] libusb: debug [darwin_handle_transfer_completion] handling control completion with kernel status 0
[ 0.027896] [00000307] libusb: debug [usbi_handle_transfer_completion] transfer 0x7fce316028c8 has callback 0x108ad6130
[ 0.027898] [00000307] libusb: debug [sync_transfer_cb] actual_length=166
[ 0.027902] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7fce316028c8
[ 0.027905] [00000307] libusb: debug [libusb_alloc_transfer] transfer 0x7fce316028c8
[ 0.027908] [00000307] libusb: debug [libusb_submit_transfer] transfer 0x7fce316028c8
[ 0.027947] [00000307] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
[ 0.027951] [00000307] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.027953] [00000307] libusb: debug [handle_events] poll() 1 fds with timeout in 60000ms
[ 0.028073] [00002807] libusb: debug [darwin_async_io_callback] an async io operation has completed
[ 0.028097] [00000307] libusb: debug [handle_events] poll() returned 1
[ 0.028111] [00000307] libusb: debug [handle_events] caught a fish on the event pipe
[ 0.028113] [00000307] libusb: debug [darwin_handle_transfer_completion] handling control completion with kernel status 0
[ 0.028115] [00000307] libusb: debug [usbi_handle_transfer_completion] transfer 0x7fce316028c8 has callback 0x108ad6130
[ 0.028118] [00000307] libusb: debug [sync_transfer_cb] actual_length=4
[ 0.028121] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7fce316028c8
[ 0.028133] [00000307] libusb: debug [libusb_alloc_transfer] transfer 0x7fce316028c8
[ 0.028392] [00000307] libusb: debug [libusb_submit_transfer] transfer 0x7fce316028c8
[ 0.028421] [00000307] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
[ 0.028425] [00000307] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.028427] [00000307] libusb: debug [handle_events] poll() 1 fds with timeout in 60000ms
[ 0.028428] [00002807] libusb: debug [darwin_async_io_callback] an async io operation has completed
[ 0.028454] [00000307] libusb: debug [handle_events] poll() returned 1
[ 0.028458] [00000307] libusb: debug [handle_events] caught a fish on the event pipe
[ 0.028460] [00000307] libusb: debug [darwin_handle_transfer_completion] handling control completion with kernel status 0
[ 0.028462] [00000307] libusb: debug [usbi_handle_transfer_completion] transfer 0x7fce316028c8 has callback 0x108ad6130
[ 0.028465] [00000307] libusb: debug [sync_transfer_cb] actual_length=26
[ 0.028468] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7fce316028c8
[ 0.028474] [00000307] libusb: debug [libusb_close]
[ 0.028523] [00000307] libusb: debug [libusb_get_device_descriptor]
[ 0.028528] [00000307] libusb: debug [libusb_get_config_descriptor] index 0
[ 0.028535] [00000307] libusb: debug [parse_endpoint] skipping descriptor b
[ 0.028554] [00000307] libusb: debug [libusb_get_device_descriptor]
[ 0.028559] [00000307] libusb: debug [libusb_get_config_descriptor] index 0
Opening DFU capable USB device...
[ 0.028568] [00000307] libusb: debug [libusb_open] open 20.7
[ 0.028604] [00000307] libusb: debug [darwin_open] device open for access
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
[ 0.028621] [00000307] libusb: debug [libusb_claim_interface] interface 0
[ 0.028979] [00000307] libusb: debug [get_endpoints] building table of endpoints.
[ 0.029009] [00000307] libusb: debug [darwin_claim_interface] interface opened
Setting Alternate Setting #0 ...
[ 0.029016] [00000307] libusb: debug [libusb_set_interface_alt_setting] interface 0 altsetting 0
[ 0.029362] [00000307] libusb: debug [get_endpoints] building table of endpoints.
Determining device status: [ 0.029377] [00000307] libusb: debug [libusb_alloc_transfer] transfer 0x7fce31701d68
[ 0.029380] [00000307] libusb: debug [libusb_submit_transfer] transfer 0x7fce31701d68
[ 0.029415] [00000307] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
[ 0.029418] [00000307] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.029420] [00000307] libusb: debug [handle_events] poll() 1 fds with timeout in 60000ms
[ 0.029583] [00002807] libusb: debug [darwin_async_io_callback] an async io operation has completed
[ 0.029610] [00000307] libusb: debug [handle_events] poll() returned 1
[ 0.029613] [00000307] libusb: debug [handle_events] caught a fish on the event pipe
[ 0.029615] [00000307] libusb: debug [darwin_handle_transfer_completion] handling control completion with kernel status 0
[ 0.029618] [00000307] libusb: debug [usbi_handle_transfer_completion] transfer 0x7fce31701d68 has callback 0x108ad6130
[ 0.029620] [00000307] libusb: debug [sync_transfer_cb] actual_length=6
[ 0.029633] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7fce31701d68
state = dfuERROR, status = 10
dfuERROR, clearing status
[ 0.029651] [00000307] libusb: debug [libusb_alloc_transfer] transfer 0x7fce31501d38
[ 0.029653] [00000307] libusb: debug [libusb_submit_transfer] transfer 0x7fce31501d38
[ 0.029672] [00000307] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
[ 0.029675] [00000307] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.029677] [00000307] libusb: debug [handle_events] poll() 1 fds with timeout in 60000ms
[ 0.029813] [00002807] libusb: debug [darwin_async_io_callback] an async io operation has completed
[ 0.029844] [00000307] libusb: debug [handle_events] poll() returned 1
[ 0.029848] [00000307] libusb: debug [handle_events] caught a fish on the event pipe
[ 0.029850] [00000307] libusb: debug [darwin_handle_transfer_completion] handling control completion with kernel status 0
[ 0.029853] [00000307] libusb: debug [usbi_handle_transfer_completion] transfer 0x7fce31501d38 has callback 0x108ad6130
[ 0.029855] [00000307] libusb: debug [sync_transfer_cb] actual_length=0
[ 0.029858] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7fce31501d38
Determining device status: [ 0.029873] [00000307] libusb: debug [libusb_alloc_transfer] transfer 0x7fce31701d68
[ 0.029875] [00000307] libusb: debug [libusb_submit_transfer] transfer 0x7fce31701d68
[ 0.029911] [00000307] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
[ 0.029915] [00000307] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.029917] [00000307] libusb: debug [handle_events] poll() 1 fds with timeout in 60000ms
[ 0.030071] [00002807] libusb: debug [darwin_async_io_callback] an async io operation has completed
[ 0.030106] [00000307] libusb: debug [handle_events] poll() returned 1
[ 0.030125] [00000307] libusb: debug [handle_events] caught a fish on the event pipe
[ 0.030127] [00000307] libusb: debug [darwin_handle_transfer_completion] handling control completion with kernel status 0
[ 0.030130] [00000307] libusb: debug [usbi_handle_transfer_completion] transfer 0x7fce31701d68 has callback 0x108ad6130
[ 0.030142] [00000307] libusb: debug [sync_transfer_cb] actual_length=6
[ 0.030146] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7fce31701d68
state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash  "
Memory segment at 0x08000000   4 x 16384 = 65536 (rew)
Memory segment at 0x08010000   1 x 65536 = 65536 (rew)
Memory segment at 0x08020000   7 x 131072 = 917504 (rew)
Memory segment at 0x08100000   4 x 16384 = 65536 (rew)
Memory segment at 0x08110000   1 x 65536 = 65536 (rew)
Memory segment at 0x08120000   7 x 131072 = 917504 (rew)
Downloading to address = 0x08000000, size = 9772
Download	[                         ]   0%            0 bytesErasing page size 16384 at address 0x08000000, page starting at 0x08000000
[ 0.030217] [00000307] libusb: debug [libusb_alloc_transfer] transfer 0x7fce31501dd8
[ 0.030219] [00000307] libusb: debug [libusb_submit_transfer] transfer 0x7fce31501dd8
[ 0.030246] [00000307] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
[ 0.030253] [00000307] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.030255] [00000307] libusb: debug [handle_events] poll() 1 fds with timeout in 60000ms
[ 0.030482] [00002807] libusb: debug [darwin_async_io_callback] an async io operation has completed
[ 0.030512] [00000307] libusb: debug [handle_events] poll() returned 1
[ 0.030517] [00000307] libusb: debug [handle_events] caught a fish on the event pipe
[ 0.030519] [00000307] libusb: debug [darwin_handle_transfer_completion] handling control completion with kernel status 0
[ 0.030531] [00000307] libusb: debug [usbi_handle_transfer_completion] transfer 0x7fce31501dd8 has callback 0x108ad6130
[ 0.030533] [00000307] libusb: debug [sync_transfer_cb] actual_length=5
[ 0.030537] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7fce31501dd8
[ 0.030550] [00000307] libusb: debug [libusb_alloc_transfer] transfer 0x7fce31501dd8
[ 0.030552] [00000307] libusb: debug [libusb_submit_transfer] transfer 0x7fce31501dd8
[ 0.030573] [00000307] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
[ 0.030577] [00000307] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.030579] [00000307] libusb: debug [handle_events] poll() 1 fds with timeout in 60000ms
[ 0.030732] [00002807] libusb: debug [darwin_async_io_callback] an async io operation has completed
[ 0.030760] [00000307] libusb: debug [handle_events] poll() returned 1
[ 0.030764] [00000307] libusb: debug [handle_events] caught a fish on the event pipe
[ 0.030766] [00000307] libusb: debug [darwin_handle_transfer_completion] handling control completion with kernel status 0
[ 0.030779] [00000307] libusb: debug [usbi_handle_transfer_completion] transfer 0x7fce31501dd8 has callback 0x108ad6130
[ 0.030781] [00000307] libusb: debug [sync_transfer_cb] actual_length=6
[ 0.030784] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7fce31501dd8
   Poll timeout 100 ms
[ 0.134135] [00000307] libusb: debug [libusb_alloc_transfer] transfer 0x7fce31501dd8
[ 0.134150] [00000307] libusb: debug [libusb_submit_transfer] transfer 0x7fce31501dd8
[ 0.134197] [00000307] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
[ 0.134202] [00000307] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.134206] [00000307] libusb: debug [handle_events] poll() 1 fds with timeout in 60000ms
[ 0.175730] [00002807] libusb: debug [darwin_async_io_callback] an async io operation has completed
[ 0.175767] [00000307] libusb: debug [handle_events] poll() returned 1
[ 0.175777] [00000307] libusb: debug [handle_events] caught a fish on the event pipe
[ 0.175780] [00000307] libusb: debug [darwin_handle_transfer_completion] handling control completion with kernel status -536870163
[ 0.175783] [00000307] libusb: warning [darwin_transfer_status] transfer error: device not responding (value = 0xe00002ed)
[ 0.175786] [00000307] libusb: debug [usbi_handle_transfer_completion] transfer 0x7fce31501dd8 has callback 0x108ad6130
[ 0.175789] [00000307] libusb: debug [sync_transfer_cb] actual_length=0
[ 0.175794] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7fce31501dd8
dfu-util: Error during special command "ERASE_PAGE" get_status

in ~
 

(peterbarker) #2

I have a Pixhawk 1 (PX4FMU 2.4) and I am unable to flash a bootloader. A dfu-util --list has a good output but the upload fails. Do I need to completely
wipe the chip? I have a zubax droncode adapter if need be. Thanks.

If there’s a working bootloader on there you might try loading a master
firmware and writing the bootloader using that. There might be a button
in MissionPlanner to trigger it now…

Here¢s the output of dfu-util:

Have you tried a second computer? That will bisect your problem quite
neatly.