Bitlash is an interactive command shell and application environment for Arduino. It implements a C-like language that can run from macros stored in EEPROM.
This release makes it Really Easy to add your C code as a Bitlash function. If you follow a few rules for setting up your function, you can wrap it in Bitlash without having to write a line of parsing code. You get all the parsing, macros, printing, and the rest of the runtime library for free. Read more about the user functions facility at http://bitlash.net/wiki/userfunctions and see the new examples in the Bitlash 1.1 distribution.
There are also new functions inb() and outb() for access to the AVR registers from Bitlash code. More on the Functions page: http://bitlash.net/wiki/functions
This version is tested with the recently-released Arduino 0018 IDE and works with 0017 as well.
Finally, there's a blog post at http://entropymouse.com with a complete walkthrough of the servo example, showing how add a user function to drive multiple servos with time-driven state machines in Bitlash.
Are you able to plan when bitlash can be compatible with xduino or mapple i.e stm32 board.
This board are much more powerfull and fast than arduino and IDE start to work.
What do you think about using such board for bitlash and do you think a year can seems a reasonable delay to achieve such a goal ?
I think using such a board for Bitlash is a great idea and would be very practical. One issue that would need to be addressed is the question of what to use in place of the AVR EEPROM for macro storage. Perhaps an SPI eeprom...
Bitlash is written to be very portable, and the source is open so anyone who pleases can take on a project like this. Bringing up the core on a new chip or platform is usually only a couple days' work, mainly involving thinking through differences like EEPROM, pin mapping, pin configuration models, etc. In this case, since the proposed platform has more generous resources, there would be less struggle with code size.
If someone is sufficiently motivated to take on such a port I am happy to provide support, both moral and technical. For an expert in the platform it would be a short slide of compiler bashing.
One issue that would need to be addressed is the question of what to use in place of the AVR EEPROM for macro storage.
Many of the "more powerful" microcontrollers with no separate eeprom have flash program memory that is more easily writable than the AVR's (ie writable at a much finer granularity than the boot/normal banking of the AVR.) For example, the Stellaris LM3S8971 has flash memory that is protectible in 2k blocks, erasable in 1K blocks, and writable 32bits at a time.
Have you thought about combining bitlash with Telemate (AVR-generated video)? Scan a PS2 keyboard during horizontal retrace. actually run the script during vertical retrace. Practically stand-alone. (and shades of Sinclair ZX80!)
Yeah I prefered the old site too. Get back the old bitlash logo at least!
It is really turning into something useful. I can't see myself using it for anything apart from a play around but I can see where it would come in handy now.
Now that is super cool, bhagman. I love to see people developing and publishing extensions like this. And what a great writeup. Thanks.
I have a concern about re-entrancy issues with doCommand() when it is used this way. See the blog post at http://entropymouse.com with some thoughts on the issues and a proposed approach that sidesteps them. Have a look and I'd welcome your feedback.