PDA

View Full Version : Atmel Ardunio Mega vs. Propeller



John Board
03-13-2012, 02:00 AM
G'day chaps,

Been working on a robot, and had some trouble with the board, looking into getting a different one, which is better, ardunio mega, or propeller. The ardunio has the advantage in my mind because of its "simplistic" programming compared to the prop, however, I've never used it before, so I have no idea of the speed of it. As for the propeller, nice chip, but I always seem to have problems with it, I would generally go for it because of its multi cogs, but I'm just wanting to find an easy to use, and reliable board. Which would you say is better?

-John

jmg
03-13-2012, 02:08 AM
... had some trouble with the board...

Is rather too vague....

What sort of trouble ? If you describe where was it weak, and what areas do you need 'more muscle' in, you will get better replies

John Board
03-13-2012, 02:30 AM
http://forums.parallax.com/showthread.php?138545-Prop-Unexpectedly-Restarting

Phil Pilgrim (PhiPi)
03-13-2012, 02:47 AM
John,

Any time you use a microcontroller - regardless of what kind it is -- to actuate a load like a motor, you run into potential issues relating to load transients. This requires careful attention to the basics of wire routing, bypassing, and filtering, all things that switching micros will not address. I'll take another look at your thread and see if anything stands out.

-Phil

Mike Green
03-13-2012, 02:49 AM
The problems you've previously discussed here have nothing to do with the processor and everything to do with your power supply design and construction. You will run into the same noise / transients problems no matter what processor you use. Once you fix those, the choice of processor is more determined by what you're comfortable with and what sorts of things you want to do with it. The Atmel Arduino Mega is perfectly fine and has a nice, easy to deal with programming environment. The Propeller is potentially more powerful because of its raw speed and multiple processors. It also has a variety of both free and cheap programming environments, everything from C to Spin and the Propeller's assembly language to a graphical programming system called "12Blocks" that is translated into Spin and is designed for children of all ages to use. There's a nicely done FORTH system and a simple Basic interpreter as well as a Basic dialect compiler. There's a cheap debugging environment called "ViewPort" that also lets you monitor I/O pins ... very useful if you're doing any kind of signal processing since this can look like a logic analyzer or oscilloscope.

John Board
03-13-2012, 02:54 AM
My problems with the prop have appeared to stop, never the less, I would still like to know the difference between the Prop and the Ardunio Mega, speed, EEPROM/FLASH, and RAM, etc. Which is the better of the 2?

Thanks,

-John

[EDIT] Didn't realize that you had responded to my forums before posting this thread, sorry.

Mike Green
03-13-2012, 03:15 AM
You really can't directly compare the two because of the multiple processors in the Propeller and the way memory is used, particularly with Spin. The Propeller has 32K of RAM memory where compiled Spin programs and their data are stored. Each cog (processor) has its own 2K of memory that normally holds the Spin interpreter or may hold an assembly program. There's no Flash on the Propeller chip, but essentially all Propeller boards or modules have 32K or 64K of EEPROM. The program that runs when the chip is reset comes from the 1st 32K of the EEPROM. Any other EEPROM space can hold data or other programs. The Propeller also directly interfaces to a standard PC-compatible SD card (or micro SD card) which can be used for programs and data. The Propeller's standard clock speed is 80MHz although it can be run faster (like 104MHz) with proper board design. Instructions take 4 clock cycles, so that's 20 million instructions per second (MIPS) per cog and all 8 cogs can be running at the same time. Spin is interpreted and, like most interpreters, runs maybe 20 to 40 times slower although a lot of the "instructions" are more powerful than the native Propeller instructions. There are other compilers that compile directly into the native instruction set, but the cog memory size limits the utility of them. Some compilers, like those for C, compile into a much faster, but more memory intensive interpretive code. It depends on your needs.

Remember that "better" depends on what you want to do with them, how comfortable you are with the various development environments, what kind of support is available, etc. There is no "better" out of context.

I've used an Arduino before and I've used lots of Propellers. I've also used many other microcontrollers, microprocessors, microcomputers, etc. over many years and I like the Propeller. Its design is clean and very well thought out. It's well supported and there's a large library of ready-to-use code. It can be programmed at a beginner's level and at a very expert level, particularly in terms of signal processing and fine control of I/O. I like the fact that it has built-in video hardware so you can connect a display (VGA or TV) with only a few resistors. You can also connect a PS/2 keyboard and/or mouse to it with only a few resistors.

Kye
03-13-2012, 04:13 AM
Look at your system and think carefully about how many different things you will be doing at once. A lot of high speed activity will choke the Arduino. The propeller though can handle multiple high speed things happening at once. You must decide your application first and then choose your tools for it.

photomankc
03-13-2012, 02:46 PM
You'll be frustrated with these responses but the question you asked is akin to saying "I need a place to live, house or apartment, which one is better"? We can't answer better. The specs are out there to look at. The Arduino is a single processor running at I believe 16MHz. It has the standard interrupt architecture to handle spurious events and depending on the board has more or less RAM/Flash. It has more I/O than the Propeller and some built in hardware level handling of SPI / I2C / Serial / Etc. It includes analog to digital and digital to analog right on the board. There is a very simple IDE that's reasonably mature for it. Once you start needing to do several things at once you're going to start bumping into the walls pretty quick.

The Propeller is 8 cores running at 80MHz. It has no notion of interrupts instead focusing on using a core to service the needs of other hardware. There is no dedicated hardware for common protocols like SPI / I2C / Serial / Ect. There are a number of languages available in various stages of maturity and it absolutely shines where there is a need to handle multiple events simultaneously. The SPIN language is easy to learn and quite powerful but will execute more slowly than most Arduino code, Propeller assembly on the other hand will run circles around it and the C flavors available would be close match if not a bit faster.

