Bit-banged 100 MBit/s Ethernet Transmission On Raspberry Pi Pico

The Raspberry Pi Pico is a very capable board, but it’s still a surprise to see bit-banged 100 MBit/s Fast Ethernet implemented on one. [Steve]’s Pico-100BASE-TX library allows an RP2040 (or RP2350) microcontroller to stream data at roughly 11 Mbyte/s, enough to implement 100 MBit/s Fast Ethernet transmission.

We’ve seen 10BASE-T implemented on a Pico, but it takes a lot more than just shoveling bits faster to get 100BASE-T working. 10BASE-T uses two voltage levels and Manchester encoding, but 100BASE-T uses three voltage levels, which [Steve] cleverly implemented on the Pico with two GPIOs, and far more complex encoding. Check out the repository’s README for details as well as a couple example applications.

[Steve] tells us that to the best of his knowledge, this is the first bit-banged 100 MBit/s Ethernet implementation using a microcontroller. It’s transmit-only — reception being an entirely different beast — but it’s possible some enterprising soul might find a solution. If you do, be sure to let us know all about it!

PVC Pipe Structure Design That Skips Additional Hardware

[Baptiste Marx] shares his take on designing emergency structures using PVC pipe in a way that requires an absolute minimum of added parts. CINTRE (French, English coverage article here) is his collection of joint designs, with examples of how they can be worked into a variety of structures.

Basic joints have many different applications.

PVC pipe is inexpensive, widely available, and can often be salvaged in useful quantities even in disaster areas because of its wide use in plumbing and as conduits in construction. It can be cut with simple tools, and once softened with heat, it can be re-formed easily.

What is really clever about [Baptiste]’s designs is that there is little need for external fasteners or hardware. Cable ties are all that’s required to provide the structural element of many things. Two sawhorse-like assemblies, combined with a flat surface, make up a table, for example.

Continue reading “PVC Pipe Structure Design That Skips Additional Hardware”

The Subtle Art Of Letterform Design

Typeface (such as Times New Roman) refers to the design that gives a set of letters, numbers, and symbols their signature “look”. Font, on the other hand, is a specific implementation of a typeface, for example, Times New Roman Italic 12 pt.

‘Q’ is a counterpoint to the idea that typography is just one fussy detail after another.

Right about this point, some of you are nodding along and perhaps thinking “oh, that’s interesting,” while the rest of you are already hovering over your browser’s Back button. If you’re one of the former, you may be interested in checking out the (sort of) interactive tour of typography design elements by the Ohno Type School, a small group that loves design.

On one hand, letters are simple and readily recognizable symbols. But at the same time, their simplicity puts a lot of weight on seemingly minor elements. Small changes can have a big visual impact. The tour lays bare answers to questions such as: What is the optimal parting of the cheeks of a capital ‘B’? At what height should the crossbar on an ‘A’ sit, and why does it look so weird if done incorrectly? And yet, the tail of a ‘Q’ can be just about anything? How and why does an ‘H’ define the spacing of the entire typeface? All these (and more) are laid bare.

Continue reading “The Subtle Art Of Letterform Design”

A Deep Dive Into The Coolness That Was CRT Projectors

CRT monitors: there’s nothing quite like ’em. But did you know that video projectors used to use CRTs? A trio of monochrome CRTs, in fact: one for each color; red, green, and blue. By their powers combined, these monsters were capable of fantastic resolution and image quality. Despite being nowhere near as bright as modern projectors, after being properly set up, [Technology Connections] says it’s still one of the best projected images he has seen outside of a movie theatre.

After a twenty-minute startup to reach thermal equilibrium, one can settle down with a chunky service manual for a ponderous calibration process involving an enormous remote control. The reward is a fantastic (albeit brightness-limited) picture.

Still, these projectors had drawbacks. They were limited in brightness, of course. But they were also complex, labor-intensive beasts to set up and calibrate. On the other hand, at least they were heavy.

[Technology Connections] gives us a good look at the Sony VPH-D50HT Mark II CRT Projector in its tri-lobed, liquid-cooled glory. This model is a relic by today’s standards, but natively supports 1080i via component video input and even preserves image quality and resolution by reshaping the image in each CRT to perform things like keystone correction, thus compensating for projection angle right at the source. Being an analog device, there is no hint of screen door effect or any other digital artifact. The picture is just there, limited only by the specks of phosphor on the face of each tube.

