Worst Clock Ever Teaches You QR Codes

[WhiskeyTangoHotel] wrote in with his newest clock build — and he did warn us that it was minimalist and maybe less than useful. Indeed, it is nothing more than a super-cheap ESP32-C3 breakout board with an OLED screen and some code. Worse, you can’t even tell the time on it without pointing your cell phone at the QR code it generates. Plot twist: you skip the QR code and check the time on your phone.

But then we got to thinking, and there is actually a lot to learn from here on the software side. This thing pulls the time down from an NTP server, formats it into a nice human-readable string using strftime, throws that string into a QR code that’s generated on the fly, and then pushes the bits out to the screen. All in a handful of lines of code.

As always, the secret is in the libraries and how you use them, and we wanted to check out the QR code generator, but we couldn’t find an exact match for QRCodeGenerator.h. Probably the most popular library is the Arduino QRCode library by [ricmoo]. It’s bundled with Arduino, but labelled version 0.0.1, which we find a little bit modest given how widely it’s used. It also hasn’t been updated in eight years: proof that it just works?

That library drew from [nayuki]’s fantastically documented multi-language QR-Code-generator library, which should have you covered on any platform you can imagine, with additional third-party ports to languages you haven’t even heard of. That’s where we’d go for a non-Arduino project.

What library did [WTH] use? We hope to find out soon, but at least we found a couple good candidates, and it appears to be a version of one or the other.

We’ve seen a lot of projects where the hacker generates a QR code using some online tool, packs the bits into a C header array, and displays that. That’s fine when you only need a single static QR code, but absolutely limiting when you want to make something dynamic. You know, like an unreadable clock.

You will not be surprised to know that this isn’t the first unreadable QR-code clock we’ve featured here. But it’s definitely the smallest and most instructive.

Continue reading “Worst Clock Ever Teaches You QR Codes”

PCBs The Prehistoric Way

When we see an extremely DIY project, you always get someone who jokes “well, you didn’t collect sand and grow your own silicon”. [Patrícia J. Reis] and [Stefanie Wuschitz] did the next best thing: they collected local soil, sieved it down, and fired their own clay PCB substrates over a campfire. They even built up a portable lab-in-a-backpack so they could go from dirt to blinky in the woods with just what they carried on their back.

This project is half art, half extreme DIY practice, and half environmental consciousness.  (There’s overlap.)  And the clay PCB is just part of the equation. In an effort to approach zero-impact electronics, they pulled ATmega328s out of broken Arduino boards, and otherwise “urban mined” everything else they could: desoldering components from the junk bin along the way.

The traces themselves turned out to be the tricky bit. They are embossed with a 3D print into the clay and then filled with silver before firing. The pair experimented with a variety of the obvious metals, and silver was the only candidate that was both conductive and could be soldered to after firing. Where did they get the silver dust? They bought silver paint from a local supplier who makes it out of waste dust from a jewelry factory. We suppose they could have sat around the campfire with some old silver spoons and a file, but you have to draw the line somewhere. These are clay PCBs, people!

Is this practical? Nope! It’s an experiment to see how far they can take the idea of the pre-industrial, or maybe post-apocalyptic, Arduino. [Patrícia] mentions that the firing is particularly unreliable, and variations in thickness and firing temperature lead to many cracks. It’s an art that takes experience to master.

We actually got to see the working demos in the flesh, and can confirm that they did indeed blink! Plus, they look super cool. The video from their talk is heavy on theory, but we love the practice.

DIY clay PCBs make our own toner transfer techniques look like something out of the Jetsons.

Continue reading “PCBs The Prehistoric Way”

Theremin-Style MIDI Controller Does It With Lasers

Strictly speaking, a Theremin uses a pair of antennae that act as capacitors in a specific R/C circuit. Looking at [aritrakdebnath2003]’s MIDI THEREMIN, we see it works differently, but it does play in the manner of the exotic radio instrument, so we suppose it can use the name.

The MIDI THEREMIN is purely a MIDI controller. It sends note data to a computer or synthesizer, and from there, you can get whatever sound at whatever volume you desire. The device’s brain is an Arduino Uno, and MIDI-out for the Arduino has been a solved problem for a long while now.

Continue reading “Theremin-Style MIDI Controller Does It With Lasers”

Screenshot of AVRpascal

Pascal? On My Arduino? It’s More Likely Than You Think

The Arduino ecosystem is an amazing learning tool, but even those of us who love it admit that even the simplified C Arduino uses isn’t the ideal teaching language. Those of us who remember learning Pascal as our first “real” programming language in schools (first aside from BASIC, at least) might look fondly on the AVRPascal project by [Andrzej Karwowski].

[Andrzej] is using FreePascal’s compiler tools, and AVRdude to pipe compiled code onto the micro-controller. Those tools are built into his AVRPascal code editor to create a Pascal-based alternative to the Arduino IDE for programming AVR-based microcontrollers. The latest version, 3.3, even includes a serial port monitor compatible with the Arduino boards.

This guy, but with Pascal. What’s not to love?

The Arduino comparisons don’t stop there: [Andrzej] also maintains UnoLib, a Pascal library for the Arduino Uno and compatible boards with some of the functionality you’d expect from Arduino libraries: easy access to I/O (digital and analog ports) timers, serial communication, and even extras like i2c, LCD and sensor libraries.

