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 | Meaning |
---|---|
Implemented and tested | |
Implemented, not tested | |
Not yet implemented | |
Not applicable |
Module | PIO | SPI | UART | TMR | PWM | NET | CPU | ADC |
---|---|---|---|---|---|---|---|---|
MCU | ||||||||
LM3S8962 | ||||||||
LM3S6965 | ||||||||
i386 | ||||||||
AT91SAM7X256 | ||||||||
AT91SAM7X512 | ||||||||
STR912FW44 | ||||||||
LPC2888 | ||||||||
STR711FR2 | ||||||||
AVR32 | |
|||||||
STM32 |
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 |