Hacking The Modern Tamagotchi With UART

Although not technically the first virtual pet, the Tamagotchi handhelds certainly popularized the idea and made it a worldwide phenomenon. In the late 90s it was hard to go out in public and not see them dangling from backpacks and belt loops. They turned out to be more than a passing fad, too. There have been Tamagotchis in various forms since then, and one of the latest, the Tamagotchi Paradise, is uniquely hackable thanks to this custom UART interface.

The build starts with a simple and inexpensive CH340G UART adapter with a built-in USB interface. A custom 3D printed enclosure is used to house the adapter and also help to expose the interface to the Tamagotchi. This is done by wiring three pins to nickel strips, which are threaded through slits in the case and looped back around to create a pogo-style adapter for the Tamagotchi’s custom dock. Normally this would be used to link to other Tamagotchis, but in this case the USB-to-UART adapter mimics it, allowing for all kinds of in-game shenanigans. The project’s creator [Squalius] shows it off by connecting it directly to a browser tool in Google Chrome.

Not only that, but this can also be used to modify the software running on the handheld entirely, with the video showing demos playing not only Super Mario but also DOOM (of course). This isn’t too surprising given that these games are built with modern 32-bit ARM microcontrollers. For the 90s purists, though, it probably won’t surprise anyone to know that these devices have been the subject of various hacks almost since they came out.

Continue reading “Hacking The Modern Tamagotchi With UART” →

KiCad… In The Browser?

KiCad is a useful tool for designing printed circuit boards, but it’s of no use to you if you can’t install it on the computer you’re on. To get around that, [Akshay Rukade] has whipped up a browser-based alternative to help keep you working in less permissive environments. It’s called ZiroEDA.

Quite simply, ZiroEDA is a TypeScript port of KiCad 10.0.6’s C++ source code. You get the schematic editor, the PCB editor, the interactive router, and the electrical and design rule checkers all running in a browser. It can open .kicad_pro files as you’d expect, and you can edit and save them as you would if you were working in standard KiCad directly.

[Akshay] reports that KiCad’s own kicad-cli was used for compatibility testing, and that zone fills came out vertex-identical from ZiroEDA versus using KiCad itself. With that said, the project is still a work in progress, and some dialogs from the original software are still missing. Projects are said to be end-to-end encrypted, but you’ll hopefully lose your job quickly if you try and put anything important to national security through a tool like this. You can always try it, just to give your higher-ups a heart attack.

Source is available on GitHub if you want to see how it all ticks. We’ve featured other great KiCad hacks before, too, like this GPU-accelerated autorouter. If you’re working on PCB tools of your own, don’t hesitate to notify the tipsline.

A Keyboard With No Keys

For as capable as smartphone hardware is, the software running on them can be especially restrictive and cumbersome. Unlike a single-board computer with GPIO running a standard Linux operating system and some intuitive programming language like Python, smartphones are generally walled gardens where programming major overhead, and if a custom program can be run on them at all the user still has to figure out how to interface hardware with a USB-C port. To skip past all of this, [nicolas.ma] built an audio modem that can send keyboard input to a computer with nothing more than a browser.

The “keyboard” starts off in a browser running on a standard smartphone. A user can input text into the browser, which then gets converted into a series of audible audio pulses that can be sent to the keyboard. The keyboard itself listens to those pulses, decodes them, and then sends the text through to the computer as a standard USB device thanks to an Arduino Micro at the center. Arduino Micros are excellent choices for keyboard controllers because they have a built-in USB chip.

The protocol used here is designed and built by [nicolas.ma] as well. The words allow for variable length, with the device determining message length, and a word-ending scheme that automatically sends the message to memory when it’s detected that the message is finished. There’s also integrity checking and the ability to check on the link’s state. From hardware to software it’s an impressive build, and for anyone wondering what this might be used for [nicolas.ma] has already built a password manager from it.  Continue reading “A Keyboard With No Keys” →

ATtiny85 Plays The Chrome Dinosaur Game

If you’ve ever had your internet connection drop out while running Chrome, you’ve probably seen a little dinosaur pop up to tell you what’s going on. You might have then tapped a key and learned that it’s actually a little mini-game built into the browser where you have to hop your intrepid T-rex over a bunch of cactii. [Albert David] is well familiar with this little Easter egg, and set about building a system to automatically play the game for him.

The build uses an Digispark ATtiny85 microcontroller board to run the show. It’s set up to plug in to a PC and enumerate as a USB HID device, so it can spoof the required key presses to play the game. To sense the game state, the device uses a pair of LM393 light-dependent resistor comparator modules. The bottom sensor is used to detect cactus obstacles in the game, while the upper sensor detects flying bird obstacles. Armed with this information, the microcontroller can deliver keypresses at just the right time to jump over cactuses while dodging birds overhead.

