Shop OBEX P1 Docs P2 Docs Learn Events
Arduino vs Propeller - Page 10 — Parallax Forums

Arduino vs Propeller

14567810»

Comments

  • GadgetoidGadgetoid Posts: 47
    edited 2014-12-24 16:26
    I find that AVRs, the brains of the Arduino, are great little all-round chips that are very tempting to put into products because they offer a little bit of intelligence, or an ADC, or the ability to generate PWM. I'm working with some small boards now that include ATtiny chips ( the ones you'd find on a Trinket ) because they make an excellent stand-in for an i2c-enabled ADC. It's this jack-of-all-trades design, coupled with a really low cost, that makes the AVR appealing to a product developer. We also use the 32u4 for its USB capability.

    The Propeller is a very different beast- it's definitely not a throw-on-a-board-because-you-feel-like-it chip, and I'm admittedly at a loss when it comes to conceiving what sort of product I might place it on- other than robot/autonomous multi-rotor vehicle controllers.

    What really attracted me to the Propeller was that it's different. Being different makes it interesting, but not necessarily particularly practical.

    I'd advocate a Propeller chip not because it outperforms an Arduino, or because it has X, Y or Z hardware-benefit, but rather solely on the basis of it being different. Learning a different architecture and applying different concepts is beneficial than simply bottling yourself into copy-and-paste Arduino-library code.

    Incidentally, the simplicity of the Propeller from a feature-set perspective makes it very easy to understand versus its counterparts and a bare Propeller has the benefit of forcing a conscious choice over what ADC, constant-current PWM driver, DAC, etc you pick for a project. I like that, and I think it creates some great opportunities for educational projects that the Arduino trounces by simply having "analogRead" a copy-n-paste away.

    I'm currently in the process of seeing how the Raspberry Pi and Propeller can work together- I see the Propeller as a better and more accessible alternative to the PRU ( Programmable Realtime-Unit ) that the BeagleBone Black boasts.
  • JonnyMacJonnyMac Posts: 9,105
    edited 2014-12-24 22:17
    I'm admittedly at a loss when it comes to conceiving what sort of product I might place it on- other than robot/autonomous multi-rotor vehicle controllers.

    I live and work in Hollywood, hence most of my code is art and animatronics. I can say without doubt, that there is no way the Arduino could handle most of the projects that I code for customers like Steve Wang (created the Predator and other cool movie monsters), Disneyland, and Legoland. FWIW, Legoland recently held a meeting in London to decide which controls would be used for the animatronics around the world. The Propeller-powered EFX-TEK HC-8+ crushed the Arduino offering. Not only does Legoland know they have the power they need, they know they have the ability to customize when and as required (I help them with that). For Legoland displays they also use the Propeller-powered AP-16+ (also from EFX-TEK) for synchronized audio. Everything is tied neatly together with an off-the-shelf animation program. In the end, Legoland didn't have to spend any money on development, and now they're able to program a display is under an hour when it used to take them two or more days of traditional programming.

    You can see some of the fun I've had with the Propeller here:

    -- https://www.pinterest.com/jonmcphalen/techno-art/

    I've also done industrial work like a networked HVAC system in China which uses CAN to communicate between nodes, and supports local (keypad + LCD) plus remote HMIs (touch-screen via MODBUS connection). I've recently coded a laser-tag control board, as well as a highway sign controller (with local and remote access). The Propeller is a great chip -- it's only limited to the designers' imagination

    In my world, time is money, hence I don't mind spending a few extra $ for a Propeller when I know I can code it faster and get it to work more reliably than with a traditional micros.

    I see the Propeller as a better and more accessible alternative to the PRU ( Programmable Realtime-Unit ) that the BeagleBone Black boasts.

    I'm with you there. I, too, am interested in using the Propeller with a small SBC like the RPi. It can handle multiple audio files while the Propeller can handle connections like DMX, WS28xx LEDs, and Dynamixel actuators.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2014-12-25 00:06
    Don't fight the Arduino machine, try to co-exist with it. Encourage your professors to acquire a few propeller products for the more advanced classes.

    Agreed... Peace on Earth, goodwill toward all mankind.

    There actually are projects that might benefit from one of each working together. And the Propeller will always expand the horizons of students away from becoming overly dependent on one genre of microprocessors.
  • ajwardajward Posts: 1,130
    edited 2014-12-25 03:39
    I have a couple of Arduino boards and they aren't bad, but they (mostly) sit collecting dust in my tool box. I also have a dozen or so Propellers... bare chips and boards. To be honest, I've done very little with my Props that couldn't be handled by the Arduino, but I like the Spin language and having 8 cores gives the the ability to expand easily if I find the need to do so.

    @
  • JDatJDat Posts: 103
    edited 2014-12-25 05:12
    Avtually, no mater Arduino, propeller, STM ARM_linux. Just define your technical needs and select RIGHT TOOL for the job. Good, old qoute: "Just good enought" Sometimes arduino is more prefeared, because propeller is overkill. Don't try to use propeller where linux is more elegant solution (web, network).
    From my POV, propeller is great for WS2812b+dmx. Great bitbang, great multicore design for high speed data handling. Arduino (atmega328) preformance and RAM is too small to work with 128 WS2812 leds in framebuffer mode + high speed serial or dmx.
    *) High speed ARM (STM) are OK to work with mp3/JPEG stuff (there are great libraries). For example DIY serial camera, custom music player, other mathematical and intensive data processing with lot of RAM.
    *) "BIG" ARMs (beaglebone pcduino, raspberry etc) are great for linux stuff. There are already everything for USB, Network, servers, multimedia etc. Bad for high speed realtime. Use arduino or propeller for realtime.
    *) Forger about linux on propeller. Why you need to run linux on propeller? It's for ARMs. Propelled is great for realtime.
    *) Arduino in development is cheaper if you need quicl ADC and control some steppers/servos/releays/LEDs in small projects. It's quicker to use some ready to go LIBs and write few lines of diry C code. "Just good anought".

    So. Define your goals and use right tool for the job.

    Marry Cristmas and Happy New Year to everyone.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2014-12-27 10:00
    The Propeller 1 can actually provide a very good color ANSI video terminal for Linux.

    Arduino is not one chip, whereas the Propeller 1 is. Some are somewhat more limited than the Propeller 1, others are far more powerful in different ways.

    The big advantage of the Arduino Uno is 6 built-in ADC pins. But its i/o pins are set up with assigned purposes and fewer than the Propeller's i/o pins.

    The Arduino relies heavily on one language (excluding assembler), but many architectures that require learning to adapt to a lot of different libraries. Some large Arduino's support Linux, and Linux supports a big selection of languages..... but one gets farther away from tight deterministic control of the microcontroller.

    The Propeller relies currently on one architecture, but can provide several different programing languages. But it does not currently support Linux. Still, the Propeller holds to extremely tight deterministic control.

    +++++++++++
    In sum, all comparisons are lopsided.

    Many prefer the Propeller for the ability to focus on just one architecture to learn many things. Others prefer Arduinos as they don't care to learn such details or which architecture they use and just want a board and code that someone has provided as a solution that is near to their project.

    We live in a world where many are satisfied with quick fixes rather than acquiring lasting knowledge. Each to his own. Of course, some master Arduinos very deeply and some use the Propeller very superficially. But I think the support communities will indicate which mode predominates.

    ++++++++
    And when the Propeller 2 arrives, everything will change. I am just not sure how.
  • Heater.Heater. Posts: 21,230
    edited 2014-12-27 11:08
    Loopy,
    Agreed... Peace on Earth, goodwill toward all mankind
    Yes, yes, very nice. Christmas is over now, can we get back to JonnyMac's agenda:

    "Crush" the Arduino hordes!

    :)

    JDat,
    Define your goals and use right tool for the job.
    My goal is to use the Propeller for everything:)

    More seriously: That is a fine approach that we should always hold in mind.

    But it turns out that a persons decisions about MCU's, programming languages, and other technical details are made on far from purely technical evaluation. We simply don't have time to explore all possibilities. So we end up going with what is written about, what people we know are using, what we can get good support for. It's as much a big social phenomena as a technical one.

    Then there is the "go with what you know" approach. Many times getting the job done the best way you know how is quicker and cheaper than finding out the best way to do it from all the billions of options out there.

    This is probably leading to tons of technically sub-optimal solutions but they are solutions that are "good enough" and work here and now.

    This is why companies have marketing departments after all. To help you make the right choice. Their choice that is.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-12-27 11:31
    I find a great way to have the Propeller and Arduino or other small chip (my design called for MSP430) co-exist is when you need to read numerous sensors at a (relatively) slow frequency. The interrupt-driven chip can ready 10 or 20 or more sensors via interrupts and then Propeller can use serial communication to retrieve that data in a single cog. For next-to-nothing, you then have lots of sensors and 7 remaining Propeller cogs.
  • JonnyMacJonnyMac Posts: 9,105
    edited 2014-12-27 11:34
    Yes, yes, very nice. Christmas is over now, can we get back to JonnyMac's agenda:

    "Crush" the Arduino hordes!


    I don't have an agenda.... but when an opportunity presents itself, I don't mind stomping on the Arduino a little bit. Had several opportunities at DEF CON 22 interacting with Arduino users who had swallowed too much of the Kool-Aid.

    I'll say it again: the Arduino is a nice little platform. For the work that I do with my clients, however, it just doesn't have what I need in the way of horsepower and ease of programming.

    FWIW, the guys a Legoland are having a great time. They get to focus on the art of the display, instead of grunt codewriting just hoping to get things to work. This makes them smile. They displays the build make a lot of children smile. That makes me smile.
  • Heater.Heater. Posts: 21,230
    edited 2014-12-27 11:50
    Hmm..."Crush...stomp...", sounds like an agenda Ivan The Terrible would be proud of :)

    I saw the video of your DEF CON 22 presentation. Great stuff. For sure the right approach, not dismissive and aggressive toward the Arduino community but educational and inviting. Sure to win more friends that way.

    I also have no problem with the Arduino as such. I think it's great that the people of world have the possibility to explore such technical things as MCUs so easily and cheaply. We used to dream of such things when I were a lad.

    I just never felt the need for one. Give me the raw AVR chips, gcc-avr and PonyProg.
  • jazzedjazzed Posts: 11,803
    edited 2014-12-27 13:18
    I use these AVR clone modules at work to measure current (via ADC) and for fault injection effect analysis (via pull downs). They are small, feature rich, "easy" to program, cheap, and widely available which fits my requirements perfectly. There are better solutions for the application of course, but it doesn't make sense to bother optimizing in this case ....
  • I didn't have time to read all the comments; as there are a vast amount.  Bottom line as far as college curriculum goes changing to propeller it's a tough sell unless due to the fact Arduino uses standard C; needless to say (and someone has already pointed out) a CS student needs to know standard C,/ C++ .

     You may either Smile of your professor, fighting a loosing battle or earn their respect; if you do some legwork.   Come up with a curriculum to build off of; something like  Architecture for example.  Or possibly you may be able to turn it into an independent study; if you really peak their interest it could become an offered elective or be used in addition to the Arduino in the current class you are taking. 

    There job is to teach a list of fundamental topics as well as current trends.  The question you should be asking yourself is what ate they and how does xyz... Parallax fit into various course offerings.  Sorry I didn't have time to hit every post, or if someone covered this already. 
  • Welcome to the forums!
    Since you did not get a chance to read all the posts, I will offer this:
    https://www.parallax.com/downloads/whats-multicore-microcontroller-text

    https://www.parallax.com/downloads/whats-multicore-microcontroller-code-examples

    A brand new tutorial for the Propellor in C. 
    It is not finished yet  but it is a darn good start for a college curriculum. Heck, it could be used for High School.Please look at these and give use your critique.  
  • Heater.Heater. Posts: 21,230
    Etech_OS,
    I kind of get you point. Of course I have a few comments :)
    It's not clear to me why a CS course involves an Arduino in the first place. Should a CS course notbe teaching CS? Any programming that involves would be better done on other machines. 
    EE types will be getting down to micro-controllers and such. Again the Arduino is not the best choice there.
    The Arduino does not use standard C but rather C++. However that is so limited on the Arduinothat it's not a good place to be learning C++.
    The Propeller should be included in the CS/EE mix somewhere, if only to show people thatthings can be a done a different way.
Sign In or Register to comment.