Processing

At the heart of most new electronics projects is a microprocessor.

PICAXE

The processor of choice for me at the moment is a PICAXE microcontroller. The PICAXE is based on the popular PIC series of micro controllers by microchip, however they are pre-loaded with a “bootstrap”, the bootstrap simplifies the whole process of prototyping electronics as it allows the PICAXE to be programmed via a 3 wire interface.

The bootstrap does slow the processing speed, however with the newer X2 series able to perform at clock speeds of up to 64MHz it will not make a difference for prototyping. I think the best feature of the PICAXE range is the inbuilt command support such as USART and I2C, the PICAXE provides a simple interface for these commands and it takes care of the rest of the management with all the correct timing and everything. There is no need for complicated libraries or bit-bashing.

I would really recommend these processors for development purposes, and there is an excellent support structure for them.

PICAXE.com

PICAXE forum

AVR

I have recently started to use these processors as I though that I would need to upgrade from the PICAXE some point in the future. The AVR’s are made by Atmel and a popular among hobbyists, capable of fast clock speeds. They can be programmed in C using a compiler, many people use an IDE (Integrated Development Environment) such as AVRStudio4.
Despite knowing C, I found the AVR’s very difficult to use. I picked up the basic operations such as configuring input/outputs, switching things on and off with bit operations and using input switches very easily. But when you want to do anything interesting, such as dim an LED it becomes very complicated. You need to configure CPU speed, read and write to control registers and monitor their status for overflows and flags. Personally I thought the data sheets were pretty bad and huge 300 pages+.
Having said that there are people who make very interesting projects with them, and certainly they will be useful for my projects so I will be persevering with trying to use them. Again there is a very good support forum that has tutorials and examples on using AVR’s.

AVRFreaks

Arduino

I have not had any experience with using these microcontrollers, but like the PICAXE they are an AVR with a Bootstrap. They are programmed via USB and in a language which is more or less C. From what I have read and seen they look like a good step between PICAXE and AVR’s.

Update: Since first writing this over a year ago I have had considerable experience with using arduino’s since. They are very easy to use and they are very capable. I think there are two main experiences you can have with arduino’s: With C or without C. Let me explain.

Without C

This is when you are coming to embedded programming for the very first time with now prior coding experience, or at least no C experience. In this case the arduino provides a perfect environment for learning; it’s a great introduction to C, the use of libraries and program structure.

With C

This is where I fit in, with prior C experience. If you already know C, even the basics, you can jump straight in and Begin to use the arduino with no problems.

So, I think it’s a great platform to work with. Certainly it has exploded in popularity recently with almost every DIY project including one. Best of all it’s all open source with an active community supporting it.