Arduino or basic stamp

For my senior design project to graduate college, I am going to be making a microcontroller drive a few relays, a solenoid and maybe a few other devices. Inputs to the system will be some motion sensors, and maybe a signal from an RFID reader. I am an electrical engineering student, and while i have taken a class in C++ programming, that was a long time ago. The two controllers that I have been looking at have been the Arduino and the Basic Stamp. I am unsure which one to get for my project, and was wondering if i could get some help in deciding.

I would say Arduino. Better support, cheaper chips and much more functionality.

On a price/performance basis the Arduino wins hands down in my opinion. However both would probably handle your application as it does not sound like it needs top performance. So it my come down to your willingness to refresh your C/C++ knowlege or if you think that the Basic programming language would be quicker for you.

Again I vote Arduino. :wink:


I use basic all the time with my ubw32, its much more of a pain in the ::slight_smile: than c for anything but the most simple programs

I would use arduino, the language is more flexible, not THAT much more difficult if your just starting one over the other, its cheaper, more powerful and if you get sucked in the language can get real at any point for complex situations

remember were using a boiled down noobie friendly system that happens to be in C, not the other way around

Last I checked, if you want to program the Basic Stamp you have to program without procedures or functions, and work with only a few dozen bytes of RAM (depending on model).

The educational resources available for the Stamp are great, but programming it for any sizable project is a challenge.

Something else to keep in mind is what your platform for the software development end will be; if it will always be Windows, then great, Parallax’s offerings will probably always work for you.

If you on a Mac or *nix, good luck finding support.

For IA32 Linux, they do have support for the older Basic Stamps, but if you are running 64 bit, there isn’t any support - everything is closed source (plus, they don’t even have the source code for the Linux port of the PBASIC compiler, nor is the programmer anywhere to be found), only binaries available.

This is what “pushed” me in the direction of the Arduino; the fact that it was completely open-sourced meant that I would never be stuck on a certain operating system (or version) for my dev platform - worst case scenario (ie, everyone abandons the Arduino, Atmel goes out of business, along with a host of other remote possibilities) was that I would just have to update the avr-dude and avr-gcc source code and compile myself.

This same issue is why I use Linux; I don’t want to re-purchase my development tools for many $$$ from Microsoft or someone else just to write code for a computer I own. I don’t want to be orphaned with no support at all. With open-source, I won’t be. I will always have the code.

I agree with Osgeld and Professor Chaos. If the application is very simple, it really doesn’t matter which you use. For moderate or complex applications, the Arduino (C++) easily wins.

I tried building a timer (two LEDs, a buzzer, and a button; basically a kitchen timer on steroids) with the Stamp. I got it working but it was a royal pain in derriere. The same application was much easier to get working (and enhance) on the Arduino.

I am planning on getting the Arduino Duemilanove. I am also on planning on getting these: to drive the relays that i am planning on getting. The trouble is that i cant figure out if the relay drivers will work with the Arduino that i plan on purchasing. I did find plans on how to build my own relay drivers that will work, but i would prefer not to go that route.

They should work fine. An arduino output is essentially identical to the “74HC04 OR EQUIVALENT” you see in the sample application diagrams of datasheet (figure 13)

I’m probably way wrong about my thoughts on this.

I think using an arduino is the right choice. However, the device you are thinking of using for driving relays seems very small. According to the data sheet on the MDC3105, the device is less than a tenth of an inch long, and even less in width, with the terminals being about .075 - .080 inches apart. The device would need to be surface soldered into place. For me, that would be an impossibility. With my fat old hands, I could never pick one of those things up, much less solder one in place. But that’s me, my soldering abilities have much to be desired.
Perhaps you have the ability to work with something that small. (and maybe I’m reading the datsheet wrong)

A question, would a Darlington Array device work for driving solenoids and relays?
That’s just a thought, or question, as I’m not sure. They can be obtained in various sizes and shapes, including in DIP fashion, with pins at least 0.10 inches apart. Even I could work with one of those, but I’m not sure if they could be used for driving relays from an arduino.

Take a look through this list from TI: Texas Instruments datasheet pdf catalog - Page 679
Or this description:

More than likely, I’m wrong about my suggestion. But then, I’ve been wrong about a lot of things ;), and I am quite new in the world of microcontrollers. :slight_smile:

A question, would a Darlington Array device work for driving solenoids and relays?

Yes, it would, provided you sized the darlington array current capabilities to the device(s) you are driving (and added a heatsink as needed) - after all, a darlington array is nothing more than an array of transistors.

As far as soldering SMT components, some can be hand soldered, others can’t; I’ve never actually tried myself, but I intend to. From what I understand, on the small-pitch components, the method to solder is to actually make solder bridges, then suck the excess solder up from the pins with solder braid, cleaning up as you go. The solder under the pins will stay, the solder between will be sucked up by the braid. Some extremely fine pitched devices can’t be soldered this way (not sure whether the device you are talking about falls into that category or not).

I have also heard of using solder-paste and a mask, squegee’ing the paste onto the PCB using a special laser-cut mask (to the pad locations of the PCB) - kinda like screen printing. Then, you place your parts onto these small pads of solder-paste as accurately as you can with tweezers, then pop the board into a special temperature-controlled oven (usually a modded toaster-oven!) or onto a hot-plate (don’t fry your eggs on it afterward!). The board heats up, the solder-paste melts, and surface tension pulls the parts into proper place - it can make for very professional looking boards, but you have to create the mask and have it laser-cut, and they are only good for so many boards before you need to re-do it (this technique seems to be meant for low-yield production and/or final-prototyping before being sent to a PCB fab-house).

the hybrid approach is to just put paste on all the pads much like the flooding method, then bake it

theory goes that the surface tension will pull the pars onto the pads like the template method, but also make the solder pull apart in between

I guess that could work, but now you have all the disadvantages of flood fill and the cost of solder paste (which is kinda expensive)

for me, I dont like dealing with them much, about the biggest package ive done by hand (1 pin at a time with an iron) is a TSSOP

Thanks cr0sh2

Here’s a couple of things to look at, (darlington arraywise)

    Which can be found at

And probably many other places, and there seems to be many varieties of d-arrays.

A place to find mini-solenoids

I’ve got a couple on order. I won’t know much about their worthiness until I get them. I’m trying to think of a project to use them for. :slight_smile:


Here’s something else to read through