It's been a while since I posted an update on Bitlash, so there's a lot of news. I apologize in advance for the length.
Bitlash is an open source interpreted language shell and embedded programming environment for the popular and useful Arduino. It is provided as a library you can integrate with your Arduino C/C++ program, and there are over a dozen example programs demonstrating various integrations.
The Bitlash interpreter runs entirely on the Arduino and, in its simplest form, interprets commands that you type in a terminal window or send programmatically to the serial port:
bitlash here! v2.0 (c) 2012 Bill Roy -type HELP- 942 bytes free
> print "Hello, world!", millis()
Hello, world! 11939
>
Most Arduino library functions are available in Bitlash, and it's easy to add your own functions, written either in Bitlash or in C. Functions written in Bitlash are stored in EEPROM, which makes it possible to develop fairly complex applications without writing any C.
Bitlash is at version 2.0. You can get the latest version from GitHub at GitHub - billroy/bitlash: Bitlash: a programmable command shell for arduino - documentation at http://bitlash.net
Bitlash works with Arduino versions from 0022 through 1.5. It ships with 17 examples, including a programmable web server and a Redis client, showing how to integrate the Bitlash library into your Arduino solution.
There are a number of Bitlash-related projects up on GitHub at https://github/billroy that also may be of interest.
node-bitlash is a Bitlash client written for node.js. It allows control of Bitlash from node.js programs on the PC. Two example programs in this package: bitlash-tcp.js exposes Bitlash the Bitlash usb-serial interface over a TCP port, suitable for telnet operation, and bitlash-web.js exposes Bitlash as a web service: you POST commands and receive the Bitlash output in the reply. (GitHub - billroy/node-bitlash: Control Bitlash-enabled Arduinos with Node.js)
Arduino Redis Live Chart: This is a node.js application that retrieves data posted to a Redis server by the BitlashRedisClient running on Arduino, and charts it in the browser using D3. (GitHub - billroy/arduino-redis-datalogger: Node.js/D3 app to graph data logged to Redis by the BitlashRedisClient)
Arduino Live Chart: This is a node.js application that collects data sent over the usbserial port by Bitlash and charts it in the browser using D3. (https://github.com/billroy/arduino-serial-livechart)
run: The Run library lets you schedule the calling of functions in a non-Bitlash C program just like the Bitlash run command. (GitHub - billroy/run: Arduino function scheduler library: runs your C function at a specified interval, like the Bitlash run command)
Feedback and bug reports on Bitlash are welcomed here: Issues · billroy/bitlash · GitHub
Happy hacking,
-br