Fully Wireless · Volume 5

Power — The Logic Rail, What Each Radio Costs, Sleep and Wake, and Surviving the Kick

How the fully wireless gun feeds its logic from the 6S pack, what the ESP32-S3 and Nordic radios each cost in hours of play, why a gun with no cable needs an automatic off, and how to keep the receiver alive and the antenna clear beside a 2.5 A solenoid

5.1 What Is New on the Power Side

The pack, its fuse, the two stacked BQ77905 protectors, the LM5060 rail switch, the thermistor, the fuel gauge and charging out of the gun are all designed in LiPo Batteries (LB-1 to LB-5). The rule that a brick and a pack never share the recoil rail is Wireless Power Only’s WP-3; the fully wireless gun keeps it trivially, because it has no brick input at all.

What this architecture adds is three things the wireless-power-only gun did not need: the logic runs from the pack, so it needs a regulator and its standby cost counts; nothing unplugs it, so it needs a way to switch itself off; and a radio sits beside the solenoid, so its supply and antenna need protecting from the kick.

Figure 1 — Power in the fully wireless gun. The 6S pack, 18.0 to 25.2 V and 9.99 Wh, passes its fuse, two BQ77905 protectors and the LM5060 switch, whose enable input is the gun's on-off control, to the 24 V …
Figure 1 — Power in the fully wireless gun. The 6S pack, 18.0 to 25.2 V and 9.99 Wh, passes its fuse, two BQ77905 protectors and the LM5060 switch, whose enable input is the gun's on-off control, to the 24 V rail that feeds the solenoid, port and rumble stages at up to 2.5 A one at a time, and to a buck regulator, a D36V6F5, that makes 5 V for the logic: the Pico and camera at about 0.5 W, plus about 0.01 W for a Nordic radio bridge, or about 0.80 to 0.88 W in all for an ESP32-S3 gun. A wake button pulls the LM5060 enable high; the firmware then holds it, and releases it to switch everything off. When off, only the protectors and the disabled LM5060 draw from the pack. Own work.

5.2 The Logic Rail

LiPo Batteries Vol 3, 3.7 sized the regulator: a buck from the pack to 5 V, for example Pololu’s D36V6F5 (5.2 to 50 V in, 600 mA out, under 0.1 mA quiescent, $5.95 on 19 October 2026), because a linear drop from 22 V to 5 V would burn three times the logic’s own power inside the shell. This volume places it and adds the rules around it:

  • After the LM5060, not before. Fed from the switched rail, the buck and everything after it are off when the gun is off, and the LM5060’s under-voltage lock-out (about 19.5 V, LB-4) also protects the pack from being run flat by the logic alone. Before the switch, the buck’s own quiescent current would drain a stored pack (LiPo Batteries Vol 4 lists it as a shelf load for this reason).
  • Into VSYS through an ideal diode, never into VBUS. If the gun keeps a USB socket for flashing and configuration, its VBUS and the buck’s 5 V must not meet. Wireless Power Only Vol 3, 3.3 and 3.4 covers the trap (5 V on the Pico’s VBUS pin drives the lead’s VBUS back into the host) and the parts: an LM66100 from the buck into VSYS on a Pico module, a TPS2116 priority mux on a later board (WP-8).
  • And the RP2040’s forced D+ pull-up. The same volume found that TinyUSB’s RP2040 driver forces VBUS detection on and enables the D+ pull-up at boot whether or not a host is present. A Pico-based wireless gun runs from its pack, so it inherits this the moment it has a USB socket: plugged into a PC that is off, it drives 3.3 V into the host’s D+. The fix is the fork’s, reading VBUS sense on GPIO24 (on a Pico W or Pico 2 W, the sense line is the wireless chip’s WL_GPIO2 instead; Volume 3, 3.7).
  • ESP32-S3 boards take the same 5 V on their 5 V pin and make their own 3.3 V on board; the same never-into-a-host rule applies to their USB socket.

5.3 What Each Radio Costs

