Let's Make Robots!

Arduino vs Picaxe

Should I go for Arduino or Picaxe for my next robot?

(EDIT: Please note that this is a very old post, things have changed :)

Let´s compare:

Picaxe run on many different chips, all from the company called Microchip.
They range from 8 to 40 pins, and is available in surface mount as well as ordinary housing
Many different pre-made project boards are available, and not only those made by "The Picaxe-people"; Control 3 servos and some ins- and outs on something smaller than a machbox, at a very small price, and up to large 40 pins projects.
Arduino is possible to do in many stange ways, quite diverse, even add it on a T-shirt etc. But for robots the most applicable would most likely be the 28 pin Diecimila with ATmega168. Only this has no motor driver on it, so you are basicly stuck, unless you buy the komplete motor kit, but then..

The proto board for the picaxe is valued high, it actually makes the difference - you can build a robot just by adding motors and sensors, it is robot-ready!

Picaxe: 2 points


Picaxe can run from 4 to 16 Mhz, but if you plan to use Picaxe Basic, you are best off using 4 Mhz
Arduino runs on 16 Mhz
Although not many robotic projects will have a processor- speed-issue (or they should use co-processors if speed really did matter), and although the Picaxe can run at the same speed, Arduino wins the speed-contest

Picaxe: 0 points
Arduino:1 points


Programming language, posibilities, scalability

The Picaxe language is easy, yet it is quite powerful, and plenty for most robotic useage, and has a wide area of actuators and sensors directly supported.

Arduino is, however, more powerful than the Picaxe set of instructions, supports floating point, is documented on how to interact with all sorts of things. But if you just want to control servos, motors, sensors etc that Robots are often made from (and not MIDI-devices, Symbian Phones etc), Picaxe is a much more focused language. To read a temperature, you will have to write dozens of lines with Arduine, do bugtracking, wiring etc. With Picaxe you merely write "Readtemp and hook up the sensor", same for servo, Picaxe is just "Servo to this and that", Arduino is several lines and configurations.


Picaxe: 1 points
Arduino:1 points


Building speed - time from you recieve your materials till your robot is working:
Picaxe is "plug and play" - you get up and running in no time, all included. The language is so easy, your dog can code it, yet it is quite powerful, and plenty for most robotic useage.
Arduino an open source project - you will spend a lot of time before you get from 0 to 100, all included, and waiting for all the packages. The language takes some time to get into, is based upon Alpha software, it is more complex than Picaxe basic, which is in version 5.

Picaxe: 1 points
Arduino:0 points


Number of servos controlled and other perperials:
A picaxe 18 (smaller than 28!) can control 21 servos on a standard board

Picaxe uses one-liners to communicate with servos, serial, I2c and every other protocol used for typical electronics and robot-building

Arduino can "only" control "up to 20" servos, and uses more complicated code for doing the same protocols.

Picaxe: 1 points
Arduino:0 points



OS for programing-platform:
Picaxe is supported on Mac OS X, MS, and Linux.
Arduino is supported on Mac OS X, MS, and Linux (with some tweaking)
For a wider selection of platforms, Arduino wins.

Picaxe: 1 points
Arduino:1 points


Price, pre-made protoboard with chips included:

Picaxe 28 pin, incl darlington & Picaxe 28X £16.01 (inc. VAT)
Arduino Diecimila 28 pin incl ATMega168 £18.51 (inc. VAT)

Picaxe: 1 points
Arduino:0 points



Picaxe: 7 points
Arduino: 3 points

Conclusion must be that Arduino should be used once the cheaper and faster to get started with Picaxe is no longer enough for your creations, but only if you want to do some more hard-coding to peripherals and soldering yourself.

Of course, if you just hate Basic, there is no option in Picaxe!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Yes, this is an old section.  It probably needs updating since I know the PICAXEs are much better now, but I do not know about the Arduinos.  For instance,

picaxes can now use clock speeds up to 64 mHz. (8mHz. or 16 mHz. defaults internal);

touch sensors on all ADC channels;

support for RFin and RFout for Manchester-encoded wireless radio;

4 PWM & 4 HPWM channels on 28 pin parts; (one overlap pin has both, so 7 total)

SR latch;

internal voltage reference with two internal voltage comparators;

DAC output modules;

more ADC channels with individual ADC pin masking. (up to 27 on the 40-pin chip);

The new 28 pin chips (28X2) have a broader voltage range (2.1 to 5.5 volts, or 1.8-5.5 volts on the 20 pin version);

multiple hardware interrupt pins;

1280 bytes general user RAM (1024 scratchpad memory & 256 bytes general RAM for variable);

up to 4 different internal program slots of 1024 lines of code each (only 1 on the 20 pin chip);

and up to 4 different program slots in each i2c memory chip added for a total of 32 external programs available;

servos operate at 8 mHz. or 32 mHz.

DOZE command added similar to SLEEP, but with peripheral operations maintained.


I think there may be other things I missed, but that gives you the basic idea of what the picaxes can do now.

As I said, I do not know what the Arduinos have been brought up to in these areas, but with the picaxes being cheaper, the winner in my mind is still the picaxe. ---What can't they do? They cannot do floating-point math. If you need that, then picaxe is not for you.

I think the conditions have changed and there is a new solution USE BOTH! 

I plan on tinkering with the PICAXE 18M2 for a while (and I also love the Arduino!) 

Here is (one) of my ultimate ideas (I have even more! :-)

I think a modern robot needs all the processing help it can get, my idea is use the tasking capability of the 18M2 to do things like run the motors, drive the servo, keep a lookout for danger and/or whatever you think is useful. KEEP the Arduino as the "main" processor for doing "thinking" that requires more code like route mapping and other "hard" tasks. The "housekeeping" is all done by the 18M2 and you have one super-fantastic robot! There would need to be a (very minimal) amount of info passing between the 18M2 and the Arduino like "hey! the battery voltage is running low!" or "the current sense resistor on one motor is getting hot! (passing more current then usual)"

