Parallax Hack Chat

Everything Parallax makes is intended for invention and/or education, join us to talk with the designers!

Friday, May 5, 2017 12:00 pm PT - Friday, May 5, 2017 12:30 pm PT Local time zone:
Hack Chat
Similar projects worth following

Designing a Microcontroller with Eight 32-bit Cores: Propeller II

Chip Gracey is legend in the microcontroller world. Chip started Parallax right out of high school, and has been working for decades to create hardware that’s fun, powerful, well documented, and open to the community. If you’ve ever worked with the Basic Stamp or Propeller, you’ve used Chip’s hardware before. Chip joined us as host of a Hack Chat to talk shop and answer questions about the impending release of the Propeller II.

I personally remember spending hours playing with the Propeller Board of Education, so I was especially excited to hear all the juicy details about the next version. At the same time, I learned a lot more about Chip himself, and the journey he’s taken through his career.

Chip: Well...I've been into electronics since I was about 10. Self taught. Started Parallax right after high school with a friend from junior high. Parallax slowly grew to look like a company.

What else? Ah, working on a new chip called the Propeller II. It has sixteen 32-bit cores and has been much designed by the community on the Parallax forums.

I've been busy in Verilog for most of the last 17 years.

Everything has been a lot of fun. It was fun to get the Prop1 done, as it was a full-custom chip. I designed my own RAMs, ROMs, PLL's, logic, I/O pads, etc. That was a big project. It took 8 years. The Prop2 has been going on for 11 now, and I think it's done.

The Propeller is a unique chip in the microcontroller realm. It’s a multi-core device meaning it's really multiple microcontrollers in one package all able to work together and share peripherals. There is a devoted following of developers who use the chips and that community is excited for the sequel, dubbed Propeller II.

Given that the project was started eleven years ago, a lot of people might suspect that the Propeller II would be obsolete the moment it's etched in silicon; not so. In a way, the Propeller II sidesteps the whole ARM microcontroller competition, and instead offers a different way to do things. It also aims to address some of the frustrations with reliability many other microcontrollers suffer.

Chip: People always ask me if the Prop2 will be obsolete when it's done, since it's been so long in the making.

My answer is that it is something new that lets you work in a different way. Most of the microcontroller world has gone the ARM direction, it seems.

ARM is all about running compiled C code and having tight real-time processes handled by silicon peripherals. To get it to do something a few degrees off from its intended use may be about impossible.

It's nice when things work consistently, too. Today, there is a plague of flakiness that affects almost everything. The Propeller idea is to seek safe haven.

The purist will appreciate the idea of a powerful microcontroller that operates on robust assembly code, keeping the programming close to the silicon. It’s rare to find a company that’s willing to embrace the idea of finding new ways to make assembly programming fun and approachable. A lot of this is driven by Chip himself who is a veteran assembly programmer. For those less inclined to delve into assembly, the Propeller II can also be programmed using the Spin programming language or Propeller C. But for Chip it’s not dogma but practicality to each different firmware developer that matters.

Chip: The Prop2 is very flexible, like an FPGA, with maybe macros to handle common things like math operations. You are able to program it to have Nth-cycle repeatability.

I've been programming in assembly for what seems like forever. So, I have always wished for this and that. Now, I get to implement all those ideas.

Programming in assembly can be fun and really liberating. I've tried to make our assembly language like a playground. Modern architectures tend to be hideous, as the only consideration for their assembly language is C-compiler targeting.

Programming SHOULD be fun. It's a venue for learning...
Read more »

