Dave Rowntree – Hackaday https://hackaday.com Fresh hacks every day Tue, 21 Oct 2025 02:08:22 +0000 en-US hourly 1 https://wordpress.org/?v=6.8.3 156670177 Putting a Teensy to Task as a Transputer Link https://hackaday.com/2025/10/20/putting-a-teensy-to-task-as-a-transputer-link/ https://hackaday.com/2025/10/20/putting-a-teensy-to-task-as-a-transputer-link/#comments Tue, 21 Oct 2025 05:00:44 +0000 https://hackaday.com/?p=868623 One downside of working with the old Inmos Transputer devices is the rarity and cost of the original silicon. Obviously, you can’t sidestep the acquisition of the processor—unless you emulate—but …read more]]>

One downside of working with the old Inmos Transputer devices is the rarity and cost of the original silicon. Obviously, you can’t sidestep the acquisition of the processor—unless you emulate—but what about replacing the IMS C011/C012 link chip? You need this (expensive) part to interface the transputer to the programming host, but as [Erturk Kocalar] discovered, it’s perfectly possible to coax a Teensy to do that job for you just as well.

The unusual two-bit start sequence differentiates a data packet from an ACK. It’s simple to emulate if you use the LSB of a 9-bit word as a dummy start bit!

Transputers work by utilizing an array of bit serial interfaces to connect a network of devices, allowing for cooperative computation on tasks too large to fit on a single device. This protocol is, at its link level, a simple asynchronous bit serial affair, with 11-bit data messages, and a raw two-bit frame for the acknowledge. The C011 device at its heart is just a specialized UART—it takes 8-bit parallel data from the host, dealing with handshaking, and pushes it out to the first transputer in the chain at 5, 10 or 20 Mbps, but inverted and with two start bits and a single stop bit. In parallel, it performs the same task in the reverse direction.

[Erturk] realized that the Teensy UART has an inverted mode and, crucially, a 9-bit data mode. This allows the second start bit to be generated as bit 0 of the word, with the remaining eight bits forming the payload. Simple stuff. Additionally, the Teensy UART is capable of the maximum transputer bitrate of 20 Mbps, without breaking a sweat.

There is a slight issue, however, in that there is no way to send or receive the two-cycle acknowledgement frame directly. Since the protocol stop bit is a low, it is possible to implement this by simply sending a dummy data word with all 9 data bits low (since the acknowledge is a ‘1’, ‘0’ pattern). In one specific corner case, that of a direct memory PEEK operation, the command is clocked into the transputer, which sends back a two-cycle ACK—almost immediately followed by the 11-cycle data packet with the result. But, since the Teensy UART is still busy ‘fake decoding’ the full 11-bit dummy ACK message, it will miss the data packet entirely.

It turns out that the easiest way to get around this is to speed up the link and run at the maximum 20 Mbps rate. That way, the Teensy will have fully received the overly-long ACK long before the transputer has completed the PEEK command and started to send over the result. Why you would voluntarily run the link slower escapes us, once you’d got the design dialled in and reliability was a given, anyway.

We like transputers, a cool technology that died too soon. Here’s a quick guide to these innovative devices. Some people are really into transputer hardware, like this person. Finally, with the genuine hardware finicky to work with, expensive and hard to find, you could play along with your trusty web browser, and tick it off your nerdy bucket list.

]]>
https://hackaday.com/2025/10/20/putting-a-teensy-to-task-as-a-transputer-link/feed/ 2 868623 retroshield_transputer_revA_take2-featured
CoreXY 3D Printer Has A Scissor-Lift Z-axis So It Folds Down! https://hackaday.com/2025/10/19/corexy-3d-printer-has-a-scissor-lift-z-axis-so-it-folds-down/ https://hackaday.com/2025/10/19/corexy-3d-printer-has-a-scissor-lift-z-axis-so-it-folds-down/#comments Mon, 20 Oct 2025 05:00:00 +0000 https://hackaday.com/?p=868322 We don’t know about you, but one of the biggest hassles of having a 3D printer at home or in the ‘shop is the space it takes up. Wouldn’t it …read more]]>

