This question seems to have been asked before but no solution was proposed (or I couldn't find it). I'd like to program a unique serial number 2-3 bytes long during production. Is there any way to use the miniprog3 ICP and have say the last 2-3 bytes in the flash memory increment as each new device is programmed (apart from manually recompiling the code with a new serial number each time). Other manufacturers seem to support this function in their tools but I couldn't find anything similar for the psoc4.

Every PSoC has got a unique ID number which you can retrieve with a CyGetUniqueID() API. See "System Reference Guide" from Creator help. The API returns a unique 64-bit number which you may use for your purposes.

At first, Cypress does not support to use the MiniProg3 in production. The writer hardware and software for production are provided by third party vendors. Please refer the "Production Programmer" tab on the following WEB page.

For example, RPM Systems Corporation has MPQ Programmer supporting PSoC devices. In addition, the MPQ Programmer has a feature named "Autoserialization" to "support on-the-fly image modification, allowing each device to be programmed with a unique serial number, MAC address, IP address, etc." You can program your own serial numbers to each devices with this feature.

Please contact the production programmer vendors if they have a feature to program serial numbers.