Making PCBs

There is a first time for everything and this time it’s about drawing a PCB and using a board house to manufacture it.

I drew a even smaller breakout board for the MPU-6050 with Eagle and sent the files to Seeedstudio’s “Fusion PCB service”. Now we’ll have to wait and see what comes out of it. (Btw, Seeedstudio has also a stencil service.) Eagle’s freeware version is limited to 100 x 80 mm 2-layer boards and non-profit applications. I chose Eagle over open source KiCAD, because Seeedstudio had downloadable design rules and a gerber generator that plug straight into Eagle. (One note: even though it says on the Seeedstudio site, that “the Gerber file must be RS-274x format”, the drill file generated by the gerber generator is not of that format by default. And from my very very limited experience that seems to be correct and no changes are needed.) Anyway, if these boards turn out OK, I’m likely to use this service again. It’s almost too easy and the price seems quite affordable 🙂

A couple of great tutorials have also helped me: Jeremy Blum‘s Eagle tutorials on youtube and, because he hasn’t made the 3rd part yet, this article from Dangerous Prototypes. Also there was some Spanish tutorial on youtube about the CAM stuff and Gerber generation, but I didn’t bookmark the link.. ah, well. Then there is SparkFun’s tutorial, which is something I definitely should have read before sending the files 🙂

EDIT: Sparkfun also posted this and this video recently.

EDIT #2: Ben Heck also published an Eagle tutorial. (Note: Eagle has now close ties with Farnell/Element14, but you are forced to use their services (not yet, anyway) when using Eagle.)

One of the advantages of using Eagle is the option to use nice and simple part libraries from both Adafruit and SparkFun. The latter has even a schematic and layout for the MPU-6050 breakout board linked to in the product description. They include the most common components and you won’t have to go through the whole parts jungle. If you can’t find the part you’re looking for, there’s a tutorial to create your own.

That about covers this topic for now, but as a note to self, here are some “loose ends” I’ve gathered:

Book recommendations

To get a better understanding about the I2C-bus, I’ve been reading Vincent Himpe’s Mastering the I2C bus. Excellent stuff and very praxis oriented. (Two thirds of the book is dedicated to various projects you could build. The project demo PCBs are available for purchase, but they aren’t exactly cheap. Nevertheless, the book by itself was definetly worth the purchase to me.)

I also bought Mastering surface mount technology by the same author. Its light reading and covers a plethora of various topics – not just SMT stuff. (I learned about it on the EEVblog. Check out the Dave’s quick first glance review of it. The review starts about 24 min into the video.)

Based on these books, I can’t help but recommend this LabWorX series by Elektor if practical advice is your thing. Currently they’ve only published these two. I can’t wait for the topics yet to come, like the SPI-bus. (I’ve yet to test the data transfer speed on that one.)

EDIT: Nowadays, I think the book “Mastering the I2C Bus” is a little misleading when it comes to the slave’s ability to slow the bus down. The book nearly completely fails to mention clock stretching. It’s not even in the index. Many other sources – including the documentation from NXP (on page 13) – declare that that’s the way to slow the bus down. Just a thing to keep in mind! It sure got me confused, but then again, that’s pretty easy to do.

Randomness

1 – I read a book about Arduino and embedded systems by David Russell. I’ts a nice introduction to embedded systems, C and the ATmega328. It does not cover the Arduino IDE at all, but rather introduces concepts, the C-language and the microcontroller with it’s features. I guess it’s worth reading and certainly beats studying only the uC’s datasheet. It doesn’t go into detail about the I2C and SPI busses, though.

2 – Also, learned (at the local hackerspace) that quaternions are turned into something more “real” by simply throwing them against suitable rotation matrices.. This needs to be looked into. Apparently it is done all the time in computer graphics programming.

3 – Learned that Seeed Studio also does PCB manufacturing. (Click on “services”.) Looks like I’ve got to teach myself to use Eagle after all. I just hate that messy component library system. It takes ages just to find a resistor. Well, as a newbie it does, anyway.

4 – Ordered a SMD rework station.

Random notes for PCB design..

I’ve done some hobby electronics using primarily through-hole parts, so SMDs (surface mount devices) are somewhat new to me. (I haven’t been paying much attention to them, because I tend to use vero boards or self etched PCBs without solder mask or other fancy things.) Notes-to-self:

  • The MPU-6050 comes in a 24-lead QFN package. This sucks, because it will be harder to solder than a QFP package.
  • Soldering 0805 packages by hand should be OK
  • Pick and place machines should be able to handle down to 0603 packages, but not every machine can do 0402 packages. (Heard this on The Amp Hour, I think.)
  • Also, DX sells SMD soldering practice boards. I might try this out…
A couple of different packages

Here is a pic to demonstrate scale