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”

To the left, a breadboard with the ATMega328P being attacked. To the right, the project's display showing multiple ;) smiley faces, indicating that the attack has completed successfully.

Glitching An ATMega328P Has Never Been Simpler

Did you know just how easily you can glitch microcontrollers? It’s so easy, you really have no excuse for not having tried it out yet. Look, [lord feistel] is doing glitching attacks on an ATMega328P! All you need is an Arduino board with its few SMD capacitors removed or a bare 328P chip, a FET, and some sort of MCU to drive it. All of these are extremely generic components, and you can quickly breadboard them, following [lord feistel]’s guide on GitHub.

In the proof-of-concept, you can connect a HD44780 display to the chip, and have the victim MCU output digits onto the display in an infinite loop. Inside of the loop is a command to output a smiley face – but the command is never reachable, because the counter is reset in an if right before it. By glitching the ATMega’s power input, you can skip the if and witness the ;) on your display; it is that simple.

What are you waiting for? Breadboard it up and see for yourself, this might be the method that you hack your next device and make it do your bidding. If the FET-and-MCU glitching starts to fail you at some point, there’s fancier tools you can use, like the ChipWhisperer. As for practical examples, [scanlime]’s elegant glitching-powered firmware hack is hard to forget.

A graph from the article, showing dead zones and error bars for the ESP32 ADC

RP2040, ESP32, And An Atmega Have An ADC-Off

[Simon Monk] got frustrated with bad ADC performance when tinkering with an ESP32 board, and decided to put three of the nowadays-iconic boards to the test – a classic ESP32 devboard, a Pi Pico with an RP2040, and an Arduino Uno R3 with an ATmega328P. To do that, he took a bench PSU, added a filter circuit to it, went through the entire ADC range for each board, took a large number of samples at different points and plotted the results. The plots show us both linearity and precision, as well as ADC dead zones, and the results are quite surprising.

The ESP32 doesn’t only have the most limited ADC with maximum 1V input, it also produces the worst results out of all three, with large error bars and sizeable dead zones at both ends. The Pi Pico, despite being colloquially known for its subpar ADC, produces better results than the ESP32. However, both of them are dwarfed by the ATMega328P’s performance. If you need a dedicated ADC, it might just be a good idea to put an ATMega328P on your board.

The example code is provided, and we are wondering whether there are methodology errors. For instance, the ATMega328P code is written in Arduino-supplied C++, but ESP32 and RP2040 in particular used MicroPython, which does more than just running the code, and MicroPython for ESP32 in particular creates a WiFi access point – something known to induce noise into ADC readings. Nevertheless, this is a fun comparison, and we like when hackers do microcontroller standoffs like that – for instance, check out this review from 2017 which pits a dozen microcontrollers of the time against each other!

Festive PCB Gives The Gift Of Hacking

‘Tis the season for gift giving, and what better to give than a newfound love for hacking, soldering, and blinkenlights? In order to spread cheer and education at the local hackerspace, [Tom Goff] created this festive tree circuit board that can either sit in a stand to be admired, or worn as jewelry. The resistors are even designed to look like candy canes hanging from the boughs.

The brains of this festive little tree is an ATmega328P, which you probably recognize as the microcontroller that powers the Arduino Uno. Although this circuit has none of the extra bits you’d find on an Uno, not even a crystal oscillator, it can still be programmed with Arduino and use the 8 MHz internal clock.

[Tom] has provided good, thorough instructions, especially for the sticky bit of setting up the IDE to program using the 8 MHz internal clock. So even if you’re nowhere near Norwich Hackerspace, you can join in the fun. Be sure to check out the video after the break, wherein [Tom] walks through designing the PCB using Inkscape and Fritzing.

Want to whip up a little something for the hackerspace wall? Check out this Sierpinski Christmas tree.

Continue reading “Festive PCB Gives The Gift Of Hacking”

Off-Grid Radio Also Repairable Off-Grid

