Skip to content
A Compact Scheme System for Microcontrollers
C Racket Scheme Yacc Lex Makefile Other
Find file
New pull request
Latest commit bde85aa @stamourv Fix tests.


This is a very small Scheme system designed to run on small
microcontrollers, currently PIC18 and ARM.

It consists of

* a bytecode compiler which compiles Scheme source code to bytecode.
  The bytecode compiler is run using Racket, usually on a

* a bytecode interpreter which can be either compiled to run on a
  microcontroller, or to be run on some common operating systems, at
  least GNU/Linux (Windows support hasn't been tested in a while,
  though, and especially the networking part might not work out of the
  box). It is written in (mostly) portable C.


1. Install Racket (needed to run the bytecode compiler)

2. Build the VM:
 This will build the VM with the default configuration (workstation,
 no deubgging). To configure the VM for another architecture, or with
 different options, run
     make help
 from the `vm' directory.

Note: gawk is required to build the VM.

2. Compile a Scheme program:
     ./picobit prog.scm

3. Run the resulting program:
     ./picobit-vm prog.hex

Note: The `p' script is a shortcut for compiling and running programs:
     ./p prog.scm
 is equivalent to
     ./picobit prog.scm ; ./picobit-vm prog.hex


  * A paper describing PICOBIT has been presented to IFL 2009:
    Slides from the presentation:

  * S3 (Small Scheme Stack) : A Scheme TCP/IP Stack Targeting Small
    Embedded Applications
    Slides from the presentation:

 PICOBIT is a descendant of the BIT and PICBIT systems. You can find
 papers describing these systems at:


 Marc Feeley originally wrote PICOBIT around 2006.
 Vincent St-Amour took over development in 2008.
 Jim Shargo worked on a port to Racket in 2011.
 The Racket port was completed in June 2011.
 Peter Zotov (whitequark) ported PICOBIT to ARM in August 2011.


 PICOBIT is released under the GPLv3.
Something went wrong with that request. Please try again.