Each argon I did a particle update using cli 2.8.2
I cleaned, compiled and reflashed an old simple app that uses SYSTEM_MODE(MANUAL) and then triggers some GPIO. The new build of OS and app were with V 2.0 rc 4 in particle workbench. Both os and app were flashed to the device.
It use to work fine with LED showing white, it now seems to start looking for wifi even though the MANUAL mode has been set as it is flashing green.
I had success breathing white when running your last firmware example (blinker).
The Argon I am using for this experiment had issues loading os properly when I first received it, new, from a vendor recently. To correct things, I connected the Argon to my computer via USB cable and entered DFU mode. Then, I entered the following CLI commands:
Hey @robc. Thanks so much for the suggestions. I did follow your process to the letter. The particle update -v definitely did a lot more than originally but alas, I am still getting a flashing green led after reset and after loading my simple hello world program again.
For reference, this is what was displayed during update
> Your device is ready for a system update.
> This process should take about 30 seconds. Here it goes!
▌ Updating system firmware on the device...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!!!
▀ Updating system firmware on the device...Opening DFU capable USB device...
ID 2b04:d00c
Run-time device DFU version 011a
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 = 0x00030000, size = 635412
Downloadng syste[=========================] 100% 635412 bytes
Download done.
File downloaded successfully
▄ Updating system firmware on the device...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!!!
Opening DFU capable USB device...
ID 2b04:d00c
Run-time device DFU version 011a
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 = 0x00001000, size = 153024
Downloadng syste[=========================] 100% 153024 bytes
Download done.
File downloaded successfully
▄ Updating system firmware on the device...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!!!
Opening DFU capable USB device...
ID 2b04:d00c
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #2 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "External Flash "
Downloading to address = 0x80289000, size = 42028
Downloadng syste[=========================] 100% 42028 bytes
Download done.
File downloaded successfully
▄ Updating system firmware on the device...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: File too short for DFU suffix
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 2b04:d00c
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #1 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "DCD Flash "
Downloading to address = 0x000006d9, size = 1
Downloadng syste[=========================] 100% 1 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
! System firmware update successfully completed!
> Your device should now restart automatically.
Reverting to 1.5.2 and reflashing fixed the issue so definitely something going on when using 2.0.0 rc 4. Putting 2.0.0 back on causes the issue again. I’ll submit as a bug.
With the Argon in listening mode and connected by USB, could you do:
particle serial inspect
You didn’t mention flashing the bootloader. Since 2.0.0-rc.4 is not a default release, particle update will not update it, nor will workbench even in Flash application and Device OS (local) mode.
If the bootloader is not the matching version for the Device OS version, the device needs to go online to retrieve it OTA. This happens before the application runs, so whether you have SYSTEM_MODE(MANUAL) or not is irrelevant in this case, the device will always attempt to go online to retrieve this missing dependency.
This indicates that the binary is not suitable and --force will not change that fact.
It also appears your NCP firmware version is wrong.
From what device OS version did you upgrade to 2.0.0-rc.4?
You better flash some application firmware that doesn’t block the auto-upgrade of all relevant modules OTA or use Safe Mode.
To get back to a safe base, put the device in DFU Mode and run
particle flash --usb tinker -v
particle update -v
After that try particle serial inspect (in Listening Mode) again and see whether all FAIL results have vanished.
After that you can flash a 2.0.0-rc.4 application that also allows clout connection before go MANUAL again.
I’m not sure what the total moral of the story is however.
I get the first part. Don't use --force when flashing via usb the new boot loader if there is an error, however, are we also saying that particle flash serial <booloader> is more reliable than putting into DFU mode and flashing that way?
In older deviceOS versions --serial was the only way to update the bootloader.
Once you safely got to a device OS version (including bootloader) that also unlocked the --usb option both should be fine.