AsteroidStationDelta


Page Created: 3/13/2026   Last Modified: 3/31/2026   Last Generated: 3/31/2026

Asteroid Station Delta

A Solar-Powered Meshtastic & Spartan Node

               /\ ^ /\ ^ /\
            /\^%%%%%%%%%%%%^/\         \====\
        __^%%%%%%%%%%%%%%%%%%%%^__      \====\
      __\%%%%%%%%%%%%%%%%%%%%%%%%/__      |                        .           
      \%%%%%%%%%%%%%%%%%%%%%%%%%%%_/___   | \====\        +     
     <%%%%%%%%%%%%%%%%%%%%%%%%%__/ ` ` \__|  \====\            .
    <%%%%%%%%%%%%%%%%%%%%%%%%_/` ` ` ` ` ` \_  |       +     .  
   <%%%%%%%%%%%%%%%%%%%%%%% /` ` ` ` ` ` ` ` \_|          .                 
   <%%%%%%%%%%%%%%%%%%%%%%% |` ` ` ` ` ` ` ` |                          *             .
  <%%%%%%%%%%%%%%%%%%%%%%%% /` ` ` ` ` ` ` ` /        .        *                *  *
   <%%%%%%%%%%%%%%%%%%%%%%% \_ ` ` ` ` ` ` ` \                       .     
   <%%%%%%%%%%%%%%%%%%%%%%%%% \` ` ` ` ` ` `_/                               .
    <%%%%%%%%%%%%%%%%%%%%%%%%% \_` ` ` `_`_/                                  
     <%%%%%%%%%%%%%%%%%%%%%%%%%% \_`_`_/                         *         +              
      /_%%%%%%%%%%%%%%%%%%%%%%%%%%_\                                   
        /_%%%%%%%%%%%%%%%%%%%%%%%_\                                     * 
           v%%%%%%%%%%%%%%%%%%%v
            \/v%%%%%%%%%%%%%v\/
               \/ v \/ v \/

(Please note that I am not an engineer and have created this system for my own use and self-education only, with the hope that providing information about the project will be useful to others in some way. It might not be suitable for you, and I am not responsible for the correctness of the information and do not warrant it in any way.)

Principle Versus the Application

I'm still new to Meshtastic and discovered in early 2026 that there are now experts/user-groups in just about every major city in the free and developed world, and there are now enough nodes in my city of St. Louis to just about have perpetual access to peers. That's a fast acceptance rate for such an obscure tech hobby, considering that it was only invented 6 years prior.

It has a similar feel, excitement, and energy to that which motivated me to build the PacketRadio based TrillSat 10 years earlier, as I was crossing the two realms of amateur radio and makerspace at that time, having gotten my General Class license in 2016, the very same year I started building it. For instance, it includes the communication aspects (public channels and messages), the DX aspects (trying to reach a distant node through the mesh, although city or state-wide over UHF, not worldwide over HF), the emergency communication aspects (if you lose the electrical grid, cell and Internet networks, it will still function), and of course, the hardware-tinkerer aspects (building your ideal radio node, your ideal antenna, etc.). There is much more to amateur radio (just peruse those giant ARRL books), but it's the best analogy and gateway to the ham world that I seen in recent times.

And so many Meshtastic users are doing the same things I did on TRILLSAT-1 with its radio and power-regulation boxes (the two primary modules that hang under the solar panel) without the solar-tracking and self-elevation TROT mechanism, solving many of the same problems involved in obtaining high height for good line-of-sight propagation (knife-edge diffraction and troposheric ducting notwithstanding). And it has the same constraints of sizing the panel wattage, the battery capacity, the charge-controller rate, and withstanding rain and extreme temperatures.

But it wasn't as easy to pick up as I expected and was just fragments of TrillSat reassembled in a different way, detracting from time that I could have been working on it instead, although adding a LoRa board was one of its goals in pre-Meshtastic, pre-Pandemic 2018. My Meshtastic troubles that I encountered and wrote about in early 2026 presented me with a decision: do I give up on the Meshtastic hobby as a waste of time (it is definitely a time sink, regardless of the low-cost), or do I realize, like TrillSat, that even though it doesn't have much practical purpose now, it's a masterclass on making things, understanding new tools, understanding "old" radio, and understanding the natural world and overcoming its obstacles. Education is a time sink, too, with little direct, practical application in the short term, but that doesn't mean we should give up on it. When you combine both principle and application, then you're no longer an apprentice or acolyte, you're an actual wizard in awe of the new spells you just invented.

Building a Solar Node for Both Meshtastic and Spartan

So, at the time of this writing in March 2026, I've acquired the parts and am now building a solar node, not with a "Spiral-Axis Tracker" with 14-watt panel and 20.4 Ah Lithium-ion battery like I put inside TRILLSAT-1, but a "boring" fixed-tilt solar array. And this one is cheap and will be put into operation immediately, meant for years of unattended use with little risk if I fail; easy to replace if it breaks or wears out. And I'm mounting this thing up high and outside this time, where TRILLSAT-1 should be.

Since I'm going through all of this unanticipated trouble, I'm going to run more than just a Meshtastic node, I'm putting my Pico-based Louia Obscura server in it and will run my Spartan small-Internet site on photons from our nearest Star (minus the AC-powered routers, switches, and Internet modem), something I've been wanting to try for several months. I've been treating TRILLSAT-1 like Colin Cravin in the 1993 film The Secret Garden for several years now, considering it fragile and sickly, keeping it cooped up inside it's dark wooden Ark for its own safety until I can test and record it, a sad fate for a machine that was meant to bask in the Sun, trapped in principle over application.

A lot of things have happened in the last 10 years since I started my TrillSat project. Back in 2016, IoT and 3D-printers were all the rage, and the ESP8266/NodeMCU, Raspberry Pi Zeros, PETG, Baofeng UV-5Rs, Lithium-ion 18650s, breakout boards, BLDCs, MEMS accelerometers, LoRa, and Qi charging were relatively inexpensive new tech to use, compared to years prior. And, except for LoRa (which I documented as a future experiment), I used all of them, along with a lot of other neat things like ATtiny 1634s and portable USB solar panels.

But today, in addition to Meshtastic and better LoRa↗ boards (and the fact that anyone reading this means that they survived the intervening, nightmarish Pandemic), we have the ESP32 and nRF52832 (both released in 2016) with the ESP32-S3 first available in 2021, the ATtiny 3216s (released in 2017) instead of just the 1634s, the Pi Picos (released in the 2020s) with MicroPython, CircuitPython, and MicroLua as programming options, a lot more choices of 3D-printer filament (and new printer designs), a lot more choices of solar panels (many with built-in IP66 waterproofing, ETFE coatings, and even internal batteries). There are more battery chemistries to choose from, too. The safer LiFePO4↗ cell (LFP, for short) is more popular now, with the manganese-based LMFP on the horizon. As a kid in elementary school, I used to dig out manganese dioxide from old zinc-carbon dry cells for my DIY chemistry set as it made up the bulk of the black cathode around the carbon rod, but even newer sodium-ion cells are now in mass production today. There are many more breakout boards out there today, too, along with cheap, 3rd-party PCB prototyping services if you wish to make your own. Even uploading MCU firmware is easier today due to using boards that act as USB flash drives/mass storage devices to transfer .uf2 files, and the venerable BLDC technology is more widespread now and even easier to use.

The Golden Age is Quickly Going Dark

Like nightfall on a solar panel, who knows how long this golden age of DIY consumer electronics from the 2010s will continue in light of the chaotic and utterly depressing state of things as I write this in March 2026. Wars, tariffs, disease, corruption, poverty, climate change, AI... oh my. Demand for solar panels, too, could increase so much due to events involving the world's energy infrastructure that I may not be able to find affordable ones like this in the future, let alone basic supplies. This already happened to RAM in recent months for a different reason, which has become very expensive with no end in sight.

To add insult to injury, in 2026, free and open-source hobbyist OS creators (like myself, with that aforementioned Louia ObScura that I wrote in 2025 which runs the very Spartan server in this project) were suddenly ordered to add an inappropriate, unsuitable age-verification API into our own source code, our own first-amendment rights be damned. Say it ain't so. It's an affront on the entire open-source community with hundreds of Linux/Unix-based operating systems and thousands of volunteer contributors and is written so vague that it encompasses embedded systems, hobby, and even older operating systems from an era where such things are impossible and/or illogical to include, not to mention being a misdirected directive to the wrong party.

