A few weeks back, we talked about the no-nos of running I²C over long wires. For prototyping? Yes! But for a bulletproof production environment, this practice just won’t make the cut. This month I plucked my favorite solution from the bunch and gave it a spin. Specifically, I have put together a differential I²C (DI²C) setup with the PCA9615 to talk to a string of Bosch IMUs. Behold: an IMU Noodle is born! Grab yourself a cup of coffee and join me as I arm you with the nuts and bolts of DI²C so that you too can run I²C over long cables like a boss.
What’s so Schnazzy about Differential Signals?
There’s a host of ways to make I²C’s communication lines more noise resistant. From all of the choices we covered, I picked differential signals. They’re simple, fairly standardized, and just too elegant to ignore. Let’s take a moment for a brief “differential-signals-101” lecture. Hopefully, you’re already caffeinated! Continue reading “An Introduction to Differential I²C”→
The LTC4316 is something special. It’s an I²C address translator that changes the address of a device that would otherwise conflict with another on the same I²C bus. Not a hack? Not so fast. Exactly how this chip does this trick is clever enough that I couldn’t resist giving it the post it rightfully deserves.
What’s so special? This chip translates the address on-the-fly, making it transparent to the I²C protocol. Up until this point, our best bet for resolving address collisions was to put the clashing chip on a separate I²C bus that could be selectively enabled or disabled. In that department, there’s the PCA9543 and PCA9547 demultiplexers which we’ve seen before. Both of these devices essentially act like one-way check valves. To address any devices downstream, we must first address the multiplexer and select the corresponding bus. While these chips resolve our address collision problems, and while there’s technically a way to address a very large number of devicesif we’re not time-constrained, the control logic needed to address various bus depths can get clunky for nested demultiplexers.
What’s so classy about the LTC4316 is that is preservers simplicity by keeping all devices on the same bus. It prevents us from having to write a complicated software routine to address various sections of a demultiplexed I²C bus. In a nutshell, by being protocol-transparent, the LTC4316 keeps our I²C master’s control logic simple.
If you’re reading these pages, odds are good that you’ve worked with I²C devices before. You might even be the proud owner of a couple dozen sensors pre-loaded on breakout boards, ready for breadboarding with their pins exposed. With vendors like Sparkfun and Adafruit popping I²C devices onto cute breakout boards, it’s tempting to finish off a project with the same hookup wires we started it with. It’s also easy to start thinking we could even make those wires longer — long enough to wire down my forearm, my robot chassis, or some other container for remote sensing. (Guilty!) In fact, with all the build logs publishing marvelous sensor “Christmas-trees” sprawling out of a breadboard, it’s easy to forget that I²C signals were never meant to run down any length of cable to begin with!
As I learned quickly at my first job, for industry-grade (and pretty much any other rugged) projects out there, running unprotected SPI or I²C signals down any form of lengthy cable introduces the chance for all sorts of glitches along the way.
I thought I’d take this week to break down that misconception of running I²C over cables, and then give a couple examples on “how to do it right.”
At this point, the internet is crawling with butt-kicking homebrew 3D printers made with extruded profiles, but it’s easy to underestimate the difficulty in getting there. Sure, most vendors sell a suite of interlocking connectors, but how well do these structural framing systems actually fare when put to the task of handling a build with sub-millimeter tolerances?
I’ve been playing around with these parts for about two years. What I’ve found is that, yes, precise and accurate results are possible. Nevertheless, those results came to me after I failed and–dry, rinse, repeat–failed again! Only after I understood the limits of both the materials and assembly processes was I able to deliver square, dimensionally accurate gantries that could carry a laser beam around a half-square-meter workbed. That said, I wrote a quick guide to taming these beasts. Who are they? What flavors do they come in? How do we achieve those precision results? Dear reader, read on.
Apart from the harmonic drive, the engineering community hasn’t really come up with any clever mechanisms for speed-to-torque conversion in the last few decades. However, recently a few folks at SRI have given us one more transmission to drool over: the Abacus Drive.
The Abacus Drive takes the standard concepts of a cycloidal drive, but takes the eccentric gear tooth pattern that we’re familiar with and converts it to two grooves in which an array of rolling spacers will ride. The benefit with this design is two-fold: it’s both constructed from entirely rigid components (unlike the harmonic drive), and it has a low-backdriving torque, enabling the application to more easily detect changes in load.
Achieving an affordable low-speed, high-torque transmission has been a holy grail among roboticists, where every motor-driven manipulator joint becomes an engineering design headache where the designers fight their application’s backlash, torque, and price constraints to get a functional robot arm. This problem stems from the fact that motors just don’t perform efficiently at low-speeds, where the near-stall conditions cause them to draw vastly larger amounts of torque compared to their full-speed conditions. While the Abacus Drive isn’t hitting the market anytime soon, we’ll let this idea stew in the community and hope to see some budget variants pop up in the near future.
Every laser cutter enthusiast eventually pops the question: how on earth do I align an invisible beam that’s more-than-happy to zap my eyeballs, not to mention torch everything else in its path? We hate to admit it, but laser cutter beam alignment is no easy task. To greatly assist in this endeavor, though, some folks tend to mix a red diode laser into the path of the beam. Others temporarily fixture that diode laser directly in the beam path and then remove it once aligned.
Few of us document the progression of our side projects. For those who do, those docs have the chance at becoming a tome of insight, a spaceman’s “mission log” found on a faraway planet that can tell us how to tame an otherwise cruel and hostile world. With the arrival of the RDWorks Learning Lab Series, Chinese laser cutters have finally received the treatment of a thorough in-depth guide to bringing them into professional working order.
In two series, totalling just over 90 videos (and counting!) retired sheet-metal machinist [Russ] takes us on a grand tour of retrofitting, characterizing, and getting the most out of your recent Chinese laser cutter purchase.
Curious about laser physics? Look no further than part 2. Wonder how lens size affects power output? Have a go at part 39. Need a supplemental video for beam alignment? Check out part 31. For every undocumented quirk about these machines, [Russ] approaches each problem with the analytic discipline of a data-driven scientist, measuring and characterizing each quirk with his suite of tools and then engineering a solution to that quirk. In some cases, these are just minor screw adjustments. In other cases, [Russ] shows us his mechanical wizardry with a custom hardware solution (also usually laser cut). [Russ] also brings us the technical insight of a seasoned machinist, implementing classic machinist solutions like a pin table to produce parts that have a clean edge that doesn’t suffer from scatter laser marks from cutting parts on a conventional honeycomb bed.