August 15, 2013

Create a Virtual Machine for Arduino

For something completely different comes the following project by Nakul Rao I. It is a fascinating implementation of a simple virtual machine environment that runs on an Arduino Mega 2560 or compatible. For the uninitiated, a virtual machine (VM) can be thought of as (from Wikipedia):

A virtual machine (VM) is a software implementation of a machine (i.e. a computer) that executes programs like a physical machine. Virtual machines are separated into two major classifications, based on their use and degree of correspondence to any real machine

And this is what Nakul has managed with his Mega. It can run one or more virtual stacks concurrently, and as Nakul notes all the VMs have their own private stack, program memory, instruction pointer, stack pointer and a couple of flags – output ready and execution done. The concepts may seem a little abstract to some, however it's an interesting experiment for those interested in computer science itself. 

You can find out more and also download the Arduino sketch from Nakul's interesting website. And for more, we're on twitter and Google+, so follow us for news and product updates as well.

When Ethernet-enabled projects outgrow the memory space available from normal Arduino-compatible boards, running out of program and flash memory space - it's time to upgrade to the Freetronics EtherMega:

Quite simple the EtherMega is the fully-loaded Arduino-compatible board on the market today. Apart from being completely Arduino Mega2560-compatible, it includes full Ethernet interface, a microSD card socket, full USB interface, optional Power-over-Ethernet support and still has a circuit prototyping area with extra I2C interface pins. So if your project is breaking the limits, upgrade to the EtherMega today. 


Leave a comment

Comments have to be approved before showing up.