He’s distributing the AVRPascal editor as freeware, but it is not open source. It’s too bad, because Pascal is a great choice for microcontrollers: compiled, it isn’t much slower than C, but it can be as easy to write as Python. Micropython shows there’s a big market for “easy” embedded programming; Pascal could help fill it in a more performant way. Is the one-man license holding this project back, or is it just that people don’t use Pascal much these days?

While AVR programming is mostly done in C, this is hardly the first time we’ve seen alternatives. While some have delved into the frightening mysteries of assembly, others have risen to higher abstraction to run LISP or even good old fashioned BASIC. Pascal seems like a good middle road, if you want to go off the beaten path away from C.

Via reddit.

Hide Capacitive Touch Buttons In Your Next 3D Print

Capacitive touch sensors are entirely in the domain of DIY, requiring little more than a carefully-chosen conductive surface and a microcontroller. This led [John Phillips] to ask why not embed such touch buttons directly into a 3D print?

Button locations and labels can be made as part of the 3D print, which is handy.

The process is not much different from that of embedding hardware like magnets or fasteners into 3D prints: one pauses the print at convenient spot, drops in the necessary hardware, then resumes printing. It’s more or less the same for embedding a touch-sensitive button, but [John] has a few tips to make things easier.

[John] suggests using a strip of copper tape, one per touch pad, and embedding it into the print near the surface. His preference is three layers in, putting the copper tape behind 0.6 mm of plastic when using standard 0.20 mm layer heights.

Copper tape makes a good capacitive touch sensor, and the adhesive on the tape helps ensure it stays in place as the 3D printer seals it in on subsequent passes.

Copper tape is also easy to solder to, so [John] leaves a small hole over the copper — enough to stick in a wire and tack it down with the tip of a soldering iron and a blob of solder after the print is complete. It might not be ideal soldering conditions, but if things get a little melty on the back side it’s not the end of the world.

On the software side capacitive touch sensors can be as simple as using an Arduino library for the purpose but [John] rolled his own code, so give it a peek.

This reminds us a bit of another way to get a capacitive touch sensor right up against some plastic: a simple spring can do the trick.

A black and white device sits on a beige table. A white rotary knob projects out near the base of it's rectangular shape nearest the camera. Near it is a black rectangular section of the enclosure with six white dots protruding through holes to form a braille display. A ribbon cable snakes out of the top of the enclosure and over the furthest edge of the device, presumably connecting to a camera on the other side of the device.

This Polaroid-esque OCR Machine Turns Text To Braille In The Wild

One of the practical upsides of improved computer vision systems and machine learning has been the ability of computers to translate text from one language or format to another. [Jchen] used this to develop Braille Vision which can turn inaccessible text into braille on the go.

Using a headless Raspberry Pi 4 or 5 running Tesseract OCR, the device has a microswitch shutter to take a picture of a poster or other object. The device processes any text it finds and gives the user an audible cue when it is finished. A rotary knob on the back of the device then moves the braille display pad through each character. When the end of the message is reached, it then cycles back to the beginning.

Development involved breadboarding an Arduino hooked up to some MOSFETs to drive the solenoids for the braille display until the system worked well enough to solder together with wires and perfboard. Everything is housed in a 3D printed shell that appears similar in size to an old Polaroid instant camera.

We’ve seen a vibrating braille output prototype for smartphones, how blind makers are using 3D printing, and are wondering what ever happened with “tixel” displays? If you’re new to braille, try 3D printing your own trainer out of TPU.

Continue reading “This Polaroid-esque OCR Machine Turns Text To Braille In The Wild”

Experience Other Planets With The Gravity Simulator

As Earthlings, most of us don’t spend a lot of extra time thinking about the gravity on our home planet. Instead, we go about our days only occasionally dropping things or tripping over furniture but largely attending to other matters of more consequence. When humans visit other worlds, though, there’s a lot more consideration of the gravity and its effects on how humans live and many different ways of training for going to places like the Moon or Mars. This gravity simulator, for example, lets anyone experience what it would be like to balance an object anywhere with different gravity from Earth’s.

The simulator itself largely consists of a row of about 60 NeoPixels, spread out in a line along a length of lightweight PVC pipe. They’re controlled by an Arduino Nano which has a built-in inertial measurement unit, allowing it to sense the angle the pipe is being held at as well as making determinations about its movement. A set of LEDs on the NeoPixel strip is illuminated, which simulates a ball being balanced on this pipe, and motion one way or the other will allow the ball to travel back and forth along its length. With the Earth gravity setting this is fairly intuitive but when the gravity simulation is turned up for heavier planets or turned down for lighter ones the experience changes dramatically. Most of the video explains the math behind determining the effects of a rolling ball in each of these environments, which is worth taking a look at on its own.

While the device obviously can’t change the mass or the force of gravity by pressing a button, it’s a unique way to experience and feel what a small part of existence on another world might be like. With enough budget available there are certainly other ways of providing training for other amounts of gravity like parabolic flights or buoyancy tanks, although one of the other more affordable ways of doing this for laypeople is this low-gravity acrobatic device.

Continue reading “Experience Other Planets With The Gravity Simulator”