If I'm not mistaken, those Arduinos are based on the single-core Atmel AVRs, and are running with their own compiler and comes with a training board set?
First of all, they're different things. The Arduino is a "platform" that consists of a microcontroller chip (the AVR) plus supporting circuitry with a specific mechanical design (several "reference" designs), and specific software for program development. The Propeller is a microcontroller chip.
There are boards for the Propeller including one using the same mechanical design as the Arduino and extra parts to provide similar features like an ADC. There's a completely different set of program development environments for the Propeller including one (12Blocks + BST or the Propeller Tool) that's intended for beginners and children.
The AVR chip used in the Arduino has features that the Propeller does not and vice versa. It depends on what you want to use it for.
Ok this is my dilenma, in my college they adopted the arduino because its good and cheap. I'm trying to convince them that the Propeller is better than the AVR. Comparing a AVR Proto Board or Arduino to a Propeller Proto Board which do you think is better and why? The Arduino would be used for data logging mainly, and maybe control some sensors.
Putting it on the same "situation" which would you choose?
The Propeller will probably need an external ADC chip, which will have to be assembled and interfaced to the sensors. On balance, I'd say that the Arduino will probably be easier to use, be cheaper, and offer faster development, especially if the users are already familiar with it. A 32-bit device with eight cores is overkill for that sort of application.
I would partly disagree with Leon in that, having used both, I found the Propeller easier to use, not necessarily more expensive, and definitely not faster for development ... and I've used lots of different instruction sets, programming languages, etc. over the years. On the other hand, the Propeller can't be used with the existing Arduino development environment and classes, books, and existing libraries of sample code for the Arduino can't be used with the Propeller.
Regarding comparisons ... it's like apples and oranges. They're both fruit, but they're used differently. You can compare them, but it's not very meaningful because the differences in how they might be used matter a lot.
You also have to compare the Arduino to a Propeller + a similar board. You can't just compare the Arduino to the Propeller chip. Remember that an AVR chip by itself is not an Arduino.
I'm trying to change my college mindset of "Arduino" rocks, but I can't go on with simples "Hey I like the propeller" comments for them to change their mindset, if you know what I mean?
Here in the Phoenix area we have Microchip in Chandler. I looked at their product line and support before investing time in the "Propeller-way". They have a great body of application notes and fully developed code but I suspect that years from now, while coding an application for the Prop-II, I'll be glad I took the plunge. As IGBTs become faster and more efficient I see problems with interrupts that just can't be overcome in coming alternative energy applications. Most folks haven't scratched the surface of capability of just 8 cores on PASM.
It's a difficult argument to make. No wonder you're having trouble with it. Unfortunately, you're dealing with an audience that's not very sophisticated about microcontrollers. They are trying to do relatively simple things with a nice beginner's toolset. It's very difficult to be understood when you say, "but wait! What about when you want to do this thing here? Notice that you can't do that easily with an Arduino. See how expensive (or complicated) it is when you want to do this". They're so excited about being able to do some simple tasks and they don't know enough to see why the additional capabilities might be very powerful for more complex tasks (or helpful for the simple ones).
A Prop Protoboard is not a good comparison. Look at the thread on the A.S.C. (Arduino Shield Compatible) board. This was designed specifically for compatibility with existing Arduino Shields and to be functionally similar in capabilities to an Arduino.
I can get an Arduino Duemilanove for about £18, including postage. A Propeller USB Proto board will cost me £36 + postage. Arduino programming is very easy using what is, basically, C++, whereas the Propeller uses the very non-standard Spin language, and assembler is often required. I still maintain that the Arduino is more suitable for the stated application.
USMCinfinity:
There are several things you can do with the Propeller that can't be done with the Arduino: TV and VGA output, for instance.
Well, with a DIP Prop, an EEPROM an XTAL, a few decoupling caps, 3.3v regulator and a handful of resistors on a piece of perf board you can TV PAL/NTC and/or VGA graphics demos working in no time. No coding required just download the demo software.
After that it's easy to use the video objects for your own applications.
Actually you don't even need the EEPROM if you are just demoing programs loaded from the PC.
Well, without a lot of modification, one can output graphics to several display devices.
That's tough to do on other chips.
Honestly, I don't know that it makes sense to challenge the decision status quo. A whole lot went into that. However, it may very well make sense to "overdo" a few projects, or really do one very well and quickly, and then show 'n tell.
From there, you might gain a few fellow propheads, and life is good!
The Arduino and Propeller are both tools for teaching. The question is what is being taught. The Arduino is a modern traditional microcontroller platform with a single 8-bit MCU with onboard I/O hardware (i.e. UART, ADC) typically programmed in C. The Propeller has eight 32 bit cores with shared memory and non-dedicated I/O typically programmed in SPIN or PASM (although C compilers exist).
So if the objective is to learn traditional microcontroller use & programming, then go with the Arduino. The power of the Propeller is in it's flexibility, deterministic behaviour (no interrupts), and the ability to dedicate entire 32bit cores to a single task.
Maybe you can do a class presentation, showing off a Demoboard or Backpack.
I think it would have been closer to compare the Arduino to the SX line (SX28, SX48, etc). That is what Parallax offers in the 8-bit space. I still use the SX28 and SX48 for many projects but may look at possibly using the Atmel chips as a future replacement (for small SX projects) now that the SX chips are EOL.
The processor/platform selection really depends upon what you want to do. For simple projects and small intelligent peripheral devices the SX or Atmel chips make sense. However if you need to do anything more complicated then the Propeller becomes very attractive.
It's been mentioned that a strong point of the Propeller is the Video (both TV and VGA out) but I think it is also important to mention how easy it is to add others as well. There are already objects for Keyboard, Mouse, multiple Serial ports, etc. which can easily be added and used all at once. With just a few add on components people have created entire retro computer systems that aren't really feasible to attempt on the Arduino.
You people are missing the greatest advantage to the Propeller: Parallax! Do you have someone that you can call with your Arduino questions? I doubt it. How about educational material? I've seen no evidence of it. Odd chip behavior? Good luck with that one. Parallax actually invites teachers in to teach them how to teach. They know how to work the educational system. They have systems and kits, and educational material. Arduino is mostly third party.
This is not to say that there is no help available for the Arduino. They do have a forum. But I doubt that you could reach the designers of the chip and software, and get help directly from them.
If I was paying for an education, I wouldn't want to limit myself to one system. The Arduino could be a distant memory in 15 years. Learning spin is not hard, and is actually an advantage - like learning a second language, it opens your mind. Who knows how long C will be around? The real world runs on a variety of CPUs, so limiting yourself to Arduino and Windows is like putting "lazy" on your resume. It may be better than nothing, but why limit your future that way?
Advantages of Arduino: Cheap. Arduino programming environment hides much of the complexity of AVR C compiler and AVR chip. Language is basically C and most educators have been exposed to C. Has ADC built in.
Advantages of Propeller: Much more powerful. Almost any pin can be used for any purpose. Hub ram can be either program code or variables. No interrupts. And many more.
After the Vietnam war and American officer said to a North Vietnamese officer, "You never defeated us in battle." The Vietnamese officer replied, "That is immaterial." The Arduino is good enough for the introductory microcontroller course. You can read buttons, light LEDs, control a motor/servo, play a tone on a piezo buzzer, read a pot or write to an LCD. The fact that it cannot do lots of things that a Propeller can do easily doesn't matter because those things are not lab assignments.
What should a Propeller lover do? Build the projects that turn you on. Show them to your friends, teachers, club members, etc. Even better, get it published in a magazine, news letter, or web site. Eventually, they will see that the Propeller is a great chip.
My experience has been that people think that if the Propeller is so powerful, then it must be too hard for mortals to use.
I second John Abshier. There are lots of good platforms out there and the Arduino is a sensible one for this sort of class.
Another nice advantage of the propeller, besides the ones mentioned already, is really the amazing object selection for almost any task. They are easy to use and multiples can run in different COGs - I'm looking at a project that drives 4 buffered serial ports in one cog, and runs two video displays simultaneously. Not bad for an $8 chip!
Parallax does have some work to do to recapture their prior dominance in the education market. They would do well to follow through on the parallax mini-C for propeller tool that translates ANSI C to SPIN (often C is an academic requirement) and consider a graphical language for free like 12-blocks (which isn't free). I know a lot of the engineering pro types don't liket the mini-C but it really may help with academic market penetration and enticing students.
Also a new generation propeller board of education (based upon proto board) at a reasonable price wont hurt either. I love those proto board 5 packs!
USMCinfinity: For you app, I presume you want to log to a microSD card. Easy with the prop as there are no interrupts to deal with. Want to interface to a ZigBee - easy. I presume Bluetooth will not go the distance, but at ~$2 for a miniature dongle and the USB code - relatively simple.
For debugging, use 1pin TV and a cog (put debug writes in your code).
PASM is easy compared to AVR asm if you have to go that route.
However, the Arduino shields are cheap and plentiful. So perhaps the Prop ASC is the way to go.
The one thing I can say, is that interrupts are a nightmare for newbies to understand. I mastered them in 1976 s no problems here. I am glad to be able to forget them in the prop.
The prop does not really have ADC. But in its defence, every pin can be made to do "almost" anything, and any dedicated hardware such as UARTs etc are soft in the prop. SO if you want 16 serial ports you can have them.
I designed the Propeller Platform for my Nuts & Volts column to make my writing life a little easier, prototyping easier, and as an enticement to those who think the Arduino and its shields are neat.
FWIW, at EFX-TEK we built the AP-16+ (see back cover of October N&V) using the Propeller -- it plays stereo (WAV) audio, can scan multiple inputs, has multi-color LED control for status, can listen and respond to a control serial port. I'd love to see this done with an Arduino (not saying it can't, but will be very very difficult).
Nick McClanahan (www.gadgetgangster.com) makes the Propeller Platform (a couple of variants, actually) and several modules. As a plus, the standard P/P uses the ExpressPCB miniboard so creating custom "shields" is a breeze.
I think the main attraction of the Arduino is that it's an all-in-one solution that doesn't require much actual electronics experience. It's powered from USB, so no need for separate power supplies and no chance of frying the board by using the wrong supply. With Arduino, you just plug it into USB, slap the shield on top (no chance of hooking parts up wrong) and then write some code. In other words, the only real "hard part" is writing the code. Not much else can go wrong or get damaged. Having built-in ADCs and user-accessible non-shared EEPROM doesn't hurt either.
The Prop is obviously much more powerful, and I personally don't see any problem with the Spin language at all. I've programmed in BASIC, Pascal, C, C++, C# and Java. It took me about an hour to pick up the structure and vocabulary of Spin. For a brand-new programmer, I think Spin would actually be easier to learn than the Arduino dialect of C.
The best thing for Propeller adoption in education would probably be an all-in-one USB powered board that has on-board RC networks for ADC and that accepts some type of plug-in module ("shield") rather than requiring any type of individual component connection. Basically, a Prop board that only requires the student to be concerned about code and makes all of the electronics "idiot-proof".
The best thing for Propeller adoption in education would probably be an all-in-one USB powered board that has on-board RC networks for ADC and that accepts some type of plug-in module ("shield") rather than requiring any type of individual component connection. Basically, a Prop board that only requires the student to be concerned about code and makes all of the electronics "idiot-proof".
You have just described the Propeller A.S.C. (Arduino Sheild Compatible) board. See this forum.
One thing I don't understand why people always write that "Arduino programming environment hides much of the complexity of AVR C compiler and AVR chip."
In my opinion it is disadvantage in teaching PROCESSOR technology.
In best case You can teach only very SIMPLE set of "C" language.
Advantages of Arduino: Cheap. Arduino programming environment hides much of the complexity of AVR C compiler and AVR chip. Language is basically C and most educators have been exposed to C. Has ADC built in.
Advantages of Propeller: Much more powerful. Almost any pin can be used for any purpose. Hub ram can be either program code or variables. No interrupts. And many more.
After the Vietnam war and American officer said to a North Vietnamese officer, "You never defeated us in battle." The Vietnamese officer replied, "That is immaterial." The Arduino is good enough for the introductory microcontroller course. You can read buttons, light LEDs, control a motor/servo, play a tone on a piezo buzzer, read a pot or write to an LCD. The fact that it cannot do lots of things that a Propeller can do easily doesn't matter because those things are not lab assignments.
What should a Propeller lover do? Build the projects that turn you on. Show them to your friends, teachers, club members, etc. Even better, get it published in a magazine, news letter, or web site. Eventually, they will see that the Propeller is a great chip.
My experience has been that people think that if the Propeller is so powerful, then it must be too hard for mortals to use.
What makes the Prop stand out (for me) are the types of applications you can do with it - projects you can really get excited about: video, advanced audio, easy multi-tasking. With the AVR, I've always felt like, "All this effort to do so little." Interrupts, toolchains, ughh...
When I use the Prop, I think "That's all it took to do XXXX!?!" The Prop can do projects that get your imagination running and it's designed to be easier to succeed.
If the goal of the class is teach programming while fostering learning and getting people excited, I think the Prop is a better choice. If the goal is to learn C, the Arduino is fine. But multi-core isn't the future, it's the present. Learning a multi-core architecture should be important, too!
In a way I agree that "hiding complexity" is a disadvantage at some point.
But when introducing micro-controllers to someone who has never seen one before and never done any programming I think it's quite reasonable to hide the complexity. That introduction should be understandable and have a working result without having to worry too much about all the language details, all the syntax, header files linkers, loader etc etc. Lets' just get the job done.
Both the Prop and the Arduino have tackled this issue, not so sure about Arduino but from what I have seen so far they both do a good job at it.
Don't forget the Arduino is a actually using C++. They do it a quite clever way, exposing only C++ features to the user that make programming easier. It's best to hide the detail here. I'm sure a full understanding of C++ is a lifetime study in itself:)
Comments
The Propeller is 8-core, 32-bit, in the meantime.
First of all, they're different things. The Arduino is a "platform" that consists of a microcontroller chip (the AVR) plus supporting circuitry with a specific mechanical design (several "reference" designs), and specific software for program development. The Propeller is a microcontroller chip.
There are boards for the Propeller including one using the same mechanical design as the Arduino and extra parts to provide similar features like an ADC. There's a completely different set of program development environments for the Propeller including one (12Blocks + BST or the Propeller Tool) that's intended for beginners and children.
The AVR chip used in the Arduino has features that the Propeller does not and vice versa. It depends on what you want to use it for.
Putting it on the same "situation" which would you choose?
Regarding comparisons ... it's like apples and oranges. They're both fruit, but they're used differently. You can compare them, but it's not very meaningful because the differences in how they might be used matter a lot.
You also have to compare the Arduino to a Propeller + a similar board. You can't just compare the Arduino to the Propeller chip. Remember that an AVR chip by itself is not an Arduino.
A Prop Protoboard is not a good comparison. Look at the thread on the A.S.C. (Arduino Shield Compatible) board. This was designed specifically for compatibility with existing Arduino Shields and to be functionally similar in capabilities to an Arduino.
I can get an Arduino Duemilanove for about £18, including postage. A Propeller USB Proto board will cost me £36 + postage. Arduino programming is very easy using what is, basically, C++, whereas the Propeller uses the very non-standard Spin language, and assembler is often required. I still maintain that the Arduino is more suitable for the stated application.
USMCinfinity:
There are several things you can do with the Propeller that can't be done with the Arduino: TV and VGA output, for instance.
After that it's easy to use the video objects for your own applications.
Actually you don't even need the EEPROM if you are just demoing programs loaded from the PC.
That's how I got my first Prop experience.
That's tough to do on other chips.
Honestly, I don't know that it makes sense to challenge the decision status quo. A whole lot went into that. However, it may very well make sense to "overdo" a few projects, or really do one very well and quickly, and then show 'n tell.
From there, you might gain a few fellow propheads, and life is good!
So if the objective is to learn traditional microcontroller use & programming, then go with the Arduino. The power of the Propeller is in it's flexibility, deterministic behaviour (no interrupts), and the ability to dedicate entire 32bit cores to a single task.
Maybe you can do a class presentation, showing off a Demoboard or Backpack.
The processor/platform selection really depends upon what you want to do. For simple projects and small intelligent peripheral devices the SX or Atmel chips make sense. However if you need to do anything more complicated then the Propeller becomes very attractive.
It's been mentioned that a strong point of the Propeller is the Video (both TV and VGA out) but I think it is also important to mention how easy it is to add others as well. There are already objects for Keyboard, Mouse, multiple Serial ports, etc. which can easily be added and used all at once. With just a few add on components people have created entire retro computer systems that aren't really feasible to attempt on the Arduino.
Robert
This is not to say that there is no help available for the Arduino. They do have a forum. But I doubt that you could reach the designers of the chip and software, and get help directly from them.
If I was paying for an education, I wouldn't want to limit myself to one system. The Arduino could be a distant memory in 15 years. Learning spin is not hard, and is actually an advantage - like learning a second language, it opens your mind. Who knows how long C will be around? The real world runs on a variety of CPUs, so limiting yourself to Arduino and Windows is like putting "lazy" on your resume. It may be better than nothing, but why limit your future that way?
- Mark
Advantages of Propeller: Much more powerful. Almost any pin can be used for any purpose. Hub ram can be either program code or variables. No interrupts. And many more.
After the Vietnam war and American officer said to a North Vietnamese officer, "You never defeated us in battle." The Vietnamese officer replied, "That is immaterial." The Arduino is good enough for the introductory microcontroller course. You can read buttons, light LEDs, control a motor/servo, play a tone on a piezo buzzer, read a pot or write to an LCD. The fact that it cannot do lots of things that a Propeller can do easily doesn't matter because those things are not lab assignments.
What should a Propeller lover do? Build the projects that turn you on. Show them to your friends, teachers, club members, etc. Even better, get it published in a magazine, news letter, or web site. Eventually, they will see that the Propeller is a great chip.
My experience has been that people think that if the Propeller is so powerful, then it must be too hard for mortals to use.
John Abshier
Another nice advantage of the propeller, besides the ones mentioned already, is really the amazing object selection for almost any task. They are easy to use and multiples can run in different COGs - I'm looking at a project that drives 4 buffered serial ports in one cog, and runs two video displays simultaneously. Not bad for an $8 chip!
Parallax does have some work to do to recapture their prior dominance in the education market. They would do well to follow through on the parallax mini-C for propeller tool that translates ANSI C to SPIN (often C is an academic requirement) and consider a graphical language for free like 12-blocks (which isn't free). I know a lot of the engineering pro types don't liket the mini-C but it really may help with academic market penetration and enticing students.
Also a new generation propeller board of education (based upon proto board) at a reasonable price wont hurt either. I love those proto board 5 packs!
For debugging, use 1pin TV and a cog (put debug writes in your code).
PASM is easy compared to AVR asm if you have to go that route.
However, the Arduino shields are cheap and plentiful. So perhaps the Prop ASC is the way to go.
The one thing I can say, is that interrupts are a nightmare for newbies to understand. I mastered them in 1976 s no problems here. I am glad to be able to forget them in the prop.
The prop does not really have ADC. But in its defence, every pin can be made to do "almost" anything, and any dedicated hardware such as UARTs etc are soft in the prop. SO if you want 16 serial ports you can have them.
FWIW, at EFX-TEK we built the AP-16+ (see back cover of October N&V) using the Propeller -- it plays stereo (WAV) audio, can scan multiple inputs, has multi-color LED control for status, can listen and respond to a control serial port. I'd love to see this done with an Arduino (not saying it can't, but will be very very difficult).
Nick McClanahan (www.gadgetgangster.com) makes the Propeller Platform (a couple of variants, actually) and several modules. As a plus, the standard P/P uses the ExpressPCB miniboard so creating custom "shields" is a breeze.
The Prop is obviously much more powerful, and I personally don't see any problem with the Spin language at all. I've programmed in BASIC, Pascal, C, C++, C# and Java. It took me about an hour to pick up the structure and vocabulary of Spin. For a brand-new programmer, I think Spin would actually be easier to learn than the Arduino dialect of C.
The best thing for Propeller adoption in education would probably be an all-in-one USB powered board that has on-board RC networks for ADC and that accepts some type of plug-in module ("shield") rather than requiring any type of individual component connection. Basically, a Prop board that only requires the student to be concerned about code and makes all of the electronics "idiot-proof".
You have just described the Propeller A.S.C. (Arduino Sheild Compatible) board. See this forum.
One thing I don't understand why people always write that "Arduino programming environment hides much of the complexity of AVR C compiler and AVR chip."
In my opinion it is disadvantage in teaching PROCESSOR technology.
In best case You can teach only very SIMPLE set of "C" language.
When I use the Prop, I think "That's all it took to do XXXX!?!" The Prop can do projects that get your imagination running and it's designed to be easier to succeed.
If the goal of the class is teach programming while fostering learning and getting people excited, I think the Prop is a better choice. If the goal is to learn C, the Arduino is fine. But multi-core isn't the future, it's the present. Learning a multi-core architecture should be important, too!
In a way I agree that "hiding complexity" is a disadvantage at some point.
But when introducing micro-controllers to someone who has never seen one before and never done any programming I think it's quite reasonable to hide the complexity. That introduction should be understandable and have a working result without having to worry too much about all the language details, all the syntax, header files linkers, loader etc etc. Lets' just get the job done.
Both the Prop and the Arduino have tackled this issue, not so sure about Arduino but from what I have seen so far they both do a good job at it.
Don't forget the Arduino is a actually using C++. They do it a quite clever way, exposing only C++ features to the user that make programming easier. It's best to hide the detail here. I'm sure a full understanding of C++ is a lifetime study in itself:)