GithubHelp home page GithubHelp logo

outoftrun / edger-fork Goto Github PK

View Code? Open in Web Editor NEW

This project forked from triembed/edger

0.0 0.0 0.0 64.38 MB

Edger makes using WIFI connected dev systems easy

License: Other

Shell 3.14% JavaScript 3.43% Ruby 4.23% C++ 2.04% Python 1.38% C 75.59% PowerShell 1.70% Makefile 0.82% HTML 0.22% CMake 1.31% Batchfile 0.01% Vue 6.12% SCSS 0.01% Mermaid 0.01%

edger-fork's Introduction

Edger

Edger is a standalone system for developing for and using the combination of a WIFI-capable ESP32 and one or more Renesas/Dialog mixed signal FPGA chips or peripheral development boards and breakout boards having I2C interfaces. The Renesas/ForgeFPGA synthesis tool used to create FPGA images has a drag and drop GUI that involves zero Verilog or VHDL. It has a built in simulator and generates files that Edger can program in place in the user's system for simple FPGA applications. These FPGAs are around one to two dollars in single quantity, even ones mounted on a DIP board that can plug into a wireless breadboard. Edger is aimed at making FPGAs available to "the rest of us" while also creating a development ecosystem to augment the Espressif IDF and Arduino IDE.

Actually that's how it started, but it has since evolved into a more generic system for communication between a web browser and a network-connected MCU or SBC. The first device supported is the ESP32.

Components

The major components of Edger are:

ant

Ant is the software that runs on the embedded device and provides REST-based access to device features like GPIO pins, I2C buses, etc.

aardvark

Aardvark is a web interface based on VUE.js that allows for discovering and communicating with boards running Ant.

the edger API

The general concept for the edger API is as follows:

  • There is an endpoint for each type of functionality (e.g. /api/v1/i2c, /api/v1/gpio)
  • These endpoints are accessed via HTTP PATCH verb
  • The request payload is transmitted as one or more GET parameters, which:
    • each have the form verb={"param1":"value1", "param2":"value2", ...}
    • different verbs expect different parameters
      • some verbs don't expect parameters but still must terminate with '=', e.g. /api/v1/i2c?scan=
    • can be chained and will be processed in order for more complex functionality
    • return their output as JSON

Development install

A full Edger development environment allows for development of both ant and aardvark. Therefore it includes the following components:

  • a clone of this Edger git repo
  • the Espressif IoT Development Framework (ESP-IDF) for building ant
  • node.js and pnpm for building aardvark, and optionally serving it in development mode for debugging
  • some scripts and Desktop icons to wrapper and expose the above functionality

A convenience script is provided for installation on (currently Ubuntu) Linux - linux_install.sh This script does the following:

  1. Checks/clones the Edger repo (by default in $HOME/workspace/esp32/edger, or as specified by --with-edger={absolute-path})
  2. Checks/clones the ESP IDF (by default in $HOME/esp/esp-idf, or as specified by --with-esp-idf={absolute-path})
  3. Installs node.js using the Node Version Manager script - nvm.sh
  4. Uses Node Package Manager (npm) to install pnpm
  5. Uses pnpm to build aardvark
  6. Installs the ESP-IDF (creates $HOME/.espressif)
  7. Copies scripts to $HOME/bin:
  • changewifi - accepts input for wifi SSID and password, modifies the ant sdkconfig, and runs idf.py to build (and flash) ant
  • startaardvark - starts the node development server serving up the aardvark page/code
  1. (if $HOME/Desktop exists, indicating a graphical interface is installed) Copies Desktop files to create clickable icons:
  • CHANGE WIFI - runs the change wifi script
  • START AARDVARK - runs the startaardvark script
  • START BROWSER - opens the default browser to the local aardvark URL

User group

The user group kickoff meeting was held on 8/31/2022. Video here: https://youtu.be/zqejgwW3aIo

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.