Introducing Bitlash
Bitlash is an open source interpreted language shell for the Arduino serial port. It runs on the Arduino and interprets commands that you type in a terminal window or send programmatically:
Bitlash is 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. 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 command sequences in EEPROM and autostart them at bootup, making the automation and maintenance of small applications very easy.
Bitlash 1.0 Release Candidate 2 is Available
The RC2 version of Bitlash 1.0 is available for download in the usual place.
This version contains a bug fix to restore proper handling of escaped characters in string constants. Hat tip to the crew at Rugged Circuits for finding it. You should take a look at their very nice GATOR Plus+ board, which runs Bitlash.
This version contains preliminary support for the Arduino MEGA; we would appreciate comments from MEGA users on how it works.
Finally, a doc update: here's the whole doc set as a .pdf file.
Announcing Bitlash 1.0 Release Candidate 1
The RC1 version of Bitlash 1.0 is available for download in the usual place.
This version, patched as required by bug reports, will ship as 1.0 shortly after the currently-pending Arduino 0016 release goes gold.
Here is a quick roundup of changes in this version:
- Bitlash for Arduino now ships as an Arduino library with example sketch files. Just drop the library folder into hardware/libraries, upload the bitlash-demo.pde sketch, and off you go.
- New "switch" statement provides easy state machine dispatch.
- The "run" command now takes an optional time-between-calls argument.
- This version is tested and working on Arduino 0014, 0015, and 0016-RC3.
- This version is tested and working with Sanguino using Sanguino 1.4 + Arduino 0014 and 0016-RC3.
- Preliminary support for the Arduino MEGA is coded and compiles, ready for testing.
Announcing Bitlash 0.9
Bitlash v0.9 is now available for download. Earlier downloads can be found here.
Here is a list of updates in Bitlash 0.9:
- Telnet to Your Arduino: AdaFruit Ethershield support
- Hardware support updates: Mega328P, Sanguino
- New functions: beep(pin, freq, dur) and shiftOut()
- Bitlash C API and the Macro Tastic Clock
- License updated to LGPL 2.1
- Documentation available as a single HTML file and in .pdf form.
Telnet-to-bitlash is working on the AdaFruit Ethernet shield. The interrupt-driven serial rx support underneath this feature should work with other ethernet shields, too. Details on the new Porting page.
How does 2x or 4x the flash and EEPROM sound? Bitlash support for the AdaFruit-sourced ATMega328 and ATMega644-based Sanguino is in this build. More on the Porting page.
Beep!
Integrate Bitlash into your application with the Bitlash C API. See the new API page for documentation on the API and a working clock example that triggers macros on the hour, minute, and second.
For compatibility with the community.
The README is now in .pdf form and contains the full contents of the web site. You can also see all the documentation as one big HTML page.
Announcing Bitlash 0.8
Bitlash v0.8 is now available for download.
Here is a list of updates in Bitlash 0.8:
- Printed output to any pin
- Improved web site and documentation
- Space and speed improvements
- Stealth beta release of our new serial-to-network proxy "bitty.py"
You can direct serial output to any pin using the "print #N:" construct:
The default output pin is the hardware UART on pin 0 and it runs at whatever baud you specified in the call to initBitlash(). Output reverts to #0 at the start of each new print command. You can use #0 to switch back to pin #0 in midstream as shown above.
Which you are reviewing now.
This version is a little smaller than 0.6 despite a considerable increase in functionality. Parsing and executing nested constructs consumes considerably less stack space so more layers of recursion are possible at your application's maximum depth.
Python hacker? Want to telnet into your Arduino from anywhere in the world? See bitty.py in the distribution for details and give it a spin. Works fine here, just needs doc.