cubing / cuble.js Goto Github PK
View Code? Open in Web Editor NEWThis project is now part of `cubing.js`: https://github.com/cubing/cubing.js/tree/master/src/bluetooth
License: GNU General Public License v3.0
This project is now part of `cubing.js`: https://github.com/cubing/cubing.js/tree/master/src/bluetooth
License: GNU General Public License v3.0
So far, my best guess is that:
It seems that an initial characteristicvaluechanged
fires when you start listening for the cube state, but only sometimes. (It fires for me on macOS, but not for Kit on Android.)
Workaround:
characteristicvaluechanged
event has the same value, ignore it.We'd love to help make their cube a great tool for all cubers fo experiment and build with.
Hi,
I've tried this library with a Gan356i cube, but it is not working. Maybe it's a new firmware? I've debugged what the cube is sending, and it seems to be quite random.
For example, if I'm polling the fff7 characteristic for a solved cube, it sends this b9bb56bfff7c7808ad3fa56bca1617707c06
. For fff6, it sends 8a7763e38ca59c697f941d1feb6decd9f01cdd
. For fff5, it sends these when I'm polling (in about 5 secs, while nothing is happening, cube is in my bag):
[
"07f69e01542848b5a7636853a5702b4f9639eb",
"07f69e01542848b5a7636853a5702b4f9639eb",
"fa403ff691b5df9f55f16e7526ad2b258fb519",
"fa403ff691b5df9f55f16e7526ad2b258fb519",
"d973447f4dafe637a0d37b7fa4e87df85e0a44",
"d973447f4dafe637a0d37b7fa4e87df85e0a44",
"fc3aa60338ea7f33765977d0de99af0cdb1d24",
"5a1bbc8efbc0d57713289c1137f6244c52d4d4",
"5a1bbc8efbc0d57713289c1137f6244c52d4d4",
"5a1bbc8efbc0d57713289c1137f6244c52d4d4",
"ad2a039af51e19101fbb0f43f9ebd96a14fbae",
"6ba6279cab20496cc575034f39ca6950c7fb9b",
"6ba6279cab20496cc575034f39ca6950c7fb9b",
"c9aeb9d0cf150cebdc628c18fea7f0658e285c",
"c9aeb9d0cf150cebdc628c18fea7f0658e285c",
"c9aeb9d0cf150cebdc628c18fea7f0658e285c",
"4d0506a36b1ad9275360820632a66b922e7866",
"e98379434e8661a01074a775821b12258b62b6",
"e98379434e8661a01074a775821b12258b62b6",
"6a997a46bd88b1863a9b1a3e8fd499b8b031c7",
"6a997a46bd88b1863a9b1a3e8fd499b8b031c7",
"bf5b34f64f96c84cda43547b1487881cbcd219",
"bf5b34f64f96c84cda43547b1487881cbcd219",
"152826e127aa9d5dc32e81f9915baf9ee326af",
"152826e127aa9d5dc32e81f9915baf9ee326af",
"5913c8f675bef9f2df992d17e8deccbac65127",
"5913c8f675bef9f2df992d17e8deccbac65127",
"5913c8f675bef9f2df992d17e8deccbac65127",
"1a8f1e8b0f35655bff77f73e5857d5d73059b7",
"1a8f1e8b0f35655bff77f73e5857d5d73059b7",
"418441b957bb959820bd86ea45bb1570231e9d",
"7a452b4999f54e659d0e67b0dde3872f6c6acb",
"7a452b4999f54e659d0e67b0dde3872f6c6acb",
"7a452b4999f54e659d0e67b0dde3872f6c6acb",
"7a452b4999f54e659d0e67b0dde3872f6c6acb",
"e41fe8f39a608a7beb1ce08697fa21078f6157",
"e41fe8f39a608a7beb1ce08697fa21078f6157",
"01ba9928b948b4f57072a13ae78bc582eb48c0",
"01ba9928b948b4f57072a13ae78bc582eb48c0",
"1515add66f346cbd3f9239d470ee35245077e1",
"1515add66f346cbd3f9239d470ee35245077e1",
"02777da1c4fae628838d95b34392d1fef82875",
"02777da1c4fae628838d95b34392d1fef82875",
"21155f4f27427b472ef771152f6afa4d6a4405",
"5a734f072ebda3556969a42cdc6f0cb038e9ec",
"5a734f072ebda3556969a42cdc6f0cb038e9ec",
"5a734f072ebda3556969a42cdc6f0cb038e9ec",
"14c0e1324f6855d58a0fa82cf093aa5879b2c0",
"14c0e1324f6855d58a0fa82cf093aa5879b2c0",
"14c0e1324f6855d58a0fa82cf093aa5879b2c0",
"14c0e1324f6855d58a0fa82cf093aa5879b2c0",
"e1ce596164112b00d15c1dd1d1f54ae6469def",
"e1ce596164112b00d15c1dd1d1f54ae6469def",
"b4a07d41904abb1e1f261ae1eac5e3c5947808",
"5e6a69aeffb91f6bc22a5c51f0955c3120459c",
"5e6a69aeffb91f6bc22a5c51f0955c3120459c",
"5e6a69aeffb91f6bc22a5c51f0955c3120459c",
"a983d5664610518b863356fcbdd2e127793d68",
"a983d5664610518b863356fcbdd2e127793d68",
"f1caec217d7d9ecedb6ca8774a534af90a461c",
"f1caec217d7d9ecedb6ca8774a534af90a461c",
"2e43f7660f4082fe37b8a094d0ecfa42ac9abd",
"2e43f7660f4082fe37b8a094d0ecfa42ac9abd",
"2e43f7660f4082fe37b8a094d0ecfa42ac9abd",
"d3f1fd4a6375aab8fe25974851155b98882af9",
"d3f1fd4a6375aab8fe25974851155b98882af9",
"09c8f207bb532129e0e244f28f634e8465e451",
"09c8f207bb532129e0e244f28f634e8465e451",
"68b7f8c75a0b485448d1f7b217a2b133e78b31",
"68b7f8c75a0b485448d1f7b217a2b133e78b31",
"68b7f8c75a0b485448d1f7b217a2b133e78b31",
"73407ef5e797980ef4b76fc90e40cb0180489c",
"73407ef5e797980ef4b76fc90e40cb0180489c",
"ad0aa346190d8ee889a790e2c24bcbd526296a",
"ad0aa346190d8ee889a790e2c24bcbd526296a",
"5473aa2ef27bf169a62ceb8bfdd273ca3507c9",
"5473aa2ef27bf169a62ceb8bfdd273ca3507c9",
"5473aa2ef27bf169a62ceb8bfdd273ca3507c9",
"9e263ad8f8f474a063e6c7bef9b032e39c0883",
"9e263ad8f8f474a063e6c7bef9b032e39c0883",
"5eda86308b876ab650fda0ba1b84ef6081b98a",
"5eda86308b876ab650fda0ba1b84ef6081b98a",
"b2d77a0c803ac4b975dcfeabf891d4884f58de",
"b2d77a0c803ac4b975dcfeabf891d4884f58de",
"b2d77a0c803ac4b975dcfeabf891d4884f58de",
"7a043502d7eccd3c19099426e0ca77274f634b",
"7a043502d7eccd3c19099426e0ca77274f634b",
"7a043502d7eccd3c19099426e0ca77274f634b",
"37de3fe790271b795571274008280ed2356ada",
"37de3fe790271b795571274008280ed2356ada",
"264daca5e182b45c752f2d3b3452079a6ad9f2",
"7a3adcf7614ade72ba9734662f13c98d5f02d4",
"7a3adcf7614ade72ba9734662f13c98d5f02d4",
"7a3adcf7614ade72ba9734662f13c98d5f02d4",
"7a3adcf7614ade72ba9734662f13c98d5f02d4",
"81530f44f25a36f9217e90e002679c392e61af",
"81530f44f25a36f9217e90e002679c392e61af",
"81530f44f25a36f9217e90e002679c392e61af",
"ac48b82b0c164e3261b8c3d53c57ede868f511",
"ac48b82b0c164e3261b8c3d53c57ede868f511"
]
I'm getting a different set of values for fff5 if I'm doing a move on the cube, and similar values to this if I'm moving it back. I see no patterns at all. For a solved cube there are new values coming later (maybe it is a time based encoding), and old values are not repeated anymore.
Do you have any idea about how I should decode these?
Andras
This allows new models to work if they are compatible with old protocols but don't match old filters.
As far as I know MS has not implemented any support for BLE under Windows 7. Is there any workaround for that? (Upgrading to Win8/10... hehe, funny you are...) My workstation has not been upgraded to win10 according to some corporate restrictions, yet.
Possible solutions tried out:
But... Maybe someone has managed to run it under Windows 7?
e.g. "interpret sides as if the original R face is on U, and the original D face is on F".
I can get FFF7 bluetooth data and observe its change.
But it doesn't work for FFF2 and FFF3 which will get all facelets data. It seems only the first obtain work well and the data will not change anymore even I rotate the cube.
Should I send data to any characteristic or set notify for it?
From others:
Good Afternoon,
I would first like to say that this project is absolutely awesome and wanted to inform the team of the current pairing prefix restriction. As new cubes are released, the cube namePrefix may change. I discovered this to be the case as I was able to connect my cube to the production https://bluetooth.cubing.net site and not on a local host copy. After digging into the source code of the live site, I discovered the issue to the namePrefix.
Project Source Code:
filters: [ {namePrefix: "GiC"}, {namePrefix: "GiS"}, {namePrefix: "GiY"} ],
Production Source Code:
filters: [{ namePrefix: "Gi" }],
Just wanted to let the the team and new developers know in case they run into the same issue.
Hi!
I'm working on a bluetooth device, I already found services and characteristics, but I cannot find how to discover available commands.
Because you did the same work for some Cubes devices, I'd like to know how to find all available commands for a BLE device ? Maybe you use a sniffer or something else ? If you can help me I will be very grateful.
e.g. https://github.com/pybluez/pybluez
I'm thinking of implementing every library in /cubing
in at least one of Python/Go/C++ to make sure the design decisions work across languages. Might be worth prioritizing a language that handles Bluetooth well.
It's impossible to connect the new giiker i3s wirth the site because the giiker is impossible to find
With it's app, the cube work well
Options:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.