Parallax’s Basic Stamp is the mainstay for hobbyists wanting to add intelligence to everyday devices. A new system called Arduino provides the benefits of the Basic Stamp at a greatly reduced cost, increased speed, and is entirely open-source.
A Little Background
Tiny computers surround your life. In your coffee maker, remote control, vacuum cleaner, telephone, and clock radio, these little computers (aka microcontrollers) are getting smarter and cheaper and becoming more pervasive every day. They can be had for less than a dollar. And you can program them as easy as you can write a web page.
To program microcontrollers in the old days (i.e. a few decades ago), the requirements were an expensive development environment costing thousands of dollars and a professional electrical engineer. In the early 1990s, Parallax had the idea of embedding a simple BASIC interpreter on a microcontroller, mounting it on an stamp-sized module, and providing lots of add-on devices, excellent documentation, and example circuits and code. The friendly Basic Stamp created a whole new market of hobbyist-oriented microcontroller devices and the standard by which other such devices are judged.
The reasons why the Basic Stamp was a hit are obvious in retrospect. BASIC is an easy computer language to pick up. People without knowledge of computer programming can pick it up quickly. Parallax’s wonderful examples showed how with just a handful of extra parts and a few lines of code you could create all manner of smart objects. In an afternoon you could create your own robots, games, data collectors and toys. In the process you’d learn about microcontroller techniques.
Basic Stamp Issues
The Basic Stamp does have a few downsides:
- Expensive — The Stamp itself is $50 and to program it you really need a development board for another $70. Even without the dev board, a $50 part makes you reluctant to use one for every room of the house, let alone for every appliance in your house.
- Slow — The Basic Stamp re-interprets your BASIC program each time it’s run, placing a limit on the fastest it can do things. Time-critical are beyond its capability.
- Low Memory — There’s not much room in a Basic Stamp for anything but simple programs.
- Closed — If you want to modify the BASIC interpreter in the Stamp to add new commands or remove the ones you don’t use, or even learn how it works, you’re out of luck. It’s closed nature meant for the longest time only Windows PCs could program Basic Stamps.
Enter Arduino
Arduino solves most of the above issues with the Basic Stamp. The most noticable is cost:
Getting to the “Hello World” of microcontroller projects, the blinking LED, on Arduino costs $32 compared to the $119 for a Basic Stamp. This is perhaps a little unfair because the Basic Stamp board contains a full bread-boarding space. A similar setup for Arduino would cost about $60, still a 2x savings (and can made cheaper if you want). A more telling cost comparison is the “consumable” cost. If you accidentially blow out the chip on each board how much does it cost to replace it:
The standard Atmel AVR ATmega8 chip used on the Arduino board can be obtained for less than $4. The Basic Stamp must be obtained from Parallax and costs $50.
This order-of-magnitude cost reduction opens up entirely new avenues for embedding intelligence. Where before it would be economically infeasible to have a 100-Basic Stamp project, with Arduino and an AVR programmer like the $34 AVR-ISP, you can program as many ATmega8 chips to work with Arduino as you like.
What is Arduino
Arduino is two things:
- A software programming environment, with a GUI and style based off
of Processing, and a packaging of AVR GCC, AVR LIBC, and AVRlib. In many ways the Arduino environment is like WinAVR, but cross-platform. - A hardware board, based on an Atmel AVR processor, arranged in a standardized way. Arduino isn’t restricted to just this board however, and many Arduino-compatible boards have been created
Like the Basic Stamp, Arduino solves in a simple, elegant way the usual difficult problems of microcontroller programming (setting up a working board, talking to the board, making compilable code) With a Arduino board, doing a blinky light “hello world” takes less than 5 minutes. For example, below is the same functioning code for Basic Stamp and Arduino.
Basic Stamp | Arduino |
---|---|
'{$STAMP BS2} '{$PBASIC 2.5} OUTPUT 14 DO HIGH 14 PAUSE 1000 LOW 14 PAUSE 1000 LOOP |
int ledPin = 13; void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000); } |
The differences are minimal. However unlike the Basic Stamp, with Arduino you can use real GCC C code to implement your algorithms and access all the hardware of the AVR chip.
Go Forth and Hackify
Try out Arduino. Go to SparkFun.com and buy an Arduino board, then download the software and start playing. Check out the many examples or visit the playground to see how people are hooking up their Arduinos to the world.
Note the above thoughts are not unique to me. Several others have made similar observations. Tom Igoe of ITP, especially, gave a much more detailed analysis at the Sketching in Hardware ’06 conference.
Depends on your definition of better, but yes both of those are great systems.
If you require an open-source solution, or something that works with Linux or Mac OS X, then both examples you give are not as good.
Of course, there are even better alternatives than Arduino.
ZBasic used the same AVR chips and boards, but is easier to code.
http://www.zbasic.net/
And Parallax offers the Propeller for $7USD that is their own BasicStamp killer. It even supports color video, keyboard, and mouse.
http://www.parallax.com/Store/Microcontrollers/PropellerChips/tabid/142/ProductID/332/List/1/Default.aspx?SortField=ProductName,ProductName
Hello,
We will kill the expensive Basic Stamp® with the Ami18 Nano version.
This 24-pin and Basic Stamp® compatible module contains the newest XLP PIC18F25K22 (5-volt) PICmicro with 64 Mhz speed! The module is complete with a mini-A USB for programming and comes preburned with a bootloader.
The complete Basic Compiler (IDE) is Free for download !
Best regards,
PICshop
web http://www.picshop.nl
mail info@picshop.nl
The Arduino “variant” of the C/C++ language addresses a few of your concerns, making it much easier to use than traditional C/C++, and having much more the flavor of PIC Basic. But it is still a bit off-putting at times.
“void” is a type, just like “BYTE” and “WORD” are variable types in PIC Basic. One of C’s improvements over Basic is that not only do variables have types, but functions (aka subroutines) can too by the value they return. In many cases, you don’t need your function to return a value, so you say that it has a “void” return value.
The particular typographical concern you have about curly braces are just the punctuation of C/C++. It’s very familiar anyone who’s dabbled in the predominate languages of the last 15 years: PHP, Java, JavaScript, ActionScript, Perl, PHP, C#, C/C++. Of the modern popular languages, only Python and Ruby lack curly braces to indicate clauses (and Ruby still uses them in many cases) In many ways, Arduino was written for those people with at least a passing familiarity with these languages (from say, writing their own web sites)
But you are correct, Basic is easier to use when just starting out. The problem is that it’s easy to hit the wall, both performance-wise and code complexity-wise, with Basic. Arduino tries to be as similar to Basic as possible without having that wall.
oops, meant I “now” code in those languages, and from the example, it looks like you do not have to define the procdure first in one section and then use it in another.
Is there an alternative programming language or ar you stuck with C? I see this as a major disadvantage to the Arduino and a telling point of its academic origins. A basic language is MUCH easier to use. And I also coded assembly in the 1970’s which is harder in some ways, but easier in others, and not code in C#, VB, and Delphi. All other languages are very similar except for slight syntax changes, C is completely different and a very difficult language. What the hell is “void” for example and how does that make any sense compared to “sub” or “procedure”? And forcing structure like having to define a procedure before calling it and having to use braces is awkward, error prone, a waste of time, and a waste of memory.
“I’d love to see some good “getting started” examples of how to use Propeller chips…”
Try the Propeller Education Kit Labs: http://www.parallax.com/go/PEKit. PDF and code are free downloads, and also included in the free Propeller Tool Help system. There’s also a Spin tutorial built right into the Help.
A good book is “Programming & Customizing the Multicore Propeller Microcontroller: The Official Guide” which is available on Amazon:
http://www.amazon.com/Programming-Customizing-Multicore-Propeller-Microcontroller/dp/0071664505
To me the Propeller and Spin was easier to understand and use than the Basic Stamp and PBASIC. I started with PBASIC and was afraid to even use the Propeller; I even got an ArduPilot running the ATMEG328 to do my project. But in the last couple months I started using the Propeller and man, I should have used this all along! Its power and multicore processing can be intimidating but start using it and you will soon see that it’s a snap to work with and Spin is easy!
This is a good Q&A link about the Propeller:
http://www.parallax.com/portals/0/propellerqna/
The Propeller is a great chip and incredibly powerful. The main thesis of this post however was to compare beginner-level microcontroller platforms. The Propeller’s power makes it difficult for those new to microcontrollers. (its multi-core arrangement and proprietary Spin language makes it difficult even for seasoned pros) And this post was originally written in 2006, before the Propeller was really available.
I’d love to see some good “getting started” examples of how to use Propeller chips, if you know of any, please add some links in the comments.
I think xvector had a good point.
Also, why would you compare the Basic Stamp? When a better comparison would be the Parallax Propeller Chip? The capability blows away the ATMEL chip the arduino uses and is only a $8 chip. Have you looked into that?
xvector, I am comparing equivalent kits. Specifically, I was comparing the generally recognized “first kit” used by people getting started. At the time this post was originally written, that was the Parallax Board of Education kit at $119. Now it’s $99. The BoE-Bot kit is $150. Both of these are much more than the $32 (actually now $30) for an Arduino.
And the Arduino has gone from 8kB to 32kB of program space in that time period too, while the Basic Stamp 2 is still $49 and only 2kB of program space.
But you are correct in that my first comparison comparing the costs of the minimum components needed. For the Arduino side, you can get ATmega168s for $3.30 to make a minimal Arduino. Similarly, you can get the Basic Stamp 2 interpreter chip for $17, 2kB EEPROM for $1.10, and 20MHz resonator for $0.99 to create a minimal Basic Stamp 2 for $19.
And yes, the BoE-Bot is a great kit. I’ve used it and it’s a great way to get people started with microcontrollers, because robots are so cool. For anyone interested in robotics, definitely take a look at it, the book that comes with it covers a lot of good robot fundamentals
When you compare the cost of the two kits, you go wrong. You need to compare the equivalent kits.
The $119 Basic Stamp kit gets you a Boe-Bot, and a getting started book. For anyone new to micros you can’t go wrong with a Boe-Bot kit.
If you want a basic stamp, they’re available as OEM for less than a dollar :)
Also visit http://worldofmicrocontroller.blogspot.com/
Hi…check out this project. Programming arduino has never been so easy!
http://www.youtube.com/watch?v=l_IYlDbBlEs
And Lego nxt also!
http://www.youtube.com/watch?v=AA1DMef4cwI
Have fun!
Hey all,
I’ve been working with PIC18 microcontrollers, and I was wondering what all the hub-bub was about over the ardunio… the answer is the in-circuit debugger.
You can buy individual PIC chips ($5)and use a JDM programmer ($15) and then the IDE and c compiler are free. The only downside is their in-circuit debuggers are closed source and cost a hell of alot.
On the upside, there is a pic simulator in the IDE which works very well, but it is just a virtualized chip.
all in all, I still love the PIC18 chips ; )
“C/C++ is a very difficult language to learn, especially for us who learn 68K or x86 ASM back in the day over 15-20 years ago.”
So, you learned ASM and think C/C++ is difficult? Interesting.
But, as noted, if you know one language and it does what you want, don’t bother with others.