I got an interesting e-mail today about DuinoMite:

"Duinomite seems to be very clever, but it looks like a porche car with coal for fuel. GW basic is not what somebody expects for a ..DUINO. Is there another Software, or compatibility with PINGUINO?"

As other people may think the same I would take some time to explain why DuinoMite is great and why it does not have to be yet another Arduino :-)

First of all yes, DuinoMite can be pre-programmed with the Pinguino boot loader and can be used the same way as any other Arduino board, with libraries and written sketches.

Also DuinoMite can be programmed by professionals directly in C, no problem with this, but there are hundreds of such boards so this was not our major point when we built DuinoMite.

What DuinoMite MM Basic offers though is the fastest way to do something or prove a concept from the scratch. Yes, Basic interpreter is slower than C compiled code (although with the latest firmware the speed is about 30,000 lines of code per second), but anyone who ever worked with Arduino will confess that Arduino sketches are also slower if the standard Wire library is used to write directly to the ports. At least this is what we have encountered - if we write directly to the ports the speed is about x2 x3 times faster than if we use bit bang with Wire library.

FIRST: Remember, there are millions of applications which do not require rocket speed.

SECOND: The MAJOR point with DuinoMite is that it is a self contained COMPUTER i.e. you do not need a PC to write your code, this can't happen with Arduino and Pinguino as they require Compilers and linkers, several MEGABYTES in size, to work and this can't be put on a small microcontroller. Also compiling the code alone takes a lot of time, one of the people who evaluated our Arduino boards asked: "Is it normal that when I press the compile button I have to wait 20 seconds until the code is completed and loaded to the board?", unfortunately the answer is YES, this is GCC and all compilations go through a lot of read/write cycles and Hard Disk routines which make the compilation slow. With DuinoMite MM Basic, you just write your code, then type RUN and the code runs without delay.

THIRD: Let's assume we have brand new task to do and there are no libraries, no existing code etc. for it, for the sake of simplicity lets imagine this be to measure temperature.

We choose an LM335Z temperature sensor which has 10mV/C output and 2.73V at 0C.

I can write MM Basic code to read the temperature as simple as this :

20 SETPIN 9,1
30 PRINT (PIN(9)-2.73)*100

On the first line I tell MM Basic that I want to use PIN number 9 on the DuinoMite connector as an Analog input.

On the second line I calculate and print the temperature.

Now tell me what amount of time you would need to write same code in C or Arduino if there is no libraries for it? You have to study the PIC32 datasheet, to initialize a lot of registers and debug your code etc.

You will lose HOURS for what I did in SECONDS. This is the charm of MM Basic.

Now let's assume we need to store the temperature in a log file, all we have to do is to add two new lines of code:


and to modify 30 as:

30 PRINT #1, (PIN(9)-2.73)*100

and now we have a temperature data logger.

If I want to add the Date and Time stamp in the results I again will modify the line 30:

30 PRINT #1, DATE$, TIME$, (PIN(9)-2.73)*100

and now I will have date/time stamp before the temperature logged

So to conclude: DuinoMite is one of the easiest ways to do something and prove a concept without going deeply in datasheets, registers etc. It may run slower compared to the direct C programming but it's much easier to be used by non-professionals.

Don McKenzie from Dontronics pointed me to another interesting story on this subject:

Why Johnny can't code
BASIC used to be on every computer a child touched -- but today there's no easy way for kids to get hooked on programming.

For three years -- ever since my son Ben was in fifth grade -- he and I have engaged in a quixotic but determined quest:

We've searched for a simple and straightforward way to get the introductory programming language BASIC to run on either my Mac or my PC.

Why on Earth would we want to do that, in an era of glossy animation-rendering engines, game-design ogres and sophisticated avatar worlds? Because if you want to give young students a grounding in how computers actually work, there's still nothing better than a little experience at line-by-line programming.

Read the full story at: http://www.salon.com/technology/feature/2006/09/14/basic/index.html