Arduino vs Picaxe checklist

hello,

I am currently using a picaxe 28x1 for a project. It has three devices that communicate using rs232. I have bought a diecimila but have not tried to use it yet but I have found the speed of the picaxe for this project a bit of a burdon, for this project atleast. Before I try to swap out the picaxe for the arduino I would like to clarify a few things.

  1. What is the maximum baud rate and is the serial on the arduino a true serial. Can you have multiple devices.
  2. The picaxe has a 127 byte scratchpad does the arduino have a similar facility.
  3. Is it quite easy to make a circuit board for arduino I.e easily found components to support arduino on board.
  4. Is to possible to deploy new firmware with out having to use the program editor such as just a hex or bin file.

Thanks.

I've used the serial at up to 115200, although I think higher, non-standard speeds are possible. I think you can have multiple devices listening to the same serial connection, but it's not really designed for that. If you want a multi-device bus, you can use the Wire library, which does I2C.

If the scratchpad is memory that keeps its values when the power turns off and comes back on, then yes, the Arduino has something similar: 512 bytes of EEPROM. See the EEPROM library. I like the word "scratchpad".

It should be relatively easy to make a circuit board for the Arduino. The chip itself (ATmega168) doesn't require anything fancy. It's easiest if you use a 16 MHz external clock, but you can also use the internal clock.

You can deploy new firmware without using the editor. The Arduino bootloader speaks the standard stk500 protocol, or you can just use an ISP.

on the picaxe any output pin can be used as a serial output and any input can be used as a serial input is this not the case with arduino? My devices do not support i2c. The picaxe only has 27 bytes of variable space so any serial strings longer than that would be lost. So the scratchpad can be used as ram I guess you would call it. Basically I need the arduino to accept a data string filter that information and write it to a sd card.

on the picaxe any output pin can be used as a serial output and any input can be used as a serial input is this not the case with arduino? My devices do not support i2c. The picaxe only has 27 bytes of variable space so any serial strings longer than that would be lost. So the scratchpad can be used as ram I guess you would call it. Basically I need the arduino to accept a data string filter that information and write it to a sd card.

The picaxe does serial in software which puts extra load on the processor. The Arduino can do this too with the softwareserial library http://www.arduino.cc/en/Reference/SoftwareSerial.

The Arduino also has a hardware USART which handles all all the bitbanging independently of the processor, so you don't need to worry about delaying and much faster speeds are possible. But the USART is only available on certain pins.

I2C is something else.

If the scratchpad is ram, the Arduino has 1024 bytes. This is memory you can use to store variables which is lost when the device loses power. There is also 512 bytes of EEPROM which can be used to store data and is kept when power is lost.

Also to consider. Picaxe doesn't tell you how much program memory is available, but says "about 1000 lines of code" will fit. The Arduino has room for 14,000 instructions.

The Arduino processor has much more processing power (it can do math functions many, many times faster for example).

The Picaxe bootloader is closed, you can't reflash a chip with a corrupted bootloader, you can only buy a new one. The Arduino bootloader is made freely available so anyone with the skill to can restore it if it's damaged. This is just one symptom of the open concept of Arduino, they encourage people to build on it, so even though it's so much newer, there is a huge wealth of add-on libraries and modules people have built for it and made available. Arduino encourages people to clone their work and expand on it. Picaxe makes it impossible to do so.

The C++ style language the Arduino uses is much more flexible and capable than the BASIC-style langue the Picaxe uses.

The software serial on the Picaxe will run at 19k2 on any pin but not particularly reliable I think. It also has a hardware serial port which is independent of the download circuit which is usefull. The hardware serial will write directly to the scratch pad but 1024 bytes is much better than 127. As you say the C style language appears a much lower level language than BASIC so must be more powerfull. Of particular interest is updating firmware without needing the program editor.

Strange that the Arduino is only really designed for one true serial port.

The software serial on the Picaxe will run at 19k2 on any pin but not particularly reliable I think. It also has a hardware serial port which is independent of the download circuit which is usefull. The hardware serial will write directly to the scratch pad but 1024 bytes is much better than 127. As you say the C style language appears a much lower level language than BASIC so must be more powerfull. Of particular interest is updating firmware without needing the program editor.

Strange that the Arduino is only really designed for one true serial port.

According to the docs, softwareSerial runs reliably up to 9600 bps.

The ATMEGA168 chip that the Arduino is built around has one hardware USART. That's why the Arduino only has one serial port. There are larger Atmel MCUs that have multiple USARTS, but the designers are also trying to keep the platform and product line from getting too complex. There aren't a whole lot of projects that need more than one serial port, and softwareSerial is usually good enough for projects that do.