BLE Byte Array Output Returns Base64 Instead of Raw Bytes

In my BLE application, I am receiving data in notification mode. I have implemented the characteristic changed block to handle incoming data. Since the data is not plain text, reading it as a byte array is the more appropriate method.

I used the value returned by the “data (byte array)” output, expecting it to be a standard 8-bit byte array. However, to my surprise, it returned a 6-bit encoded array, which was actually Base64-encoded.

For example, when I sent the string “1” followed by a newline character, the expected byte array was 0x31 0A. I anticipated receiving the raw byte values 31 and 0A. Instead, I received the Base64 string “MQo=”. Similarly, for the string “11”, which should be 0x31 31 0A, I received “MTEK”.

Initially, this behavior was confusing. I later realized that the byte array is being converted to a Base64 string, which is not suitable for applications requiring direct access to raw byte data.

I kindly request the Thunkable team to address this issue. The current BLE block implementation shows this kind of mismatch in multiple areas. BLE is a highly useful feature, especially in IoT applications, and deserves a more accurate and robust implementation.

Please consider fixing these inconsistencies and adding more advanced BLE features. This will make Thunkable a more reliable and preferred platform for BLE app development.