First of all let me say that we are very glad to have any contributions to the library; as the more people developing and looking over and testing it, the more likely it is to be stable and succeed. I'm not one for liking hard and fast rules, but like any community a few rules are needed in order to ensure things go smoothly.
- Don't start working on any large features without creating an issue first, this allows for feedback before proceeding, potentially avoiding a lot of wasted time later.
- Please try and use a similar code style to the rest of the project. At an absolute minimum please keep fields, variable styles and braces the same. Use camel case for all variables. Functions should always start with a lower case letter. Classes always start with an upper case letter.
- Please be sure that you're happy with the licensing model of this project. For any files you create, you can retain copyright, but they must be provided under the same Apache as the rest of the project, and with copyright granted to the library at the top of the file.
- If you edit keywords.txt, be exceptionally careful that tabs have not been replaced as spaces.
- Please make sure that compiler warnings are set to All, (Arduino Menu -> Preferences -> Compiler warnings)
The apache license allows others to use this library commercially. You may ask why that is important, it is important because any strong and stable ecosystem, such as Java, has got where it is because it's used by the Hobbyist, the Enterprise, start-ups and just about any other group you care to mention.
I think it's a shame that so many Arduino libraries are GPL instead of Apache, LGPL or MIT; as it means these can't be used by commercial entities, at least without contacting the vendor of the library first. Will they bother to do that, NO, they will just write what they need to get the job done and probably never give it back. If the library were open, and this same commercial made changes, they could well decide to give them back!