I modified the official LiquidCrystal library and want to upload it

I am new to the Arduino programming, but I wanted to work with a LCD and found myself in the situation of not having the control I needed with the official LiquidCrystal library. So I made some modifications to it that I consider improvements and I would like to share them, but I dont know how and where. :( Now I am still working on the library but I succeeded to make a low level read for the LCD. :D If someone would be so helpful to point me in the right direction I would sincerely appreciate it, and if someone would want to put something new in the library and dont know how, I would offer myself for help as much as I can. THANKS! :)

Put it up on the Playground.

Thank you very much for the fast reply! But I would really like to participate to the official LiquidCrystal library so that no user has to download additional libraries and because the most part of the library is not my work... :blush: If it is not possible, OK, but I would be much more excited for participating for the official library.

Many people have improved the LiquidCrystal library over the last few years.

Since about Arduino 0019, which John Raines dramatically improved its speed, added 40x4 format and numerous other improvements, the Arduino Team has not accepted nearly any patches to LiquidCrystal.

I salvaged John's awesome work and renamed it LiquidCrystalFast, which is available here:


Again, LiquidCrystal got numerous 3rd party improvements (apparently all redone without John's work) here:


It would be really nice if somehow these many improvements, plus whatever you're going to do, could someday be accepted into Arduino's official version. But before you start, know that LiquidCrystal has been pretty much frozen in Arduino and others have come before you, making pretty awesome improvements to the library which have not been accepted.

Your first step should probably involve communicating with the Arduino Team. You might also review these 2 impressive improvements to the library first. Perhaps if you propose merging all these improvements, they might be willing to accept them?

Whew! Glad you stepped in with that knowledge burst Paul :)

Here is the site for the non-official LiquidCrystal library, in short with fast support fot 1wire connections (160fps on a 16x2 LCD - almost 2x faster than the original parallel library): https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home

I got an answer on the google groups thread:https://groups.google.com/a/arduino.cc/forum/#!topic/developers/iYEERo4qMyY that I should submit the modifications to the github official repository, this is what I think I will do when I am done with the library. I propose you to make the same thing if you want your changes to appear in the official library... It is your work so I do not want any credit for that by merging the changes. I hope all our modifications will get in the library. I wish you as much luck and success as possible!

I think that the entire team that collaborates in the "New LiquidCrystal" library is very happy the way it is: fast, versatile (it supports many different LCD driving interfaces such as parallel, I2C, shift register in various flavours - SPI and one wire coming soon - all driven through the same interface) and very reliable. This means you can change your setup (HW) and just change how you create the object. The latest version has had over 14000 downloads and it is currently being use by Marlin in the RepRap project for 3D printers. It is also used in many, or most, menu driving libs out there. Have it pulled in or not into the Arduino code base, well the library is there. If the want it, they can take it. Most users are now scrapping the old one and changing it for this one any way. What we also decided in the team was not to be burden with its maintenance nor effort to get it pulled in to the Arduino IDE.

Wish you luck!