b82ed400bc
SPICE (6_bno085_imu.cir):
- BNO085 power supply with 10uF + 100nF decoupling on VDD
- Power-on reset RC circuit (R=10K, C=1uF, tau=10ms → deasserts at ~12ms)
- I2C Fast Mode 400kHz bus: 4.7K pull-ups, 50pF bus capacitance model
- Full I2C transaction: START + address 0x4A + R/W + BNO085 ACK + STOP
- INT pin (open-drain, 10K pull-up, 100Hz interrupt simulation)
- .meas directives: reset timing, SCL rise time, VDD stability
Simulator (esp32_sim.py):
- SimSnapshot.bno085_yaw_rate_dps field added
- _bno085_enabled / _bno085_noise_std_dps / _bno085_yaw_rate_dps state
- enable_bno085(noise_std_dps=0.02) public method
- disable_bno085() public method
- _run_physics: samples gyro at 50Hz with Gaussian noise model
- _run_outer_loop: uses BNO085 yaw rate for rot_ff_term when enabled
(replaces NMEA-derived ROT — lower latency ~4ms vs ~100-200ms)
Usage:
sim.enable_bno085() # activate gyro feed-forward
sim.enable_bno085(noise_std_dps=0.014) # with BNO085 spec noise
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>