How could this NOT make for a better, smarter, just plain neater robot? (SparkFun already carries a PICAXE 8 motor controller to suppliment the robots main processor. Apparently the idea works! :-)

(Has anyone done anything like this yet and can you point me in their direction? I need to know more about message passing than anything else to start with.)


Although beyond most of the persons on this forum microEndineering makes a product called PICBASIC Pro (retails for 250 bucks). It's a suite of programs that many professionals use to create software for PIC's. The package has been around for a long time and may well have been the source for picaxe. 

A tiny tidbit on the PIC family of chips. The original purpose was as an interface chip (to allow computers and devices to talk to each other) The name is an acronym for Peripheral Interface Chip. Because they where so easy to program (in very early versions it was refered to as setting up), even at the machine level the product line grew into what is now a kind of microcomputer family.

If you want to program at the machine level it's well documented (and free) but you would require a programmer and that is not. The picaxe system is actually very inexpensive as long as you are doing small quantities. 

In reality I feel that both systems are not very capable when it comes to complex functions (such as computer vision) for which there are some very good and free languages but have massive requirements . However as an interface they are both excellent although the PIC is easier to work with.



Hi People.. Thanx for such a good explanation:):) as PICAXE stuff is nothing else just PIC microchip which is just "tuned" with special internal software which makes it easier to program but decries its power i decided to learn PIC and C or Asembler language.. But now i stucked in between.. In some forums people said that C isnt good enough for programming PIC chips but asembler on the other hand is much more harder... In what sense C isnt good for PIC???

I've never had any issues with programming in C for PIC micros, just make sure you get a decent compiler and/or IDE. If you want to get more answers you should create a new forum topic, that way you'll gt more direct attention from those in the know.

My brain is easily confused with programming and now got some idea. I think I will stay with parallax for a while. I am using a   BS2 but getting ready to jump into the propeller chip this winter. It seems unlimitted and can cover alot. My brain cannot hold too many languages and the Basic stamp is very well documentted. I can tell already the prop is in a world of it's own. By the way your guys english is fine.

I don't really see ANY real advantages of Picaxe.

The fact that you have to write a few lines of code to initialize a servo is hardly an argument unless you really LOATH programming that much. We're talking a few seconds of "work"!!

Regarding motors: Buy a Diecimila (20$) + a motor shield (20$) and you're good to go.

Besides that arduino is more powerfull, flexible in ANY WAY and pretty much as easy to use. In some ways a lot easier..for instance if you wanna calculate something you just do it (Arduino) rather than inventing some workaround to compensate for the fact that you can't (Picaxe). And you don't have to worry about having only 28 bytes (or whatever) of variable space.

Regarding sensor readings: You just write analogRead(<no. of ADC pin>) and that's it.

About servos/scalability: The standard Arduino boards (eg. Diecimila) has 14 digital I/O's, 6 analog in's and can control up to 14 servos. If you want more the Mega boards (goes for down to 40$) has 54-70 digital I/O's, 12 analog in's and can control up to 48 (!!) servos. There are also ways of expanding the standard boards BTW.

Besides that it took me 5 minutes to get the Arduino up and running. The "hardest" part being installing the FTDI drivers so that my USB ports can be accessed as a serial port.

Being a Linux guy (and pro. sysadm/programmer), it took me the same 5 minutes to install and get the LED blinking on my first Arduino. The time you wasted on your FTDI driver I instead wasted on a "kaos in my java setup" issue.

And yes C rules!

HEY - this could be VERY useful to all of us!!

A guy with both BS experience (yes, please do take pictures and give us some hints, I guess you can place it in either components-section or as a walk through) - and who is now going to test both Arduino and Picaxe. That could be marvelous to hear from you!

My suggestion is that you go for the 2 times 28 chips. This seems to be a quite appropriate size; Not too large, but plenty of legs. You ask regarding which Picaxe? Well then this first robot-tutorial should be best source of the Picaxe-setup.

If you want, you can skip the servos, though I recomend that you get the full package. At least you should get the motor-driver, as this on the board is a strong point for Picaxe being "robot-ready" (And I say Picaxe FTW;)

/ Frits

Hey, thanks for the very thorough answer. And don't worry about the English, it's not my first language either (I learned Spanish before English), so I understand. You manage to get your point across just fine :)


That's great about this being a collaborative site. I'll certainly be happy to contribute -- maybe tomorrow I'll take some pictures or videos of the little Basic Stamp-based learning project I'm currently working on. It's funny -- this morning I asked you about variable space in the PICAXE, and then this evening I ran into "ERROR: out of variable space" messages while working on the program for my Basic Stamp. It turns out the BS2 has 26 bytes of variable space, just like the 28X1. I guess limited memory isn't specific to the PICAXE, it's just the name of the game with microcontrollers. Well, I guess now I get to practice simplifying my code :)


Thanks for clearing that up about the PICAXE vs Arduino. The way you describe it makes sense -- sometimes you want the power and capability to implement complex algorithms, and sometimes you just want to hook up some wires and say, "Go get the mail, robot." (or "Run into the wall repeatedly, robot.") :) And although I run Linux on my computer, I can certainly see the appeal of Macs as well :)


So I think what I'm going to do is just order one of each, and play around with each one. It sounds like different ones will be useful in different settings. I'm a little confused by all the different PICAXE options though -- which one would you recommend? You said you use the 28X1. Should I just try that one? Thanks for the input, I'm looking forward to playing with these new boards.