<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog on Cal Bryant</title><link>https://calbryant.uk/</link><description>Recent content in Blog on Cal Bryant</description><generator>Hugo -- gohugo.io</generator><language>en-gb</language><copyright>Callan Bryant - All rights reserved</copyright><atom:link href="https://calbryant.uk/index.xml" rel="self" type="application/rss+xml"/><item><title>Astralbrowser: designing an incredibly fast but niche file search engine</title><link>https://calbryant.uk/blog/astralbrowser-designing-an-incredibly-fast-but-niche-file-search-engine/</link><pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate><guid isPermaLink="false">69a6ffe1-5417-4c17-afbf-ff9189f23290</guid><description>&lt;p&gt;This post covers the background and design of
&lt;a href="https://github.com/naggie/astralbrowser"&gt;Astralbrowser&lt;/a&gt; &amp;ndash; a simple, fast file
search engine I created. Here&amp;rsquo;s a demo of the final implementation in action:&lt;/p&gt;</description></item><item><title>Ctrl+Alt+Drink: Adventures building a garden bar with a hidden motorised drinks cabinet</title><link>https://calbryant.uk/blog/ctrl-alt-drink-adventures-building-a-garden-bar-with-a-hidden-motorised-drinks-cabinet/</link><pubDate>Mon, 25 Aug 2025 00:00:00 +0000</pubDate><guid isPermaLink="false">0c4d1801-7248-4f20-acb1-1a4e2ae82641</guid><description>&lt;p&gt;Yep, that&amp;rsquo;s me dressed as Jaws&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; from Moonraker. We had a 007 themed opening
party because everyone kept saying the motorised drinks cabinet looked like
something from a Bond film.&lt;/p&gt;</description></item><item><title>Training a new AI voice for Piper TTS with only 4 words</title><link>https://calbryant.uk/blog/training-a-new-ai-voice-for-piper-tts-with-only-4-words/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid isPermaLink="false">12600994-c0f6-403b-be87-c2e498733067</guid><description>&lt;p&gt;Over the last 15 years (!) I have used
&lt;a href="https://en.wikipedia.org/wiki/Speech_synthesis"&gt;Text-to-Speech&lt;/a&gt; (TTS) systems
for various projects including a fairly elaborate home automation system,&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;
a distributed public announcement system and a monitoring system.&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;</description></item><item><title>Rackmounting that which should not be rackmounted</title><link>https://calbryant.uk/blog/rackmounting-that-which-should-not-be-rackmounted/</link><pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate><guid isPermaLink="false">75a84de8-2b89-4308-8bdb-e39f9530ab65</guid><description>&lt;p&gt;A few years ago I developed a few clever ways of
&lt;a href="https://en.wikipedia.org/wiki/19-inch_rack"&gt;rackmounting&lt;/a&gt; non-rackmount
equipment so it could look neat in my HiFi rack enclosure.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; The
goal was to have a professional-looking setup that would support input from my
TV, spotify, Airplay, DJ controller and other sources while being able to drive
a subwoofer with room correction and integrated crossover.&lt;/p&gt;</description></item><item><title>3D printing giant things with a python jigsaw generator</title><link>https://calbryant.uk/blog/3d-printing-giant-things-with-a-python-jigsaw-generator/</link><pubDate>Sun, 19 Jan 2025 00:00:00 +0000</pubDate><guid isPermaLink="false">d1dad8c9-1b78-4d88-9b69-f1ef412b18b2</guid><description>&lt;p&gt;I really like the idea of a fully automated pipeline&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; when I build anything &amp;ndash;
it&amp;rsquo;s highly satisfying to see a machine do all the work for you. Combine this
with parametric design, and it makes iteration and customisation a breeze. My
flagship example is my recent &lt;a href="https://calbryant.uk/blog/speakers/"&gt;speaker project.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Design/build of some curved, fully parametric speaker cabinets</title><link>https://calbryant.uk/blog/design-build-of-some-curved-fully-parametric-speaker-cabinets/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid isPermaLink="false">52e32985-1722-4ee8-b7e6-4b1420b12583</guid><description>&lt;p&gt;This post documents a saga of speaker design dating back to 2019. Since then,
I&amp;rsquo;ve been gradually working on a CAD model for a new set of what started as
(yet another) subwoofer, but became some compact 2-way office ribbon speakers.&lt;/p&gt;</description></item><item><title>Hacking GPS into the Meteor 75 Pro, a tiny FPV drone</title><link>https://calbryant.uk/blog/hacking-gps-into-the-meteor-75-pro-a-tiny-fpv-drone/</link><pubDate>Fri, 25 Oct 2024 00:00:00 +0000</pubDate><guid isPermaLink="false">dd5d7ffa-7ff8-47d9-9d12-2cc11685b94f</guid><description>&lt;div class="infobox"&gt;
I&amp;rsquo;ve since managed to get it working reliably! Check the update I&amp;rsquo;ve added to
the end of the article.
&lt;/div&gt;
&lt;p&gt;Following on from my previous article I added GPS&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; (well,
&lt;a href="https://en.wikipedia.org/wiki/Satellite_navigation"&gt;GNSS&lt;/a&gt;) to my tiny drone &amp;ndash;
the Meteor 75 Pro. I wanted to add GPS so I could make use of &lt;a href="https://betaflight.com/docs/wiki/guides/current/gps-rescue-v4-5"&gt;GPS
rescue&lt;/a&gt; in
betaflight as well as see the altitude, speed and distance in the OSD.&lt;/p&gt;</description></item><item><title>A comprehensive guide to FPV drone technology</title><link>https://calbryant.uk/blog/a-comprehensive-guide-to-fpv-drone-technology/</link><pubDate>Thu, 24 Oct 2024 00:00:00 +0000</pubDate><guid isPermaLink="false">44220a56-6ccc-40f5-824a-60a08944565d</guid><description>&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;Since the mid-2000&amp;rsquo;s hobbyists have been building and flying
&lt;a href="https://en.wikipedia.org/wiki/Quadcopter"&gt;quadcopter&lt;/a&gt; drones.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; Since
then, the technology has been improved &amp;ndash; and commercialised.&lt;/p&gt;
&lt;figure style="width:854px"&gt;
&lt;a href="https://calbryant.uk/blog/a-comprehensive-guide-to-fpv-drone-technology/fpv_hu_feab42ec49d1f734.jpg" target="_blank"&gt;
&lt;picture&gt;
&lt;source
onload="this.style.background='none'"
srcset="https://calbryant.uk/blog/a-comprehensive-guide-to-fpv-drone-technology/fpv_hu_4de5493af874b088.webp 1x, https://calbryant.uk/blog/a-comprehensive-guide-to-fpv-drone-technology/fpv_hu_f75511739ccab6d.webp 2x"
type="image/webp"
&gt;
&lt;img
onload="this.style.background='none'"
src="https://calbryant.uk/blog/a-comprehensive-guide-to-fpv-drone-technology/fpv_hu_cc95ee3a2ab26e70.jpg"
width="651" height="480"
alt="The goggles view on my first flight"
&gt;
&lt;/picture&gt;
&lt;/a&gt;
&lt;figcaption&gt;The goggles view on my first flight&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Despite the commercialisation, an incredibly diverse and open selection of
hardware and software is available to hobbyists, in addition to the
off-the-shelf ready-to-fly (RTF) drones.&lt;/p&gt;</description></item><item><title>DIY FPV flight simulator using a VTX, control receiver and HDMI converter</title><link>https://calbryant.uk/blog/diy-fpv-flight-simulator-using-a-vtx-control-receiver-and-hdmi-converter/</link><pubDate>Sat, 14 Sep 2024 00:00:00 +0000</pubDate><guid isPermaLink="false">fe3c880f-0b84-4c3c-a788-8093614b1cb0</guid><description>&lt;p&gt;I&amp;rsquo;ve recently got into a bit of a rabbit hole with
&lt;a href="https://en.wikipedia.org/wiki/First-person_view_(radio_control)"&gt;FPV&lt;/a&gt;
quadcopter &lt;a href="https://en.wikipedia.org/wiki/Drone_racing"&gt;drones&lt;/a&gt;.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;
Specifically with a &amp;ldquo;mini-whoop&amp;rdquo; style drone, the Meteor 75 Pro.&lt;/p&gt;
&lt;figure style="width:854px"&gt;
&lt;a href="https://calbryant.uk/blog/diy-fpv-flight-simulator-using-a-vtx-control-receiver-and-hdmi-converter/IMG_9043_hu_fafc1fc16df51e27.JPEG" target="_blank"&gt;
&lt;picture&gt;
&lt;source
onload="this.style.background='none'"
srcset="https://calbryant.uk/blog/diy-fpv-flight-simulator-using-a-vtx-control-receiver-and-hdmi-converter/IMG_9043_hu_1a8e992d3ed3f266.webp 1x, https://calbryant.uk/blog/diy-fpv-flight-simulator-using-a-vtx-control-receiver-and-hdmi-converter/IMG_9043_hu_ae2cc3bba27e50ae.webp 2x"
type="image/webp"
&gt;
&lt;img
onload="this.style.background='none'"
src="https://calbryant.uk/blog/diy-fpv-flight-simulator-using-a-vtx-control-receiver-and-hdmi-converter/IMG_9043_hu_b7337da648cf0328.JPEG"
width="796" height="480"
alt="...sneak preview of the end product!"
&gt;
&lt;/picture&gt;
&lt;/a&gt;
&lt;figcaption&gt;...sneak preview of the end product!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;As it turns out, it&amp;rsquo;s possible to connect a real drone controller to a computer
to practice flying with many different simulators. I&amp;rsquo;ve tried a few of them,
but I think the best one is &lt;a href="https://www.liftoff-game.com/"&gt;Liftoff&lt;/a&gt; &amp;ndash; it
feels the most realistic.&lt;/p&gt;</description></item><item><title>Better PC cooling with Python and Grafana</title><link>https://calbryant.uk/blog/better-pc-cooling-with-python-and-grafana/</link><pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate><guid isPermaLink="false">7b2975e2-6de8-4455-bfdf-a08fcdd3d0d9</guid><description>&lt;p&gt;I recently upgraded from a &lt;a href="https://www.cpubenchmark.net/compare/3485vs3862/AMD-Ryzen-7-3700X-vs-AMD-Ryzen-9-5950X"&gt;Ryzen 3700X to a
5950X.&lt;/a&gt;
Double the cores, and nearly double the potential heat output. I didn&amp;rsquo;t upgrade
my cooling solution, &lt;a href="https://nzxt.com/en-GB/product/kraken-x53"&gt;a 240mm Kraken
X53&lt;/a&gt; AIO liquid cooler.&lt;/p&gt;</description></item><item><title>Semi-automatic whole-house iPhone internet failover with NixOS</title><link>https://calbryant.uk/blog/semi-automatic-whole-house-iphone-internet-failover-with-nixos/</link><pubDate>Sat, 10 Feb 2024 00:00:00 +0000</pubDate><guid isPermaLink="false">b6a62704-9e41-4dad-bfad-b0bbe663e4ac</guid><description>&lt;p&gt;I have a cable broadband connection at home.
It&amp;rsquo;s actually reliable, which is refreshing
compared to the poor experience had with the
same provider as a student living in Leicester.&lt;/p&gt;</description></item><item><title>CNC routing: speeds and feeds</title><link>https://calbryant.uk/blog/cnc-routing-speeds-and-feeds/</link><pubDate>Sat, 25 Feb 2023 00:00:00 +0000</pubDate><guid isPermaLink="false">b9dae716-c4f0-43df-b2a7-51f13e14362a</guid><description>&lt;p&gt;A friend has his own CNC router; he built it himself in 2009 and has been
upgrading it ever since &amp;ndash; though it&amp;rsquo;s been a while since it was last used. I&amp;rsquo;m
helping get it running again, and help improve it further to cut a pair of
speakers I&amp;rsquo;ve designed.&lt;/p&gt;</description></item></channel></rss>