Everything In A Linux Terminal

Here at Hackaday Central, we fancy that we know a little something about Linux. But if you’d tasked us to run any GUI program inside a Linux terminal, we’d have said that wasn’t possible. But, it turns out, you should have asked [mmulet] who put together term.everything.

You might be thinking that of course, you can launch a GUI program from a terminal. Sure. That’s not what this is. Instead, it hijacks the Wayland protocol and renders the graphics as text. Or, if your terminal supports it, as an image. Performance is probably not your goal if you want to do this. As the old saying goes, “It’s not that the dog can sing well; it’s that the dog can sing at all.”

If, like us, you are more interested in how it works, there’s a write up explaining the nuances of the Wayland protocol. The article points out that Wayland doesn’t actually care what you do with the graphical output. In particular, “… you could print out the graphics and give them to a league of crochet grandmas to individually tie together every single pixel into the afghan of legend!” We expect to see this tested at an upcoming hacker conference. Maybe even Supercon.

We generally don’t like Wayland very much. We use a lot of hacks like xdotool and autokey that Wayland doesn’t like. We also think people didn’t understand X11’s network abilities until it was too late. If you think of it as only a video card driver, then you get what you deserve. But we have to admit, we are humbled by term.everything.

The Android Linux Commander

Last time, I described how to write a simple Android app and get it talking to your code on Linux. So, of course, we need an example. Since I’ve been on something of a macropad kick lately, I decided to write a toolkit for building your own macropad using App Inventor and any sort of Linux tools you like.

I mentioned there is a server. I wrote some very basic code to exchange data with the Android device on the Linux side. The protocol is simple:

  • All messages to the ordinary Linux start with >
  • All messages to the Android device start with <
  • All messages end with a carriage return

Security

You can build the server so that it can execute arbitrary commands. Since some people will doubtlessly be upset about that, the server can also have a restrictive set of numbered commands. You can also allow those commands to take arguments or disallow them, but you have to rebuild the server with your options set.

There is a handshake at the start of communications where Android sends “>.” and the server responds “<.” to allow synchronization and any resetting to occur. Sending “>#x” runs a numbered command (where x is an integer) which could have arguments like “>#20~/todo.txt” for example, or, with no arguments, “>#20” if you just want to run the command.

If the server allows it, you can also just send an entire command line using “>>” as in: “>>vi ~/todo.txt” to start a vi session.

Continue reading “The Android Linux Commander”

Electronic Wizard in his lab wearing his wizards hat

How To Use The AT24C32 EEPROM For 4KB External Memory For Microcontrollers

Over on YouTube [Electronic Wizard] explains how to use the AT24C32 EEPROM for external memory for microcontrollers.

He begins by explaining that you don’t want to try modifying your microcontroller flash memory for storing settings, you want to use a separate EEPROM for that. Sometimes your microcontroller will have EEPROM memory attached, but you might still find yourself needing to attach more. The AT24C32 EEPROM is a 4KB non-volatile memory chip. It’s available in various 8-pin packages and two voltage levels, either 2.7 to 5.5 volts or 1.8 to 5.5 volts, and it’s programmed using the I2C protocol.

Continue reading “How To Use The AT24C32 EEPROM For 4KB External Memory For Microcontrollers”

A Love Letter To Internet Relay Chat

Although kids these days tend to hang out on so-called “Social Media”, Internet Relay Chat (IRC) was first, by decades. IRC is a real-time communication technology that allows people to socialize online in both chat rooms and private chat sessions. In a recent video [The Serial Port] channel dedicates a video to IRC and why all of this makes it into such a great piece of technology, not to mention a great part of recent history. As a decentralized communication protocol, anyone can set up an IRC server and connect multiple servers into networks, with the source code for these servers readily available ever since its inception by a student, and IRC clients are correspondingly very easy to write.

Because of the straightforward protocol, IRC will happily work on even a Commodore 64, while also enabling all kinds of special services (‘bots’) to be implemented. Even better, the very personal nature of individual IRC networks and channels on them provides an environment where people can be anonymous and yet know each other, somewhat like hanging out at a local hackerspace or pub, depending on the channel. In these channels, people can share information, help each other with technical questions, or just goof off.

In this time of Discord, WhatsApp, and other Big Corp-regulated proprietary real-time communication services, it’s nice to pop back on IRC and to be reminded, as it’s put in the video, of a time when the Internet was a place to escape to, not escape from. Although IRC isn’t as popular as it was around 2000, it’s still alive and kicking. We think it will be around until the end days.

Continue reading “A Love Letter To Internet Relay Chat”

The Saga Of Hacking A Bambu X1 Carbon

Bambu Labs make indisputably excellent printers. However, that excellence comes at the cost of freedom. After a firmware release earlier this year, Bambu printers could only work with Bambu’s own slicer. For [Proper Printing], this was unacceptable, so printer modification was in order. 

First on the plate was the pesky Bambu Labs nozzle. They are a pain to replace, and specialty sizes like 1.8mm are nonexistent. To remedy this flaw, a Bambu Labs compatible heat sink, an E3D V6 ring heater, and a heat break assembly are required. The ring heater was needed for clearance with the stock Bambu shroud. With the help of a 3D-printed jig, fresh holes were cut and tapped into the heat sink to make room for the E3D heat break. Some crimping to salvaged connectors and a bit of filing on the heat sink for wire routing, and Bob’s your uncle!

Continue reading “The Saga Of Hacking A Bambu X1 Carbon”

Reverse Engineering A (Toy) Fire Engine

Your kid has a toy remote control fire truck. You have an RTL SDR. See where this is going? [Jacob] couldn’t resist tearing into the why and how of the truck’s remote control protocol.

The entire process began with a basic GNU Radio setup to determine the exact frequency of the signal. Then a little analysis suggested that it might be using amplitude shift keying. That is, the information is in the amplitude of the signal, where one possible amplitude is completely off in some cases.

Continue reading “Reverse Engineering A (Toy) Fire Engine”

JuiceBox Rescue: Freeing Tethered EV Chargers From Corporate Overlords

The JuiceBox charger in its natural environment. (Credit: Nathan Matias)
The JuiceBox charger in its natural environment. (Credit: Nathan Matias)

Having a charger installed at home for your electric car is very convenient, not only for the obvious home charging, but also for having scheduling and other features built-in. Sadly, like with so many devices today, these tend to be tethered to a remote service managed by the manufacturer. In the case of the JuiceBox charger that [Nathan Matias] and many of his neighbors bought into years ago, back then it and the associated JuiceNet service was still part of a quirky startup. After the startup got snapped up by a large company, things got so bad that [Nathan] and others saw themselves required to find a way to untether their EV chargers.

The drama began back in October of last year, when the North American branch of the parent company – Enel X Way – announced that it’d shutdown operations. After backlash, the online functionality was kept alive while a buyer was sought.  That’s when [Nathan] and other JuiceBox owners got an email informing them that the online service would be shutdown, severely crippling their EV chargers.

Ultimately both a software and hardware solution was developed, the former being the JuicePass Proxy project which keeps the original hardware and associated app working. The other solution is a complete brain transplant, created by the folk over at OpenEVSE, which enables interoperability with e.g. Home Assistant through standard protocols like MQTT.

Stories like these make one wonder how much of this online functionality is actually required, and how much of it just a way for manufacturers to get consumers to install a terminal in their homes for online subscription services.