Multiple OLEDs? Save Pins By Sharing The I2C Clock

Inexpensive OLED displays with I2C interfaces abound, but there is a catch: they tend to be stuck on I2C address 0x3C. Some have a jumper or solder pads to select an alternate (usually 0x3D), but they lack any other method. Since an I2C bus expects every device to have a unique address, this limits the number of displays per bus to one (or two, at best.) That is all still true, but what [Larry Bank] discovered is a way to get multiple OLED displays working with considerably fewer microcontroller pins than usually needed.

While bit-banging I2C to host one display per bus on the same microcontroller, an idea occurred to him. The I2C start signal requires both clock (SCL) and data (SDA) to be brought low together, but what would happen if the displays shared a single clock line? To be clear, each OLED would — logically speaking — still be on its own I2C bus with its own data line, but they would share a clock signal. Would a shared clock cause attached devices to activate unintentionally?

A quick test consisting of four OLED displays (all with address 0x3C) showed that it was indeed possible to address each display with no interference if they shared a clock. Those four individually controlled displays needed only five I/O lines (four SDA, one shared SCL) instead of eight. The Multi_OLED library is available on GitHub, and in case it is useful for devices other than OLED displays, bit-banged I2C with support for shared clock lines is available separately.

There’s more to do with OLEDs than get clever with signals: check out these slick number-change animations, and that even looks to be a project that could benefit from a few saved GPIO pins, since it uses one small display per digit.

Blink An LED On The Internet Of Things

Blinking an LED is generally considered the hardware equivalent of the classic “Hello World” project. It’s a quick and simple test to show that you’ve got the basics worked out, and a launching point for bigger and better things. So why should it be any different in this glorious new Internet of Things era?

The “WiFi HDD LED” created by [Limbo] is essentially just that, a status LED that can be triggered remotely thanks to the WiFi capability of the ever-popular ESP8266. Don’t think there’s much use for a wireless LED that blinks when your computer’s hard drive is thrashing around? Maybe not, but it’s definitely worth checking out if you’re looking for a good way to get your feet wet in the world of ESP hacking.

On the hardware side, this is exactly what you’d expect: an LED hanging off the digital pin of an ESP8266 module. If you go with the bare ESP-01 like [Limbo], things are somewhat more complex due to the need for a voltage regulator, but if you’re using one of the more common ESP development boards then there’s nothing else you need to add. Really, as a proof of concept you could even use the built-in LED on those boards.

As you might imagine, this project is more about the software than the hardware. The code on both sides of the equation has been released as open source for your hacking pleasure, and is more capable than you’d probably expect. The LED is actually an extension of a system activity monitor that [Limbo] had previously developed and includes a binding function to make sure you’re talking to the right blinking ESP. It’s probably overkill for many purposes, but it’s a good example of how to do more robust UDP connections than we’re used to seeing.

This project is one of many that prove there’s more than one way to accomplish a particular goal, and that there’s something to be learned from even the most eccentric of hacks.

Continue reading “Blink An LED On The Internet Of Things”

An ATtiny Metal Detector

A metal detector used to be an entirely analogue instrument, an oscillator whose frequency changed with the inductance of its sense coil when a piece of metal approached. [Łukasz Podkalicki] shows us a more sophisticated machine, but with judicious use of an ATtiny 13 it is not a complex one.

A pulsed induction metal detector induces a current spike in its search coil, and times the decay of the resulting oscillation. The coil is part of a resonant circuit with a capacitor, and any metal in its field will change its resonant frequency. In [Łukasz]’s design the ATtiny13 fires a pulse at his coil using a MOSFET, and the voltages at the coil are sensed by an analogue pin through an appropriate clamp circuit. His software does the timing, and sounds a buzzer upon metal detection. It’s a deliciously simple implementation, and while as he shows us in the video below the break its relatively small coil is more suited to detecting coins or wires behind the drywall than locating lost hoards, there is probably ample scope for further experimentation.

This isn’t the first project from [Łukasz] that has found its way into these pages, his history with the ATtiny13 goes back a few years.

Continue reading “An ATtiny Metal Detector”

Glowtie Is Perfect For Those Fancy Dress Raves

Are you bored of your traditional bow tie? Do you wish it had RGB LEDs, WiFi, and a web interface that you could access from your smartphone? If you’re like us at Hackaday…maybe not. But that hasn’t stopped [Stephen Hawes] from creating the Glowtie, an admittedly very slick piece of open source electronic neckwear that you can build yourself or even purchase as an assembled unit. Truly we’re living in the future.

Evolution of the Glowtie

While we’re hardly experts on fashion around these parts (please see the “About” page for evidence), we can absolutely appreciate the amount of time and effort [Stephen] has put into its design. Especially considering his decision to release the hardware and software as open source while still putting the device up on Kickstarter. We seen far too many Kickstarters promising to open the source up after they get the money, so we’re always glad to see a project that’s willing to put everything out there from the start.

