Turning A Bluetooth Caliper Into A FreeCAD Input Device

It’s a common ritual: whipping out those calipers or similar measuring devices to measure part of a physical object that we’re trying to transfer into a digital model in an application like FreeCAD. Wouldn’t it be nice if said measurements were to be transferred instantaneously into the model’s sketch, including appropriate units of measurement? That’s essentially what [stv0g] has done by merging a Sylvac Bluetooth-enabled caliper and FreeCAD using a plugin.

Key to the whole operation is a Bluetooth-enabled caliper like the Sylvac S_Cal EVO that [stv0g] managed to score on EBay for a mere €90 when it normally goes for multiple times that amount. This has BLE built in, using BLE’s standard GATT profiles for device communications specifications. Along with the provided Sylvac developer tools, this made it relatively easy to develop the InstrumentInput addon for FreeCAD.

Continue reading “Turning A Bluetooth Caliper Into A FreeCAD Input Device”

Writing An Open-World Engine For The Nintendo 64

Anyone who has ever played Nintendo 64 games is probably familiar with the ways that large worlds in these games got split up, with many loading zones. Another noticeable aspect is that of the limited drawing distance, which is why even a large open area such as in Ocarina of Time‘s Hyrule Field has many features that limit how far you can actually see, such as hills and a big farming homestead in the center. Yet as [James Lambert] demonstrates in a recent video, it’s actually possible to create an open world on the N64, including large drawing distances.

As explained in the video, the drawing distance is something that the developer controls, and thus may want to restrict to hit certain performance goals. In effect he developer sets where the far clipping plane is set, beyond which items are no longer rendered. Of course, there are issues with just ramping up the distance to the far clipping plane, as the N64 only has a 15-bit Z-buffer, after which you get ‘Z fighting’, where render order becomes an issue as it’s no longer clear what is in front of what.

One fix is to push the near clipping plane further away from the player, but this comes with its own share of issues. Ergo [James] fixed it by doing two render passes: first all the far-away objects with Z-buffer disabled, and then all the nearby objects. These far-away objects can be rendered back-to-front with low level-of-detail (LoD), so this is relatively fast and also saves a lot of RAM, as the N64 is scraping by in this department at the best of times.

In the video the full details of this rendering approach, as well as a new fog rendering method, are explained, with the code and such available on GitHub for those who wish to tinker with it themselves. [James] and friends intend to develop a full game using this engine as well, so that’s definitely something to look forward to.

Continue reading “Writing An Open-World Engine For The Nintendo 64”

A screenshot of the inkjet simulator project

Understand Your Printer Better With The Interactive Inkjet Simulator

Love them or hate them, inkjets are still a very popular technology for putting text and images on paper, and with good reason. They work and are inexpensive, or would be, if not for the cartridge racket. There’s a bit of mystery about exactly what’s going on inside the humble inkjet that can be difficult to describe in words, though, which is why [Dennis Kuppens] recently released his Interactive Printing Simulator.

[Dennis] would likely object to that introduction, however, as the simulator targets functional inkjet printing, not graphical. Think traces of conductive ink, or light masks where even a single droplet out-of-place can lead to a non-functional result. If you’re just playing with this simulator to get an idea of what the different parameters are, and the effects of changing them, you might not care. There are some things you can get away with in graphics printing you really cannot with functional printing, however, so this simulator may seem a bit limited in its options to those coming from the artistic side of things.

You can edit parameters of the nozzle head manually, or select a number of industrial printers that come pre-configured. Likewise there are pre-prepared patterns, or you can try and draw the Jolly Wrencher as the author clearly failed to do. Then hit ‘start printing’ and watch the dots get laid down.

[Dennis] has released it under an AGPL-3.0 license, but notes that he doesn’t plan on developing the project further. If anyone else wants to run with this, they are apparently more than welcome to, and the license enables that.

Did you know that there’s an inkjet in space? Hopefully NASA got a deal on cartridges. If not, maybe they could try hacking the printer for continuous ink flow. Of course that’s all graphics stuff; functional printing is more like this inkjet 3D printer.

Two test towers, showing the palette potential of three (R, B, Y) filaments.

FullSpectrum Is Like HueForge For 3D Models, But Bring Your Toolchanger

Full-color 3D printing is something of a holy grail, if nothing else, just because of how much it impresses the normies. We’ve seen a lot of multi-material units in the past few years, and with Snapmaker’s U1 and the Prusa XL, it looks like tool changers are coming back into vogue. Just in time, [Ratdoux] has a fork of OrcaSlicer called FullSpectrum that brings HueForge-like color mixing to tool-changing printers.

The hook behind FullSpectrum is very simple: stacking thin layers of colors, preferably with semi-translucent filament, allows for a surprising degree of mixing. The towers in the image above have only three colors: red, blue, and yellow. It’s not literally full-spectrum, but you can generate surprisingly large palettes this way. You aren’t limited to single-layer mixes, either: A-A-B repeats, and even arbitrary patterns of four colors are possible, assuming you have a four-head tool-changing printer like the Snapmaker U1 this is being developed for.

