Where Did Your Mouse Come From?

Many readers will be familiar with Douglas Englebart’s 1968 so-called “Mother of All Demos”, in which he described many of the devices and technologies we would be using two or three decades later. Among these was a primitive computer mouse, but while famous it was by no means the earliest pointing device. At the recent Vintage Computer Festival Berlin, [Dmitriy Kostiuk] delivered a fascinating lecture of the history of the pointing device.

It’s a long video that we’ve placed below, and it’s an exhaustive examination of the topic from the earliest examples to the 1990s when mice became commoditized. It’s a surprise to find that the first pointing device was a trackball built for a 1950s Canadian warship, with a surprisingly modern-looking optical encoder. Englebart’s 1966 wooden block with its pair of wheels and potentiometers had a less-well-known and much more stylish competitor in the same year from Telefunken.

We visit the various design iterations as the form of what we’d call a mouse today took shape. It’s unexpected to find that those Sun mice with the spotty mouse pad weren’t from Sun at all, they were from Mouse Systems. The first mice from Microsoft and Apple make an appearance, as do some awful designs for 8-bit computrs. Remembering those in particular perhaps it’s as well we didn’t have the cash to buy such a disappointing product for ourselves.

The video is long, but interesting. Give it a watch.

Continue reading “Where Did Your Mouse Come From?” →

How Bad Is That Bridge: A Government Database

Bridges! We kind of expect them to just be there and do their job, ad infinitum. They are built into the landscape, and we often take them and the routes they open up for granted.

The reality, as any civil engineer will tell you, is that bridges are living, breathing things that require endless maintenance and monitoring to keep them safe, standing, and functional. A great example of this is found in the US Department of Transportation, and its publicly accessible register of bridge health reports.

Continue reading “How Bad Is That Bridge: A Government Database” →

SIMD-accelerated Machine Vision On An ESP32-S3

Recently [shraiwi] decided to have a bit of good nerdy fun and implement the FAST machine vision algorithm on an ESP32-S3 using its SIMD ISA. This involves using the assembly instructions for the ISA, making for an exciting opportunity to become familiar with this part of this Xtensa Lx7-based twin-core MCU.

The Features from Accelerated Segment Test (FAST) algorithm is a corner detection method that can determine with reasonable accuracy and in real-time whether a given input frame contains said corners which thus may correspond to objects and other characteristics worthy of note. This is essential for machine vision, with machine learning able to bump up its recognition accuracy even more.

Implementing this algorithm on the ESP32-S3 proved to be a bit of a challenge due to somewhat limited SIMD ISA. Missing instructions included things like comparisons between unsigned byte values, and there is no support for direct misaligned reads.

All of these required some creative coding to work around, but in the end the ESP32-S3 running at 240 MHz was able to process a VGA stream in real-time at 30 FPS. This means about a 2x speed-up over a naive implementation using only non-SIMD instructions.

If you want to play along at home, the Platform IO project is made available on GitHub.

ESP32 Rotary Display Makes Ideal Timer

We’re big fans of pushing hardware into situations it wasn’t designed for here at Hackaday, but sometimes you’ve got to appreciate a nicely designed gadget doing more or less exactly what it was intended for — especially when it’s courtesy of code that’s freely available for you to run and hack on however you like.

That’s precisely what [mircemk] has done with their “Universal Timer” project. The 2.1 inch CrowPanel “Rotary Display” at the heart of the build combines an ESP32-S3 with a 480×480 round touch screen display and a rotary encoder.

The all-in-one device — clearly meant to be reminiscent of the Nest thermostat and similar commercial offerings — is technically all you need, but in this case it’s been joined by a PCF8574 I2C I/O expander which in turn is used to drive a buzzer that provides a bit of audio feedback at the end of the countdown.

With the code [mircemk] has provided flashed onto the board, the rotary encoder ring built into the housing makes for an exceptionally intuitive input for setting the desired time. It’s a bit like a high-tech version of the classic kitchen timer, as shown in the video below, you simply twist the ring and the graphics on the display rotate accordingly. Unlike grandma’s clockwork timer of old however, this one can change color as it nears zero, which makes it easier to estimate how much time remains from across the room.

