Building a 1980s microcomputer with a Parallax Propeller

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.

Comments

  1. Jan says:

    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.

    Jan

  2. chango says:

    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.

    • oldbitcollector says:

      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.

      • chango says:

        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.

      • Jack Buffington says:

        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.

  3. chango says:

    Also I think you meant 6502. I don’t think the 6802 was all that popular.

  4. Alex Rossie says:

    I’d like a propeller but Jan says it’s just not a cost-effective or practical option.

  5. oldbitcollector says:

    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.

  6. Senso says:

    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…

  7. Jimmy says:

    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..

    http://www.brielcomputers.com/wordpress/?p=501

    • jacgoudsmit35 says:

      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.

  8. mkb says:

    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 :)

  9. prophead says:

    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.

    • mkb says:

      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).

  10. prophead says:

    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.

    • Oliver Heaviside says:

      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.

  11. TiredJuan says:

    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.

  12. matt says:

    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.

    • Alex says:

      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.

  13. Pouncer says:

    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.

  14. Prophead says:

    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.

  15. Mike bradley says:

    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.

  16. 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

    toggle_loop
    or outa,#1
    andn outa,#1
    jmp #toggle_loop

    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.

  17. disgruntled says:

    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.

    • R0b0t1 says:

      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.

      *sigh*.

    • Jon McPhalen says:

      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.

  18. 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
    Parallax Inc.

  19. 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

  20. kostas says:

    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.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 93,647 other followers