Portable Network Graphics (PNG) - 684.88 kB - 05/03/2017 at 14:37


  • (edited) Transcript for Parallax HackChat

    Sophi Kravitz05/05/2017 at 19:31 1 comment




    This is launch control: T-10 minutes and counting! All chat participans are "GO!" for chat with Chip Gracey! :)))

    Carol Lynn Hazlett Am I here yet?

    Lutetium welcome @Carol Lynn Hazlett !

    Arsenijs Hi!

    Hi @Jordan Bunker !

    Joshua Reisenauer Hi.

    Jordan Bunker Howdy @Sophi Kravitz!

    Jon Thomasson hi to all the propeller head

    Anyone with questions or something they want to discuss can use this sheet:

    Chip Gracey I'm ready.Antti Lukats, hello.

    Carol Lynn Hazlett Hi Ken!

    Ken Gracey Wow, lots of familiar faces here.

    hey @Ken Gracey

    Seairth Jacob @Ken Gracey because we can't get enough of the propeller!

    @Chip Gracey from Parallax is joining us today

    Chip Gracey Hello, Everyone.

    @Chip Gracey can you tell us a little bit about yourself and what you're working on? Well...I've been into electronics since I was about 10. Self taught. Started Parallax right after high school with a friend from junior high. Parallax slowly grew to look like a company.

    Chip Gracey What else? Ah, working on a new chip called the Propeller II. It has sixteen 32-bit cores and has been much designed by the community on the Parallax forums.

    Chip Gracey I've been busy in Verilog for most of the last 17 years.

    Carol Lynn Hazlett @Chip Gracey Will the new chip br compatible with Blocklyprop?

    Chip Gracey Anyone can ask me anything, if there's something they're interested in.

    Chip Gracey Yes, we will make a BlocklyProp front end for it.

    Jon McPhalen Can the P2 do set-and-forget fixed-frequency, variable duty-cycle PWM? I use counter updates in a loop now -- would love to dump the loop.

    Chip Gracey @Jon, yes. Each pin has a brain of its own.

    Jon McPhalen I've been so busy coding the P1 that I haven't kept up with the P2. Can go into more detail about the "smart" IO pins?

    Chip Gracey By starting up the smart pins on the same cycle, any number of them can be synchronized.

    Chip Gracey Ok...

    JDat Please tell more about "pin brains".

    Chip Gracey says:3:10 PM

    Let me get something I can paste here...

    // %MMMMM: 00000 = smart pin off (default)

    // 00001 = long repository (P[12:10] != %101)

    // 00010 = long repository (P[12:10] != %101)

    // 00011 = long repository (P[12:10] != %101)

    // 00001 = DAC noise (P[12:10] = %101)

    // 00010 = DAC 16-bit dither, noise (P[12:10] = %101)

    // 00011 = DAC 16-bit dither, PWM (P[12:10] = %101)

    // 00100* = pulse/cycle output

    // 00101* = transition output

    // 00110* = NCO frequency

    // 00111* = NCO duty

    // 01000* = PWM triangle

    // 01001* = PWM sawtooth

    // 01010* = PWM switch-mode power supply, V and I feedback

    // 01011 = periodic/continuous, A-B quadrature encoder

    // 01100 = periodic/continuous, inc on A-high

    // 01101 = periodic/continuous, inc on A-rise

    // 01110 = periodic/continuous, inc on A-high, dec on B-high

    // 01111 = periodic/continuous, inc on A-rise, dec on B-rise

    // 10000 = time A states

    // 10001 = time A highs

    // 10010 = time X A-highs

    // 10011 = for X periods, count time

    // 10100 = for X periods, count states

    // 10101 = for periods in X+ clocks, count time

    // 10110 = for periods in X+ clocks, count states

    // 10111 = for periods in X+ clocks, count periods

    // 11000* = USB host, low-speed (even/odd pin pair = DM/DP)

    // 11001* = USB host, high-speed (even/odd pin pair = DM/DP)

    // 11010* = USB device, low-speed (even/odd pin pair = DM/DP)

    // 11011* = USB device, high-speed (even/odd pin pair = DM/DP)

    // 11100* = sync serial transmit (A-data, B-clock)

    // 11101 = sync serial receive (A-data, B-clock)

    // 11110* = async serial transmit (baudrate)

    // 11111 = async serial receive (baudrate)

    Shantam Raj You said u have busy with Verilog for 17 years..... i myself wanted to get started with FPGAs and verilog, what do u think is the best way to do that, any good resources out there. I have a background in electronics so i am not really looking for...

    Read more »

View event log

Enjoy this event?



Bart Grantham wrote 05/05/2017 at 18:56 point

"Your application is pending."
Really, guys?  I figured I'd come over here 15 minutes before the discussion started and get login and whatnot all sorted.  This whole "hackchat" thing seems like a really, really bad fit for public events.  First there's the requirement to have a login, then request invitation to the "project", then wait and possibly miss the event if the organizers don't approve you in time... what were you thinking?  The barriers to entry are pretty damn high, are you actively trying to discourage people from joining?

PS - the announcement ( was poorly worded: "Log into, visit that page, and look for the ‘Join this Project’"  I ended up joining the hackchat event itself at first, not this one.

  Are you sure? yes | no

Interested in attending?

Become a member to follow this event or host your own