FullSpectrum is, in fact, a fork of Snapmaker’s fork of OrcaSlicer, which is itself forked from Bambu Slicer, which forked off of PrusaSlicer, which originated as a fork of Slic3r. Some complain about the open-source chaos of endless forking, but you can see in that chain how much innovation it gets us — including this technique of color mixing by alternating layers.

Continue reading “FullSpectrum Is Like HueForge For 3D Models, But Bring Your Toolchanger”

An animation shows an open document in LibreOffice Write. In the document are some hexadecimal opcodes. The operator selects these opcodes and changes their font to Z80 Sans, at which point they are displayed as assembly mnemonic codes.

Disassembling Opcodes With A Font

Those who stay into the forbidden realm of font rendering quickly learn how convoluted and arcane it can be – LaTeX is a fully Turing-complete programming language, Unicode has over eighty invisible characters, and there are libraries that let you execute WebAssembly in a font. A great example of a font’s hidden capabilities is Z80 Sans, a font that disassembles Z80 opcodes to assembly mnemonics.

If one pastes Z80 opcodes into a word processor and changes their font to Z80 Sans, the codes are rendered as their assembly mnemonics. The font manages this by abusing the Glyph Substitution Table and Glyph Positioning Table, two components of the OpenType standard. Fonts define relations between characters (internal representations used by the computer, such as ASCII and Unicode) and glyphs (the graphics actually displayed).

In some cases, though, the way a character is displayed depends on where it appears in a word, or what appears around it (Arabic characters are a common example, but an example from English is the ligature “æ”). Z80 Sans defines all the possible glyphs for each nibble of the opcodes, then used a recursive descent parser to generate substitution rules which display the correct glyphs in context.

For a deeper dive into the pitfalls of text graphics, check out this font rendering engine written for a hobby OS. You can also use fonts to play games or talk to an LLM.

GNU Radio Gets A Makeover With PimpMyGRC

[idealdealy] had a problem. GNU Radio Companion was proving to be a powerful tool, but it just didn’t look… cool enough. The solution? A custom bit of software called PimpMyGRC, designed to jazz things up a bit in everyone’s favorite open-source SDR package.

In the creator’s own words, PimpMyGRC solves the problem nobody had with GNU Radio. It stemmed from [idealdealy]’s desire to have a plain black background in the software to ease eye strain during late night debug sessions. From there, it developed into a full theming package coded in Python, complete with all kinds of fun color schemes.

You can go with “arctic” if you’re somewhere cold, “bubblegum” if you’re feeling young and fun, or “neon hacker” if you’re still obsessed with early 90s movies with terrible plot holes around computers.

None of these themes will help you work faster, but they’ll probably make your friends jealous that your setup looks a little bit cooler than theirs. Plus, there are some really fun animated effects to catch your eye if your attention is fading. You might get flames dancing on the bottom of the screen, or binary digits falling through the display in a manner vaguely akin to terminals from The Matrix.

If you’re new to this world, you might like to check out this primer on getting started with GNU Radio. Meanwhile, if you’re cooking up your own SDR hacks of value, don’t hesitate to notify the tipsline!

Take Pi For A Spin In This Orbital Simulator

It’s Pi Day, and while we know that many of you celebrate privately, those that take a moment to put aside their contemplation of all things circular and join us on this mathematically-significant day will likely know the name [Cristiano Monteiro]. Since 2022 he’s made it a yearly tradition to put together a themed project every March 14th, and he’s just put the finishing touches on the 2026 edition.

Generally, [Cristiano] sends in some interesting hardware device that visualizes the calculation of pi, but this year he surprised us a bit by delivering a software project. His Orbital Pi Simulator allows you to see what would happen to an orbiting spacecraft if it’s navigation system suddenly believed the value of pi was something different.

In broad strokes, we can imagine what would happen. If you plug in something significantly higher than 3.14, the orbit becomes elliptical to the point that the craft can fly off into deep space. Drop the value down, and the orbit will intersect with the Earth — a guaranteed recipe for a bad time.

The Kerbal Space Program players in the audience will no doubt point out that in the absence of drag a spacecraft in a stable orbit would more or less stay on that same trajectory indefinitely and not need to manually adjust its velocity in the first place. Further, they would argue that said spacecraft suddenly firing its thrusters retrograde because a flipped bit in its computer resulted in the value of pi suddenly being 1.2 isn’t very realistic. Those people would be correct, but they would also be no fun at parties.

Fans of math and/or circles will no doubt be interested in the previous devices [Cristiano] has built to mark this date. Last year he put together a robotic hand that counted out pi with its 3D printed fingers, and in 2024 he used the Pepper’s Ghost illusion to great effect. For those wondering, not everything he does is pi-related. The portable GPS time server he sent out way in 2021 was a particularly slick piece of hardware.