I’ve been working on a project for an upcoming hackathon and tried getting help from Reddit, but didn’t find enough guidance. You can check out my Reddit post for reference.
Project Overview:
I’m planning to start with basic BLE pairing (using a passkey) and a cryptographic handshake (Diffie-Hellman) for a minimal commissioning implementation in Rust.
My goal is to keep it simple and avoid complex proprietary binaries or host-peripheral issues for now.
Future Goals:
If things go well, I’d like to scale the secure BLE connection to other IoT devices, like printers and similar peripherals.
Any advice or pointers on this approach would be greatly appreciated!
.
Is a rust-based Bluetooth stack a good idea? Yes, it would be absolutely great to have available.
Is it a good project for a hackathon? Honestly no.
The Bluetooth spec has become so gigantic through the years that even getting basic support working is likely to take months of work, not hours.
Now, you mention specifically wanting to implement BLE, which would make things simpler. But even then I think it could easily take a couple of weeks before getting the basics to work.
The enthusiasm is great to see!
But, just a simple reality check: "simple" goes out the window the very second Bluetooth (of any variety or version) is mentioned.
Bluetooth is a lot of things, simple isn't one of them.
Ultimately I think what's suitable depends a bit on the experience and skills of the people participating in the hackathon:
For a beginner, it's easy to get overwhelmed if the target is too ambitious.
But on the other side, someone like me wouldn't go to a hackathon about building websites, for example.
As for concrete projects, here are some ideas (feel free, but not obliged, to use any or all of them):
Calculating delta's between values that have structure, with the inverse operation being "apply a delta D to a value V1 to obtain value V2 such that V2 - V1 == D"
I have written and maintain a library called color-your-life that allows for printing colored output on the command line. It could be extended to support more types that live in stdlib. If someone were to do this, and send a PR, I'd likely merge it, assuming reasonable implementation quality.
If there are any Emacs users at the hackathon, perhaps they'd like to look at my emacs_module_bindings crate and update where necessary that to work with Emacs 29. This likely wouldn't be too much work, but I last tested it with Emacs 24 and it's been a while since that's been released
Perhaps some people would like to gain experience with building websites in Rust?