Get A Remote Terminal With One Binary, One URL, And Zero Config

Launch a single static binary executable, send someone a QR code or URL (or failing that, text a numerical code or shout it across a room), and they’ll get an encrypted terminal in their browser. No VPN, no port forwarding, no firewall modifications, and no account setup required. It’s BitBang by [Rich LeGrand], and there is a lot to go through in this one.

The best part? It’s not actually limited to just firing off a terminal. It’s a whole open framework for establishing an encrypted peer-to-peer connection between two systems over WebRTC without needing either a trusted central authority, or any special network configuration.

The signaling server brokers the handshake, then has no further involvement. By design, it couldn’t see application data even if it wanted to. Click to enlarge.

Opening a remote terminal, transferring files, or accessing web apps on a remote machine’s network is done with bitbang-cli, an implementation of BitBang focused on providing simple, zero-config remote access.

Before we go on, we want to mention that BitBang does require a lightweight, trustless signaling server only to broker the initial connection, but more on that in a moment.

On the machine to be shared, one first downloads the binary. Easiest way to do that is to go to bitba.ng and download manually, or copy and paste the one-line installer to auto-detect one’s system, download the correct release, and verify the checksum.

After the binary is downloaded, simply run it in a terminal and receive a QR code to scan, a URL to copy & paste, or a numerical code if those are inconvenient. On the remote side, one accesses the signaling server and the connection is made — one gets a terminal on the target machine open in the browser tab, with added options for file sharing and accessing web applications on the target network.

The signaling server isn’t involved in authentication or encryption, and couldn’t see private data between the two ends even if it wanted to. Prefer not to use someone else’s regardless? Run your own local instance with bitbang-server.

Originally developed as an easy way to securely make telepresence robots reachable over the Internet with nothing more than a QR code, today it’s a whole framework.

It includes not just the remote-access tool mentioned above, but also a BitBang Octoprint plugin for cloud-free remote access to 3D printers, and bitbang-python is a library for turning local Python web applications into a URL that can be opened from anywhere.

We’re sure some of you are getting more than a few ideas from this. If it lets you bring a project over the finish line, let us know on our tips line.

Browser-based 3D Editor Covers The Basics While Staying Local

Got an idea and want to make a simple 3D model, but don’t want to install a full-fledged CAD modeling suite and queue up a few hours of tutorial videos? Check out SketchForge, a 3D modeling program that runs locally in one’s browser without any need for an account, or external services.

SketchForge takes a more WYSIWYG approach to 3D modeling by making it easy to put an object together with primitive shapes, and making it extra easy to specify dimensions and align parts with one another. There’s also a sketch feature that makes it easier to create more complex shapes by making a 2D drawing, then extruding or revolving it into a solid. We like that it has STEP format export as an option, making it easy to import your creation into another CAD program of your choice later. Most 3D printer slicers natively support the STEP format nowadays, too.

It’s a bit reminiscent of Tinkercad in concept, but entirely local. It’s still new, but there’s a demo online that gives a good idea of its capabilities if you’d like to give it a spin.

We’re reminded of CaDoodle, another project that takes the “Tinkercad, but local” approach but as a standalone executable, instead of browser-based.

RC Telemetry Board Lets Virtual Crewmember Help You Race Better

Logging and telemetry in remote controlled racing is a great thing, and not only does [jwachlin]’s Open RC Spotter do a fantastic job of that, it has quite a few clever tricks up its sleeve that make it extra special.

Open RC Spotter is an ESP32-based hardware platform for high performance RC car racing that reads from various sensors (including IMU, GPS, temperature, battery, and IR receiver for IR lap beacons) to create a filtered stream of readings that include position, velocity, lap time, battery voltage, and more.

Got RC car telemetry? Feed it to a virtual race engineer for real-time feedback.

This data gets logged to an SD card, but can also be broadcast wirelessly via ESP-NOW to a receiver that can in turn send it over serial USB, or do whatever else one wishes. There’s also a neat feature that fires up a temporary WiFi access point on demand so log files can be downloaded with a web browser, no need to hook up a cable.

So far, so cool. But there’s still another nifty feature. [Update: originally the project had a link to the sim racing companion application Crew Chief. The developer clarified that at this writing, Open RC Spotter only supports its own Open RC Crew Chief application and not the similarly-named Windows sim racing assistant.] Open RC Spotter supports the Crew Chief telemetry protocol. Crew Chief is a piece of free Windows software that serves as a companion application for sim racing. It acts as a virtual race crew member, providing spoken information based on live telemetry read from supported racing sims.

Since Open RC Spotter supports the same telemetry format, one can use the virtual race engineer with RC car racing by simply feeding Open RC Spotter‘s serial data to the Crew Chief application. The RC telemetry data isn’t as rich as what comes from the racing sim APIs, but it’s more than enough to be useful.

People come up with all kinds of neat ideas when it comes to RC racing, and most of them depend on having access to good data. For example, a load cell in the steering mechanism can provides the data for force-feedback steering. We’ve even seen LiDAR and a depth camera used to automatically compute optimal racing lines.

Using Video Glasses As A Camera Viewfinder Is Harder Than It Looks

[John Dingley] has a Sony ZV-E10 camera that is excellent, but the design lacks a built-in electronic viewfinder. This means it relies entirely on its rear-mounted touchscreen for framing shots. This is troublesome because [John] often films in bright sunlight, and sometimes from a perspective other than normal eye level. His solution? Use a pair of XREAL video glasses as a handsfree viewfinder.

Cable management can be a real challenge, even if a project’s technical elements are solved.

The XREAL glasses look a bit unusual, but they can be worn and used like regular sunglasses. They accept external video and importantly, allow the wearer to see the video feed while still having awareness of their surroundings. Seems like a perfect match for the camera, but as [John] discovered, there are quite a few implementation hurdles involved.

For starters, the camera and glasses do not speak the same format. The camera outputs HDMI via a distressingly fragile micro-HDMI connector, but the glasses accept video over USB-C (aka DisplayPort altmode). Connectors and cables and a converter will be involved, as well as a power bank because the glasses and converter will require a power supply. As any hacker knows, wires and connectors can eat up space very quickly.

To solve all this, [John] carefully selected off-the-shelf components chosen to minimize bulk and designed a custom camera cage to hold things cleanly without obstructing the camera’s microphone port. The end result is very tidy package that presents a single USB-C connection point between the glasses and the camera, requires no hardware modifications or soldering, and even takes the strain off the fragile connector on the ZV-E10.

The finishing touch is putting a neck strap on the XREAL glasses, allowing them to be easily donned and doffed as needed while filming. Check it out the video, embedded just below the page break.

When it comes to filming vehicles it often makes sense to film from a low perspective. The camera has a handle for this purpose, but the process is much better now that the glasses can act as a viewfinder. [John] has a soft spot for vehicles, including self-balancing unicycles or monotracks of his own design.

Continue reading “Using Video Glasses As A Camera Viewfinder Is Harder Than It Looks”

Behold The Most Beautifully Ambitious Starship Simulator Yet

[Kevin Kelm] created something wondrous: Halcyon Dawn, an utterly unique and desperately challenging game that is equal parts intricate starship simulator, imposing hardware console, video game, and love letter to John Scalzi’s Old Man’s War book series. Grab a beverage for this one, because it’s chock-full of detail.

First, how is it played? The simulator represents the ship Halcyon Dawn, a stolen and renamed vessel, and the player representing its sole crew member. The ship’s new mission is to establish a home for its payload of genetically-engineered unfortunates, escaping a cruel sort of indentured military servitude. The former masters of course have a very different view of the whole situation, throwing around terms like “treason” and “theft” and in general preferring the version of the desperate protagonist they had the most control over.

Aluminum extrusion, laser-cut panels, and custom PCBs for interfacing physical controls and displays make up the bulk of the build.

As the player is meant to be operating the ship on their own, the cockpit is imposing. All 152 controls and six screens are meaningful and will be needed to pilot the Halcyon Dawn, survive hostile actions, repel boarding attempts, mine and refine vast amounts of raw materials, and in general keep the ship running and intact until an autofactory can be deployed in orbit of a suitable planet to create a new home.

All easier said than done. It’s one thing to pilot and tweak a temperamental ship, but doing so while also performing damage control and thwarting a boarding attempt by manipulating life support is quite another. Want more details? Gameplay is documented here and the physical controls have their own library.

The product of a year of focused work, [Kevin] – now retired – pointed his decades of hardware and software experience at Halcyon Dawn after realizing one night that everything he needed to create it already existed. How this whole project came to be is also a tribute to the amazing tools and equipment that hobbyists and hackers of all kinds now have to turn an idea into something that actually exists in the world. Even so, it was a load of work he is not keen to repeat. Don’t miss the technical deep-dive and photo gallery of the build.

While the game itself — being a fan-made derivative of Scalzi’s work (and useless without the custom-made hardware console) — isn’t being released, [Kevin] has shared the underlying hardware framework it is built on. Enigma is an ESP32-based set of input and output PCBs made for integrating switches, knobs, displays, relays, and more with a Python library to make them easy to work with.

Starship simulators are a wonderful subset of projects, and every one is different from the last. Something about physical builds really works for them, and while we’ve seen a camper trailer converted to starship simulator [Kevin]’s project focuses the whole experience beautifully into the single-person console you see here. Watch a video of Halcyon Dawn running in an arcade-like “attract” mode embedded just below.

Continue reading “Behold The Most Beautifully Ambitious Starship Simulator Yet”

Calculator UI Is More Complex Than You Might Think

Calculators are so ubiquitous and so familiar that they are easy to take for granted in many different ways. [lcamtuf] points out one that has probably never occurred to many of us: the user interface for a calculator is an unexpectedly complex thing.

The internal logic to support sequential inputs and multiple operators in a way that feels intuitive is a complex thing.

Resolving something like 1 + 2 = is pretty straightforward but complexity compounds rapidly after that, with numerous special cases. Let’s imagine one decides to program a simple calculator UI as a weekend project. The development process might look a little like this:

  1. User types in 1 + 2 = and the calculator displays 3. What happens if the user immediately presses -?
  2. No problem, just consider the result of the previous operation as an already-there input. So we’ll have 3 - for this next operation, and wait for more.
  3. Unless we should have treated that - as a negative sign for whatever number is coming next, making it a negative number? No, ignore that. Just treat whatever results from pressing equals as a pre-typed input.
  4. Unless the user hits a number. Because if they hit 2 (for example) then we’ll have a 32 and not a 2 which they probably, definitely don’t expect. So that’s a special case and we should insert a clear if that happens.
  5. Oh, better clear if the user enters a decimal, too.
  6. I’m going to need a coffee…

And that’s just the tip of the iceberg. Imagine trying to figure all this out for the very first time, without the benefits of habit and history to fall back on.

The fact is that supporting the apparently trivial behavior of a simple calculator requires an underlying complex state machine that deals with all kinds of special cases in order to make the UI feel intuitive. And that’s just for a basic four-function calculator; we haven’t even touched on how special keys like % should behave.

We know [lcamtuf] speaks from experience, not just because of their deep knowledge of calculator history but because they rolled their own calculator that uses voltmeters as digit displays and there’s nothing like actually implementing something to make one appreciate it.

Spidery Drone Goes Near-invisible By Spinning Really, Really Fast

Researchers demonstrate that something interesting happens when a small drone with a spindly airframe spins at a high speed: it very nearly turns invisible. The spidery device is shown mounted in its launcher in the image above. The dark blur at the rightmost side is an outlet on the wall behind the drone, not motion blur from a moving part.

There’s not much to do about the noise, but a high-speed spin becomes nearly invisible.

It’s called the Phantom Twist, and while we’ve seen single-motor drones that spin around a central axis before, they have always incorporated a wing-like structure or cleverly leverage the magnus effect to generate lift.

There’s not a lot of detail about the Phantom Twist’s hardware design but it appears to use a downward-angled motor for lift, relying on a high-speed control system to maneuver and maintain altitude.

This does away with the need for a wing, at the cost of only being stable while rotating at a high speed. We imagine it is also a touchy design that depends greatly on being balanced just so.

A hand launcher spins the device up before releasing it for flight. The visual effect once it is up and running is pretty striking; see for yourself in the short video, embedded just below.

Continue reading “Spidery Drone Goes Near-invisible By Spinning Really, Really Fast”