Go Down

Topic: [Q] 3D printer board library (Read 896 times) previous topic - next topic

Phr3d13

Sep 20, 2017, 11:54 pm Last Edit: Sep 21, 2017, 12:00 am by Phr3d13
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.

pert

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:
https://help.github.com/
http://www.freshconsulting.com/atomic-commits
http://chris.beams.io/posts/git-commit

As for how to write a library:
https://www.arduino.cc/en/Hacking/LibraryTutorial
https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification

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.

Phr3d13

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?

pert

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: https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.6.x-package_index.json-format-specification.
  • 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.

Phr3d13

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. :)

Go Up