Society of Robots - Robot Forum
Electronics => Electronics => Topic started by: sonictj on May 29, 2009, 04:08:52 PM
-
I finished building my latest avr board that is based on the ATmega640. I thought it was cool that only a year ago I built my first board which was the often mentioned $50 robot. Unlike my $50 robot board this one actually works ha ha! Anyways I though some of you guys might get a kick out of seeing a fully point to point soldered 100 pin avr board.
I built the board as a prototype for a more professional pcb that I will eventually send out for.
PS I know it looks like there is a short in the bottom left power bus. In reality it was piece of fuzz I noticed after I took the pic (random I know).
Hope this doesn't turn into multiple posts I was playing games trying to make the photos under the allowed kb.
-
wow, holy bajeebas sonic!
that thing looks rad.
nice battery pack...
what was the cost of this thing including the atmega board?
-
all costs approximate
Atmega640 $16
TQFP breakout $1.50
headers $5-6
protoboard $5
assorted passives $3
amount of pain and suffering soldering all 86 i/o lines with wire wrap wire priceless lol.
I definitely spent more on extras but I think that's about what it cost for just what is in the picture.
-
so like under $40?
that's great...
now imagine how admin felt soldering his on!
but really, i would pay for that! props to you!
-
I'm betting Admin went straight to a pcb, but I don't know.
-
i know admin uses an earlier prototype in a video a bit down on this page:
http://www.societyofrobots.com/remote_control_robot.shtml (http://www.societyofrobots.com/remote_control_robot.shtml)
i think its in through hole form but not sure, watching the video now...
-
I don't see it. Admin did make a prototype based on the ATmega644P which is a 40 pin DIP chip. In fact it is the biggest Atmel makes that is until the Atmega1284 ships.
-
my bad, all i remember is that in the video he is using a gyro connected to a servo, ill try to find it.
yep, it sure was a big one ;D
http://www.societyofrobots.com/sensors_accelerometer.shtml (http://www.societyofrobots.com/sensors_accelerometer.shtml)
bam
-
Its the video with the dimension engineering accelerometer http://www.societyofrobots.com/sensors_accelerometer.shtml. (http://www.societyofrobots.com/sensors_accelerometer.shtml.)
-
haha, beat you by two seconds!
but that chip looks really big... i mean, the cap was big enough...
but this is getting a bit off topic... :-\
-
I just went through the arduino environment and made a few tweaks and now my ATmega640 board is Arduino compatible.
-
Congrats! Can you zip the modded files in Arduino to make it work with mega640? Thanks.
-
do you have any pcb files for it? i would buy one if you sold them!
kinda like the poor mans axon...
-
I'm new to the pcb world so it will probably be a bit till I make a pcb but I'll consider selling it. It wouldn't be a poor man's version though. I would be going for a mix or arduino mega and the axon most likely with a ATmega2560 on board.
Congrats! Can you zip the modded files in Arduino to make it work with mega640? Thanks.
I attached the files I changed. the first is the boards .txt this goes in the hardware folder.
the second is the zipped arduino folder found int the hardware/cores
put these in the arduino 15 win folder and you should be able to use the ATmega 640 with the arduino environment. The way I did this was simply changing everymention of the 1280 to the 640. The chips are identical with exception of their internal flash.
let me know if you have any problems. This should work with the axon except in the arduino environment uart0 is the usb uart. on the axon I believe uart1 is used. The fix for this is to program using an avrispmkii. To use one with the arduino environment change the preferences.txt. In this file you will find a line that has bootloader change it to avrispmkii. Further documentation about using a harware programmer with arduino can be found here. http://arduino.cc/en/Hacking/Programmer (http://arduino.cc/en/Hacking/Programmer)
-
Hi, could you tell me where you got the breakout board for the chip? Thanks!
-
www.futurlec.com (http://www.futurlec.com) they take a while to ship buth their cheap. Also their breakout boards are not the special kind with grooves they are the cheap normal kind. Make sure you have solder wick ;).
-
did you just order a pcb?
-
did you just order a pcb?
its simply a header board
the 100 pin TQFP
http://www.futurlec.com/SMD_Adapters.shtml (http://www.futurlec.com/SMD_Adapters.shtml)
-
Whoa, I see your soldering skills have advanced quite far from the old $50 Robot days! And actually, after you finished, you probably realized its 95% just like the $50 Robot, no? :P
Back before I decided to make the Axon I was thinking of doing *exactly* this, using the same exact components you used. But after doing the math, the board was just too big. I decided to instead figure out how to use Eagle and put it all on a compact PCB. After the first prototype on PCB I realized it would actually make a great product.
-
Whoa, I see your soldering skills have advanced quite far from the old $50 Robot days! And actually, after you finished, you probably realized its 95% just like the $50 Robot, no? Tongue
very similar I based my design mostly off of the arduino mega and the Axon. I wasn't as concerned about board size . I plan to eventually make a smaller pcb but for now I plan to make some larger robots that will have plenty of space.
-
my god, how did you solder that beast down?
-
surface mount soldering really isn't that hard. It just takes patience and good technique. I would suggest starting with chips that are not .5 mm spacing though. Sparkfun has a good surface mount soldering tutorial. There are also some good vids on youtube. The key is to put flux on the pads where the the surface mount part is, and then bring a solder loaded iron to the chip pins. Its actually a lot of fun. Oh and solder wick is a must for undoing mistakes like bridged connections between pins.
Don't be afraid of surface mount.
p.s. magnification and proper lighting helps too.
-
ahh what the hell, when i order the parts for my module ill pick up a few of those too ;D
-
I just took a picture of the board after I finished writing an lcd library. The pic looked pretty cool so I decided I'd post it
I have made a few modifications to the ATmega640 dev board. I added usb support to all of the uarts via 6 pin headers. The headers connect to an ftdi usb cable. I also put in a power select jumper to select between usb or battery power. The usb side has two ptc resetable fuses wired up to protect my computer. I've been spending a lot of time low level coding my own libraries to gain a better understanding of the atmega hardware. If anyone wants me to I can post the code. So far I have support for the uarts, ADC, an LCD (as you can see), and I have written some basic servo code.
-
You could, of course, use my C library http://www.societyofrobots.com/robotforum/index.php?topic=7787.0 (http://www.societyofrobots.com/robotforum/index.php?topic=7787.0) and benefit from all the 3rd party devices it supports.
-
I could but I really want the experience and skill to be able to write my own. I really enjoy writing low level software. That being said I may take a look once in a while for ideas ;).
-
oh my gosh dude :o that is soooooo awesome.
you should be majorly proud of yourself
-
I love it!!! wow that is really great, Now all you need to do is find a use for all of those I/O pins!!
Just for kicks could you make a couple thousand LED matrix?
-
why not just control a big ass plasma while your at it ;D
-
I did pick up eight 8x8 led matrixes. I only ordered four but eight showed up lol. I plan on using them soon, but I haven't decided on how I want to drive them yet. I'm thinking spi from the micro and A cpld for shift registers. I also would need darlington arrays for more current.
-
I did pick up eight 8x8 led matrixes. I only ordered four but eight showed up lol.
my god... why does this never happen to me!
i cant wait for pics of the matrix... make up a picture of you dp...
-
I'm in the process of fixing my laptop so it may be a while.
-
I just made what I think is my final revision of my PCB design.
Features
* Dimensions are 2.05x3.05".
* The board has a 5 amp 5v regulator the PCB supports up to 3amps (diode limit)
* uart0 is broken out for connection to a ftdi 232 usb cable (does not power board)
* DC barrel jack 2.1x5.5mm
* I expect the voltage input to be 7.2-12V (the datasheet was a tad uninformative)
* Arduino compatible, and should also be axon compatible
* All i/o are available and spaced in .1" increments. Also all components are short enough so that a protoboard/shield can be placed on top.
* special pins: Reset, Aref, 2x 5V, 2x gnd, VIN
* Current limiting ptc polyfuse connected to the microcontroller +5V bus to "prevent" failure via short circuits.
* reverse polarity protection diode
I would like feedback on how you like or do not like the design. Is there anything you would want/add? Any input on a diode in a small package that can withstand 5+ amps and 12-15V. I could only find up to 3A.
PDF is attached
-
Current limiting ptc polyfuse connected to the microcontroller +5V bus to "prevent" failure via short circuits.
Then how would you know if you accidentally shorted something?
Any input on a diode in a small package that can withstand 5+ amps and 12-15V. I could only find up to 3A.
Multiple diodes in parallel :P
-
Quote
Current limiting ptc polyfuse connected to the microcontroller +5V bus to "prevent" failure via short circuits.
Then how would you know if you accidentally shorted something?
The power led was also connected through the polyfuse. I say "was" because I've decided to cut it from the design.
I'm looking into designing the board with a built in USB level shifter (ftdi chip). Also how desirable is it to have the ability to power via usb? In my opinion its nice but not necessary. I will be able to avoid incorporating a toggle switch and a PTC fuse if I go without a USB power option.
-
I will be able to avoid incorporating a toggle switch and a PTC fuse if I go without a USB power option.
why not jumpers like arduino?
-
jumpers can't handle the current. The jumpers may be able to do 3amps, but I would like a reasonable factor of safety.
-
ahh i see, but isn't a toggle very big and clunky to have on a board?
-
absolutely, that is why I said
I will be able to avoid incorporating a toggle switch and a PTC fuse if I go without a USB power option.
I want to make board ~2x3" and a toggle switch will make that difficult.
-
Also how desirable is it to have the ability to power via usb? In my opinion its nice but not necessary.
A bootloader won't won't if you can't power from USB. You need to keep USB turned on while the mcu power cycles for a bootloader (through USB) to work.
I learned that the hard way on a prototype Axon :P
-
Also how desirable is it to have the ability to power via usb? In my opinion its nice but not necessary.
A bootloader won't won't if you can't power from USB. You need to keep USB turned on while the mcu power cycles for a bootloader (through USB) to work.
I learned that the hard way on a prototype Axon Tongue
I don't understand how that could be true the arduino runs via bootloader yet you can power it exclusively via the on board power jack. When you say power cycles couldn't you just have the watchdog timer trigger a reset? The arduino uses the dtr line of the ftdi chip to trigger a reset. I believe a null character is sent to from the host computer to toggle dtr. The dtr line is connected to the reset line of the atmega168 through a .1uf cap for auto-reseting.
Also I'm wondering about a few things. what is the general guideline for how far away a trace should be from the outside edge of a pcb? Two I'm planning on saving space by putting the ftdi chip on the bottom of the board. Is there any reason this may be a bad idea? I don't see a ton of two layer microcontroller boards with ics on both sides.
The way the design is going I think the board will be under 2x3" with support for micro usb, just not power via usb.
-
I don't understand how that could be true the arduino runs via bootloader yet you can power it exclusively via the on board power jack.
So when you have the Arduino 100% unplugged from power, and you plug in USB, does your PC recognize the Arduino? Unless its taking power from somewhere, your computer can't see the connection.
So when it does get power, it takes a few seconds for your computer to detect the new hardware, missing the bootloader time window.
And yea, you can do a watchdog reset. But you'll have to dedicate a button to that (not that you don't already have more than enough pins!).
what is the general guideline for how far away a trace should be from the outside edge of a pcb?
Depends on manufacturer and the process they use. I usually leave ~2mm at least.
edit: fixed typo
-
So when you have the Arduino 100% unplugged from power, and you plug in USB, does your PC recognize the PC? Unless its taking power from somewhere, your computer can't see the connection.
when you use the bootloader on the arduino i always have to have my pc supplying power otherwise my pc comes up with the "usb device not recognized" message, weird?
-
So when you have the Arduino 100% unplugged from power, and you plug in USB, does your PC recognize the Arduino? Unless its taking power from somewhere, your computer can't see the connection.
I program my arduinos all the time with the external power being used rather than usb. The pc recognizes everything just fine.
**update I just confirmed this by connecting my arduino to my brand new pc. No power was coming through USB yet the device was recognized and I was able to send a program to the board.
-
This is because the USB was getting power from the plug. I haven't used the Arduino, and too lazy to look up the schematic, but I promise you they are keeping it always powered when you power cycle the ATmega.
-
This is because the USB was getting power from the plug. I haven't used the Arduino, and too lazy to look up the schematic, but I promise you they are keeping it always powered when you power cycle the ATmega.
When you say USB are you talking about the ftdi chip being powered all the time ? If that is what you meant then I'm in total agreement. The arduinos all have a 3 pin power select header with the center pin being 5V. This connection powers the atmega and the ftdi chip the whole time. I think we misunderstood one another ;).
I just bread boarded the schematic I made for the ftdi and successfully programmed via bootloader so everything is peachy ;D. I'll post my ftdi chip schematic in a few minutes just in case your interested.
-
Here is the schematic for the ftdi chip USB level shifter.
-
When you say USB are you talking about the ftdi chip being powered all the time ? If that is what you meant then I'm in total agreement. The arduinos all have a 3 pin power select header with the center pin being 5V. This connection powers the atmega and the ftdi chip the whole time. I think we misunderstood one another ;).
haha yea, i meant ftdi chip (or CP2102, if you were using that instead). total agreement.
-
I've sent out for the parts now. Here is a pdf of the current board. I may tweak a few things before I send out for the PCB. I wanted the parts in hand to confirm measurements etc.. I'm very excited this is my fist PCB I've ever made.
possible issues:
1) I'm not sure what pin 4 of the micro usb connector should be connected to. I think that its only used for determining USB A via a ground signal. I looked at the axon schematic and it had pin 4 and 5 grounded.
2) I haven't looked yet to see if I have enough clearance for an ISP connector. Anyone know where I can get the mechanical specs to check?
If you see anything out of the ordinary let me know.
-
I sent my PCB design to Advanced Circuits today. I guess in a week I'll be able to see how the design came out.
Features
* 2.3"wide by 3" long
* access to ALL 86 i/o
*axon compatible
*.1" protoboard spacing on all i/o for simple shields
* USB boot loader support via a micro usb connector (arduino mega)
* 3amps of 5V and ~3amps unregulated
*basically all features of the atmega640/1280/2560 family.
-
you planning on selling this at completion and if so how much? ;D
-
I'm very seriously considering it, but I have to make sure the design is sound first ;). I also want to make sure I will not be upsetting Admin. I would not want to advertise on Admin's forum without permission. Especially for a product that would be competitive with one of his own.
-
yeah i know the feeling.... If the decision isnt sound it probably ownt need but small tweaks.... I'm considering to start a motor driver and sensor product line but still havent decided
-
if this became a product i would probably buy it too :P
-
depends on price to though... I mean i kno the stuff i would need to build it but i think it might be worth 50-80$ to avoid all that soldering
-
depends on price to though... I mean i kno the stuff i would need to build it but i think it might be worth 50-80$ to avoid all that soldering
That's within the price range I'm considering. It all depends on how the board performs,and what quantities I purchase PCBs in. My plan for "if" I do sell the board, is to build small quantities myself for sale. So the only costs out of my pocket would be parts and PCBs.
As a side note, I'm curious how easy it is to go about selling something over the internet. I don't really have a grasp of what is involved. I've never done it before.
-
As a side note, I'm curious how easy it is to go about selling something over the internet. I don't really have a grasp of what is involved. I've never done it before.
well, you advertise your product, the consumer sees the add or hears about your product, they submit an order for one, you receive the order and send out an invoice.
they pay, you ship it. basic but thats the bare bones of it.
-
I think what he is talking about is taxes/laws and such... but I am not 100% sure
-
ahh, but if its not too much of a commercial product (imagine soldering a few hundred of them) it shouldn't be too different from selling on ebay should it? although, if there is anything about ROHS and lead then maybe...
-
There is a lot of legailty which is what I was referring to. I would have to set up a website, and credit card checkout system. I also would have to pay $50 to license eagle.
There is also the possibility of needing a small business license, but I don't know if that is necessary. **Update A home based business license is required** stupid legal crap >:( .
Smash is Australia a ROHS compliant countriy ie. can you buy something that may contain lead?
EDIT: my design is now 100% ROHS compliant so no worries.
-
i think it is possible but they have to mark it out big time :P
-
i think it is possible but they have to mark it out big time Tongue
I'm confused ??? do you mean mark it up? And who's they? Are you saying that there is a surcharge associated with a non lead free product imported to Australia?
-
no, i meant they have to state it in big black letters all across the packaging...
-
I sent my PCB design to Advanced Circuits today. I guess in a week I'll be able to see how the design came out.
Features
* 2.3"wide by 3" long
* access to ALL 86 i/o
*axon compatible
*.1" protoboard spacing on all i/o for simple shields
* USB boot loader support via a micro usb connector (arduino mega)
* 3amps of 5V and ~3amps unregulated
*basically all features of the atmega640/1280/2560 family.
Hi sonictj,
So is this just an ATMega640 smd chip with a header pin for each chip-pin?
ie a kinda ATMega640 breakout board - so "axon compatible" means it uses the same chip as the Axon
Or does it add any augmentation like AxonII has an LED display.
If I buy an ATMega640 chip then what will I be missing that your board provides?
Just trying to understand ???
-
its pretty much a header board with usb and bootloader support. The best explanation is its an smaller version of the arduino mega with access to all i/o and the female headers are all .1" spaced so homemade protoboard shields are an option. All the usb Arduino brand boards have one header that is offset so that a custom PCB shield is required. The latest board pdf is attached. There are ground planes on the bottom and top sides, but I chose not to make them visible so you could see what else was going on. I can also give a schematic, I just don't know how to pdf it without chopping it in half. I'll look into it and get back to ya.
ie a kinda ATMega640 breakout board - so "axon compatible" means it uses the same chip as the Axon
There is no reason you couldn't use the axon code with any board based on a 640,1280, or 2560. So yes.
-
The only major difference between my board and the axon is # of i/o and the power bus. My board is intended to allow a unique shield for any given robot I build. I personally don't use many servos so for me an axon doesn't fit. I prefer all my power buses to be +5V rather than BAT+ because most everything I use, digital sensors included, is 5V logic (sonars dc motor drivers, stepper motor drivers, analog sensors etc.). Taking away the power bus and allowing for a custom shield allows the board to be more versatile towards specific applications.
By no means am I saying don't buy an Axon, because it is a great board, with equally great support!!!
-
@ Webbot
Just trying to understand Huh
do you understand now?
-
@ Webbot
Just trying to understand Huh
do you understand now?
Got there in the end! Fast internet - slow brain.
I kinda agree with you - most things in life are +5v - sensors/motor controllers/I2C/SPI etc etc. Only direct driven servos are different and even then the supply depends on the servo.
Of course since you are ATMega640 then you could use my C library - plug plug - and benefit from working interfaces to lots of stuff! Sensors, motor controller boards etc.
;)
-
Of course since you are ATMega640 then you could use my C library - plug plug - and benefit from working interfaces to lots of stuff! Sensors, motor controller boards etc.
sure by any chance do you have any experience with bootloaders? I'm trying to modify a bootloader to allow the ATmega640 to function as an arduino mega. The code interfacing afterward is fine, its just making that bootloader work is whats bothering me.
Here is my post on the matter http://www.societyofrobots.com/robotforum/index.php?topic=8448.0 (http://www.societyofrobots.com/robotforum/index.php?topic=8448.0)
-
As I said in other post I modified ADABoot ,an arduino bootloader created by ladyada of Adafruit.com, to support the ATmega640 mcu. I also created a modified version of the arduino mega software to support all i/o of the 640/1280/2560 family of microcontrollers.
-
As I said in other post I modified ADABoot ,an arduino bootloader created by ladyada of Adafruit.com, to support the ATmega640 mcu. I also created a modified version of the arduino mega software to support all i/o of the 640/1280/2560 family of microcontrollers.
Which UART port? (hoping its 1)
-
its uart 0 but don't worry admin I can modify it for uart1 its a simple change :P.
-
I just built a version of the bootloader file that can support either uart1 or uart0 all you have to do is go into the ATmegaBOOT.c file and either leave uart1 defined or comment it out. then compile. I have attached the files. both hex files are available along with the code. To use the bootloaders you will need a reset button (connected to atmega640 reset, and ground) or a method or auto reseting. The arduino method is to tie the dtr line of the ftdi chip to a .1uf cap, then attach the other lead of the cap to the atmega's reset line. This will trigger a reset in software. If you use a button simply press it immediately after pressing upload in the arduino environment. Speaking of which I will post my modified version of that soon. I currently built in defines for all of the pins to where instead of calling a pin# in the pinMode, the digitalWrite, and other functions you can call the pin name.
example:
//G0 represents PG0 or digital pin 41
//to turn on the pin simply use
pinMode(G0,OUTPUT);
digitalWrite(G0,HIGH);
end example:
I did this because my board will have these labels not the arduino pin #s. I also feel this makes the transition to programming in AVR Studio easier, which is one of the premises of my design.
-
Any pics of your prototype?
-
Any pics of your prototype?
Here they are sorry for the confusion
http://www.societyofrobots.com/robotforum/index.php?topic=8534.0 (http://www.societyofrobots.com/robotforum/index.php?topic=8534.0)
-
Any pics of your prototype?
if you mean the pcb he ordered, its here: http://www.societyofrobots.com/robotforum/index.php?topic=8534.0 (http://www.societyofrobots.com/robotforum/index.php?topic=8534.0)
-
I also have videos of robots using the board
http://www.societyofrobots.com/robotforum/index.php?topic=8544.0 (http://www.societyofrobots.com/robotforum/index.php?topic=8544.0)
-
awesome mahn way to go