We don’t know about you, but one of the biggest hassles of having a 3D printer at home or in the ‘shop is the space it takes up. Wouldn’t it be useful if you could fold it down? Well, you’re in luck because over on Hackaday.io, that’s precisely what [Malte Schrader] has achieved with their Portable CoreXY 3D printer.

The typical CoreXY design you find in the wild features a moving bed that starts at the top and moves downwards away from the XY gantry as the print progresses. The CoreXY kinematics take care of positioning the hotend in the XY plane with a pair of motors and some cunning pulley drives. Go check this out if you want to read more about that. Anyway, in this case, the bed is fixed to the base with a 3-point kinematic mount (to allow the hot end to be trammed) but is otherwise vertically immobile. That bed is AC-heated, allowing for a much smaller power supply to be fitted and reducing the annoying cooling fan noise that’s all too common with high-power bed heaters.

Both ends of the cable bundle are pivoted so it can fold flat inside the frame!

The XY gantry is mounted at each end on a pair of scissor lift mechanisms, which are belt-driven and geared together from a single stepper motor paired with a reduction gearbox. This hopefully will resolve any issues with X-axis tilting that [Malte] reports from a previous version.

The coarse tramming is handled by the bed mounts, with a hotend-mounted BLTouch further dialling it in and compensating for any bed distortion measured immediately before printing. Simple and effective.

As will be clear from the video below, the folding for storage is a natural consequence of the Z-axis mechanism, which we reckon is pretty elegant and well executed—check out those custom CNC machine Aluminium parts! When the Z-axis is folded flat for storage, the hotend part of the Bowden tube feed is mounted to a pivot, allowing it to fold down as well. They even added a pivot to the other end of the cable bundle / Bowden feed so the whole bundle folds down neatly inside the frame. Nice job!

If you want a little more detail about CoreXY kinematics, check out our handy guide. But what about the H-Bot we hear you ask? Fear not, we’re on it.


]]>
https://hackaday.com/2025/10/19/corexy-3d-printer-has-a-scissor-lift-z-axis-so-it-folds-down/feed/ 21 868322 1027991695239882906-featured
Was The Napier Nomad The Most Complex Aero Engine Ever Made? https://hackaday.com/2025/10/18/was-the-napier-nomad-the-most-complex-aero-engine-ever-made/ https://hackaday.com/2025/10/18/was-the-napier-nomad-the-most-complex-aero-engine-ever-made/#comments Sun, 19 Oct 2025 05:00:00 +0000 https://hackaday.com/?p=866942 From 1945 to 1955, a British aeronautical company called Napier & Son produced not just one but two versions of an intricate hybrid piston engine, which they named the Napier …read more]]>

From 1945 to 1955, a British aeronautical company called Napier & Son produced not just one but two versions of an intricate hybrid piston engine, which they named the Napier Nomad. The post-World War II era saw the development of several fascinating (and highly complex) piston-powered aeronautical engines alongside the emerging gas turbine engine designs. During this period, gas turbines were inefficient, unreliable, and primarily used for military applications. The (then) British Ministry of Supply commissioned the design and creation of a more fuel-efficient piston engine for aeronautical purposes, both military and civil, aiming to achieve gas turbine-like power while maintaining piston engine efficiency. Quite the challenge!

The specification aimed for 6000 hp and optimal fuel efficiency for long-range use. Napier knew gas turbines were limited by maximum operating temperature, constrained by available materials, which increased fuel consumption and reduced range. Piston engines operated at higher peak temperatures. They considered combining both principles to create a superior design, a concept suggested by aeronautical engineer Sir Harry Ricardo, who had consulted for Napier on other projects. Their complex solution was to build a gas turbine with a two-stroke diesel engine as the combustion chamber, merging the benefits of both.

This liquid-cooled, horizontally opposed 12-cylinder two-stroke diesel engine featured a piston-ported design with shared crank pins in a fork and blade arrangement. Its two-stroke configuration vastly reduces pull loads on the conrods, allowing for lighter one-sided half bearings. The six-throw crankshaft ensured excellent primary and secondary balancing.

A simplified diagram of this behemoth. The intercooler was not fitted.