Converging and calibrating three separate projectors really was a nontrivial undertaking. There are some similarities to the big screen rear-projection TVs of the 90s and early 2000s (which were then displaced by plasma and flat-panel LCD displays). Unlike enclosed rear-projection TVs, the screen for projectors was not fixed, which meant all that calibration needed to be done on-site. A walkthrough of what that process was like — done with the help of many test patterns and a remote control that is as monstrous as it is confusing — starts at 15:35 in the video below.

Like rear-projection TVs, these projectors were displaced by newer technologies that were lighter, brighter, and easier to use. Still, just like other CRT displays, there was nothing quite like them. And if you find esoteric projector technologies intriguing, we have a feeling you will love the Eidophor.

Continue reading “A Deep Dive Into The Coolness That Was CRT Projectors”

Unitree Humanoid Robot Exploit Looks Like A Bad One

Unitree have a number of robotic offerings, and are one of the first manufacturers offering humanoid robotic platforms. It seems they are also the subject of UniPwn, one of the first public exploits of a vulnerability across an entire robotic product line. In this case, the vulnerability allows an attacker not only to utterly compromise a device from within the affected product lines, but infected robots can also infect others within wireless range. This is done via a remote command-injection exploit that involves a robot’s Bluetooth Low Energy (BLE) Wi-Fi configuration service.

Unitree’s flagship G1 humanoid robot platform (one of the many models affected)

While this may be the first public humanoid robot exploit we have seen (it also affects their quadruped models), the lead-up to announcing the details in a post on X is a familiar one. Researchers discover a security vulnerability and attempt responsible disclosure by privately notifying the affected party. Ideally the manufacturer responds, communicates, and fixes the vulnerability so devices are no longer vulnerable by the time details come out. That’s not always how things go. If efforts at responsible disclosure fail and action isn’t taken, a public release can help inform people of a serious issue, and point out workarounds and mitigations to a vulnerability that the manufacturer isn’t addressing.

The biggest security issues involved in this vulnerability (summed up in a total of four CVEs) include:

  • Hardcoded cryptographic keys for encrypting and decrypting BLE control packets (allowing anyone with a key to send valid packets.)
  • Trivial handshake security (consists simply of checking for the string “unitree” as the secret.)
  • Unsanitized user data that gets concatenated into shell commands and passed to system().

The complete attack sequence is a chain of events that leverages the above in order to ultimately send commands which run with root privileges.

We’ve seen a Unitree security glitch before, but it was used to provide an unofficial SDK that opened up expensive features of the Go1 “robot dog” model for free. This one is rather more serious and reportedly affects not just the humanoid models, but also newer quadrupeds such as the Go2 and B2. The whole exploit is comprehensively documented, so get a fresh cup of whatever you’re drinking before sitting down to read through it.

LLM Dialogue In Animal Crossing Actually Works Very Well

In the original Animal Crossing from 2001, players are able to interact with a huge cast of quirky characters, all with different interests and personalities. But after you’ve played the game for awhile, the scripted interactions can become a bit monotonous. Seeing an opportunity to improve the experience, [josh] decided to put a Large Language Model (LLM) in charge of these interactions. Now when the player chats with other characters in the game, the dialogue is a lot more engaging, relevant, and sometimes just plain funny.

How does one go about hooking a modern LLM into a 24-year-old game built for an entirely offline console? [josh]’s clever approach required a lot of poking about, and did a good job of leveraging some of the game’s built-in features for a seamless result.

Continue reading “LLM Dialogue In Animal Crossing Actually Works Very Well”

Fully-Local AI Agent Runs On Raspberry Pi, With A Little Patience

[Simone]’s AI assistant, dubbed Max Headbox, is a wakeword-triggered local AI agent capable of following instructions and doing simple tasks. It’s an experiment in many ways, but also a great demonstration not only of what is possible with the kinds of open tools and hardware available to a modern hobbyist, but also a reminder of just how far some of these software tools have come in only a few short years.

Max Headbox is not just a local large language model (LLM) running on Pi hardware; the model is able to make tool calls in a loop, chaining them together to complete tasks. This means the system can break down a spoken instruction (for example, “find the weather report for today and email it to me”) into a series of steps to complete, utilizing software tools as needed throughout the process until the task is finished.

Continue reading “Fully-Local AI Agent Runs On Raspberry Pi, With A Little Patience”