Code Monkey home page Code Monkey logo

GRiSP Erlang Runtime

continous integration hex.pm version hex.pm license erlang versions

Website · Wiki · Forums


GRiSP 2 board on wood

Create amazing Internet of Things designs without soldering or dropping down to C. The GRiSP project makes building internet-connected hardware devices easier with Erlang!

  • Real bare-metal Erlang virtual machine (no operating system!)
  • Hard real-time event handling, using open source code
  • Digilent Pmod™ compatible connectors for sensors and actuators

This repository contains the Erlang runtime and support code for the GRiSP hardware platform.

Getting Started

The easiest way to get started is to use the Rebar 3 or Mix plug-ins for GRiSP.

Erlang

Install the GRiSP Rebar 3 plug-in globally by adding {plugins, [rebar3_grisp]}. to ~/.config/rebar3/rebar.config.

Create a new project:

# Create a new GRiSP application (use the real mount path of your SD card)
rebar3 new grispapp name=demo dest=/path/to/SD-card
cd demo

# Deploy the application to your SD-card
rebar3 grisp deploy

Hardware

GRiSP hardware supports many different connection standards:

  • GPIO
  • SPI
  • UART
  • I2C
  • 1-Wire

Peripherals can be connected to either PMOD ports or I/O pins directly.

GRiSP 2 (grisp2)

GRiSP 2 hardware

GRiSP 2 ships with the following features:

  • 1 × 100 Mbit/s Ethernet port
  • 1 × Wi-Fi 802.11b/g/n WLAN
  • 1 × GPIO PMOD Type 1A (12-pin)
  • 2 × GPIO pins (14-pin & 6-pin)
  • 1 × SPI1 PMOD Type 2 (6-pin)
  • 1 × SPI2 PMOD Type 2A (12-pin)
  • 1 × UART PMOD Type 3A (12-pin)
  • 1 × I2C PMOD Type 6 (6-pin)
  • 1 × I2C Bus (8-pin)
  • 1 × 1-Wire Bus (3-pin)
  • 1 × USB Bus (5-pin)
  • 5 × mode DIP switches
  • 1 × JTAG connector

GRiSP 1 (grisp_base)

GRiSP 1 hardware

GRiSP 1 ships with the following features:

  • 1 × Wi-Fi 802.11b/g/n WLAN
  • 2 × GPIO PMOD Type 1 (6-pin)
  • 1 × UART PMOD Type 3 (6-pin)
  • 1 × SPI1 PMOD Type 2A (12-pin)
  • 1 × SPI2 PMOD Type 2 (6-pin)
  • 1 × I2C Bus (8-pin)
  • 1 × 1-Wire Bus (3-pin)
  • 5 × mode DIP switches
  • 1 × JTAG connector

Testing

The project has a hardware emulation layer in software that allows you to use the runtime locally on a normal computer. To start a local shell for the runtime use:

$ rebar3 as test shell

Glossary

1-Wire
Long-distance serial communication bus.
GPIO
General Purpose Input/Output. Digital signal pin interface used to interface with single pins.
I2C
Inter-Intergrated Circuit. Short-distance synchronous serial computer bus.
JTAG
On-chip instrumentation and debugging interface.
PMOD
A peripheral device that implements the [Digilent Pmod™ connection form factor and interface][PMOD].
Slot
A physical slot where a component can be connected. E.g. `SPI1` where an SPI PMOD can be connected.
SPI
Serial Peripheral Interface. Synchronous serial communication interface.
UART
Universal Asynchronous Receiver-Transmitter. Asynchronous serial communication interface.

GRiSP's Projects

cryptoauthlib icon cryptoauthlib

Library for interacting with the Crypto Authentication secure elements

dgram_logger icon dgram_logger

Generic datagram logger which sends to various UDP based logging infrastructure

grisp icon grisp

🐟 GRiSP Erlang Runtime Library

grisp-gocd icon grisp-gocd

Repo is used as a Material in gocd. Contains scripts to build and test grisp software components

grisp_io icon grisp_io

Cloud to Edge IoT Distributed Computing Platform

grisp_sd icon grisp_sd

Creating the SD-card image shipped with GRiSP-base boards

gsolctrl icon gsolctrl

Building a solar heating control system with GRiSP. Results from live coding here https://www.twitch.tv/grisporg

inih icon inih

Simple .INI file parser in C, good for embedded systems

libgrisp icon libgrisp

Some small support functions for RTEMS applications on GRiSP and GRiSP2.

rtems icon rtems

Kernel, networking, file-systems, drivers, BSPs, samples, and testsuite.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.