I have been meaning to do several microcontroller based projects for some time now. Ideally I wanted to do it without spending any money so I decided to make myself a PIC programmer with some samples from Microchip. This would also make the process more interesting.
The plan was to make a usbpicprog and bootstrap it with a serial port based programmer using an old computer. I bought all the parts, including copper clad board and ferric chloride but never quite got round to doing it. This was in part because I was not very keen to have to work with ferric chloride and I didn’t want to dissolve the sink.
Meanwhile, I had been hearing about the Arduino more and more. Initially I ignored it as something for artists and people who didn’t know what they were doing. I had spent some time at university learning about and using real microcontrollers with none of this boot loader nonsense so I did not think I needed such things. Then I realised that being leet enough not to require simplification did not make quicker development a bad thing. :-) I decided I had wasted enough time and just wanted to get something done, so I bought an Arduino.
I actually chose the seeedunio, an Arduino clone. The design is open so this is allowed and in fact there are some improvements made in the seeeduino. Primarily I chose it though because it was the cheapest. I still don’t like the idea of paying decapounds for a single basic microcontroller and some soldering. I also ordered an ethernet shield, which is what an expansion card is called in the Arduino world. These arrived yesterday.
It took me longer than I would have liked to get started, with the blinking LED
hello world of microcontrollers, because there were no instructions about the
correct settings. After some googling and trial and error I determined that I
had to set the reset switch on the board to auto and, in the Arduino IDE, set
the board type to
Then I decided to plug in the ethernet board and run the example programs. I had to stick all the source files in the same directory and change the ip address and then I was pinging the board. It took only a few minutes. This I thought was pretty ridiculous. Then I used the web server program. It worked. I couldn’t really believe this - this did not seem like electronics at all. I would expect this to have taken weeks of debugging, loose wires, errors in PCB design, software bugs and frustration but here it was working in a few minutes with no test gear in sight. I have certainly confirmed my get things done faster conjecture.
It was not quite as good though when I wanted to connect stuff up to it. The board did not come with a data sheet and I could not find much at all online. In the end I went to Atmel’s web site and downloaded the datasheet for the ATmega328P on my board. Included below are some useful figures from it.
Seeeduino - Summary of Initial Setup
I am using the Seeeduino V2.21 which is also marked ARD128D2P.
It uses the ATmega328P.
This is the error I got initially:
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00
- Move reset switch to auto
- Set board type to
Deumilanove or Nano w/ ATmega328.
|Operating Temperature||-55°C to +125°C|
|Voltage on any Pin except RESET with respect to Ground||-0.5V to VCC+0.5V|
|Maximum Operating Voltage||6.0V|
|DC Current per I/O Pin||40.0mA</tr>|
|DC Current VCC and GND Pins||200.0mA|