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
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
FIRST: Remember, there are millions of applications which do not require rocket
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
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:
10 OPEN "TEMP-LOG.TXT" FOR OUTPUT AS #1
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