A Unique Microphone Preamp

We live in a world in which nearly any kind of gadget or tool you can imagine is just a few clicks away. In many respects, this has helped fuel the maker culture over the last decade or so; now that people aren’t limited to the hardware that’s available locally, they’re able to create bigger and better things than ever before. But it can also have a detrimental effect. One has to question, for instance, why they should go through the trouble of building something themselves when they could buy it, often for less than the cost of the individual components.

The critic could argue that many of the projects that grace the pages of Hackaday could be supplanted with commercially available counterparts. We don’t deny it. But the difference between buying a turn-key product and building an alternative yourself is that you can make it exactly how you want it. That is precisely why [Sam Izdat] created this truly one of a kind microphone preamplifier. Could he have bought one online for cheaper? Probably. Could he have saved himself an immense amount of time and effort? Undoubtedly. Do we care? Not in the slightest.

The amplifier is based on the Texas Instruments INA217 chip, with an Arduino Nano and 128×64 OLED display providing the visualization. [Sam] was able to find a bare PCB for a typical INA217 implementation on eBay for a few bucks (see what we mean?), which helped get him started and allowed him to spend more time on the software side of things. His visualization code offers a number of interesting display modes, uses Fast Hartley Transforms, and very nearly maxes out the Arduino.

But perhaps no element of this build is as unique as the case. The rationale behind the design is that [Sam] wanted to compartmentalize each section of the device (power supply, amplifier, visualization) to avoid any interference. The cylindrical shapes were an issue of practicality: the compartments were constructed by using a hole saw to make wooden discs, which were then glued together and hollowed out. The case was stained and coated with polyurethane, but due to some slightly overzealous use of glue and fillers, the coloring isn’t uniform. This gives the final piece a somewhat weathered look, in sharp contrast to the decidedly high-tech looking display.

Overall, this build reminds us of the modular 3D printed amplifier we saw earlier in the year combined with these speaker-integrated Arduino VU meters.

Continue reading “A Unique Microphone Preamp”

Tiny Sideways Tetris on a Business Card

Everyone recognizes Tetris, even when it’s tiny Tetris played sideways on a business card. [Michael Teeuw] designed these PCBs and they sport small OLED screens to display contact info. The Tetris game is actually a hidden easter egg; a long press on one of the buttons starts it up.

It turns out that getting a playable Tetris onto the ATtiny85 microcontroller was a challenge. Drawing lines and shapes is easy with resources like TinyOLED or Adafruit’s SSD1306 library, but to draw those realtime graphics onto the 128×32 OLED using that method requires a buffer size that wouldn’t fit the ATtiny85’s available RAM.

To solve this problem, [Michael] avoids the need for a screen buffer by calculating the data to be written to the OLED on the fly. In addition, the fact that the smallest possible element is a 4×4 pixel square reduces the overall memory needed to track the screen contents. As a result, the usual required chunk of memory to use as a screen buffer is avoided. [Michael] also detailed the PCB design and board assembly phases for those of you interested in the process of putting together the cards using a combination of hot air reflow and hand soldering.

PCB business cards showcase all kinds of cleverness. The Magic 8-Ball Business Card is refreshingly concise, and the project that became the Arduboy had milled cutouts to better fit components, keeping everything super slim.

Push it to the Limit: SSD1306 at 150 FPS

A good deal of the projects we cover here at Hackaday are not, in the strictest sense, practical endeavors. If we required that everything which graced our digital pages had a clear end result, the site would be in a rather sad state of affairs. Sometimes it’s enough just to do something for the challenge of it. But more often than not, you’ll learn something in the process which you can use down the line.

That’s precisely what pushed [Laurence Bank] to see how well he could optimize the frame rate on the popular SSD1306 OLED display. After several iterations of his code, he was able to achieve a blistering 151.5 FPS, with apparently still some room for improvement if he’s feeling up to the challenge. But considering his first attempt was only running at 5.5 FPS, we’d say he’s already more than earned his hacker cred on this one.

A few different tricks were used to achieve such incredible performance gains. To start with, while the official I2C specification says you’re supposed to wait for an acknowledgment back from the device when communicating with it, [Laurence] realized the SSD1306 didn’t actually care. He could continuously blast commands at the display without bothering to wait for an acknowledgment. He admits there are problems with this method, but you can’t argue with the results.

To really wring all the performance out of the system he could, [Laurence] donned his Assembly Cap and examined how the Arduino IDE compiler was interpreting his code. He identified a few areas where changing his C code would force the compiler to generate faster output. He notes that this wouldn’t normally be required when working with more advanced compilers, but that the Arduino toolchain needs its hand held occasionally.

This isn’t the first time we’ve seen somebody try and push more pixels through the very same OLED display, and it’s interesting to see the two very different approaches to the same goal.

