• Stars
    star
    70
  • Rank 432,182 (Top 9 %)
  • Language
    Go
  • License
    MIT License
  • Created about 6 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Transpile Golang into Arduino code to use fully automated testing at your IoT projects.

ESP32 Transpiler

Go Report Card Build Status

Purpose

The Arduino IDE is easy to use. But I faced problems like maintainability and testability at more complicated IoT projects. I needed to compile and flash the ESP32 before testing my code functionality by doing it 100% manually.

This solution transpiles Golang into Arduino code, which can be compiled to an image by using the ESP32 toolchain. Now I am able to use a fully automated testing approach instead of doing it 100% manually.

Important:

The Transpiler only supports a small subset of the Golang Language Specification. Look at the mapping and the tests to get the current functionality. It is also not possible to trigger the C/C++ Garbage Collection, because Golang handles it automatically "under the hood". Go strings will be transpiled to C constant char arrays, which could be handled on the stack.

Installation

go get -u github.com/andygeiss/esp32-transpiler

Usage

Usage of esp32-transpiler:
  -source string
        Golang source file
  -target string
        Arduino sketch file

More Repositories

1

esp32

Build your own toolchain to develop, test, build and finally deploy a Golang controller to your ESP32 device.
Go
80
star
2

ecs

Build your own Game-Engine based on the Entity Component System concept in Golang.
Go
71
star
3

esp32-controller

This package provides an API for mapping Golang into Arduino code, which can be used by https://github.com/andygeiss/esp32-transpiler.
Go
12
star
4

diego

DIEGO is a data driven, forward-chaining, rule-based expert system written from scratch.
Go
4
star
5

machine-learning-classification

This repository provides a Golang implementation from scratch to solve a classification problem using the K-Nearest Neighbour algorithm.
Go
3
star
6

tinygo

This project demonstrates how to shrink a WebAssembly App, with a total size of around 3 Megabyte, down to 50 Kilobyte by using tinygo.
Go
2
star
7

ecs-example

A basic ECS benchmark using Raylib for rendering.
Go
2
star
8

machine-learning-golang

This repository provides a basic setup to do Machine Learning with Golang and Python, TensorFlow 1.15 and CUDA 10.0.
Go
1
star
9

aseprite-go

Supercharge your Aseprite Workflow with custom scripts and a Go module - Now works with embedded assets, too.
Lua
1
star
10

soa

Allocate, Grow, Pack or Unpack Golang slices of basic types to optimize memory access for Data-Driven design. The primary motivation is easier manipulation with packed SIMD instructions like SSE2.
Go
1
star
11

utils

A collection of helpful utility functions in Golang
Go
1
star
12

aoc2021

This repository contains my solutions to the Advent calendar with its small programming puzzles.
Go
1
star
13

meridian59-build

Build your own Meridian59 server by using a container based deployment.
Go
1
star