You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, first of all, Embassy has been great for me and my team and I would like to thank you for that.
However, I have found a strange thing on our project:
Depending on the order on which we wait for tasks, we have a coherent sensor reading or not:
If sensor_reading is called first, the temperature readings are coherent (~20℃). If pipe_data is called first, the temperature readings do not make sense and it depends on the compilation:
Sometimes ~ -300℃
Sometimes ~ 0℃
Sometimes ~ -100℃
My colleague and I have managed to reproduce this consistently on each other's hardware.
Our hardware is an ASTRA1B from ST Electronics featuring on board sensors (including the stts22h temperature sensor) and an ST32WB55G.
It's possible the i2c sensor has some timing requirements (like wait at least X between doing A and B) that you accidentally meet if you run the tasks in one order and not the other, could be fixable by adding delays.
it's also possible it's a bug in async i2c (that part of the code has been a bit troublesome historically). Can you try changing to blocking i2c and see if it still happens? If that's the case then maybe oscilloscope traces could help see what's async i2c doing "wrong".
it should work. blocking and async i2c should behave exactly the same, if they dont' it's likely a bug. (it could also be that the chip is timing sensitive, and changing blocking<->async changes the timing)
to confirm you'd have to look at the i2c signals with a logic analyzer / oscilloscope and see if they look good...
Hi, first of all, Embassy has been great for me and my team and I would like to thank you for that.
However, I have found a strange thing on our project:
Depending on the order on which we wait for tasks, we have a coherent sensor reading or not:
If sensor_reading is called first, the temperature readings are coherent (~20℃). If pipe_data is called first, the temperature readings do not make sense and it depends on the compilation:
My colleague and I have managed to reproduce this consistently on each other's hardware.
Our hardware is an ASTRA1B from ST Electronics featuring on board sensors (including the stts22h temperature sensor) and an ST32WB55G.
I got an MVP repo here : https://github.com/432-Technologies/embassy-task-order
My team and I can give you all the help you need.
Thank you.
The text was updated successfully, but these errors were encountered: