There may be firmware updates for our projects.
An update will be published on Github in the form of a new .hex file.
Of course the underlying changes are also made in the respective source files, these can be .c or .h files, a Top-Design .cysch or Design-Wide-Resources .dwr file.
With the Cypress PSoCs, the .hex file includes all programmable areas of the chip, i.e. hardware configuration memory, flash program memory, (optional) EEPROM parameter memory.
Since, following the open source concept, we do not protect the PSoCs against reading or reprogramming, this type of firmware update is the most comprehensive option.
More than 1000 erase / programming cycles should be possible at room temperature.
We recommend the firmware update with the programmer KitProg and the software PsoC programmer. The .hex file is read in with the PsoC programmer and then programmed on the target chip on command in about 10 seconds via KitProg.
During programming, the exact type of target chip is also checked using a silicon ID. This makes it impossible, for example, to install the firmware for the module version (Mod) on a board with a QFP processor (Proc) or vice versa.
Why is it only possible to use the USB bootloader for firmware updates to a limited extent?
Although our projects include a USB boot loader, we do not recommend this boot loader for firmware updates. You can experiment with the bootloader and possibly try small changes in the program code with it. PSoC Creator includes a bootloader host. However, the bootloader in the Cypress PsoCs can only rewrite the flash program memory, in particular it cannot change the hardware configuration memory and EEPROM parameter memory. A damaged bootloader cannot be "repaired" by bootloading, even though it resides in the flash program memory like the application.