The piston-ported design of the Nomad relies on a supercharger for efficiency, using a crank-driven centrifugal compressor. Notably, the three-stage exhaust turbine also drives the same compressor shaft. One propeller is gear-driven from the diesel engine, while the second contrarotating propeller is powered directly from the compressor shaft through a second gearbox. It’s quite a unique machine!

To enhance take-off power, the engine is equipped with a kind of afterburner. This feature utilises a fuel injector in the exhaust of the diesel engine to increase the flow of exhaust gases, thereby generating more power for the turbine and providing additional thrust. To maximise efficiency and extract every possible bit of power from the exhaust gases, a valve can be opened to direct some of these gases to a secondary exhaust turbine that operates alongside the main unit. Despite the early optimistic power requirement, the Nomad I produced a total power of  3000 hp, with an additional 319 lbf of usable thrust contributed by the exhaust turbine.

We won’t go into the second version of the (never constructed) engine, the Nomad II; you can watch the video yourselves for that. Suffice it to say, simplification was possible, with yet more innovation. It’s a pity the whole program was cancelled and the engines never saw any usage beyond initial test flights.

If this engine sits firmly at one end of the complexity scale, then this DIY single-cylinder two-stroke surely sits at the other? And whilst we’re still thinking about piston engines, does anyone remember this neat free-piston engine?

Images supplied by the Napier Power Heritage Trust

Thanks to [Stephen Walters] for the tip!

]]>
https://hackaday.com/2025/10/18/was-the-napier-nomad-the-most-complex-aero-engine-ever-made/feed/ 10 866942 Screenshot 2025-10-17 101403-featured
Live Coding Techno With Strudel https://hackaday.com/2025/10/16/live-coding-techno-with-strudel/ https://hackaday.com/2025/10/16/live-coding-techno-with-strudel/#comments Thu, 16 Oct 2025 15:30:51 +0000 https://hackaday.com/?p=866665 The super talented [Switch Angel] is an electronic music artist, with a few cool YouTube videos to show off their absolute nailing of how to live code with Strudel. For …read more]]>

The super talented [Switch Angel] is an electronic music artist, with a few cool YouTube videos to show off their absolute nailing of how to live code with Strudel. For us mere mortals, Strudel is a JavaScript port of TidalCycles, which is an algorithmic music generator which supports live coding, i.e. the music that is passed down to the synthesizer changes on-the-fly as you manipulate the code. It’s magical to watch (and listen!) to how you can adapt and distort the music to your whims just by tweaking a few lines of code: no compilation steps, hardly any debugging and instant results.

The traditional view of music generators like this is to create lists of note/instrument pairs with appropriate modifiers. Each sound is specified in sequence — adding a sound extends the sequence a little. Strudel / Tidalcycles works a little differently and is based on the idea of repeating patterns over a fixed time. Adding an extra sound or breaking down one sound slot into multiple sounds squeezes all the remaining slots down, causing the whole pattern to repeat in the same period, with the sounds individually taking up less space. This simple change makes it really easy to add layer upon layer of interest within a sequence with a few extra characters, without recalculating everything else to fit. On top of this base, multiple effects can be layered—more than we can mention here—and all can be adjusted with pop-in sliders directly in the code.

You see, the code is also the visualizer. As the sequence runs, the notes and time periods are highlighted, with piano rolls and oscilloscope views adding to the visuals to help guide you. Tweaking the various components of the sound composition in real time with embedded sliders is a quick and easy way to smoothly hear the impact of settings. It just makes sense. Additionally, since Strudel is written in JavaScript, you can pull in external libraries of customized functions to make your code more straightforward to read, like this short library from [Switch Angel].

On the back end, the built-in web-based synthesizer is basic but functional for roughing out. Still, for absolute control, you’re going to want to send the notes over to something like SuperCollider or Sonic Pi. This is easy because Strudel supports OSC, making it a simple, configurable item.

If you were thinking that you’ve seen a JavaScript-based generative music thing before, you’d be right. Whilst we’re thinking about generative music and generative art in general, what about having a look at this neat sound-and-light sculpture?

