The folks over at Gadget Gangster put up an Instructable to build a retro 80s 8-bit microcomputer. Even though they’re using modern components, it still hearkens back to a time when 10 year olds learned 6502 assembly, PEEKing and POKEing was the best way to program, and using a mouse was a novelty.
The build uses a Parallax Propeller dev board to provide an amazing amount of horsepower for a simple microcontroller. After hooking the Propeller up to a TV via an RCA jack and adding an infrared keyboard, Gadget Gangster had a simple computer that can load programs off an SD card.
Because a microcomputer is useless if you can’t program it, Gadget Ganster ported BASIC to the Propeller. With VGA and sound output, along with the ability to add a PS/2 keyboard and Wii controller, this modern take on a classic paradigm is more powerful than dozens of Commodore 64s.
As a small aside, we don’t see nearly enough builds using a Propeller. A parallel processing microcontroller having 10 times the computational ability of a low-end ARM processor is interesting to say the least; we’re honestly puzzled by the dearth of Propeller projects. If you’ve got a Propeller project, send it into the tip line.
40 thoughts on “Building A 1980s Microcomputer With A Parallax Propeller”
I guess Propellers aren’t that popular, because the development tools are not open and also the chips are a bit odd – very powerful execution model, but ridiculously tiny amounts of memory – 512 words/cog and 64kB (split between ROM and RAM) global. With AVRs, PICs and cheap ARMs going up to 512kB of FLASH for 1/3rd of the price of a Propeller, it makes little sense to use that chip.
Just like a tiny PS3…
Really? 10x a low end ARM? Parallax claims up to 160 MIPS at 80MHz, which means 4 clocks/instruction per cog. The Cortex-M3 single-core nets a MIPS/MHz of 1.25, so a lowly first-gen M3 like the STM32L1 at max 32MHz nets 40 MIPS. Okay, 4x is significant.
But the P8X32A-Q44 currently sells at Mouser for $11.53 in onesies. Just a few cents shy of the smallest STM32F4, which brings a Cortex-M4 @ 168MHz (210 MIPS) without having to consider developing code for multiple cores.
Not to say it isn’t an interesting chip. I just can’t make a case for using it in any design.
I’m not sure what’s up with Mouser, but you can buy the Q44 version for $7.99 in single units from Parallax directly. Even less if you buy more.
That’s a bit more like it.
I’ve been wondering: is the Propeller architecture and programming environment conducive to data wrangling, like say gathering sensor data from a variety of buses (i2c, spi, gpios, and analog in) and making them accessible to a bigger upstream CPU via UART or I2C? I find that I get involved in projects where a lot of horsepower gets thrown behind what should be fairly simple to do, only because polling those devices can’t happen concurrently.
It is definitely up to the task. Unless you are super cost sensitive, it is a great choice for projects. It makes most things really easy. When the Propeller II comes out (soon
?) there really won’t be a reason to considering anything else. It is strange to not work with interrupts and peripherals but once you get your mind bent around it, you’ll really appreciate it.
Also I think you meant 6502. I don’t think the 6802 was all that popular.
you would be correct.
I’d like a propeller but Jan says it’s just not a cost-effective or practical option.
I have to agree. The power is there and it is an interesting chip, but the cost and programming tools detract from the possibility of using it.
For the record: I designed the add-on module which is plugged into the Parallax Quickstart board. The BASIC is a software “fork” of FemtoBASIC written by Mike Green. I adapted it and several newer drivers (“objects”) to create something that works and feels like an older Commodore/Atari style computer. The MIT work of several programmers is represented in this project.
As for tools to program the Propeller. I’m curious if you guys are aware of the Open Source GCC port that is available as well as IDE. There are certainly more options for programming than just the Propeller Tool now.
Another fail is the lack of at least an hardware multiplier..
What is the use of a 160Mips micro when you waste half or more just doing simple arithmetic ops?
And the dreadful programming language…
Hate to break the news..Vince Briel has already done this. Building an Altair 8800 using a propeller.. I have one of his kits, it also hooks to a tv (composite) and has an sd card… Whatever was available for the 8800 (BASIC) will work pretty much on this Micro Altair..
With all due respect: things like this may have been done before but Vince Briel’s Altair emulator is a real emulator (and by the way it uses the Propeller only as terminal emulator, not as CPU), whereas this project is a new platform that’s merely inspired by the C64 but is a whole new platform in itself.
[Jeff] (OldBitCollector) ported a Basic interpreter to run on the Propeller Quickstart and the GadgetGangster QuickVGA in a standalone way that changes the Propeller from an Embedded platform into a self-contained computer. It may seem silly to some people to do this kind of thing (after all, how useful is a computer without a web browser or a network connection) but this is the way that all home computers in the 1970s and 1980s were configured: you turned them on and all you had was Basic.
Mind you, it’s still a full Propeller system so if you want to turn it into anything else useful that uses a Propeller, you just connect the serial port to a PC and replace the Basic interpreter/editor with one of the thousands of other useful applications for the Propeller.
And of course if you already have a Propeller board, all you need to do is download this to it, and discover (or remember) what it feels like to have a small but useful computer, over which you have total control with a language that’s easy to learn.
The Propeller is fantastic. I stopped sending Propeller projects in because, since it’s not an Arduino, it doesn’t get nearly as much blog cred (xkcd had a comic about that one). My latest is an automatic welding station. My earliest was an autonomous sailboat (2007).
I do NOT recommend a Prop to people who are learning to use microcontrollers because it makes you lazy :)
I take it you have a few Propeller project write ups sitting around?
Try here. I’ve got a few Prop chips lying around, and I’m looking for something to do with them.
This boils down to the fact that Prop projects sent in to HaD are going to get a write-up.
The Prop is great, and the forums are even better. Over the holiday weekend the CEO jumped into a thread where a User had requested a useful change to one of the Prop products, and by Tue/Wed they had already gotten the change into the Design verification and Prod/Manf. process.
Unfortunately, the lack of COG RAM is something that needs to be worked around, and should be a thing of the past once the Prop 2 comes out.
While its very unique, the 8-Cores is a bit of a misnomer as you have to devote Cores to tasks that are normally dedicated to typical on-board uC peripherals. Thus, the actual horsepower you have available can be drastically reduced.
The Interrupt-less nature is its most hyped feature, however with half the Cores or more devoted as peripherals, and the limited RAM/Core, it really is somewhat constrained, and I find it most useful as an I/O aggregator.
True, but you can get 4 serial ports per core, and you can turn stuff on and off as you need it since loading a core takes very little time – my dynamic math library works that way (and does geodesy well enough that it’s used for a survey-precision autonomous boat).
That is true, however that seems to be one of the over-hyped points, large numbers of UARTs. How many do most people need for the average task?
I also need commonly availble periphs like ADCs, DACs (don’t really want to have to build one myself as is certainly possible on the Prop), CAN, etc.
While there is an Obex that can assist with many, there is still a lot of extra wiring needed to get some of these things working, along with the need for external componenets that simply are already included in other uC’s, especially flash/EEPRM without the need to have to add your own to even start using the thing.
I still think they should have included some basic dedicated hardware for USART, ADC, Flash/EEPROM, etc, so that you could actually devote 1 core to those perhaps, and actually have all the other Cores actually available for application use instead of piddling them away on low level tasks.
They could have done this on Prop2, however there seems to be a real hard-headed ‘my way or the highway’ mentality ingrained here.
They seem to understand the need to do outreach, vis-a-vis Parallax Semiconductor division’s creation. But they still seem to ‘want to believe’ that they are going to be able to increase exposure/marketshare by not bending even the slightest bit. They have their own version of the ‘reality-distortion field’ within community, only its not taking hold much outside the niche.
Its still a fantastic product, with lots of unique potential, don’t get me wrong. I’m just disappointed a bit that they didn’t realize that with Prop 2 they could have made adoption so much easier with a bit more ‘thinking inside the box’ introspection.
Lots of patent/licensing issues in the real world, but I agree – it isn’t enough. The propeller would be excellent for robotics if they realized they were supposed to be building analog neurons. They do not.
HW multiply takes space, and expertise. I don’t think they have the real estate to get that in there, nor the analog knowledge to pack in adc/dac/pwm/etc like TI and the rest.
If maxim semi bought them out, or they somehow absconded with a few maxim engineers, there might be hope… but seriously, nobody cares about multi-core if the required support infrastructure is ponderous.
I think the propeller was a good idea, but it’s basically a proof of concept. Bond 8 AT-tinys on a die and add a little cmos programmable analog real estate, and the market for the propeller will migrate there en masse.
We need low current high performance analog capable neuron clusters with shared address high speed memory. We need hardware multiply, even if it’s faked with a freaking lookup table.
We need a variant (ala tiny at85) in very tiny 8 or 16 pin commodity sm chip form that we can stack up in huge arrays. Please, get some analog signal guys over there and astound the industry.
Those positronic brains won’t build themselves, you know.
“We need hardware multiply, even if it’s faked with a freaking lookup table.”
In my opinion, if the multiplier is implemented in hardware and gives the correct result for all possible inputs, no fakery is involved. That’s part of the beauty of arithmetic :)
Hell, they could do something crazy like simulate an abacus with shift registers, as long as it works…
If I had the money, a project like this would be awesome. For now I’ll stick to my cheap-o avrs though. A similar avr project could be fun.
why is everyone saying this thing has 8 cores? I always thought it was a barrel processor, which only executes a single instruction at a time, rather than 8 independent processing cores executing simultaneously.
It does have 8 independent cores. Some resources (maybe just main memory) are only accessible in a round robin fashion, but the cores themselves can execute using their own memory independently.
Maybe I’m missing something, but it doesn’t look to me like this was done by gadget gangster, but instead by Jeff Ledger. Credit where it’s due.
No, its not a barrel shifter.
It has 8 cores that all work concurrently/independently.
I agree, would be interesting to hack 8 ATtinys together with an decent AVR as the ‘hub’ for a comparison.
Me thinks it would be pretty fast, though you probably wouldn’t have quite the PS/2/VGA I/O options as easily slapped together as on the Prop.
They don’t even need the hub – just shared memory space and a queue mechanism. Actually, just the shared memory would be fine.
The propeller isn’t as fast as you think on I/o, toggle a pin as fast as you can, and scope it, you will see that is horribly slow, I tried to wait for a signal input, and then follow as fas as possible with an output, I ended up ditching it and used two seperte pics instead.
Every time you use another core for I/o, you divide your clock by running cores.
Not really. All cores run at the same speed.
Sorry Bradley, you are incorrect – you do not divide by number of cores.
Fastest software toggle for P0
mov dira,#1 ‘ set P0 to output
this will generate a 4 clock high, and a six clock low; at 80Mhz that would be a 13.33Mhz toggle rate. (Note: You can’t use the obvious xor outa,#1 due to “shadow registers”)
If you used one of the counters in a cog, you could easily generate an 80Mhz pulse train. As I recall, you could gate the pulse output from the other counter watching for a logic input.
Using software only, you could use a “waitpeq” or “waitpne” to test your input; it will wait for a high or low, and cost 6 cycles when the condition is found.
4 clock high, 8 clock low, 6.66Mhz
I was thinking of the 6 clock waitpeq
I have been professionally designing around the SX series processors since it’s inception. Although the Propeller is a mighty chip indeed, I emphatically am not willing to sacrifice any time and effort into further development because Parallax has left a very bad taste in my mouth. They have a bad habit of discontinuing their products; leaving developers and manufacturers holding the bag. A very expensive purse indeed! I’ve learned a valuable lesson and will never again single-source an item to build upon.
Parallax acquired Ubicom, which acquired Scenix. Each acquisition resulted in slimming-down the product line. The dumbest move that was made was to change the form factor of the SX18 to a SX20. Same guts, just two additional unused worthless pins that can no longer fit into real estate reserved for their, now not available, 18-pin package. Who was the genius who came up with that brilliant move?! I am stuck holding literally thousands of bare PCB, and support components, purchased to populate the boards. I cannot make money in this fashion – only lose.
This does not include the cost of writing code and laying out traces; which by the way in the early days had been done by hand, laying red and blue tape on vellum to be photographed. Nowadays hackers have it good being able to obtain free software to design boards with. I had to endure financial pain to purchase software having a fair degree of a learning curve, making for a bumpy road indeed, as well as time frame setbacks.
Then Parallax decided to drop the SX52, but hung onto the SX48. Yet another stack of very costly worthless defunct boards laying around. Then came the final insult when Parallax announced the end-of-life (EOL) for the SX28. Blow after blow, I hung in there like a fool, continuing to design around their products, and this is the thanks I get. There is much more to this story, but many here might argue that I am taking up valuable bandwidth.
Refraining from using obscenities and calling them other than scum, you now may have an answer to your question as to why there is a very poor fan base utilizing the Propeller chip.
Thanks for that insight. This is good to hear, especially since Parallax tries to pander to the effect of “industry uses it, too!”
Like a lot of the people in this thread… I tried the propeller, and didn’t like it. It is *far* too limited. What they should have done is kept a regular-ish microcontroller base, and had 8 of those, instead of a puny stripped down core which is barely good for anything.
Trying to be unique? They’re doing it wrong. Current µC design seems to be all the same thing because IT WORKS. I want interrupts. I want peripherals. I don’t want to turn 5 of my 8 cores into bitbang implementations of any protocol I might need.
Parallax did not acquire Ubicom, it only held on to the ability to keep the SX alive as so much of the Parallax line and many customers depended on it. Point of fact: Ubicom made the SX go EOL, not Parallax. Even worse, after Parallax purchased enough product for themselves and customer projections, Ubicom came back a few months later and said, “Hey, thanks for that big order last year — what can we expect this year?” A$$hats! The death of the SX sits squarely at the feet of the morons running Ubicom.
The Propeller may not be for everybody, but I get a feeling that far too many people are in the “It’s not and Arduino” camp instead of making an actual evaluation. No,it’s not perfect — show anyone of us a micro that is. That said, it works the way they say it does. It allows those of us that do use it to solve problems very quickly (I work in Hollywood doing mostly lightin control apps and don’t get a lot of time doing animations — like this one: http://www.youtube.com/watch?v=YuSMKciw0J8, the Propeller and the way I’m able to code it allow me to do really fun stuff in a very big hurry; this is important to my clients).
Could the tool set be better? Yes. Is Parallax working on that? Yes. Will it make the wingers complaining here happy? No — but it will be good for those of us that do routinely deploy the Propeller.
I currently work at Parallax, although this all occurred before I started working there. The SX line of microcontrollers was developed by Scenix, who later changed their name to Ubicom. In 2006 they decided to shift their focus to network controllers and stop selling the SX line of microcontrollers. Parallax was a large distributor of the SX microcontrollers, and used them in many products. To prevent the line from being discontinued, Parallax convinced Ubicom to sell them wafers of the SX microcontrollers, and Parallax tested, packaged, labeled, and sold the SX line. This is why they were marked with the Parallax logo, but Ubicom’s part number. Ubicom still manufactured the dies and owned all of the rights to the design. Since Ubicom was no longer packaging the dies, Parallax had to find a packager. There were two dies, indicated with “AC” or “BD” in the part number, that were packaged into multiple packages. Some of the packages weren’t offered by any suppliers that would deal with the volume at the time, so there was no option except to discontinue them.
That deal worked out okay, until more recently Ubicom decided to completely discontinue the SX microcontrollers. The choice was completely out of Parallax’s control. Even more recently Ubicom was purchased by Qualcomm.
Many semiconductor manufacturers discontinue their semiconductors when they are still selling, just because the profit margin is not as large as a newer product. At Parallax, we plan to keep the Propeller around as long as there are customers buying it. One of our favorite features about it is that it does not contain any outside intellectual property, so we can build it wherever we want whenever we want and we don’t have to worry about other companies deciding whether or not it is profitable enough.
We definitely understand your frustration, because Ubicom not only forced us to discontinue several of our products that use the SX microcontroller, but they also left many of our customers in the same situation, without giving us any options to keep the SX series alive.
— David Carrier
As industry-standard FPGA chips fall in price, it spells the doom of a proprietary/niche product like the Propeller. A good discussion of several particulars is here: http://www.msx.org/forum/msx-talk/revival/revival-alternative-fpgas-and-emulation
the same kind of project has been done with avr as well. http://www.jcwolfram.de/projekte/avr/chipbasic2/main.php
my implementation is here http://www.neazoi.gr/microcomputer/index.htm
only 16 colours but no need to type any commands, everything is done with the keyb arrows.
FPGA’s most of them probably wont fit on the SX footprint, also I’ve read a few books on VERILOG programming FPGA’s and while they’re super fast, it’s mind numbingly complex a task to get them to do what you want them to do.. Parallax stuff is more easily assimilated by newbies and hobbyists interested in getting into programmable electronics. I started off with a Basic Stamp, Then A BS2, then a propeller. Finally not wanting to get tedious with PASM for speed issues and language constraints, I migrated over to AVR WHEN Arduino came out. It has a bigger support because AVR’s are cheap and have many built in HW peripherals like at least a 10bit ADC. I’m sorry Parallax, but your propeller even with the HW you DID include (Video generator HW that wasn’t HDMI compatable?! AND near the EOL for composite/S-Video?!) YES, Parallax WAS around before Arduino for hobbyists, but you guys seem to have your heads stuck in the sand! WAKE UP!! PLEASE!!
Look at the Raspberry Pi!! Runs Linux, can do what the Prop 1 can and then some AND connects to the internet!
Prop 2 is niche AND folley!
Comparing apples to coconuts?! The R-Pi has a mostly-closed chipset (binary closed firmware blob, the closed-source GPU boots the cpu) and is basically a mobile phone processor on a hobbyist board.
Running Linux is about all it can do, and this may or may not float your boat.
I’m personally very disturbed that all these so-called “embedded” Linux boards (I’ve bought a pine64 and an odroid-c2 as well as the r-pi) are basically using a 70’s multi-user mainframe operating system (replete with x-server if I want a gui) and wasting hardware, not to mention increasing the complexity (hackability?) of the software and reducing the determinism and precision of the device.
If the whole world will one day be full of linux-powered IoT devices I’ll vomit and shake my head in dismay…
This is not in the spirit of micro-controllers! What I really want is not another linux computer, but a mega-microcontroller. The only things that I am jealous of from these “linux powered SOC phone-ripoff designs” is the high-bandwidth and large memory (the on-die memory as well as the SDRAM in large doses)
and the fact that they often come with faster-than-spi-mode SD-Card readers or other fast mass storage (like the EMMC on the odroid)
Audio work, for example, does not benefit from linux and it’s spaghetti codebase, as deterministic timing is more important than eventual thoroughput.
No one wants to program a RISC in assembler! The chipmakers are happy to get GCC to support their chip and move on…
These new Arm64 chips seem to ONLY run bloated mainframe-computer OS’s… (hint, android and ios are also such OS’s… why on earth do the 2 largest tech companies in the world sell such OS’s on their devices? to shift more hardware. it’s poor performance/battery life ratio helps encourage you to upgrade… quad-cores in your pocket just to look at a website lol)
Isn’t there any RTOS built for Arm64?
Please be kind and respectful to help make the comments section excellent. (Comment Policy)