[Q] 3D printer board library

I'd like to start/maintain a library for arduino based 3d printer boards. How would I go about doing this? There are a few boards that require their own board definition, and it would help streamline the process when I help others with their 3d printing problems.

I recommend you to host it on GitHub, as this will make it easy for others to contribute. GitHub accounts and open source repositories are free. Some helpful information:

As for how to write a library:

That should be plenty information to get you started. If you run into more specific questions along the way come back here and we can help you.

I already have a git repo, I'll start adding the boards I encounter to it. Once I've done that, how do I get those to show up in the board manager with as little user interaction as possible?

It sounds like you actually want to create a hardware package rather than a library. For Boards Manager installation support you will need to:

  • Put each release of the package in a compressed file. The folder structure of this file must be a little different from the folder structure of a hardware package that you install manually in that it will not have an architecture folder: The boards.txt and any other files normally found with it will be in the root folder.
  • Create a JSON file following the specification: Arduino IDE 1.6.x package_index.json format specification · arduino/Arduino Wiki · GitHub.
  • Host both of these files online. There are many options but, after adding Boards Manager installation support to quite a few hardware packages, I've decided my favorite approach is to put these in a branch of the repository named gh-pages. Branches of GitHub repositories with this name are accessible via a special URL that makes the Boards Manager URL for your hardware package a little shorter and less messy.
  • The user will then add the URL of your JSON file to File > Preferences > Additional Boards Manager URLs and then the entry for your hardware package will appear in Boards Manager, where they can easily install it. Once installed, whenever you add a new release to your JSON file, users who have it installed can get notifications that there is a new version available (if they have notifications enabled in their preferences) and can update via Boards Manager with only a few clicks.

I can provide more help on this process if you end up with more questions as you work on this. You will find a lot of good information in the Boards Manager JSON file specification link above.

Ok, once I start getting everything going, I'll probably be picking your brains again if I get stuck. Thanks for the quick and clear responses. :slight_smile: