Skip to main content

Heltec T096 Solar Repeaters

· 5 min read
Ben Allfree
MeshEnvy Founder

Out in Nevada we cover a lot of empty ground with janknodes: repurposed solar-light enclosure, cell, repeater zip-tied to a fence post.

RAK4631 janknodes have been our keep-up proof. Field units hold about 4.0 V and have made forty-mile MeshCore hops with a stock SX1262 and no external amp. Twelve Heltec T096 janknodes sitting on the deck, built the same way, have not held voltage the same way. We did not run a bench meter campaign. We left them in the sun, polled battery voltage through the fleet tool, and changed two MeshCore settings that already exist on the radios.

Deck soak (September 2026)

The twelve T096 janknodes sit on the deck. Envybot polls battery voltage about hourly when the mesh is busy, less often overnight.

A field RAK janknode over the same dates stayed near 4.0 to 4.1 V. A deck T096 started near 3.9 V and slid toward 3.65 V before we changed settings. Both traces show afternoon sun bumps. The T096 did not hold the voltage the RAK did.

Battery voltage from fleet polls, September 1–4. Green: field RAK4631 janknode. Red: Heltec T096 janknode on the deck. Dashed line: powersaving and fem.rxgain off pushed to the T096 units on the morning of September 4.

On the morning of September 4 we sent two MeshCore commands to all twelve T096 units: powersaving on and set radio.fem.rxgain off. Envybot delivered them over the mesh. No firmware flash. The radios were already on MeshCore 1.17.1.1. The dashed line on the chart is that push.

One deck T096 is the clearest single-unit log. The fleet UI shows each poll and the voltage change since the last sample.

Envybot fleet poll log for a deck T096. Voltage deltas are negative through September 3 evening and overnight, then mostly positive through September 4 after powersaving and fem.rxgain off.

On September 3 that unit peaked at 3.56 V in the afternoon, then fell to 3.49 V by late evening. The first poll after the settings landed was 3.45 V. Through September 4 it climbed to 3.59 V by late afternoon. One mid-morning poll dipped 10 mV. The rest were up. Same panel, same 21700 cell, same firmware binary.

We still want a few dawn-to-dawn cycles on all twelve units before we treat this as corridor-ready. All twelve cells were swapped to 21700 on September 3 for more amp-hours. That bought headroom. It did not stop the pre-settings slide on its own.

MeshCore settings we used

These commands exist in upstream MeshCore. We did not flash anything new to use them.

SettingCLI commandWhat it does
CPU sleep between mesh loopspowersaving onLowers average idle draw. Serial can feel laggy.
External receive amp offset radio.fem.rxgain offStops using the T096's external amplifier on receive. Weaker RX, fewer milliamps.

EasySkyMesh published bench numbers on a T096 with those two settings (about 15 mA stock, about 9 mA after). That is their meter, not ours. It points the same direction as the deck voltage logs.

To push settings we record the desired values in our unit registry and run ./envybot fleet when the radios are reachable. That sends live CLI commands. It is not a firmware update.

set radio.rxgain off is a third MeshCore command that turns off the SX1262's own receive boost. We have not sent that one yet.

EnvyOS meshcore work (not on these units)

EnvyOS is MeshEnvy's mesh operating system distro. It ships a growing set of applications: user apps, repeaters, utilities, and more. One package in it is a custom MeshCore build. That package has extra T096 power work that is not on these twelve radios.

IdeaPlain EnglishOn the deck T096s
Cut power to the external amp module between listen cyclesThe T096 can keep its amplifier chip powered even when receive boost is off. The EnvyOS meshcore build can switch that supply off when the radio is idle.Not flashed
radio.rxps onRadio sleeps between short listen windows. Can miss packets.Not flashed
Slim repeater buildRepeater firmware that never brings up GPS or the TFT.Not flashed

Upstream PR status for EnvyOS work is on Open Source. For a safety rail when experimenting with prefs remotely, see MeshCore Try CLI (draft meshcore-dev#3358).

Amplification

RAK4631 janknodes have made forty-mile hops in Nevada without an external amp. The T096 board adds an amplifier module in front of the SX1262. I am skeptical that module earns its milliamps on every site. radio.fem.rxgain off is how we turned that path off. Two of the deck T096s already passed a distant-lot hear test before this soak.