Current Status of Platforms and Modules Supported

As already stated, eLua allows you to run Lua completely on the microcontroller. A fast-growing set of complementary modules is also provided, for Lua programming eLua's generic (portable) peripherals.

The following features are ready or being implemented:

Porting eLua to another compatible platform should be as easy and painless as possible. Currently this is restricted to platforms for which the gcc+newlib combo is available. This might change in the future, but please not that this is not a priority of the project at this point.

Also, the Lua "core" comes in two flavors: "regular Lua" (using floating point as the number type) and "integer Lua" (using integers). We'll add more about this in a future tutorial about Lua. For now, it's enough to say that "regular Lua" will be able to perform floating point operations (but will be slower because the floating point operations will be emulated in software on the MCU), while "integer Lua" will only be able to perform operations with integer numbers (but support for fixed and even floating point can be added with separate modules) and thus will be faster.

Symbol Legends

Symbol Meaning
Implemented and tested
Implemented, not tested
Not yet implemented
Not applicable


Platforms x Modules Supported

The following table shows the status of eLua's modules implementation by platform.

Module PIO SPI UART TMR PWM NET CPU ADC
MCU
LM3S8962 Implemented Not Tested  
LM3S6965
i386 Not Implemented Not Implemented
AT91SAM7X256
AT91SAM7X512
STR912FW44
LPC2888
STR711FR2      Not Implemented  
AVR32
     
 
STM32
     





Status of features & roadmap

The following table shows the status of some existent and planned eLua features. 


eLua Features Status
Full Lua interpreter running on targets
Various Lua scripts examples running properly
Choose floating point or integer Lua
XMODEM transfer over UART
Embedded ROM (Flash) file system
Terminal / Console over UART or Ethernet
eLua command shell
eLua complete interrupt support
eLua "memory limiting" mode
FAT File System layer for mmc/sd cards
Embedded R/W file system Partially implemented and tested
eLua FP module (for integer Lua)
Embedded text editor
Lua debugging on target
GUI/IDE interface for eLua
GUI eLua build configuration tool
Embedded http web server



Generic Multi-Platform Peripheral Modules Status
PIO - Programable Input / Output
TMR - Timers
PWM - Pulse Width Modulation
UART - Universal Assincronous Rx Tx
SPI - Serial Programable Interface
CMP -  Analog Comparator
I2C 
CNT - Event Counter
CAN
NET - Ethernet module



Platform-Dependent Peripheral Modules Status
DISP - RIT OLED Display Support for LM3Sxxxx
LM3S - Luminary Micro kits onboard devices support (Leds, Buttons, ...)



Functional Abstraction Auxiliary Modules Status
GPS - NMEA0183 Sentences parsing and command handling
PID - Proportional, Integrative & Derivative Control
LCD - Liquid Crystal Display support
ROT - Rotary Switch & Encoder support
CHDK - Interfacing with Canon cameras also running Lua under CHKD
DISP - External text & graphics displays
FUZZ - Fuzzy Logic Control
HUM - Humity Sensors over SPI, UART, I2C, PIO, ....
TMP - Temperature Sensors over SPI, UART, I2C, PIO, ....
BAR - Pressure Sensors over SPI, UART, I2C, PIO, ....
X10 - X10 Protocol support for X10 Devices Mapping & Control
MCP - Magnetic Compass abstraction
PS2 - Play Station 2 Joystick interfacing support


If you need a module for a specific device support or logic & modeling abstraction, don't hesitate to suggest it in our eLua User's and Developers List. You may have one ready before you would imagine :)