[Albert] does a great job of explaining how the project came together in the write-up. There are also useful calibration instructions that indicate how to place the sensors and tweak their thresholds so they trigger reliably and help you net a suitably high score.

Interestingly enough, this isn’t the first time we’ve seen a microcontroller take Chrome’s hidden game for a spin. The game itself has become popular enough that we’ve also seen it ported to other platforms.
Continue reading “ATtiny85 Plays The Chrome Dinosaur Game” →

CSS, Now It’s Got Your 8086

The modern web browser is now far more than a thing for rendering web pages, it’s a multi-faceted environment that can provide a home for almost any application you could imagine. But why should JavaScript or Wasm have all the fun? CSS is Turing complete now, right? Why not, as [Lyra Rebane] has done, write an 8086 emulator in pure CSS?

The web page at the link above may contain an 8086, but missing MMU aside, don’t expect it to run Linux just yet. Instead it has limited resources, just enough to run a demo program. It needs a Chrome-adjacent browser because it uses some CSS functions not available in for example Firefox, but we’ll forgive it that oddity. Its clock is provided by a small piece of JavaScript not because CSS can’t provide one, but because the JS version is more stable.

On one hand this is of little practical use, but to dismiss it as such is to entirely miss the point. It’s in the fine spirit of experimentation, and we love it. Perhaps a better way to look at it is to see what could be done more efficiently with the same idea. A 1970s CISC microprocessor might not be the best choice, but would for example a minimalist and optimized RISC design be more capable? We’re looking forward to where others take this thread.

It’s not the first unexpected computing environment we’ve found, who could forget the DOOM calculator!


Header: Thomas Nguyen, CC BY-SA 4.0.

So Long Firefox, Hello Vivaldi

It’s been twenty-three years since the day Phoenix was released, the web browser that eventually became Firefox. I downloaded it on the first day and installed it on my trusty HP Omnibook 800 laptop, and until this year I’ve used it ever since. Yet after all this time, I’m ready to abandon it for another browser. In the previous article in this series I went into my concerns over the direction being taken by Mozilla with respect to their inclusion of AI features and my worries about privacy in Firefox, and I explained why a plurality of browser engines is important for the Web. Now it’s time to follow me on my search for a replacement, and you may be surprised by one aspect of my eventual choice.

Where Do I Go From Here?

Hackaday in the Ladybird browser
It’s Hackaday, in Ladybird! (Ooof, that font.)

Happily for my own purposes, there are a range of Firefox alternatives which fulfill my browser needs without AI cruft and while allowing me to be a little more at peace with my data security and privacy. There’s Chromium of course even if it’s still way too close to Google for my liking, and there are a host of open-source WebKit and Blink based browsers too numerous to name here.

In the Gecko world that should be an easier jump for a Firefox escapee there are also several choices, for example LibreWolf, and Waterfox. In terms of other browser engines there’s the extremely promising but still early in development Ladybird, and the more mature Servo, which though it is available as a no-frills browser, bills itself as an embedded browser engine. I have not considered some other projects that are either lightweight browser engines, or ones not under significant active development. Continue reading “So Long Firefox, Hello Vivaldi” →

The most exciting search engine 68k can handle.

There’s Nothing Boring About Web Search On Retro Amigas

Do you have a classic Amiga computer? Do you want to search the web with iBrowse, but keep running into all that pesky modern HTML5 and HTTPS? In that case, [Nihirash] created BoingSearch.com just for you!

BoingSearch was explicitly inspired by [ActionRetro]’s FrogFind search portal, and works similarly in practice. From an end-user perspective, they’re quite similar: both serve as search engines and strip down the websites listed by the search to pure HTML so old browsers can handle it.

Boing search in its natural habitat, iBrowse on Amiga.

The biggest difference we can see betwixt the two is that FrogFind will link to images while BoingSearch either loads them inline or strips them out entirely, depending on the browser you test with and how the page was formatted to begin with. (Ironically, modern Firefox doesn’t get images from BoingSearch’s page simplifier.) BoingSearch also gives you the option of searching with DuckDuckGo or Google via the SerpAPI, though note that poor [Nihirash] is paying out-of-pocket for google searches.

BoingSearch is explicitly aimed at the iBrowse browser for late-stage Amigas, but should work equally well with any modern browser. Apparently this project only exists because FrogFind went down for a week, and without the distraction of retrocomptuer websurfing, [Nihirash] was able to bash out his own version from scratch in Rust. If you want to self-host or see how they did it, [Nihirash] put the code on GitHub under a donationware license.

If you’re scratching your head why on earth people are still going on about Amiga in 2025, here’s one take on it.