Vista Normal

Hay nuevos artículos disponibles. Pincha para refrescar la página.
AnteayerSalida Principal

Pictures from Paper Reflections and a Single Pixel

Por: Ian Bos
29 Junio 2025 at 11:00
Projector on left with red arrow pointing towards object, another red arrow points towards a piece of paper and then camera.

Taking a picture with a single photoresistor is a brain-breaking idea. But go deeper and imagine taking that same picture with the same photoresistor, but without even facing the object. [Jon Bumstead] did exactly that with compressed sensing and a projector. Incredibly, the resulting image is from the perspective of the projector, not the “camera”.

This camera setup is very similar to one we’ve seen before, but far more capable. The only required electronics are a small projector and a single photodiode. The secret sauce in this particular design lies in the pattern projected and the algorithm to parse the data.

In real life image on left with wave projected onto objects. Star shaped fourier transform in center which gets transformed into an actual greyscale image.

Video is projected onto the target in the form of sinusoidal waves. As these waves change and move their way across the object, the sensor picks up whatever intensity value is reflected. Putting all this data together allows us to create a measured Fourier transform. Use the inverse Fourier transform, and BOOM, you got yourself an image. Better yet, you can even take a picture indirectly. Anything becomes a mirror — even paper — when all you rely on is the average relative intensity of light. If you want to take pictures like this on your own, check out [Jon]’s Instructable.

The science behind this technique is similar to the math that powers CT scanners and VAM 3D printing.

Thanks, [MrSVCD], for the tip!

The Most Satisfying Way To Commit

21 Junio 2025 at 05:00

Have you ever finished up a bit of code and thought that typing “git push” in a terminal is just not a satisfying finish? So did [penumbriel], so he built a big red button he could smash instead.

This is a very simple hack: an Arduino sits inside a 3D-printed case that holds a big, red button. The case itself is very sturdily made to withstand a good satisfying smack: it has thick walls, brass insets, and rubber feet to protect the de The code for the Arduino is very, very simple: it spoofs a USB HID using the standard keyboard library, and automatically types out “git push” whenever the button is pressed. Or smashed, because you know you’re going to want to slam that thing. So far, so good– very innovative for 2006, right?

The detail that made this project stand out in 2025 was the technique [penumbriel] used for lettering– we’re always looking

With a simple soap-and-water mask, the cured silicone peels right off, leaving a clean label.

for new ways to make a good front panel. In this case, the letters were printed as a valley, and filled with silicone adhesive. To protect the top surface of the print, soapy water was used as a mask. The silicone would not adhear to the wet plastic, so all [penumbriel] had to do was peel it off after it had cured, leaving solid white inside. It’s a neat trick, and a great way to use up an old tube of silicone before it goes hard. You could also use it for injection molding, but this is a great use for the dregs.

This might go well next to the programmer’s macro pad we featured a while back, but it really needs to stay as a big red button for maximum satisfaction.

 

Weighing an Airplane as it Flies Overhead

18 Junio 2025 at 08:00
Photo of AlphaPhoenix looking at an airplane flying through the air

Recently, [AlphaPhoenix] weighed an airplane. Normally, that wouldn’t be much of an accomplishment. Except in this case, the airplane happened to be in flight at the time. In fact we’re not sure what is more remarkable, as he not only weighed real actual airplanes but a paper airplane too!

The sealed box essentially acts as a pressure sensor.

To test the concept, a large scale is made from foamcore and four load cells which feed into an Arduino which in turn is connected to a laptop for a visualization. After a brief test with a toy car, [AlphaPhoenix] goes on to weigh a paper airplane as it flies over the scale. What we learn from the demonstration is that any weight from a flying object is eventually transferred to the ground via the air.

In the second part of the video a new, smaller, type of scale is created and taken to the airport where airplanes flying overhead are weighed over the course of three days. This new apparatus is basically a pressure sensor enclosed in a nominally air-tight box, essentially a fancy type of barometer. Measurements are taken, assumptions are made, and figures are arrived at. Unfortunately the calculated results are off by more than one order of magnitude, but that doesn’t stop this experiment from having been very cool!

