It turns out that even the PSoC Sensei makes mistakes. A customer was using the Transmit UART component and tried to build it for the PSoC 3 ES3 silicon. They found that it generated compiler errors. Shame on me for not testing the component with both ES2 and ES3. The fix was easy to implement and I've created a new version of the component with this fix. I’ll discuss in this post the process that is used to create a component version.
PSoC Creator has versioning built into the tool.
This allows me to release the fix for those customers that are in a place in their product development that they are able to integrate fixes.
It also allows customers that are currently using the existing version to continue to use that version, just in case my fix breaks something else.
The original version was version 1.0.
That is designated by naming the component with “_v1_0” at the end.
The new version is version 1.10.
The 1 is referred to as the major version and the 10 is referred to as the minor version.
Cypress has the policy that only the minor version number is updated for fixes and the major version is updated for breaking changes such as changing existing API signatures, adding pins, and the like.
This change was just a bug fix and won’t the break the operation for any current users of the component, so I just updated the minor version.
Also note that I changed from a minor version of 0 to 10.
Creator doesn’t handle single digit minor versions well, so versions 1 to 9 should be skipped.
Also be incrementing by 10 I’ve left space for future patches that could be made between versions.
The creation of the new version is handled mostly by Creator.
Here are the steps:
- Select the existing component in the Component tab
- Copy the component
- Select the project
- Paste the component
- This creates a new copy of the component
- Rename the component as desired
Creator automatically updates the names within the component files automatically.
For example the Verilog module name is updated for you without requiring any manual changes.
Now the functional changes can be made on this new version.
From the user perspective the availability of the new component will not change the existing usage of the component.
The library has both versions available for use.
Any new instance placed from the catalog will be the latest, but existing instances are left as they are.
Since there are now two versions the catalog shows the version number of the latest version.

To update the existing instances the Component Update Tool should be launched from the menu Project->Update Components. This will provide the opportunity to select the version for each component instance that has multiple versions available. UARTTx_1 is the instance of interest in this example. Note that the Component Update Tool allows both upgrading and reverting to an older version if issues are found.

It also includes a link to the datasheet for the selected “Available Version”. The datasheet has a section that describes the changes made.

I’ve updated the library and made it available here: PSoC Sensei Library 01/27/2011.
We’ve added a new capability to our Cypress blogs. You can now comment on any blog post. You’ll need to select the individual post (not the Full list of posts) and you’ll see all comments along with a dialog to allow you to add your own comments. Now we can have a wider conversation about PSoC and component development.