The logic load of a cabled gun, a Pico with its camera and inputs, is about 0.1 A at 5 V, 0.5 W (Power Supplies Vol 1). What the radio adds depends entirely on the route:

Table 1 — The logic load of a cabled gun, a Pico with its camera and inputs, is about 0.1 A at 5 V, 0.5 W ([Power Supplies Vol 1](/light-guns/power-and-connectivity/power-supplies/vol-1/)). What the radio adds depends entirely on the route

RouteWhat runsDatasheet figuresEstimated logic load at 5 VFrom the pack (85 % buck)
No radio (the wireless-power-only reference)Pico, camera, inputs—0.50 W0.59 W
B: Pico + nRF54L15 bridgeas above, plus a radio that wakes 209 times a second for about a quarter of a millisecondnRF54L15 TX 4.8 mA at 0 dBm, RX 3.4 mA at 3 V0.51 W (assumes ≤ 3 mA average at 3.3 V for radio and CPU together)0.60 W
A: ESP32-S3 gun, ESP-NOWESP32-S3 replaces the Pico; receiver always on (WIFI_PS_NONE)ESP32-S3 RX 88 mA (802.11 b/g/n HT20, 3.3 V); CPU 28 to 51 mA single core at 160 to 240 MHz; TX 283 to 340 mA peak, here about 6 mA averaged0.80 to 0.88 W0.94 to 1.03 W

Sources: Nordic nRF54L15 product page; Espressif ESP32-S3 Series Datasheet v2.2, Tables 5-7 and 5-9 (Typ1 column; Espressif notes chips with in-package PSRAM “might be higher”). The ESP32-S3 row assumes the Pico’s own ~0.1 W is no longer drawn; all rows are estimates for the bench to replace (Volume 6, W6).

The receiver is the cost. An ESP32-S3 listening continuously draws about 88 mA at 3.3 V, roughly 0.29 W, before it transmits anything; ESP-NOW can sleep between wake windows, but only if the firmware uses Espressif’s wake-window and wake-interval settings, and the port deliberately does not (“Disable power saving for maximum responsiveness”). A Nordic radio sending on demand listens only for its own acknowledgement and is off the rest of the time.

5.4 Hours of Play

Figure 2 — Hours of play from one GNB 6S 450 mAh pack by radio route, with the shots and rumble of LiPo Batteries Vol 3 and the 0.10 W standing load of Wireless Power Only Vol 4: with no radio, 8.3 hours casu…
Figure 2 — Hours of play from one GNB 6S 450 mAh pack by radio route, with the shots and rumble of LiPo Batteries Vol 3 and the 0.10 W standing load of Wireless Power Only Vol 4: with no radio, 8.3 hours casual, 5.6 busy and 2.2 worst case; with the Pico fork and an nRF54L15 bridge, 8.2, 5.5 and 2.2; with an ESP32-S3 gun on ESP-NOW, 5.7, 4.3 and 2.0. Own work.

The play patterns are LiPo Batteries Vol 3’s (casual 600 shots an hour, busy 1,500, worst case 3,000 at the unregulated 2.84 J), on 80 % of the GNB pack’s 9.99 Wh. Two corrections are folded in: the logic is now on the pack, and Wireless Power Only Vol 4, 4.2 found a standing load of about 0.10 W while the rail is on (the LM5060 itself, the rumble stage’s DRV8251A held awake by its braked inputs, and the gauge divider), which brings the LiPo dive’s 9.3 / 6.0 / 2.3 hours to 8.3 / 5.6 / 2.2.

Table 2 — 5.4 Hours of Play

RouteCasualBusyWorstSwitched on, idle
No radio (reference)8.3 h5.6 h2.2 h11.6 h
B: Pico + nRF54L158.2 h5.5 h2.2 h11.4 h
A: ESP32-S3, ESP-NOW5.7 to 6.1 h4.3 to 4.5 h2.0 h7.1 to 7.7 h

Either route lasts an evening on the smallest pack. The Nordic radio costs a few minutes; the ESP32’s always-on receiver costs about a third of a casual evening. That is not a reason to reject route A for the trial, but it is one more reason the kit route is B, and it doubles the importance of the next section: an ESP32 gun left switched on in a drawer is flat in about seven hours.

