This is an ongoing thread documenting upcoming Bristlemouth tools, guides, features, updates, and examples. The intent is to make it easier for developers, users, and community members to see what work we are doing (and what work we all want to do). We will do our best to update this thread so that it can represent what’s going on as accurately as possible. Please know that the evolving nature of collaborative and open development means this wont be set in stone.
How to contribute
Reply to this post if you have any feedback, feature requests, or things that you’d like to see tracked. If you’re interested in adding your work to this list or want to connect with us to see about contributing to some of these things let us know!
Active Major Projects
Bristlemouth protocol source code modularization
The Bristlemouth Protocol source repository is presently a monolithic project that, while serving the current needs, doesn’t provide the flexibility we’ll need to scale across multiple frameworks and platforms.
We’re going to restructure the project to provide cleaner separation of board support, core network library, middleware, convenience utilities, and applications. This will make it simpler to include the existing framework + platform support for custom apps while keeping in sync with updates to core protocols. This should also make it possible to use Bristlemouth more easily on different types of processors and frameworks, such as Arduino-type products (see below)!
Bristlemouth protocol library support for development boards
One of the most frequent questions or requests we get from developers and community members is how to integrate well-known development boards like RasPi and/or Arduino into a Bristlemouth system. There’s a massive opportunity to tap into these existing communities and the wealth of hardware, open-source codebases, and community support.
The next steps for this are:
- Identifying a common hardware platform that is very accessible, well-supported, and has all the features we need. Join the discussion here on this topic.
- Creating the board support and libraries for the development board target that fires up the Bristlemouth stack for the chosen hardware and make it simple for users to publish/subscribe to data sources within the Bristlemouth network. (This will be enabled by the modularization work above).
- Building more documentation and example applications that demonstrate common tasks. Some are captured in the list below (like interfacing with an I2C sensor or using request/reply).
Feature/Roadmap/Wishlist
Last updated 5/10/24 by @zack_j
Item Name | Type | Status | Lead + Team |
---|---|---|---|
BM Protocol source code modularization | BM Core Dev | Active | @zachary - Sofar & @spiderkeys - Mission Robotics |
BM library for “well-known” microcontroller | BM Core Feature | Active | @zachary - Sofar & @spiderkeys - Mission Robotics |
Linux instructions added to onboarding guides | Guide | Active | @zack_j - Sofar |
New firmware update guide | Guide | Active | @evan - Sofar |
SDI 12 integration example | Example | Active | @umakat - Sofar |
RS485 integration example | Example | Active | @estackpole - Sofar |
Spotter telemetry costs and best practices guide | Guide | Wishlist | |
Firmware developer reference docs | Guide | Wishlist | |
Support for cell-only telemetry for Spotter | BM Spotter Feature | Wishlist | |
I2C integration example | Example | Wishlist | |
FTP / handling of large files | BM Core Feature | Wishlist | |
BM DevKit hardware reference docs | Guide | Wishlist | |
Advanced feature guides | Guide + Examples | Wishlist | |
Implement your own Bristlemouth request-reply service | Guide + Examples | Wishlist |