And then only weeks later, I saw the news that the FCC has banned new residential, consumer-grade routers not made in the US, regardless of whether or not we run our own open-source software on them, it seems. Well, there are no such consumer routers currently made in the US that I know of that could replace the existing ones at the time of this writing, and I predict that whatever replaces them will be more expensive and have some sort of bootlock/secure boot/TPM that blocks an open-source OS from being installed, becoming even less secure. Are they going to force age-verification code in those, too? I wonder. Consumer routers are a fundamental link one uses to connect to the Internet, especially IPv4 NAT-heavy LANs.

So we've been forced to continue using our old PC RAM longer than we want to (hoping it will not fail), and now the same will apply to routers, since most are showing as out of stock as I write this due to that recent announcement. Today's DIY consumer-electronics paradise is quickly becoming DOA.

My Spartan server luckily runs on my own WiFi router that I built using a Raspberry Pi Zero W (I can build my own routers from Ethernet cards if needed, like I used to do in the past), but who knows how long it will be before the same thing happens to these lovely consumer-friendly LoRa radios. While LoRa was invented by the French, the Semtech SX1262 is US-designed yet most of the chips are actually manufactured in East Asia. And those wonderful Raspberry Pi boards are neither designed nor manufactured by the US (although the Broadcom ARMs in the non-Picos are a combination of US design along with the UK ARM design), but were designed by a UK-based foundation whose original, altruistic goal was to make an affordable computer board to foster UK computer science education and literacy (which it most-certainly did, as it did for the entire world). However, like the current RAM shortage, it had a supply shortage during the pandemic and prioritized business customers over individuals↗ then later went public in 2024, both events of which made everyone in the DIY maker community a little nervous. The relationship between big tech and the individual is contentious, and few of the powerful few are thinking altruistically today.

So, while I still can... here's my plan:

Wio-SX1262 Dual Personality

I'm going to use the extremely small and inexpensive Seeed Studio XIAO nRF52840 & Wio-SX1262 Meshtastic kit instead of my XIAO ESP32-based kit to save power, although the downside of this version is lack of an external Bluetooth antenna that limits its local range. But I can also use Remote Node Administration if I can't get good Bluetooth range or need to turn it off to save power, and it's only for a reliable base node to act as a relay, not my local client node which will still use a XIAO ESP32-based one.

I was able to find the nRF52-based kit in stock finally, but I also bought just the XIAO nRF52840 by itself so see if I can also move my Wio-SX1262 board from the XIAO ESP32 over to it to remove the need to buy another full XIAO nRF52-based kit since they are a little more expensive and harder to find in stock. But the curious thing with those Wio-SX1262 boards is that they are different depending on if you have the nRF52 kit or the ESP32 kit. Below you can see on the left the one that attaches to the nRF52 using the outer pins and the one on the right that attaches to the ESP32 with the small Board-To-Board (BTB) connector.


In my March 3rd blog post, I mentioned that I thought I discovered how to modify the XIAO nRF52840 Meshtastic kit source code to allow this (as you can't just swap them out since the expected pinouts in the firmware are different). It turns out that I don't think I need to modify the code at all, as PlatformIO can compile for "seeed_xiao_nrf52840_btb" (which should include those pinouts, in theory). I tried to manually compile it, and it was successful.

However, while the Wio-SX1262 board from the nRF52 kit looks like it can be plugged directly into the XIAO ESP32 (although I have not tried this) you cannot do the reverse without soldering pins (unless you have the pre-soldered version), since the XIAO nRF52 (even one bought separately) does not have the small BTB connector, and the Wio-SX1262 board from the ESP32 kit does not have a soldered socket on the edge pads either. It seems that the "kit" part of the kit is important, as it implies that the boards are slightly modified to work well with each other.

Twin Solar Panels

I was able to get some 6-watt solar panels with 5-volt regulated output on a barrel connector and IP66 rating for about $5 each, meant for Ring cams. There are similar ones out there meant for trail cams, but they tend to use 6/9/12 volts and are more expensive. These 6-watt panels were even cheaper than 3-watt panels and are overkill and overprovisioned for the nRF52 kit, but not necessarily if I include both the nRF52 kit and the Pico board. They don't appear to be the ETFE ones, seem to be some kind of resin, so I'm not sure how long they will last or if the housing has any UV protection, but they come with a stainless steel mounting base, which is reassuring. If it just works for a few years, that's okay with me, as by then I'll know how to improve it the next time around. I plan to cut off the barrel connectors and use a rain-proof automotive connector (more on this later). Here is a photo of the two panels side-by-side, like the Gemini twins:

Then I plan to mount two of them up high, wired in parallel for 12 watts, at direct south, set at the latitude +20 degrees for the winter sky. That's almost 60 degrees, and I'm going to keep it there... all year round! Sounds inefficient, right? More on this later.

The XIAO board won't take higher than 5-volt input, so I wanted something I could test with the XIAO directly, even with no battery and charger board, so the 5-volt panel was ideal, and this low voltage is also more efficient with the linear charger board I will use (although the 5-watt regulator may have its own losses). I do need to make sure there are diodes on the output if I wire them in parallel, like I do with TRILLSAT-1, to prevent one panel feeding into the other, but since it is likely regulated for the Ring device, it probably already includes the diodes. I counted 10 cells per panel, so it looks like a 5-watt panel native so there is no real gain from MPPT, and 5-volts would get close to the MPP on that panel.

The Iron-Phosphate Lithium Battery

I'm using a single, 6 Ah (6000 mAh) rechargeable cell. Since I set them at a winter angle all-year round, it won't be efficient at noon on a sunny, summer day, but it doesn't need to with all of that long-daylight surplus, it just needs to keep going over a series of overcast, winter days, and fend off snow. And the lower efficiency in summer doesn't matter anyway since the charger (more on this below) will be capped at 1 amp. If I didn't have the Pico, I'd just scale back to a single 6-watt panel but still keep that 6 Ah cell.

The 6 Ah cell will not be a Lithium-ion, like TRILLSAT-1, nor will it be a Lithium-polymer. No, I'm going with that intriguing Lithium-iron-phosphate this time, a single, big 32700 LiFePO4 cell:

You know how hard these wonderful cylinders are to buy in the US due to supply/trade issues? That, along with the fact that most people use larger and much more expensive "prismatic" (rectangular) cells, is why you don't hear about them used in these kinds of moderately-small projects, even though they do power many electric scooters and e-bikes. I wish I could swap out the Li-ions in TRILLSAT-1 with them, but their energy density is too low and would make the craft too heavy unless I redesigned the housing to remove some mass and replaced the charging board with one that can do LiFePO4.

According to the datasheet, these things can put out 36 amperes continuous, with a 48-amp pulse! That makes the 3.2 Ah NCR18650 Li-ion cells in TRILLSAT-1 seem pedestrian, although I combine 3 in parallel per bank. I won't be going over 2 A in my use here, though, so I'm going to solder a 2 A automotive blade fuse on it to shut it down if there is an unforeseen short. Interestingly, since it is on solar, even with the cell not present, it will still work during the day.

A downside of LiFePO4 is that I cannot easily read the cell voltage to infer remaining charge like I can with a Lithium-ion or polymer since it has a mostly flat voltage curve until the very beginning and very end. I can add a voltage divider to scale it for the XIAO board but don't even know if it's worth it, since accuracy is said to be poor. There is the option of me using the ADCs on the Pico along with a shunt resistor to "count coulombs" from a full charge to obtain the state-of-charge at any point in time, but this would only be accurate at night when the solar panel is not adding to it.

I'm a Supernova Tab Welder Now

Since I could not find any 32700 cells with solder tabs from any vendor for any reasonable price (and using a spring-mount cell holder is a bad idea with Lithium cells like this as it could generate unwanted heat), I got my first rechargable spot welder. It only came with nickel-plated strip (on steel I assume, which cannot pass as much current as pure nickel), so I got some 1.5 mm x 8 mm pure nickel strip as well. Now I can weld the solder tabs:

It's not 100% pure, but claims 99.6%. Nickel↗, by the way, which has a higher electrical conductivity than iron and steel but lower than copper, better corrosion resistance, and is easier to spot-weld in battery packs than copper unless one creates a nickel-copper sandwich (since the higher electrical and thermal conductivity in copper don't allow the weld to heat as easily). Nickel is an element found in M-type asteroids, the "M" standing for metal, flashbacks of playing the RTS videogame Total Annihilation in the early naughts where there were only two fundamental elements in their game world's Theory of Everything: Energy and Metal.

