Ever since I received my PSOC 4 Pioneer kit from Cypress I have wanted to play with this little mixed-signal Programmable System-on-Chip (PSOC) developer board. I love developer boards, providing that they are priced in a way to entice me to not only open my wallet but also make time in a busy schedule. I think my kit was free after winning a swag bag from Adafruit that they themselves obtained at the Open Hardware Summit and gave away on their weekly streamcast. Ultimately it was the invitation to beta test datasheet.net which also was included in that pile of swag that led to my getting involved with Hackaday.
What is Programmable System On Chip?
So what is a PSOC 4? A quick summary is that it’s based on an ARM Cortex reduced instruction set processor (RISC) and is somewhat capable of supporting shields based on the Arduino footprint, and it also uses a bright red PCB that I have come to associate with a Sparkfun PCB. What doesn’t show is the fact that this programmable system on chip has programmable analog function blocks in addition to programmable digital logic blocks. There is also some supporting input/output circuitry such as a multicolored LED and a capacitive touch sensor directly on the PCB.
This is an intriguing amount of programmability, so much so that Newark/Element 14 highlighted a “100 projects in 100 days” event on it.
Enter the IDE
Over the years I have had to create or install many Integrated Development Environments (IDE) that linked hardware to software. Knowing that you had to, and how to, implement an IDE was part of being an engineer. Nowadays with the Arduino type environment the user has an IDE pretty much as soon as they click on the executable which I find to be one of the best aspects of the genre. It was so quick in fact that I was able to get my teenaged son into writing his first program even before he remembered to do massive eye-rolls and make sounds of utter disdain. He did give up however, just shy of learning how to have the Arduino make sounds of disdain on his behalf.
Love Your Developer Board
So here is why I love cheap developer boards, you have standard hardware that in theory is already working, and demonstration projects are readily available to feed the IDE. Loading untested software code into a project that probably has hardware issues can present a bit of a challenge. Starting with either hardware or software that is already known to be working is a big plus as you don’t necessarily have to troubleshoot the difference between a jump out of bounds of the memory map or a blown address line, or both.
Setting up the IDE consists of downloading and installing PSoC Creator 3.0 from the Cypress website and clicking execute; I usually click “run as administrator” just because I can and it makes me feel superlative as if I have a role to play.
As mentioned above, Newark hosted a 100 Projects event and I have decided to try circuit #2 as a way of exercising all of the steps from selection and compiling to download and use. Simply put this example changes the color of the multicolor LED based on where the user touches the capacitive sensor.
Build and Run
Compiling and running the example was accomplished by a rapid-fire succession of mouse clicks, with the only pause being for the “clean and build” step. A quick click on “Debug” and the “Program” completes the process and a quick test showed the color of the LED changing based on where the capsense (capacitive sense) slider gets touched. At this point both analog and digital components have been included and configured based on a one sheet schematic.
So why do this? What is the significance of having analog compiled along with digital when the user can just utilize an add-on solder-less breadboard? The answerer is that you absolutely could implement the same designs using external analog components, especially since not all circuits can be realized with the PSOC architecture. However if you are into having more than one screwdriver in the box you will appreciate this version of having multiple answers to a problem. You might like the fact that you can re-implement a design by just pulling it from disc and not have to rebuild the solder-less breadboard (or keep the circuit built for two months in case you might need it, which you do 3.45 months later)
You may also appreciate the cleanliness of a design where most of the support circuitry is tucked up in the chip itself, not to mention real life issues with noise and reliability.
Or you might like it because it is kind of cool to compile analog.
In my case I think it’s kind of cool.