For the hardware, [Stephen] has gone with the ever popular ESP8266 module and an array of WS2812B LEDs around the edge of the PCB. There’s also a tiny power switch on the bottom, and a USB port for charging the two 1S 300mAh lipo batteries on the backside of the Glowtie. The 3D printed rear panel gives the board some support, and features an integrated bracket that allows it to clip onto the top button of your shirt. For those that aren’t necessarily a fan of the bare PCB look or blinding people with exposed LEDs, there’s a cloth panel that covers the front of the Glowtie to not only diffuse the light but make it look a bit more like a real tie.

To control the Glowtie, the user just needs to connect their smartphone to the device’s WiFi access point and use the web-based interface. The user can change the color and brightness of the LEDs, as well as select from different pre-loaded flashing and fading patterns. The end result, especially with the cloth diffuser, really does look gorgeous. Even if this isn’t the kind of thing you’d wear on a daily basis, we have no doubt that you’ll be getting plenty of attention every time you clip it on.

It should be said that [Stephen] is no stranger to wearable technology. We’ve previously covered his mildly terrifying wrist mounted flamethrower, so if he managed to build that without blowing himself up, we imagine building a light up tie should be a piece of cake in comparison.

Continue reading “Glowtie Is Perfect For Those Fancy Dress Raves”

Get Twelve Charlieplexed PWM Outputs From An ATtiny85

Most of us are aware that charlieplexing can drive a large number of LEDs from a relatively small number of I/O pins, but [David Johnson-Davies] demonstrates adding another dimension to that method to create individually controlled PWM outputs as well. His ATtiny85 has twelve LEDs, each with individually-set brightness levels, and uses only four of the five I/O pins on the device.

Each LED can be assigned a brightness between 0 (fully off) and 63 (fully on). The PWM is done by using one of the timers in the ATtiny85 to generate a periodic interrupt, and the ISR for the interrupt takes care of setting the necessary ratios of on and off times for each charlieplexed output. The result? Twelve flicker-free LEDs with individually addressable brightness levels, using an 8-pin microcontroller and just a few passive components on a tiny breadboard. There’s even one I/O pin left on the ATtiny85, for accepting commands or reading a sensor.

[David] really wrings a lot out of the ATtiny series of microcontrollers with his compact projects, like his Tiny Function Generator (which recently got an update.) He also demonstrated that while charlieplexing is usually used with LEDs, charlieplexing can be used with switches just as easily.

A Coin Cell Powers This Tiny ESP32 Dev Board

Just for the challenge, just for fun, just for bragging rights, and just to do a little showing off – all perfectly valid reasons to take on a project. It seems like one or more of those are behind this tiny ESP32 board that’s barely larger than the coin cell that powers it.

From the video below, [Mike Rankin] has been working down the scale in terms of powering and sizing his ESP32 builds. He recently completed a project with an ESP32 Pico D4 and an OLED display that fits exactly on an AA battery holder, which he populated with a rechargeable 14550. Not satisfied with that form factor, he designed another board, this time barely larger than the LIR2450 rechargeable coin cell in its battery holder. In addition to the Pico D4, the board sports a USB charging and programming socket, a low drop-out (LDO) voltage regulator, an accelerometer, a tiny RGB LED, and a 96×16 OLED display. Rather than claim real estate for switches, [Mike] chose to add a pair of pads to the back of the board and use them as capacitive touch sensors. We found that bit very clever.

Sadly, the board doesn’t do much – yet – but that doesn’t mean we’re not impressed. And [Mike]’s no stranger to miniaturization projects, of course; last year’s Open Hardware Summit badge was his brainchild.

Continue reading “A Coin Cell Powers This Tiny ESP32 Dev Board”

Talking Telegram With The ESP8266

At this point it’s something of a given that a member of the ESP8266 family is likely your best bet if you want to cobble together a small Internet-connected gadget. Costing as little as $3 USD, this well documented all-in-one solution really can’t be beat. But of course, the hardware is only one half of the equation. Deciding how to handle the software side of your homebrew Internet of Things device is another story entirely.

A simple Telegram ESP8266 switch

It would be fair to say that there’s no clear-cut “right” way to approach the software, and it really depends on the needs or limitations of your particular project. For example [Brian Lough] finds that building Telegram support into his ESP8266 allows him to accomplish his goals with the minimum amount of fuss while at the same time using an environment he’s already comfortable with. He recently wrote in to share one of his Telegram projects with us, and in the video after the break, takes the time to explain some of the things he likes best about controlling his hardware through the encrypted chat platform.

But you don’t have to take his word for it, you can try it yourself. Thanks to the software library that [Brian] has developed to connect his projects to Telegram, the aptly named “Universal Telegram Bot Library”, anyone can easily follow in his footsteps. Adding his Telegram library to your next ESP8266 project is as easy as selecting it in the Arduino IDE. From there the video explains the process for getting a bot ID from Telegram, and ultimately how you use it to receive messages from the service. What you do with those messages is entirely up to you.

According to [Brian], the main downside is that you are beholden to a web service to control your local devices; not ideal if the Internet goes down or you would rather your little hacker projects not talk to the big scary Internet in the first place. If you’d rather keep all your smart things talking within the confines of your own network, perhaps your next project could be setting up a private MQTT server.

Continue reading “Talking Telegram With The ESP8266”