Remix.run Logo
simontheHWguy 3 days ago

The biggest challenge was the SPI communication during the initialization phase. I had a timing violation in the register set sequence that caused the IC to enter unpredictable states.

Because the ESP32 is so fast, I was driving the SPI lines without adequate delay between bytes during configuration. The ADS1299 would technically "communicate" but then behave crazily during data acquisition. I had to go back to the datasheet's SPI timing diagrams and strictly enforce the timing constraints in firmware to get it stable. I wish SPI was a more strictly defined standard

MrBuddyCasino 2 days ago | parent [-]

Interesting! I expected something along the lines of wifi / LWIP tuning since you said streaming. I knew that I2C barely works, but I wasn't aware SPI is underspecified as well.