The new board and library managers look pretty cool. Is there documentation somewhere on how to contribute boards and libraries using them?
If not, I have a few questions that maybe someone can help me with? Does Arduino curate the list of boards and libraries, or is it more like PyPI where people can add packages and release new versions themselves as needed?
Also I see that libraries can be installed from a zip. Is there any way to install a board support package through the UI in a similar way? I'm working on a new arduino compatible board and would like to make as easy as possible for people.
I was wondering about that too.
After some searching (and reading the source of the Arduino IDE), I came up with the following:
This file contains the library list.
This code was only added to the Arduino IDE a couple of days ago. (I suppose some info on contributing libraries will be added in a couple of days/weeks)
Mail to author:
Hello Federico,
To get started, nice work on the library manager!
I have seen on GitHub that you have been working on the Arduino library manager recently.
Could you answer the questions on the following thread please?
I think that it would be a good idea to write some info/guidelines about adding contributed libraries to the library manager.
I am not really sure what the best option would be at this time.
You probably have been thinking about this, but my suggestions would be: (in order of preference)
I've also just noticed the new Boards Manager feature
Actually what they have done is moved where the compilors are stored on disk, which will break any Third party boards, which rely on the compilors in the traditional location.
I took a look at the package file (JSON) that the Boards Manager uses, and I attempted to manually update the file to get it to download and install my hardware files set for the STM32 boards, (which I manage on GitHub)
But the Boards manager, actively downloads the file every time you open the Boards Manager window
So its not possible to add your own entries, and looking at the code, it only looks for one file to contain all the data
What we need is a way to add an external source to the list of sources it downloads the boards data package from
I've forked the IDE to my github account and I'm now downloading my clone to my local machine
and I'm going to look at options about how this could be achieved
e.g. a bit like adding an untrusted source to a unix package manager
rogerClark:
e.g. a bit like adding an untrusted source to a unix package manager
This would be a good addition I think, then people like me with lots of libraries could provide a single file, even hosted online for regularly updated libs.
Hopefully dependencies are downloaded too, haven’t had a good look yet. It would be very handy especially once nested includes are supported [#2792].
Probably worth starting a post in the mailing list if you are really keen to do this. They might possibly be working on something similar already.
I Just posted to the developers mailing list (I was already subscribed) and I also posted an issue about the Boards manager
I'm involved with 2 different projects that both use 3rd party libraries
So if Arduino.lcc won't make this change I suggest we just use a copy of Arduino from another source
At the moment the guys at GitHub - esp8266/Arduino: ESP8266 core for Arduino are the most likely to be able to make the change required as they also need it and have already done a custom build to install the XTensia compilor that they need
Hence the Boards manager change would fix a lot of things for them as well
I hope this doesnt lead to a breakup of Arduino.cc's hold on the IDE just because of internal battles
If anyone wants to play with adding their own board in 1.6.3
On widows, you edit the file C:\Program Files (x86)\Arduino\arduino.l4j.ini and add in an extra line which specifies the address of the package_index.json file
Note. For testing all, I did was change the name "Arduino" to "Super-Arduino" just to confirm it works
Next step would be to build a PHP page to read and decode the original file from arduino.cc and add in additional packages data, before re-encoding to json
If its a UTF-8 document, make sure it does not include the byte order mark (BOM)
Underscores work fine in the latest build (don’t have 1.6.4 to test) however you could try replacing the underscore with a space (not the lib or folder, just in the library.properties).