If you’re interested in weighing things for fun or profit be sure to check out Hackaday Prize 2022: Arduino-Powered Weighing Scale Has A Real Analog Display or Reverse Engineering A Bathroom Scale For Automated Weight Tracking.

Meowsic Keyboard MIDI Adapter Aims for Purrfection

15 Junio 2025 at 02:00
A black PCB is shown, with an Arduino Nano mounted in the bottom left corner. The rest of the space on the PCB is used up by ten DIP integrated circuits and a few resistors and diodes. Several black and red wires connect different parts of the PCB.

Both small children and cats have a certain tendency to make loud noises at inopportune times, but what if there were a way to combine these auditory effects? This seems to have been the reasoning behind the creation of the Meowsic keyboard, a children’s keyboard that renders notes as cats’ meows. [Steve Gilissen], an appreciator of unusual electronic instruments, discovered that while there had been projects that turned the Meowsic keyboard into a MIDI output device, no one had yet added MIDI input to it, which of course spurred the creation of his Meowsic MIDI adapter.

The switches in the keys of the original keyboard form a matrix of rows and columns, so that creating a connection between a particular row and column plays a certain note. [Steve]’s plan was to have a microcontroller read MIDI input, then connect the appropriate row and column to play the desired note. The first step was to use a small length of wire to connect rows and columns, thus manually mapping connections to notes. After this tedious step, he designed a PCB that hosts an Arduino Nano to accept input, two MCP23017 GPIO expanders to give it enough outputs, and CD4066BE CMOS switches to trigger the connections.

[Steve] was farsighted enough to expect some mistakes in the PCB, so he checked the connections before powering the board. This revealed a few problems, which some bodge wires corrected. It still didn’t play during testing, and after a long debugging session, he realized that two pins on an optoisolator were reversed. After fixing this, it finally worked, and he was able to create the following video.

Most of the MIDI hacks we’ve seen involved creating MIDI outputs, including one based on a Sega Genesis. We have seen MIDI input added to a Game Boy, though.

Tune In to “Higher Lower”, the Minimal Handheld Electronic Game

4 Junio 2025 at 11:00

[Tommy] has a great write-up about designing and building a minimalistic handheld electronic game called
“Higher Lower”. It’s an audio-driven game in which the unit plays two tones and asks the player to choose whether the second tone was higher in pitch, or lower. The game relies on 3D printed components and minimal electronics, limiting player input to two buttons and output to whatever a speaker stuck to an output pin from an ATtiny85 can generate.

Fastener-free enclosure means fewer parts, and on the inside are pots for volume and difficulty. We love the thoughtful little tabs that hold the rocker switch in place during assembly.

Gameplay may be straightforward, but working with so little raises a number of design challenges. How does one best communicate game state (and things like scoring) with audio tones only? What’s the optimal way to generate a random seed when the best source of meaningful, zero-extra-components entropy (timing of player input) happens after the game has already started? What’s the most efficient way to turn a clear glue stick into a bunch of identical little light pipes? [Tommy] goes into great detail for each of these, and more.

In addition to the hardware and enclosure design, [Tommy] has tried new things on the software end of things. He found that using tools intended to develop for the Arduboy DIY handheld console along with a hardware emulator made for a very tight feedback loop during development. Being able to work on the software side without actually needing the hardware and chip programmer at hand was also flexible and convenient.

We’ve seen [Tommy]’s work before about his synth kits, and as usual his observations and shared insights about bringing an idea from concept to kit-worthy product are absolutely worth a read.

You can find all the design files on the GitHub repository, but Higher Lower is also available as a reasonably-priced kit with great documentation suitable for anyone with an interest. Watch it in action in the video below.

ESPer-CDP Plays CDs and Streams in Style

31 Mayo 2025 at 23:00

What do you get when you combine an ESP32, a 16-bit DAC, an antique VFD, and an IDE CD-ROM drive? Not much, unless you put in the work, which [Akasaka Ryuunosuke] did to create ESPer-CDP, a modern addition for your hi-fi rack.

It plays CDs (of course), but also can also scrobb the disks to Last.fm, automatically fetch track names and lyrics for CDs, and of course stream internet radio. It even acts as a Bluetooth speaker, because when you have an ESP32 and a DAC, why not? Of course we cannot help but award extra style points for the use of a VFD, a salvaged Futaba GP1232A02.  There’s just something about VFDs and stereo equipment that makes them go together like milk and cookies.

