velxio/frontend/src/simulation
David Montero df9e06c99a feat(esp32): emulate internal pull-up/pull-down for GPIO inputs
INPUT_PULLUP / INPUT_PULLDOWN had no effect in simulation: the ESP32's
internal pull resistors live inside QEMU and were invisible to the SPICE
solver, so an input wired to a button-to-GND floated to 0 V and read LOW
even at idle. The canonical active-low button never worked.

Read the pull config straight out of the running guest: the IO_MUX
register (FUN_PU bit 8 / FUN_PD bit 7) is already exposed read-only via
qemu_picsimlab_get_internals(3), so no QEMU rebuild is needed. The worker
scans it on the 100 ms poll thread and emits gpio_pull; the bridge feeds
it to PinManager; the netlist stamps a weak 45k resistor to the rail so
idle inputs read the correct level. 45k matches the real internal pull
and is weak enough that any external driver/pull dominates.

Verified with ngspice: idle ~3.3 V (HIGH), pressed ~0 V (LOW).
2026-06-24 03:32:30 +02:00
..
customChips
…
digital
…
displays
…
parts fix(sim): SSD1306 page-addressing mode (Tiny4kOLED/U8g2 OLED garbled) 2026-06-19 18:08:01 +02:00
spice feat(esp32): emulate internal pull-up/pull-down for GPIO inputs 2026-06-24 03:32:30 +02:00
verify feat(sim): P2 wiring ERC slice 2 — VCC-to-GND short + shorted-out parts 2026-06-18 03:32:17 +02:00
AVRSimulator.ts feat(sim): ATtiny85 USI I2C — drive I2C devices (SSD1306 OLED) via TinyWireM 2026-06-19 07:44:18 +02:00
Esp32Bridge.ts feat(esp32): emulate internal pull-up/pull-down for GPIO inputs 2026-06-24 03:32:30 +02:00
Esp32C3Simulator.ts
…
Esp32MicroPythonLoader.ts
…
HD44780Decoder.ts
…
I2CBusManager.ts
…
Interconnect.ts
…
LogicFamilies.ts
…
MicroPythonLoader.ts feat(opencore): extract Pico W WiFi to a pluggable PIO peripheral seam 2026-06-15 08:33:28 +02:00
PinManager.ts feat(esp32): emulate internal pull-up/pull-down for GPIO inputs 2026-06-24 03:32:30 +02:00
PinResolver.ts
…
PioPeripheral.ts feat(opencore): extract Pico W WiFi to a pluggable PIO peripheral seam 2026-06-15 08:33:28 +02:00
RP2040Simulator.ts fix(rp2040): Pico W always boots the W firmware (no `import network` crash) 2026-06-15 18:55:13 +02:00
RaspberryPi3Bridge.ts feat(pi): gpiozero core + boot feedback, terminal and upload UX 2026-06-22 20:21:06 +02:00
RiscVCore.ts
…
RiscVSimulator.ts
…
SensorUpdateRegistry.ts
…
SignalRouter.ts
…
SpiBus.ts
…
Stm32Bridge.ts
…
UsiI2cBridge.ts feat(sim): ATtiny85 USI I2C — drive I2C devices (SSD1306 OLED) via TinyWireM 2026-06-19 07:44:18 +02:00
esp32-signals.ts
…
piSlaveScanner.ts
…
rp2040-bootrom.ts
…
sensorControlConfig.ts
…