Smartwatch Fights Anxiety with Action

In our fast-paced modern world, it’s no wonder that so many suffer from anxiety and panic attacks. There are several time-worn techniques for dealing with the symptoms of these attacks. But as anyone who’s ever suffered such an attack can tell you, it can be difficult to sense one coming on until it’s too late. By then, rational thinking has been supplanted by intrusive thoughts. For this year’s Hackaday Prize, [Austin Marandos] is doing his part by using technology to help us check ourselves before we wreck ourselves with worry.

Similar smartwatches exist to detect oncoming attacks, but they don’t do anything to combat them. Minder is like having a friend strapped to your wrist that’s never absorbed in their own problems. It wants to help no matter what it takes, which is why it features multiple techniques for getting back to a state of calm.

Minder’s brain is the bite-size Qduino Mini, which is great for a crowded wearable because of its built-in charging circuit. It uses heart rate and temperature sensors to determine the onset of a panic attack, and a vibration motor to alert the user. The motor also plays a part in the relaxation techniques to keep the user focused and in control. Use the upcoming break to relax and check out the video.

If your anxiety stems from feelings of inadequacy, it might be Imposter Syndrome.

Continue reading “Smartwatch Fights Anxiety with Action”

Iron Man Mask With A HUD!

At some point, a child will inevitably dream of being a superhero. Not all children get the chance to see that dream made manifest, but a few take that destiny into their own hands. Redditor [Lord_of_Bone] — seizing at that goal — has built himself an Iron Man mask with an integrated HUD!

Relying on a conceptually similar project he’d previously built, much of the code was rehashed for this ‘Mark II’ version. Pieces of a smartphone holo pyramid act as projection surfaces — using a lens to focus the image to be viewed at such close distances — and a pair of OLED screens displaying the information. It’s a happy bonus that the lack of backlight results in only the text showing in the user’s field of view.

Instead of speaking with J.A.R.V.I.S., [Lord_of_Bone] is using a Raspberry Pi Zero W as the mask’s brain. Working past some I2C troubles between the OLED screens and an Enviro pHat required a whipped-up veroboard and a bit of hardware hacking. Cramming everything into the mask was no easy task — using Blutack and Sugru to bind them in the limited space — but the pHat had to be surface-mounted in the open anyways for atmospheric and light data.

Continue reading “Iron Man Mask With A HUD!”

Lasers, Mirrors, and Sensors Combine in an Optical Bench Game

Who would have thought you could make a game out of an optical bench? [Chris Mitchell] did, and while we were skeptical at first, his laser Light Bender game has some potential. Just watch your eyes.

The premise is simple: direct the beam of a colored laser to the correct target before time runs out. [Chris] used laser-cut acrylic for his playfield, which has nine square cutouts arranged in a grid. Red, green, and blue laser pointers line the bottom of the grid, with photosensors and RGB LEDs lining the grid on the other three sides. Play starts with a random LED lighting up in one of the three colors, acting as a target. The corresponding color laser comes on, and the player has to insert mirrors or pass-through blocks in the grid to create a path to the target. The faster you hit the CdS cell, the higher your score. It’s simple, but it looks really engaging. We can imagine all sorts of upgrades, like lighting up two different targets at once, or adding a beamsplitter block to hit two targets with the same color. Filters and polarizers could add to the optical fun too.

We like builds that are just for fun, especially when they’re well-crafted and have a slight air of danger. The balloon-busting killbots project we featured recently comes to mind.

Continue reading “Lasers, Mirrors, and Sensors Combine in an Optical Bench Game”

Tiny Function Generator on the ATtiny85, Complete with OLED

It’s easy to have a soft spot for “mini” yet perfectly functional versions of electronic workbench tools, like [David Johnson-Davies]’s Tiny Function Generator which uses an ATtiny85 to generate different waveforms at up to 5 kHz. It’s complete with a small OLED display to show the waveform and frequency selected. One of the reasons projects like this are great is not only because they tend to show off some software, but because they are great examples of the kind of fantastic possibilities that are open to anyone who wants to develop an idea. For example, it wasn’t all that long ago that OLEDs were exotic beasts. Today, they’re available off the shelf with simple interfaces and sample code.

The Tiny Function Generator uses a method called DDS (Direct Digital Synthesis) on an ATtiny85 microcontroller, which [David] wrote up in an earlier post of his about waveform generation on an ATtiny85. With a few extra components like a rotary encoder and OLED display, the Tiny Function Generator fits on a small breadboard. He goes into detail regarding the waveform generation as well as making big text on the small OLED and reading the rotary encoder reliably. His schematic and source code are both available from his site.

Small but functional microcontroller-based electronic equipment are nifty projects, and other examples include the xprotolab and the AVR-based Transistor Tester (which as a project has evolved into a general purpose part identifier.)