====== NinjaSCC ======
**N**injaSCC **i**s **n**ot **j**ust **a**nother **S**olar **C**harge **C**ontroller.
The following parameters describe the current NinjaSCC MKI Spec, which
specifically targets flexible (in-the-field adaptable) mobile/nomadic
use-cases and remote/autonomous off-grid deployment, with very high
efficiency, reliability, safety and quality.
{{:lab:ninjascc:ninjascc-mk1-top.jpg?250|}}
{{:lab:ninjascc:ninjascc-mk1-bot.jpg?157|}}
{{:lab:ninjascc:ninjascc-mk1-bot2.jpg?202|}}
===== Hardware =====
[[lab:ninjascc:hardware]]
===== Firmware =====
[[lab:ninjascc:firmware]]
===== Software =====
[[lab:ninjascc:software]]
===== MK I Specifications =====
==== Electrical ====
=== PV Input ===
^ Symbol ^ Parameter ^ Min ^ Typ ^ Max ^ Unit ^
| VMPP | PV MPP Voltage | 11.5 | 18 | 36 | V |
| VOC | PV Open-Circuit Voltage | | | 45 | V |
| ISC | PV Short-Circuit Current | | | 15 | A |
| - | Panel/Cell Configuration | 18 | 36 | 72 | Cells |
=== Battery ===
^ Symbol ^ Parameter ^ Min ^ Typ ^ Max ^ Unit ^
| VBat | Charge Voltage | 7.4 | 13.4 | 45 | V |
| IBat | Charge Current | | | 15 | A |
| Ripplerms | Output Ripple RMS | | 15 | | mV |
| Ripplep-p | Output Ripple P-P | | 40 | | mV |
NinjaSCC will by default boot into a 12V system. Any other check, charge,
equalize and float setpoints (charging curve) can be easily overriden in
software. This leaves more headroom and flexibility to hack around and
adapt the converter to all kinds of use-cases or battery types like
acid, GEL, AGM and even lithium battery packs (external balancer may be
required) in the 12V to 36V range.
Output Current/Voltage ripple and RF noise need to be kept at a minimum, to
increase battery lifetime and allow RF sensitive devices, like remote
SDRs, to be powered by NinjaSCC as well.
=== Load ===
^ Symbol ^ Parameter ^ Min ^ Typ ^ Max ^ Unit ^
| VLoad | Output Voltage | 5 | | 45 | V |
| ILoad | Cont. Output Current | | | 15 | A |
=== Efficiency ===
^ Symbol ^ Parameter ^ Min ^ Typ ^ Max ^ Unit ^
| BK-MPPEff | Buck-Mode MPP Efficiency | | 98.5 | | % |
| BST-MPPEff | Boost-Mode MPP Efficiency | | 98.5 | | % |
| TREff | Transit Efficiency | | 99.5 | | % |
=== ADC ===
Dual analog to digital conversion setup to enhance precision and
reduce risk of failure.
^ Chip ^ Resolution ^ Channels ^ ARef ^
| ATMega32U4 | 10 Bit | 8 | 5 V |
| SM72442 (via I2C) | 12 Bit | 4 | 5 V |
==== Environment ====
^ Symbol ^ Parameter ^ Min ^ Typ ^ Max ^ Unit ^
| Temp | Operating Temperature | -40 | 25 | 85 | °C |
| OTP | Overtemperature Protection | | +85 | | °C |
| OVP | Overvoltage Protection | | | 45 | V |
==== Protection ====
=== Electrical ===
* Short-Circuit [HW]
* Over-Voltage [HW+SW]
* Over-Current [HW+SW]
* Adjustable Current Limiter [HW+SW]
* LVD (Low-Voltage Disconnect of Load) [SW]
* UVLO (Under-Voltage Lock-Out) [HW]
* Uncontrolled Back-Channel DC GND return (High-Side Load Switch) [HW]
* Electromagnetic and Lightning induced extraneous Voltage Transients [HW]
* Local ESD [HW]
The maximum peak surge current rating can reach up to 10kA (8/20μs pulse)
to protect against damage from extraneous current induced by indirect
lightning strike interference, system switching transients and abnormal
fast transients from the power source.
=== Environmental ===
* Battery Temperature Monitoring (via external 100k thermistor)
* PV Panel Temperature Monitoring (optional)
* PCB Temperature Monitoring
* Over-Temperature controlled Shutdown
* Fan-Control
* Assembly PU-Coating
==== Modes of Operation ====
Based on real-time assessment of the operating conditions, NinjaSCC dynamically
determines the optimal operating mode in order to track the maximum power point
of the PV panel, keeping overall conversion efficiency close to 99%.
* MPP Tracking Buck-Only (BK)
* MPP Tracking Boost-Only (BST)
* MPP Tracking Buck-Boost-Interleaved (BB)
* Transit (TR)
==== Controller ====
Since Arduinos have been around for a while and have a very broad
spectrum of documentation, HOWTOs and open-source code to learn from, the
AVR ATMega32U4 8-Bit Microcontroller (with built-in USB support so that
we can [[https://hackaday.com/tag/ftdigate/|give FTDI the finger]]) was
chosen as the main controller in a fully Arduino-Micro compatible
configuration, while adding a couple of protective features to it.
This way, NinjaSCC can be used and flashed over USB like any other
Arduino-Micro board.
==== Dedicated USB Charging Port (DCP) ====
As other USB power sources, like most wall warts and auto adapters,
NinjSCC does not enumerate the USB output port. Charging can begin
immediately, without any digital communication/negotiation, as defined
in the supplementary USB Battery Charging Specification, Rev 1.1,
4/15/2009 (BC1.1).
* Supply 5V up to 1.5A
* DCP mode identified by a short between D+ to D-
* Short-Circuit, Over-Voltage, Over-Current, Over-Temperature protected
* Shares EN pin with Load Switch to maintain LVD ability by default, but can be selected with a solder bridge/0R
==== Monitoring & Metrics ====
NinjaSCC constantly monitors and collects all relevant system metrics and
operating parameters to deliver a high-resolution, real-time metrics stream
over USB, which can be live-viewed and/or shipped into a metrics storage
engine like [[https://github.com/influxdata/influxdb|influxdb]] to achieve
full real-time, remote system awareness and get an anecdotal sense of how it
“feels” as well as a quantified sense of how it performs in terms of hard,
comparable metrics.
Gathering long-term data helps to understand individual/local parameters
of a particular use-case to constantly optimize the system even further
and have a means to identify/quantify sub-optimal operating conditions
which might lead to failure like: Battery temperatures that are
consistently above ambient may indicate high ripple, overcharging or
internal cell shorting.
==== Remote Control ====
Any DC/DC regulation parameter can be overriden in software and adjusted
live by remote controlling NinjaSCC over USB, so playing and experimenting
on a live, working converter with instant metric feedback will be a great
opportunity to study its behaviour while changing parameters and operating
modes manually. And of course, a fun and hands-on assistance while
learning more about buck/boost power conversion in a practical way.
==== Resilience - Designed in a built-to-last approach ====
One of the deciding factors in performance and reliability is the quality
of the selected components, ranging between automotive (AECQx) qualified
and up to aerospace/military grade quality. All required electrolyte caps
are aluminium core design Solid CAP's, which have been a staple in high-end
component designs and provide lower Equivalent Series Resistance (ESR), wide
temperature range and over-10-years lifespan.
To further decrease the chance of total system failure, many important
system blocks and components have been set up n+1 redundant,
wherever possible and reasonable.
NinjaSCC must withstand gale force sub-arctic winds at -40°C while still
providing power to the remote camera you’ve had to hike for two days to
put out there for over a year - to make a great movie about glacier calving
or you are in some desert at +55°C ambient temperature and need energy to
operate your water pump to survive. The MKI design targets specifically
mobile/nomadic and remote/autonomous off-grid use-cases.
When you’re truly off-grid, this is the device that must not fail
(or at least reasonably max out the chance that it does), because murphy
dictates: it usually does so at the worst possible point in time.