Xenon Power System, Vusb verses USB Connector

Tags: #<Tag:0x00007fe21f5d6980>


I’m a few weeks into running Solar Recharge and Li-Po Discharge Trials with several Xenons.
I’m impressed with the Performance and truly excited about the results so far, but noticed something different today and wanted some clarity for my educational benefit.

I’ve been testing several small Solar Panels, each using the USB connector on the Xenon.
I also use a 6.2V reverse biased Zener Diode for protection, but the small panels that I’ve tested haven’t reached 6.2V in the field.

Li-Po measurements using voltage = analogRead(BATT) * 0.0011224 work as expected.
Today, while swapping to a different Solar Panel, I decided to land the Panel’s wires on the USB and GND Pins instead (not using the USB Connector as all previous tests).

Li-Po measurements are now Incorrect when the Xenon is sourcing from the Solar Panel Only, but not recharging or discharging the Li-Po.

When Solar Panel is landed on Pins:

  • Li-Po measurements are Correct if the Xenon is Charging the Li-Po
  • Li-Po measurements are Correct if the Xenon is Dis-Charging from the Li-Po
  • Li-Po measurements are Incorrect (much higher than actual battery voltage) if the Xenon isn’t doing either of the above (when the panel is providing a Voltage source).

I assume this could be explained by the circuit…but not by me I’m afraid.

This isn’t a major issue, but the main reason I’m asking is to determine if there is a preferred location (based on the hardware design) for landing a Solar Panel on a Xenon. If so, I’ll focus my efforts in that direction only.

Thanks in Advance !


This in deed doesn’t make much sense for me too, but can you double check whether the readings are really correct when feeding via the USB receptacle while neither charging nor discharging?

The only difference I’d see in the schematic would be the extra fuse and the potentially higher resistance of the removable connection between USB plug/receptacle contacts over a soldered one but that shouldn’t account for much of a difference.


Confirmed, the analogRead(BATT) * 0.0011224 is usually within ~ 0.02V from direct Li-Po measurements on the Li+ Pin, when a Solar Panel is connected via USB Connector, also w/ No Solar Panel installed.
When the Solar Panel is connected via USB Pin, the analogRead(BATT) * 0.0011224 is correct when Charging, Discharging, or No Solar Output.
This may sound like an Edge-Case, but a Solar Xenon spends most of the daytime hours not Charging or Discharging, as it sources the Solar Panel to easily meet the 32 mW load, and it doesn’t take long to recharge the Li-Po (during normal operations) given the low power usage of the Xenon.

Looking back at my notes, this particular Xenon had just completed a scheduled deep discharge test of a 2,000 mAh Li-Po down to 3.40V, which took 9 days of Mesh Runtime (no Solar Panel) :grinning: That Li-Po almost reached it’s mWh spec’d rating, which impressed me also.

If there’s no obvious reason on the Circuit Diagram, I’ll assume I botched something.
After my coffee this morning, I’ll test if this is repeatable with new Xenons, reasonable Li-Po Voltage, and different size Solar Panels. I should have performed that before posting, but I assumed there was easy explanation.


The symptoms Disappeared when I swapped the “mostly discharged” Li-Po to one @ 4.05V.

So this may be an Edge Case after all, incorrect Li-Po readings when all (3) occur:

  1. Solar Panel landed on USB Pin (Not the USB Connector)
  2. AND Li-Po Voltage is getting Low (threshold TBD)
  3. AND Xenon is neither Charging or Discharging the Li-Po (sourcing Solar Panel Only to meet 32 mW demand, but not enough sunlight to produce the minimum current for Charging, or the Li-Po is already charged), this is common.

For a Sanity Check: Condition # 3 is when both “charge” and “onBatteryPower” return false/0, which I assumed means the Solar Panel is meeting the 32 mW demand. Operational graphs support that assumption.

charge = (digitalRead(PWR) && !digitalRead(CHG));
onBatteryPower = (!digitalRead(PWR));

I’ll test this Xenon w/ Solar recharging the “mostly discharged” Li-Po @ 3.40V, to determine the Min Li-Po voltage required for accurate Li-Po measurements when using a Solar Panel on USB Pin to avoid this case.

The easy solution is to use the Xenon USB connector for Solar Panel Input, as that also minimizes the risk for (2) Voltage sources when playing/testing with a Xenon.


@Rftop, well well, fancy seeing you here haha! In my next step of research for my water tank level measuring system it appears you are blazing some great trail on super compact and clean methods to power the Xenon with solar.

If I may ask a few questions. I already have a 6v 200mA solar panel and a 2200mah lithium ion. Your mention of the 6.2V reverse biased Zener Diode for protection was awesome, and my question is how many watts your diode is rated for (I am guessing a 5w would get the job done)? Lastly, for this 6v solar setup is everything hardware based, or are you having to make programmatic changes as well?

