I guess this is more of a photon question and perhaps the wrong forum, but I have noticed that the i2c bus seems more stable on the Bluz. I have a circuit with several i2c devices. I use both Bluz’s and Photons with nearly identical code. Every so often the bus locks up on the photon; thankfully a call to wire.Reset() fixes it. This never happens on a Bluz. Any idea what could be going on with the Photon?
The code for specific peripherals between bluz and the Photon is very different. They share the same top-level functions that the user calls, but then they just call functions like HAL_I2C_* underneath and that is where the functions would call specific hardware code for the respective platform.
We use the Nordic SDK underneath, so that is pretty battle tested at this point and their drivers are very good. I am not sure how or what the Photon uses, but that would certainly be a question for Particle (and I think one they are working on, I have seen more than a few bug reports/fixes along these lines)