This element, though, is ultimately theorized to have been formed in supernovae, accreting into asteroids that later became meteorites (asteroids and meteoroids are ultimately the same thing--the word just varies with context and size) that formed the cores of planets like our Earth.

As a side note, as I write this in March 2026, fireball (meteor) sightings have been way up recently in the US↗ and nobody is quite sure why, but some have theorized that we've orbited into the debris field of anomalous intersteller object 3I/ATLAS that passed along our ecliptic plane. This comet (most think it is a comet, but a strange one) made its closest approach to Jupiter on March 16th, 2026, skipping along its Hill sphere, and will be leaving our solar system soon on a very fast, hyperbolic trajectory.

And tomorrow, NASA's Artemis II is scheduled to take four astronauts around the Moon↗, not only the first time humans have gone out there since the Apollo days over a half-century ago, but also the farthest anyone has ever traveled from earth. At the time of this writing on March 31st, 2026, I don't know if they will scrub the launch, but I have to admit that I worry about a solar Coronal Mass Ejection (CME) hitting them during their trip, as they will have left the atmosphere and magnetosphere of the Earth, our protection from most high-energy particles, and the sunspots have been very visible lately and are turning our way. The Apollo astronauts were very lucky in not having encountering one. Our nickel and iron in the Earth's core work together to create that magnetic-field dynamo that keeps us all alive and would not exist if either were not present↗.

But M-type asteroids from our own solar system have been hypothesized to come from the magma cores torn apart by impacts with small planetary bodies, like a cosmic recycling system of the same nickel and iron, with the largest ones perhaps even having mini volcanoes on them at one time, known as "ferrovulcanism". Imagine that, a giant pizza roll rotating and flying through space, quickly turning to solid rock on the outside, but still blazing hot on the inside, and as the outside cools, it shrinks and pushes that magma back out again. I wouldn't want to eat that one.

I've been fascinated with nickel since around 2013 when I first read about a specific nickel-iron alloy with 36% nickel and 64% iron as I was studying pendulum clocks, the discovery of which by Charles Edouard Guillaume won the Nobel prize in Physics in 1920↗, just one year before Einstein was famously awarded his (which was deferred until 1922 due to controversy, and he never even got one for relativity). What's so special about it? It doesn't expand and contract like most other metals/alloys (is mostly invariable right at that specific ratio but not at others), having among the lowest thermal expansion coefficient of any metal, and even today nobody is sure why. It's bizarre, yet so useful in a pendulum clock where pendulum length alters the period, since it prevents temperature changes from skewing its time-accuracy.

The nickle strip I used cost about the same as it would if I bought those batteries with tabs, so now I have the tool to also replace my Li-ion 18650 3-cell battery bank in TRILLSAT-1 (which I inadvertently allowed to discharge to below safe levels and have taken out of service for risk of dendrites), so it was a good investment. Ironically, the cells inside the rechargeable welder are more dubious than the LiFePO4 cell I am welding, as I have not opened it up to confirm the quality of the cells it uses. I also got a better AC-powered soldering iron with adjustable temp, 80W power, and different tips to properly solder to those tabs and also do the fine work on the small board pads, shelving my 30-watt Radio Shack beast spear for now. Here's the new iron:

Finessing a BQ25185 Charge Controller

The XIAO has a built-in charge controller, but it maxes out at a tiny 100 mA and is designed for the 3.7 volt Lithium-ion and Li-Po chemistry, a no-go here. My Heltech WiFi Lora 32 V4 development board has one too, but also appears to be low-current one designed for small 3.7 volt cells. Even the popular RAK Wisblock 19007 baseboard used in many solar nodes doesn't exceed 350 mA charge current, also designed for 3.7 volt. None will apparently charge the 3.2 volt LiFePO4.

But even if they did, those low rates are insufficient to redirect all of the surplus current of those two solar panels to the battery. Whether or not they can charge the battery enough to power the board (which is what they are designed to do) is not the issue. The issue is that the battery needs to be charged further, at max solar rate, increasing its reserves so to not waste solar energy and to also allow me to run another board alongside it, especially during overcast days and winter nights.

I'm using an Adafruit BQ25185 based-charger, model 6091↗. It's a rather weak, 1 amp linear charger, does not support I2C, but it supports LiFePO4, has true passthrough charging (what TI calls "power-path"), has low-temperature cutoff if you add a thermistor, and should have lower noise than a switching charger. I like this high-quality TI BQ25185 chip and chose it instead of the popular 2 amp TP5000 made by Top Power ASIC. The TI BQ25185 doesn't do MPPT, but gets close, and it's relatively inexpensive. I included a thermistor so that if it drops below 0 Celsius, the charging stops to prevent lithium plating, in addition to shutting off charging if too hot:

While it can only charge at 1 A, it can accept 1.1 A (the extra 100 mA going to the load), and it can pull 3.125 A from the battery if needed.

But the green power LED will always pull a few milliamps, a design flaw in my opinion, since it is powered from the battery when solar is not available and would drain that LiFePO4 cell past safe levels if it could not charge for extended periods, so I will have to desolder the 1 K resistor that powers the green LED and likely do the same for the other two LEDs just in case. The BQ25185 requires a minimum 2.2 volt battery voltage, according to the datasheet, which would apply if solar is not available (otherwise it needs 2.7 volts), but the lowest safe cutoff for the LiFePO4 cell I use according to its datasheet is 2 volts, so I may not be able to use the full capacity of the cell. However, I don't think the charger will allow the cell to drop below 3 volts in practice anyway and will have the benefit of increasing cell longevity. Since the board itself will not have enough power to keep running below 2 volts, I'm not sure at what rate it might still drain the cell. The LiFePO4 tends to run at a lower voltage than Li-ion, but the SX1262, nRF52840, and RP2040/RP2350 will all still work at 1.8 volts, which is pretty amazing, but they are not the issue.

A 6-watt panel and 6 Ah cell would be ideal for that BQ25185. Even though some of max 1.1 A current would be used by the boards during the day (it prioritizes load over charging), it is unlikely for my 6-watt panels to ever hit 6-watts due the fact that I am setting it at the winter latitude +20 angle all year round, and the lower winter sun plus higher air mass↗ produces less energy anyway even when aligned. But since I am using two 6-watt panels, there will be a few times of the year and day when they exceed that 1.1 A limit, wasting energy, but it should not matter much. I had considered a mixed-tilt southeast/southwest orientation for each panel to flatten the power curve and stay under that limit, maximizing the daily power, but it only works in the summer when the sun starts in the far northeast and arcs way across the sky to the south then northwest. In the winter, the sun just has this small arc to the mostly south direction so the east/west split would allow little to no improvement and also be detrimental by not gathering the most energy at noon, as there are so few hours to obtain power in the winter.

An Optimization Puzzle

It turns out that fixed-tilt panels are not boring. Let's do some rough estimates. While my numbers are likely very inaccurate, the high-level concept is sound and just needs to be further refined.

Let's assume that I lose 20 percent in summer if my panel is set at that latitude +20 degree winter angle instead of a flatter summer angle. So my 12 watts would be reduced to 9.6 or lower even when it seems like conditions are ideal at noon, and 9.6 watts / 5 volts is 1.92 A, almost twice the board capacity, seemingly wasting untapped energy.

But a 6-watt panel, which is supposed to have been STC rated↗ based on a temperature of 77 F (25 C) at high noon would lose at least 10% energy, even on the summer solstice, if the temperature was 90 degrees, which is common where I live (even higher if mounted too close to a hot roof). This puts it at 8.64 watts, 1.728 A.

With this energy, however, the linear charger will lose 30% of it as heat when it drops the 5v to 3.2 volt average to charge LiFePO4. This leaves us with 6.048 watts or 1.21 A which is very near the max 1.1 amp input of that panel, with little waste. Perfect.

But... if it's cloudy, we lose another 30% or more, dropping it down to 4.23 watts or 847 mA. Still pretty good, since the summers are very long days.

However, in the winter while the sun is low and not out for very long, a few things happen that improve upon the above. The solar panel itself becomes more efficient in the cold, and we match that sun angle head-on. So lets remove that 10% and 20% summer penalty from above and also add a 5% bonus when it gets near freezing.

Then we have 8.82 watts, 1.764 A, way above the board limit. But in the winter with all of that air mass in-between and less intensity, we won't get as much solar energy anyway and need to subtract another 15%.

Then we have 7.5 watts, 1.5 A, and 400 mA would be wasted. But if it's cloudy, more common in winter than summer, we lose that 30% again, setting it back down to 5.25 watts, 1.05 A, right in line with that charger again.

Besides the freezing temperatures that stop the battery charging at or below zero, the other main problem with the winter is that the days are too short to allow much time to charge, so we have to get as much as possible as fast as possible. While I could improve solar efficiency for summer by doing the east/west rotation, a pure south orientation is already ideal and would just detract from winter. I cannot afford to have less power whatsoever in winter since I won't know when a daytime high of below freezing will occur, stopping LiFePO4 charging, and this means that it cannot replenish what it pulled from the battery the night before. Any rotation of the panels east/west would detract from winter power during the time it needs to be maximized, so the clipping at noon on a sunny winter day cannot be avoided.

I got a cheap, USB power meter, but this one has limited precision to only 10 mA, yet it does have a mAh counter, which is useful:

When using it to test my Pico 2 W Spartan server, where I enabled my own powersave mode but turned off sleep on the Wifi module, on boot it briefly hits 130-140 mA for a fraction of a second, then the current draw sits around 30-40 mA when not doing anything, sometimes spiking to 70-100 mA for a second. But during transfer of multiple Spartan pages over Wifi, either a single page or many pages concurrently, it sits in the 50-60 mA range. So let's estimate I get around 45 mA current draw, part quiet, part serving pages.

A XIAO nRF52-based Meshtastic node, if busy and transmitting frequently with Bluetooth disabled, is estimated to use around 25 mA average, considering idle states and brief transmitting states, so let's assume 65 mA current for the two boards combined.

On a cloudy summer day, that leaves 782 mA to charge the cell, and on cloudy winter day, that leaves 985 mA to charge the cell, 7.67 and 6.09 hours to reach full charge, respectively, not taking into consideration the fact that it does not start from 0 charge.

That's enough time during the winter solstice where I live (which is around 9 hours), and on the summer solstice, the panels will not be tilted flat enough, but there is less air mass, and I have about 50% more time to obtain that charge during a longer 14.5 hour day. But in winter, there are only about 50% good hours of the day to obtain this charge, so I need to charge it in 4.5 hours, if possible. For just the Meshtastic node at 25 mA, it can stay alive for 12 days at least, perhaps a month, depending on activity. And luckily, even the 65 mA current draw with the Pico board active is low enough to provide power for 92 hours, which should last at least 5 nights if daytime temps were still at freezing. The problem is going into that 6th night.

I can mitigate this somewhat by shutting down the Pico board at night and then redirect my Spartan server to the Linux-based Louia indoors on an AC-powered Raspberry Pi Zero W (something that is already in operation alongside the Pico), and the XIAO board could then continue to run for around a month on that 6 Ah cell, so we'd have to have over a month of sub-freezing daytime temps to stop the Meshtastic node. I'm not sure how I would know if it is night, though, without adding an external circuit like I do in TRILLSAT-1, since the Adafruit S2 pad that is connected to the charge LED could mean it was not charging for other reasons, although the fault LED on S1 can limit this set somewhat and will signal if in thermal shutdown, among other conditions. The problem is that if there is no charge and no fault, then it is either dark or fully-charged, conditions that would require opposite actions on my part, and I won't know which, so I may have to place a divider on the solar panel 5-volt output so the Pico can sense it.

I can then use the Remote Hardware module↗ in PlatformIO, more on this later) on the node to turn the Pico back on. If it's warm enough to melt snow in the daytime, though, it should be warm enough to warm that cell to kick on the charging (in theory, more on this below).

There is something else to watch, however:

The charge rate for LiFeP04 drops as you approach 0 Celsius (freezing point of water), perhaps down to .1 C (the battery C-rate, not Celsius), but even if it does this when in the single digits above freezing, a rate of 600 mA is not too far off from the max 1000 mA rate that the charge controller can put out anyway. This would take 10 hours to fully charge a 6000 mAh cell, which would be the length of daylight around late January here when it is coldest, a nice match even though not all of it is usable, but the problem is twofold: (1) the charger is smart but not that smart and doesn't know this and likely assumes the cell capacity is 1000 mAh, reducing the rate to just 100 mA, and I don't know if the BQ25185 scales down to that lower current if between 0 and 4 Celsius, anyway, or just cuts off charging completely, which would mean anything 39.2 Fahrenheit (4 Celsius) or below would not charge at all. But even so, we still tend not to have more than one week in a row lack a daily high temperature below 40 F, and the sun can also warm the panel or housing, allowing radiant energy to assist with this.

In St. Louis, we had many sub-freezing days in the winter before I published this, but none lasted more than a week before we got a daytime high above freezing, so this should work (again, in theory), with some manual operator intervention if it gets really cold and if the servers get really busy at night.

I can also enable power-management to sleep the radio modules until data arrives, to further reduce power, something I didn't test with the Pico 2 W, since I turned it off.

The reason for all of this battery and power setup is safety; the LiFePO4 is safer in comparison to a Li-ion, unlikely to experience thermal runaway even under hot summer temperatures. It's not as safe as NiMH due to still having a flammable electrolyte and can release hydrogen fluoride gas (among other toxic gases) if burned, like all lithium batteries, but NiMH is twice as heavy (being less energy-dense), and LiFePO4 is said to not release oxygen like Li-ion cells (due to the iron-phosphate bond) which adds to the safety. It's not the flammability that creates the risk, necessarily, but the ignition source and likelihood if it occurring. I'm just trying to prevent a fireball falling from the sky. Could that be what people are seeing? :) Perhaps they should rename Li-ion to "brimstone cells". The cold-temp cutoff is to both prevent battery lithium-plating damage and also minimize that fire hazard, and those LiFePO4s can be recharged thousands of times (my datasheet states >= 2000 cycles!) and are reported to last well over a decade without substantial degradation.

Paired with the BQ25185, it is perhaps "too safe", though, since it has a hard-coded 6-hour lockout which shuts down all charging after 6 hours until the charger is reset. Say the solar panel starts working at 6 am when sunlight hits it. Well it will then shutoff at noon, and any energy for the rest of the day will not go to the cell, being lost until the next morning. Or the Chip Enable pin on the board (a nice feature) can be toggled by an external circuit to perform this.

I like this safety feature, for if something was wrong with the board or thermistor, the shutdown stops right at that 6 hour point, which just happens to be the duration for a 6 Ah cell to reach maximum charge at 1 A rate, if it started from empty. This is because it won't start from empty (as having the cell empty would damage the cell like most lithium batteries), it starts from the 3-volt point when the BQ25185 would cut off the load, a nice safety margin, but that point leaves about 8% remaining (around 480 mAh). So full charge would occur more quickly than I estimated above, with winter under that 6 hour limit. But that means we only have 92% usable capacity and I'm working with a 5520 mAh cell in practice, so my numbers above have to be lowered and I've got just over 4 days for the nRF52 kit and Pico W before I lose power in winter if below freezing, just over 11 days if just the nRF52 kit, perhaps a month still if not heavily used.

However, this would not happen in practice since the board will not use that same rate all throughout the charge cycle but will lower it at points.

But I can't afford to not obtain 100% charge to prepare for those long winter nights if I have that 5 day reserve time, so I need to reset the board every 6 hours to allow for more time to charge the cell, ensuring it gets as much surplus as it can. This gets tricky, and I ether need to have the Pico GPIO briefly set the CE pin on the Adafruit board high, then low, or ideally, have the lower-power Meshtastic board do this independently in cases where I power down the Pico.

After doing a lot of research on Meshtastic settings, it turns out I can set it to Deep Sleep for a minute or so every 6 hours by setting one of the GPIO pins to low (I may have to enable Remote Hardware), then tweaking the Deep Sleep and awake times, but this will have to be done in the web client over Bluetooth for more granular control. The deep sleep should send that GPIO pin into a float state, then I can use a 10k pullup resistor on it to ensure it goes high during that time, then when it wakes, it pulls it low again. If this pin is wired over to the CE pin on the Adafruit board, this should reset the charger. It will lose a little power, though, around 330 uA through that pullup which is negligible in my setup.