Low-power radios, often referred to in the amateur radio community as QRP radios, have experienced a resurgence in popularity lately. Blame it on certain parts of the hobby become more popular, like Parks on the Air (POTA) or Summits on the Air (SOTA). These are events where a radio operator operates off-grid at remote parks or mountaintops. These QRP rigs are a practical and portable way to make contacts. You would think that a five- or ten-watt rig running on batteries would be simple. Surprisingly, they can be enormously complex and expensive. That’s why [Dr. Daniel Marks] built the RFBitBanger, a QRP radio designed to not only be usable off-grid but to be built and maintained off-grid as well.

The radio accomplishes this goal by being built out of as many standard off-the-shelf components as possible. It eschews modern surface-mount components in favor of the much more accessible through-hole parts, including the ATMEGA328P at the center of the build. A PCB design is also available, but it can be built on perf board nearly as easily. The radio supports any mode a QRP operator might use, including CW, SSB, RTTY, and a new mode designed explicitly for this radio called SCAMP which is a low bandwidth, low SNR digital mode built into the Arduino-based firmware. It’s a single-band radio, but any band between 20 and 80 meters can be selected with pluggable filters.

As far as bomb-proof radios go, we can’t imagine a better way to live out an apocalypse than with a radio like this. As long as there’s a well-stocked parts drawer around, this radio could theoretically reach around the world without worrying about warranty claims, expensive parts, or even a company going out of business or not stocking parts for old radios anymore. There’s also more information about this build at the Open Research Institute for those interested. And, if you’re wondering how useful any radio could be using only five watts of transmitter power, take a look at this in-depth look at QRP radio operation.

Thanks to [Stephen Walters] for the tip.

A blue PCB remote control

The Remoteduino Nano Is A Tiny IR Remote That’s Truly Universal

Universal remotes are extremely convenient if they work correctly. But setting them up can be quite a hassle: often, you need to browse through long lists of TV models, key in the codes on the remote with just a blinking LED as confirmation, and then pray that the manufacturer included the correct codes for all your equipment. IR isn’t a very complicated technology, however, so it’s perfectly possible to roll your own universal remote, as [sjm4306] shows in his latest project, the Remoteduino Nano. It’s a fully programmable IR remote that gives you maximum flexibility when emulating the codes for those obscure A/V systems scattered around your home.

The remote runs on an ATmega328p in a tiny QFN package, which drives a standard 5 mm IR LED through a transistor. Eight buttons are available to the user, which can be freely mapped to any desired code. A five-pin header is included to program the ATmega through its serial port. However, this was mainly done to help debug – a user who only needs to program the device once would typically use a pogo-pin-based adapter instead.

Currently, codes can only be programmed through the serial port, but there’s also an IR receiver present that can be used to copy codes from an existing remote. [sjm4306] hasn’t implemented this feature in software yet, but will probably do so in a future update of the project’s Arduino sketch. If you’re impatient, you can also have a go at it yourself since all code and the board’s Gerber files are freely available for download.

Its tiny size makes the Remoteduino Nano a convenient tool to keep in your drawer if you like to tinker with A/V systems and keep losing those remotes. The Nano is actually an improved version of the original Remoteduino project that [sjm4306] developed a couple of years ago. The problem of a truly universal remote is one that dates back several decades, however.

Continue reading “The Remoteduino Nano Is A Tiny IR Remote That’s Truly Universal”

Kitchen timer project in a angled green 3d printed case with a 7 segment display and knob.

Printing A Brutalist Kitchen Timer

A kitchen timer is one of those projects that’s well defined enough to have a clear goal, but allows plenty of room for experimentation with functionality and aesthetics. [Hggh]’s exploration of the idea is a clean, Brutalist kitchen timer.

The case for [Hggh]’s kitchen timer is 3D printed with openings for a TM1637 four digit, seven segment display and for a KY-040 rotary encoder with knob attached. The internals are driven by an ATmega328P powered from a 18650 cell with a DW01-P battery protection chip and a TP4056 chip for charging. On the back of the case is a power switch and USB-C connector for power. It looks like the 3D printed case was sanded down to give it a smooth matte surface finish.

All the project files, including the STLs, OpenSCAD code, and KiCAD design, are available on GitHub. This Brutalist kitchen timer project is a nice addition to some of the kitchen timers we’ve featured in the past, including a minimalist LED matrix timer and a Nixie timer with keypad.