


As many libraries written by the community are shared as git repositories, that's a good generic solution. I have a preference using my favorite editor and a Makefile which I have crafted to work against most use cases (and I even improved on that one that I'm going to share soon).įor the libraries, I prefer to keep them as their own repositories and use git submodule to include them to the project.

My way of organizing an arduino project is quite simple, all my project are git repositories so that there is at least the following: I would be interested to know how other Arduino project makers deal with these aspects in their own projects.Īlso note that I am open to changing my development process, including my IDE (currently I use Eclipse with the Arduino plugin most of the time, and then I ensure my projects can also work directly with the Arduino IDE). But we don't have an equivalent system for Arduino libraries. Java projects developers have maven repositories for that and that helps a lot in managing all external deps. What I find particularly tricky with Arduino projects is the management of external libraries dependencies.
ARDUINO SKETCH BOOK MANUAL
I can zip into a self-contained archive that I can send to a friend for him to build as easily as possible (no extra manual download).I can checkout anywhere on my hard drive and build the project from there (does it have to be a single location as imposed by Arduino IDE).
ARDUINO SKETCH BOOK CODE
I can entirely commit to a Source Code Management tool (including 3rd-party dependencies).Includes all project files as described above.Now for a single project, I need to define a directory structure that: Managing source control of your project means managing the version of all files used by the project including 3rd-party libraries. Third-party libraries (generally free open source, added manually to Arduino libraries directory)Īll this makes it hard to keep the whole code and doc of one project under Source Code Management (e.g.Libraries specific to the project ( MyProjectLibrary1.h, MyProjectLibrary1.cpp.).The main source code file MyProject.ino.Typically, any Arduino project but the simplest one will include: It's been a long time I've been looking for a good answer to this question.
