FINDING THE RIGHT LIBRARY

I have read a lot of posts from people who can't get hardware working because they don't have the right library. I have had the same problem and was able to find it with help on the forum and from vendors. Is there any definitive website or forum where that contains a lookup table or cross-reference of hardware to libraries where you select your hardware and it shows you the correct library or has a download link to download it. It seems like 90% of the cases where people resolved their issue the solution came from "TRIBAL KNOWLEDGE" (meaning you people).

NO there is no such website as far as I know.
There are discussions on the developers list, but it is far from trivial, as besides getting the right library for one piece of HW,
how about getting non interfering libraries for 2 pieces of HW or even 42 pieces …

Every lib should document what resources (eg timers RAM pins etc it uses) and on which board it works (different footprint)

not trivial, so there is a bizz opportunity :wink:

It seems like everyone has been in LIBRARY HELL at one time or another. It would be nice if there were at least a single website where people can upload the library they used to get their hw working along with part numbers and photos of the hw. Or at least identify the library that works with that hw.

I think much of this comes from the lack of technical knowledge on the part of the user. And one of the things that always bothers me is the "trial and error" methodology that seems to be encouraged - even by the Arduino founders.

In many cases, it is not as difficult to get a working library up and going as the user makes it. I see so much struggle with the i2c to hd44780 backpacks, but in nearly all the threads I've seen on this topic, the issue came down to the user using a sloppy trial and error methodology and was mixing up incompatibile libraries and examples and made the situation worse than it should have been.

I think in many cases, the users would have been better served to just hit the arduino forum sooner and just ask.

As far as a collection of latest working libraries go, I think Paul has probably the best collection of updated and maintained libraries on his teensy site. http://www.pjrc.com/teensy/td_libs.html

But as robtillaart mentioned often the real challenge isn't getting the right library but rather getting libraries to play nice together.

--- bill

GREAT LINK. I didn't know about that till now. Is there a place or method for members to upload knowngood libraries with hw docs & photos for others to use ? Also, I know my next question is not relevant to the topic of this post but I wanted to get your opinion. Given the amount of time and effort forum members spend helping 'postees' don't you feel there should be some kind of requirement that after a person has solved their issue they post a complete project with docs, sw, hw photos and code ? There was a guy who had problems with his autopilot system for a boat using a mega2560. He never posted his code despite repeated requests by those trying to help him.. When he got it working he never posted anything, wiring, code, nothing. Where do you draw the line between open source and proprietary ?

raschemmel: GREAT LINK. I didn't know about that till now. Is there a place or method for members to upload knowngood libraries with hw docs & photos for others to use ?

Not really. I've not seen one. The problem is that from a comercial standpoint, i.e. making money which is what a business is about, there is no money in providing such a service. In fact, in many cases, it would be a collection of h/w and s/w of direct competitors. That my guess as to why it hasn't happended and probably won't.

Also, I know my next question is not relevant to the topic of this post but I wanted to get your opinion. Given the amount of time and effort forum members spend helping 'postees' don't you feel there should be some kind of requirement that after a person has solved their issue they post a complete project with docs, sw, hw photos and code ? There was a guy who had problems with his autopilot system for a boat using a mega2560. He never posted his code despite repeated requests by those trying to help him.. When he got it working he never posted anything, wiring, code, nothing. Where do you draw the line between open source and proprietary ?

I don't think you could ever make it a requirement. The best way to solve some of that is for those with the knowledge to simply not help them unless they provide the needed/desired information. And you do see some of that. Consider some big players that do this. Apple - They take BSD unix code and use it for MACOS and IOS but don't return anything back because the BSD license allows it to be used in closed source projects/products. Ubuntu - They take debian linux code and modify it (they do release it so its not closed) but they don't work with the linux community very much to get the broader debian based updated. Lots of this comes down to personal philosophy. Within the opensource community there are different licenses. Some are more liberal than others. Some require sharing your code in order to use it and some don't Licenses like LGPL, BSD, and a few others allow users to take the open source code and then use it in a closed/private project/product. The GPL v3 license is the strictest open source license in that it mandates that if you use any GPLv3 code then ALL of the other code in the project/product must be open source and released. The different opensource philosophies are like religion. People will dig in their heels based on their personal beliefs. Businesses HATE GPLv3 because it would require them to open up their sources which they consider to be their valuable IP to all their competitors. Businesses just want the free s/w and don't want any restrictions. True open source believers prefer GPLv3 because it doesn't allow an entity to use open source in a closed source project and thereby profit off the labors of others without returning anything. My personal believe is that I'm a believer in open source and believe that business entities should not be able to profit off the efforts of others. So that is will no longer offer support or participate in any projects that are not GPLv3 and why I released my openGLCD proejct as GPLv3. Because in my mind if you release your code using a license that allows it to be used in a closed source project, you are in effect an unpaid s/w slave to the entity that will be proffiting from your labors. i.e. I'll share my code and labors if you share yours.....

There is a nice list of shields - shieldlist.org - not complete but definitely attracting customers with info about competitors....

Thanks for the explanation. I guess the 'Tribal Knowledge' is our only hope of getting something working.