Libre Solar MPPT Charge Controller

This lab explores the design, operation, and validation of an open-source Maximum Power Point Tracking (MPPT) solar charge controller. Centered on the Libre Solar MPPT 1210 HUS architecture, students investigate a microcontroller-governed synchronous buck converter stepping down photovoltaic panel input voltages up to 55 V to charge a nominal 12 V battery bank and power auxiliary USB outputs. Working with an STM32 ARM Cortex-M0+ microcontroller, half-bridge MOSFET gate drivers, and dedicated bidirectional current-sense amplifiers, learners probe and measure switching node waveforms, gate-drive timing, voltage regulation loops, and shunt-resistor current feedback. Through bench testing and circuit analysis, students gain practical insight into power electronics design, MPPT tracking principles, battery charging profiles, embedded firmware control, and essential circuit protection techniques including reverse polarity and overvoltage suppression.

Maximum Power Point Tracking MPPT solar charge controller photovoltaic PV systems power electronics synchronous buck converter DC-DC conversion microcontroller STM32 ARM Cortex-M0+ battery charging current sense amplifier MOSFET gate driver Zephyr RTOS pulse width modulation PWM renewable energy

Uploaded by demo on 2026-09-03 · ready · Electronics · Original source ↗

Files: ccfw_README.md · manual_installation.md · manual_specifications.md · mppt-1210-hus_bom.csv · mppt-1210-hus_schematic.pdf · mppt1210hus_README.md · west.yml

Readiness checks

  • complete 2026-09-04 00:06 🛡 Cybersecurity: Review before networking · 3 findings 57 searches · 8 pages
    view · PDF

Latest report — 2026-09-04 00:06

Readiness: Libre Solar MPPT 1210 HUS

Verdict: At risk · 2026-09-03 · est. parts cost $61–$70 per board, plus the 47 µH main inductor (quote-only) and PCB fabrication Cybersecurity — software & network: Review before networking

This is the cold check for this lab — there is no previous report, so every price, stock level and lifecycle status below is the baseline the next check will measure drift against. 41 of the 43 bill-of-materials lines are Active and in stock at an authorized distributor today, and the four lifecycle problems that did turn up (L3 obsolete, D6 obsolete, C15 at zero stock, C3 not-for-new-designs) each have a substitute checked spec by spec against distributor parametrics. The verdict is held down by one part: the 47 µH / 15 A main power inductor L1. DigiKey has no product for it and no ECIA-authorized distributor lists it at all, and the nearest catalog part falls short of the lab's own saturation-current and resistance requirements. Someone ordering this BOM today gets stopped at L1 and has to raise a quote with the Polish manufacturer or have the inductor custom wound. Everything else on the board is buyable this week.

Action required

Part Problem Recommended action
L1 Feryster DTMSS-27/0,047/15-HX (47 µH, 15 A) No DigiKey product and no ECIA-authorized distributor lists it. The manufacturer is trading but sells by quote. Request a quote direct from Feryster (sales@feryster.pl / rfq@feryster.pl, +48 68-360-00-77) and budget for the lead time, or have a 47 µH / ≥ 15 A toroid custom wound. Do not substitute the Bourns 2300HT-470-H-RC — see Substitutes.
L3 Taiyo Yuden NR8040T100M (10 µH) Obsolete. Zero stock at all five authorized distributors; DigiKey quotes an 8-week and Future a 24-week factory lead. Order the Bourns SRN8040TA-100M instead — it is the alternative the lab's own BOM names and the board's KiCad pad is already "Bourns_SRN8040TA".
D6 onsemi SS14FL (bootstrap Schottky) Obsolete. Zero stock at DigiKey and Mouser, 13-week factory lead, ECIA lifecycle risk High. Also the part the CSV BOM omitted entirely — it must still be populated. Order the Diodes 1N5819HW-7-F (SOD-123, 40 V, 1 A). Do not order the near-identically named MCC SS14FL-TP — it is an SMA flat-lead part, a different land pattern.
C15 Samsung CL31A106KAHNNNE (10 µF, 25 V) Zero stock at all five authorized distributors, 49-week DigiKey factory lead, ECIA supply-chain risk High. Order the Murata GRM319R61E106KA12D — identical on every published parameter, 289,090 in stock at $0.47.
C3 Murata GRJ32DC72A475KE11L (4.7 µF, 100 V) Lifecycle Not For New Designs, though 35,058 still in stock at DigiKey and six distributors carry it. Buy what you need now. When it goes, the TDK C3225X7S2A475K200AB matches it on every published parameter.
C20/C21/C36/C40 Samsung CL31B226MPHNNNE (22 µF) DigiKey has only 32 pieces — eight boards' worth — against 4 per board. Buy from Mouser (1,629 @ $0.36) or Arrow (40,123) rather than DigiKey. No substitute needed.

Cybersecurity — software & network

Review before networking — No known vulnerability was found, but nothing in this firmware was actually checkable - the Zephyr base floats on a branch head, three modules are commit-pinned source with no advisory database, and all five documentation dependencies are unpinned - so the unpinned posture, not a clean bill of health, is what the evidence supports.

Component Version How known Support status
Zephyr RTOS not determined unpinned (west.yml (fetched/01-west.yml) sets 'revision: v4.4-branch' for the zephyr project - a moving branch head, not a release tag or commit hash) —
ThingSet Zephyr SDK 8b32f7db1898dc51daa1834b3f8058de6a67166f read from project (west.yml (fetched/01-west.yml), revision under the thingset remote, path thingset-zephyr-sdk) —
Libre Solar OLED display library 523b26c103de56714fcda655702d600870a671bc read from project (west.yml (fetched/01-west.yml), revision under the libresolar remote, path modules/oled-display) —
Unity unit-test framework (ThrowTheSwitch) 74cde089e65c3435ce9aa87d5c69f4f16b7f6ade read from project (west.yml (fetched/01-west.yml), revision under the throwtheswitch remote, path modules/unity) —
Zephyr imported modules (cmsis_6, edtt, hal_stm32, zcbor, thingset-node-c) not determined unpinned (west.yml (fetched/01-west.yml) pulls these in through import name-allowlist entries that carry no revision of their own) —
Sphinx (documentation build) not determined not determined (docs/requirements.txt (fetched/02-requirements.txt) constrains sphinx to '~=5.3' - a range, not an exact pin, so the installed version is whatever resolves) —
Sphinx extensions (breathe, sphinx-notfound-page, sphinx-rtd-theme, sphinx-tabs) not determined unpinned (docs/requirements.txt (fetched/02-requirements.txt) lists all four with no version constraint at all) —
Host build toolchain (west, CMake >= 3.20, Ninja, Python 3, Doxygen) not determined not determined (the snapshot records these from the firmware README with no versions stated, and nothing in the repository pins them; they are installed from unpinned system packages) —
Component Finding Severity Fix available?
Sphinx documentation toolchain dependencies unpinned: 5 of 5 in docs/requirements.txt (breathe, sphinx ~=5.3, sphinx-notfound-page, sphinx-rtd-theme, sphinx-tabs), so the documentation build installs whatever versions are current and none of them could be checked for advisories. posture Mitigation only - pin versions / use the lockfile
Zephyr imported modules (cmsis_6, edtt, hal_stm32, zcbor, thingset-node-c) Five sub-modules, including the STM32 hardware abstraction layer and the CBOR encoder that parses data arriving over the serial/USB link, are imported through west.yml with no revision of their own, so they inherit whatever the floating parent manifests happen to resolve to at build time. posture Mitigation only - give the imported modules explicit revisions, or freeze the whole tree with a west manifest lock, before using the build in a graded lab
Zephyr RTOS The firmware's west.yml tracks the moving head of Zephyr's v4.4-branch instead of a release tag or commit, so two builds of this lab weeks apart can contain different operating-system code and there is no fixed version anyone can check for security advisories. posture Mitigation only - pin west.yml to a specific Zephyr release tag or commit hash so the firmware is reproducible and checkable

What this means for your lab

As built, this board is not a network device: there is no Wi-Fi, Bluetooth or Ethernet on it, and the snapshot records no listening ports, no web interface and no default passwords. Someone would need physical access to the USB socket or the RJ25/UEXT connectors to talk to it. The real caution is what that physical link allows: the ThingSet protocol carried over those connectors is used to read telemetry and to write configuration and battery setpoints, and nothing in the sources says a client has to authenticate first - so treat anyone who can plug into the board as able to change how it charges a battery. Keep student boards on a bench, not connected to a shared lab PC that others can reach, and do not add a Wi-Fi or Ethernet module to the UEXT connector without talking to campus IT, because that is the moment the board becomes reachable from the network and none of that added exposure has been assessed here. Separately, the firmware does not pin its dependencies: it follows a moving Zephyr branch and pulls five sub-modules with no fixed versions, so the code students build this term is not guaranteed to be the code they built last term, and there is no version anyone can check against a vulnerability database. That is worth fixing before the build is used for graded work, but it is a reproducibility and auditability problem rather than an active attack path. Nothing in this check found a known vulnerability - but that is because almost nothing here could be checked, not because it came back clean.

