update visor blog
kate kate@breadlabs.de
Mon, 09 Feb 2026 13:41:23 +0100
5 files changed,
67 insertions(+),
8 deletions(-)
M
blog/visor.html
→
blog/visor.html
@@ -51,12 +51,16 @@ Total cost: ~96€
</section> <section id="assembly"> <h2><a href="#assembly" aria-hidden="true">#</a> Assembly</h2> - <section> + <section class="image-blog"> <div> <p>First this one removed the rubber ring and straps to (somewhat badly) apply the car tinting foil. It has heard that other units had better success by first creating a paper template to cut out the perfect shape.</p> - <p>This one attached the ESP32 directly to its exhaust vent, below the snoot cap. This has 2 downsides: + <p>This one attached the ESP32 directly to its exhaust vent, below the snoot cap.</p> + <b>This has been since solved differently, see: <a href="#ESP-casing" + aria-hidden="true">ESP-casing</a></b> + + <p> This has 2 downsides: </p> <ul> <li>Corrosion: if your exhaust fumes contain things harmful to electronics (like for example water@@ -77,7 +81,7 @@ alt="Visor with the rubber ring and straps removed sitting on a table.
The snoot has also been detatched revealing a microcontroller taped on the exhaust vent. There is car tinting foil applied to the faceplate of the visor with some visible bubbles and folds."></div> </section> - <section> + <section class="image-blog"> <div> <p>One may not be surprised how the LED-matrices are held in place after reading the previous paragraph. It's only zip-ties and friction. They need to be readjusted every now and then but mostly stay put@@ -88,7 +92,7 @@ <div><img src="/assets/blog/visor/2.1.webp"
alt="The inside of the assembled visor, with 2 zip-tied together daisy-chained LED-matrices inside. They bent to fit the visor shape and loosely connected to the ESP through the back of the exhaust vent."> </div> </section> - <section> + <section class="image-blog"> <div> <p>The ESP can be connected via USB-C through the hole in at the bottom of the snoot. This one also put a little NFC-sticker on its snoot, so it can sniff other peoples devices to share contact info.</p>@@ -97,12 +101,53 @@ <div><img src="/assets/blog/visor/3.webp"
alt="The assmebled visor from the front, showing an experession of 2 purple-glowing boxes on the faceplate."> </div> </section> - <section> + <section class="image-blog"> <div> <p>Beep <span aria-hidden="true">^^</span>. Thats completes the visor making process. This one may expand this site if it makes more changes to it's visor.</p> </div> <div><img src="/assets/blog/visor/4.webp" alt="Unit 6B74-4 with it's visor on in a ballpit."></div> + </section> + </section> + <section id="mods"> + <h2><a href="#mods" aria-hidden="true">#</a> Modifications</h2> + <p> + List of modifications and changes this one has made to its visor. + </p> + <section id="ESP-casing"> + <h3><a href="#ESP-casing" aria-hidden="true">##</a> [WIP] Bayonet mount ESP32 casing</h3> + <section class="image-blog"> + <div> + <p> + It is in the process of making a casing for the ESP32 that can twist onto the bayonet mount + of + the visor, since that seems like a better spot for it then inside the snoot. + This iteration is still far from ideal as some pins have to get bent to connect the wires + properly and the cap does not attach like it should so tape is needed. + </p> + </div> + <div> + <img src="/assets/blog/visor/5.1.webp" alt=""> + <img src="/assets/blog/visor/5.2.webp" alt=""> + </div> + </section> + </section> + <section id="Meshtastic-casing"> + <h3><a href="#Meshtastic-casing" aria-hidden="true">##</a> [WIP] Bayonet mount Meshtastic node casing</h3> + <section class="image-blog"> + <div> + <p> + It has recently acquired a <a + href="https://www.seeedstudio.com/Wio-Tracker-L1-p-6453.html">SeedStudio Wio Tracker + L1</a>, + which is a Meshtastic node used to forward messages and send + telemetry data for this unit via MQTT. + <br>One may find it on any Meshtastic map like this: <a + href="https://meshmap.net/#1188420125">meshmap.net/#1188420125</a> + </p> + </div> + <div><img src="/assets/blog/visor/6.webp" alt=""></div> + </section> </section> </section> </body>
M
style.css
→
style.css
@@ -42,12 +42,19 @@ padding-right: 1rem;
margin: auto; } -h1, h2, h3, h4, h5, h6 { +h1, +h2, +h3, +h4, +h5, +h6 { margin-top: 1em; margin-bottom: 0.5em; font-family: var(--f-heading); + a { text-decoration: none; + &:visited { color: var(--c-link); }@@ -60,6 +67,7 @@ }
#contact table { text-align: start; + & th { text-align: left; padding-right: 0.5rem;@@ -68,6 +76,7 @@ }
a { color: var(--c-link); + &:visited { color: var(--c-visited); }@@ -75,6 +84,7 @@ }
#buttons { margin-top: 3rem; + img { image-rendering: auto; image-rendering: crisp-edges;@@ -87,9 +97,10 @@ #webrings p {
margin-top: 0.1rem; } -#assembly section { +.image-blog { display: flex; flex-direction: row; + img { max-width: 30dvw; height: auto;@@ -98,13 +109,15 @@ }
} @media screen and (max-width: 1200px) { - #assembly section { + .image-blog { display: inline-block; + img { max-width: 50dvw; margin-left: 0; } } + div:has(img) { width: 50dvw; margin: auto;@@ -122,6 +135,7 @@ padding-left: 1rem;
padding-left: 1rem; border-radius: 1rem; font-size: 0.8rem; + & .comment { color: var(--c-overlay); }