5.5 Off, Idle and Wake

A cabled gun turns off when it is unplugged, and the wireless-power-only gun ties its rail switch to VBUS so that it does too (WP-2). A fully wireless gun has nothing to unplug. Three states are worth designing for:

Table 3 — A cabled gun turns off when it is unplugged, and the wireless-power-only gun ties its rail switch to VBUS so that it does too (WP-2). A fully wireless gun has nothing to unplug. Three states are worth designing for

StateWhat is poweredDraw from the packHow long a 450 mAh pack lasts
OffOnly the protectors (2 × 6 µA) and the disabled LM5060 (9 µA typical, 15 µA maximum)about 21 µA, 0.5 mWYears by this load; the pack’s own self-discharge and the storage rules of LiPo Batteries Vol 6 govern instead
On, idle (no camera points, no trigger)Everythingabout 0.70 W (route B) to about 1.1 W (route A)11 to 7 hours
PlayingEverythingSection 5.4Section 5.4

The proposal (WL-6): a soft power latch on the LM5060’s enable, with an automatic off. LiPo Batteries Vol 4 already puts the gun’s power switch on the LM5060’s EN pin. Replace the slide switch with a momentary button that pulls EN high (EN is rated to 75 V and switches on above 2.0 V, so it can be pulled from the pack through a resistor), and give the controller a GPIO that holds EN high through a diode once it has booted. The firmware then owns the off: after a set time with no trigger, no buttons and no IR points in view (ten minutes is a starting value, not a measured one), it releases EN, and the whole gun, logic included, drops to the 21 µA of the “off” row. The button also serves as a deliberate off with a long press. Michael gets a gun that cannot be left on; the pack gets the LM5060’s under-voltage lock-out as a backstop. It is a fork change (an idle timer and one pin) for route B, and a change to a firmware the project does not maintain for route A, so on the ESP32 trial the slide switch stays.

Lighter sleep while on is possible but secondary. On route B the Nordic part can sleep between reports by itself; the Pico and the camera, which dominate, could drop the camera rate when no points are seen, which is fork work for later. On route A, ESP-NOW’s wake window would cut the receiver’s 0.29 W only at the cost of latency, which is why the port turns it off.

Wake on the trigger would be nicer than a separate button. The trigger is a Hall sensor or microswitch on the logic side, unpowered when the gun is off; a second pole on a microswitch trigger, diode-ORed onto EN, would do it. That depends on Controls and Inputs’s trigger choice and is left as a question.

5.6 Keeping the Radio Alive Through a Solenoid Pulse

The ESP32 port’s troubleshooting list says it plainly: “use solenoid power wires of at least 24 AWG, as thinner wires can cause disconnections.” The mechanism is not mysterious:

  1. A shared return shifts the radio’s ground. A recoil pulse draws up to 2.5 A from the pack (LiPo Batteries Vol 3). If that current returns to the pack along any conductor the logic also uses for ground, the logic’s ground rises by I × R of the shared section: 2.5 A in 100 mm of 28 AWG hook-up wire (about 21 mΩ) is about 53 mV; in a long thin lead or a poor crimp, hundreds. A radio transmitting at that moment, or the UART between the Pico and a radio bridge, sees it as noise.
  2. The radio’s own peak. An ESP32-S3 transmitting draws up to 283 to 340 mA at 3.3 V. On a small board’s LDO, with its supply already dipping from the shared-ground shift, a coincident transmit can reset the chip, which the user sees as a disconnection. A Nordic radio’s 5 mA peak makes this far less likely.
  3. The chopper. The regulated DRV8251A stages switch the coil current at their chopping rate. Their harmonics are far below 2.4 GHz, but the fast edges radiate broadband; an antenna lying along the solenoid leads couples them in.

