A Bolt-On I2C Navigation Key For Your Next Project

We often talk about the advantages of modular hardware here at Hackaday; the ability to just order a few parts online, hook them up with some jumper wires, and move onto the software side of things is a monumental time saver when it comes to prototyping. So anytime we see a new module that’s going to save us time and aggravation down the road, we get a bit excited.

Today we present the very slick I2CNavKey developed by [Saimon], a turn-key interface solution for your builds that can’t quite get away with a couple toggle switches. It not only gives you a four-way directional pad with center button, but a rotary “wheel” like on the old iPods. All of which you can access easily and with a minimum of wiring thanks to the wonders of I2C.

But even that might be selling the module short. This isn’t just a couple of buttons on a breakout board, the I2CNavKey is powered by its own PIC16F18345 microcontroller and features three configurable GPIOs with PWM support (perfect for an RGB LED) plus 256 bytes of onboard EEPROM storage.

[Saimon] has released the entire project as open source hardware for your hacking pleasure, but you can also get them as ready-to-use modules on Tindie for $18 USD [Editor’s Note: Because of a typo we originally we left the 1 out of the price]. Whether you’re a paying customer or not, you get access to the project’s absolutely phenomenal documentation, including a nearly 30 page manual that contains everything you’d ever want to know about the I2CNavKey and how to integrate it into your project. If all hardware was documented with this level of dedication, the world would be a much nicer place for folks like us.

If you recognize the name, or perhaps the affinity for neat I2C-connected input devices, it’s probably because you’ve seen his very similar I2C rotary encoder on these pages previously, which was a finalist in our Open Hardware Design Challenge during the 2018 Hackaday Prize.

An Even Smaller World’s Smallest LED Blinky

Everything can be done with a 555. It’s a universal law, as all readers know. And a flashing light, you might think, will have been done before many times. But nobody has ever created a 555 flashing light as small as thie one created by [TWires], who has taken a TI LMC555 chip-scale packaged 555 and dead-bugged a working flasher on its surface using 01005 discrete components. There is a video showing it in operation that we’ve placed below the break, and it’s tiny. We probably all consider ourselves to be quite good at soldering, but this piece of work is in another class entirely.

The project was inspired by [Mike Harrison]’s previous holder of the smallest blinky prize, which used a PIC microcontroller atop a tiny surface mount supercapacitor. It uses the same capacitor for power, but we’d say it’s taken the blinky to new levels of tininess. Does this mean a new arms race is upon us in the world of tiny blinkies? We hope so, and though it’s difficult to imagine they can get much smaller we can’t wait to see what people come up with. If there’s one thing about our community it’s that saying something can’t be done is unwise: one of you will find a way if it is at all possible. Even Microchip’s MIC1555 might be a bit big though, so something inventive is called for.

For a fascinating run-down of the state of the 555 art, read this article from our own [Ted Yapo].

Continue reading “An Even Smaller World’s Smallest LED Blinky”

Custom Rotary Switch Takes A Motor

There are certain challenges we all will have to face sooner or later. Changing a flat tire in the rain, trying to put on a shirt that doesn’t quite fit, or producing a 16 position rotary switch for a replica computer front panel. There was a time when something like this would be a major undertaking, but with the help of a 3D printer [Mike Gardi] was able to build good looking switches that were big enough to be motor driven.

Switches of course are old tech, and there are plenty of ways to make contacts. [Mike] settled on using 16 small magnets and reed switches. This works, but you probably wouldn’t want to use it where the switch might get close to an external magnet. It does however make for a neat assembly without a lot of mechanical work. It also resists wear compared to a brush type arrangement.

The switch is a little large, but it could probably be made smaller with proper contacts. However, you still need at least some magnets to provide the detents without making mechanical changes.

We couldn’t help but think of the homemade rotary switches from the do it yourself computer that used sewing thread spools, wires, and paper clips. It would be fun to revisit that computer with an eye to making things using a 3D printer. We liked the knob, but if you only need a reproduction knob, there are other ways to go.

Automated Tuning Of Linux Audio

Audio systems in Linux are terrible. You’ve never known true pain until you’ve tried to set up a recording or broadcasting workstation running Linux. I did, twenty years ago, and nothing has changed since. This wasn’t really a problem when Linux was either used in server spaces or some nerd’s battle station, but now we have small single board computers that everyone uses and wants to turn into a modular synth. Welcome to paintown, because the Linux audio stack is terrible.

For the past ten years, [Dynobot] has been working on improving audio in Linux. This is a decade of reading manuals from IBM and Oracle, and a deep knowledge of how to adjust settings so audio actually works. All of this work is now combined into a single script that improves everything. This means the priority of the Audio group is changed, the thread priority is better, the latency is better, and for anyone who wants to set up a local streaming service, the network latency is better. It’s not everything, and there’s no mention of recording multitrack audio, but we’ll accept the baby steps here.

