New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from Nov 13, 2016

Conversation

Projects
None yet
3 participants
@alexisvl
Contributor

alexisvl commented Nov 13, 2016

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:

  • Yield improvements:
    • Wider traces (0.16mm is right at the limit for many cheap fabs, I've had boards fail at that size)
    • Larger annular ring prevents drill breakouts
  • Mechanical robustness:
    • Supporting vias at both ends of the edge pads help prevent them lifting after repeated (ab)use
  • ESD protection:
    • Fly-by routing through the TVS diode and better grounding ensure more reliable clamping of ESD transients, on both data lines and power.
  • EMC:
    • Significantly improved grounding and tighter decoupling will reduce radiated emissions - I do hope nobody decides to perform an emissions test on the version I have ;)

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

This comment has been minimized.

Owner

conorpp commented Nov 13, 2016

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.

@conorpp conorpp merged commit b9ae195 into conorpp:master Nov 13, 2016

@bmkillian

This comment has been minimized.

bmkillian commented Nov 13, 2016

@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

This comment has been minimized.

Contributor

alexisvl commented Nov 13, 2016

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

This comment has been minimized.

Owner

conorpp commented Nov 13, 2016

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment