Skip to content

picoruby/picoruby

Repository files navigation

C/C++ CI

PicoRuby

PicoRuby is an alternative mruby implementation which is:

  • Small foot print
    • ROM: 256 KB (depending on build config)
    • RAM: 128 KB or less (depending on app code)
    • (Figures in 32 bit architecture)
  • Portable
    • Depends on only standard C library such as glibc, Newlib or Newlib-nano
  • Reference microcontroller boards
    • Raspberry Pi Pico - Arm Cortex-M0+, 264 KB RAM, 2 MB Flash

API documentation with some demo videos

https://picoruby.github.io/

Depends on

Used by

PRK Firmware

Build

  • Prerequisites
    • C toolchain
    • git
    • ruby (should be CRuby)
  • git clone --recursive this repository
  • cd picoruby
  • rake builds binaries for your machine
    • PicoRuby basically uses mruby's build system as it is
    • rake -T shows available subcommands

Cross compilation

See an example: build_config/r2p2-cortex-m0plus.rb

Binaries

rake command will make three kinds of executable binary

  • bin/picorbc
    • bin/picorbc path/to/source.rb makes path/to/source.mrb that is VM code runs on an mruby-compatible virtual machine
  • bin/picoruby
    • bin/picoruby source.rb executes Ruby just like normal ruby command
    • You can also do like bin/picoruby -e 'puts "Hello World!"'

--verbose option

bin/picoruby --verbose -e 'puts "Hello World!"' shows debug-print like this:

(Replace [path/to/]mmruby with bin/picoruby --verbose in mind. It's an old name)

Roadmap

PicoRuby is still developing halfway towards finishing as of 2024.

See implementation roadmap on issue/6

Contributing to PicoRuby

Fork, patch, then send a pull request.

Acknowledgement

Part of this project was coded by Monstarlab with the support of the Ruby Association Grant Program 2020 and 2021.

See also picoruby/picoruby/wiki.

License

Copyright © 2020-2024 HASUMI Hitoshi. See MIT-LICENSE for further details.

Copyright © 2020-2021 Monstarlab. See MIT-LICENSE for further details.