There’s A Whole Computer Inside This Mouse

[Gadget Industry] bills it as “a PC inside a Mouse“, but that depends on your definition of a “PC”. This is a Personal Computer inside a mouse, yes, but there’s nothing IBM-compatible about the tiny ARM board he squeezes inside what’s normally a peripheral — it actually started life as a smartphone, which only takes this build up a notch compared to starting with a single-board computer like a Pi.

Specifically, he starts with a Galaxy S21 5G. Starting with a Samsung means he can leave the stock Android alone and just take advantage of Samsung’s DeX desktop mode, rather than layer a Linux environment on top or replace the operating system entirely with something like Postmarket OS, which are both viable options.

Continue reading “There’s A Whole Computer Inside This Mouse” →

A Split Keyboard Designed For Human Hands

A surprising number of things we use in everyday life retain most of their design cues from their 19th century ancestors. The bicycle retains the same basic design as it had in 1890, as does the sewing machine, the toilet, the car, and of course, the keyboard and the QWERTY layout from old typewriters. But we aren’t doomed to have our technology perpetually living in the past. [Paul] wanted a keyboard designed around human hands, rather than being designed around a machine, so he built this unique split keyboard.

The design of this specific keyboard went through around 50 iterations before he was comfortable with it. Other design goals here were for it to be portable, and the split nature of this certainly makes it more compact as does the use of low-profile switches. Each finger’s column is angled and spaced based on the needs of that finger, with the ring finger keys sitting higher and the index finger columns angled inward. Each thumb has access to three keys, one of which is the spacebar and the other two layer keys, which is what enables this design to get down to only 36 total keys.

When thinking about it for any length of time, the modern keyboard’s design holdovers from the 1800s are fairly wasteful compared to this split, ergonomic version. Especially when looking at the spacebar, which ties up both thumbs and only performs a single task, there’s a lot of opportunity for modern designs to be more efficient, more portable, and easier on one’s body. Feel free to take this to the extreme and use all three dimensions, as long as you aren’t particularly concerned with portability.

Running Zork On The Steam Controller

The Steam Controller is a device capable of many interesting feats. It’s intended to act simply as an input device, and yet, it can run games all on its own. As [Owen Feldman] has demonstrated, by having the Steam Controller play Zork.

[Owen] took quite an interesting route to get the there: he wrote a Rust program to emulate the Intel 8080 CPU and CP/M, as one does. This was ported to the Steam Controller, which emulates the CPU and memory on its own internal processor. I/O is streamed over USB, since the Steam Controller lacks a keyboard or screen. The CP/M disk lives in the controller, but the Zork disk data is streamed over USB as well.

If you’re wondering how [Owen] got all this running on the controller, he explains on his personal website. He used what appears to be an undocumented tool included with Steam that allows flashing firmware on the device. Helpfully, Valve also include the original firmware in the same folder, unsigned and only relying on a simple CRC checksum. [Owen] bricked his controller a couple times experimenting with this tool and loading his own firmware, but all came good in the end.

The Steam Controller is probably the oddest device to run CP/M for a while, but hey—it’s a neat party trick. Not much is going to top the auto-docking hack from a few months ago, though.

Continue reading “Running Zork On The Steam Controller” →

Your Laptop Keyboard, On Another Device

It’s likely many of us have been in the position of first set-up on a machine such as a Raspberry Pi, and had keyboard problems. Either no spare keyboard is to be found, or a cluttered desk has to find extra space for a full-size keyboard. [Þórarinn] and [Arni] have a handy solution: use the existing keyboard on your laptop.

His approach is both ingenious and simple, as it’s only the K part of a KVM. On the laptop end, it’s a serial terminal, without the receiving side. The serial port in question is an RP2040 board which implements a USB-to-serial port. This serial connection goes to another RP2040, which does the ingenious bit. It’s a serial-to-USB HID keyboard. All of this means that keystrokes on the laptop are sent down the serial connection, and appear on the Pi or whatever computer as a USB keyboard as though typed locally. The mildly annoying first set-up can be done, and then it can be run via SSH or whatever other remote access protocol as normal. The code is provided, so anyone with a couple of RP2040 boards can do it.

We like this hack, because we’ve had the annoyance of needing a keyboard to set up what would otherwise be a completely headless machine too many times. It’s one to store away at the back of your mind, for those rare improvisational need-an-extra-keyboard moments.

Thanks [Henk] for the tip.

