May
2004, Issue 166
Embedded
Java Controllers
by
D. Jay Newman
Before
you start piecing together your next robotics puzzle,
consider what Jay has to say about the power of embedded
Java controllers. In this article, he introduces you
to Systronix Java controllers and the SimmStick bus
they use. He concludes with information about the
code and hardware that he used to create a simple
motor controller for R/C servos.
I’ll
admit it. I’m used to programming when I have lots of
memory. Although the first computer that I built had
18 KB of RAM, which was large for the day, every year
computers gain more memory. I wouldn’t even think of
buying a laptop with less than 1 GB of RAM now—and perhaps
more by the time this article sees print.
Later,
I became interested in embedded systems. The rules changed.
I stepped into a time machine, and suddenly I had RAM
that could be measured in kilobytes again, and not many
of those. Even the stamp-type controllers still had
extremely limited memory. Also, most of these microcontrollers
were programmed in assembly language, C, and Basic.
Yes, I can handle all of these languages, but I prefer
Java and a bit more memory.
Then
a small company called Systronix came out with the JStamp.
This is an aJile aJ-80 Java processor put into a 40-pin-wide
DIP package with 512-KB RAM and either 512 KB or 2 MB
of flash memory. And its native machine language is
Java bytecodes! So, I ordered a JStamp+ (the one with
2-MB flash memory) and started developing. This controller
is more powerful than any of the other Stamp processors
I’ve found, and it is reasonably priced.
Systronix
then came out with the JStik, which uses an aJ-100 processor
that benchmarks approximately four to five times faster
than the aJ-80 and has much more RAM and flash memory.
The JStik also has built-in Ethernet, two COM ports,
a high-speed I/O (HSIO) port, and the JTAG connector
for programming.
My
goal here is to introduce you to the Systronix Java
controllers, the SimmStick bus used by them, and the
differences between Java 2 Micro Edition (J2ME) and
standard Java. Furthermore, I’ll explain the code and
hardware needed to create a simple motor controller
for R/C servos. I would also like to say up front that
I use embedded controllers for robotics. However, pretty
much everything in this article applies to other embedded
systems as well.