Repository navigation
feat: cite datasheet pin functions and separate unchecked pins from passes - #56
Merged
badimirzai merged 3 commits intoOct 8, 2026
Merged
Conversation
A dedicated SDA or SCL pin on the opposite bus net is an error with the datasheet citation. A GPIO that can be muxed to I2C stays unchecked instead of counting as a pass.
The MPU fixture must exit 2 when SDA is on I2C_SCL, and a correct bus must not emit those findings. An ESP32 GPIO on I2C_SDA must show up under not_checked.
Pin functions are copied from a datasheet table. Coverage separates checks that passed from pins the scan did not check, and an unchecked pin is not a violation.
badimirzai
deleted the
feat--pins-from-datasheets-the-checker-can-prove
branch
October 10, 2026 14:16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
supply_abs_maxandgpio_abs_maxrules. A function has a name, an optional number, a kind (power,ground,bus, orgpio_candidate), an optional signal, and a citation (title, revision, and table or section).rvdoes not fetch a datasheet at scan time, and a function without a citation is ignored.SCLorI2C_SCL, and dedicated SCL onSDAorI2C_SDA, ispin_function_mismatch(ERROR). Dedicated SDA and SCL of the same part on one net ispin_bus_short(ERROR).expected.textis the signal.observed.textis the net. The finding includes the datasheet citation. Agpio_candidatenever produces these findings.rv scan --format jsongains acoverageobject:provedcounts dedicated bus checks that passed,refusedlists existingERRORandWARNfindings, andnot_checkedlists unmatched parts, matched pins with no cited function, and agpio_candidateon an I2C net name. Coverage does not change the exit code. An ESP32 GPIO onI2C_SDAis not checked, not a pass.MPU-6050andBNO055record dedicated power, ground, SDA, and SCL.AP2114H-3.3records VIN, VOUT, and GND.ESP32-WROOM-32,STM32F103C8T6, andRP2040record power, ground, and I2C-capable GPIOs as candidates, not as the SDA pin.DRV8833,TB6612FNG,L298N,PCA9306, andTXS0108Estay on their voltage contracts.AMS1117-3.3stays on its voltage contract because the datasheet that was read names the pins and does not print a revision.rv parts showprints the functions and the citations.Test plan
I2C_SCL. Exit code is 2. The finding ispin_function_mismatch,expected.textisSDA,observed.textis the net, and the citation is MPU-6000/MPU-6050 Product Specification, revision 3.4, section 7.1.I2C_SDAand SCL onI2C_SCL. Nopin_function_mismatchorpin_bus_short. Those checks appear undercoverage.proved.I2C_SDA. Nopin_function_mismatch.coverage.not_checkedlists that connection. Exit code stays 0 when nothing else fails.rv parts show MPU-6050andrv parts show ESP32-WROOM-32print functions and citations.supply_abs_maxis still listed.