Thank you sir!


Correct, I use a 5 Watt Zener for the 1 Watt 6V Solar Panel.
No code changes for the Xenon, as it doesn’t have a PMIC.
Just a 6V panel into the USB connector.



Below is a Xenon’s 1 week graph of a deeply discharged Li-Po (Simulated Solar Panel Failure) being slowly recharged by a 0.5W Solar Panel. I’ve highlighted (in Yellow) the times that all (3) conditions above occur.

As you can see, the errors in analogRead(BATT) are significantly reduced at a Li-Po voltage of 3.9V or above. The BATT voltage measurement gets progressively worse as the Li-Po falls below this voltage (when neither Charging or Discharging).

I haven’t seen these errors when using the USB connector for the Solar Panel Input. However, I haven’t tested the same conditions( Low Li-Po Voltage) when using the USB connector for Solar recharge either.

On a related topic-
The 2,000 mAh Li-Po Discharge Trial produced the following summarized results to estimate the remaining Xenon Run-time down to a conservative 3.70 Volts, when no power source is available for recharging.

For instance: If your Solar Panel fails and your Xenon reports a 3.85 Li-Po Voltage, you have 100 hours (4 days) to visit the site to repair/replace the panel, put the Xenon to Sleep, etc. But remember, 3.70V is still a very conservative threshold. You actually have an additional 1.5 days in “fuel reserve” (below 3.70V)

Under normal circumstances, the Li-Po voltage wont drop much below 4.00 Volts with a Solar Panel.
Note: the Xenon will not begin recharging the Li-Po until the voltage drops to 4.05V or below (can take days), which agrees with the Torex Datasheet.

1-week Graph of a Happy Xenon with 1W panel:

~ 0.04V of the 2,000 mAh Li-Po is used each night. Once the Li-Po voltage drops to 4.05V or below, it’s quickly recharged by the Solar Panel. It can take a few days to drop back down to 4.05V before recharging again, depending on V-final of the Solar Re-Charge Cycle. :sunglasses:


@Rftop, I am currently conducting a trial based on your description in this post and I am experiencing exciting results. My question is, for the reverse biased Zener Diode are you using a load resistor? I am thinking that it is resulting in power loss since there is an inherent load associated with being connected to the Xenon VUSB+ and GND to take care of the diodes minimum current need. For reference here is the article I used to teach myself about this technique and terminology; I am hoping I am close!

My setup details are as follows:


  • 6.2v 5W reverse biased Zener Diode (cathode to solar + and anode to solar -)
  • 1800mah lipo
  • 6v 60ma solar panel (solar + to Xenon Vin solar - to Xenon GND)
  • 1 kohm load resistor (in parallel with diode)


  • publish bat. voltage and charging status to Ubidots every 10 seconds (lots of publishes for the purpose of simulating future load associated with sonar sensor).

Thank you,



No, only the Zener.


@Rftop, my setup is is not charging past ~4.05 volts in full sun. Is this in alignment with what you have seen? I am getting a full 6V coming in from the solar panel and the charge light is weakly lit in this condition.


@Backpacker87, My Xenon’s can terminate the Li-Po at 4.20V, but it requires perfect conditions.
Once the Li-Po voltage is above 4.05V, any disturbance in the Solar Panel Output ( a Cloud) stops that charge Cycle. A new recharge Cycle wont begin until the Li-Po is less than 4.05V.

In reality, there’s not much benefit to the Xenon terminating at 4.20V, because then it just spends a few days on battery power before it finally drops to 4.05V and starts a New Solar recharge cycle.

The Green Bars show when Solar Recharging (most mornings at 8:00am) over a 1 week period.
On September 13’th the Xenon maxed the Li-Po at 4.20V.

It just skips the next few days before recharging…

[Edit] I just noticed that you previously mentioned using an Argon for your tests.
The Argon will be the most difficult device of the Gen3 line to operate on Solar Power.
It requires much more power than the Xenon or Boron. The Boron’s PMIC lets you do just about anything you want for Input Sources. The Xenon and Argon don’t, but the Xenon just sips fuel.

Averages (depending on operating conditions) from my testing:

Xenon    32 mW
Boron    70 mW
Argon   150+mW  (just a quick sample, not repeated/verified yet)


@Rftop, my apologizes for miscommunication and saying it backwards. I have a Xenon on the solar setup and a Argon as the gateway (plugged in to constant power).

FYI here is some data from the trial so for based on Xenon on Solar panel:

  • 6v 60mA solar panel
    *6.2v 5W reverse biased Zener Diode
    *1800mAh lipo
    *Always connected to cloud with publish to Ubidots every 5mins.
    *0.06V used overnight

EDIT: I have adjusted my post above to change my misstatement of “Argon” to the intended “Xenon”.