First-time hobbyist project, looking for review

Hi everyone!

I’ve been working with a friend to design a new PCB for the clicky IBM model M keyboards. He implemented the schematics and design in geda/gschem/pcb, and in order to teach myself a bit I decided to try manually recreating the same design in Eagle (which I’ve never used before today).

Now that I think I have a rough idea of how the layout functions, I’d like to see if anybody would be willing to look over the design and see if it makes sense or if there are any obvious mistakes. We’re using an ATmega32 and the plan is to run a modified AVRUSB stack on top of it (I know it won’t ever technically certify as USB compliant but AVRUSB is Good Enough for me.)

I exported the layout to a PNG: http://c133.org/ibm-keyboard-pcb.png

And you can download the schematics and board file in Eagle format at: http://c133.org/rump.zip

(‘RUMP’ is short for Real USB Model-M PCB.)

Thanks for taking a look!

Is C3 supposed to be inside the ATMega32? I’m guessing you intend for it to be on the bottom of the board, but it looks like a through hole part, so it’s solder would still be on the top of the board. I guess if you are sure the ATMega32 chip has sufficient clearance underneath it would work. But most chips sit right down on the board, which might be a problem.

This wouldn’t be a problem if it was a SMD part on the bottom, of course.

Keith

you could just as easily rotate C3 90 degrees, place the trace that goes outside the uC to go under the uC, add a little tail from that trace to one pin of C3, and then the other to the ground plane with thermals.

This would place C3 up and to the left a bit of where it is currently.

If he is using a socket for the AVR then it would be no problem, provided it is a small ceramic cap. They just fold over under the AVR out of sight.

Yes, the plan is to use a small ceramic cap for C3 and a socket for the AVR. And - worst-case scenario - if the cap doesn’t fit properly under the socket I’ll just mount it on the bottom of the PCB.

Something slightly more worrying - the 10-pin connector is obviously intended for programming the AVR. However, I think I’ve got it wired wrong - at least, on my breadboard, pin 32 (AREF) seems to need to be wired to either ground or +VCC depending on whether or not I’m programming the AVR. Is that correct? It must be possible to have the programming connector and the rest of the pins all wired up together.

Greetings (No First name Supplied),

clee:
Something slightly more worrying - the 10-pin connector is obviously intended for programming the AVR. However, I think I’ve got it wired wrong - at least, on my breadboard, pin 32 (AREF) seems to need to be wired to either ground or +VCC depending on whether or not I’m programming the AVR. Is that correct? It must be possible to have the programming connector and the rest of the pins all wired up together.

There is continuing confusion about the Atmel AVR

programming headers. There are two in use, a six

and a ten pin. The ten pin is obsolete.

Here’s a [recent thread that should clear up your confusion.

Regarding the AREF pin on AVRs, these are required if

the internal ADC is used, and can be set by firmware to

either accept an external reference or use the internal

reference. I always connect AREF to Vcc, unless I plan

to use the ADC.

It would be wise to read the relavent section in the

AVR data sheet (I’m not crrently using the ATMega32).

Comments Welcome!](ISP Programmer connections ot AVR? - SparkFun Electronics Forum)

bigglez:
The ten pin is obsolete.

I still wonder why anyone ever used 10 pin for ISP, you only need 6…

Possibly was for HVSP or HVPP…

I always use 6 pin ones on my designs.

I used to use five pins with the SP12 programmer. Vcc wasn’t required on the connector.

Leon

The only AVR programmer I have right now is a ponyser 10-pin programmer, but my USBtinyISP should arrive here any day now.

Since I haven’t sent this in for manufacturing yet, I think I’ll rip out the 10-pin and drop in a 6-pin. I’ll update the original post and add a new comment once the new layout is ready. Thanks for the feedback!

The 10-pin connector let you have grounds parallel to your signals in a ribbon cable. Also, the 10-pin IDC is a lot easier to find. I wouldn’t go so far as to claim it’s obsolete, when the newest dev board from Atmel (the STK600) still has a 10-pin ISP header on it.