Skip to content
(now obsolete) archive of the Free42 project
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

This is my own README for the Free42 project. Please see also the original README.

Recently I discovered that an HP42S clone might surface from SwissMicros, and I contacted the (currently deactivated) Free42S forum to see if there was any willingness to further open source this project.

One might wonder what the relation is between those two projects: it's all about preservation.

One recurring issue of many websites is that they come and go - there is no guarantee that a site will exist after X years. Currently web technology (heck, here is the proof) allows to easily create websites without much effort - which means those sites often disappear as quickly as they came, because there is no deeper motivation to keep a site going. But web sites also disappear for other - more mundane - reasons. The end result is often users that are left behind.

Similarly, many hardware projects surface but will eventually die, leaving behind owners that have the hardware but not the software to keep that hardware running. Example include synthesisers (more specifically those that can be updated via USB, think of e.g. Tetra), SwissMicros devices and the public part of their software (eg the DM-1x Javascript decoding utility, the documentation, etc), JAERO, DGS and more. Often, those websites are difficult to archive (for example, I can't easily save a webpage from SwissMicros - this might not be on purpose, and it very much likely the result of choice of tools, but the end result is that one has to resort to web scrapers etc...).

What most of these projects have in common is

  • open source software and/or hardware
  • a web site crammed full of useful info and additional documentation, but disjoint from the source code. That website will disappear at some point in the future, leaving behind bare source code (which is more likely to survive because it will be collected by anyone understanding its primary value). A simple example of valuable information that should not live outside the Free42 project is this page - imagine the website is gone, how would one get that info without reverse-engineering Free42s?

Some of these projects also make it difficult to contribute, by insisting on archaic contribution mechanisms. I can understand that a project that has been ongoing since 2004 is not likely to have caught up with recent evolutions (for example, it is still using Eclipse for the Android component), nor that there is a need to overhaul tools that work fine.

But the point is that I believe that such projects deserve to outlive their owners, but to guarantee that, a mechanism must be used that facilitates their survival: by replicating the entire project, and ensuring that it can easily be contributed to. It is a pity that such sites have to be scooped up in some museum or internet archive site.

Web pages could be e.g. Markdown pages inside a project (which gives a nice rendering on GitHub and is easy to update), rather than separate (usually private) websites project: this would also allow to propagate and share news as well as sourcecode, rather than force users to visit a website to discover news. JAERO and Free42s are examples of this issue, as those sites carry a lot of extra information that contributes to the value of the project. One will admit that Markdown allows for far less nice layouts than custom HTML, but the priority here is ease of access, distribution, survival, ... above nice (but sometimes difficult and sometimes even unavalaible) tools: KISS.

Don't believe me? Try (it's referenced in the WP article).

What is missing in this project

There is more important stuff scattered around that belongs in the repository (or maybe better in subprojects, but they should remain together under a "master HP42 umbrella project"):

(the list is probably not finished)

problems in this project

These are only some observations.

  • VERSION.rc is clearly NOT to be versioned, as this is redundant information that is already stored in the VCS (by using e.g. tags).
  • migrate to Gradle
  • needless dependency on SVN: for example, in the build scripts, SVN is invoked, while in fact this should be transparent to the build system.
  • keystore information, and other files should be generic should reside in template files (gitignored) with dummy arguments
  • migrate to the newer standalone toolchain creation.

Update May 2017

It appears that Thomas Okken has, after all, decided to also put Free42s under Git: (meanwhile removed).

This makes my fork useless, but I assume my repo contributed to this decision, which is a good one.

Update June 2017

Update to the previous comment: from what I remember, his repository included GitHub categories that were quite similar to mine. I think my initiative triggered something, but for some reason Thomas completely backtracked.

Around May, the Google group was closed and the GitHub repository was removed. For me this reconfirms that Thomas is not quite prepared for open sourcing his code: it is highly questionable to withdraw such valuable resources from the community.

Another significant evolution is the popup of various similar Git initiatives that all attempt to preserve (or contribute to) the Free42 project (not all are of the same quality...):

As these are all isolated efforts, they might suffer from not having been cloned from the main repo (I didn't check). This is the result of Thomas Okken stubbornly sticking to tarball releases.

And several repos that contribute, and should all be centralised - in the end, these all depend on each other and on the main Free42 project:

Update October 2017

I discovered the DM42 forum at SwissMicro's (, and when trying to bring up the problems there, I got booted there too. It really appears there is a significant smell of dictatorship around the figure of Thomas Okken.

You can’t perform that action at this time.