Why can't I connect to device using the same UUID characteristic on iOS that works on the android app?

Hello,
I am using an Arduino with an HM-10 module on android the thunkable app works well, (connects / transmits and receives fine).

However on iOS it connects fine but will not transmit or receive and I get the following error message:

“characteristic 0000FFE1-0000-1000-8000-00805F9B34FB write failed for device my device ID and service 0000FFE0-0000-1000-8000-00805F9B34FB”

Has anyone actually been able to use thunkable to connect to iOS via an HM-10 module?

Has anyone been able to connect to iOS with any module? If so which one?

Any help greatly appreciated


!

1 Like

Hey @saabbearpigc Thanks for the great question!

Mind to share how you are sending info from arduino to the app? (the code)

in iOS your UUID for connection will be only FFE1. it’s a platform thing, not a thunkable bug.

Hello,
thanks for the response. I am using FFE1 (still not working).

Or do you mean use just the FFE1 part of the uuid?

Just using serial.write to the relevant pins to the hm10.
This is now actually working to send strings from arduino to iOS. (Using the receive string blocks)
Fails when try to send bytes from Arduino to iOS (Using the receive bytes block)

Using if serial available / serial.read
Get nothing sent from iOS using either bytes or string.

Many thanks for your help!

That’s because the hm-10 doesn’t write to the characteristic. It only transmits over the notify channel despite its documentation. I have verified this with DSD staff.

If you want to READ from the BLE device you must be able to update the GATT characteristic value and serial.write() does not do that with the hm-10.

using an esp32 device allows you to change this value and transmit data back to the app. Internally we have discussed adding the ability to listen to. notifications which would allow you to send data from hm-10 to app BUT it’s not high on the priority list at this time. It’s also not the lowest hanging fruit but i have no timeline to provide on when it will be available.

1 Like