Quick Index

Back to Top
About Meshlet
Longevity & Performance

5 p a n e l . d a n c e

↙️ ↖️ ⏺️ ↗️ ↘️

GitHub • YouTube • BlueSky • Discord • Ko-Fi



About Meshlet

Meshlet (project source) is my custom LoRa mesh node PCB, designed around the Raspberry Pi RP2350. It aims to pack as many of the features as I want on-board, with room to attach extras with a little bit of soldering. I originally designed it for the Meshtastic® project, and later started using it for MeshCore as well, to help contribute to both meshes locally within my city. Since finishing version 2.0 in March of 2026, I've been torture testing the design under real-world conditions within a healthy, active, and steadily growing MeshCore network, where it needs to keep up with an exceptional amount of city-wide traffic!

You can learn more about Meshlet and its features here. But, to summarize what makes it different from other compact nodes, Meshlet includes several features that I consider essential for every repeater I deploy, without having to solder off-the-shelf modules to an already expensive dev board. It has a built-in INA3221 chip for monitoring power input/output on solar, battery charge level, and system voltage, as well as a BME280 for temperature and humidity. It also natively supports LiIon/LiPo and LiFePO4 battery cells for different uses in different environments. While USB power input is available, it can also accept input through a separate JST connector, and isn't limited to a strict 5V DC. The BQ25185 battery charging IC is tolerant up to 18V, and has MPPT-like functionality to pull the most power possible, as efficiently as possible, from an attached solar panel. All of this makes it an incredibly versatile board that I can deploy just about anywhere I need it, without having to think too hard about how I'll power it, or what sensors I need, or how I'm going to assemble everything. It's all just there, and all I need to do is plug it in!

On this page, I will go into the Meshlet's real-world performance and how it has held up over this past summer in Canada, and how I expect it to hold up throughout the incoming winter months.

Longevity & Performance

As I'm writing this, it is currently October 11th in my home province of Alberta, Canada. We had our first snowfall yesterday, and I had just taken down my Meshlet repeater the day prior for end-of-season maintenance and a quick check-up. Here's what I found!

I've had multiple Meshlets set up for a while, but this one is what I consider to be the most important one. This particular board was part of a batch that was very kindly sponsored by PCBWay, who reached out to me not long after I received my first prototype batch and posted the initial results online. This was a fantastic opportunity for me to test out what I considered to be a proper, "production grade" board - I'm used to ordering prototypes with a HASL finish and spending hours building them on my own, then calling it Good Enough if they work, but PCBWay gave me the chance to manufacture the real thing. I'm talkin' a 4-layer board with ENIG finish and turnkey assembly, ready to plug in and use, without any extra work on my end except for plugging in a battery and shoving it into a box. Using an ENIG (electroless nickel immersion gold) finish, as opposed to HASL (hot air solder leveling), provides a few benefits - firstly, the surface finish is more even. This means that when components are soldered on, the legs sit as flush and even as possible, minimizing the chances of bad contacts that are hard to spot. Gold also doesn't tarnish and corrode, so having the contacts plated in it means it's a lot less likely to fail if exposed to some humidity, which is unavoidable when I'm deploying these things in cheap no-name electrical boxes I found on the internet. Lastly, but affordable 4-layer manufacturing means I can properly isolate all of the signal traces from power, and keep an unbroken ground plane under as much of it as possible! I'm only a hobbyist so I don't know the exact science, but this seems incredibly important when working with radio & high speed signals.

So, how has this little board held up over the past 5-ish months? The answer is incredibly well! The current setup is as follows:

  • Solar panel: A cheap, barebones cell plugged into the USB connector on the Meshlet, which still allows for MPPT-like input.
  • Battery: A 3000mAh LiPo from MakerFocus, connected to & charged by the Meshlet.
  • Antenna: A GIZONT 45cm fiberglass N-type antenna, from AliExpress.
  • Accessories: An additional nRF52 "fakeTec" Meshtastic node, powered by the Meshlet's 3.3V line.

Throughout the summer, the Meshlet had been consistently running the latest available build of MeshCore, and has only been taken down periodically to flash a new update when one was available. Aside from those instances, it was allowed to run without interference, aside from occasionally cleaning the solar panel. The result was only two notable outages!