There are two relevant Github repositories for this, the first containing audio adjustments for Debian-based systems, including the Raspberry Pi. This should work on any single board computer running Debian, and has been tested on all the Raspberry Pis, the Allo Sparky, ASUS Tinkerboard, and the Odroid C2. There’s also a version for TinyCore-based Linux systems that improves the priority of the audio threads, changes the thread scheduling from ‘whatever’ to FIFO, and improves the latency. If you’re running Linux, and you’re doing something with audio, this is what you need.

FindyBot3000 Is Listening And Ready To Help

It’s a problem every maker faces at one time or other – how to organise the ever-growing mass of components in the workshop. Some give up and just live with box upon box of disordered parts. That wasn’t good enough for [Inventor22], though – who created FindyBot3000 to tackle the job. 

The first step is to source a set of those tiny component drawers we all know and love. These are then combined with WS2812B LED strips, which act as indicators for each individual drawer. A Particle Photon is used as the brains of the operation, and drives the strips. So far, so good.

Of course, blinking LEDs are great and all, but it’s the voice control where things get really interesting. Through Google Home and IFTTT, it’s possible to give commands to the Particle Photon. This can be used to manage the parts in the drawers, as well as to quickly highlight the location of various components. It’s backed up with an Azure backend, which manages the component database and keeps track of everything.

It’s a tidy build that does away with tiny sticky labels, and is reconfigurable on the fly as parts come and go. Of course, if you’re mostly storing SMD parts, you might prefer a reel based solution. Video after the break.

Continue reading “FindyBot3000 Is Listening And Ready To Help”

Windows 3.1 In My BIOS? It’s More Likely Than You Think

It might be difficult for modern audiences to believe, but at one point Microsoft Windows fit on floppy disks. This was a simpler time, with smaller hard drives, lower resolution displays, and no hacker blogs for you to leave pessimistic comments on. A nearly unrecognizable era, to be sure. But if you’re one of the people who looks back on these days fondly, you might wonder why we don’t see this tiny graphical operating system smashed into modern hardware. After all, SkiFree sure ain’t gonna play itself.

Well, wonder no more. A hacker by the name of [redsPL] thought that Microsoft’s latest and greatest circa 1992 might do well crammed into the free space remaining on a ThinkPad X200’s firmware EEPROM. It would take a little fiddling, plus the small matter of convincing the BIOS to see the EEPROM as a virtual floppy drive, but clearly those are all minor inconveniences for anyone mad enough to boot their hardware into a nearly 30 year old copy of Visual Basic for a laugh.

The adventure starts when [redsPL] helped a friend install libreboot and coreboot on a stack of old ThinkPads by using the Raspberry Pi as an SPI flasher, a pastime we’re no strangers to ourselves. Once the somewhat finicky software and hardware environment was up and running, it seemed a waste not to utilize it further. Especially given the fact most firmware replacements only fill a fraction of the X200’s 8 MB chip.

Of course, Windows 3.1 was not designed for modern hardware and no proper drivers exist for much of it. Just getting the display resolution up to 1024×768 (and still with only 256 colors) required patching the original video drivers with ones designed for VMWare. [redsPL] wasn’t able to get the sound hardware working, but at least the PC speaker makes the occasional buzz. The last piece of the puzzle was messing around the zip and xz commands until the disk image was small enough to sneak onto the chip.

Believe it or not, this isn’t the first time we’ve seen Windows from this era running on a (relatively) modern ThinkPad. For whatever reason, these two legends of the computing world seem destined to keep running into each other.

[Thanks to Renard for the tip.]

Interactive Demo Shows The Power Of Fourier Transforms

When it comes to mathematics, the average person can probably get through most of life well enough with just basic algebra. Some simple statistical concepts would be helpful, and a little calculus couldn’t hurt. But that leaves out a lot of interesting mathematical concepts that really do have applications in everyday life and are just plain fascinating in their own right.

Chief among these concepts is the Fourier transform, which is the key to understanding everything from how JPEGs work to how we can stream audio and video over the Internet. To help get your mind around the concept, [Jez Swanson] has this interactive Fourier transform visualizer that really drives home the important points. This is high-level stuff; it just covers the basic concepts of a Fourier transform, how they work, and what they’re good for in everyday life. There are no equations, just engaging animations that show how any function can be decomposed into a set of sine waves. One shows the approximation of a square wave with a slider to control to vary the number of component sine waves; a button lets you hear the resulting sound getting harsher as it approaches a true square wave. There’s also a great bit on epicycles and SVGs, and one of the best introductions to encoding images as JPEGs that we’ve seen. The best part: all the code behind the demos is available on GitHub.

In terms of making Fourier transform concepts accessible, we’d put [Jez]’s work right up there with such devices as the original Michelson harmonic analyzer, or even its more recent plywood reproduction. Plus the interactive demos were a lot of fun to play with.

[via the Adafruit blog]