Thanks to [JohnU] for sending this in!

]]>
https://hackaday.com/2025/10/16/live-coding-techno-with-strudel/feed/ 15 866665 Screenshot From 2025-10-15 08-47-59
BASICODE: A Bit Like Java, But From The 1980s https://hackaday.com/2025/10/14/basicode-a-bit-like-java-but-from-the-1980s/ https://hackaday.com/2025/10/14/basicode-a-bit-like-java-but-from-the-1980s/#comments Tue, 14 Oct 2025 11:00:18 +0000 https://hackaday.com/?p=866646 Those of us ancient enough to remember the time, or even having grown up during the heyday of the 8-bit home computer, may recall the pain of trying to make …read more]]>

Those of us ancient enough to remember the time, or even having grown up during the heyday of the 8-bit home computer, may recall the pain of trying to make your latest creation work on another brand of computer. They all spoke some variant of BASIC, yet were wildly incompatible with each other regardless. BASICODE was a neat solution to this, acting as an early compatibility standard and abstraction layer. It was essentially a standardized BASIC subset with a few extra routines specialized per platform.

But that’s only part of the story. The BASICODE standard program was invented by Dutch radio engineer Hessel de Vries, who worked for the Dutch national radio broadcaster Nederlandse Omroep Stichting (NOS). It was designed to be broadcast over FM radio! The idea of standardization and free national deployment was brilliant and lasted until 1992, when corporate changes and technological advancements ultimately led to its decline.

The way this was achieved was to firstly use only the hardware instructions that were common among all the computers, which meant BASICODE applications couldn’t utilize graphics, sound, or even local storage. This may seem very limiting, but there’s still a lot you can do with that, especially if you don’t have to write it yourself, pay for it, or even leave the room! First, the BASICODE program needed to be loaded from local storage, which, when started, allowed the import of the BASICODE application that you previously recorded off the radio. It’s kind of like a manually loaded bootloader, except it includes an additional software library that the application can use.

Later versions of the standard included storage handling (or an emulation of it), basic monochrome graphics, and eventually sound support. The linked Wikipedia article mentions a list of about 23 BASICODE platforms; however, since there is a standard, you could easily create your own with some effort. In addition to allowing users to send application programs, BASICODE also enabled the reading of FM-broadcast ‘journals,’ which were transmissions of news, programming tutorials, and other documents that might interest BASICODE users. It was an interesting concept that this writer had never encountered at the time, but that’s not surprising since only one country adopted it.

If this has got you hankering for the good old days, before the internet, when it was just you, your trusty machine and your own imagination, then we think the ten-line BASIC competition might be of interest. Don’t have such a machine, but have a web browser? (we know you do), then check this out. Finally, if you want to see something really crazy (for a BASIC program), then we’ve got that covered as well.

Thanks to [Suren Y] for sending this in!

]]>
https://hackaday.com/2025/10/14/basicode-a-bit-like-java-but-from-the-1980s/feed/ 29 866646 Basicode2-featured
How To Train A New Voice For Piper With Only A Single Phrase https://hackaday.com/2025/07/09/how-to-train-a-new-voice-for-piper-with-only-a-single-phrase/ https://hackaday.com/2025/07/09/how-to-train-a-new-voice-for-piper-with-only-a-single-phrase/#comments Wed, 09 Jul 2025 23:00:39 +0000 https://hackaday.com/?p=790367 [Cal Bryant] hacked together a home automation system years ago, which more recently utilizes Piper TTS (text-to-speech) voices for various undisclosed purposes. Not satisfied with the robotic-sounding standard voices available, …read more]]>

[Cal Bryant] hacked together a home automation system years ago, which more recently utilizes Piper TTS (text-to-speech) voices for various undisclosed purposes. Not satisfied with the robotic-sounding standard voices available, [Cal] set about an experiment to fine-tune the Piper TTS AI voice model using a clone of a single phrase created by a commercial TTS voice as a starting point.

Before the release of Piper TTS in 2023, existing free-to-use TTS systems such as espeak and Festival sounded robotic and flat. Piper delivered much more natural-sounding output, without requiring massive resources to run. To change the voice style, the Piper AI model can be either retrained from scratch or fine-tuned with less effort. In the latter case, the problem to be solved first was how to generate the necessary volume of training phrases to run the fine-tuning of Piper’s AI model. This was solved using a heavyweight AI model, ChatterBox, which is capable of so-called zero-shot training. Check out the Chatterbox demo here.

