Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Sphero BOLT #1007

Open
dennisgove opened this issue Oct 20, 2023 · 3 comments
Open

Support for Sphero BOLT #1007

dennisgove opened this issue Oct 20, 2023 · 3 comments

Comments

@dennisgove
Copy link

Sphero sells a device called Sphero BOLT which is similar (in appearance) to the SPRK+. However it appears that the Ollie driver code doesn't work with it. In particular, the device characteristics don't match what's defined in ollie_driver.go.

These are the characteristics read from the BLE adapter during connection, but all of them appear to have this unreadable: unknown or unsupported kind: "invalid" value.

sphero-bolt-characteristics

I'd like to try putting together driver code for the BOLT but I'm not quite sure where to go from here. I haven't been able to find if the BOLT is based on the same Ollie core that the SPRK+ and bb8 appear to be. If not I imagine I'd be starting from scratch but if it is I'm not sure how I'd go about determining which characteristic ID maps to which action (like wake, command, and response).

Do you have advice on where I should go from here? Thank you!

@gen2thomas
Copy link
Collaborator

Hi @dennisgove , I have no experience with sphero toys at all. But there is at least one difference in the python code: The ToyType ends with ".06" for all old devices and with ".075" for the new one. This seems to be the command safe interval. Maybe this is only a timing problem?

My suggestion is to start with a copy of ollie-driver and fix all calls. After that it is possible to optimize the architecture, for the duplicated code parts. Maybe only some constants needs to be different.

If you provide an PR I can support you for the architecture optimization part.

Good luck, Thomas

@dennisgove
Copy link
Author

Thank you, @gen2thomas. I'll peruse that python code and see how far I can get with it. This is a great starting point.

@deadprogram
Copy link
Member

Please see https://github.com/nicholasjackson/sphero-mini for how this can be done using Golang.

Perhaps a new Gobot driver that wraps this package? Or else learn for how it does things and add to the current one? Someone can perhaps take a deep look to decide which of those options seems better.

@gen2thomas gen2thomas removed their assignment Oct 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants