Undo Arduino Encryption With An Oscilloscope

Cryptography ain’t easy. Seemingly small details like how many times a computationally intensive loop runs can give the game away. [Lord Feistel] gives us a demo of how this could work with nothing more than poorly designed code, a resistor, and an oscilloscope.

The hardware side is, as mentioned, really simple. Put a resistor inline with the Arduino and monitor the voltage drop across the resistor with the scope. When the chip is working hard, it consumes more current, and code sections that take longer will show up as longer dips.

On the software end, it’s only a little more complicated.  The RSA encryption scheme involves a lot of exponentiation and modulo-taking. Here, [Lord Feistel] is targeting a naive way of computing the exponents quickly, and demonstrates how you can read the exponent straight out the chip’s power demand.

Implementing this attack against a real-world RSA algorithm, in the context of the Arduino doing other stuff, will be harder. And we don’t know if the algorithm implemented in “standard” Arduino libraries is smarter than this one. (If you know, let us know in the comments.) But still, this is a cool example of just how simple and straightforward it can be to eavesdrop on bad code.

If you only need to bypass encryption instead of breaking it, check out [Lord Feistel]’s other tutorial on power glitching that we featured previously. If you haven’t played around with the hardware side of security, it gets deep pretty quickly, but you can at least dip your toes in the shallow end with what you’ve got in your closet.

A DIY Proximity Sensor, Using Just Scrap Parts And Software

[mircemk] shows how to create a simple non-contact proximity sensor using little more than an Arduino Nano board, and a convenient software library intended to measure the value of capacitors.

The prototype has a threshold set via potentiometer for convenience.

The basic idea is that it’s possible to measure a capacitor’s capacitance using two microcontroller pins and the right software, so by using a few materials to create an open-style capacitor, one can monitor it for changes and detect when anything approaches enough to alter its values past a given threshold, creating a proximity sensor.

The sensor shown here is essentially two plates mounted side-by-side, attached to an Arduino Nano using the Capacitor library which uses just two pins, one digital and one analog.

As configured, [mircemk]’s sensor measures roughly thirty picofarads, and that value decreases when approached by something with a dielectric constant that is different enough from the air surrounding the sensor. The sensor ignores wood and plastic, but an approaching hand is easily detected. The sensor also detects liquid water with similar ease, either in the form of pooled liquid, or filled bottles.

We’ve also seen a spring elegantly used as a hidden touch sensor that works through an enclosure’s wall by using similar principles, so the next time you need a proximity or touch-sensitive sensor in a project, reaching for the junk box might get you where you need to go. Watch [mircemk]’s sensor in action in the video, just below the page break.

Continue reading “A DIY Proximity Sensor, Using Just Scrap Parts And Software”

Hosting Your Own PixMob Party Made Easy

Over the last few years, it’s been increasingly common for concertgoers to be handed a light-up bracelet from PixMob that synchronizes with the others in the crowd to turn the entire audience into a music visualizer. They’re a clever way of enhancing the concert experience, but unfortunately, they don’t do anything once you leave the show. Or at least, that used to be the case.

We’ve seen efforts to reverse engineer the IR (and occasionally radio) signals that drive these PixMob devices, but since we checked in last it seems like things have gotten a lot easier for the home gamer. [David Pride] has recently posted a brief write-up that shows how quickly and easily it is to get these devices fired up using nothing more exotic than an Arduino, an IR LED, and an audio sensor module.

With the audio sensor module connected to the Arduino’s digital input and the IR LED wired to digital out, all you need to do is flash firmware to the board and start playing some beats. The source code [David] has provided is a a remixed version of what’s previously been published by [Carlos Ganoza], which, in this case, has been tweaked to make the lighting patterns less random.

Presumably, this is to make the devices behave more like they do during an actual concert, but since nobody at Hackaday is cool enough to have seen a live musical performance in the last decade, we’re not really sure. All we can say is that the effect looks pretty sweet in the demo video.

Back in 2019, we saw a teardown of an early PixMob device, and by 2022, the efforts to reverse engineer their IR control protocol were well underway. We’re glad to see things have progressed to the point that you can piece together a transmitter from what’s in the parts bin, as it means at least some of these devices will have a lifespan longer than a single concert.

Enjoy Totality Every Day With This Personal Eclipse Generator

There have been a couple of high-profile solar eclipses lately, but like us, you probably missed the news of the one that passed over Munich in 2019. And every day since then, in fact, unless you were sitting in a particular spot: the couch of one [Bernd Kraus], who has his very own personal eclipse generator.

