Introducing The First Cisco Certified Mixologist

You’d be hard pressed to find an IT back office that doesn’t have a few Cisco routers or switches laying around and collecting dust. We’d even bet there are a decent number of people reading this post right now that have a stack of them within arm’s reach. They’re the kind of thing most of us have no practical application for, but we still can’t bear to throw away. But it looks like [Sven Tantau] has found an ideal middle ground: rather than junk his Cisco Catalyst switches, he turned them into automatic bartenders.

Inspired by all those perfect little square openings on the front, [Sven] loaded each switch with a whopping 24 peristaltic pumps, one for each Ethernet port. To fit all his plumbing inside, the switches were naturally gutted to the point of being hollow shells of their former selves, although he does mention that their original power supplies proved useful for keeping two dozen power-hungry motors well fed.

The motors are connected to banks of relays, which in turn are thrown by an ESP32 and an Arduino Nano. [Sven] explains that he wasn’t sure if the ESP32 could fire off the relays with its 3 V output, so he decided to just use an Arduino which he already knew could handle the task. The two microcontrollers work in conjunction, with a web interface on the ESP32 ultimately sending I2C commands to the Arduino when it’s time to get the pumps spinning.

[Sven] mentions his robotic bartenders were a hit at the 2019 Chaos Communication Camp, where we know for a fact the computer-controlled alcohol was flowing freely. Of course, if you don’t intend on carrying your barbot around to hacker camps, you can afford to make it look a bit swankier.

Continue reading “Introducing The First Cisco Certified Mixologist”

Trill: Easy Positional Touch Sensors For Your Projects

Creating capacitive touch-sensitive buttons is easy these days; many microcontrollers have cap-sense hardware built-in. This will work for simple on/off control, but what if you want a linear, position-sensitive input, like you’d find on a computer touchpad or your smartphone screen? Not so easy — at least until now. Trill is a family of capacitive touch sensors you can add to your projects as a linear slider, a square touchpad, or by creating your own touch surface.

Trill was created by the same team that designed Bela, an embedded platform for low-latency interactive applications, especially with audio. The new trio of Trill sensors rely on capacitive sensing to track finger movement, and communicate over I2C with your microcontroller or development board of choice. The Trill I2C library targets Arduino and Bela, but should be easy to port to any I2C host.

The hardware and software are both open-source — or will be as the Kickstarter that launched this morning has already met its goal. The firmware for the Cypress CY8C20636A (PDF) controller that powers these sensors will be released CC-BY-NC-SA. But, starting with the controller itself sounds like a lot of work that Trill has already done for you, so let’s have a look at what we know so far, along with a healthy dose of speculation.

Continue reading “Trill: Easy Positional Touch Sensors For Your Projects”

PackProbe Reports Laptop Battery Health

The 18650 cell has become a ubiquitous standard in the lithium battery world. From power drills to early Tesla vehicles, these compact cells power all manner of portable devices. A particularly common use is in laptop batteries, where they’re often built into a pack using the Smart Battery System. This creates a smart battery that can communicate and report on its own status. PackProbe is a software tool built to communicate with these batteries, and you might just find it comes in handy.

The code runs on the WiFi-enabled Arduino Yún by default, but can be easily modified to suit other Arduino platforms. Communicating over SMBus using the Arduino’s I2C hardware, it’s capable of working with the vast majority of laptop batteries out there which comply with the Smart Battery System. With that standard being minted in 1994, it’s spread far and wide these days.

It’s a great way to harvest not only the specifications and manufacturing details of your laptop battery pack, but also to check on the health of the battery. This can give a clear idea over whether the battery is still usable, as well as whether the cells are worth harvesting for those in the recycling business.

You’re not limited to just the Arduino, though. There’s a similar tool available for the ESP8266, too.

Back To Basics With An Arduino And An EEPROM

There are plenty of techniques and components that we use in our everyday hardware work, for which their connection and coding is almost a done deal. We are familiar with them and have used them before, so we drop them in without a second thought. But what about the first time we used them, we had to learn somewhere, right? [TheMagicSmoke] has produced just what we’d have needed then for one component that’s ubiquitous, the I2C EEPROM.

These chips provide relatively small quantities of non-volatile memory storage, and though they are not the fastest of memory technologies they have a ready application in holding configuration or other often-read and rarely written data.

