conorpp / u2f-zero

U2F USB token optimized for physical security, affordability, and style
Other
2.41k stars 202 forks source link

Improve PCB layout for EMC, ESD, fab yield #37

Closed alexisvl closed 7 years ago

alexisvl commented 7 years ago

Hey, thanks for this nice project! Actually saw this mentioned on Twitter and bought a couple right away :) Thought I'd have a play around with the sources.

I noticed a few things worth improving on the PCB, so I thought I'd submit a pull request. This commit fully reroutes the PCB, changing:

I haven't moved the programming points, so nothing changes for test/flash. I did move the decoupling capacitors - if that's an inconvenience for assembly, I can put them back where they were and keep the rest of the changes, but for EMC purposes they should really go where I moved them to.

conorpp commented 7 years ago

Wow, awesome job! Looks a lot better.

I had little knowledge about these things until now -- thanks a lot for contributing.

If I find anyone trying to do emission tests, I'll try to make sure they use this revision :)

If you (or anyone else) orders new revision boards from dirtyPCBs or similar fab, please let me know the store link so I can put it on the wiki.

bmkillian commented 7 years ago

@cpavlina @conorpp - Out of curiosity, should there be pull-up resistors added for the I2C bus connection between the micro and the encryption coprocessor?

alexisvl commented 7 years ago

Ideally yes, but as long as it's working... I assume it's using the resistors internal to the microcontroller, which are probably (NB: didn't read the datasheet) on the order of 50k. That'll give pretty long rise times, but if the bus is running at a low enough clock rate it shouldn't matter, I2C is pretty tolerant. If there ever was data corruption, I'd be looking there, but things seem to work fine.

conorpp commented 7 years ago

Yes, internal weak pull ups in the microcontroller are used. They didn't seem to be an issue as I never ran into integrity errors during development.