An abundance of shelves makes for an I2C playground

It’s not hard to assume that most Hackaday readers are at least familiar with I2C. In fact, chances are anyone who has ever done more with an Arduino than blinking the built-in LED has ever used the serial communication protocol to talk to a sensor, display, or other external gadget. Of course, the fact that most of us have used it in a few projects doesn’t mean we really understand it.

If you want to brush up on your I2C knowledge, you could do worse than follow the guide [András Tevesz] wrote recently. With a title like Hardware Hacking 101: E01 I2C Sniffing, How to Listen to Your Arduino’s I2C Bus, you know you’re in for a good time. While the paper is arguably more aimed at security researchers than electronic hobbyists, the concepts presented can be helpful even if you’re just trying to debug your own projects.

While you could certainly adapt the hardware used to whatever you’ve been kicking around the parts bin, the setup [András] details uses a BeagleBone Black as the main device communicating with an Adafruit Trinket and Arduino via I2C. He provides code for all three devices, and if everything works as it should, the microcontrollers flash their LEDs in time and signals are sent over the bus by the BeagleBone.

This in itself has educational value. Sure, most of us have used off-the-shelf I2C devices, but how many have actually made one? But beyond that, it also gives you a simple and user-controllable bus to snoop around. [András] plug in a Saleae logic analyzer (fear not, that $10 USD you bought on eBay will work just as well) and study the actual messages as they go over the wire. If you’ve ever wanted to get a closer look at the nuts and bolts of this ubiquitous protocol, this is a great way to get your foot in the door. While you’re on the subject, be sure to check out our very own excellent guide [Elliot Williams] wrote in 2016.

[Thanks to zh4ck for the tip.]

This post An abundance of shelves makes for an I2C playground

was original published at “”