I also discovered that I made the vias specific to the tolerances of a particular board house. I went to BatchPCB to see about costs. It turns out I need a larger drill size and a larger ring, in turn raising clearance errors at all vias routing signals. I will see about fixing that and running the I2C to the additional 2 pins as well.
I must say, the AREF pin is in a pretty awkward place. Would it not make a lot more sense to have an AGND.and AREF grouped with the analog pins? Not something that cam be changed without breaking shield compatibility. Just a thought though.
Also, I did not seperate analog VCC and GND from digital. Having them filtered and routed separately would greatly help any noise issues.
On one hand I am anxious of having a board in my hands sooner rather then later. So unless I discover some really major errors I'll be sending this to be made. Then do another sample with all of these enhancements addressed.
Thank you for looking at this and making suggestions. Very much appreciated.
fm:
I like the crystal you are using what is its part number?
Here is the parts list for all but the headers from DigiKey. The crystal is a NX5032 series. A bit smaller then a surface mount HC49 type. I understand that technically a ceramic resonator is not acceptable for USB. Although, I have used ceramic resonators with USB on PIC in the past.
Digi-Key Part Number Manufacturer Manufacturer Part No Customer Reference Qty Description
ATMEGA32U4-AU-ND ATMEL ATMEGA32U4-AU U1 1 MCU AVR 32K FLASH 16MHZ 44-TQFP
311-1140-1-ND YAGEO (VA) CC0805KRX7R9BB104 "C1,2,3,4,5,6,7,11" 6 CAP CER 0.1UF 50V 10% X7R 0805
478-1655-1-ND AVX CORPORATION (VA) TAJA106K016RNJ C10 1 CAP TANT 10UF 16V 10% 1206
709-1172-1-ND JOHANSON DIELECTRICS INC (VA) 500R15N220JV4T "C8,9" 2 CAP CER 22PF 50V 5% NP0 0805
311-10KARCT-ND YAGEO (VA) RC0805JR-0710KL R1 1 RES 10K OHM 1/8W 5% 0805 SMD
311-1.0KARCT-ND YAGEO (VA) RC0805JR-071KL "R2,3,4,5,6" 5 RES 1.0K OHM 1/8W 5% 0805 SMD
311-22ARCT-ND YAGEO (VA) RC0805JR-0722RL "R7,8" 2 RES 22 OHM 1/8W 5% 0805 SMD
754-1133-1-ND KINGBRIGHT CORP (VA) APT2012SURCK "L1,2" 2 LED 2X1.2MM 630NM RD WTR CLR SMD
754-1127-1-ND KINGBRIGHT CORP (VA) APT2012CGCK PWR 1 LED 2X1.2MM 570NM GN WTR CLR SMD
754-1125-1-ND KINGBRIGHT CORP (VA) APT1608YC "RX, TX" 2 LED 1.6X0.8MM 588NM YLW CLR SMD
644-1037-1-ND NDK (VA) NX5032GA-16.000000MHZ-LN-CD-1 X1 1 CRYSTAL 16.000000 MHZ 8PF SMD
ED2992CT-ND ON SHORE TECHNOLOGY INC (VA) USB-M26FTR USB 1 CONN USB MINI B R/A SMD
Have you considered filtering the supply line with a PI filter? You have enough space on board and would get help reduce over all noise on analog readings too.
Here are some old old notes on USB connectivity I have. I believe the first diagram with the ferrite is the PI filter you suggest?
USB Connection
--------------
Some hints on USB connections and power decoupling. The PIC includes ESD
protection (maybe?) and driver output impedance to match USB specs.
Ferrite
5V 1 o-----------+---[===]---+--------+------o Vusb
| | |
D- 2 o-------+ | 10nF | 100nF | 10uF
| === === ===
D+ 3 o----+ | | | |
| | | | |
GND 4 o----|--|---+---[===]---+--------+------o GND
| | Ferrite
| | 0R
| +-------[===]-------------------o D+
| 0R
+----------[===]-------------------o D-
Parts:
10nf DigiKey C0805C103K5RACTU
100nF DigiKey GRM219F51H104ZA01D
10uF DigiKey GRM21BF51C106ZE15L
Ferrite DigiKey MI0805K400R-10
USB Connection (alternate per Atmel)
------------------------------------
The Atmel chip requires ESD protection and matching resistors. The USBLC6-2SC6
is a suitable TVS device specifically for HS USB 2.0 operation.
5V 1 o--------+-------+----------------------o Vusb
| |
+-----+ | 22R
D- 2 o-----| |----|--------[===]---------o D+
| | | 100nF
| TVS | ===
| | | 22R
D+ 3 o-----| |----|--------[===]---------o D-
+-----+ |
| |
GND 4 o--------+-------+----------------------o GND
Parts:
100nf
22R
USBLC6-2SC6
Rev B of the vinciDuino has been ordered. We have currently ordered 10 to try them with what we think is going to be the final version.
Rev A has been fully tested with:
Windows - XP SP3 and 7
Mac OSX Lion
Linux Ubuntu
Everything is working great out of the box without any changes to the Arduino 1.0 IDE.
There aren't that may differences between Rev A and Rev B:
RX/TX LEDs are compliant to the core - off when not in use.
Improved board thermal dissipation
Separated ground planes for analog and digital
Added additional filtering to power supply
Added a new row of headers to cater for standard prototyping boards with standard 0.1" pin spacing
I think I've managed to incorporate most of the changes suggested. Improved USB power filtering, better isolation of AREF, more complete labeling. I did not separate analog and digital power supply buses. But reading up on the D+ and D- routing for USB changed those paths to be very parallel and somewhat isolated.
Next I need to figure out how to use github to make the files available and give proper credit to all that helped make this relatively easy and painless.
Very nice board, I like it. It looks very good.
Perhaps a would change the value of the USB 0.1uF cap for 10nF to filter out hight frequencies that you might be getting. You already have 0.1uF close to the AVR supply inputs. You'll have to measure it first to see what is getting through.
Also make sure that the PWMs are supported by timer outputs on chip.
I like the sirigraphy, if we do a re-spin of the vinciDuino I may takes some ideas from you.
Nice job there.
Graynomad:
Could you not run SDA/SCL out to the new locations as well? No harm done and may be useful for new shields.
That got me thinking, are there many shields out there that expect SDA/SCL to be in the old A4/A5 position? I would suspect that eventually shields would simply make use of the new locations?
Thought I would share with you chaps that I've received Rev A.1 of the vinciDuino.
This board has several improvements with respect to RevA:
RX/TX LEDs are fully compatible with Leonardo
There is a thermal dissipation area on both sides of the board to avoid regulator over heating, tested with 2.5W power dissipated and temperature didn't raise to more that 50ºC over ambient.
Additional filter added for higher frequencies on power supply, both for USB and external power
Some routing and layout improvements, i.e. more isolation of reference lines.
ISP is fully aligned with respect to original Arduinos, this will provide compatibility with newer shields that use the ISP header for SPI connectivity
Increased some pads to simplify soldering, this is great for people wanting to solder their own.
Added minor changes to serigraphy, main one is the open HW claim and the CC BY-SA license on the board.
I have managed to get 1MB/s data through put on the USB link with the board, which is not bad at all.
Here is an image of the board ticking away, home you like it.
I have spare PCBs, Kits and assembled board, should you be interested please PM me.
The board is currently undergoing some tests but it looks very good. These boards, will be released soon, but you can find the entire project documentation in the regular place.
My boards are in! Now I have to find some ATmega32U4. Any idea who has a good price and reasonable shipping to Canada? I know there is Mouser and DigiKey, where Mouser has a significantly better price. Any other sources for these? I will also need some ATmega1284P-AU but no single quantities available at Mouser
Here they are... And no, this is not a true representation. They are square and flat, they look pretty perfect. Should have used something better then the little point and shoot.
Next to find out if they actually work as intended...
Yes, it is USB power only. On second thought I could have provided the power option and a jumper to select. Certainly a lot of empty real estate.
I have a couple of lenses for my SLR that have way less distortion. But it is much harder to get close with proper lighting. Using a flash makes some pretty nasty reflections or shadows, even with diffusion. Am not setup for indoor closeups, love nature, landscapes and people photography. I used to have a scanner, it worked great for boards.