The project is now complete with a layout that was built and tested in the real world! Read part 2 here to continue following along.
IntroductionThis project, a submission for The Power Hop Challenge presented by the Ribbit Network, Nordic Semiconductor, and PCBWay, presents the design of a "Solar Frog Board" for the autonomous, solar-powered collection and cellular transmission of Frog Sensor-powered environmental CO2 measurements.
System Block DiagramCentral Processing Unit — nRF9151
The nRF9151 contains a powerful application processor, which will be the central processor of the system (replacing the ESP32 in the current Ribbit sensor hardware design). As the central processing unit for the system, it's responsibilities will be to:
- Gather the sensor data via I2C from the sensor bus
- Receive GNSS signals from satellites to gather positional data via the built-in GNSS radio
- Buffer gathered data until ready for transmission
- Transmit stored data to LTE network via modem
- Periodically poll voltages and currents the power management subsystem to estimate battery SOC and solar panel irradiance
- Output logs and be available for communication via serial (for debug)
Utilizing the built-in GNSS radio on the nRF9151 means we can eliminate the need for an additional module on the sensor bus and take full advantage of the hardware. A neat feature within the nRF9151 allows LTE and GNSS radios to share a single antenna (LTE frequencies are close to those of GNSS). This reduces cost and simplifies system integration. To improve GNSS signal reception, the proposed design includes an external SAW filter and LNA.
The nRF9151 supports a wide range of input voltages (3.0V ~ 5.5V). However, the nRF9151 Hardware Design Guidelines recommends keeping a minimum voltage of 3.2 V (including all ripples, spikes, etc) for optimal RF performance, so that has been respected in this design.
Battery Chemistry Choice
This was a design choice made early in the design process, as the unique discharge profiles for different chemistries means charging hardware must be specifically designed to be compatible.
LiFePO4 was selected as the targeted battery chemistry (vs other popular lithium chemistries) for multiple reasons:
- Higher cycle counts, which extends the lifespan of the device
- Wider operating temperature range
- More stable, less likely to catch fire or explode
- Does not require cobalt, which has been source of environmental and ethical concerns
The typical downsides of the LiFePO4 cells of increased weight and reduced energy density (compared to other lithium chemistries) are less important for this application. As the device will not moved frequently and should have a constant source of energy from the sun charged application.
A typical LiFePO4 cell voltage range is approximately 3.6 V ~ 2.0 V, with a nominal cell voltage of 3.2 V, meaning the battery voltage will sit around 3.2V for most of its useful lifespan.
Power Management Subsystem
The power subsystem is responsible for the following:
- Extract the power from the solar panel
- Autonomously store energy for the system (without involvement from host) - important for recovering from dead battery conditions
- Accept power from multiple sources - solar charging and the USB connector
- Manage charging the battery
- Monitor the current and voltage in the system to track system status
- Ideally do this all at a high efficiency
How to store this relatively small amount of power from a high impedance source such as a solar panel efficiently? While also implementing hardware safety limits and battery monitoring for SOC estimation? Glad you asked...
Solar Battery Charger — BQ25768
The power subsystem is designed around Texas Instruments' BQ25768, a single chip solution that handles most functionality for ideal operation the system:
- Input voltage regulation (VINDPM, MPPT, more on this later)
- Wide operating VIN (3.6 V ~ 24 V) to maximize solar panel compatibility
- Input source multiplexing, allowing the device to be seamlessly powered and charged by either USB-C or solar power
- Buck-boost switching regulator to maximize efficiency
- Lithium battery charging with integrated safety features (OCP, OVP, UVLO, temperature-based charging limits)
- Programmable charging voltage and current thresholds to maximize battery cell chemistry configuration compatibility (supports up to 4 series cells)
- Built-in ADC for solar and battery power monitoring
Advantages:
- Single chip design reduces hardware complexity, cost, and footprint
- Powerful I2C interface allows for design customization and optimization
- Flexible solar cell and bettery configuration allows the device to be easily spec'd for varying levels of expected irradiance or expected performance (e.g. smaller panel for the desert vs a large panel in the rainy PNW)
Potential challenges:
- The number of software features may increase the complexity of system integration -> de-risked by the availability of an Eval Board
Buck Boost Converter — TPS631010
The battery charger regulates the input voltage (solar or USB) down to the battery voltage. Assuming a LiFePO4 battery is present in the system, the voltage could range from 2.4V (BQ25768 battery UVLO threshold) to 3.6V.
As noted earlier, the nRF9151 recommends a main supply voltage minimum of 3.2V and absolutely no lower than 3.0V. Additionally, the sensor bus requires a 3.3V minimum voltage to power the CO2 sensor. There is also a voltage maximum of 3.6V on the VDD_GPIO supply of the nRF9151.
Given these constraints, it's most logical to generate a 3.3V system rail from the battery. The rail must be generated when the battery is low (2.5V) and when it is being charged (could be up to nearly 4.5V when the BQ25768 is in PFM mode). A buck-boost converter was chosen to regulate this system voltage.
To minimize power usage in this design, an important parameter in choosing the buck-boost regulator is the efficiency. High efficiency must be maintained for currents as a low as the system's sleep current (10's of uA) up to the peak current required to transmit a LTE packet (100's of mA in poor conditions). The buck-boost converter chosen was the Texas Instruments TPS631010. The efficiency for this device is shown below:
As you can see, this regulator has 90%+ efficiency over the range of currents expected to be drawn from the system. Note however, the regulator achieves this efficiency at low currents at the expense of the ripple current. But given the system will be sleeping at these currents, as long as the ripple is reasonable and does not exceed any minimum voltage thresholds - the system will remain operational.
Load Switch
In order to have precise control over when the sensor bus is active, a load switch is added to the power rail going out to the Qwiic connector. Control is important because the SCD30 CO2 sensor draws a large constant current compared to the rest of the system.
Battery Holder
The proposed design features a PCB-mounted battery clip for a cylindrical cell. This reduces system complexity and size compared to the use of an external battery pack, which would necessitate additional connector and mounting hardware, which would be further complicated by this design's use of a thermistor to safely manage charging using the BQ25798.
The chosen battery clips support a 14430 cell diameter, but a similar solution could be made to work for 18650 form factor cells.
Solar Panel Connector
For the solar panel connector, a 3.50mm OD / 1.10mm ID DC barrel jack was selected. A DC barrel jack is common for small solar panels (this size in particular can be found on Adafruit panels), with numerous adapters available to support different sizes. The connector supports a maximum voltage of 48 V and current of 3.5 A, which gives plenty of head room for even the most powerful panel we could attach to the system.
CO2 Sensor Power Reduction
At the default sampling rate, the SCD30 will draw ~20mA consistently. This can be reduced by lowering the sampling rate, with diminishing returns down to about 5 mA. This is a trade off with the device's response time to a sudden change in CO2 concentration. More info here.
In addition to modifying the sampling rate to reduce the SCD30's energy use, this system incorporates a load switch which can be used to completely turn off the sensor bus, only enabling it when readings are desired. This allows a longer sampling interval than those provided by the SCD30's default settings.
The effect of frequent power cycling on measurement accuracy is currently unclear from information provided in the data sheet, and can be investigated further. However, being able to decrease sampling frequency by disabling the sensor bus is most likely worthwhile, as it allows for substantial energy savings.
USB Communication
USB communication is achieved through the FTDI FT234XD-R. This is a pretty standard USB-to-Serial chip, which means we can make use of the default drivers for most systems. The chip is connected to the UART peripheral on the nRF9151, which will allow reading out debug messages and facilitates firmware uploading through a boot loader.
System Power BudgetA useful tool in calculating the power consumption of the nRF91 was the Nordic Online Power Profiler. While the nRF9151 isn't available (probably because it's just been released), I could use the nRF9160, which should not be much different and was able to easily generate an estimate of average power consumption.
The system power budget was calculated with the following assumptions:
- Sensor Sampling Period = LTE Transmission Period = 1 hour
- SCD30 Sampling Interval (when active) = 30 seconds
- SCD30 Active Time = 3 minutes per hour (5% duty cycle), within specified response time to achieve accurate measurement
- LTE Payload = 2KiB
- LTE Network Parameters from Power Profiler = VzW, California, USA
- GPS Sample Period = 1 hour, A-GPS to reduce TTF
- BQ25768 ADC sample rate @ 14 bit = 2 Hz
The main components of the system and their average current draws:
- SCD30 (5% duty cycle): 0.05 * 17000 uA = 850 uA
- DPS310 (5% duty cycle): 3.75 uA
- nRF9151 + built-in GPS: 41 uA
- BQ25768: 17 uA
- BQ25768 ADC: 2 samples * 0.012 s * 0.5 mA = 12 uA
- Quiescent current in other parts of the system: 10 uA
Proposed Frog Board Avg. Current: 80 uA
Sensor Bus Avg. Current: 854 uA
If we assume 75% efficiency of DC-DC conversion circuits, we get about 1.5 mA average current draw from the entire system if we only enable the CO2 sensor 5% of the time.
Battery Selection
For this design, a single cylindrical Lithium Iron Phosphate LiFePO4 cell in the 14430 form factor is recommended for the following reasons:
- These cells are available off the shelf - doesn't require a custom design
- Inexpensive
- Small form factor
- Manufacturers typically specify a capacity of around 400 mAh
Such a battery is commonly available from online stores.
Solar Panel Selection
Solar Panel Challenges:
- High impedance
- More of a current source than a voltage source
- Not all solar panels are properly built to be rated for harsh conditions such as direct UV exposure (surface gets cloudy, reduced efficiency)
A useful resource in selecting the solar panel (and battery) was the European Commission Photovoltaic Geographical Information System (PVGIS), which allows running solar power generation simulations based upon the "Off-Grid" calculator for best results.
Given a worst case capacity of 400 mAh for a 14430 cell and latitude/longitude, we can run a simulation with PVGIS to determine the likelihood of maintaining charge over an average year for a selection of solar panels.
For example, we can evaluate the Voltaic P122.
The P122 is a 0.3 W solar ETFE solar panel sized about 52 x 52 mm (~2 x 2in).
Assuming an average 1.5 mA current draw from the system (see power budget), and running the simulation for Vancouver, Canada (in the Northern latitudes and typically quite overcast / rainy), the PVGIS simulation results in the following:
The simulation reports that the battery should almost always remain between 90 - 100% State of Charge (SOC).
This simulation tool can used to help design:
- The power consumption of the system via the duty cycle of the sensor bus
- Necessary battery size
- Solar panel power
For an initial prototype, I would propose the Voltaic P122. It seems well-designed and capable of powering the system with a high level of confidence, even in relatively low light conditions. It has a small form factor which will complement the small size of the Frog Sensor's mechanical design.
SchematicDownload the schematic from the attached files or this URL.
The individual schematic may be viewed interactively online via KiCanvas:
See attached files for full schematic PDFs and KiCAD Project Files.
Schematic Validation PlanPurchase:
- 14430 LiFePO4 cell
- Voltaic 6V solar cell
- BQ25768 EVM
It must be validated that the BQ25768 is going to operate as expected. Importantly, efficiency at low load currents for must be verified as the data sheet does not provide details for such low currents. System behaviour at extremely low battery voltages must be characterized to ensure the system can elegantly recover from dead-battery using solar power alone.
Integration into Frog Sensor EnclosureA mockup of the printed circuit board was created using to-scale drawings of the system's electrical components (including passives):
As illustrated, the design should comfortably fit within the existing Frog Sensor's enclosure, only requiring very minimal modifications to the location of mounting holes and the addition of an opening to connect the solar panel.
SoftwareThe nRF9151 will be programmed using the nRF Connect SDK integrating Zephyr.
Layout, Assembly and Testing.Check out part 2 to learn about the layout and bring-up of the design.
Comments