The BusPirate object is an eventEmitter built on top of a node Serialport. It gets the hardware into raw bitbang mode, then just sends and receives raw data from the hardware, and lets other modules handle the specifics of each mode.

Although Javascript is probably not often used for hardware debugging, this project has been an interesting experiment which has proved to be useful. It was started because I don't like Python and the Ruby bus pirate bindings weren't working.