===== Bitlash Online =====
Welcome to Bitlash Online.
Bitlash is an open source interpreted language shell and embedded programming environment. This website documents Bitlash for the popular and useful [[http://arduino.cc|Arduino]].
The Bitlash shell runs entirely on the Arduino and supports many of the familiar Arduino functions. Bitlash interprets commands you type on the serial port:
bitlash here! v1.1 (c) 2010 Bill Roy -type HELP- 1383 bytes free
> print "Hello, world!", millis()
Hello, world! 11939
>
It's easy to extend Bitlash by naming a sequence of commands as a [[macros:overview|Macro]], which is like a new word in the Bitlash language. A Bitlash application is a set of such macros, and since they are stored in the EEPROM, Bitlash can start up your application automatically at boot time for standalone operation.
In cases where you need native C code to get closer to the hardware, perhaps for speed or to interface with a custom peripheral,
it's also easy to integrate your C code with Bitlash as a [[userfunctions|User Function]].
Read on for more about Bitlash.
==== Quick Start ====
* [[Download]] the latest release of Bitlash for the Arduino
* [[Install]] Bitlash and upload it to your Arduino
* Proceed to the [[docindex|Documentation Index]]
* Read more [[about|About Bitlash]] and the [[Author]]
----
==== What is Bitlash? ====
Bitlash is an embedded interpreter that runs in about 14k of memory on an Atmel AVR processor. It works nicely with Arduino to make a development and prototyping tool for those situations where you need to bang some bits on the Arduino but writing a sketch in C is premature. It's very convenient for bringing up and debugging new hardware.
The Bitlash command language is very similar to Arduino C and includes a large repertiore of the familiar Arduino C functions so you can hack your hardware from the serial command line or even over the internet via telnet.
You can store commands as [[macros:overview|macros]] in EEPROM and autostart them at bootup, making the automation and maintenance of small applications very easy. Here is the classic Blink13 program as a complete Bitlash application in two macros, **toggle13** to toggle the led and **startup** to initialize and run it:
> toggle13:="d13=!d13"
> startup:="pinmode(13,1);run toggle13,1000"
> boot
(d13 flashes)
----
==== Release Announcements ====
=== Bitlash 1.1 Release Announcement ===
Bitlash 1.1 is available at the [[download]] page. Here is a summary of the changes:
* **User Functions:** This release is mainly about the new [[userfunctions]] feature, which makes it Really Easy to add your C function to Bitlash. You'll find some new examples of this feature in the Arduino IDE at the File -> Examples -> bitlash menu item, and documentation at the [[userfunctions]] page.
* **New Functions inb() and outb(): ** Read and write the AVR registers from your Bitlash scripts. Details on the [[functions]] page.
* **Deprecated Functions:** These functions didn't make the cut at spring cleaning time and are no longer supported in the Bitlash core: du(), map(), shiftout(), sa(), sr() and usr().
=== Bitlash 1.0 Available Now ===
After over a year in development Bitlash 1.0 is available for [[download]].
There is one bug fix since the RC2 version, renaming the folders and files in the /examples tree to remove the '-' which became deprecated in Arduino 0017.
Bitlash 1.0 is tested on [[http://arduino.cc/en/Main/Software|Arduino 0017]] and [[http://code.google.com/p/arduino/downloads/list|Arduino 0018 RC1]]. The [[install]] instructions are updated for 0017.
== Documentation Overhaul ==
The Bitlash documentation is now hosted in this wiki. Please send comments to the [[Author]]
----