Hello everyone! I'm new to the forum. After some research (fruitless I might add) I decided to post my question here. I am in the process of building an AI controlled crawler. My goal is to build a "Mars Rover" type of vehicle controlled by an AI that would be capable of moving by itself over terrain and also go up and down the stairs of our house or chase my daughter (or birds) around the back yard.
Before you all call me crazy the AI part is the easy part for me given that I work in deep learning AIs (both genetic and trained) for work and image recognition is stupid easy if you know how to do it :) I've been doing this stuff for decades so that's not the question.
The question is: I have 3 Buwizz batteries that so far I controlled through the App. All good and great but now I want to be able to have the AI running on the Raspberry PI (cluster ... there's more than one running different processes in parallel) to communicate directly to the batteries.
I got as far as getting everything set up, connect to the BuWizz bluetooth system, I can get the characteristics and handles and descriptors listed out. I can read all the readable characteristics and I've identified what looks like 2 potential writable characteristics in the API but when I write to them nothing happens. I followed a post from someone from 2017 where he suggested that handle 0x0012 is the handle for the engine controls and that posting data in the form of 5 bytes structured like this:
+--------+--------+--------+--------+--------+
|1aaaaaaa|0bbbbbbb|0ccccccc|0ddddddd|0pp00000|
+--------+--------+--------+--------+--------+
Where a, b, c and d are 7-bit signed integers for the port output level, and p is the overall power level.
char-write-req 0x0012 80003f0040
so sending those codes either through python or the gatttool doesn't do anything and I'm at a dead end right now.
So I'm thinking that perhaps in the last 3 years the protocol has changed ...
Has anyone being able to successfully send instructions directly to the battery? is anyone aware of a way to do that? even if it implies perhaps using their app? I can't find an avilable SDK to code against unfortunately and every documented experiment or example is quite old.
does anyone have any more recent examples of attempts to communicate through the BuWizz BLE API?
Thanks!