close up of front of machine showing VFD.
Between the panel and the VFD, this could almost pass as vintage Sony.

In terms of CD access, it looks like the IDE interface is being used to issue ATAPI commands to the CD-ROM drive to get audio out via S/PDIF.  (Do you remember when you had to hook your CD drive to your sound card to play music CDs?) This goes through a now-discontinued WM8805 receiver — a sign this project has been in the works for a while — that translates S/PDIF into an I2S stream the ESP32 can easily work with.

Work with it it does, with the aforementioned scrobbing, along with track ID and time-sinked lyrics via CDDB or  MusicBrainz. The ESP32 should have the computing power to pull data through the IDE bus and decode it, but we have to admit that this hack gets the job done — albeit at the expense of losing the ability to read data CDs, like MP3 or MIDI. [Akasaka Ryuunosuk] has plans to include such functionality into v2, along with the ability to use a more modern SATA CD-ROM drive. We look forward to seeing it, especially if it keeps the VFD and classic styling. It just needs to be paired with a classic amplifier, and maybe a DIY turntable to top off the stack.

Thanks to [Akasaka Ryuunosuke] for the tip. If you also crave our eternal gratitude (which is worth its weight in gold, don’t forget), drop us a tip of your own. We’d love to hear from you.

Look to the Sky With This Simple Plane Tracker

Por: Ian Bos
27 Mayo 2025 at 23:00
Camera is seen on the left with an Arduino connected to the right

Do you ever get tired of stressing your neck looking for planes in the sky? Worry not! Here is a neat and cheap Arduino/Ras Pi project to keep your neck sore free! [BANK ANGLE] presents a wonderfully simple plane tracking system using an affordable camera and basic microcontrollers.

The bulk of the system relies on a cheap rotating security camera that gets dissected to reveal its internals. Here stepper control wires can be found and connected to the control boards required to allow an Arduino nano to tell the motors when and where to spin. Of course, the camera system doesn’t just look everywhere until it finds a plane, a Raspberry Pi takes in data from local ADS-B data to know where a nearby plane is.

After that, all that’s left is a nifty overlay to make the professional look. Combining all these creates a surprisingly capable system that gives information on the aircraft’s azimuth, elevation, and distance.

If you want to try your hand at making your own version of [BLANK ANGLE]’s tracker, check out his GitHub page. Of course, tracking planes gets boring after a while so why not try tracking something higher with this open-source star tracker?

Thank you Israel Brunini for the tip.

Intercepting and Decoding Bluetooth Low Energy Data for Victron Devices

26 Mayo 2025 at 14:00

[ChrisJ7903] has created two Ardiuno programs for reading Victron solar controller telemetry data advertised via BLE. If you’re interested in what it takes to use an ESP32 to sniff Bluetooth Low Energy (BLE) transmissions, this is a master class.

The code is split into two main programs. One program is for the Victron battery monitor and the other is for any Victron solar controller. The software will receive, dissect, decrypt, decode, and report the data periodically broadcast from the devices over BLE.

The BLE data is transmitted in Link-Layer Protocol Data Units (PDUs) which are colloquially called “packets”. In this particular case the BLE functionality for advertising, also known as broadcasting, is used which means the overhead of establishing connections can be avoided thereby saving power.

Decryption is handled with the the wolfSSL library and [ChrisJ7903] had nice things to say about the helpful people over at wolfSSL. The AES-CTR algorithm is used and seeded with the per-device encryption key, a nonce/salt in little-endian format, and the encrypted data.

[ChrisJ7903] relied heavily on technical documentation provided by Victron in order to decode the received data; some of that documentation is made available in the Git repo and ultimately everything is revealed in the code itself.

We’ve done heaps of BLE stuff here at Hackaday in the past. If you’re interested in BLE tech check out this rain gauge and this doorbell.

The Mouse Language, Running on Arduino

21 Mayo 2025 at 05:00