Not checked

  • Zephyr RTOS: endoflife.date has no product for Zephyr (the slugs 'zephyr' and 'zephyr-rtos' both returned product_not_found this run), and a branch head is not a version any advisory database can match - support status and advisory exposure are both unknown, not clean.
  • Unity unit-test framework (ThrowTheSwitch): Pinned to a GitHub commit hash. GitHub is not an OSV package registry, so the vulnerability lookup this run returned 'unknown_ecosystem' and nothing was queried - not checked, not clean.
  • ThingSet Zephyr SDK: Commit-pinned source repository with no ecosystem advisory registry to query (the snapshot's own check plan marks it not checkable).
  • Libre Solar OLED display library: Commit-pinned source repository with no public advisory registry to query (the snapshot's own check plan marks it not checkable).
  • Zephyr imported modules (cmsis_6, edtt, hal_stm32, zcbor, thingset-node-c): No independent revision in west.yml, so there is no concrete version to look up.
  • Sphinx documentation toolchain (breathe, sphinx, sphinx-notfound-page, sphinx-rtd-theme, sphinx-tabs): All five rows in docs/requirements.txt are unpinned or range-constrained, so the automatic OSV check covered 0 of 5.
  • Host build toolchain (west, CMake, Ninja, Python 3, Doxygen): Versions are not stated anywhere in the sources and nothing pins them; installed from unpinned system packages.
  • ThingSet serial/USB configuration interface: The sources do not state whether the ThingSet protocol requires any authentication before a client may change battery setpoints or configuration, and no firmware source was read this run to determine it.
  • zephyr 4.4: support status: endoflife.date has no such product
  • zephyr-rtos 4.4: support status: endoflife.date has no such product

Parts

Microcontroller and integrated circuits

Part Spec/Package Status Stock Price Source
STM32L072CZT6 (U2) Cortex-M0+, 192 KB flash, 48-LQFP 7×7; supply 1.65–3.6 V Active 1,374 $5.91 DigiKey; also Newark 1,355 @ $6.01
LM5109BMAX/NOPB (U1) Half-bridge gate driver, 8-SOIC; supply 8–14 V covers the +12 V rail Active 18,860 $0.87 DigiKey
INA2181A2IDGS (U6) Dual current sense, gain 50 V/V, 10-VSSOP, supply 2.7–5.5 V. Order as INA2181A2IDGSR Active 1,561 $0.80 DigiKey. Sibling INA2181A2IDGST is Obsolete — avoid
LMR33630ADDA (U9) 3 A synchronous buck, 400 kHz "A" variant, SO-PowerPAD-8 Active 507 $3.39 DigiKey
AP2210K-3.3TRG1 (U5) 3.3 V LDO, 300 mA, SOT-23-5 Active 113,775 $0.25 DigiKey
D1213A-04SO (U3, U4) 4-channel TVS array, SOT-23-6, 6 V breakdown. Order as D1213A-04SO-7 Active 6,592 $0.72 DigiKey

Power MOSFETs and discrete transistors

Part Spec/Package Status Stock Price Source
PSMN5R2-60YLX (Q1, Q2, Q4) N-channel 60 V, 100 A, LFPAK56 / Power-SO8 Active 2,224 $1.98 DigiKey; Mouser 34,664 @ $2.00
BSC084P03NS3GATMA1 (Q3) P-channel 30 V, 14.9 A (Ta), PG-TDSON-8-5 (5×6 mm) Active 17,192 $1.76 DigiKey; 4 distributors in stock
BSS83P H6327 (Q5–Q7) P-channel 60 V, 330 mA, SOT-23. Order as BSS83PH6327XTSA1 Active 130,060 $0.42 DigiKey. ECIA lifecycle risk Med — see Watch list
MMBT3904-7-F (T1, T2) NPN 40 V, 200 mA, SOT-23 Active 696,084 $0.16 DigiKey

Diodes and protection devices

Part Spec/Package Status Stock Price Source
1N4148W-7-F (D1, D4, D7) 100 V, 300 mA fast switching, SOD-123 Active 1,271,331 $0.18 DigiKey
SS14FL (D6) Schottky 40 V, 1 A, SOD-123F Obsolete 0 (13-week factory lead) last $0.35 at MCC's SMA part — not equivalent onsemi part has zero stock at DigiKey and Mouser. See Substitutes
SMBJ24A (D5) Unidirectional 600 W TVS, 24 V standoff, DO-214AA/SMB Active 31,232 $0.50 DigiKey (Littelfuse — allowed by the snapshot)
Keystone 3557-2 (F1 clip) 2-in-1 PCB fuse clip for ATO/ATC blade fuses Active 194,660 $1.09 DigiKey
Littelfuse 0287015.PXCN (F1 fuse) 15 A ATO automotive blade fuse Active 55,099 $0.44 DigiKey. BOM says 25 A, manual says 15 A — unresolved in the sources
0ZCJ0005FF2E (F2) PTC resettable, 50 mA hold, 1206 Active 554,466 $0.21 DigiKey

Inductors and magnetics

Part Spec/Package Status Stock Price Source
Feryster DTMSS-27/0,047/15-HX (L1) 47 µH ±20%, Isat ≥ 15 A, DCR ≤ 15 mΩ, through-hole toroid ~32 mm Hard to obtain — — No DigiKey product; no ECIA-authorized distributor lists it. Manufacturer trading at feryster.pl — quote only
Taiyo Yuden NR8040T100M (L3) 10 µH, Isat 3.4 A, DCR 44.2 mΩ, 8×8×4 mm SMD Obsolete 0 at all five distributors last $0.41 DigiKey 8-week, Future 24-week factory lead. See Substitutes
Taiyo Yuden BRL3225T2R2M (L2) 2.2 µH, 1.15 A, 1210 wirewound Active 66,243 $0.17 DigiKey

Resistors and thermistors

Part Spec/Package Status Stock Price Source
Bourns CRE2512-FZ-R003E-3 (R6, R17) 3 mΩ, 3 W, 1%, 2512 metal foil Active 41,271 $0.73 DigiKey
YAGEO RC1206FR-072R2L (R4) 2.2 Ω, 0.25 W, 1%, 1206 Active 60,222 $0.15 DigiKey
YAGEO RC0805FR-074R7L (R1, R3, R10) 4.7 Ω, 0.125 W, 1%, 0805 Active 6,573 $0.11 DigiKey
Murata NCU18XH103E6SRB (RT1) NTC 10 kΩ, B = 3380 K, 0603 Active 34,633 $0.16 DigiKey
YAGEO RC0603FR-07 series, 31 pcs across 8 values 0603, 1%, 0.1 W. Representative lookup: RC0603FR-0710KL Active 3,141,258 $0.10 DigiKey. The other 7 values were not individually checked — one representative lookup per the sourcing plan

Capacitors

Part Spec/Package Status Stock Price Source
Chemi-Con EKYB630ELL122MLN3S (C1) 1200 µF, 63 V, 16 mm dia, 7.50 mm lead spacing, ripple 3 A @ 100 kHz Active 534 $3.63 DigiKey; 5 distributors in stock, from $1.43 in quantity
Panasonic EEU-FR1E821 (C5) 820 µF, 25 V, 10 mm dia, 5.0 mm lead spacing Active 755 $1.20 DigiKey
Panasonic EEEFK1E151P (C2) 150 µF, 25 V, 8.0 mm SMD can. Order as EEE-FK1E151P Active 10,234 $1.13 DigiKey; Newark 33,930 @ $0.858
Murata GRJ32DC72A475KE11L (C3) 4.7 µF, 100 V, X7S, 1210 (3.20 × 2.50 mm) Not For New Designs 35,058 $1.79 DigiKey; 6 distributors in stock. See Substitutes
Samsung CL31A106KAHNNNE (C15) 10 µF, 25 V, X5R, 1206 (3.20 × 1.60 mm) Active but 0 stock 0 (49-week factory lead) $0.22 quoted, none available Zero at all five ECIA distributors. See Substitutes
Samsung CL31B226MPHNNNE (C20, C21, C36, C40) 22 µF, 10 V, X7R, 1206 Active 32 at DigiKey; 578,000 at Future $0.44 Buy from Mouser (1,629 @ $0.36) or Arrow (40,123) for a class set
YAGEO CC0805KKX7R9BB105 (C14) 1.0 µF, 50 V, X7R, 0805 Active 101,979 $0.32 DigiKey
0603 MLCC group, 33 pcs across 6 values 0603. Representative lookup: CC0603KRX7R9BB104 (100 nF, 50 V, X7R) Active 918,965 $0.10 DigiKey. The other 5 values (100 pF C0G, 1 nF, 10 nF 100 V, 220 nF, 2.2 µF) were not individually checked

Status LEDs

Part Spec/Package Status Stock Price Source
Lite-On LTST-C191KSKT (LED1–LED3) Yellow 591 nm, 0603 SMD Active 1,001,978 $0.16 DigiKey
Lite-On LTST-C190KGKT (LED4, LED5) Green 571 nm, 0603 SMD Active 1,672,008 $0.15 DigiKey

Connectors and headers

Part Spec/Package Status Stock Price Source
Phoenix Contact 1714971 (J1, J2, J3) MKDS 5/2-9,52 screw terminal, 9.52 mm pitch, 32 A Active 12,183 $1.91 DigiKey. Three per board — the biggest line after the MCU
Same Sky UJ2-ADH-1-TH (J5) Dual stacked USB-A, horizontal through-hole Active 2,359 $1.20 DigiKey. CUI Devices is now Same Sky — order under the new name
Würth 615006138421 (J7) RJ25 6P6C, right-angle, tab-up Active 19,924 $0.60 DigiKey
On Shore 302-S101 (J4) 2×5 boxed header, 2.54 mm pitch Active 195,734 $0.27 DigiKey
JST B2B-XH-A(LF)(SN) (J6) XH 2-pin vertical header, 2.50 mm pitch. Order as B2B-XH-A Active 328,188 $0.10 DigiKey; 3 distributors in stock
Harwin M20-9990546 (J8) 1×5 vertical pin header, 2.54 mm pitch Active 40,796 $0.20 DigiKey

Support hardware and non-BOM components

Part Spec/Package Status Stock Price Source
Bootloader pushbutton — representative C&K PTS645SM43SMTR92 LFS SPST momentary tactile. No footprint is specified on the schematic Active 173,454 $0.36 DigiKey. Representative part — confirm the pad geometry first
M3 mounting hardware — representative Würth 970060365 M3 standoff, 4 per board Active 1,903 $0.86 DigiKey. Any M3 nylon or brass standoff works
Keystone 5015 test points (TP1–TP9, 8 pcs) SMD test point loop Active 1,405,158 at DigiKey; 3,043,395 at Mouser $0.49 Price and stock from the ECIA/TrustedParts record — the DigiKey catalog search returned no Keystone product, so there is no product link

Substitutes

For part Substitute Differences Verified Judgment
L3 NR8040T100M (obsolete) Bourns SRN8040TA-100M — $0.61, 1,945 in stock 10 µH ±20% (match). Isat 5 A vs the required ≥ 3.5 A — exceeds, acceptable. DCR 33 mΩ vs the required ≤ 40 mΩ — exceeds, acceptable. Body 8.00 × 8.00 mm (match); seated height 4.50 mm vs the 4.0 mm the 8040 name implies — 0.5 mm taller, no clearance issue on an open board. Better than the obsolete original on both saturation current (5 A vs 3.4 A) and resistance (33 vs 44.2 mΩ). Verified: inductance, tolerance, saturation current, DCR and body size + seated height (DigiKey parametrics, both parts); footprint family confirmed by the board's own KiCad pad being named "Bourns_SRN8040TA". Nothing material unverified. Recommended. This is the alternative the lab's own BOM already names.
L3 NR8040T100M (obsolete) Taiyo Yuden LSXNH8080YKL100MJG — $0.35, 1,960 in stock Taiyo Yuden's own flagged replacement. 10 µH ±20% (match). Isat 3.8 A vs the required ≥ 3.5 A — exceeds, acceptable. DCR 44.2 mΩ is over the snapshot's ≤ 40 mΩ latitude, but identical to the obsolete original's own 44.2 mΩ, so no worse than the part it replaces. Body 8.00 × 8.00 mm (match). Verified: inductance, saturation current, DCR and body size (DigiKey parametrics, both parts). Not verified: seated height (not published) and land-pattern equivalence between the Taiyo Yuden 3131/8080 pad and the board's Bourns_SRN8040TA pad. Acceptable, and cheaper — but slightly worse than the Bourns part on both figures.
L3 NR8040T100M (obsolete) Bourns SRN8040-100M — $0.55, 7,579 in stock DigiKey suggests it, but Isat 3.4 A and DCR 50 mΩ max fall short of the required ≤ 40 mΩ. Verified: inductance, saturation current and DCR (DigiKey parametrics). Not recommended — falls short on resistance. Use the TA variant.
D6 SS14FL (obsolete) Diodes 1N5819HW-7-F — $0.31, 844,516 in stock SOD-123 package — the snapshot explicitly allows "SOD-123FL or SOD-123". VRRM 40 V (meets ≥ 40 V), IF 1 A (meets ≥ 1 A), Vf 450 mV @ 1 A vs the required ≤ 500 mV — exceeds, acceptable. Verified: package/case, reverse voltage, forward current and forward drop (DigiKey parametrics) against the snapshot's stated allowances. Not verified: which of the two KiCad pads the fabricated board carries — the board files were not in the upload, so a SOD-123 body may sit on a longer flat-lead land. Recommended, with one eyeball check of the D6 land before ordering.
D6 SS14FL (obsolete) MCC SS14FL-TP — $0.35, 18,174 in stock Same 40 V / 1 A rating and a nearly identical part number, but the package is DO-221AC / SMA flat leads, not SOD-123F. Verified: package/case for both parts (DigiKey parametrics) — and they do not match. Hard stop. Different land pattern. Listed only because the part number is a trap.
D6 SS14FL (obsolete) Nexperia PMEG4010CEJ — $0.44 40 V / 1 A, but the package is SOD-323F, smaller than SOD-123F. Verified: package/case (DigiKey parametrics). Hard stop. Footprint mismatch.
C15 CL31A106KAHNNNE (no stock) Murata GRM319R61E106KA12D — $0.47, 289,090 in stock 10 µF, 25 V, X5R, 1206 (3216 metric), 3.20 × 1.60 mm — identical on every published parameter to the Samsung part. Verified: capacitance, voltage rating, dielectric class and package + body dimensions (DigiKey parametrics, both parts). Nothing material unverified. Recommended. Plentiful and cheaper than the original's quoted price.
C3 GRJ32DC72A475KE11L (not for new designs) TDK C3225X7S2A475K200AB — $1.37; 0 at DigiKey but 41,000 at Future, 9,000 at TTI, 8,000 at Avnet 4.7 µF, 100 V, X7S, 1210 (3225 metric), 3.20 × 2.50 mm — identical on every published parameter to the Murata part. Verified: capacitance, voltage rating, dielectric class and package + body dimensions (DigiKey parametrics, both parts). Not verified: soft-termination (flex-crack) equivalence — no parametric in evidence covers termination style, and the snapshot's own latitude does not require it. Acceptable as the successor when the Murata part runs out. Order from Future, TTI or Avnet, not DigiKey.
L1 DTMSS-27/0,047/15-HX (no distribution) Bourns 2300HT-470-H-RC — $7.15, 60 at DigiKey, 180 at Master Electronics @ $4.87 47 µH ±15% (match), 32.51 mm diameter (close to the ~32 mm original). But the current rating is 10 A against the required Isat ≥ 15 A — and saturation current is not published at all — and DCR is 28 mΩ against the required ≤ 15 mΩ, nearly double, which at 10 A continuous means roughly 2.8 W of inductor loss. Verified: inductance, current rating, DCR, mounting type and body diameter (DigiKey parametrics) against the snapshot's requirements — two of them fail. Not verified: lead pitch / land pattern against the L-FERYSTER footprint, and saturation current (not published). Not acceptable as a drop-in. It would run the buck stage at its own rating with no margin and hotter than designed. Shown only so you know what the nearest catalog part looks like.

Verify any substitute against its own datasheet and against your board's actual land pattern before ordering — the checks above are made from distributor parametric data, not from the physical board.

Other dependencies

  • Enclosure (IP20, "3D files available") — available, with a version caveat. The LibreSolar/charge-controller-housings repository is live (CC-BY-SA-4.0, open to contributions) and holds a housing for MPPT-1210-HUS-v0.4, while this lab builds hardware rev 0.7.1. The housing on offer targets an older board revision and may not fit — check the cutouts for the screw terminals, USB, RJ25 and LEDs before printing. File formats were not enumerated in the fetched page.
  • **Hardware documentation, https://libre.solar/mppt-1210-hus/** — live. Fetched this run; it returns the full user manual (introduction, disclaimer, safety instructions, installation guidance).
  • Manual PDF (manual.pdf), interactive HTML BOM (mppt-1210-hus_ibom.html), md-manual-template, coding-style, thingset.io — not checked. These were not fetched this run. The parent site and the GitHub organisation both resolve, so they are probably fine, but that is an inference rather than a check.
  • PCB fabrication — not checked, and not checkable from what was uploaded. No Gerber (.gbr) or .kicad_pcb files were included, so the 2-layer / 2 oz copper stackup in the snapshot is an inference from the 10 A trace requirement, not a specification read off a fabrication file. No board house was quoted. Generate Gerbers from the KiCad 5.1.9 sources, or pull them from the upstream hardware repository, before ordering boards.
  • Fuse rating conflict — the CSV BOM and schematic label F1 as 25 A while the user manual specifies a 15 A ATO blade fuse. The 15 A part is the one priced above. Resolve this before students energise a board.
  • C15 footprint conflict — the snapshot files C15 under the 1210 group with a C_1210_3225 pad, but the part it names (Samsung CL31A106KAHNNNE) is per DigiKey a 1206 (3216 metric), X5R part. The component and the footprint do not agree. Confirm against the board file; a 1206 body will solder to a 1210 land but is not the intended fit.

Watch list

  • L1, the 47 µH main inductor. The single thing standing between an instructor and a built board. No distribution channel exists, so every re-order is a fresh quote to a Polish manufacturer. If the design is going to be run repeatedly, it is worth redesigning L1 around a catalog part with a published saturation current.
  • C3 Murata GRJ32DC72A475KE11L. Already Not For New Designs with healthy stock — that is exactly the profile of the part that disappears between one check and the next. The TDK successor is pre-verified above.
  • Q5–Q7 BSS83P H6327. The only otherwise-healthy part carrying an ECIA lifecycle risk of Med, and only one distributor (Mouser) lists the exact spaced part number. Worth watching.
  • C20/C21/C36/C40 CL31B226MPHNNNE. DigiKey is down to 32 pieces. Plenty exists elsewhere today, but a 1206 22 µF part with one warehouse nearly empty is a candidate to become the next C15.
  • U2 STM32L072CZT6. A single-source ST microcontroller standing on two distributors with stock; Mouser is already at zero with nearly 12,000 on order. Firmware pin assignments are hardcoded, so the substitution latitude is narrow — only an STM32L072 or L073 in LQFP-48.
  • The 7 resistor values and 5 capacitor values checked only by representative. Commodity parts, but they have no individual baseline, so a shortage in one value would not show up until someone tried to order it.
Snapshot What the lab depended on when it was uploaded — the baseline the readiness checks research against.

This document is a sourcing and build snapshot for the Libre Solar MPPT 1210 HUS solar charge controller lab. It captures all physical parts, mechanical hardware, software dependencies, and fabrication parameters required to build and verify the hardware.

This lab builds the Libre Solar MPPT 1210 HUS (Hardware Revision 0.7.1, dated 2021-05-02), an open-source Maximum Power Point Tracking (MPPT) solar charge controller designed for 12 V nominal battery systems (sealed lead-acid, gel, lithium-ion, or LiFePO4 chemistry). The hardware implements a high-efficiency synchronous buck converter power stage governed by an STMicroelectronics STM32L072CZT6 32-bit ARM Cortex-M0+ microcontroller. The system operates across four primary voltage domains: a solar photovoltaic (PV) input rail (16 V to 40 V nominal open-circuit voltage range, with an absolute maximum input rating of 55 V), a 12 V nominal battery power rail (+12V, operating up to 16 V maximum and rated for up to 10 A continuous charge and load current), a +5 V buck-regulated intermediate auxiliary rail (stepped down to 5.12 V nominal via a Texas Instruments LMR33630 switcher running at 400 kHz to power dual stacked USB charging ports delivering up to 2.0 A total), and a +3.3 V regulated system logic rail (stepped down via a Diodes Inc. AP2210 low-dropout regulator to power the microcontroller, current-sense amplifier, status LEDs, and digital communication buses).


Bill of Materials

Every electrical, mechanical, and support component across the KiCad schematics, CSV bill of materials, and assembly documentation is accounted for below. Discrepancies between schematic labels and BOM entries are explicitly highlighted.

Microcontroller and Integrated Circuits

  • Microcontroller IC

    • Identity: STMicroelectronics STM32L072CZT6 (32-bit ARM Cortex-M0+, 32 MHz, 192 KB Flash, 20 KB SRAM, USB 2.0, 37 GPIOs)
    • Quantity: 1
    • Reference: U2
    • Footprint/package: LQFP-48 (7 mm × 7 mm, 0.5 mm pitch; KiCad footprint LQFP-48_7x7mm_P0.5mm)
    • Electrical constraints: Operating voltage 1.65 V to 3.6 V; powered at +3.3 V system logic rail. Filtered analog supply VDDA fed via 100 Ω resistor R8 and bypassed by C34 (2.2 µF) and C41 (10 nF).
    • Substitution latitude: Alternative listed in BOM is STM32L073CZT6 (pin-compatible with integrated LCD controller). Any substitute must be an STM32L072 or STM32L073 in LQFP-48 with identical pin mapping; pin assignments for timer PWM outputs (PB0, PB1), ADC analog inputs (PA0, PA1, PA4, PA5, PA6, PA7), and internal DAC reference output (PA4) are hardcoded in the firmware.
    • Operated control: No.
    • Sourcing plan: distributor lookup: STM32L072CZT6
  • Half-Bridge MOSFET Gate Driver IC

    • Identity: Texas Instruments LM5109BMAX/NOPB (high-voltage 100 V, 1 A peak half-bridge gate driver)
    • Quantity: 1
    • Reference: U1
    • Footprint/package: SOIC-8 (3.9 mm × 4.9 mm, 1.27 mm pitch; KiCad footprint SOIC-8_3.9x4.9mm_Pitch1.27mm)
    • Electrical constraints: Powered from nominal +12V battery rail via 2.2 Ω resistor R4 and decoupling capacitor C12 (2.2 µF). Maximum operating voltage up to 100 V bootstrap. Inputs HI and LI driven directly by 3.3 V logic levels (PWM_HS, PWM_LS) from MCU.
    • Substitution latitude: Low latitude. Must be a half-bridge driver capable of driving high-side and low-side N-channel MOSFETs with 100 V bootstrap capability, compatible with 3.3 V logic inputs and SOIC-8 pinout (pin 1: VDD, 2: HI, 3: LI, 4: VSS, 5: LO, 6: HS, 7: HO, 8: HB).
    • Operated control: No.
    • Sourcing plan: distributor lookup: LM5109BMAX/NOPB
  • Dual Bidirectional Current Sense Amplifier IC

    • Identity: Texas Instruments INA2181A2IDGS (dual-channel bidirectional current sense amplifier, fixed voltage gain = 50 V/V)
    • Quantity: 1
    • Reference: U6
    • Footprint/package: VSSOP-10 (3.0 mm × 3.0 mm, 0.5 mm pitch; KiCad footprint VSSOP-10_3.0x3.0mm_P0.5mm)
    • Electrical constraints: Powered from +3.3 V rail. Common-mode voltage range -0.2 V to +26 V. Senses differential voltage across 3 mΩ shunt resistors on DC/DC stage (R6) and load output (R17). Voltage reference inputs REF1 and REF2 are tied together and driven by MCU DAC output (buffered by C42 100 nF) to provide a variable zero-current offset for bidirectional sensing.
    • Substitution latitude: Critical component. Gain variant must be exactly A2 (Gain = 50). Using A1 (20 V/V), A3 (100 V/V), or A4 (200 V/V) will scale current readings incorrectly and corrupt MPPT tracking and overcurrent protection thresholds.
    • Operated control: No.
    • Sourcing plan: distributor lookup: INA2181A2IDGS
  • Synchronous Step-Down DC/DC Converter IC (5V USB Rail)

    • Identity: Texas Instruments LMR33630ADDA (SIMPLE SWITCHER 3.8 V to 36 V, 3 A synchronous buck converter, 400 kHz fixed switching frequency)
    • Quantity: 1
    • Reference: U9
    • Footprint/package: SO-PowerPAD-8 (thermal pad with thermal vias; KiCad footprint TI_SO-PowerPAD-8_ThermalVias)
    • Electrical constraints: Input connected to battery rail (+12V, via Q6/Q5 fallback circuitry); output set to 5.12 V via feedback divider R28 (100 kΩ) and R29 (24.9 kΩ) using equation Vout = 0.925 V × (1 + 100k / 24.9k). Max continuous output current 3 A.
    • Substitution latitude: Must be the 400 kHz adjustable version ("A" suffix: LMR33630ADDA). The 1.4 MHz or 2.1 MHz variants (suffix "B" or "C") will alter inductor and capacitor requirements and could cause thermal/stability failures.
    • Operated control: No.
    • Sourcing plan: distributor lookup: LMR33630ADDA
  • Low Dropout Linear Voltage Regulator IC (3.3V Logic Rail)

    • Identity: Diodes Inc. AP2210K-3.3TRG1 (300 mA low-noise, high-PSRR RF LDO regulator, 3.3 V fixed output)
    • Quantity: 1
    • Reference: U5
    • Footprint/package: SOT-23-5 (KiCad footprint SOT-23-5)
    • Electrical constraints: Input connected to +5V rail (or +12V fallback rail through diode D7). Input voltage rating up to 13.2 V; output fixed at +3.3 V with 300 mA maximum current capacity. Pinout: 1: IN, 2: GND, 3: EN, 4: BP (noise bypass with C35 100 pF), 5: OUT.
    • Substitution latitude: Alternative noted in BOM is Microchip MIC5225-3.3. Any low-dropout regulator in SOT-23-5 matching this standard pinout with input voltage tolerance ≥ 16 V (to survive fallback connection to the battery rail) and fixed 3.3 V output ≥ 250 mA is acceptable.
    • Operated control: No.
    • Sourcing plan: distributor lookup: AP2210K-3.3TRG1
  • 4-Channel TVS Diode Arrays (ESD Protection)

    • Identity: Diodes Inc. D1213A-04SO (4-channel low capacitance transient voltage suppressor array, breakdown voltage 6.0 V)
    • Quantity: 2
    • References: U3, U4
    • Footprint/package: SOT-23-6 (KiCad footprint SOT-23-6)
    • Electrical constraints: Operating voltage 3.3 V to 5 V. Low channel input capacitance (< 0.85 pF) for high-speed data lines. U3 protects the RJ25 / LS.one serial port and external temperature lines. U4 protects the stacked USB data and power lines (USB_DP, USB_DM).
    • Substitution latitude: Alternative noted in BOM is NXP/Nexperia IP4220CZ6. Any 4-channel rail-to-rail ESD diode array in SOT-23-6 with low capacitance and matching pin configuration (I/O on pins 1, 3, 4, 6; GND on pin 2; VDD on pin 5) is acceptable.
    • Operated control: No.
    • Sourcing plan: distributor lookup: D1213A-04SO

Power MOSFETs and Discrete Transistors

  • N-Channel Power MOSFETs (DC/DC Power Stage & Reverse Polarity)

    • Identity: Nexperia PSMN5R2-60YLX (N-channel 60 V, 5.2 mΩ, 100 A logic-level power MOSFET in LFPAK56)
    • Quantity: 3
    • References: Q1, Q2, Q4
    • Footprint/package: LFPAK56 / Power-SO8 (5 mm × 6 mm; KiCad footprint 5X6_MOSFET)
    • Electrical constraints: Drain-source breakdown voltage VDS ≥ 60 V, continuous drain current ID ≥ 80 A, RDS(on) ≤ 5.5 mΩ at VGS = 10 V. Q1 is the buck converter high-side switch (gate driven by HS_DRV via R1 4.7 Ω); Q4 is the low-side synchronous rectifier (gate driven by LS_DRV via R3 4.7 Ω); Q2 provides PV reverse-polarity protection in the negative solar return leg.
    • Substitution latitude: Alternative listed in BOM is Nexperia BUK9Y6R0-60E. Any N-channel 60 V MOSFET in LFPAK56 / Power-SO8 (5x6 mm) with RDS(on) ≤ 6 mΩ and low total gate charge (QG ≤ 40 nC) is acceptable.
    • Operated control: No.
    • Sourcing plan: distributor lookup: PSMN5R2-60YLX
  • P-Channel Power MOSFET (High-Side Load Switch)

    • Identity: Infineon BSC084P03NS3GATMA1 (OptiMOS P-channel 30 V, 8.4 mΩ, 50 A power MOSFET)
    • Quantity: 1
    • Reference: Q3
    • Footprint/package: SuperSO8 / TDSON-8 (5 mm × 6 mm; KiCad footprint 5X6_MOSFET)
    • Electrical constraints: VDS ≤ -30 V, RDS(on) ≤ 8.4 mΩ at VGS = -10 V. Configured as high-side load switch. Gate pulled up to +12V battery rail via R16 (10 kΩ) and pulled down to turn ON by NPN transistor T1 through R10 (4.7 Ω).
    • Substitution latitude: Alternative listed in BOM is Vishay Si7149ADP-T1-GE3. Any P-channel MOSFET in 5x6 mm Power-SO8 / TDSON-8 with VDS rating ≥ 30 V, RDS(on) ≤ 10 mΩ, and continuous drain current ≥ 30 A is acceptable.
    • Operated control: No.
    • Sourcing plan: distributor lookup: BSC084P03NS3GATMA1
  • Small-Signal P-Channel MOSFETs

    • Identity: Infineon BSS83P H6327 (P-channel 60 V, 0.33 A, 2 Ω small-signal MOSFET)
    • Quantity: 3
    • References: Q5, Q6, Q7
    • Footprint/package: SOT-23 (TO-236; KiCad footprint SOT-23)
    • Electrical constraints: VDS ≥ 60 V, VGS(th) between -1.0 V and -2.0 V. Q7 is in the solar voltage sensing divider circuit to protect MCU ADC inputs when a solar panel is connected without a battery; Q5 and Q6 form an automatic fallback circuit switching power supply input from the +5V rail to +12V if +5V drops.
    • Substitution latitude: Standard 60 V P-channel small-signal MOSFET in SOT-23 (e.g. BSS84, TP2104). Must withstand 60 V across drain-source to survive maximum open-circuit solar voltage.
    • Operated control: No.
    • Sourcing plan: distributor lookup: BSS83P H6327
  • NPN Small-Signal Bipolar Transistors

    • Identity: Diodes Inc. MMBT3904-7-F (NPN general purpose switching transistor, 40 V, 200 mA / 0.8 A peak)
    • Quantity: 2
    • References: T1, T2
    • Footprint/package: SOT-23 (KiCad footprint SOT-23)
    • Electrical constraints: VCEO ≥ 40 V, IC ≥ 200 mA. T1 drives Q3 gate for load output switching via MCU LOAD_EN signal; T2 drives Q7 gate for solar voltage sensing enable via MCU V_SOLAR_EN signal.
    • Substitution latitude: Generic NPN small-signal transistor in SOT-23 (MMBT3904, 2N3904, BC847).
    • Operated control: No.
    • Sourcing plan: distributor lookup: MMBT3904-7-F

Diodes and Protection Devices

  • General Purpose Fast Switching Diodes

    • Identity: Diodes Inc. 1N4148W-7-F (100 V, 300 mA, 4 ns high-speed switching diode)
    • Quantity: 3
    • References: D1, D4, D7
    • Footprint/package: SOD-123 (KiCad footprint D_SOD-123)
    • Electrical constraints: VRRM ≥ 100 V, IF ≥ 150 mA, trr ≤ 4 ns. D1 protects gate of Q2; D4 is gate driver bootstrap diode for U1 LM5109; D7 provides fallback rail steering from +12V into AP2210 LDO input.
    • Substitution latitude: Any 1N4148W or 1N4448W in SOD-123.
    • Operated control: No.
    • Sourcing plan: distributor lookup: 1N4148W-7-F
  • Bootstrap Schottky Diode (Omitted from CSV BOM; Present on Schematic)

    • Identity: ON Semiconductor / Fairchild SS14FL (Schottky barrier rectifier, 40 V, 1 A, low forward drop)
    • Quantity: 1
    • Reference: D6
    • Footprint/package: SOD-123FL (KiCad footprint D_SOD-123FL / SOD-123)
    • Electrical constraints: VRRM ≥ 40 V, IF ≥ 1 A, VF ≤ 0.5 V. Located on schematic page 2 connected between VDD and HB pin 8 of U1 LM5109BMA.
    • Reconcile discrepancy: Diode D6 is drawn on KiCad schematic sheet 2 ("D6 SS14FL X") but was completely omitted from mppt-1210-hus_bom.csv. If omitted during assembly, bootstrap capacitor C10 cannot recharge properly when high-side PWM is engaged unless relying solely on internal or parasitic paths. Must be populated.
    • Substitution latitude: Any 40 V, 1 A Schottky diode in SOD-123FL or SOD-123 footprint (e.g. SS14FL, MBR140, B140).
    • Operated control: No.
    • Sourcing plan: distributor lookup: SS14FL
  • Transient Voltage Suppressor (TVS) Diode

    • Identity: Bourns SMBJ24A (unidirectional 600 W TVS diode, standoff voltage 24 V, breakdown voltage 26.7 V to 29.5 V, clamping voltage 38.9 V)
    • Quantity: 1
    • Reference: D5
    • Footprint/package: DO-214AA / SMB (KiCad footprint D_SMB)
    • Electrical constraints: Reverse standoff voltage VRWM = 24 V. Sits across the load output terminal (J2 LOAD+ to GND) to suppress transient inductive spikes.
    • Substitution latitude: Any 24 V 600 W unidirectional TVS diode in SMB / DO-214AA package (e.g. Littelfuse SMBJ24A, Vishay SMBJ24A-E3/52).
    • Operated control: No.
    • Sourcing plan: distributor lookup: SMBJ24A
  • Automotive Blade Fuse Clip & Fuse

    • Identity: Keystone Electronics 3557-2 (2-in-1 PCB fuse clip for standard automotive ATO / ATC blade fuses)
    • Quantity: 1 (clip) + 1 (fuse insert)
    • Reference: F1
    • Footprint/package: Keystone 3557-2 vertical PCB mount tabs (KiCad footprint KEYSTONE-FUSE-3557-2)
    • Electrical constraints: Rated up to 30 A, 500 V. Sits in series with positive battery terminal (BAT+) before the DC/DC stage.
    • Reconcile discrepancy: The CSV BOM lists F1 value as "25A" with part number Keystone 3557-2. The schematic sheet 2 labels F1 as "25A". However, the user manual (manual_specifications.md) states "Type of internal fuse: 15 A Automotive blade fuse (ATO)". Keystone 3557-2 is only the PCB clip; a standard 15 A (or 25 A per testing needs) ATO/ATC automotive blade fuse (e.g., Littelfuse 0287015.PXCN) must be ordered separately to populate the clip.
    • Substitution latitude: Clip must match Keystone 3557-2 footprint. Fuse must be a standard ATO automotive blade fuse rated 15 A (standard operating specification) or 25 A (absolute maximum board ceiling).
    • Operated control: No (serviceable sacrificial element).
    • Sourcing plan: distributor lookup: 3557-2 (clip) and distributor lookup: 0287015.PXCN (15 A fuse insert)
  • PTC Resettable Fuse

    • Identity: Bel Fuse 0ZCJ0005FF2E (1206 surface mount PTC resettable fuse, hold current 50 mA, trip current 150 mA, max voltage 60 V)
    • Quantity: 1
    • Reference: F2
    • Footprint/package: 1206 SMD (KiCad footprint R_1206_3216)
    • Electrical constraints: Hold current IH = 50 mA, Vmax ≥ 30 V. Protects the +3.3V auxiliary power output feeding the external RJ25 / UEXT connectors.
    • Substitution latitude: Any 1206 size PTC resettable fuse with hold current 50 mA and voltage rating ≥ 30 V (e.g. Littelfuse 1206L005YR).
    • Operated control: No.
    • Sourcing plan: distributor lookup: 0ZCJ0005FF2E

Inductors and Magnetics

  • Main Power Toroidal Inductor (47 µH)

    • Identity: Feryster DTMSS-27/0,047/15-HX (custom/specialized through-hole toroidal power inductor, 47 µH ± 20%, rated current 15 A)
    • Quantity: 1
    • Reference: L1
    • Footprint/package: Through-hole vertical/horizontal toroidal footprint (KiCad footprint L-FERYSTER-DTMSS-27_47uH; pitch/dimensions ~32 mm × 32 mm × 18 mm)
    • Electrical constraints: Inductance 47 µH at 0 A DC; saturation current ISAT ≥ 15 A; DC resistance DCR ≤ 15 mΩ. Handles full 10 A continuous buck converter charging current.
    • Substitution latitude: Critical component. Off-the-shelf catalog distribution in North America/Asia is limited as Feryster is a specialized Polish manufacturer. Any substitute must be a power toroidal or shielded drum core inductor with 47 µH inductance, DC saturation current ≥ 15 A, and low core losses at 50 kHz to 100 kHz.
    • Operated control: No.
    • Sourcing plan: general web research: "Feryster DTMSS-27/0,047/15-HX 47uH 15A toroidal power inductor or compatible 47uH 15A high-current toroid"
  • 5V Buck Converter Power Inductor (10 µH)

    • Identity: Taiyo Yuden NR8040T100M (8.0 mm × 8.0 mm × 4.0 mm shielded SMD power inductor, 10 µH ± 20%, 3.4 A rated)
    • Quantity: 1
    • Reference: L3
    • Footprint/package: SMD 8040 (8.0 mm × 8.0 mm × 4.0 mm; KiCad footprint Bourns_SRN8040TA)
    • Electrical constraints: Inductance 10 µH, saturation current ISAT ≥ 3.4 A, DCR ≤ 35 mΩ. Inductor for U9 LMR33630 5V regulator.
    • Substitution latitude: Alternative listed in BOM is Bourns SRN8040TA-100M. Any 8040-size 10 µH shielded inductor with ISAT ≥ 3.5 A and DCR ≤ 40 mΩ is an exact form-fit-function match.
    • Operated control: No.
    • Sourcing plan: distributor lookup: NR8040T100M
  • 5V Filter / Intermediate Inductor (2.2 µH)

    • Identity: Taiyo Yuden BRL3225T2R2M (1210 / 3225 metric SMD wirewound inductor, 2.2 µH ± 20%, rated current 1.15 A)
    • Quantity: 1
    • Reference: L2
    • Footprint/package: 1210 SMD (3.2 mm × 2.5 mm; KiCad footprint L_1210_3225Metric)
    • Electrical constraints: Inductance 2.2 µH, rated current ≥ 1.0 A, DCR ≤ 120 mΩ. Placed on input filter rail for USB power switcher.
    • Substitution latitude: Any 1210 size wirewound power inductor with 2.2 µH inductance and current rating ≥ 1.1 A (e.g. Murata LQH32PN2R2NNC0L).
    • Operated control: No.
    • Sourcing plan: distributor lookup: BRL3225T2R2M

Resistors and Thermistors

  • Current Sense Shunt Resistors (3 mΩ, 2512)

    • Identity: Bourns CRE2512-FZ-R003E-3 (metal foil current sense chip resistor, 3 mΩ, 3 W, 1%, TCR ± 50 ppm/°C)
    • Quantity: 2
    • References: R6, R17
    • Footprint/package: 2512 SMD (6.4 mm × 3.2 mm; KiCad footprint R_Bourns_CRE2512)
    • Electrical constraints: Resistance 0.003 Ω, power rating ≥ 3 W, tolerance 1%. R6 senses DC/DC inductor current; R17 senses load output current. At 10 A continuous current, power dissipation is P = I² × R = 100 × 0.003 = 0.3 W continuous, with transient pulse dissipation up to 3 W.
    • Substitution latitude: Must be 3 mΩ ± 1%, rated ≥ 3 W in 2512 package with low temperature coefficient (≤ 75 ppm/°C) to prevent thermal measurement drift.
    • Operated control: No.
    • Sourcing plan: distributor lookup: CRE2512-FZ-R003E-3
  • Thick Film Power Gate Driver Supply Resistor (2.2 Ω, 1206)

    • Identity: Yageo RC1206FR-072R2L (thick film resistor, 2.2 Ω, 0.25 W, 1%)
    • Quantity: 1
    • Reference: R4
    • Footprint/package: 1206 SMD (KiCad footprint R_1206_3216)
    • Electrical constraints: Resistance 2.2 Ω, 1206 package (chosen for transient pulse current capability feeding U1 LM5109 VDD pin).
    • Substitution latitude: Any 1% 1206 resistor 2.2 Ω.
    • Operated control: No.
    • Sourcing plan: distributor lookup: RC1206FR-072R2L
  • Thick Film Gate Resistors (4.7 Ω, 0805)

    • Identity: Yageo RC0805FR-074R7L (thick film resistor, 4.7 Ω, 0.125 W, 1%)
    • Quantity: 3
    • References: R1, R3, R10
    • Footprint/package: 0805 SMD (KiCad footprint R_0805_2012)
    • Electrical constraints: Resistance 4.7 Ω. R1 and R3 damp gate ringing for Q1 and Q4; R10 drives Q3 gate turn-on.
    • Substitution latitude: Standard 0805 1% 4.7 Ω thick film chip resistors.
    • Operated control: No.
    • Sourcing plan: distributor lookup: RC0805FR-074R7L
  • NTC Surface Mount Thermistor (10 kΩ)

    • Identity: Murata NCU18XH103E6SRB (NTC thermistor, 10 kΩ at 25 °C, B-constant 3380 K ± 1%, tolerance ± 3%)
    • Quantity: 1
    • Reference: RT1
    • Footprint/package: 0603 SMD (KiCad footprint R_0603_1608)
    • Electrical constraints: Nominal resistance 10 kΩ at 25 °C, beta value 3380 K. Monitors PCB / power stage temperature for over-temperature protection and battery temperature compensation.
    • Substitution latitude: Must be 10 kΩ with B25/50 or B25/85 close to 3380 K in 0603 footprint; significant divergence in beta value will alter the MCU temperature lookup table.
    • Operated control: No.
    • Sourcing plan: distributor lookup: NCU18XH103E6SRB
  • Commodity 0603 Thick Film Resistors (1% Tolerance, 0.1 W)

    • Identity: Yageo RC0603FR-07 series (thick film surface mount chip resistors, 0603 imperial / 1608 metric, 1/10 W, 1% tolerance, 75 V)
    • Quantity: 31 total across 8 standard resistance values:
      • 100 Ω (Qty 1): R8 (RC0603FR-07100RL; analog filter for MCU VDDA)
      • 470 Ω (Qty 6): R11, R14, R15, R18, R20, R21 (RC0603FR-07470RL; R11/R20 filter current sense inputs; R14/R15 ballast Charlieplexed LEDs; R18/R21 protect LS.one UART pins)
      • 2.2 kΩ (Qty 6): R5, R7, R13, R30, R33, R34 (RC0603FR-072K2L; R5/R30 are I2C pull-ups; R7/R33 pull down BOOT0/BUTTON; R13 drives T1 base; R34 filters external temp sensor)
      • 5.6 kΩ (Qty 2): R26, R27 (RC0603FR-075K6L; bottom legs of solar voltage and battery voltage dividers)
      • 10 kΩ (Qty 4): R9, R16, R19, R31 (RC0603FR-0710KL; R9 pulls down LM5109 LO; R16 pulls up Q3 gate; R19 biases RT1 thermistor; R31 drives T2 base)
      • 24.9 kΩ (Qty 2): R29, R32 (RC0603FR-0724K9L; R29 sets LMR33630 5V output; R32 pulls up solar sense enable)
      • 100 kΩ (Qty 8): R12, R22, R23, R24, R25, R28, R35, R36 (RC0603FR-07100KL; R24/R25 are top legs of solar and battery voltage dividers; R28 is top leg of 5V buck divider; R35 is BOOT0 RC pull-up; R12/R22/R23/R36 are pull-ups)
      • 1 MΩ (Qty 1): R2 (RC0603FR-071ML; gate pull-down for Q2 reverse polarity MOSFET)
    • Footprint/package: 0603 SMD (KiCad footprint R_0603_1608)
    • Substitution latitude: Any standard 1% 0603 thick-film chip resistors matching the resistance values.
    • Operated control: No.
    • Sourcing plan: distributor lookup (representative example — sources give spec only): RC0603FR-0710KL

Capacitors

  • High-Capacity Solar Input Bulk Electrolytic Capacitor (1200 µF, 63 V)

    • Identity: United Chemi-Con EKYB630ELL122MLN3S (KYB series miniature radial aluminum electrolytic capacitor, 1200 µF, 63 V, 20%, low impedance, rated ripple current 3.0 A RMS at 105 °C)
    • Quantity: 1
    • Reference: C1
    • Footprint/package: Radial leaded, 16 mm diameter × 31.5 mm length, lead spacing 7.5 mm, mounted horizontally on PCB (KiCad footprint CP_Radial_L31.5mm_D16.0mm_P7.50mm_horizontal)
    • Electrical constraints: Sits directly across solar input (SOLAR+ to GND). Rated 63 V (solar input can reach 55 V absolute maximum open circuit). Must withstand high ripple currents (≥ 3.0 A RMS at 100 kHz).
    • Substitution latitude: Must have diameter ≤ 16 mm, length ≤ 32 mm, lead spacing 7.5 mm, voltage rating ≥ 63 V, capacitance ≥ 1000 µF, and ripple current rating ≥ 2.8 A RMS.
    • Operated control: No.
    • Sourcing plan: distributor lookup: EKYB630ELL122MLN3S
  • Battery Rail Bulk Electrolytic Capacitor (820 µF, 25 V)

    • Identity: Panasonic EEU-FR1E821 (FR series radial aluminum electrolytic capacitor, 820 µF, 25 V, 20%, ultra-low ESR, ripple current 2.18 A RMS at 105 °C)
    • Quantity: 1
    • Reference: C5
    • Footprint/package: Radial leaded, 10.0 mm diameter × 20 mm length, lead spacing 5.0 mm vertical (KiCad footprint CP_Radial_D10.0mm_P5.00mm)
    • Electrical constraints: Sits across the +12V battery rail after the buck inductor. Rated 25 V, ripple current ≥ 2.18 A RMS.
    • Substitution latitude: Any low-ESR radial electrolytic capacitor with diameter ≤ 10 mm, lead spacing 5.0 mm, voltage rating ≥ 25 V, and ripple rating ≥ 2.0 A RMS (e.g. Nichicon UHW1E821MPD).
    • Operated control: No.
    • Sourcing plan: distributor lookup: EEU-FR1E821
  • 5V Switcher Input Bulk SMD Electrolytic Capacitor (150 µF, 25 V)

    • Identity: Panasonic EEEFK1E151P (FK series SMD aluminum electrolytic capacitor, 150 µF, 25 V, 20%, low ESR)
    • Quantity: 1
    • Reference: C2
    • Footprint/package: SMD can size 8.0 mm × 6.2 mm (KiCad footprint CP_Elec_8x6.2)
    • Electrical constraints: Voltage rating ≥ 25 V, capacitance 150 µF. Buffers input to LMR33630 5V buck converter.
    • Substitution latitude: Any SMD aluminum electrolytic capacitor in 8x6.2 mm can size rated ≥ 25 V and ≥ 100 µF with low ESR.
    • Operated control: No.
    • Sourcing plan: distributor lookup: EEEFK1E151P
  • Ceramic MLCC Capacitors (1210 SMD)

    • Identity: High-capacitance ceramic MLCCs in 1210 (3225 metric)
    • Quantity: 2 total across 2 distinct values:
      • 4.7 µF, 100 V, X7S (Qty 1): C3 (Murata GRJ32DC72A475KE11L, soft termination, 100 V rating required for PV input bypass up to 55 V)
      • 10 µF, 25 V, X7R (Qty 1): C15 (Samsung CL31A106KAHNNNE, bypasses input to LMR33630)
    • Footprint/package: 1210 SMD (3.2 mm × 2.5 mm; KiCad footprint C_1210_3225)
    • Electrical constraints: C3 must be rated ≥ 100 V due to 55 V solar open circuit spikes; C15 must be rated ≥ 25 V.
    • Substitution latitude: Any 1210 MLCC meeting the stated capacitance, voltage, and X7R/X7S dielectric requirements.
    • Operated control: No.
    • Sourcing plan: distributor lookup: GRJ32DC72A475KE11L (for C3) and distributor lookup: CL31A106KAHNNNE (for C15)
  • Ceramic MLCC Capacitors (1206 SMD)

    • Identity: Samsung CL31B226MPHNNNE (ceramic MLCC, 22 µF, 10 V, 20%, X7R dielectric)
    • Quantity: 4
    • References: C20, C21, C36, C40
    • Footprint/package: 1206 SMD (3.2 mm × 1.6 mm; KiCad footprint C_1206_3216)
    • Electrical constraints: Capacitance 22 µF, voltage rating ≥ 10 V. Output filtering bank for the 5.12 V USB power supply rail (total parallel capacitance 88 µF).
    • Substitution latitude: Any 1206 ceramic MLCC rated 22 µF, ≥ 10 V, X5R or X7R.
    • Operated control: No.
    • Sourcing plan: distributor lookup: CL31B226MPHNNNE
  • Ceramic MLCC Capacitor (0805 SMD)

    • Identity: Yageo CC0805KKX7R9BB105 (ceramic MLCC, 1.0 µF, 50 V, 10%, X7R dielectric)
    • Quantity: 1
    • Reference: C14
    • Footprint/package: 0805 SMD (2.0 mm × 1.25 mm; KiCad footprint C_0805_2012)
    • Electrical constraints: Sits on input of L2 filter for the 5V buck stage.
    • Substitution latitude: Standard 1.0 µF 50 V X7R 0805 capacitor.
    • Operated control: No.
    • Sourcing plan: distributor lookup: CC0805KKX7R9BB105
  • Ceramic MLCC Capacitors (0603 SMD)

    • Identity: Surface mount MLCC capacitors in 0603 imperial (1608 metric)
    • Quantity: 33 total across 6 distinct capacitance values:
      • 100 pF, 50 V, NP0/C0G (Qty 1): C35 (Yageo CC0603JRNPO9BN101; noise bypass for AP2210 BP pin)
      • 1 nF, 50 V / 100 V, NP0/C0G (Qty 3): C6, C11, C13 (Murata GRM1885C2A102JA01D; C6 filters SW_NODE; C11/C13 filter current sense inputs)
      • 10 nF, 100 V, X7R (Qty 10): C4, C7, C8, C17, C18, C27, C28, C37, C41, C44 (Murata GCM188R72A103KA37D, automotive grade; BOM notes 100 V rating is standard though 50 V is acceptable for C41/C44)
      • 100 nF, 50 V, X7R (Qty 12): C9, C10, C19, C24, C25, C26, C30, C31, C32, C39, C42, C43 (Yageo CC0603KRX7R9BB104; standard decoupling across MCU VDD rails, gate driver bootstrap C10, and USB/reset circuits)
      • 220 nF, 25 V, X7R (Qty 1): C29 (Murata GCM188R71E224KA55D; VCC decoupling for U9 LMR33630)
      • 2.2 µF, 25 V, X5R / X7R (Qty 5): C12, C23, C33, C34, C38 (Murata GRM188R61E225KA12D; C12 decouples LM5109 VDD; C23 decouples AP2210 input; C38 decouples AP2210 output; C33/C34 decouple MCU supply)
    • Footprint/package: 0603 SMD (1.6 mm × 0.8 mm; KiCad footprint C_0603_1608)
    • Substitution latitude: Standard 0603 MLCCs matching stated capacitance, dielectric, and voltage ratings.
    • Operated control: No.
    • Sourcing plan: distributor lookup (representative example — sources give spec only): CC0603KRX7R9BB104

Status Light-Emitting Diodes (LEDs)

  • Yellow Status Indicator LEDs

    • Identity: Lite-On LTST-C191KSKT (surface mount yellow LED, 591 nm, clear lens, 0603 SMD)
    • Quantity: 3
    • References: LED1, LED2, LED3
    • Footprint/package: Dual footprint accommodating 0603 SMD and 3.0 mm through-hole (KiCad footprint LED_0603_D3.0mm)
    • Electrical constraints: Forward voltage ~2.0 V, continuous current ≤ 20 mA. Driven via MCU pins PB2, PB13, PB14 in a Charlieplexed configuration through ballast resistors R14 and R15 (470 Ω).
    • Substitution latitude: Alternative listed in BOM is Lite-On LTL-1CHY (3 mm radial through-hole). Any standard yellow 0603 SMD or 3 mm radial LED is acceptable.
    • Operated control: No.
    • Sourcing plan: distributor lookup: LTST-C191KSKT
  • Green Status Indicator LEDs

    • Identity: Lite-On LTST-C190KGKT (surface mount green LED, 571 nm, clear lens, 0603 SMD)
    • Quantity: 2
    • References: LED4, LED5
    • Footprint/package: Dual footprint accommodating 0603 SMD and 3.0 mm through-hole (KiCad footprint LED_0603_D3.0mm)
    • Electrical constraints: Forward voltage ~2.1 V, continuous current ≤ 20 mA. Driven via Charlieplexing network from MCU.
    • Substitution latitude: Alternative listed in BOM is Lite-On LTL-4231 (3 mm radial through-hole). Any standard green 0603 SMD or 3 mm radial LED is acceptable.
    • Operated control: No.
    • Sourcing plan: distributor lookup: LTST-C190KGKT

Connectors and Headers

  • High-Current Screw Terminal Blocks (Solar, Battery, Load)

    • Identity: Phoenix Contact 1714971 (MKDS 5/2-9,52; 2-position through-hole PCB terminal block with screw connection, pitch 9.52 mm, rated 32 A / 690 V)
    • Quantity: 3
    • References: J1 (Solar input), J2 (Load output), J3 (Battery connection)
    • Footprint/package: 2-pin through-hole, 9.52 mm pitch (KiCad footprint Phoenix_Contact_MKDS_5-2-952)
    • Electrical constraints: Must support continuous currents up to 10 A (short circuit / surge to 25 A) and accept wire gauges from 2.5 mm² to 6.0 mm² (AWG 10).
    • Substitution latitude: Any 2-position heavy-duty PCB screw terminal block with 9.52 mm (0.375 in) pin spacing rated ≥ 25 A and accepting up to 6 mm² wire.
    • Operated control: No (wire terminal).
    • Sourcing plan: distributor lookup: 1714971
  • Stacked Dual USB Type-A Receptacle

    • Identity: CUI Devices UJ2-ADH-1-TH (dual stacked USB Type-A female receptacle, horizontal through-hole, right-angle)
    • Quantity: 1
    • Reference: J5
    • Footprint/package: Dual USB Type-A horizontal stacked through-hole (KiCad footprint USB_A_Wuerth_61400826021_Horizontal_Stacked)
    • Electrical constraints: Rated 5 V, up to 1.5 A fast charging on top port and 500 mA on bottom port (with USB_DP and USB_DM data connected to MCU).
    • Substitution latitude: Alternative listed in BOM is Würth Elektronik 61400826021. Any shielded, stacked 2-port USB Type-A horizontal through-hole receptacle matching this standard footprint.
    • Operated control: Yes (mating interface for USB charging cables).
    • Sourcing plan: distributor lookup: UJ2-ADH-1-TH
  • RJ25 / 6P6C Modular Jack (LS.one Interface & External Sensor)

    • Identity: Würth Elektronik 615006138421 (RJ25 modular jack, 6P6C, right-angle, tab-up, through-hole)
    • Quantity: 1
    • Reference: J7
    • Footprint/package: RJ25 6P6C Tab-Up through-hole (KiCad footprint RJ25_6P6C_TabUp)
    • Electrical constraints: Carries USART1 signals (TX, RX), power, and external NTC temperature sensor input.
    • Substitution latitude: Alternative listed in BOM is Pulse Electronics E5566-Q0LK22-L. Any standard 6-position 6-contact (6P6C) right-angle tab-up RJ12/RJ25 modular jack.
    • Operated control: Yes (modular plug interface).
    • Sourcing plan: distributor lookup: 615006138421
  • UEXT Expansion Connector

    • Identity: On Shore Technology Inc. 302-S101 (shrouded boxed pin header, 2×5 position, 2.54 mm pitch, straight through-hole)
    • Quantity: 1
    • Reference: J4
    • Footprint/package: 2×5 straight boxed header, 2.54 mm pitch (KiCad footprint Box_Header_2x05x2.54mm_Straight)
    • Electrical constraints: Carries +3.3V (pin 1), GND (pin 2), USART2, I2C1, and SPI1 buses for external OLED display, Wi-Fi, or CAN modules.
    • Substitution latitude: Standard 10-pin (2×5) 2.54 mm pitch boxed or unboxed pin header (e.g. Molex 70246-1001).
    • Operated control: No (expansion header).
    • Sourcing plan: distributor lookup: 302-S101
  • Auxiliary 12V Output Connector

    • Identity: JST B2B-XH-A (LF)(SN) (XH series 2-pin vertical shrouded through-hole header, 2.50 mm pitch)
    • Quantity: 1
    • Reference: J6
    • Footprint/package: JST XH 2-pin vertical (KiCad footprint JST_XH_B02B-XH-A_1x02_P2.50mm_Vertical)
    • Electrical constraints: Supplies +12V battery power rail and GND to external low-power peripherals.
    • Substitution latitude: Standard JST XH 2.50 mm 2-pin vertical header.
    • Operated control: No.
    • Sourcing plan: distributor lookup: B2B-XH-A(LF)(SN)
  • STM Nucleo SWD Debug Connector

    • Identity: Harwin M20-9990546 (standard unshielded vertical pin header, 1×5 position, 2.54 mm pitch)
    • Quantity: 1
    • Reference: J8
    • Footprint/package: 1×5 vertical pin header, 2.54 mm pitch (KiCad footprint PinHeader_1x05_P2.54mm_Vertical)
    • Electrical constraints: Pinout: 1: VCC (+3.3V), 2: SWCLK, 3: GND, 4: SWDIO, 5: NRST.
    • Substitution latitude: Any standard 0.1 inch (2.54 mm) break-away 1×5 male header.
    • Operated control: No.
    • Sourcing plan: distributor lookup: M20-9990546

Support Hardware, Non-BOM Components, and Controls

  • Bootloader Pushbutton Switch (Schematic Sheet 3)

    • Identity: Normally-open momentary tactile pushbutton switch (described in schematic note: "BUTTON can trigger bootloader if pulled high before reset. Duration of high input on BOOT0: tau = R35 * C43 ... t = 12 ms").
    • Quantity: 1 (optional / off-board / surface pad)
    • Reference: Unlabeled on schematic sheet 3; connected between +3.3V / BOOT0 node and GND through R7/R33/R35/C43.
    • Footprint/package: Unspecified in BOM; accessible via PCB test point or SMD tactile switch pads.
    • Electrical constraints: Momentary contact rating ≥ 20 mA, 12 V DC.
    • Operated control: Yes. When students or operators want to invoke the internal STM32 ROM bootloader via UART/USB without an ST-Link debugger, this tactile button must be pressed during power-up or reset.
    • Substitution latitude: Any SPST momentary normally-open miniature pushbutton or solder jumper.
    • Sourcing plan: distributor lookup (representative example — sources give spec only): PTS645SM43SMTR92 LFS
  • PCB Mounting Hardware

    • Identity: M3 mounting holes, unplated/plated to chassis ground
    • Quantity: 4
    • References: MK1, MK2, MK3, MK4 (indicated on schematic sheet 1)
    • Footprint/package: Mounting hole for M3 screw, 3.2 mm drill diameter
    • Electrical constraints: Connected to system GND.
    • Substitution latitude: Standard M3 nylon or brass standoffs and screws.
    • Operated control: No.
    • Sourcing plan: distributor lookup (representative example — sources give spec only): 970060365
  • PCB Test Points

    • Identity: Surface mount miniature test point loops / copper pads
    • Quantity: 8
    • References: TP1 (+12V), TP2 (Gate HS), TP3 (Gate LS), TP4 (I_DCDC), TP5 (I_LOAD), TP6 (DAC reference), TP7 (GND), TP9 (+3.3V)
    • Footprint/package: Surface mount test point loop or bare pad (KiCad footprint Test_Point_Probe)
    • Substitution latitude: Keystone 5015 surface mount test point loops or bare test probe lands.
    • Operated control: No.
    • Sourcing plan: distributor lookup (representative example — sources give spec only): 5015
  • Enclosure (IP20 Protection)

    • Identity: Custom 3D printed housing mentioned in manual_specifications.md ("Protection class: IP 20 with housing (3D files available)")
    • Quantity: 1
    • Footprint/package: Custom plastic shell accommodating PCB dimensions with cutouts for screw terminals J1-J3, USB J5, RJ25 J7, and LED indicators.
    • Sourcing plan: general web research: "Libre Solar MPPT 1210 HUS 3D printable enclosure STL files"

Software and network dependencies

The Libre Solar MPPT 1210 HUS relies on an embedded real-time firmware application built on the Zephyr RTOS ecosystem. It contains external module dependencies, SDKs, and build tool requirements declared across repository manifests and documentation.

  • Zephyr RTOS Core Platform

    • Name: zephyr
    • Repository: https://github.com/zephyrproject-rtos/zephyr
    • Version: v4.4-branch
    • Where the version came from: pinned in west.yml (revision: v4.4-branch under zephyrproject remote)
    • Whether versions are pinned at all: Unpinned to a frozen release tag or commit hash; it tracks the floating branch head of v4.4-branch. Real finding: downstream builds can break if breaking changes land on v4.4-branch.
    • Manifest location: west.yml
    • Imported submodules: cmsis_6, edtt, hal_stm32, zcbor (imported via allowlist in west.yml without independent commit pins).
    • Check plan: support-status lookup: Zephyr RTOS v4.4-branch
  • ThingSet Zephyr SDK

    • Name: thingset-zephyr-sdk
    • Repository: https://github.com/ThingSet/thingset-zephyr-sdk
    • Version: 8b32f7db1898dc51daa1834b3f8058de6a67166f
    • Where the version came from: pinned in west.yml (revision: 8b32f7db1898dc51daa1834b3f8058de6a67166f)
    • Whether versions are pinned at all: Yes, pinned to a specific 40-character Git commit hash.
    • Manifest location: west.yml
    • Imported submodules: thingset-node-c, zcbor (imported via allowlist).
    • Check plan: not checkable: commit-pinned embedded SDK repository with no ecosystem advisory registry.
  • OLED Display Library Module

    • Name: oled-display-library
    • Repository: https://github.com/LibreSolar/oled-display-library
    • Version: 523b26c103de56714fcda655702d600870a671bc
    • Where the version came from: pinned in west.yml (revision: 523b26c103de56714fcda655702d600870a671bc)
    • Whether versions are pinned at all: Yes, pinned to a specific 40-character Git commit hash.
    • Manifest location: west.yml (destination path: modules/oled-display)
    • Check plan: not checkable: commit-pinned private C library without a public advisory registry.
  • Unity Unit Testing Framework

    • Name: unity
    • Repository: https://github.com/ThrowTheSwitch/Unity
    • Version: 74cde089e65c3435ce9aa87d5c69f4f16b7f6ade
    • Where the version came from: pinned in west.yml (revision: 74cde089e65c3435ce9aa87d5c69f4f16b7f6ade)
    • Whether versions are pinned at all: Yes, pinned to a specific 40-character Git commit hash.
    • Manifest location: west.yml (destination path: modules/unity)
    • Check plan: vulnerability lookup: ThrowTheSwitch unity / GitHub / 74cde089e65c3435ce9aa87d5c69f4f16b7f6ade
  • Host Build and Documentation Toolchain

    • Components: Zephyr west meta-tool, CMake (≥ 3.20), Ninja, Python 3, Doxygen, Sphinx, Breathe.
    • Where the version came from: stated in documentation (ccfw_README.md instructs running make html with Doxygen, Sphinx, and Breathe; west usage documented in Zephyr workflows); versions are not stated.
    • Whether versions are pinned at all: Unpinned. Host utilities are installed via unpinned system packages (apt install or pip install).
    • Check plan: not checkable: version not stated.
  • Network Exposure:

    • The base PCB does not integrate an onboard Ethernet physical layer (PHY), Wi-Fi transceiver, or Bluetooth radio.
    • Communication and telemetry are conducted over physical serial buses: the 6P6C LS.one interface J7 (USART1), the UEXT connector J4 (carrying USART2, I2C1, and SPI1), and the lower port of stacked USB receptacle J5 (interfaced directly to STM32L072 USB Full-Speed device pins PA11 and PA12).
    • Protocol: Telemetry, configuration, and battery setpoints are communicated via the ThingSet protocol (a lightweight text/binary protocol formatted in JSON or CBOR over serial/USB gadget endpoints).
    • Listening network ports, IP services, web servers, SSH daemons, and default network credentials are not present on the standalone board; any IP network exposure is contingent on user-added UEXT Wi-Fi / Ethernet daughterboards, which are not stated in the sources.

Downloads, External URLs, and Project Repositories


Fabrication and Manufacturing Specifications

  • Board CAD and Schematic Tool: KiCad E.D.A. version 5.1.9 (File: mppt-1210-hus.sch, Sheet Revision: 0.7.1, Date: 2021-05-02).
  • PCB Layer Count: Native Gerber files (.gbr) and raw board layout files (.kicad_pcb) were not included in the source upload. However, based on the high-side buck converter layout, current traces carrying 10 A continuous current, and thermal via stitching underneath U9 (SO-PowerPAD-8) and MOSFETs Q1/Q4, this board requires at minimum a 2-layer (or 4-layer recommended) FR4 PCB stackup with 2 oz (70 µm) outer copper thickness to limit trace heating and thermal rise.
  • Mounting Holes: 4 mounting holes (MK1, MK2, MK3, MK4) sized for M3 fasteners located at board corners, tied to system GND.
  • Physical Dimensions: Not explicitly stated in provided schematics; bounded by the footprint layout of the 16 mm horizontal electrolytic capacitor C1, 32 mm toroidal inductor L1, and Phoenix Contact MKDS terminals J1-J3.