edakit documentation

LIM limits

Every quantity within its limit – 10 codes.

Each engine decides one kind of relation; a finding's code is ENGINE.relation. Severities are the catalog's defaults – a project's domains may set others; a grade is a sub-case with its own severity, a topic the part of a code a domain switches on.

LIM.v voltage within its limit

errorpolarized: warninginject: warningpowered: warningorder: warning

Every voltage a part sees stays within the limit of its entry: across a capacitor, reverse across a polarized capacitor (vr_max_v, grade polarized), a pin above the supply it refers to – the pin's v_rel_max_v against the pin its ref names (null: none, a pin rated above its supply), else the part's vin_rel_max_v for its inputs, bidirectional pins and outputs against its supply; where the pin gives i_inject_max_a and only resistors feed it, the current its clamp takes against that (grade inject) –, reverse across a diode or LED – a TVS (values tvs) against its working voltage, a bidirectional one (values tvs "bidirectional") either way, and the rail of an ESD array (kind esd_array) against its stand-off vrwm_max_v, both without the derating factor –, VCE, VEB, VDS, VGS, on a pin (v_max_v; v_max_powered_v while the part is powered, v_max_v unpowered: grade powered; the pin's v_min_v, else an active pin not below −0.3 V, a negative rail's supply pin – role vee – excepted; against the part's own ground pin where that is not the board's ground), one supply not above another the entry orders (supply_order, grade order), on a fuse, switch, resistor or connector, and every limit a transient run sets on a net. Stage G takes the declared net ranges times the derating factor (1.5 on capacitors and semiconductors) – not the reverse voltage of a coupling capacitor in a signal path (a side on a net marked signal or instrument), whose range extremes never coincide, and across a capacitor with both sides on such nets the larger difference of the ranges' like ends (top against top, bottom against bottom: its sides carry the same signal) –, stage E the simulated value against the derated limit. A net marked isolated (a MIDI-in loop, the far side of an optocoupler) has a range of its own loop: a pin there is held to it only where its part has a ground pin on an isolated net too. A net marked ac carries a sine whose range is its peaks, and AC nets move together: a part or pin with an AC rating (v_rms_max_v – a mains terminal, a varistor, a mains module's input) is held there to the rms, peak / √2, in place of its DC rating, and a resistor or varistor between two AC nets to the difference of their like ends.

  • voltage domains: every net's range within v_max_v of every pin on it – finds e.g.: a 5-V signal on a 3.3-V GPIO
  • AC nets (net ac): a part's or pin's v_rms_max_v holds the rms of what it sees there, peak / √2, in place of its DC rating; a resistor or varistor between two AC nets sees the difference of their like ends – finds e.g.: a varistor rated 250 V AC on 230 V + 10 %
  • voltage ratings with margin: capacitors (×1.5), diodes VRRM (×1.5), BJT VCEO, MOSFET VDS/VGS (×1.5), fuses, switches, connectors – finds e.g.: a 6.3-V capacitor on a 5-V rail
  • stress of every part against its ratings with derating: the power of resistors, transistors and LEDs ≤ 50 %, currents ≤ 80 %, capacitor/diode/transistor voltages ≤ 67 %, LED forward current, reverse voltage and power (VF × IF), fuse hold current at ambient, connector, switch and relay contact current, relay coil voltage, the current of every MCU output (gpio_i_max_a) and of all outputs together, sourced and sunk (gpio_i_total_max_a) – each pin may be fine and the sum beyond the package; the junction temperature of every part with rth_ja_k_per_w against its tj_max_c, and on a board of touch_c against the touch limit (5.3)
  • transient limits: in every run of transients each limit of its expect – a net's lowest voltage ≥ min_v, highest ≤ max_v, a source's peak current ≤ i_max_a – and every MCU's supply pin, once it has reached its vin_min_v (vsys_min_v), never below it again before the run ends; actual value with the time it occurs ("2.985 V at 1.3 ms")