Results

Now, for the interesting data. What caused the little bit of downtime this board experienced? How has it been performing? To be honest, I haven't been the most diligent at collecting hard data points, as this summer has also been one of the most hectic of my life, and this node has been running in the background of it all. But I will go through everything that I can recall, and include everything that I did happen to note down throughout that time.

Weather Resistance

This thing has been shockingly resilient thus far. This was a really weird summer; at one point, we experienced winds heavy enough to knock trees down, and rainfall heavy enough to cause flash-flooding all over the city. Several highways were closed for days, many a dozen cars were stranded in the middle of the street under 2+ meter deep water, and I myself was consistently without power and Internet. Lightning strikes that took down power on the building this node was mounted to. This board took it all like an absolute champ. This incident wasn't even responsible for any of the downtime! Despite still routing packets like a champ, I decided to open it up just to make sure it wasn't filling with water. Turns out, it was; when I opened the hatch a fair amount poured out, and there was condensation on the sides of the shell. Upon a closer inspection, though, the Meshlet was entirely unharmed. I'm not sure if a HASL finish would have changed that, but I'm very glad for the ENIG finish giving me some peace of mind when it comes to corrosion. A win for PCBWay's capabilities, to be sure.

In total, this board survived 3 other notable lighting storms, all of which knocked out power on the building it's mounted to, without ever stopping routing packets. I've opened the shell to check for condensation after each storm, and while condensation has been present, it has not harmed the PCB; this has not held true for the HASL-finish PCB that makes up the accompanying fakeTec node. While the fakeTec still works, it has needed some cleaning and touch-ups to get rid of the tarnish and stop it from randomly failing. I don't think it's going to last a whole lot longer.

My other concern was hot days. Like HOT hot days. The shell sits in direct sunlight, the solar panel absorbs a lot of energy from the sun, and the metal bracket the solar panel is attached do conducts a lot of that heat towards the case. On top of that, the BQ25185 is a linear voltage regulator. It turns any waste energy straight into heat. While the box has gotten rather toasty, though, the board has never suffered any issues as a result of the heat, as far as I can tell. I included pins to solder a thermistor to, just to make battery charging a little safer as it enables the temperature-sensitive charging cutoff, but I haven't really needed to use it yet. The BME280 as reported temperatures of roughly 50 degrees Celsius without issue. Thankfully, I am confident that the heat generated by the BQ25185 will be enough to keep the board & battery warm enough in the winter to resist the extreme cold! Maybe that's just wishful thinking. I'll be sure to update this page with the results. If you're reading this past March 2027 and it still hasn't been updated, scroll down to the contact box at the bottom of this page, pick a contact method, and yell at me to update it! Thank you :)

Solar Power

The next thing I was worried this board would struggle with is power. Most noes are based on either ESP32 or nRF52840 hardware. ESP32 hardware is widely considered to be terrible for solar nodes, at least with Meshtastic. There are certain firmware differences (and further optional modifications to the base firmware) that help a lot, but it's still never ideal. nRF52 hardware is renowned for its power efficiency, both with Meshtastic and MeshCore. A battery that would run an ESP32 node for a day or two could easily run an nRF52 node for a week or two. For the Meshlet, I decided not to use either of these! Instead, I stuck with a comfortable middle ground for me - the Raspberry Pi RP2350, the same chip used for the Pico 2 board. In the past I was a huge fan of its predecessor, the RP2040, but I was never designing anything that was meant to run on a battery for extended periods of time. The RP2350 is much better on battery power, and is designed more with battery-powered use cases in mind compared to the RP2040. Power consumption wise, on average, it sits somewhere in between the ESP32 and the nRF52. It's not nearly as hungry as the ESP32, but it also won't drop down to the couple of milliwatts an nRF52 is capable of running at. At the very least, it's more than capable of running on solar power!

Both of the notable outages this node experienced this summer were power-related. Both of them were entirely avoidable if I did a few things differently.

For a few days in the middle of the summer, we had a very overcast period that lasted about a week, if memory serves. Throughout this time, the mesh was undergoing a fair amount of growth, and the increase in traffic drained the battery low enough to cause a brownout that the node did not recover from. Also, very recently towards the beginning of autumn, we had a similar overcast period. It wasn't nearly as long, but it was colder. I think the drop in overall daylight hours, combined with the cold affecting the battery, might have caused the battery to once again run flat. So, what am I doing differently now to avoid this?

