Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/grisp/grisp
🐟 GRiSP Erlang Runtime Library
https://github.com/grisp/grisp
embedded erlang grisp iot
Last synced: 5 days ago
JSON representation
🐟 GRiSP Erlang Runtime Library
- Host: GitHub
- URL: https://github.com/grisp/grisp
- Owner: grisp
- License: apache-2.0
- Created: 2017-05-18T09:42:56.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-01-10T11:20:39.000Z (13 days ago)
- Last Synced: 2025-01-11T07:01:36.974Z (12 days ago)
- Topics: embedded, erlang, grisp, iot
- Language: Erlang
- Homepage: https://www.grisp.org
- Size: 2.16 MB
- Stars: 243
- Watchers: 16
- Forks: 41
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
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 actuatorsThis 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][rebar3_plugin] or
[Mix][mix_plugin] plug-ins for GRiSP.## Erlang
Install the [GRiSP Rebar 3 plug-in][rebar3_plugin] globally by adding `{plugins, [rebar3_grisp]}.` to `~/.config/rebar3/rebar.config`.
Create a new project:
```sh
# 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
* I²C
* 1-WirePeripherals can be connected to either [PMOD] ports or I/O
pins directly.## GRiSP 2 (`grisp2`)
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 × I²C PMOD Type 6 (6-pin)
* 1 × I²C 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 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 × I²C 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][grisp_emulation] 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.
- I²C
-
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.
[PMOD]: https://digilent.com/reference/pmod/start
[rebar3_plugin]: https://github.com/grisp/rebar3_grisp
[mix_plugin]: https://github.com/grisp/mix_grisp
[grisp_emulation]: https://github.com/grisp/grisp_emulation