Why
A part at its absolute maximum is at the edge of failure; ceramic capacitors lose capacitance and lifetime near their rated voltage, an input beyond its supply conducts through its protection diodes. The margin covers what a DC view does not see.
What to do
A part with a higher rating, level shifting at a pin, or a correct (less pessimistic) net range v.
Sources
  1. ST USBLC6-2, Doc ID 11265 Rev 5, table 2: VRM 5.25 V (IRM 150 nA max), VBR min 6 V – an ESD array's rail against its stand-off
  2. the datasheet of each part: absolute maximum ratings, entered as vmax per pin
  3. TI SLAA689B, ESD Diode Current Specification (December 2015, revised August 2021), sections 2 and 3, p. 2–4: the ±2 mA maximum ESD diode current of MSP microcontrollers is a constant current through the protection to the supply rails; above the supply a pin is allowed as long as a series resistance holds that current, and the current that flows back-powers the supply – https://www.ti.com/lit/an/slaa689/slaa689.pdf, read 2026-10-31 (grade inject, i_inject_max_a; maker-coverage CK-5)
  4. edakit handbook 5.3 (derating.p of sim.json, the margins pytree kept)
  5. edakit handbook 5.3
  6. the datasheet of each part: ratings in its parts entry (MCU: gpio_i_max_a, gpio_i_total_max_a; rth_ja_k_per_w, tj_max_c)
  7. edakit handbook 5.2 (transient runs) and 5.3
  8. ngspice User's Manual, independent sources: PWL(T1 V1 T2 V2 …) holds V1 before T1; .tran starts from the DC operating point unless uic is given
  9. Open design espurna-h (2026-11-03, handbook 19.5): the KF301 terminals rated 300 V AC, the HLK-PM01's input 85 … 265 V AC and the 5 × 470 kΩ divider were held to the 358 V peak of the mains as if both were DC

Replaces G-3, G-8, E-2, E-5

LIM.hazardous hazardous voltage recognised, not checked

errorground: error

Every net's declared voltage range stays within the ES1 limit of IEC 62368-1 (60 V DC, catalog/tables/iec62368.toml); a net beyond it is hazardous voltage, and the finding says that edakit checks neither its spacing nor its isolation. An AC net is judged by its peak against the DC limit while the AC limit is not read. The board's ground joined to a mains terminal's line or neutral pin – straight, through a 0 Ω bridge, a fuse, a switch, a button, an inductor, a diode or a resistor up to 100 Ω – puts every net at mains potential against earth, while every range is against that ground (grade ground).