Although plenty of us have our preferred language for coding, whether it’s C for its hardware access, Python for its usability, or Fortran for its mathematic prowess, not every language is specifically built for problem solving of a particular nature. Some are built as thought experiments or challenges, like Whitespace or Chicken but aren’t used for serious programming. There are a few languages that fit in the gray area between these regions, and one example of this is MOUSE, which can now be run on an Arduino.

Although MOUSE was originally meant to be a minimalist language for computers of the late 70s and early 80s with limited memory (even for the era), its syntax looks more like a more modern esoteric language, and indeed it arguably would take a Python developer a bit of time to get used to it in a similar way. It’s stack-based, for a start, and also uses Reverse Polish Notation for performing operations. The major difference though is that programs process single letters at a time, with each letter corresponding to a specific instruction. There have been some changes in the computing world since the 80s, though, so [Ivan]’s version of MOUSE includes a few changes that make it slightly different than the original language, but in the end he fits an interpreter, a line editor, graphics primitives, and peripheral drivers into just 2 KB of SRAM and 32 KB Flash so it can run on an ATmega328P.

There are some other features here as well, including support for PS/2 devices, video output, and the ability to save programs to the internal EEPROM. It’s an impressive setup for a language that doesn’t get much attention at all, but certainly one that threads the needle between usefulness and interesting in its own right. Of course if a language where “Hello world” is human-readable is not esoteric enough, there are others that may offer more of a challenge.


Image Credit: Maxbrothers2020

Speed Up Arduino with Clever Coding

18 Mayo 2025 at 20:00

We love Arduino here at Hackaday; they’ve probably done more to make embedded programming accessible to more people than anything else in the history of the field. One thing the Arduino ecosystem is rarely praised for is its speed. That’s where [Playduino]  comes in, with his video (embedded below) that promises to make everyone’s favourite microcontroller run 50x faster.

You might be expecting an unstable overclocking setup, with swapped crystals, tweaked voltages and a hefty heat sink, but no! This is stock hardware. The 50x speedup comes from one simple hack: don’t use digitalWrite();

If you aren’t familiar, the digitalWrite() function is one of the key functions Arduino gives you to operate its boards– specify the pin and the value (high or low) to drive it. It’s very easy, but it’s also very slow. [Playduino] takes a moment to show just how much is going on under the hood when you call digitalWrite(), and shows you what you can do instead if you have a need for speed. (Hint: there’s no Arduino-provided code involved; hardware registers and the __asm keyword show up.)

If you learned embedded programming in an earlier era, this will probably seem glaringly obvious. If you, like so many of us, got started inside of the Arduino ecosystem, these closer-to-the-metal programming techniques could prove useful tools in your quiver. Big thanks to [Stephan Walters] for the tip.

Of course if you prefer to speed things up by hardware rather than software, you can overclock an Arduino– with liquid nitrogen, even.

 

Trekulator: A Reproduction of the 1977 Star Trek Themed Calculator

21 Abril 2025 at 20:00

A recent project over on Hackaday.io from [Michael Gardi] is Trekulator – Where No Maker Has Gone Before.

This is a fun build and [Michael] has done a very good job of emulating the original device. [Michael] used the Hackaday.io logging feature to log his progress. Starting in September 2024 he modeled the case, got his original hardware working, got the 7-segment display working, added support for sound, got the keypad working and mounted it, added the TFT display and mounted it, wired up the breadboard implementation, designed and implemented the PCBs, added some finishing touches, installed improved keys, and added a power socket back in March.

It is perhaps funny that where the original device used four red LEDs, [Michael] has used an entire TFT display. This would have been pure decadence by the standards of 1977. The software for the ESP32 microcontroller was fairly involved. It had to support audio, graphics, animations, keyboard input, the 7-segment display, and the actual calculations.

The calculations are done using double-precision floating-point values and eight positions on the display so this code will do weird things in some edge cases. For instance if you ask it to sum two eight digit numbers as 90,000,000 and 80,000,000, which would ordinarily sum to the nine digit value 170,000,000, the display will show you a different value instead, such as maybe 17,000,000 or 70,000,000. Why don’t you put one together and let us know what it actually does! Also, can you find any floating-point precision bugs?

This was a really fun project, thanks to [Michael] for writing it up and letting us know via the tips line!

❌
❌