PCIe For Hackers: Our M.2 Card Is Done

We’ve started designing a PCIe card last week, an adapter from M.2 E-key to E-key, that adds an extra link to the E-key slot it carries – useful for fully utilizing a few rare but fancy E-key cards. By now, the schematic is done, the component placement has been figured out, and we only need to route the differential pairs – should be simple, right? Buckle up.

Getting Diffpairs Done

PCIe needs TX pairs connected to RX on another end, like UART – and this is non-negotiable. Connectors will use host-side naming, and vice-versa. As the diagram demonstrates, we connect the socket’s TX to chip’s RX and vice-versa; if we ever get confused, the laptop schematic is there to help us make things clear. To sum up, we only need to flip the names on the link coming to the PCIe switch, since the PCIe switch acts as a device on the card; the two links from the switch go to the E-key socket, and for that socket’s purposes, the PCIe switch acts as a host.

While initially routing this board, I absolutely forgot about one more important thing for PCIe – series capacitors on every data pair, on the host TX side of the link. We need three capacitor pairs here – on TX of the PCIe switch uplink, and two pairs on TX side of the switch – again, naming is host-side. I only remembered this after having finished routing all the diffpairs, and, after a bit of deliberation, I decided that this is my chance to try 0201 capacitors. For that, I took the footprints from [Christoph]‘s wonderful project, called “Effect of moon phase on tombstoning” – with such a name, these footprints have got to be good.

We’ve talked about differential pair calculations before in one of the PCIe articles, and there was a demo video too! That said, let’s repeat the calculations on this one – I’ll show how to get from “PCB fab website information” to “proper width and clearance diffpairs”, with a few fun shortcuts. Our setup is, once again, having signals on outer layers, referenced to the ground layer right below them. I, sadly, don’t yet understand how to calculate differential impedance for signal layers sandwiched between two ground planes, which is to say – if there’s any commenters willing to share this knowledge, I’d appreciate your input tremendously! For now, I don’t see that there’d be a tangible benefit to such an arrangement, anyway.

Continue reading “PCIe For Hackers: Our M.2 Card Is Done”

Avoiding PCB Crosstalk

Now that it is relatively cheap and easy to create a PCB, it is a common occurrence for them to be used in projects. However, there are a lot of subtleties to creating high-performance boards that don’t show up so much on your 555 LED blinker. [Robert Feranec] is well-versed in board layout and he recently highlighted an animation on signal crosstalk with [Eric Bogatin] from Teledyne LeCroy. If you want a good understanding of crosstalk and how to combat it, you’ll want to see [Eric’s] presentation in the video below.

Simplifying matters, the heart of the problem lies in running traces close together so that the magnetic fields from one intersect the other. The math is hairy, but [Eric] talks about simple ways to model the system which may not be exact, but will be close enough for practical designs.

Continue reading “Avoiding PCB Crosstalk”

Byte Sized Pieces Help The KiCad Go Down

It’s no surprise that we here at Hackaday are big fans of Fritzing KiCad. But to a beginner (or a seasoned veteran!) the learning curve can be cliff-like in its severity. In 2016 we published a piece linking to project by friend-of-the-Hackaday [Chris Gammell] called Contextual Electronics, his project to produce formalized KiCad training. Since then the premier “Getting to Blinky” video series has become an easy recommendation for anyone looking to get started with Libre EDA. After a bit of a hiatus [Chris] is back with bite sized videos exploring every corner of the KiCad-o-verse.

A Happy [Chris] comes free with every video
The original Getting to Blinky series is a set of 10 videos up to 30 minutes long that walks through everything from setting up the the KiCad interface through soldering together some perfect purple PCBs. They’re exhaustive in coverage and a great learning resource, but it’s mentally and logistically difficult to sit down and watch hours of content. Lately [Chris] has taken a new tack by producing shorter 5 to 10 minute snapshots of individual KiCad features and capabilities. We’ve enjoyed the ensuing wave of learning in our Youtube recommendations ever since!

Selecting traces to rip up

