Extend the spice-driven input path (already live for AVR/ESP32) to RP2040 and STM32 so digitalRead() of an INPUT pin reflects the actual wiring: a pin tied to a rail reads that rail, and an INPUT_PULLUP button-to-GND reads idle-HIGH / pressed-LOW instead of floating or inverted. RP2040 (rp2040js, frontend-only): the GPIO listener now splits input vs output mode. Input pins report their pad pull (InputPullUp/Down) via setPinPull and seed the pull's idle level (rp2040js does not auto-apply the pad pull to the readable input register); the SPICE solve then overrides via connectDigital- InputsToMcu when the net is actually sourced. Output pins drive as before. spiceDrivenInputs = true. STM32 (backend QEMU): the worker now forwards a new gpio_pull event (from the libqemu-arm picsimlab_pull_pin callback) so the netlist stamps the matching weak resistor; Stm32Bridge surfaces it, Stm32BridgeShim opts into spiceDrivenInputs, and collectPinStates maps PA0/PC13 names to the linear pin so the pull is read. STM32 outputs stay on the part layer (unchanged). Event-driven parts with no SPICE model (rotary encoder, keypad) remain protected by the existing sourcedNets gate in the connector. |
||
|---|---|---|
| .. | ||
| app | ||
| scripts | ||
| sdk | ||
| tests | ||
| .env.example | ||
| Dockerfile | ||
| debug_qemu.py | ||
| mcp_server.py | ||
| mcp_sse_server.py | ||
| requirements.txt | ||