Close

How I made my 12MHz Arduino

A project log for Pavapro - portable AVR programmer

Pavapro is tiny programmer you can bring anywhere. You can load binary file into it and bring/use it as you wish. And a bit more than that.

jaromirsukubajaromir.sukuba 12/03/2014 at 16:040 Comments

My 3V trinkets are on the way, but I want to start doing something in the meantime, so I decided to make my own temporary Arduino solution - simple arduino on a protoboard.

Actually, there is nothing special about it. Just atmega328p with 12MHz crystal and decoupling capacitors, plus 3,3V regulator (LE33) and serial header. Add two LEDs, some pinheaders and here you go, 12MHz Arduino.

I have no schematics for this, just printed the pinouts of the parts and started soldering on a piece of protoboard.

Bottom view:

I spared some space for additional components

The actual arduino hardware takes approximately 3x4cm, including pinheaders. Not bad.


I had a bit of problem finding correct bootloader/fuses settings mix. This website helped me http://ceptimus.co.uk/?p=102 a lot, but there were a bit of head scratching. Finally I settled down with loader and fuses settings (different from what described on ceptimus site) as described here https://github.com/jaromir-sukuba/pavapro/tree/master/test_fw

Fuses as seen in AVRstudio 4

Honestly I have no idea why sugessted fuses settings did work for author and didn't work for me (It threw verification errors and no actual data were written). I tried to read back the bootloader from AVR to found it starts at 0x7C00 (the address where FF region ends)

Aha! So the boot vector has to be at 0x3E00 (0x7C00 shifted one position right, because single AVR program word is two byte long).


Now I can load basic blink sketch and it blinks! Great, development ca start.

Whew.

Discussions