As the popularity of smartwatches has brought the cost of these circular displays down, we’ve started to see some very slick projects utilizing them. The various efforts to turn them into desktop “radar” displays for nearby flights are a particular favorite.

Continue reading “ESP32 Rotary Display Makes Ideal Timer” →

The Oldest Windows App To Still Run On WIndows 11

In the open source world we are used to software being compiled from source for our particular distro, so while in a few cases an ancient release may still be in use, it’s just going to run on the latest distro version. But in the Windows world it’s rare for software to come with the source, so you’re left with a binary that will only run if your Windows version has the right APIs for it. Since the more recent versions of Windows dropped 16-bit support a while back, that means there must be a hard date set on the earliest Windows GUI application that can still run today. [Enlyth] decided to investigate.

Given that the earliest API supported in WIndows 11 is the 32-bit version, the hunt led straight to either the first Windows NT release and ancestor of Windows 11, or the Win32s extension for WIndows 3.1. Thus a 1993 Win32S version of Freecell runs happily, but that want’s the end of the trail. Somewhere in the pre-release builds of Windows NT 3.1 would be the requisite binary, but there’s a snag. Early Windows NT 3.1 APIs were incompatible with later ones. This led through a lot of crashing binaries to a November 1992 version of the CD player app, that ran because it called a DLL which happens to still be present. The need for another DLL to emulate a CD drive speaks volumes about the progress of the PC world, back then they were the last word in storage but who’s got one now?

That’s the earliest official binary to run, but the story’s not quite over. Windows 11 may not have a VDM to run 16-bit apps, but there’s a WINE VDM for that. Behold, Reversi from Windows 1.01 in November 1985, in Windows 11. Your ancient software may yet be saved.

In Praise Of A Legendary Power Transistor

There are some devices which achieve electronic immortality, it’s likely that you have used a few of them yourself. The 555 timer of course, or the 741 op-amp. [ElectronicsNotes] is here with another candidate that might not have been on your mind as you read the previous sentences, and it’s a transistor. The 2N3055 is an NPN power transistor, no, THE NPN power transistor, that has found its way into an astounding array of devices over the last six decades or more.

For such a ubiquitous device one might imagine that there’s not much new to know, but the video delivers on that front. Here as well as probably for you the 3055 has always been an epitaxial device whose quirks you likely know well, but originally it was something different. It used the hometaxial construction process on its launch in the early 1960s, but in the mid 1970s it was replaced by a version with the same capabilities but using the epitaxial process. The consequent higher Ft required modifications to circuits using the device to stop unwanted oscillation.

Where this is being written there are several 2N3055s, in the by now rather old office audio amplifier, in a bench power supply, and probably elsewhere too. It’s been superseded in many ways and its TO3 case now feels antiquated, but it will probably never entirely go away. Meanwhile if you’d like to read about another iconic 1960s device that never went away, we have you covered.

Continue reading “In Praise Of A Legendary Power Transistor” →

Enable Resizable BAR On Unsupported Motherboards

Recently [Rod Burlamaqui] released the arc-rebar project on GitHub, enabling Intel GPUs to work significantly more efficiently if the system’s mainboard does not support resizable BAR. It does require a Debian or Ubuntu installation and of course a supported Intel GPU.

Although the resizable base address register (ReBAR) feature has been part of the PCIe specification for a while, its use was quite limited until Intel released its Arc series of graphic cards. These use this feature to map much more of the GPU’s video RAM (VRAM) into the PC’s address space than the standard 256 MB, assuming that the system is capable of decoding addresses above 4 GB, i.e. allow for 64-bit BARs.

For GPU manufacturers like AMD and Nvidia this wasn’t so much of an issue as their GPU designs developed in a world where ReBAR didn’t exist, while Intel’s new GPU generations were designed with ReBAR as a core feature, which naturally cripples performance if the mainboard does not have it enabled during PCIe bus enumeration.

This initramfs-based fix runs before the GPU driver loads and performs the requisite BAR configuration. In testing with an Intel Arc B580 GPU on a 2015-era Intel Xeon mainboard the difference between the default and the fixed bandwidth was a bump from a pitiful 15 GB/s to a respectable 392 GB/s, showing how this one fix can breathe new life into older systems.