Go Down

Topic: Arduino Library downloader (Read 10 times) previous topic - next topic


Hi. And thanks for the kind words.

I am not sure if we both talk about the same "Arduino repository".

Because as far as i know there is no central repository for libs from Arduino.
The only place that i know of where "some" of the libs that exists out there in the world of Arduino are in the playground here:

And that is a public wiki where everyone can post and write links.
So some of the libs there in the playground only have a link to an external webpage where somewhere you can find the lib from the author.
And some have a own wiki page where somewhere there you can find a link to the lib. Then some of the libs have a different directory structure etc.
So nothing is standardized there. And i don't believe the Arduino crew have any possibility to get that data in some form that can easily imported from somewhere else.

So please don't understand me wrong.
At most of this i was already thinking how to do it in a way that would be the best before i started with this application and while i was developing it.
And i think the only way is to make a new repository where every library creator uploads their libs in a standardized form.
(i believe i should release a how-to how the structure of the zip-file should look like and maybe implement a check when the lib got uploaded.
But to be honest. Most of the libs should already be in that structure because this is how the Arduino crew recommend it.)

And then i am not a pro c++ coder. I started this project to learn a bit about developing in c++ and to try to develop it in a way that should make it easy to compile it for other operating systems out there.

So i hope there will be support from some library developers. ;)
I still have many ideas how this project could get better.
It is just mostly hard work to gather all the needed information.


I am referring to the playground list of libraries. I do realize that they are all over the place but I think with encouragement of the Arduino team one could get the contributors to deposit their libraries on your site as well for download.
Having said that I also realize that some contributions are made in order to draw people to a specific site and maybe to sell something to them. I think it is worth the effort to try and convince contributors to support your repository for the sake of the tool and the many coders out there that can benefit from it.
Rather people think you to be a fool than you open your mouth and confirm it.

Paul Stoffregen

Nice work on this library installer!

You might like to know about a similar effort I've been undertaking for the last year or so... to test and port all "major" Arduino libraries to Teensy (which is 3rd party board my company makes).

Here is the list of all the libraries.


As you can see, I still have quite a number of them to test.  Usually when I add one to this list, I buy the necessary hardware - but often it sits for weeks or months due to lack of available time.

A few months ago, I added a feature to the Teensyduino installer (which automatically adds the Teensy-specific files to Arduino) to optionally install any of the tested libraries.  Virtually all the libraries are only a few relatively small files.  Just copying them all into installer didn't enlarge it very much, less than 1 megabyte.

Several times I considered making a java-based tool right inside the IDE - which does pretty much the same thing your nice-looking application does.  The really hard part, though, is the last of a central database of all the libraries.  Maybe my efforts can help, at least a bit, or I might be able to contribute in some way?


Hello and thank you.

If i understand you right you modify the libs so they work with Teensy
that they would no longer work on an Arduino Board?

I am not sure how these libraries could help in this project at the moment then.
But nice to see someone else had the same idea and made a central list for a 3rd party board.
If you know of any way to support this application i would be happy. :)

Just to note:
I updated the Ardulibrary after i tested the method of finding the Directory where the libraries should be installed from the application.
I found out the IDE does not create the libraries directory and so now i changed the ardulibrary downloader to read the config-file of the Arduino IDE for the sketch directory and creates the libraries directory inside it.
Now the user should no longer need to search for the correct directory for himself.

Paul Stoffregen

Aug 15, 2011, 01:32 pm Last Edit: Aug 15, 2011, 01:52 pm by Paul Stoffregen Reason: 1

If i understand you right you modify the libs so they work with Teensy
that they would no longer work on an Arduino Board?

Oh no, not anything like that!!  I always aim to preserve compatibility.

In fact, in the process of porting to Teensy, I often find libraries that were hard-coded to work only with the 168/328 chips.  I usually add support for Arduino Mega and Sanguino too.  For example, the Firmata library, which is now pre-installed on every Arduino Uno and Arduino Mega, became compatible with the Mega boards only because of my work to add a hardware abstraction layer.  
To get an idea of the type work I've done, take a look at libraries/Firmata/Boards.h inside your arduino-0022 directory.  Several other libraries work on Arduino Mega only because of the Teensy porting effort!

I always attempt to contact the original author(s) and contribute my changes.  Usually, when I can find the author's contact info, they publish the changes in a new version.  In some cases, I've discovered and fixed bugs too (eg, OneWire was horribly buggy).  In a few cases, it's turned out the library was pretty much abandoned code and I've become the de-facto maintainer.

Recently some of the hardware abstractions I've developed for libraries are (finally) being included into the Arduino core.  Some libraries (eg, SDfat) have also made use of hardware abstractions I've proposed but haven't (yet) been accepted by the Arduino Team.

I definitely do not patch libraries to work exclusively with Teensy, and in most cases I've gone to quite a lot of extra effort to build robust hardware abstraction layers that support many boards and allow for new boards to be added easily.

Then again, some libraries are already very portable, so all I do it test and document.


But nice to see someone else had the same idea and made a central list for a 3rd party board.
If you know of any way to support this application i would be happy. :)

I'll take a look at Ardulibrary soon.  Maybe I could publish a page in the format it expects, so it could query the list I have?

Or if there's more work to create a central list, at least the work I've done so far might help.  I only tend to test/port/document the "major" libraries.  But a quick look at my list shows several that aren't on the 2 lists I saw mentioned in this thread.

Go Up