I2C Bus Splitting With A More Professional Touch

Last week, I covered some of the bitter details of an interesting hack that lets us split up the I²C clock line into multiple outputs with a demultiplexer, effectively giving us “Chip Selects” for devices with the same address.

This week, I figured it’d be best to layout a slightly more practical method for solving the same problem of talking to I²C devices that each have the same address.

I actually had a great collection of comments mention the same family of chips I’m using to tackle this issue, and I’m glad that we’re jumping off the same lead as we explore the design space.

Recalling the Work of Our Predecessors

Before figuring out a clever way of hacking together our own solution, it’s best to see if someone before us has already gone through all of the trouble to solve that problem. In this case–we’re in luck–so much that the exact bus-splitting behavior we want is embedded into a discrete IC, known as the PCA9547.

chip_reverence

It’s worth remembering that our predecessors have labored tirelessly to create such a commodity piece of silicon.

The PCA9547 (PDF) is an octal, I²C bus multiplexer, and I daresay, it’s probably the most practical solution for this scenario. Not only does the chip provide 8 separate buses, up to seven more additional PCA9547s can be connected to enable communication with up to 64 identical devices! What’s more, the PCA9547 comes with the additional benefit of being compatible with both 3.3V and 5V logic-level devices on separate buses. Finally, as opposed to last week’s “hack,” each bus is bidirectional, which means the PCA9547 is fully compliant with the I²C spec.

Selecting one of the eight I²C buses is done via a transfer on the I²C bus itself. It’s worth mentioning that this method does introduce a small amount of latency compared to the previous clock-splitter solution from last week. Nevertheless, if you’re planning to read multiple devices sequentially from a single bus anyway, then getting as close-as-possible to a simultaneous read/write from each device isn’t likely a constraint on your system.

 

With a breakout board to expose the pads, I mocked up a quick-n-dirty Arduino Library to get the conversation started and duplicated last week’s demo.

Happily enough, with a single function to change the bus address, the PCA9547 is pretty much a drop-in solution that “just works.” It’s definitely reassuring that we can stand on the shoulders of our chip designers to get the job done quickly. (They’ve also likely done quite a bit more testing to ensure their device performs as promised.) Just like last week, feel free to check out the demo source code up on Github.

Until next time–cheers!

Amazon Dash: Hack It To Run Your Own Code

The Amazon Dash is a $5 push-to-buy-cat-litter button which has excellent potential for repurposing, but you need to know what is going on inside first. [Tony Dicola] has the details in this excellent bare metal guide to the Dash. In this, he covers how to get inside the Dash and reprogram it to do something more interesting than buying cat litter.

He first cracks the device open, connecting a programmer, then building a toolchain to compile programs to run on. This isn’t for the faint-hearted because you are programming directly for a device that wasn’t really built for it, but [Tony] has posted examples and there are few tools to hold your hand on the way. There is a safety net, [Tony] provided details on how to reset the Amazon Dash Button if you manage to brick it.

We have seen some interesting hacks that repurpose the Dash to capture your child’s bowel movements by intercepting the device connecting to WiFi, but this guide takes it a step further. It allows you to run your own code, which turns this into a really low-cost and well-engineered all-in-one WiFi device. The missing piece is proof-of-concept code to run the WiFi module inside. If you’re working on that we’d love to hear about it!

Continue reading “Amazon Dash: Hack It To Run Your Own Code”

Tonight Is Hacker Chat With The Hackaday Writing Crew

Tonight at 6pm PDT (UTC-7) is that last Hacker Chat before the entry deadline for the 2015 Hackaday Prize. Join us to talk about all things hardware. Those who need last-minute advice, or are looking for team members for an epic weekend hackathon to bootstrap your winning entry, this is the place to find it. It’s worth entering something… we’re giving everyone with an entry a limited-edition shirt.. and a well executed idea just might get you to the next round!

Joining [Brian Benchoff], [Adam Fabio], and me for tonight’s festivities are [Richard Baguley], [Kevin Dady] (aka [Osgeld]), [Bil Herd], [Kristina Panos], and [Al Williams]. We run these things a bit like the wild-west. There is just a bit of structure, but mostly anything goes. As far as the structure, add your project to this sheet if you want it to be one of the discussion topics. Other than that, share your knowledge and opinions while being excellent to each other. See you this evening!