We’ll attempt to explain. Living in an apartment with a gorgeous western view of Munich is not without its cons, chief among which is the unobstructed exposure to the setting sun. Where most people would opt for a window treatment of some sort to mitigate this, [Bernd] felt that blotting out the entire view was a heavy-handed solution to the problem. His solution is a window-mounted X-Y gantry that dangles a cutout of the moon in just the right place to blot out the sun. An Arduino uses the time and date to calculate the position of the sun as it traverses the expansive window and moves the stepper motors to keep the moon casting its shadow in just the right place: on his face as he sits in his favorite spot on the couch.

There are a couple of time-lapse sequences in the video below, as well as a few shots of the hardware. We know this isn’t an actual coronagraph, but the effect is pretty cool, and does resemble an eclipse, at least in spirit. And it goes without saying that we applaud the unnecessary complexity embodied by this solution.

Continue reading “Enjoy Totality Every Day With This Personal Eclipse Generator”

A PCB business card that plays tic-tac-toe with red and blue LEDs.

2024 Business Card Challenge: Go Tic-Tac-Toe-to-Toe With Them

There is perhaps no more important time to have a business card than when you’re in college, especially near the end when you’re applying for internships and such. And it’s vital that you stand out from the crowd somehow. To that end, Electrical & Computer Engineer [Ryan Chan] designed a tidy card that plays tic-tac-toe.

Instead of X and O, the players are indicated by blue and red LEDs. Rather than having a button at every position, there is one big control button that gets pressed repeatedly until your LED is in the desired position, and then you press and hold to set it and switch control to the other player. In addition to two-player mode, the recipient of your card can also play alone against the ATMega.

The brains of this operation is an ATMega328P-AU with the Arduino UNO bootloader for ease of programming. Schematic and code are available if you want to make your own, but we suggest implementing some type of changes to make it your own. Speaking of, [Ryan]  has several next steps in mind, including charlieplexing the LEDs, using either USB-C or a coin cell for power, upgrading the AI, and replacing the control button with a capacitive pad or two. Be sure to check it out in action in the two videos after the break.

Continue reading “2024 Business Card Challenge: Go Tic-Tac-Toe-to-Toe With Them”

An Arduino Nano Clone In A DIP-Sized Footprint

Nobody doubts the utility of the Arduino Nano and its many clones, and chances are good you’ve got at least one or two of the tiny dev boards within arm’s reach right now. But as small as it is, the board still takes up a fair amount of real estate, especially on solderless breadboards during the prototyping phase of a project. Wouldn’t it be nice to shrink down the Nano just a bit and regain a couple of rows for plugging in components and jumpers?

It looks like [Albert van Dalen] thought so, and he managed to get a Nano’s functionality — and then some — onto a DIP-26 footprint. The aptly named “Nano DIP,” which at 33 mm x 10 mm — about the same size as the ATmega328 on the Arduino Uno — will tickle the miniaturization fans out there. The board is built around an ATtiny3217 and has almost all of the Nano’s features, like a USB port, reset button, built-in LEDs, 5 V regulator, and preloaded bootloader. Its big extra feature is the 350-kilosamples-per-second 8-bit DAC, while sacrificing external crystal pins and a 3.3 V regulator.

To make the board cheap enough to manufacture, [Albert] elected a minimum component size of 0402, which made squeezing all the parts onto the board challenging. The MCU barely fits between the header pin pads, and the Micro USB jack had to be a vertical-mount type. It does the business, though, so if you’re looking to free up a little breadboard space, check it out.

Arduino + TFT = Micro Star Chart

We always look at the round LCDs and wonder what to do with them other than, of course, a clock. Well, [shabaz] had a great idea: use it as a star map display. The project combines the Arduino, a round TFT, a GPS receiver, and some external flash memory to store data. You can get by without the GPS receiver or flash memory, but you’ll lose features if you do.

We like how he approached the problem. The project contains four major parts and he developed each part independently before integrating them into a whole. The four parts are: reading the GPS, driving the LCD, providing storage for star data, and determining the position of stars. The heavy lifting is done using some public domain code ported over. This code derives from a book called Astronomical Algorithms and uses the Yale Bright Star Catalog database.

The post mentions that the screen might well be a larger rectangular screen and we agree that would make this more usable. Now if you could cram it all into a watch, that might be different. If you want to play with the code, you can actually run the core on Linux. You’ll have to settle for a PNG output of the night sky, but that would be handy for debugging.

We have seen a star chart in a watch before. While this is more a star chart than a planetarium, we have no doubt the early planetarium builders would be suitably impressed.

Continue reading “Arduino + TFT = Micro Star Chart”