Remote Control of Configurable Electronic Parts
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
examples
perl/Test
remote-fw
scheme
simulator
tests
tools
.clang-format
.gitignore
LICENCE
Makefile
README
common.mk

README

  chip-remote: A protocol for remote controlling runtime-configurable chips


Note: The framework was recently re-written. The documentation is NOT AT ALL
      up-to-date with this new implementation.


Many powerful and flexible electronic parts, are configurable at runtime via
simple interfaces like SPI or I2C. In prototyping, revising and testing, it is
useful to be able to control these chips from a computer, preferably via a high
level programming language.

This project specifies a protocol, that a common personal computer can talk to
a controller, that can actually talk to such configurable slave devices. The
protocol design attempts to support multiple configurable chips on different
interfaces with a single controller connection.

Much of the protocol is optional, to be able to implement compliant firmwares
for the most low-cost micro-controllers available.

The reference client implementation is done in Guile scheme. Scheme is a very
high-level programming language of the Lisp variety, that has (even though it is
one of the oldest programming languages available) a host of very powerful
features. Guile scheme is a free software implementation of the language, with a
lot of extensions, that is readily available on many platforms.

The remote-board firmware implementation has been done in C. It implements all
features of the protocol specification. A prototype board featuring an
MSP430f1481 micro controller from Texas Instruments has been built and
successfully tested.


Current contents:

  Directories:

  - examples/

    Contains example scripts that use the client library.

  - perl/

    This is a module path specific to any Perl scripts in the distribution.

  - remote-fw/

    Here you can find an example implementation of a remote firmware for
    microcontrollers that talks the chip-remote protocol.

  - scheme/

    This directory holds the reference implementation of the client library
    written in GNU Guile scheme.

  - scripts/

    Here, you can find some helper scripts, that may be useful when hacking on
    chip-remote source code.

  - simulator/

    The ‘simulator’ sub-directory contains a Perl script that opens a pseudo
    terminal and responds to bytes send to it like a remote board with a
    firmware that talks the chip-remote protocol would.

    It is used to implement interaction tests for the client library.

  - tests/

    Shockingly, this directory contains the project's test-suite.


  Files:

  - Makefile: In chip-remote, the top-level Makefile is only used run the
    test-suite.

  - LICENCE: The file contains the licence used with all software of the
    project. Note that “rccep-spec.org” uses a different licence that is
    contained at the bottom of the file.

  - README: This file...

  - client-library.org: This is a text-file, that describes the organisation of
    the client library in a little detail, so that one has an idea of how to
    approach the code.

  - compile: A helper script to byte-compile the client library, that is
    written in GNU Guile Scheme. "make byte-compile" uses this file.

  - cr-valgrind: This is a wrapper around ‘valgrind’ with a set of options
    suitable for chip-remote's ‘remote-fw’ example firmware, to find possible
    memory leaks.

  - dev-env: Use this to set some environment variables, so that you can work
    with the scheme code directly from the source-tree instead of having to
    install everything to the system first. Very useful during development.

  - guile-in-here: Starts a guile instance, that points its load-path to the
    code in the source tree via the use of ‘dev-env’.

  - install: This installs the project to the system. "make install" uses this.

  - install-scheme: This script installs the client library to the system's
    module path.

  - org-export: This script uses emacs with org-mode to turn org-mode markup
    into html, plain-text and pdf files.

  - single-test: Using this wrapper, you can run single “.t” files from the
    test-suite.

  - spec.org: This is the actual specification RCCEP protocol in org-mode
    markup for easy export to many popular formats.