Bristlemouth Core Development Roadmap & Feature Tracker

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
4 Likes