Read A USB Logitech Racing Wheel On An ESP32‑S3

Now that MCUs like the ESP32-S3 are quite capable computer systems including USB host functionality, it only makes sense that you can connect USB peripherals like Logitech racing wheels to them. Of course, these aren’t basic HID USB devices, so they require a bit of setup to make them start spitting out the data updates which we’re interested in. Making this process easy is the goal of the LogiWheelHost project for ESP32-S3 by [Joel Kometz].

This single-header library supports the G29, G923, G920, G27, G25, DFGT, Driving Force Pro wheels, building on top of the EspUsbHost project. As explained in the README, these racing wheels do not start streaming all updates to their controls once powered on, but boot into a restricted mode in which only neutral or combined-axis data is sent.

To change this you need to trigger the so-called native mode switch in which far more detailed information as well as updates on extended features like separate pedals, all buttons and the gear shifter become available. This is done by sending a HID output report to the USB device, which is easy enough.

In addition to handling this detail the library also provides an API using which obtaining and using these controller states in your own code should be quite easy. Presumably the library will work on or can be ported to other ESP32 MCUs that support host USB mode, so this might be good news for anyone who is looking to do more with that old Logitech racing wheel.

Wrist Welcomes Wii Nunchuk As Gloriously Ergonomic Macropad

[John Dingley] spends a lot of time editing videos, and as many of us know, when it comes to repetitive tasks the more ergonomic the better.

Keyboard shortcuts exist for common video editing functions, but [John] found that the vast majority of his work needed only three or four of them. Feeling he could do better than a three-key macropad, he turned to what’s perhaps one of the most ergonomic devices ever designed — the Wii Nunchuk.

A Wii Nunchuk is an I2C device, so there needs to be some intermediary device involved if you want to plug it into a computer. [John] solves that with the ANAVI Handle, an open source adapter to make a Nunchuk act like a USB Human Interface Device (HID). That addresses the connectivity problem, but the default firmware on the adapter only treats the Nunchuk as a mouse or joystick, so a few more changes are required before it can be pressed into service as an ultra-comfortable macropad.

The ANAVI Handle runs CircuitPython code on an RP2040, and modifying its behavior is as simple as plugging it in via USB and editing the code right on the device. One has to define some keyboard events, configure the device to act as a keyboard, and send the right events when the buttons or joystick get pushed. [John] provides the code, and walks through the changes on video so even those without any coding experience can get it done.

The Nunchuk design is still being sold and used today, and it’s shown up in all kinds of places. We’ve seen a Bluetooth-enabled one and even seen a Raspberry Pi Zero shoehorned into one, complete with HDMI output.

Continue reading “Wrist Welcomes Wii Nunchuk As Gloriously Ergonomic Macropad” →

Phantomdrive Keeps Your Secrets Out Of Sight

It’s a complex world out there, and more than ever folks may find themselves in a situation where they want to keep particular bits of information away from prying eyes. At the same time, overly complex methods of file security can make it difficult to share said information with the intended recipients impractical. So what’s the solution?

One proposal from [Ryan Walker] AKA [machinehum] is the Phantomdrive — a fully open source USB flash drive that features a secret secondary filesystem. Not only is the existence of this data hidden from the operating system under normal circumstances, but it’s encrypted with AES-256. Rather than relying on software running on the computer to handle the decryption, the CH569 chip that powers the drive does it internally.

To complete this platform-agnostic approach, [machinehum] had to come up with a way for the user to unlock the secure storage that didn’t require running any code on the client machine. A hardware solution such as a keypad is the obvious answer, but in this case, was out of the question as it would immediately tip off an observer about the drive’s true nature. A covert storage device needs a similarly inconspicuous method of authentication.

That’s why the firmware on the Phantomdrive keeps an eye on all the write operations to the unsecured section of the drive looking for the string password:. Once it sees that, it treats whatever follows as the decryption key. If it’s correct, the previously inaccessible data will appear to the operating system as a new drive.

[machinehum] cautions that none of this has been professionally audited from a security standpoint, and that you should treat this whole concept as an experiment. In other words, it’s probably more than sufficient for the average person, but no guarantees on how long it would last should a three letter agency gets too interested in what you’re up to.

If this seems a bit familiar, it’s because the Phantomdrive follows up [machinehum]’s self-destructing USB flash drive from a few years back. The concept is essentially the same, except this time there’s no Magic Smoke getting released.

Continue reading “Phantomdrive Keeps Your Secrets Out Of Sight” →