# P2 with MCP39F521

**URL:** <https://community.particle.io/t/p2-with-mcp39f521/64497>\
**Category:** Firmware\
**Created:** [May 4, 2023, 4:23pm UTC](https://community.particle.io/t/p2-with-mcp39f521/64497 "2023-05-04T16:23:14Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![sridhar\_rajagopal](https://avatars.discourse-cdn.com/v4/letter/s/c4cdca/32.png) [@sridhar\_rajagopal](https://community.particle.io/u/sridhar_rajagopal)\
**Post date:** [October 24, 2023, 10:55pm UTC](https://community.particle.io/t/p2-with-mcp39f521/64497/2 "2023-10-24T22:55:08Z")

</div>

Hi!

Just came across this as the notification email got delivered to my "Promotions" folder/tab!

I had specified the workaround I used in the [I2C requestFrom gives 0 available bytes](https://community.particle.io/t/i2c-requestfrom-gives-0-available-bytes/63220) thread - see around Sept 22. I had to either call requestFrom twice (the first time with a small timeout), or call Wire.reset after endTransmission. From my investigation, the I2C\_FLAG\_BUSY was never getting reset, causing the protocol to hang. Called requestFrom with the small timeout, or the Wire.reset helped to clear the flag and keep things moving. The problem appeared to trickle down to deeper within HAL code and I couldn't dig down the source of the bug.

Hope that helps!  
Sridhar

---

_[View the full topic](https://community.particle.io/t/p2-with-mcp39f521/64497)._
