All Projects → andygeiss → esp32

andygeiss / esp32

Licence: MIT license
Build your own toolchain to develop, test, build and finally deploy a Golang controller to your ESP32 device.

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to esp32

Lib Python
Blynk IoT library for Python and Micropython
Stars: ✭ 140 (+84.21%)
Mutual labels:  esp32, iot-device
Smooth
C++ framework for embedded programming on top of Espressif's ESP-IDF.
Stars: ✭ 205 (+169.74%)
Mutual labels:  esp32, espressif
Wifimanager
WiFi manager for ESP8266 - ESP12 - ESP32 - micropython
Stars: ✭ 176 (+131.58%)
Mutual labels:  esp32, espressif
Redasm
The OpenSource Disassembler
Stars: ✭ 1,042 (+1271.05%)
Mutual labels:  esp32, espressif
Basecamp
An Arduino library to ease the use of the ESP32 in IoT projects
Stars: ✭ 251 (+230.26%)
Mutual labels:  esp32, iot-device
Esp Mqtt
MQTT component for esp-idf projects based on the lwmqtt library
Stars: ✭ 76 (+0%)
Mutual labels:  esp32, espressif
My Ttgo Watch
Firmware for a ttgo-watch2020-v1 smartwatch based on ESP32 from LilyGo.
Stars: ✭ 192 (+152.63%)
Mutual labels:  esp32, iot-device
Homepoint
Espressif ESP32 Based Smarthome screen for MQTT
Stars: ✭ 391 (+414.47%)
Mutual labels:  esp32, espressif
Esp32marauder
A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32
Stars: ✭ 233 (+206.58%)
Mutual labels:  esp32, espressif
Awesome Esp
📶 A curated list of awesome ESP8266/32 projects and code
Stars: ✭ 212 (+178.95%)
Mutual labels:  esp32, espressif
Nodemcu Firmware
Lua based interactive firmware for ESP8266, ESP8285 and ESP32
Stars: ✭ 6,884 (+8957.89%)
Mutual labels:  esp32, espressif
ESP DoubleResetDetector
ESP_DoubleResetDetector is a library for the ESP32/ESP8266 Arduino platform to enable trigger configure mode by resetting twice.
Stars: ✭ 34 (-55.26%)
Mutual labels:  esp32, espressif
Lua Rtos Esp32
Lua RTOS for ESP32
Stars: ✭ 621 (+717.11%)
Mutual labels:  esp32, espressif
Fastled Idf
FastLED port to the ESP-IDF 4.0 development environment
Stars: ✭ 85 (+11.84%)
Mutual labels:  esp32, espressif
Espressif
all espressif stuff will committed here
Stars: ✭ 477 (+527.63%)
Mutual labels:  esp32, espressif
Dhtesp
Optimized DHT library for ESP32/ESP8266 using Arduino framework
Stars: ✭ 184 (+142.11%)
Mutual labels:  esp32, espressif
Esp32 Wifi Manager
Captive Portal for ESP32 that can connect to a saved wireless network or start an access point where you can connect to existing wifis.
Stars: ✭ 316 (+315.79%)
Mutual labels:  esp32, espressif
Esp32free80211
Send arbitrary IEEE 802.11 frames with Espressif's ESP32
Stars: ✭ 372 (+389.47%)
Mutual labels:  esp32, espressif
Lwesp
Lightweight Espressif AT parser library for ESP8266 and ESP32 devices.
Stars: ✭ 212 (+178.95%)
Mutual labels:  esp32, espressif
esp32-ota
ESP32 OTA based on ThingsBoard Open-source IoT Platform
Stars: ✭ 45 (-40.79%)
Mutual labels:  esp32, espressif

ESP32

BCH compliance

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

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.

Process

+--------+    +---------+    +----------+
|  Test  +---->  Build  +---->  Deploy  |
+--------+    +---------+    +----------+

          make                make flash

Important: The Transpiler only supports a small subset of the Golang Language Specification.

Installation

First download and install the latest Arduino IDE into /opt/arduino or change INO_IDE_PATH in the Makefile and necessary packages.

  • Ubuntu:

      sudo apt-get install -y bison flex git gperf libncurses-dev make python
    
  • Manjaro:

      sudo pip install pyserial
    

Next run the ESP32 SDK-Installation:

make packages

Look at the examples for more information.

Develop, Test and Build

Change the Arduino port to your current settings by changing the Makefile:

INO_PORT="/dev/ttyUSB0"

Also set the SSID and PASS strings at application/device/controller.go to your WiFi Access Point and start the build process by using:

make

Run the binary at build/device-${ARCH} to simulate your ESP32 device locally.

Connecting to WiFi ...... Connected!

Deploy

Finally use the following command to deploy the image device.img to your real ESP32 device.

make flash

Important: Please ensure that the current user is in the dialout group. Or you will receive a permission denied.

This will create the following output:

2018/08/05 16:04:22 Flashing ...
esptool.py v2.3.1
Connecting....
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Compressed 607456 bytes to 366770...
Wrote 607456 bytes (366770 compressed) at 0x00010000 in 5.9 seconds (effective 816.9 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
2018/08/05 16:04:22 Done.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].