This September, Parallax has been in business for 35 years. As part of our celebration, we asked our customers to tell us your Parallax story. This is one we received from our community which will be shared throughout the month.
I’ve worked with more processors than I can count on two hands, more assembly languages, more high-level languages and none of them have provided this sense of enjoyment or the continual “smiling” that I have to endure as I’m working with the Propeller.
Stephen M. Moraco
When I first discovered the Propeller 1 chip I was working at Agilent Technologies, Inc. (spun off from Hewlett-Packard, Co.) on the logic analyzer team. I was working on deep triggering of very wide logic analyzers, working directly with the chip designer for the triggering chips, and writing the next-level-up driver software for combining trigger requests into chip-specific to register loads. So it was pretty technical stuff. But whenever I was away from work, I was working on projects trying to build my experience. But let me back up just a bit in time to how I started.
I was lucky enough to find my passion when I was young. When I was in high school (’71-’74) I was offered a new computer course that met for 2 hours a day, 5 days a week for 2 years. We studied computer history and programming, we learned a number of programming languages and I was hooked! So much so that I knew when I graduated that this was what I’d be doing as my profession. I spent 6 years in the US Air Force during which time I worked on military communications computer systems, helped teach mainframe assembly language and built my first computer from a kit (the Sol-20) which I still have to this day. I left the service and have been working professionally since. Throughout my ~40 years of working in software engineering, I have always had my work-side engineering and my hobby-side engineering. For the hobby side, I was always exploring. I was continually playing with things that were new to me. It was through these hobby-side efforts that I found the Propeller!
For one of my hobby-side efforts, I was volunteering with the Radio Amateur Satellite Corporation of North America (AMSAT-NA). This project attracted me for a number of reasons: the technology, it was going to space, and it was entirely open-source. We were working with AMSAT-DL (Germany) to make a new a circular topology CAN bus (CAN is normally a star topology) for use onboard amateur radio satellites. [See “Doing More with Fewer Wires in the Harness” Nov/Dec 2003]. I was the first to build the new circular CAN bus and attach 15 different CAN payloads to it. After building this new CAN ring we needed a reasonably high-speed CAN controller (USB to CAN) to exercise the system. I wanted to saturate the CAN system under test and kept trying to find CAN adapters at low cost that could generate the traffic we need but the ones I found were never capable enough to saturate the bus.
While I was working with this AMSAT-NA team I was just starting to learn about and experiment with circuit design because, you know, I’m a software guy, so my teammates helped me learn how to layout circuits. My first CAN controller design (Nov 2006) called piCan used a PIC18F2550 processor but this turned out to be insufficient. So I started looking for another to processor use and this was when I found the Parallax Propeller!
While I don’t have a clear memory of how I actually ran across this Propeller processor, it must have been in magazines as I have always had a number of magazine subscriptions that I scoured each month for new project ideas. I found that this chip was very inexpensive. After buying too many 😉 propeller kits/boards and learning how to program it in both Spin and PASM I found that it was easy to use even though it had its own languages. So I decided to incorporate the P1 into my circuit design. My second design (Dec 2007) then became PropCAN using the Parallax Propeller v1. Since I was building this controller and learning at the same time I created a blog that was tracking how I decided to architect the USB to CAN firmware. [See: “Turning on PropCAN” -Jan-Apr 2008 (PDF)). My Spin/PASM objects providing queueing and interaction with the MCP2515 CAN hardware became my first contribution to the P1 OBEX (P1 object exchange) also in Dec, 2007.
I’ve worked with many operating systems, and even written my own embedded operating system which shipped within HP Optical Drives but when I learned that the propeller cogs could monitor each others’ ram writes without interfering with the cog operating speed I was hooked! In all my past efforts any attempt such as this caused performance penalties. I set up a TV debug display using three cogs so I could watch my data structures being modified and with this, I could verify that my code was maintaining my data structures as I intended. In the project blog, I speak to developing, verifying, and performance tuning the CAN and Serial subsystems. It is also likely the first place I publicly spoke of working with the Propeller as being fun! If you have seen me in the Propeller Live Forums then you’ve heard me say this before… I’ve been saying this for years. I’ve worked with more processors than I can count on two hands, more assembly languages, more high-level languages and none of them have provided this sense of enjoyment or the continual “smiling” that I have to endure as I’m working with the Propeller. Anyway, I ended up developing a couple of more boards centering around this same P1 layout with the FTDI chip. I did one with a Bluetooth radio receiver with LED control, I did another as an XBEE network node so I could deploy temperature-monitoring nodes around my house. Also during this time, I attended one of the Unofficial Propeller Expo West (UPEW) events held at Rocklin at the Parallax offices. This was an exciting time as I was meeting with people I had been conversing with on the Propeller Forums. They even helped me find issues with my designs.
Shortly after this, in 2011, I formally retired from Agilent Technologies, Inc. I moved to full-time contracting under my business name: Iron Sheep Productions, LLC. I was being paid to develop applications for Apple iPhone, Apple Watch and Apple TV. This kept me pretty busy and left me little time for more P1 work. Each project I worked on was for one customer and generally did not benefit a larger community, this was not the open-source work that I really like to do. In mid-2019 I was nearing my fill of contracting full time and doing non-open source work, I really wanted to work on my own projects, not those dreamed up by others and projects that could be shared with more people so I scaled back. In an amazing stroke of luck, it was about this time that email arrived from Ken announcing activities with the new P2. This caught my attention… my favorite processor was now in its 2nd generation, faster and better. I started following the Forums actively, bought a whole new slew of P2 eval hardware and all the accessories, and started playing again.
So here we are now. I’m back spending my time working on open source projects and sharing my work with others. I couldn’t be happier. Maybe you’ve seen the things I’m working on that make me smile: The HUB75 Matrix Driver, the HUB75 Eval Adapter Board (sold at Parallax Store), the VSCode Spin2 Extension for Syntax and Semantic highlighting of spin2 code, the IoT gateway and now the BLDC Motor driver projects… and more.
Geez, I gotta wrap this up… So, I’m a retired long-time software engineer, and embedded systems guy. I am invigorated by working on projects that I can share with others, by working with processors that I enjoy using, by working in new areas that I haven’t been to before, and by working with good people. Ken and Chip and everybody at Parallax has fostered an educational, learning environment. One where we all get to participate in helping each other, and our community, build things and learn while using the new P2 processor and toolset. This community, these people, the fun things we are all doing is what keep me happy and enjoying my retirement.
Thank you, Ken, Chip, and everyone at Parallax. Congratulations on your 35 years!
Stephen M. Moraco
Iron Sheep Productions, LLC
GitHub: https://github.com/ironsheep
Patreon: https://www.patreon.com/IronSheep