A couple things needed to change. Firstly, the fakeTec node I have piggybacking off the Meshlet is running its own entire SX1262 that's also supporting a tiny amount of Meshtastic traffic. That has its own heartbeat LED, and was not configured to ever enter sleep mode. With how little MT traffic we really have, on top of the fact that it is essentially just a beacon to point people to where the activity is, it is safe to disable the heartbeat LED and enable power saving mode. This should cut down on several mA of power draw alone. Secondly, there exists a custom MeshCore firmware called EasySkyMesh. Its goal is to incorporate heavy power-saving features into mainline MeshCore, and they distribute releases of their modified firmware with all the bleeding-edge power saving modifications that aren't part of the main branch. I've compiled a custom build of this firmware to run on the Meshlet. I haven't been able to test it extensively yet, but it cuts down on power considerably by sleeping the SX1262 until it hears a packet preamble, and it should make use of the RP2350's deep sleep. I haven't confirmed if this is the case or not yet. I'm not very good at C++ and I refuse to let an LLM touch my projects, lol. So far, though, it's done a fantastic job at cutting down on power draw, and I haven't seen any noticeable drop in the repeater's ability to route packets reliably. Times like these make me wish I had access to a power profiler!

If I really wanted to make absolutely sure that this node doesn't fail throughout the winter, I could just throw more money at it. Buy a bigger solar panel, buy a bigger battery, and relegate the Meshtastic node functionality to a whole secondary unit. But that defeats the fun of making something super low-cost that I want to ensure is reliable. This isn't meant to be a project to spend a ton of money on.

Reach & Reliability

I'm very happy to only have good things to say about this node's reliability so far. Over the time it's been up and running, it has very consistently provided coverage around the area, including traffic from the far edges of the city thanks to its height. Power seems to be very stable, with the node working reliably at as little as 3.8V on the external input, at which the BQ25185 is outputting roughly 3.26V to the rest of the system, which is absolutely crazy. I even verified this myself using a variable voltage bench power supply. Brownout only happens right towards the very bottom of the LiPo's low voltage cutoff, and there's absolutely no weirdness leading up to it, like the amnesia my old Heltecs suffered when the battery would drop too low and they'd forget all their settings. As of writing, the noise floor has been averaging -110dB for a long while, the clock has only drifted around a second or two in a few days, and uptime is 100% since the EasySkyMesh firmware flash.

It's dark out right now, as I'm typing this. According to the INA3221, the battery is sitting at 3.75V (charged up to 4.0V about 3 days ago, with overcast weather ever since) with a reported draw of 0.03A, or roughly 0.11W, sitting idle. I'm sure this spikes quite a bit while undergoing heavy mesh traffic, but I'm quite happy with how low it's sitting. I need to double check whether I have the correct shunt resistor value set in the code, because it does seem suspiciously low. I'll update this page when I verify those numbers.

The real challenge is going to be maintaining the current reliable uptime throughout the winter. Stay tuned to see how it goes! If you don't see any news by May 2027, please contact me through any channels listed at the bottom of the page and yell at me about it!

Special Thanks

I'd like go give a special thank you to everyone who contributed towards this board's existence. I had lots of help from folks on the Meshtastic Discord server for the design & electrical engineering side of things. Thank you especially to NomDeTom and Iris for their pointers! Huge thanks and shoutouts to Bedrock as well, your advice on component selection and time spent helping me figure out how to design around microcontrollers has been extremely valuable for all of my recent projects, especially this one. I would also like to give an extra special thanks to Aran from PCBWay for reaching out to me with the offer to sponsor this project and helping make my crazy manufacturing requests work out. I know it's your job, but you're a real one. Thank you to PCBWay as a whole for providing a beautiful PCB that genuinely hasn't given me any problems at all. If you're looking for a place to get your boards made, I emplore you to give them a shot!

Disclaimer

Neither myself, nor this page, are affiliated with the Meshtastic® or MeshCore projects. Please see the Meshtastic® homepage or MeshCore homepage for more information on either project.