Why
edakit's checks are made for safety extra-low voltage. Above the ES1 limit a fault is a shock or a fire, the safeguards – creepage, clearance, insulation, the mains input – are the standard's and a test lab's, and edakit measures none of them; a board with such a net that passed every check would look checked where it was not. So edakit says it, once per net, as an error a project must accept on purpose (rules-at-scale.md, decision 7).
What to do
Keep the hazardous voltage off the board – a bought, certified supply that hands the board only safety extra-low voltage – or accept the finding on the net with its reason ("mains only on the bought relay module's terminals, enclosure IP40") and have the safeguards reviewed outside edakit (domain mains: the reviewers' questions).
Sources
  1. W. Zhang, T. LaBella: Demystifying clearance and creepage distance for high-voltage end equipment, TI Power Supply Design Seminar SLUP421: '60 V – ES1 limit', '120 V – ES2 limit' (IEC 62368-1) – https://www.ti.com/lit/pdf/SLUP421
  2. rules-at-scale.md, decision 7 (2026-10-31): mains and hazardous voltage recognised, not checked; maker-coverage CK-22
  3. Open design espurna-h (2026-11-03, handbook 19.5): R42 (0 Ω) ties GND to the line, as the HLW8012 requires – the ESP-12F and the headers sit at mains potential against earth, and every range against GND looked safe

LIM.i current within its limit

errormargin: warningcell: warningsupply_pin: warningcharge: warningpin: warningswitching: warningcc: warningstrip: warningcable: warning

Every current stays within its limit: through resistors, fuses (below the derated hold current), switches, connectors and cables, LEDs, diodes, collector and drain, an MCU's outputs per pin and together, a regulator's output, a supply's limit (sim.json sources); a contact's current within its rating per contact (i_contact_max_a – a supply's current at a connector shared among the connector's pins on the supply's net) and, while the contact of a switch, button, DIP switch or relay is closed, within what it may break when it opens (i_switch_max_a, grade switching); and what a fuse lets pass – its hold current at the lowest ambient – within every connector, switch and cable it protects (i_max_a, i_contact_max_a). A linear charger's programmed current (values prog_v over the resistors from its PROG pin to ground – one behind a switch or solder jumper on PROG in the position that programs the most) within its own i_out_max_a and the i_charge_max_a of the cell on its battery pin – the cell state of that battery holder in any supply scenario – grade charge; with behaviour charger the simulation's charge current (precondition, float voltage and the pass element's headroom included) the same way; a constant-current LED driver's set current – the top of its sense voltage over R_S (vsense_v) – within its own i_out_max_a, and the inductor of its string saturating above the peak current, the set current × (1 + ripple_ratio / 2), within its i_sat_a (grade cc); and a pin's own current within its i_max_a, a group of pins' sourced and sunk sums within the entry's i_group_max_a, where the operating point gives them (grade pin); the current of every wire of a cable that feeds an LED strip within the cable's i_max_a, and of every feed at a strip's pin within that pin's i_max_a (grade strip); the current of every wire of a cable between boards within the cable's i_max_a – the rating per wire from the cable's own datasheet, none derived from its gauge (grade cable).

  • contacts: i_contact_max_a is what a closed contact carries (a connector's current rating per circuit), i_switch_max_a what it breaks when it opens (a switching or electrical-life rating) – the simulation holds the current through every closed contact to both; i_max_a stays the rating a datasheet gives without saying which – finds e.g.: a DIP switch rated 25 mA 24 V DC for its electrical life that closes a 120 Ω termination on a driven bus
  • fuse against what it protects: the hold current of every fuse (i_hold_a; at the lowest ambient ambient_min_c of sim.json from i_hold_vs_temp) is at most the i_max_a of every connector, switch and cable its current flows through – its own nets and on through fuses and switches; a trip current (i_trip_a) above it is a warning – finds e.g.: a 1.5-A polyfuse in front of a connector rated 1.25 A, an overload that heats the contacts instead of tripping the fuse
Why
A part above its current heats and wears; a connector rated below a fuse's hold current carries an overload the fuse never stops. A switch carries more than it can break: a DIP switch rated 25 mA for switching arcs and wears when it opens 100 mA. A supply above its limit drops out or switches off. A charger's PROG resistor copied from a module charges a small cell at 1 A – 2 to 7 C on a 150–500 mAh cell (maker-coverage PWR 1).
What to do
A part with a higher rating, a fuse with a lower hold current, a driver between an MCU and its load, or less load. A trip current above a rating accepted on purpose: accept LIM.i/margin on the fuse with the reason.
Sources
  1. China Resources Powtech PT4115 data sheet PT4115_DS Rev EN_2.9, p. 3 mean current sense threshold A type 95 / 98 / 101 mV, p. 4 continuous SW current 1.2 A, p. 11 'IOUT = 0.1 / Rs (Rs ≥ 0.082Ω)', p. 12–13 on-time equation TON = L × ΔI / (VIN − VLED − Iavg × (Rs + rL + Rsw)), Rsw 0.6 Ω nominal, ΔI internally 0.3 × Iavg – LCSC's copy for C84512, https://datasheet.lcsc.com/datasheet/pdf/710aeebb569349bc814ba1f6ba8cbef1.pdf (grade cc)
  2. Diodes Incorporated AL8860 data sheet DS39014 Rev. 8 - 2 (April 2026), p. 3 continuous output current TSOT25 1 A, p. 4 VSENSE 96 / 100 / 104 mV and maximum duty cycle 98 %, p. 11 IOUT_NOM = 0.1 / RS, p. 13 the same on-time equation, RSW 0.3 Ω nominal, ΔI internally 0.40 × ILED – https://www.diodes.com/assets/Datasheets/AL8860.pdf (grade cc)
  3. Microchip MCP73831/2 data sheet DS20001984H (2005–2020), 5.1.2 Current Regulation Set (PROG): IREG = 1000 V / RPROG (kΩ → mA); programmable charge current 15–500 mA; RPROG range 2–67 kΩ – https://ww1.microchip.com/downloads/en/DeviceDoc/MCP73831-Family-Data-Sheet-DS20001984H.pdf (grade charge)
  4. TOPPOWER TP4056 datasheet REV_2.4, PROG pin and Programming Charge Current: IBAT = (VPROG / RPROG) × 1100, VPROG 1 V in constant-current mode; 1000 mA at RPROG 1.1 kΩ – read from LCSC's copy for C16581, https://datasheet.lcsc.com/datasheet/pdf/d328ee101cbb1f3719611cd61db479c2.pdf; other makers' TP4056 state 1200 V, so prog_v belongs to the entry (grade charge)
  5. PTTC SMD1206 HF Series, Rev. K (2017-01-03), p. 2: Ihold = maximum current the device passes without tripping, Itrip = minimum current at which it trips (23 °C still air); p. 4: thermal derating, SMD1206P150TFT 2.20 A at -40 °C, 1.50 A at 23 °C, 0.84 A at 85 °C – https://datasheet.lcsc.com/datasheet/pdf/c142bd6abe50067c0e2abbe967f2fcb5.pdf?productCode=C495353
  6. Lesson of pytree (D-31/D-32, 2026-10-20): F1 (hold 1.5 A, trip 3.0 A) in series with two JST PH connectors rated 2 A – the trip current above the contacts, judged acceptable by argument only, recorded by no check
  7. edakit handbook 5.3
  8. the datasheet of each part: ratings in its parts entry (MCU: gpio_i_max_a, gpio_i_total_max_a; rth_ja_k_per_w, tj_max_c)
  9. Espressif ESP32 Series Datasheet v5.3: table 5-4, transmit 802.11b DSSS 1 Mbps at +19.5 dBm 240 mA (50 % duty cycle), receive 95–100 mA; table 4-2, modem-sleep (radio off) 20–68 mA for the dual-core chips
  10. Universal Serial Bus Specification Revision 2.0 (April 27, 2000), 7.2.4.1 Inrush Current Limiting: at most 10 µF in parallel with 44 Ω at the downstream end of a cable
  11. Kingtek drawing DSHP01TSGER rev A (03/20/12), notes 1: '4>Electricalife Life:1000cycles 25mA 24VDC' – a switching rating without a carrying current (grade switching; LCSC's copy for C126848)
  12. JST XH connector catalogue, p. 1: 'Current rating: 3 A AC, DC (AWG #22)' – per contact (i_contact_max_a; LCSC's copy for C158012)
  13. rules-at-scale.md, decision 22 (2026-10-31): a wire's current rating from the datasheet of the wire itself, i_max_a on the cable, no table by gauge; a cable that carries current without it is named by edakit check --coverage with its loss per metre (grade cable; maker-coverage FT-2)

Replaces G-17, E-2, E-3, E-5

LIM.p power within its limit

error

Every part's dissipation stays within the derated p_max_w of its entry (sim.json derating p, 50 % by default) at the operating point of every scenario: a resistor's I²R, a transistor's VCE × IC + VBE × IB, a MOSFET's VDS × ID, a JFET's VDS × ID + VGS × IG, an LED's forward voltage × forward current – each colour of an RGB LED against its colour's p_max_w where its entry gives the limits per colour.

Why
Derating buys lifetime and covers worst-case supply, tolerance and ambient that a DC analysis does not see.
What to do
A part with a higher rating, another value, or another operating point.
Sources
  1. edakit handbook 5.3
  2. the datasheet of each part: ratings in its parts entry (MCU: gpio_i_max_a, gpio_i_total_max_a; rth_ja_k_per_w, tj_max_c)
  3. edakit handbook 17.6 and walkthrough-gaps.md, A1 (2026-10-31): the walkthrough's D1 (NationStar NCD0805R1, PD 65 mW) had LIM.p rows for R1 only – an LED below its if_max_a and above its p_max_w passed

Replaces E-2

LIM.t temperature within its limit

error

Every part whose entry gives rth_ja_k_per_w stays at or below its junction limit (its tj_max_c, at most the criteria's) at the ambient of sim.json, and on a board people touch (touch_c) at or below the touch limit.

Why
Heat is what kills parts and burns fingers; a part in the open air can still reach its junction limit.
What to do
Lower the dissipation (a lower RDS(on), a second part, less current), more copper, or a part with a lower thermal resistance.
Sources
  1. edakit handbook 5.3
  2. the datasheet of each part: ratings in its parts entry (MCU: gpio_i_max_a, gpio_i_total_max_a; rth_ja_k_per_w, tj_max_c)
  3. UL, IEC 62368-1 Technical Brief: Touch Temperature Limits (Flore Chiang, October 22, 2010), pp. 3–4: TS1 limits derived from table 42 of IEC 62368-1, based on ISO 13732-1:2006 – metal / plastic and rubber: longer than 1 min 48 / 48 °C, 10 s to 1 min 51 / 60 °C, 1–10 s 60 / 77 °C, less than 1 s 70 / 94 °C; TS2 10 K higher
  4. AOS AO3401A Rev 3.1 (December 2023), as in edakit/parts/C15127.json: RθJA 125 K/W, TJ max 150 °C, PD 0.9 W at 70 °C
  5. ngspice: the drain current @m[id] of a MOSFET includes its body diode (@m[ibd]) – a level-1 AO3401A with its gate at its source and 5.4 V at its drain gives @m[id] = −0.947 A = @m[ibd]
  6. Diodes Incorporated DS39724 Rev. 2-2 (AP2112, June 2017), Absolute Maximum Ratings: θJA 184 °C/W in SOT25 without heatsink, TJ +150 °C – the LDO of the LILYGO T-Display, which carries the ESP32's own current

Replaces E-2, E-3

LIM.range supplied inside the operating range

erroropamp: warninggate: warningadc: warningclock: warningmin_load: warningphotomos: warningcc: warningstrip: warning

Every part with an operating range – vdd_op_min_v … vdd_op_max_v, a pin's v_op, vin_min_v of a regulator, module or MCU, a relay's must-operate and must-release voltage, a driver output's knee – is supplied inside it in every scenario, measured at its own ground pin – a supply within 0.5 V of that ground is a part switched off, a power switch open, and a row of information –, and an MCU's supply never falls below its minimum again once it has reached it (transient runs). An op-amp's inputs stay inside its common-mode range (vicm_v) and its outputs inside their swing (vout_swing_v) unless it is a comparator – grade opamp. A MOSFET switch is off or on at a VGS its RDS(on) is specified at, not in between (rds_on_max_ohm as a table of VGS, vgs_th_v), the drive taken in the device's sense – VSG for a P-MOSFET, a gate driven the other way is off – grade gate. An ADC pin's voltage stays inside the converter's window (adc.range_v) – grade adc. A regulator that needs a minimum load to regulate (i_load_min_a – LM317, AMS1117) is loaded at least that much – grade min_load. A photo-MOS output's LED current is either at its turn-on current or above (if_on_a: guaranteed on) or at its turn-off current or below (if_off_a: guaranteed off) – in between the datasheet promises neither – grade photomos. A constant-current LED driver's input stays above what its string needs – the voltage across R_S, the LEDs and the inductor over the maximum duty cycle (duty_max_ratio, else 1), plus the set current through its switch (r_on_ohm): the on-time equation of the PT4115 and AL8860 datasheets – grade cc. An MCU's clock (f_clock_hz) within what its supply allows (f_max_hz), and a bus clock – a net's clock_hz on an SPI clock line (fn spi.sck) or an I2C clock line – at most the highest clock of every device on it (f_sck_max_hz, f_scl_max_hz) and, on I2C, the speed its pull-ups allow with the bus capacitance that is known (tr = 0.8473 · Rp · Cb within the mode's rise time, Cb the pins' c_in_f and a cable's c_pf_per_m × length_m, tracks not counted) – grade clock.

Why
A circuit can stay within every rating and still not work: a regulator without headroom at the low end of the USB voltage, a 5 V-only IC behind a 3.3 V rail, a reset whenever the supply changes, an LM358 at 5 V whose output cannot rise above about 3.5 V or whose inputs leave their common-mode range.
What to do
Supply the part from a rail inside its range, choose a part whose range fits the rail, or bridge the gap (bulk capacitance, a path that conducts before the other lets go). For an op-amp: bias the stage inside its ranges, a rail-to-rail part, or a higher supply.
Sources
  1. China Resources Powtech PT4115 data sheet PT4115_DS Rev EN_2.9, p. 3 mean current sense threshold A type 95 / 98 / 101 mV, p. 4 continuous SW current 1.2 A, p. 11 'IOUT = 0.1 / Rs (Rs ≥ 0.082Ω)', p. 12–13 on-time equation TON = L × ΔI / (VIN − VLED − Iavg × (Rs + rL + Rsw)), Rsw 0.6 Ω nominal, ΔI internally 0.3 × Iavg – LCSC's copy for C84512, https://datasheet.lcsc.com/datasheet/pdf/710aeebb569349bc814ba1f6ba8cbef1.pdf (grade cc)
  2. Diodes Incorporated AL8860 data sheet DS39014 Rev. 8 - 2 (April 2026), p. 3 continuous output current TSOT25 1 A, p. 4 VSENSE 96 / 100 / 104 mV and maximum duty cycle 98 %, p. 11 IOUT_NOM = 0.1 / RS, p. 13 the same on-time equation, RSW 0.3 Ω nominal, ΔI internally 0.40 × ILED – https://www.diodes.com/assets/Datasheets/AL8860.pdf (grade cc)
  3. Panasonic ASCTB133E 202103 (AQY21xGS PhotoMOS): LED operate current IFon max 3 mA, LED turn off current IFoff min 0.3 mA (AQY212GS) at IL 100 mA – the photomos grade
  4. edakit handbook 5.3
  5. Advanced Monolithic Systems AMS1117 datasheet (1A low dropout voltage regulator), Electrical Characteristics: Minimum Load 5 typ / 10 max mA at (VIN − VOUT) = 1.5 V, Note 5 – read from LCSC's copy for C6186, https://datasheet.lcsc.com/datasheet/pdf/e6935943fc6b1bbf350a1a0f3e90dc4a.pdf (grade min_load)
  6. TI SLVS695D (TLC591x, June 2007, revised January 2015), 7.3 Recommended Operating Conditions: VDD 3–5.5 V; VIH 0.7 × VDD … VDD and VIL 0 … 0.3 × VDD for CLK, OE(ED2), LE(ED1) and SDI
  7. TI SLIS032D (TPIC6B595, July 1995, revised April 2025), 5.3 Recommended Operating Conditions: VCC 4.5–5.5 V, VIH ≥ 0.85 VCC, VIL ≤ 0.15 VCC
  8. ST DocID13524 Rev 8 (STP08CP05, August 2018), table 6 Recommended operating conditions: VDD 3.0–5.5 V, VIH 0.7 VDD … VDD + 0.3 V, VIL −0.3 … 0.3 VDD
  9. PL9823 addressable RGB LED, datasheet (one page, copy at shop-archive.boxtec.ch/pub/diverse/P9823.pdf): the input voltage of 4.5 V to 6.5 V
  10. Pololu, Addressable RGB 60-LED Strip, 5V, 1m (WS2812B), item #2549, https://www.pololu.com/product/2549 (read 2026-10-31), Current draw and voltage drop: at full brightness the 60 LED 1 m strip drew 3.0 A and dropped 0.6 V between its input and its output end, the 120 LED 2 m strip 4.7 A and 1.4 V, the 150 LED 5 m strip (30 LEDs/m) 4.1 A and 2.0 V; 'As the voltage drops, RGB LEDs tend to look redder and draw less current'; at most 180 LEDs from a single supply (grade strip – the rail resistance of edakit/parts/Pololu_2549.json is derived from it)
  11. Worldsemi WS2812B data sheet (no revision stated; PDF created 2013-10-31), via Pololu https://www.pololu.com/file/0J705/WS2812B_datasheet.pdf: VDD +3.5~+5.3 V (p. 2); LED forward voltage red 1.8–2.2 V, green 3.0–3.2 V, blue 3.0–3.4 V (p. 4) – where the supply sags, blue and green fade first (grade strip)
  12. edakit handbook 5.2 (transient runs) and 5.3
  13. ngspice User's Manual, independent sources: PWL(T1 V1 T2 V2 …) holds V1 before T1; .tran starts from the DC operating point unless uic is given
  14. Raspberry Pi Pico 2 datasheet: VSYS 1.8–5.5 V – the vsys_min of the example's Pico 2 entry (tests/fixtures/led-bar/hardware/parts/C41407547.json)
  15. NXP UM10204 Rev. 7.0, I2C-bus specification and user manual (1 October 2021), 7.1 Pull-up resistor sizing (p. 50: the bus capacitance is the total capacitance of wire, connections and pins; T = t2 − t1 = 0.8473 × RC between 0.3 VDD and 0.7 VDD) and table 11 (p. 44: fSCL 100 / 400 / 1000 kHz, tr max 1000 / 300 / 120 ns, Cb max 400 / 400 / 550 pF for Standard-mode, Fast-mode, Fast-mode Plus) – https://www.nxp.com/docs/en/user-guide/UM10204.pdf, read 2026-10-31 (grade clock on I2C, catalog tables/i2c.toml)
  16. docs/concepts/done/maker-coverage.md, FT-16 (bus parameters in the firmware contract) and MCU 16 (pull-ups too weak for the bus)

Replaces E-3, E-5

LIM.declared net inside its declared range

error

Every net's simulated voltage lies inside its declared range v (± the criteria's net_range_tol_v); a net marked isolated is not compared – its range is its own loop's, not against this board's ground.

Why
Stage G checks every rating against the declared ranges; a range the simulation exceeds makes those checks pass on numbers that are not true.
What to do
Correct v of the net to what the circuit does, or fix what drives the net outside.
Sources
  1. edakit handbook 5.3

Replaces E-3

LIM.backfeed no supply fed backwards

error

The current into a source against its direction stays at or below its i_back_max_a, into a cell at or below its state's i_charge_max_a (default the criteria's blocking_max_a, 1 mA).

Why
Where two supplies meet, the higher one feeds the lower one wherever nothing blocks: into a PC's USB port, into a primary cell, which may leak or burst.
What to do
A blocking element in the path – a Schottky diode, two P-MOSFETs back to back, an ORing controller.
Sources
  1. Raspberry Pi Pico 2 Datasheet (build d4e0f1799616, 03/07/2026), 5.5 Powering Pico 2: a second supply goes into VSYS through a Schottky diode, with the diodes preventing either supply from back-powering the other; a P-FET in its place needs care, its body diode may conduct
  2. Energizer Alkaline Manganese Dioxide Handbook and Application Manual (©2018), Battery Description, p. 4: in abusive conditions (i.e. charging or electrically shorting) high levels of hydrogen can be produced

Replaces E-3

LIM.eirp radio power within the band's limit

noteunknown: note

A part that transmits stays within the e.i.r.p. limit of each EU band it transmits in (2400–2483.5 MHz 100 mW, 5150–5350 MHz 200 mW, 5470–5725 MHz 1 W): eirp_dbm, else max_dbm at the RF port + antenna_dbi, with the power the firmware keeps where purpose.radio states it. Over the limit, not known, or no bands stated: the firmware keeps the power – the severity follows the purpose.

  • radio power within the band's limit: a part that transmits (compliance.radio with bands_mhz, 4.1) stays within the limit of each EU band it transmits in whose limit is an e.i.r.p. – the band's highest: 100 mW in 2400–2483.5 MHz, 200 mW in 5150–5350 MHz, 1 W in 5470–5725 MHz; its e.i.r.p. is eirp_dbm, else max_dbm (conducted, at the RF port) + antenna_dbi. Over the limit, not known without them, or no bands_mhz: graded by purpose.use (8.1): a warning for a board that is sold ("sale"), information for one built for oneself or given away, or without a purpose – the finding says what the firmware must keep ("the firmware must keep the conducted power at or below 17.0 dBm"); a radio value that is no number an error; accept on the component. A lower limit of a category of device, power density, duty cycle and the e.r.p. bands (433, 868 MHz) stay with the regulatory review M-6 (chapter 15 – support, not legal advice) – finds e.g.: an ESP32 module with an external 3-dBi antenna at its 20.5 dBm: 23.5 dBm e.i.r.p. where 20 are allowed
Why
The EU limits are e.i.r.p.; a datasheet states the power at the chip's RF port. An ESP32's 20.5 dBm read as e.i.r.p. is over the 100 mW of the 2.4 GHz band.
What to do
Fill in antenna_dbi or eirp_dbm; over the limit a lower power the firmware keeps (purpose.radio max_dbm) or an antenna with less gain. Support, not legal advice.
Sources
  1. Espressif, ESP32 Series Datasheet v5.3 (2026-07): 5.4 (its RF measurements are taken at the RF port) and table 5-6 (TX power in 11b mode 18.5/19.5/20.5 dBm min/typ/max; note 3: target TX power is configurable) – https://documentation.espressif.com/esp32_datasheet_en.pdf
  2. BNetzA Vfg. 91/2025 (November 2025), table 2 entries 57a (2400–2483.5 MHz, non-specific short range devices, 10 mW EIRP) and 57c (wideband data transmission devices, 100 mW EIRP), table 3 entry D57c (WLAN, 100 mW EIRP) – https://www.bundesnetzagentur.de/DE/Fachthemen/Telekommunikation/Frequenzen/Allgemeinzuteilungen/_DL/vfg91_2025.pdf
  3. BNetzA Vfg. 136/2022 as amended by Vfg. 49/2023, section 1 (EIRP: the power delivered to the antenna times its gain relative to an isotropic antenna) and tables 1–3 (WAS/RLAN: 200 mW mean EIRP in 5150–5250 and 5250–5350 MHz, 1 W in 5470–5725 MHz) – https://www.bundesnetzagentur.de/DE/Fachthemen/Telekommunikation/Frequenzen/Allgemeinzuteilungen/_DL/MobilfunkDectWlanCBFunk/vfg136_2022.pdf
  4. Lesson of the Christmas bell (tgd1975/automatic_christmas_bell, D-18 from the M-6 reviews of D-16 and D-17): the T-Display's max_dbm 20.5 was the ESP32's conducted maximum, and the review computed 20.5 − 4.32 ≈ 16.2 dBm e.i.r.p. by hand with the antenna gain its parts entry cites

Replaces G-24

LIM.band transmitter in the EU bands

errorfirmware: note

Every range a part transmits in lies within an EU licence-exempt band (433.05–434.79, 863–870, 2400–2483.5, 5150–5350, 5470–5725 MHz). A part that reaches into no EU band at all is an error; a range beyond the bands otherwise is the firmware's to keep (grade firmware, severity by purpose).

  • transmitter in the EU bands: every range a part transmits in (compliance.radio bands_mhz, 4.1) lies within an EU licence-exempt band – 433.05–434.79, 863–870, 2400–2483.5, 5150–5350 or 5470–5725 MHz; where purpose.radio (3.1) states how the firmware uses the radio – "off", or the bands it keeps, each within the entry's bands_mhz – the stated bands count. A part none of whose bands reaches into an EU band is an error – no firmware makes it comply –, unless purpose.radio keeps it off; a use edakit does not list (NFC at 13.56 MHz, a mobile network under the operator's licence) gets accept on the component with its allocation. Any other range beyond the EU bands is the firmware's to keep, graded by purpose.use (8.1): a warning for a board that is sold ("sale"), information for one built for oneself or given away, or without a purpose: U1: 2412–2484 MHz (…) reaches beyond the EU band 2400–2483.5 MHz – the firmware must keep to 2400–2483.5 MHz (for Wi-Fi: channels 1–13). purpose.radio is optional; a statement within the EU bands ends the message, one that names no part with bands, a band the part lacks or a wrong shape is an error (chapter 15 – support, not legal advice) – finds e.g.: an ESP32 whose bands reach Wi-Fi channel 14 (2484 MHz), a LoRa module for 902–928 MHz – both passed edakit check without a word
Why
Many radio chips can do more than the EU allows – Wi-Fi channel 14, the US LoRa band. Whether the board stays legal is decided by its firmware, and the graph must say so.
What to do
Keep the firmware to the EU bands and state it in purpose.radio; a part made for other bands: another part, or accept with the allocation of a licensed use. Support, not legal advice.
Sources
  1. Espressif, ESP32 Series Datasheet v5.3 (2026-07), table 5-6: operating frequency range 2412–2484 MHz; note 1: 'Device should operate in the frequency range allocated by regional regulatory authorities. Target operating frequency range is configurable by software.' – https://documentation.espressif.com/esp32_datasheet_en.pdf
  2. BNetzA Vfg. 91/2025 (November 2025), table 2: entries 44a, 44b and 45c (433.05–434.79 MHz), the entries from 46a (863–865 MHz) to 56b (869.7–870 MHz), 57a to 57c (2400–2483.5 MHz); table 3 entry D57c (WLAN, 2400–2483.5 MHz) – https://www.bundesnetzagentur.de/DE/Fachthemen/Telekommunikation/Frequenzen/Allgemeinzuteilungen/_DL/vfg91_2025.pdf
  3. BNetzA Vfg. 136/2022 as amended by Vfg. 49/2023: WAS/RLAN in 5150–5250, 5250–5350 and 5470–5725 MHz – https://www.bundesnetzagentur.de/DE/Fachthemen/Telekommunikation/Frequenzen/Allgemeinzuteilungen/_DL/MobilfunkDectWlanCBFunk/vfg136_2022.pdf
  4. edakit handbook 15.1 and 15.2
  5. Lesson of the Christmas bell (tgd1975/automatic_christmas_bell, D-18 from D-13 'Radio' and D-17): the T-Display's bands_mhz reach 2484 MHz and edakit check reported nothing; the M-6 review needed a firmware requirement in the decision log instead – country DE with 802.11d off, channels 1–13

Replaces G-25