• Bluetooth in pythonista is tricky, especially with multiple devices. Since cb module doesn't expose all of the delegate input args, you often cannot tell which peripheral is calling back.

  • @JonB yes you are right, the alternative is quite nice and there is this Serial number string, but when Iam reading it out it says N.A ---> not available and it seems to be the same for every sensor

  • So, writing 30 bytes to an open file in a tight loop takes maybe 70 microseconds on my crappy iPad3. (I timed by running 100000 writes). Even flushing between writes, very little difference. I doubt you'd improve much by trying to manually buffer-- since python files handle buffering for you, it shouldn't be an issue.

    Opening the file each time, takes about 1 msec per write. I suspect as you get to GB files, the seek time might take some extra time. So don't do that. Open the file and hang onto the handle, and only close it in an error handler or script end.

    I still think there cb module could be problematic. Are the sensortags recording data on their own internal timer, then you ask for data based on a python timer? Or, do you poll for data which triggers a sample?

    If the sensor tags are sampling based on their own internal timer, things could drift because the clocks are different. To check for that, you would as a counter in the sensortags payload that is incremented only when it sends a response (not when it samples)

  • @JonB HI thank you so much, it checked the vibration button on the left of the iPhone and the mute singer is not active. volume is turned up. So it is still not working :(. It is an Iphone 5S, should not be a problem normally

  • @JonB yes I am able to set up a timestamp, you need to add the functionality to the firmware. So I am able to label all the sensor data with a timestamp. In which URL did you check up the API?

  • Hi, I tried out to set up 16g range to the accelerometer, activating only accelerometer with range of 16g like the following: bytes([0b00111000, 0b00000011] and the to convert the raw data I used the formula stated in the wiki of TI: http://processors.wiki.ti.com/index.php/CC2650_SensorTag_User's_Guide#Movement_Sensor

    ---> v = (raw(data * 1.0) / (32768/16) for every axes and the output seems to be not right because in static position I get the following values for x, y, z: 1.9414, 0.0786, 0.225. Normally the first value(x) should be around 0.981. When I am changing the configuration to bytes([0b00111000, 0b00000010] which should be 8G range and use the following formula: v = (raw(data * 1.0) / (32768/8) then seems to be correct and in static position I have following values: 0.920 , 0.005, 0.200. Do you know what is the problem? I checked the formula and the settings but it should be right. The problem is well known, but not solved , See here: https://evothings.com/forum/viewtopic.php?t=1875

    https://github.com/sandeepmistry/node-sensortag/issues/62

  • Hi Jon oka<y thank you very much for the effort and nice explanation. I was quite curious and I found out that the Service and Charact. UUIDs can be changes in the firmware code of the Sensortag. Changing the UUID of the Service and Charac. for every node could be another approach as well. I checked it with BTool and it works. Problem is when I try to discover it via Pythonista on the iPhone it does not recognize the new UUID. I read that it helps to clear the Bluetooth cache, but in my case, it does not work cause I am discovering it via Pythonista and not directly via the iPhone 5. Do you know maybe something about that?

Internal error.

Oops! Looks like something went wrong!