Over the course of this project, we have learned to use quite a number of software packages and platforms. We preferred to use free online tools or, at least, free tools to ensure that any person with an internet connection could use it. Here follows a brief overview with associated newbie remarks.
We want to share all our code and GitHub is undoubtedly the best platform to use. To make the different types of code available is an easy way, we have a small wiki page (https://github.com/nvandegiesen/Team_TAHMO/wiki). GitHub is not 100% intuitive if you expect simply a big 'synchronize' button between a local and remote repository. Instead, one first has to copy the new file into the local repository, then push, then commit. It is still not so clear why you would want to push something you do not want to commit. Still, after a while, it provides a liberating feeling that all versions are under control.
Being able to code Arduinos on any computer connected to the internet, including a Chromebook, is a very attractive feature of codebender.cc. What is also very helpful is its very broad support for all Arduino types and derived variations, as well as bootloader installation capacity. It also has a very large library, or set of libraries, built in. There is a possibility to clone projects but we have not really explored its capacity to co-develop online or its version control.
For the final code development, which required interaction between different programmers in different countries, use was made of titanpad.com (https://titanpad.com/ep/pad/view/ro.qU4XtrbbJRu/rev.585). One has to explicitly copy new code into the window and it has a neat time slider to follow the development.
For the electronic circuit/PCB design, we used Fritzing. According to some, the continuous present of Fritzing is Fritzinging but that seems a bit over the top. The main attraction of Fritzing is that it allows schematized representation of breadboards. One can then move to a formal schematization and PCB design, including production of Gerber files. In the end, we did not use the breadboard part and there are probably handier ways to design a PCB, but the final result was very satisfying.
For the design of the housing, we used OpenSCAD, which is a fully parametric 3D design tool. As is stated by the authors, it is not so much meant to make pretty things but functional technical designs. The learning curve is relatively short and one quickly is able to build serious designs. OpenSCAD exports .stl files, which can directly be used by most 3D printers. For one prototype, we used the very affordable Da Vinci Junior 1.0A 3D printer, which used XYZware to drive the printer. Importing .stl files and printing, including supports etc., was a seamless experience.