There is no definitive 'better'. If you need something that deals with a couple A/D conversions, or needs 36 I/O and interfaces to a bunch of 5V logic then the Arduino may fit perfectly and involve building or purchasing less support hardware. If you need to simultaneously sample 4 sensors, calculate results, control a motor, and update an LCD or TV the Propeller may be a natural fit to that where it would eat the Arduino alive.

Your reset issue, as has been pointed out, is a matter of design. Ask yourself, looking at the various robots being created and driven around Propeller boards is it reasonable to assume that a motor can't be used with it without it reseting? Were that the case people would be screaming. The answer is simple, the power supply is likely inadequate to startup load of that motor. I have been there too, you just KNOW that it isn't your circuit, it's got to be this #$%@ board. Almost every single time though..... yeah, it's your circuit.

Martin_H
03-13-2012, 03:20 PM
Another point to consider is how comfortable are you building custom circuits? The Arduino and Arduino Mega are five volt devices and there are shields for many common applications. Most of the schematics you'll find online assume a five volt microcontroller because they are more common. The Propeller is a 3.3 volt device, so you need to tweak circuits to make them compatible. This isn't that hard, but you need to be aware of it.

However, many of the Linux single board computers are also 3.3 volt devices and interface quite nicely with the Propeller.

mindrobots
03-13-2012, 03:28 PM
There's also Martin Hodge's wonderful Propeller ASC which gives you a Propeller micro-c in an Arduino shield compatible footprint. (This would be the Condo or Cluster home solution to the House/Apartment question) :smile:

http://mghdesigns.com/

Options abound!!

Phil Pilgrim (PhiPi)
03-13-2012, 03:29 PM
A further consideration: the photos in your other thread hint at a number of Parallax peripherals. Most of these already have code written for them for the BASIC Stamp and Propeller. Moreover, if you have issues with that code, you can come here for help. Were you to switch to an ATMega, you might have to start over on the coding, and the availability of knowledgeable help conversant with the Atmel processor and the Parallax peripherals would dwindle considerably.

-Phil

Duane Degn
03-13-2012, 11:33 PM
Most of the schematics you'll find online assume a five volt microcontroller because they are more common. The Propeller is a 3.3 volt device, so you need to tweak circuits to make them compatible.

This seems to be changing fast. I think 3.3V will soon be more common (though I'm not willing to bet on it).

I've found very few 5V devices that don't work will with the Prop. But you're right, it does take a bit of a tweak (usually just a resisitor).

prof_braino
03-14-2012, 12:19 AM
which is better, ardunio mega, or propeller. Which would you say is better?

It depends on what you want to do with it. While there are applications where a single core processor (and various peripheral implemented in hardware on chip, etc) is the best fit, the prop is great as an all-around development platform. The prop has been overkill for pretty much everything I've tried to do on a microcontroller, somebody else can pare the application down for a smaller processor. Also, I tend to use forth, so after I get above the kernel level (or the hardw specific features), the language is pretty much the same on any processor.

I pretty much use the prop for everything. I would only need to move to another device if I started mass producing something and needed to save a dollar on each processor.

stargazer2050
03-19-2012, 03:55 PM
Arduino is hardwired in a loop!#?# good luck with that (requires qp software to do event programming)

Thats why im here in parallax land (itll be great when somebody figures out how to get my quickstart to get recognized on any com port)

Mike Green
03-20-2012, 02:25 AM
@stargazer2050,
The QuickStart board uses an FTDI USB to serial interface chip. You have to have an appropriate driver installed on your computer. If you're using Windows, the default driver won't do the job. You have to have FTDI's driver. Best thing to do is to download the most recent version of the VCP (Virtual COM Port) driver (http://www.ftdichip.com/Drivers/VCP.htm) from FTDIchip.com and install it with the QuickStart board not plugged in. Plug in the board after the installation is done. It should work. Make sure you have a good USB cable between the QuickStart board and your PC. You'd be surprised at how often there's a bad USB cable. If you still can't get it to work, call Parallax Tech Support. Often the problem is something that's better worked out over the phone than by using a support forum. The QuickStart board design is good and I've not had any problems with any of the software (USB driver, Propeller Tool on Windows or BST on Mac or Windows).

stargazer2050
03-20-2012, 09:36 PM
Hi mike

Swapped the bd and cable at radio shack and it worked then froze in five times.
Called tech support, told to lower latency below 16 in hardware advanced and go to ftdichip.com and get latest
vcp's its workin now.

You are right on! (and now that you said that I believe it will work tomorrow.
Thankyou.

Mike Green
03-20-2012, 10:04 PM
You'll do fine. Attached is a picture of my QuickStart board in an Altoid's tin. There's a little hole punched in one side for a USB cable and a little breadboard glued to the lid.

Note that the first USB cable I tried would power the board, but the board wasn't recognized. This was one of those nice looking retractable cables. I switched over to one of the USB cables that Parallax provides and it worked fine.

JonnyMac
03-20-2012, 10:12 PM
Attached is a picture of my QuickStart board in an Altoid's tin.

Nice recycling, Mike!

PJ Allen
03-21-2012, 02:47 AM
When in the title for a subject and three times in two posts someone has it as 'ardunio', I can't help but figure there's a critical lack of attention to detail.
It's the same way with wires.
Getting the details is the difference between success and failure.
No matter the platform, if you can't get with the programme then you're just wasting your time.