Hi folks,
In the Module footprint library, Arduino_UNO_R3 footprint is drawn as viewed from the back, whereas I was expecting it to be drawn as from the front.
(Also, some other boards in this library are drawn from the front, so this is not a general issue in this library.)
Does anyone know if there is a rationale for this? Is it an error?
It depends on what you actually need and how do you want to do it.
First, this is a footprint and meant for attaching an existing UNO board to your design using pin headers. This is not a template for a “shield” (which can be found in templates). I say this because sometimes it’s not clear and I don’t know you or your needs.
Second, if you look at the photo, you can see that if you have a design where the top side is the component side and want to attach UNO there, you have to flip the UNO. Its pin sockets are on its own top side.
If you want to attach the UNO in the bottom of your design – or your design on top of UNO if we say it that way – you can flip the footprint to the bottom side of your design, in which case the pin headers and the connector outlines are seen like in the top view of the UNO. If you want ready-made outline for this setup you can start your design from the template, although in the template the pin headers seem to be in the wrong side unless you want to re-design an UNO!
Yes, that would be a good rationale. I had previously rejected that idea because having mounted the Uno face down, the features of the board, such as LEDs, are inaccessible.
It would make more sense to obtain a variant of the board with headers unpopulated, then attach either pins to the bottom or stackable headers conventionally, so you can mount the UNO face up.
But somewhat to my surprise, search just now did not find such products, though headerless Leonardos are available and can be used in the manner I expected. Hmmm.
I myself got caught out when I plopped this footprint (actually the variant with mounting holes) onto a host PCB that was intended as a learning platform. The Arduino bolts onto the larger host board. Users would jumper from the Arduino headers to other points on the host PCB. Admittedly not a mainstream application, as it did not wire anything to the headers via the PCB per se. I did catch the problem in time, so no harm done.
Anyhow, at this point in time, the “module” library looks to be a bit of a dated hodge-podge, so this issue is not a big deal.
In case some future library author stumbles on this post, it would be nice if a future edition of this library would include text to point out that this is a “face down” footprint.
I find this arduino pin layout quite horrible. It’s mostly a big empty PCB and it is not even compatible with 2.54mm matrix board. Also, because there is not much on it, it’s circuitry can just as well (or even better) be integrated onto the PCB you are designing yourself. The “arduino nano” (in DIP format pinout) is already a lot more sensible. But still I prefer the dual row pin header. You can choose to either stack connectors (with something else to prevent the PCB’s from flopping around) or use flatcable connectors.
UNO are also good if having the space. But, more practically, they are good as Atmel-Chip programmers.
UNO uses Atmel p328 DIP and user can swap the p328 chip and program another one. In fact, given removal (with a Tool) is a still a pain, I placed a ZIF into the DIP socket.
I use the p328 and various AT Tiny chips (in DIP sockets) on my PCB’s.