Virtual Source
While Shepherd v1 was built around an actual harvesting-IC the new version virtualizes most parts like the harvester, storage capacitors and voltage converters. By switching to a software defined system the sourcing of energy becomes fully configurable. The simulation loop runs in real-time with 100 kHz and allows to emulate a wide variety of voltage converter circuits.
Note
TODO: WORK IN PROGRESS
Harvester
With one of the latest additions of sampling IV-curves during harvest, it is now possible to also emulate the actual harvesting. The harvesting options are
constant voltage (CV)
maximum power point tracking (MPPT) based on
open circuit voltage (MPPT_VOC), or
perturb & observe (MPPT_PO)
As an actual YAML-Example:
- datatype: VirtualHarvesterConfig
parameters:
id: 1040
name: mppt_voc
description: MPPT based on open circuit voltage for solar
inherit_from: neutral
algorithm: mppt_voc
setpoint_n: 0.76
interval_ms: 100 # between measurements
duration_ms: 1.2 # solar can overshoot when load is removed
current_limit_uA: 5 # boundary for detecting open circuit in emulated version (working on IV-Curves)
References
Emulator

fully customizable power supply toolchain
As an actual YAML-Example describing a simple diode & capacitor circuit:
- datatype: VirtualSourceConfig
parameters:
id: 1011
name: diode+capacitor
description: Simple Converter based on diode and buffer capacitor
inherit_from: neutral
V_input_drop_mV: 300 # simulate input-diode
C_intermediate_uF: 10 # primary storage-Cap
Sim-Example 1
Setup:
TI BQ25504 (with default slow pwr-good & fast schmitt-trigger)
I_inp = 100 uA @ 1200 mV
I_out = 1 mA (active MCU), 200 nA (sleep)
V_power_good = 2.2 V
The only difference between the two runs is the altered power-good-circuit. The original BQ25504 is too slow to inform the MCU about the low energy level and therefore the MCU drains the capacitor. Note the small voltage drop in the first picture. The BQ disconnects the output for very low voltages and reconnects it on a certain voltage. The drop is caused by the simulated output-capacity.

BQ25504 with default slow pwr-good

BQ25504 with fast schmitt-trigger
Sim-Example 2
Setup:
diode + cap circuit with immediate schmitt-trigger for power-good
I_inp = 100 uA @ 1200 mV
I_out = 1 mA (active MCU), 200 nA (sleep)
V_power_good = 2.2 V
The input-voltage is too small to charge the circuit up to V_power_good, so the capacitor is slowly discharging from its own leakage and the MCUs current-draw during sleep.

diode + cap circuit with fast schmitt-trigger for power-good