Since the ST24C04 512-byte device in question has an I2C bus it’s a straightforward add-on for an Arduino Mega, so we’re shown the wiring for which only a couple of pull-down resistors are required, and some sample code. It’s not the most complex of projects, but it succinctly shows what you need to do so that you too can incorporate an EEPROM in your work.

If learning about I2C EEPROMs piques your interest, perhaps you’d like to read a previous look we made at them.

DIY Button Matrix Lights Up And Speaks I2C

[David Johnson-Davies] always wanted an illuminated button matrix for projects, but cost was never very friendly. That all changed when he discovered a cheap source of illuminated pushbuttons on Aliexpress, leading to this DIY 4×4 illuminated button matrix design which communicates over I2C. The button states can be read independently of setting the light pattern, and an optional interrupt signal gets pulled low whenever there is a change detected. Not bad for one PCB plus about $10-worth in components!

The device uses every single pin on an ATtiny88, and because each button gets its own pin the keypresses can be detected with pin-change interrupts. The state reporting of buttons over I2C is unambiguous, even when multiple buttons are pressed simultaneously. A simple protocol provides all the needed functionality, and all connections are brought to the board’s edge to allow for easily tiling multiple panels.

The GitHub repository contains the code and PCB files and [David] helpfully shared the board files to OSH Park and PCBWay for easy ordering. In addition, he provides two demos (Tacoyaki and Tacoyaki+) which are games related to the classic Lights Out to show off the matrix.

Wii Nunchuk Gets A Built-in Raspberry Pi Zero

The Wii controller will likely go down in history as the hacker’s favorite repurposed input device, and there’s no question that the Raspberry Pi is the community’s top pick in terms of Linux single board computers. So it should come as little surprise that somebody has finally given us the cross-over episode that the hacking community deserves: the PiChuk, a Pi Zero inside of Nintendo’s motion-sensing “nunchuk”.

Veterans of Wii Sports might be wondering how the hero of our story, a hacker by the name of [keycaps], managed to pull off such a feat. The Pi Zero is small, but it’s not that small. The trick is that the case of the nunchuk has been extended by way of a new 3D printed bottom half.

There’s more than just a Pi Zero along for the ride, as well. [keycaps] has manged to sneak in a 750 mAh LiPo and an Adafruit Powerboost, making the device a completely self-contained system. Interestingly, the original nunchuk PCB remains more or less untouched, with just a couple of wires connected to the Pi’s GPIO ports so it can read the button and stick states over I2C.

We know you’re wondering why [keycaps] went through the trouble of breaking out the HDMI port on the bottom. It turns out, the PiChuk is being used to drive a Vufine wearable display; think Google Glass, but without the built-in computing power. The analog stick and motion sensing capabilities of the controller should make for a very natural input scheme, as far as wearable computers go.

So not only could the PiChuk make for an awesome wireless input device for your next project, it’s actually a pretty strong entry into the long line of wearable computing devices based on the Pi. Usually these have included a DIY version of the distinctive Google Glass display, but offloading that onto a commercially available version is certainly a lot easier.

A Raspberry Pi Is A Hardware Hacker’s Swiss Army Knife

By now most of us have used a Raspberry Pi at some level or another. As a headless server it’s a great tool because of its price point, and as an interface to the outside world the GPIO pins are incredibly easy to access with a simple Python script. For anyone looking for guidance on using this device at a higher level, though, [Arun] recently created a how-to for using some of the Pi’s available communications protocols.

Intended to be a do-everything “poor man’s hardware hacking tool” as [Arun] claims, his instruction manual details all the ways that a Raspberry Pi can communicate with other devices using SPI and I2C, two of the most common methods of interacting with other hardware beyond simple relays. If you need to go deeper, the Pi can also be used as a full JTAG interface or SWD programmer for ARM chips. Naturally, UART serial is baked in. What more do you need?

As either a tool to keep in your toolbox for all the times you need to communicate with various pieces of hardware, or as a primer for understanding more intricate ways of using a Raspberry Pi to communicate with things like sensors or other computers, this is a great write-up. We also have more information about SPI if you’re curious as to how the protocol works.

Thanks to [Adrian] for the tip!