The defences are the ones the carrier already has, applied with the radio in mind: one solid ground plane on the four-layer carrier (D34, Reference Electronics Vol 8), with the solenoid’s return path short and away from the radio’s; short, thick solenoid leads (at least 24 AWG, as the port says, shorter is better); bulk capacitance at the logic regulator’s output and at the radio board’s supply pin; and the antenna away from the leads (Section 5.7). On the bench, the test is direct: the radio board’s 3.3 V on one ADP3450 channel and the coil current on another during full-rate autofire, while the link-loss counter runs (Volume 6, W7).

5.7 Where the Antenna Goes

Every source agrees on the rule and none gives a number for a gun: Espressif’s port says to “keep a small clear area around the board’s antenna … do not route wires over it or right next to it, and do not cover it with metal”; Raspberry Pi’s Pico 2 W datasheet says the antenna “should be in free space”, that “putting metal under or close by the antenna can reduce its performance”, and gives a 14 × 9 mm keep-out. A printed MP7 shell is plastic, so the shell itself is not the problem; the solenoid, its leads, any metal rail or weight, the pack and the player’s hand are.

For the printed MP7 (D35), the candidate places, to be compared by received signal strength on the bench:

Table 4 — For the printed MP7 (D35), the candidate places, to be compared by received signal strength on the bench

PlaceForAgainst
Top of the receiver, above the bore line, antenna end pointing forwardClear line to the screen and the dongle; away from the handNear the camera and its cable; near the recoil mechanism if it runs along the top
Stock or rear of the receiverFar from the solenoidThe player’s body is between it and the screen when shouldered
MagazineAlready the battery’s place (LB-6)Inside the hand; next to the pack
A remote antenna on the XIAO’s U.FL socketThe module can sit anywhere and the antenna go to the best spotOnly route B’s XIAO has the socket among the boards here (LILYGO sells a K194-01 external-antenna dongle)

5.8 Why This, and Why Not the Others

Table 5 — 5.8 Why This, and Why Not the Others

ChoicePickRejected, and why
Where the logic regulator sitsAfter the LM5060, from the switched railBefore it: the buck’s quiescent current drains a stored pack and the UVLO no longer protects the pack from the logic
Logic regulatorBuck to 5 V (D36V6F5, LiPo Vol 3) into VSYS through an ideal diode (WP-8 parts)Linear: ~1.7 W of heat; into VBUS: back-feeds the host (WPO Vol 3)
Radio, on power aloneNordic (route B), ~0.01 WESP32-S3 receiver always on, ~0.3 W, about a third of a casual evening
On-offSoft latch on LM5060 EN with a firmware auto-off (WL-6)Slide switch alone: a gun left on is flat overnight; VBUS-enable (WP-2): there is no VBUS
Ground and leadsSolid plane (D34), short ≥ 24 AWG solenoid leads, bulk capacitance at the radioThin leads sharing a return with the logic: the port’s own documented cause of disconnections
AntennaClear of the solenoid, leads and hand; chosen by RSSI on the benchWherever the board fits

Sources

  1. Espressif, ESP32-S3 Series Datasheet v2.2, Tables 5-7, 5-8, 5-9 — https://documentation.espressif.com/esp32-s3_datasheet_en.pdf (fetched 2026-10-19).
  2. Nordic Semiconductor, nRF54L15 product page (read 2026-10-19).
  3. Alessandro Satanassi, OpenFIRE-Firmware-ESP32, lightgun/src/README.md (“Common problems”), lightgun/README.md, shared_lib/OpenFIRE_Wireless/ESP32/OpenFIRE_Wireless.cpp (read 2026-10-19).
  4. Raspberry Pi, Raspberry Pi Pico 2 W Datasheet (antenna keep-out and placement) (fetched 2026-10-19).
  5. Texas Instruments, LM5060 data sheet, figures as quoted in Wireless Power Only research notes and LiPo Batteries Vol 4 (EN thresholds, 75 V EN maximum, 9 µA disabled quiescent current).
  6. This dive’s model: 04-templates/wireless_calcs.py, calc_output.txt.

Comments (0)

  1. Loading…

Comments are held for moderation — nothing appears until approved.