In TRILLSAT-1, I do not explicitly use MPPT either (and an assume a similar thing that I mentioned above occurs inside the solar panel's 5-volt regulator or perhaps it has some sort of constant-current MPPT), but I do have all kinds of redundancy such as dual thermistors extracted from two powerbanks along with eight other temperature sensors, including a DS18B20+ probe and LIS3DH board directly in the all-important battery box. Rather than add a wire heater, I placed the batteries against aluminum that was painted flat black to increase emissivity and turn it into a radiator, emitting infrared heat into the battery box. I even considered stalling the two motors briefly and then run the gyrofan slowly to convect warm air into the box. TRILLSAT-1 is meant to be dynamic, adjusting to solar and weather conditions on the fly.

I will not do this with this Meshtastic fixed node, and when this battery drops below 0 Celsius (or 4 Celsius, not sure yet) and the charging shuts off, it will use up its remaining battery at night until the temp rises again.

A Battery Greenhouse For When the Thrush Knocks

Since I have a 3D printer at my disposal and since I am still worried about freezing temps for long periods in the winter (but I don't want to add an active heater), one design I've been mulling around in my mind is a passive and geometric way to heat the battery in winter but keep it cool in the summer though seasonal shading. Think of the Monolith in 2001: A Space Odyssey if the wide side was aligned north/south. I need a container oriented upright like that, where the top of the unit has less area than the side, so the overhead sun in summer does not hit much of the case, yet the low southern sky sun in the winter will hit the broadside of the case without shade. But I also need an overhanging sun shield on the top of the unit since the summer sun will not always be solstice, high noon, and even on the far east and west sides where the winter sun will not shine will block the summer sun. It's the opposite of a deep hole in the ground where the hole would only get sunlight in summer but not in winter, and I'm sure there are planetary science analogs and NASA deals with this everyday.

As I ran on a local asphalt trail in the spring of 2026 (been a distance runner for the last 40+ years), the spring sun had a great effect, as even though it was 50 F and I debated wearing a hat, it was too hot for my head to wear a hat in the sun, so I ran without it. But during the run, some clouds passed in front of the sun, and almost immediately, strong, cool winds started blowing into my ears (and I wished I would have worn that hat!). So I needed some form of "passive" regulation, and I should have just put cotton in my ears to keep out the wind, and my head would just stay cool (I will remember next time!). I also noticed the sunlight coming in a bit horizontal and illuminating some crevices in a stone retaining wall as I ran past. Springtime, once you remove yourself from all of the hustle in populated areas where people go a little crazy after being cooped up so long in the winter, can be a quite magical time. It's no wonder why the ancients built megalithic structures that marked the movement of the sun. It's also less humid in the spring, the asphalt and buildings have not had time to sufficiently heat up their mass, and heats and cools quickly.

Remember the Map Room scene in the 1981 Raiders of the Lost Ark with the sunshaft entering the room and slowly moving toward the location of the Ark? That's an example of the deep hole that I mentioned earlier, and caves have similar sunshafts. That scene blew me away as an 11-year-old and reminded me of the 1977 NBC animated TV special of The Hobbit that I saw a 4 years earlier when I was 7 years old, perhaps the first time I had encountered this sunlight magic:

"Stand by the grey stone when the thrush knocks, and the last light of the setting sun will shine upon the key-hole."

That was an abridged adaptation of Tolkien's actual line:

"Stand by the grey stone when the thrush knocks, and the setting sun with the last light of Durin's Day will shine upon the key-hole."

In the animated scene you can see a beam of sunlight illuminating a keyhole.

I could also eschew the PETG and go old school and place the unit in a clear PET sports-drink bottle, with a mouth maybe wide enough to fit the 32700 cell (I have not tried but they look very close). Even a tiny, temperature-controlled 30mm fan like those used for Raspberry Pis might fit if I wanted active cooling in the summer, but they can draw many times the power of the boards themselves, partially mitigated by the fact that when they are on, solar power is likely at maximum anyway. It would not be not a ship in a bottle, it would be a spaceship in a bottle.

I even thought about 3D printing a parabolic shape and then install an acrylic window (like the window in TRILLSAT-1), then set the cell at the focus like a solar oven. But then I worried the cell would get too warm.

But I liked that concept and decided it was safest and easiest just to 3D print a thin, rectangular box (that Monolith, so to speak), but instead of the outside being black, the outside will be white, and only the northernmost, inside panels black, and then the southernmost panel will be an acrylic window, very similar to how I designed the radio box and acrylic window in TRILLSAT-1, but oriented vertically with a full, transparent cover. Since it has a relatively large area compared to the cell, it will gather a lot of light (and thus heat) in winter, but in the summer, there is still quite a bit of air mass in the box which will not be hit by the sun, so it shouldn't create a runaway greenhouse effect, nor thermal runway of the cell, with such low heat coming off the battery.

Designing the dimensions of that box is a physics calculation I was hoping to not have to do, as I would need to consider the area receiving the solar energy (intensity) that could heat up a certain mass (the weight of the cell) at a fast enough rate to be useful so that I can start charging it before I lose most of my useful sunlight, and if I want to be really accurate, consider the volume of the air inside the box, too.

The charger will be mounted at the top of the box to keep the heat rising away from the cell just in case, and the Pico W will be inside (staying cool) to monitor the temperature, in addition to that thermistor monitored by the BQ25185 (which will be taped to the cell on the backside, shaded from direct solar radiation). And the box will be insulated with dark foam on the inside except for the window, to keep it warm in winter, yet not fully enclosed so it doesn't stay too warm in the summer.

So it will be three parts: the box, the antenna housing which has a flange for water runoff (more on this below), and the acrylic panel.

The Adafruit board has a linear charger which at 1 amp in the summer would add to the heat during the warmest part of the day, perhaps even throttling. I don't want to add MOSFETS and a polyimide film heater in winter, as that's just too much for this project (I didn't even add dedicated electrical heating in TRILLSAT-1). But in thinking about this, I realized I made an error in my assumption with TRILLSAT-1 that the sun would always be south-facing. When you get near the summer solstice, the sun actually rises and sets in the north! Then it quickly goes to the south. Neil deGrasse Tyson explained this geometry↗ a few years ago. TRILLSAT-1 can handle this with its spiral-axis tilting, but it may not be as efficient as I assumed.

What a lot of people do with larger prismatic cells is insulate them heavily and then rely on the heat generated by the discharge from internal resistance, which can occur below freezing to a point. If insulated, this heat will remain even in daytime when the battery stops discharging and goes into a charging state (when you need it above freezing). But the problem here is that I don't discharge at a rate to cause appreciable heat.

I thought about adding a thermal mass in the box, too, but the mass would only help at night, when I don't need the heat as it is just discharging. Having a mass would also keep the box cool when I am trying to warm it from morning sun to kick on the charging, so it works against me here. The insulation, though, helps, but not for internal battery heat, but for higher temperatures inside the greenhouse when illuminated.

But it's critical to get the solar angles right for that location, as you don't want the direct summer sun, or a bright reflection, ever entering that greenhouse. An analogy is a car. In the summer, if you park in the shade, the car is bearable inside, and in the winter, if you park in the sun, it can be cozy and warm inside.

The whole point of a traditional greenhouse is to keep the plants at a nice temperature, not too hot and not too cold, so you have become a battery gardener, in way, and the same techniques for greenhouses will likely be applicable here.

But in my case, I'm not trying to create a nice temperature all year round, but just keep those cells above freezing in the winter. So it will be a very narrow angle, a secret garden, and I'm going to intentionally block a lot of spring and fall light from entering the greenhouse, too, as that could also overheat the battery. It's a greenhouse for a lithium-iron-phosphate hellebore↗.

It's mind-boggling how many dynamic and nonlinear interactions there are with all of these variables. I thought I could just connect a few boards for this project and be done with it, unlike the complex work I did in TrillSat, but in order to do it right, you still have to work through those equations, finesse those circuits and housing to be within the ranges you need. There's no easy way that I know of to accurately combine these variables to maximize success unless I model or test/tweak it; it could easily get too cold or too hot. With TRILLSAT-1, which was analogous to nautical ships rather than greenhouses, I dealt with this problem by using active monitoring and control via simple algorithms, tilting the craft in the sun as needed, turning on the gyrofan, shutting down the charger, stalling the motors to heat it up, etc.

But, for the same part count, it surprised me when it turned out to be just as difficult to analyze for a passive system like this where you have to get the numbers right the first time. You no longer have to design non-linear control systems, but now you have to design a fixed system that adapts to non-linear input. This is probably common knowledge for NASA engineers. I should have realized...

This is where principle defers to application.

The Power Failure Recovery Problem

One thing I also had to consider is whether the Meshtastic board can recover in the event of power failure if the supply voltage does finally drop beneath the board's operational threshold in the winter when both the battery and solar panel run out of power. In TRILLSAT-1, I handle this programmatically by doing graceful shutdowns of subsystems: the Pi Zero W first, then the ESP8266, then running on only the two ATtiny 1634s (Sawyer and Huckleberry, named after two hamster brothers who someone named after Twain's characters) until it finally went dark.

You wouldn't think I would ever need to turn on brown-out detection on the ATtinys, since the solar panel has a regulator or buck converter that shuts down abruptly when the light gets below a certain threshold. But I had to turn it on anyway back in 2018 after a cascade failure burned out my first BLDC (one I extracted from an old DVD-burner) when intermittent solar power caused a quick on-off-on cycle that kicked on the MOSFETs and stalled the motor, and the ATtiny that was supposed to sense the stall and shut it down was locked up due to that erratic transience... Similarly, with some Meshtastic boards, they do not recover well when they have such transience either, or when the solar panel is directly connected to them but drops below their voltage threshold before raising again. And some charge controllers, like the Adafruit 6106 that also includes the TI TPS61023 boost converter, will not turn on power during the soft start phase if the load is beyond 200 mA.

I haven't read any reports that the XIAO doesn't recover well, but it would obviously be a good idea for me to create a mechanism on the Pico to allow me to force-reset it just in case, rather than climb up outside to do this.

Back in 2018, I wrote:

"Just like the hamsters, the ATtinys are tiny creatures awake at night when the other chips are sleeping (they use such little power that there is no need for them to go to sleep). Late at night, near sunrise is the most precarious state for the craft, as it has been out of sunlight/solar power for the longest span, so in some cases the Pi has already shut off the Radio, the ESP has already shut off the Pi, and Huckleberry has already shut off the ESP.

But his brother Sawyer is still awake in the module next to him, keeping watch on the dark sky waiting to tilt the craft to the Sun, all on its own.

Huckleberry can detect Sawyer's work when it notices that electrical solar energy begins flooding in, and then it turns on power to the larger CPUs (the Pi and ESP). But the tiny chips can still go to sleep if they want: if the battery voltage drops too low and risks damage to the Lithium-ion cells, Huckleberry can make the decision to cut ALL battery power to itself and Sawyer, turning them off until the morning sun arrives, at which time they will come back online on pure solar power alone. They could be configured to save any important information to the internal EEPROM beforehand. (Hamsters, by the way, have the ability to hibernate, placing themselves in a state of torpor if conditions become unfavorable, which should hopefully never happen, a trait humans may have once had in our ancient past.)"

"If, for some reason Sawyer failed completely, Huckleberry could still maintain power at a low level when the sun hit the panel at the correct angles, but it would have to sleep frequently, and the craft would be stranded high on the tether exposed to windy storms. If Huckleberry failed, Sawyer could still maximize solar power, but there would be no way to store it. The ESP should come up on its own if Huckleberry fails, but there would only be enough power for it and the Pi during sunny days, and it would have to carefully manage the motor power and radio, providing barely enough power during the brightest of days.

This seemingly orchestrated operation is profound, and it reminds me of all of the life forms in the world and how we live out our lives, being quite isolated and separated, yet we are interdependent on one another, all in cycle around our Sun, not realizing the high-level beauty of what we are creating."

Trading the Pico 2 W for the Slower Pico W

Since I cannot control the GPIO and watchdog states of the Pico 2 W with RP2350 in MicroLua↗ until they update it for the newer Pico 2 series, when mounted outside high in the air, I will no longer be able to use my external watchdog mechanism, nor will I be able to use the Spartan server to communicate with the Meshtastic board. If it locked up, there would be no easy way to reset it.

Luckily, I ensured that Louia ObScura ran on both the 150 MHz Pico 2 W and the 133 MHz Pico W, although the latter has half the RAM and flash, and now this has suddenly become very important. And as reported in 2025 with SDK 2.1.1, the Pico W can now run at 200 MHz, which will help, but I may have to create my proposed substitution compression system now so that I get at least a good decade of use. I was a little disappointed to find out lately that even though there are other RP2040 3rd party boards out there with more flash storage, none of them have the WiFi module I need. So I would have to add my own external flash.

Here's a photo of my $5 Pico W board alongside the XIAO and Adafruit boards that will eventually be connected to it:

Then, with the Pico W in place, I can improve my powersave code to power it down as much as possible when it is not doing much. Then I can enable the watchdog on the Pico W and also allow the Meshtastic board to reset the Pico W if I ever see that it locks up.

The Meshtastic software can be compiled without the "-DMESHTASTIC_EXCLUDE_REMOTEHARDWARE=1" flag in PlatformIO to enable the use of the GPIO so that I can use it to reset the Pico W if it locks up (an external watchdog, essentially), but I would have to also use Python on my PC to send the GPIO commands, a feature they disabled in the Android app, apparently to prevent users from damaging their GPIO ports if they didn't know what they were doing. Since it lacks a WiFi module, unlike the ESP32, I will have to enable Bluetooth to do this, using more power and advertising the node, which means the PC I use to send the command must also have Bluetooth and be within range of the unit.

A neat thing about Meshtastic is the Remote Node Administration↗ feature, allowing me to administer it over LoRa. I have not tried this yet, but this was something I considered doing in TRILLSAT-1 over packet radio as well, but it gets tricky since you have to prevent unauthorized access, yet cannot use encryption. So I can enable Bluetooth as needed, then use Python to tell the Meshtastic board to flip the GPIO to reset the Pico W. Conversely, I can create a watchdog mechanism on my Spartan server to listen for the Meshtastic heartbeat signal on one of the LED or GPIO pins, and the Spartan server can reboot the XIAO board.

This is a perfect use for a custom app in my Louia Obscura OS (as long as I get it to run longer than 30-minutes, something I hard-coded in since it was just a novelty function at that time). But... I have to get everything working before I physically mount it outside, because I will not be able to program the Pico W firmware in the field if I left something out (there are ways but I did not integrate them). TRILLSAT-1, though, is completely programmable in-field, over-the-air, something I designed into it from the very start. The Pi Zero W, ESP8266, ATtiny 1634s, and even the Baofeng UV-5RA flash memory can all be reprogrammed remotely over WiFi.

If for some reason I lose the Pico W server completely and cannot get it working again, I still have the Pico 2 W and Linux Spartan servers running indoors that I can switch over to bring the site back up. So I won't have to go out in a sub-freezing snowstorm to disconnect the box.

Using an Indoor Sleeve-Dipole Outside

My indoor reception has been dismal, using both the XIAO and the Heltec V4 and using both a +5 dBi Makerhawk rubber ducky and a Muzi Works whip antenna, primarily due to the attenuation from my thick brick exterior walls and thick plaster, wire mesh and lathe interior walls (that's how they built them in 1936). Even my single-pane windows are not only covered with glass storm windows, they have plastic interior windows with magnetic mounts to improve insulation (as they didn't have double-glazed windows in those days, either, being first invented in the 1930s and first sold commercially in 1938↗ ). Plastic and glass, while allowing RF to pass, do cause appreciable attenuation and loss of several decibels of gain, but they also force me to set my antenna back, relatively far from the outer pane, reducing the field of view. And to make sure there aren't any near-field effects and impedance-shifts by taping it directly to the interior pane, it has to be set back even farther.

I tried setting up a radio inside a different building, one with only drywall interiors and vinyl siding and it immediately got a good signal to a neighbor, but my house is like a Faraday bog with the best propagation through those windows and perhaps some knife-edge diffraction when it hits my attic, escaping the brick.

I bought some male, 50-ohm SMA jacks in case I decide to build my own outdoor antenna:

However, the Makerhawk +5 dBi antenna has a male SMA and seems to be intended for indoor use, likely ABS plastic (not sure) and it has some seams where the parts fit together. It was only about $5 and did pickup a lot of nodes near certain windows, so I'm going to stick with it and try it outside up high. It came with a female SMA to IPEX adapter cable, very useful if I decide to swap out antennas, as the XIAO boards did not come one, but included their own small antennas instead:

Some people report good SWR with the Makerhawk, model MS-5DB3-LORA and report 1.2 or 1.4, but others report SWR > 2 and state that it is an 868 MHz antenna (a European one) based on the readings from their NanoVNA. How can these be so different when most people say it works very well? I suspect that some are testing it using NanoVNA and a pigtail and are placing the antenna flat on a table during testing, which would lower the resonant frequency just a bit to make it look like it was an 868 MHz antenna, but I don't know for sure.

I cracked open one of the antennas, and it is clearly a sleeve dipole of some sort, so I won't need a counterpoise:

It was hard to open without damaging it, and I had to grab the antenna with one hand, and then bend the hinge at 90 degrees so I could put some small-nose pliers in and grab the the other side to pull, and then they popped apart (if you pull on the circular ring, it will pull the male pin out of the SMA connector and damage it permanently, something I learned the hard way).

Now the downside of these indoor antennas is they cannot take water and UV without deteriorating quickly, and the small SMA is hard to seal, so people use ones with N-type connectors instead, which are more expensive.

Weatherproofing

But... now that I have the sleeve dipole removed and a 3D-printer at my disposal, I can print a new housing from white PETG and then create a flange at the base to ensure water runoff.

However, this will shift the resonant frequency upward slightly since PETG has a lower dielectric constant, which should help if it truly is too low. I could also print an even wider box around the antenna to remove the near-field effects and shift it almost to 915 MHz, if it is indeed 868 Mhz. I don't have a NanoVNA so I'm going on guesses here. PETG withstands UV much better than ABS, one reason I used it to print TRILLSAT-1.

While the panel is IP66-rated, my node is not. I also bought some weatherproof automotive style plugs and jacks to connect the panel to the node:

That way, if I ever have to repair it, I can just climb up and unclip the node and/or battery and not have to remove the solar panel (although the panel is easy to remove at the 360-degree pivot point). I intend for it to have drip loops and openings oriented downward to prevent rain entry, mostly shielded from rain and hot sun by the panel itself, except for the portion that connects to the antenna, using sealant or silicone to protect it further.

I also have some left-over white, waterproof Gorilla tape that I used to repair that siding, and this stuff is very sticky and is marketed as having a UV-resistant backing, which is nice, and I can use it to waterproof some of the connections in this project if needed (although it will be a permanent bond, very hard to remove):

Other Considerations

I've seen pre-built, off-the-shelf solar Meshtastic nodes, but they tend to be around $100 and contain those brimstone batteries that I want to avoid. They also rob me of the design and tinkering elements I like so much, and the panel size is typically not large enough to also power the Pico W alongside it. The commodity panels with built-in batteries are nice and would work well to power such boards, but they are also of the brimstone Li-ion or LiPo variety, and most likely do not use MPPT (probably PWM instead), the quality of the cells is unknown, and it is unknown if they perform a cold-temp shutoff or just keep trying to jam current into that frozen battery. That's why I built my own from the component parts instead.

Even the humble solar-powered yard lights are cheap and powerful today. Many have lower current and lower risk, especially if you use them where they were designed for (in the yard), and I've seen projects online where people have put nRF52-based boards into ones like the Harbor Breeze light, or the Harbor Freight flagpole light, but this just barely works due to the low wattage of the panel and likely can't make it through an overcast Missouri winter. But these are neat DIY projects that don't require a 3D printer.

TRILLSAT-1 Crashes Into an Asteroid

As explained earlier, this radio and server platform will be a rigid base mount, not a fluid, dynamic system like TrillSat. It won't be analogous to a spacecraft or space-elevator, but could be thought of as a scrappy outpost on an asteroid nearing a star, as if TRILLSAT-1 crashed into it and the TROT propulsion and tracking system was destroyed. The survivors would have to quickly erect a fixed base station from a few of its salvaged parts as they rotated and solar energy was non-linear and often unpredictable. Why did it crash? The Delta-v Motor Drive System in my TrillSat project, the primary engine of the TROT platform, is a feed-forward, dead-reckoning system in many ways, and while it can compute the trajectory to "orbit a star" using seemingly-perfect Keplerian clockwork and Newtonian mechanics, it would never know if an asteroid crossed its path, the Achilles' heel of principle over application.

I named this project Asteroid Station Delta, partially as an analog of Moonbase Alpha in the 1970's TV series Space: 1999 that I used to watch as a child, but also, like pi↗ is to Pi↗, the Greek letter delta is also the glyph used to represent the first Feigenbaum constant↗, an underappreciated universal, mathematical constant that mysteriously arises in period-doubling bifurcations in chaotic fractals that should otherwise be random.

My Spartan site that will run on this base station, The Lesser Fractal, is analogous to a bifurcation of this site, The Great Fractal, as if that asteroid was a sheared-off fragment of a larger body that retained its core similarity, like a pizza roll to a pizza.

The ESP32-S3 based Heltech V4 is nice, and my first thought was to mount that, along with the Pico 2 W that runs spartan://greatfractal.com, into a housing with a solar panel and battery bank (with passthrough charging), but in addition to the issues I mentioned above, I need a panel of around 10 watts for the Pico W + ESP32 Meshtastic power hog in order to guarantee that I don't drain the batteries completely in the winter, and that is still cutting it close. TRILLSAT-1's 14-watt panel, for example, is still anemic, requiring careful power management and solar tracking. Moving to the XIAO nRF52-based kit drastically reduces power, but it will not have the +28 dBm (+27dBm likely in practice) that the more powerful V4 can transmit. But that V4 primarily helps me when it is mounted inside, as it can shrug off that unwanted attenuation and still penetrate out of the building; but it's not as useful if I decide to mount it up high where there is unobstructed line-of-sight, suitable for even +22 dBm boards. After I mount the XIAO unit outside, I'm probably going to keep the V4 inside as a client only, and lower its transmit power.

Interestingly, the entire setup, Asteroid Station Delta, will become a mini fixed-base version of TRILLSAT-1 without the complex and dynamic TROT (Tethered Rocking Orbiting Tracker) unit, which is the robotic platform that self-elevates and tracks the sun, combined with gyroscopic stabilization, haptic Morse code, and other robotic systems. As mentioned earlier, it's essentially just the radio box and a less-efficient power-regulation box working in tandem on a license-free ISM band. But it's a lot cheaper, smaller, and easier to set up, and has the unique qualities of a dense mesh (more on this below). So it's a good testing ground for some of the TRILLSAT-1 logistics, especially since I plan to add a Meshtastic board to the craft. In fact, it provides an extra node TRILLSAT-1 can use, and now I have that battery welder and nickel strip I will be able to get it running again. I sized the strip for the max current I intend to use in TRILLSAT-1, rather than this lower-current base station and can always double up the strip if needed.

Like TRILLSAT-1, the Spartan Pico W board would serve as the primary WiFi communication platform, analogous to the ESP8266 in TRILLSAT-1, and the XIAO kit over LoRa, Meshtastic, and MQTT would be analogous to the Pi Zero W AX.25 packet radio system, APRS, and APRS-IS. Once I get them to communicate with each other, I can perform a smaller set of the things I do with TRILLSAT-1, like control power and switch out radio subsystems, although I don't want to dwell too much on this, since that's what I built TRILLSAT-1 for, and I don't have as much free time this time around. Instead of a packet BBS, I have a Spartan site. Instead of an XMPP text, I have a protobuf text. It's a neat analogy, but it's rudimentary compared to TRILLSAT-1, which could do many more things ...before it crashed on that asteroid!

Meshtastic Has Unusual Properties

This realization surprised me: when you go "off grid", it's just what it means, you can no longer depend on that grid, and established grids are very useful in how they connect things together. It's kind of like orators; I enjoy listening to someone speaking to many people in an auditorium, streaming, or TV broadcast (one-to-many), and I enjoy having a conversation with a single person (one-to-one), but I do not enjoy small-group communication (many-to-many), which can quickly take on the worst aspects of a social network. In fact, packet radio is quite different than Meshtastic in that is designed around the one-to-one amateur "contact", not the one-to-many commercial broadcast, although technically a transmission is a broadcast, since any receiver can listen to that frequency, but canonically, it is not. Technically, an APRS unnumbered information AX.25 frame is a broadcast, yet is classified as telemetry or beaconing. The primary purpose of TRILLSAT-1 is to serve a packet BBS to one person (one-to-one), but can do it quickly enough to serve many, but each is a separate contact, and its digipeater function was secondary. It time-shifts both the transmissions and the operator, since the human operator pre-loaded the PPBS with instructions on what to say at a later time. Meshtastic can have BBSes, too, yet its use of shared channels like LongFast is essentially that small-group communication again; people chattering, some can hear them, others cannot hear nor speak clearly, biases and peer pressures start to form, just like a social network.

In addition to encryption, Meshtastic also has another curious difference that I've never seen in traditional ham radio, although perhaps other, more experienced hams have. For example, if you hypothetically had a 2-meter indoor ham antenna like an HT rubber ducky↗ that acted as an APRS station for APRS messaging (yes, you can also send messages via APRS) and placed it near a window, it may be able to hear a certain station or digipeater but not others, but if you move it to another window on another exterior wall, you may not be able to hear it anymore due to attenuation from the interior walls, but can instead hear other stations or digipeaters. The ideal solution, of course, is to mount the antenna up high and outside, to hear all of them.

But then I realized when first testing communication between my Heltech Wifi Lora 32 V4 development board (which was having some receive sensitivity issues that were being worked out in the firmware↗ ) and a XIAO ES32S3 Meshtastic kit, that the "managed flood" mesh architecture of Meshtastic, along with the fact that most nodes are configured by default to rebroadcast, combined with the low-cost of the node modules, means that it is feasible to place a node near a window at each wall for the four cardinal directions, obtaining the same coverage you would have if you were outside (although attenuated, being indoors). The node on one wall will rebroadcast and the nodes on the other walls would not hear the original signal but would hear the adjacent node and also rebroadcast, effectively making the interior structure transparent to the signal, minus a hop. Instead thinking of one $40 HT as your radio, you could think of all four $10 Meshtastic nodes being your radio, like a radio antenna array↗. Fascinating.

This does not happen in AX.25 APRS in my understanding because while you may have small APRS trackers or stations, you generally do not place a bunch of small APRS digipeaters indoors, nor close to each other, as it would normally not be proper design and would also be expensive. But Meshtastic is made for this sort of flood routing, in which many inexpensive nodes chatter with all of their low-power neighbors. I'm not sure how many people actually consider this design, as it only works well if you have a flood-like mesh, along with four low-power, inexpensive nodes acting as a single unit. It may suit people living in upper-floor rental structures where they are not allowed to erect antennas outside and need omnidirectional coverage.

High-rise apartments, too, have another unexpected attribute that is applicable in this context: they can be so tall that even if you are allowed to put a panel on a pole in the nearby lawn outside in the common area, the building itself could completely block the southern sky. While writing this article and running by such a high-rise one day, I happened to see a solar panel in this very state. A utility company had recently mounted a solar panel on a new streetlight pole, properly oriented due south. But what the technicians did not do, was actually look at the sky (or lack thereof). They should have angled it to east or west where there would have been at least some direct sunlight after the March equinox and before the September one. But there was none! Intentional?

I'm not sure what is more dystopian, the fact that we now see solar-powered surveillance devices on utility poles everywhere in these modern times, or the fact that now we see new public technologies installed in non-functioning ways.

Bill of Materials

I haven't tried building it yet (just have the parts), but here's my rough Bill of Materials for just a solar Meshtastic node, all prices adjusted to actual amount used, not the amount that was purchased (as sometimes there are discounts if you buy more than one):

  • Seeed XIAO nRF52840 & Wio-SX1262 Meshtastic kit ($13.50)
  • 6-watt monocrystalline solar panel, 5-volt barrel, stainless steel 360 mount 8.2" × 6.5" × 2" $5.50
  • 6000 mAh LiFePO4 32700 cell $5
  • Pure (99.6%) nickel strip 1.5 mm x 8 mm, 30 cm length (about 50 cents)
  • Littelfuse ATO2BP 2-amp automotive blade fuse (about $1)
  • Adafruit 6091 BQ25185 charger $7
  • Cantherm MF52A1103F3380 NTC 10K 3380K Thermistor $1
  • Makerhawk 5 dBi 915 MHz antenna model MS-5DB3-LORA with IPEX-to-Female-SMA-bulkhead cable $5.
  • BFXM-CEWC-02 rain-resistant, IP64-rated, 2-pin, 2-wire 16 AWG automotive connectors (about $1.50)

That's only $40, not counting the tools, small parts, and 3D-printed case. That's much cheaper than an off-the-shelf solar node and includes free tuition (it's a learning experience!).

For my 12-watt Pico-based Asteroid Station Delta, though, it raises to around $51.50:

  • Another 6-watt solar panel ($5.50)
  • Another 2-pin connector about ($1.50)
  • Raspberry Pi Pico W ($5)

If I decide not to use the XIAO nRF52840 Meshtastic kit, but use the Wio-SX1263 from the XIAO ESP32S3 Meshtastic kit (about $10.50) and swap out the ESP32 board with just a XIAO nRF52840 board ($10), it raises it up another $7, but then I get an ESP32-S3 board that I can use for other projects. My Spartan server does not run on the ESP32, but it could if I ported it to NodeMCU which uses Lua 5.3 at the time of this writing in 2026.

The small parts I did not include are:

  • Solder and wires (under $1)
  • Glues and/or sealant (under $1)
  • Optional 10K resistor for pullup (under $1)
  • Optional Gorilla waterproofing tape, white, with UV-resistant backing, 4 inch x 4 inch square (50 cents)
  • White PETG filament for size of project (around $2)

The tools cost I did not include (since I use or will also use them for other projects) are:

  • 3D printer (my old Prusa i3 2020 kit from Folger Technologies)
  • Seesii SE-209 mini spot welder ($30)
  • 80W digital, adjustable soldering iron 936H ($10)
  • USB Charger Doctor volt/current/power meter ($6)

The Radios of the People

I went to the St. Louis Art Museum on March 12th, 2026 when designing this project to see the new Trajan exhibit↗ (named after a Roman emperor around the year 100), and it was full of marble statues, vessels, furniture ornaments, a gladiator helmet, and frescoes (most dug out from Pompeii). I was a bit depressed to see that much of the art depicted or implied excess or hedonistic lifestyles, since the artifacts that survived, likely survived since the wealthy were the only ones capable of having such objects created for them, and those objects were often made of durable materials like marble. And if things have overall value, people tend to preserve them, unlike goods of less value. So museum artifacts, in general, have a bias toward the wealthy that does not match the lives of most people which is in stark contrast with our wonderful museum (ironically, a relic itself from the end of the Gilded Age) that has been open to the public for free as long as I can remember (with free main exhibitions on Fridays), unlike many art museums in other cities. Our zoo and state history museum are also free.

It's amazing how modern their civilization seems, though, since we borrowed so much from it and built upon it. Their glassware and coins looks like ours (or should I say ours looks like theirs) and their alphabet is what I'm writing in now, and I can read their old stone script clearly today. It's influence was and still is massive and cannot be understated. The Romans had the concept of the senate↗, but it was different than the Athenian version↗ and weakened further at that time. It was an empire then, of course, and "emperors" were powerful monarchs--this was not a democracy. And it was a time when the empire was at its largest, as shown on the map when you enter the exhibit, but it was just over 300 years later when Rome fell (the Western Empire).

While waiting until the hour we could enter the exhibit, we went upstairs to look at the George Caleb Bingham↗ paintings, and he has these three that are part of an American election series, and you can see a different primary form of human communication in each one: one-to-one in The County Election (1852), one-to-many in Stump Speaking (1853-1854), and many-to-many in The Verdict of the People (1854-1855).

So in writing this project page and seeing those paintings, I realized that my disdain for small-group communication is not absolute; Meshtastic shows how even though its protocol primarily benefits itself, growing the mesh, it can still be useful for the individual. For even if you cannot rely on the group, in the absence of a more powerful "empire", so to speak (i.e. our grid networks), if the means are beyond your ability to deliver that message directly, you have to rely on others to deliver it for you. It's like a church or club; you can't depend on the voluntary members for assistance like a public utility necessarily, nor should you, yet you can often get assistance from the goodwill of others, who connect you to others, etc. So while its participation takes a little of your own energy to feed the machine, it would not exist without everyone's participation and civility, and the members would likely be worse off without it. Ham clubs are more disciplined about this than a casual Meshtastic user, but cooperation and goodwill are not exclusive to either.

A Work in Progress

That said, these types of entities do not mesh well with my brain, no pun intended, and generally make me uncomfortable since they lack the structure of a system (and I am a systems-thinker and builder), as I don't have full agency and can't fully depend on nor define this external, unbounded machine (what I call an information egregore). They're more like neurons whose system, if you can call it that, emerges from a pattern of synapse firing and you don't know exactly what form it will assume or if it will work well. Yet the fact that they are fully automated (the software handles the rebroadcasting) and the fact that they do allow encryption (which opens it up to remote hardware and external notifications, as mentioned earlier) means that the primary responsibility for an individual is to simply erect a working node with the appropriate settings; it doesn't have to be micromanaged to be useful to others. That, combined with the inexpensive chips used, is a pretty low cost of entry. So, like Wikipedia when it started to accumulate its first articles, if the mesh gets dense enough, it can become greater than the sum of its parts and develop into a dependable system. But in our chaotic world today, this is idealistic, of course, principle over application.

Pliny the Younger↗ might have had a good use for a mesh-based, flood-routed radio system like Meshtastic to communicate with nodes 20 miles east across the bay, just southeast of that vindictive mountain, but he surely would have realized when the earthquake awakened him and the ash rained down that it might not have mattered anyway.