Hi, I have an original kickstarter core. I was thinking to bring it up to date with the latest firmware.
I’ve been reading the forums and I’m a tad bit confused. I’m seeing things for DFU, “Factory-Reset firmware”, etc.
is there just one binary that I can flash that does everything or do i need to do multiple updates for multiple subsystems?
I’m happy to read up on this myself if someone could flip me some forum links.
also, tried looking around on GitHub but that place make me really confused. Is there an easy way to tell what version is the latest for my core ( Or if I have to do multiple flashes for different subsystems what all the latest are?)
@kennethlimcp
Based on your post above I now know that I need to flash three parts: Bootloader, Tinker and cc3000.
I got the spark-cli going. I ran “npm update -g spark-cli” and from my limited understanding that pulled down the latest binaries. I ran “spark flash --usb cc3000” and “spark flash --usb tinker”
Both ended with a “Flashed!” so I guess I’m good there.
The next step is the Bootloader.
Is the Bootloader the same a the deep_update_2014_06.bin I see in …\npm\node_modules\spark-cli\binaries ?
Or is this what I need to do?
get core-firmware.bin from
and run
dfu-util -d 1d50:607f -a 0 -s 0x08005000:leave -D core-firmware.bin
Command will be: spark flash -usb core-firmware.bin or dfu-util -d 1d50:607f -a 0 -s 0x08005000:leave -D core-firmware.bin
Cannot remember what the procedure is like but i think you simply reset the core and once the patch is done the core will behaving normally like in tinker firmware.
For factory update:
spark flash --factory tinker or dfu-util -d 1d50:607f -a 1 -s 0x40000:leave -D tinker.bin
I wanna refresh this thread. I still have two 1st gen Cores (Kickstarter Backing), and do not really know if the 0.8.0 - respectively recent - firmwares are applicable for this device.
Yes, it should be, but if you haven't used your device from back in the days, you may need to apply some upates to the WiFi module too (e.g. particle flash --usb cc3000).
"Device OS" is mainly a term used for the successor devices of the Core, since they are using a modular firmware scheme which separates the (multi module) "Device OS" firmware part from the user application firmware module.
On the Spark Core both (Device OS and application) are backed into one monolithic binary.
However even if you have a 0.8.0 monolithic Core firmware Device Vitals won't be available since providing this data would pose too much impact on the limited resources of the Core.
However, when I want to build firmware by myself I get that hint:
sven:~$ cd Development/Mikrocontroller/Particle/firmware/modules/
sven:modules$ make clean all PLATFORM=core
makefile:20: *** “Platform ‘core’ does not support dynamic modules”. Schluss.
What do I need to adjust/configure to build the firmware?
It should, but I usually prefer doing things step by step myself.
BTW, the bootloader needs to be flashed via particle flash --serial bootloader.bin since DFU Mode is performed by the bootloader which can't replace itself while running.
I have no Cores left to test, but what does particle identify and particle serial inspect report?
If you want to build a non-modular (aka monolithic) firmware you can't build from the modules subdirectory but need to do it from main.
To be sure, you can also add the build switch MODULAR=n to force a monolithic binary even for devices that would support modularity.
BTW, you can always build via Web IDE and download the binary from there.