As the loss function gets smaller, the model’s accuracy gets better

Training began with a corpus of test phrases in text format to ensure decent coverage of everyday English. [Cal] used ChatterBox to clone audio from a single test phrase generated by a ‘mystery TTS system’ and created 1,300 test phrases from this new voice. This audio set served as training data to fine-tune the Piper AI model on the lashed-up GPU rig.

To verify accuracy, [Cal] used OpenAI’s Whisper software to transcribe the audio back to text, in order to compare with the original text corpus. To overcome issues with punctuation and differences between US and UK English, the text was converted into phonemes using espeak-ng, resulting in a 98% phrase matching accuracy.

After down-sampling the training set using SoX, it was ready for the Piper TTS training system. Despite all the preparation, running the software felt anticlimactic. A few inconsistencies in the dataset necessitated the removal of some data points. After five days of training parked outside in the shade due to concerns about heat, TensorBoard indicated that the model’s loss function was converging. That’s AI-speak for: the model was tuned and ready for action! We think it sounds pretty slick.

If all this new-fangled AI speech synthesis is too complex and, well, a bit creepy for you, may we offer a more 1980s solution to making stuff talk? Finally, most people take the ability to speak for granted, until they can no longer do so. Here’s a team using cutting-edge AI to give people back that ability.

]]>
https://hackaday.com/2025/07/09/how-to-train-a-new-voice-for-piper-with-only-a-single-phrase/feed/ 7 790367 IMG_9908-featured
Convert Any Book to a DIY Audiobook? https://hackaday.com/2025/07/06/convert-any-book-to-a-diy-audiobook/ https://hackaday.com/2025/07/06/convert-any-book-to-a-diy-audiobook/#comments Sun, 06 Jul 2025 08:00:53 +0000 https://hackaday.com/?p=790299 If the idea of reading a physical book sounds like hard work, [Nick Bild’s] latest project, the PageParrot, might be for you. While AI gets a lot of flak these …read more]]>

If the idea of reading a physical book sounds like hard work, [Nick Bild’s] latest project, the PageParrot, might be for you. While AI gets a lot of flak these days, one thing modern multimodal models do exceptionally well is image interpretation, and PageParrot demonstrates just how accessible that’s become.

[Nick] demonstrates quite clearly how little code is needed to get from those cryptic black and white glyphs to sounds the average human can understand, specifically a paltry 80 lines of Python. Admittedly, many of those lines are pulling in libraries, and some are just blank, so functionally speaking, it’s even shorter than that. Of course, the whole application is mostly glue code, stitching together other people’s hard work, but it’s still instructive and fun to play with.

The hardware required is a Raspberry Pi Zero 2 W, a camera (in this case, a USB webcam), and something to hold it above the book. Any Pi with the ability to connect to a camera should also work, however, with just a little configuration.

On the software side, [Nick] pulls in the CV2 library (which is the interface to OpenCV) to handle the camera interfacing, programming it to full HD resolution. Google’s GenAI is used to interface the Gemini 2.5 Flash LLM via an API endpoint. This takes a captured image and a trivial prompt, and returns the whole page of text, quick as a flash.

Finally, the script hands that text over to Piper, which turns that into a speech file in WAV format. This can then be played to an audio device with a call out to the console aplay tool. It’s all very simple at this level of abstraction.

Yes, we know it’s essentially just doing the same thing OCR software has been doing for decades. Still, the AI version is remarkably low-effort and surprisingly accurate, especially when handling unusual layouts that confound traditional OCR algorithms. Extensions to this tool would be trivial; for example, adjusting the prompt to ask it to translate the text to a different language could open up a whole new world to some people.

If you want to play along at home, then head on over to the PageParrot GitHub page and download the script.

If this setup feels familiar, you’d be quite correct. We covered something similar a couple of years back, which used Tesseract OCR, feeding text to Festvox’s CMU Flite tool. Whilst we’re talking about text-to-speech, here’s a fun ESP32-based software phoneme synthesiser to recreate that distinctive 1980s Speak & Spell voice.

]]>
https://hackaday.com/2025/07/06/convert-any-book-to-a-diy-audiobook/feed/ 12 790299 reader_front_16-9_sm-featured