First of all, I have two cores. One works just fine.
The other one, however, had me experienced the Yellow flash whenever I flash the core with Cloud IDE or in iOS App. It though reaches my WiFi and connects to it after re-flashing the firmware (Breathing Cyan).
When you say “hard reset”, do you mean Factory Reset? If not, check out section 3 here and see if those steps will help you get your Core flashing successfully again.
That does sound very strange. Can you post a video of the Core going through the flashing process from the Cloud and proceeding into yellow flashing? That would be very helpful.
it gave me this when I process the code you instructed:
core-firmware.bin firmware_copy.bin differ: char 2, line 1
OK, let's be elaborate:
Now my core is flashing yellow endlessly and I cannot go back to normal mode via factory reset; it will flash white for many times and return to this yellow flash again.
I make sure my core is in DFU mode: dfu-util -l, it gives me:
Found Runtime: [05ac:8218] devnum=0, cfg=1, intf=3, alt=0, name="UNDEFINED"
Found DFU: [1d50:607f] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/20001Ka,108001Kg"
Found DFU: [1d50:607f] devnum=0, cfg=1, intf=0, alt=1, name="@SPI Flash : SST25x/0x00000000/512*04Kg"
I flash my core using
dfu-util -d 1d50:607f -a 0 -s 0x08005000:leave -D core-firmware.bin
It did the thing and now my core is flashing blue.
I input my wifi credential manually cuz the app is sometimes very buggy
Using a mac,
I go to CoolTerm,
I connect to my device,
hit w,
input the credential
It saved the credential > connected > breathing cyan
Those steps I posted attempt to see if there is a bad region on the external flash on your core. Since you posted that the files differ, it sounds like the flash memory on your core is not working properly.
Can you email us at hello@spark.io, with your address / phone# and we can start the process of sending you a replacement?
So when you DFU the core-firmware to 0x0020000 it doesn’t verify it as it’s writing to flash? If the Core can’t/doesn’t do it, the dfu-util must have a way to verify right? Just thinking out loud, because that verify step is a very important one that I’d like to add to my process whenever flashing the factory core-firmware to 0x0020000. Thanks!
Hmm, it was my impression that dfu did memory verification, so I’m not sure yet why these are sneaking through. I don’t see an extra argument in the dfu-util manual, so maybe this is something that should be in the bootloader?
I don’t know enough about it to say, and I wondered how the DFU util could access the external flash … must be remapped from the bootloader firmware? If so, then yeah it should be doing verification Not sure if it is… it’s possible it does and later some sector of flash memory is being corrupted… maybe through ESD?