[solved] Can upgrade Electron OTA but not from CLI

installed node.js
installed particle-cli
built binary in the cloud through web
downloaded binary
moved to download folder
tried to " particle flash --serial firmware.bin"
put Electron in listen mode, got flashing blue led

got this
! PROTIP: Hold the SETUP button on your device until it blinks blue!
? Press ENTER when your device is blinking BLUE
sending file: firmware.bin
Assertion failed: (timeout != -1), function uv__io_poll, file …/deps/uv/src/unix/kqueue.c, line 159.
Abort trap: 6

2 Likes

Try the command particle flash --usb firmware.bin and for this the device has to be in DFU Mode (yellow blink)

1 Like

@wdwinder I get the exact same error when attempting to flash via serial, did you ever resolve this issue?

I tried the DFU mode flash via USB but also get an error:
Error writing firmware…Incorrect platform id (expected 10, parsed 60769), use --force to override

Any ideas on how to flash via serial/USB?

1 Like

Have you built the binary for Electron?

It seems to be working now, thanks :smile:

In the Web IDE - “Devices” section I selected the Electron to flash (yellow star icon). I then re-compiled and downloaded the LED flashing example app and used the above command to flash it via serial. I had to use sudo to get it to work.

Ever since I have applied Option 2 here: https://docs.npmjs.com/getting-started/fixing-npm-permissions

I have not needed to use sudo with node/npm.

The DFU/–usb method worked for me. No sudo needed.

thanks All!

I still cannot get to work with the Electron in listening mode.

updated particle-cli
Chose Electron a the target on “devices” in the Cloud IDE
built firmware.bin using the Cloud IDE
downloaded firmware.bin
put Electron in Listen mode
tried to " sudo particle flash --serial firmware.bin"
Also tried w/o sudo, no difference.

Sometimes I get an “undefined” error, sometimes I get the Assertion failed error.

That's odd, the DFU worked. Put the Electron in DFU mode, then used
particle flash --usb firmware.bin
without the sudo.

Got the following:
running dfu-util -l
Found DFU device 2b04:d00a
checking file firmware.bin
spawning dfu-util -d 2b04:d00a -a 0 -i 0 -s 0x08080000:leave -D firmware.bin
No valid DFU suffix signature
Warning: File has no DFU suffix
dfu-util 0.7

Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2012 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

Filter on vendor = 0x2b04 product = 0xd00a
Opening DFU capable USB device... ID 2b04:d00a
Run-time device DFU version 011a
Found DFU: [2b04:d00a] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/03016Ka,01016Kg,01064Kg,07128Kg"
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Internal Flash "
Downloading to address = 0x08080000, size = 6904
..
File downloaded successfully

Flash success!

If you have flashed a version of tinker with debugging included, then you should flash regular tinker first since the debugging information interferes with the serial update. DFU/OTA update is unaffected.

1 Like

mdma,

This is a stock Electron, my code is the first binary I am flashing on it.

thx

A.J.

I was in same problem, but I could solve to trying from here, Thank you!

So I also had this error with my Electron in blue flashing mode:

Assertion failed: (timeout != -1), function uv__io_poll, file …/deps/uv/src/unix/kqueue.c, line 159.

I read the above directions, installed dfu-util (and libusb again) - and can flash when the electron is in blinking yellow mode via --usb - but this is not my preference.

What can I do to enable the --serial update option in blue mode on my Electron?