====== 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.