Skip to content

mvidner/lignite

Repository files navigation

Lignite: Program LEGO Mindstorms EV3 in Ruby

Lignite is a set of Ruby tools to interact with LEGO Mindstorms EV3. It uses the original LMS2012 firmware, so ev3dev is not required.

At this point the tools are still rather a thin wrapper so it will be useful to have the EV3 Firmware Developer Kit and EV3 Communication Developer Kit documents at hand for reference: see the "Advanced Users – Developer Kits" section of the Mindstorms Downloads page.

Gem Version Build Status Code Climate Coverage Status

Features

  • Connect via USB or Bluetooth
  • Execute Direct Commands
  • Execute System Commands, including
    • Upload RBF programs
    • Run RBF programs
  • Compile Ruby into RBF programs
  • Supported platforms: Linux (bug reports or pull requests for Windows or Mac are also welcome)

Getting Started

Running the built-in demo program: Connect the brick with a USB cable. Run

sudo ev3tool start BrkProg_SAVE/Demo.rpf

In the usual case where the folder and the program name are the same, a shortcut works: ev3tool start everstorm is like ev3tool start everstorm/everstorm.rbf.

The sudo is needed to access the USB device. With udev you can configure the system to allow access to all users like this:

echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0694", ATTRS{idProduct}=="0005", MODE="0666"' \
  | sudo tee /etc/udev/rules.d/99-org-rubygems-lignite-lego-ev3.rules

To connect with Bluetooth, configure the address and pair the device (FIXME: how; troubleshooting?)

See also the included examples.

Hello World

require "lignite"
dc = Lignite::DirectCommands.new
dc.ui_draw_clean
dc.ui_draw_text(Lignite::FG_COLOR, 20, 40, "Hello, world!")
dc.ui_draw_update

Acknowledgements

Thanks to David Lechner of the ev3dev project for the ev3.yml bytecodes file.

Packages

No packages published

Languages