Designing your custom Arduino board


    I while back I found a site where someone made a neat looking GPS cube using an Arduino mini at: http://karman.cc/blog/archives/746 After grabbing the parts and building my own I decided to lay out my own custom board. I've never loaded an Arduino bootloaded into and Atmel microprocessor before so I did some digging.


    Pics of prototype using the Mini Pro:





    With everything working I decided to try making my own custom Arduino board. Altium Designer was used for the PCB and Solidworks was used to verify footprints were correct and everything fit.







    For getting the bootloader into the AVR I read that the USBtinyISP on the Adafruit site was an easy way to go: http://www.ladyada.net/make/usbtinyisp/ To save money I ordered one for $11.90 from Dealextreme that offered free shipping http://dx.com/p/dedicated-genuine-usbtinyisp-2-0-downloader-w-two-cables-for-arduino-blue-147141?item=1
    Getting the bootloader into the AVR turned out to be even easier then I imagined. First you download the driver for you computer from here: http://www.ladyada.net/make/usbtinyisp/download.html
    Open up Control Panel, System, Device manager and you will see the USBtinyAVR appear when it's plugged in. Thats it! Just install the driver. After that you connect your custom board to the programmer, open up the latest Arduino software (where you write your sketches), Select Tools, Board, select and UNO as what bootloader you want in it, and then Tools, Programmer, select USBtinyISP because this is the programmer i'm using and then Tools, Burn Bootloader. After a minute or so the LED on the programmer changes states and that it.
    If it doesn't work on the first go the check:
    -make sure the jumper on programmer is in place
    -make sure in Control Panel, System that the programmer appears when plugged in
    -make sure the custom board you made is the 5V type and is powered
    -make sure the Atmel chip is not the Atmega328-AUR. It has to be the Atmega328P type. This was my mistake but it can still be used by modifying the signature in avrdude.conf.



    In the past I have ordered prototype boards from http://www.apcircuits.com but they charge $25 + $30 Fedex priority. For some stupid reason they insist on the $30 shipping charge. If you are in no rush then I recommend: http://www.oshpark.com/
    My boards cost $5.50 + $5 shipping to Canada. It takes a while but you cannot say no to that price.











    Below is a Leonardo clone using the 10mm X 10mm TQFP Atmega32u4 micrpoprocessor. Programming the board over USB, no FTDI chip is sweet. This saves quite a bit of room on the board for other parts.




    Now that the custom leonardo works as expected I might connect a few sensors to it and try out the smaller 7mmX 7mm QFN part. My next board will be a 4 layer job saving me from routing VCC and GND. It will have a i2c RTC, accelerometer and a temperature sensor. The OLED display is also i2c so SDA and SCL bus goes everywhere. It will be here in a few weeks.



    This is my first try hand soldering a mega32u4 MLF package by hand on an LED driver board:





    This is another board that is being manufactured now. It uses the 328P, FTDI converter, has a liPo charger, switching power supply and a temperature controller.