Some of the videos seem simple but are extremely useful. Like this one on finding those final disconnected connections in the ratsnest. Not quite coverage of a major new feature, but a topic near and dear to any layout engineer’s heart. Here’s another great tip about pulling reference images into your schematics to make life easier. A fantastic wrapped up in a tidy three minute video. How many ways do you think you can move parts and measure distances in the layout editor? Chris covers a bunch we hadn’t seen before, even after years using KiCad! We learned just as much in his coverage of how to rip up routed tracks. You get the idea.

We could summarize the Youtube channel, but we aren’t paid by the character. Head on down to the channel and find something to learn. Make sure to send [Chris] tips on content you want him to produce!

When Are Dumb LEDs The Smart Choice?

A couple years ago I got into making electronic conferences badges by building a device for DEFCON 25 shaped like a dragonfly. Like all badges the most important design factor was quite literally how flashy it was, and two years ago I delivered on that with ten RGB LEDs. At the time I planned to hand-assemble each and every of the 105 badges at my kitchen table. Given those constraints, and a desire for electrical and programmatic simplicity, I landed on using APA102s (DotStar’s in Adafruit parlance) in the common 5050 sized package. They were easy to place, easy to design with electrically, simple to control, and friendly to a human pick-n-place machine. Though by the end of the production run I had discovered a few problems, the APA102s were a success.

This year I made a new and improved version of the dragonfly, but applying my lessons learned led me to choose a very different LED architecture than 2017. I swapped out the smart LEDs for dumb ones.

Continue reading “When Are Dumb LEDs The Smart Choice?”

Computer Vision For PCB Layout

One of the big problems with doing PCB layout is finding a suitable footprint for the components you want to use. Most tools have some library although — of course — some are better than others. You can often get by with using some generic footprint, too. That’s not handy for schematic layout, though, because you’ll have to remember what pin goes where. But if you can’t find what you are looking for SnapEDA is an interesting source of components available for many different layout tools. What really caught our eye though was a relatively new service they have that uses computer vision and OCR to generate schematic symbols directly from a data sheet. You can see it work in the video below.

The service seems to be tied to parts the database already knows about. and has a known footprint available. As you’ll see in the video, it will dig up the datasheet and let you select the pin table inside. The system does OCR on that part of the datasheet, lets you modify the result, and add anything that it missed.

Continue reading “Computer Vision For PCB Layout”

The Zero Ohm Resistor

What’s your favorite value of resistor? 1K? 10K? They’re all fine, but when you need nearly no resistance at all, nothing beats the good old zero-ohm resistor.

Wait a minute! Resistors are supposed to resist current. What the heck does a zero-ohm resistor do? Well, the short story (tee-hee!) is that it’s like a jumper for single-sided surface-mount boards. In the bad old days, companies used to save money by running single-sided boards, and you could buy wire jumpers to help make the layout that much easier.

Fast forward to the modern era, where there’s not a through-hole component to be seen. What’s the resistance (ideally) of a wire? Zero ohms. And thus the zero-ohm resistor was born. We have a whole spool of them in our closet in 1206, the largest SMD size that we use, in order to be able to sneak two or three tracks underneath, even on a home-etched board. They’re great.

Anyway, what set us off rhapsodizing about the lowest value resistor was this article on the peculiarities of the zero ohm resistor. Of course, nothing has zero resistance, and the article walks you through some of their real-world properties. Enjoy!

LED Matrix Shades You Can Actually See Though

[Gal Pavlin] admits to enjoying the occasional dance music show. For those who have never been to one, LED one-upmanship at these shows is a real and terrible thing, so much so that an entire market exists around it. To that end, [Gal] built a pretty spiffy set of LED glasses.

It took quite a bit of work to arrive at the final design. All the circuitry and LEDs fit entirely within the envelope of the lenses on a pair of sunglass frames of dubious parentage. The batteries squeeze in between the user’s head and temples.

On top of the clever packaging is an equally impressive set of features. Each lens is a matrix of 69 LEDs. They have an accelerometer, a microphone, and a light sensor. There’s even a vibrating alert motor, which we feel is just showing off.  Best of all, you can actually see through the glasses, thanks to clever layout and very tiny LEDs.

The device requires a tag connect or soldering on a pigtail to program. If you’d like to build one yourself all the files are available on [Gavin]’s site. There’s a video of it in operation after the break.

Continue reading “LED Matrix Shades You Can Actually See Though”