The 2015 Hackaday Prize is sponsored by:

Hebocons And Why They Matter

Everyone remembers Battlebots, and those of us feeling the pains of nostalgia have tuned into the recent reboot on ABC. As with the golden age of Battlebots, all robot fighting competitions eventually become a war between machines perfectly designed for the task. In the original run of Battlebots, this meant a bracket full of wedge bots, with the very cool robots eliminated year after year.

You don’t watch NASCAR for the race, you watch it for the crashes, and professional robot fighting competitions will always devolve into a few hundred laps of left turns. Fire and sparks are great, but there is a better robot fighting competition, and this time anyone can get in the game without spending years working on a robot.

It’s called Hebocon, and it’s billed as, ‘a sumo wrestling tournament for those who don’t have the technical skills to actually make robots’. The best translation I’ve seen is, ‘shitty robot battles’, and it’s exactly what robot battles should be: technical mastery overcome by guile, and massive upsets through ingenious strategy. You won’t get fire and sparks, but one thing is certain: no robot will make it out of Hebocon fully functional, but that’s only because they weren’t fully functional to begin with.

Continue reading “Hebocons And Why They Matter”

3D printed Bubble Blowing Machine

Blow 14,000 Bubbles Per Minute With This 3D Printed Contraption

Like bubbles? Then you’ll love this 3D printed bubble blowing machine. It’s capable of blowing approximately 14,000 bubbles… per minute.

Designed and released on Thingiverse, the array of bubble orifices are 3D printed, as well as the gears and chain that rotate the belt of bubbles. The only thing not 3D printed is the 5 gallon bucket, some aluminum extrusion for mounting it rigidly, and the 50RPM motor that spins it around.

Place the bucket in your driveway, hook up a big fan behind it, and Bob’s your uncle — you’ve got 14,000 bubbles a minute to play with. Is it bad we want to see someone set this up inside a house?

Continue reading “Blow 14,000 Bubbles Per Minute With This 3D Printed Contraption”

Cheap Projector Tells Time, Invades Space

Building a video projector isn’t something that most people do casually, but [Dominic Buchstaller] isn’t most people. As part of an ongoing street art  project, he built a rather neat scrap video projector/bedside lamp/clock device he calls Great Balls of Fire. It is made from a Nokia cell phone screen and a small projector mechanism, mounted inside a frosted glass light sphere.

One of the most interesting parts of the build is the projector mechanism. Rather than build one from scratch or tear apart an expensive Pico projector, [Dominic] found another source: a cheap car logo projector from eBay. These are designed to show a car manufacturer logo on the ground when you open your car door. It came with all of the parts he needed, including an LED light source and optics. He tore that apart and replaced the car logo with the phone screen, creating a very cheap projector. It isn’t that bright, but it is bright enough that when he mounted it inside the glass sphere, it could project the time and the odd space invader. It’s a great example of how sometimes it makes sense to look for a cheap solution rather than a free one: buying the car logo projector saved him a lot of hassle in building the optics. [Dominic] was also responsible for this awesome old-school tube radio hack, where he replaced the guts of an old radio with an internet radio player.

Continue reading “Cheap Projector Tells Time, Invades Space”

Hackaday Prize Entry: A Civilization Starter Kit

Over the last few years, [Marcin] has been working on the building blocks of civilization. He’s busy creating the Global Village Construction Set, the fifty most useful machines ever created. Everything from bread ovens to combine harvesters is part of this Global Village Construction Set, and everything is open source, free for all to use and improve upon.

For this year’s Hackaday Prize, [Marcin] is working on an Open Source Bulldozer. The ability to create earthworks and move dirt around is actually one of humanity’s greatest achievements, and enables the creation of everything from foundations for homes to trans-oceanic canals.

This Open Source bulldozer is astonishingly modular, scaleable from a one-ton microtractor to a 13,000lb dozer, with attachment points for blades, drawbars, and everything else you can attach to a Bobcat earthmover. It’s 168 horses of opensource earthmoving capability, and a perfect addition to this year’s Hackaday Prize.

[Marcin] and his group Open Source Ecology posted a video of this micro bulldozer rolling around on their shop floor recently; you can check that out below. You can also see our coverage of the GLVCS from several years ago.

 

The 2015 Hackaday Prize is sponsored by:

Continue reading “Hackaday Prize Entry: A Civilization Starter Kit”