From longtime the common opinion about Java is that it is a heavy environment, which requires a powerful hardware and sometimes it seems the power is never enough. It seems that in order to do the same tasks that we could do 10 years ago, even the last generation machines are not enough.
That is simply not true.
The slowness of many Java programs is due to the wrong choices of the software architects, who have given a low priority to the efficiency, preferring the extreme flexibility or the productivity, when it was the case of not concentrating to the delivery time only…
It is a plaisure to discover on the Internet some little jewels, such as the Tini , where a 8 bit microcontroller can run some small Java programs in a decent way.
A nice picture about the Tini environment is at this link.
The main target is monitoring and the remote control of some devices by the RS232 port, with the chance of collecting some data off-line too.
In the demo board you can find two serial port RS232 and an ethernet port, that is enough for several interesting applications, for instance in order to read data from the industrial systems.
Moreover there is a 1-Wire port, a protocol that is used mainly in the industrial environment.
We should point, to say all the truth, that the instruction set is comparable to the old JDK 1.1.8, so we are extremely far from the modern programming, which is based on huge frameworks, but in the industrial environment, when the main language is still C, to go to Java is a nice jump.
In order to program for the Tini, you have to download a free SDK, where you can find several tools with their sources.
By default the Tini is reachable on network by Telnet and it shows a shell, which is similar to the Bash shell, but it is extremely smaller than the one we find on Linux.
In order to compile a program for the Tini platform, it is useful, almost necessary, to convert the standard bytecode in a reduced format, by a free tool that is provided from Maxim in the TiniOS SDK, there is a confortable library for Ant, which makes the task easy.
You can configure Eclipse, using the JDK library that Maxim provides. It adds some proprietor packages, which optimize the performances for some specific uses.
You can copy you program by FTP to the Tini, after you have compiled it in that way. When you decide that your software is stable enough, you can write it to the Flash memory of your Tini, replacing the default shell, so it can be executed after a reboot.
Another important element is the watchdog, a software component that you can activate on demand. It resets the board automatically, if it is not ‘feeded’, by a method call, in a fixed time. That let a reboot, if your application hangs, without any user action.
That board do not need any fan and it keeps its filesystem in the RAM, which is battery powered, so it can keep the files, even when the system is off.
We can say it is a simple system, but a very well projected one.
It is a system that sues those environments where a PC would be too much and perheaps weaker. I had the chance to use this solution in production environment, so I feel I can suggest it.
I would like to invite you to download from www.byteliberi.org a small example project in order to approach the development on the Tini platform.