forked from EMCelettronica/ESPertino
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
1,089 changed files
with
259,510 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
menu "Arduino Configuration" | ||
|
||
config ENABLE_ARDUINO_DEPENDS | ||
bool | ||
select LWIP_SO_RCVBUF | ||
select BT_ENABLED | ||
select ETHERNET | ||
select WIFI_ENABLED | ||
select ESP32_PHY_CALIBRATION_AND_DATA_STORAGE | ||
select MEMMAP_SMP | ||
default "y" | ||
|
||
config AUTOSTART_ARDUINO | ||
bool "Autostart Arduino setup and loop on boot" | ||
default "n" | ||
help | ||
Enabling this option will implement app_main and start Arduino. | ||
All you need to implement in your main.cpp is setup() and loop() | ||
and include Arduino.h | ||
If disabled, you can call initArduino() to run any preparations | ||
required by the framework | ||
|
||
config DISABLE_HAL_LOCKS | ||
bool "Disable mutex locks for HAL" | ||
default "n" | ||
help | ||
Enabling this option will run all hardware abstraction without locks. | ||
While communication with external hardware will be faster, you need to | ||
make sure that there is no option to use the same bus from another thread | ||
or interrupt at the same time. Option is best used with Arduino enabled | ||
and code implemented only in setup/loop and Arduino callbacks | ||
|
||
menu "Debug Log Configuration" | ||
choice ARDUHAL_LOG_DEFAULT_LEVEL | ||
bool "Default log level" | ||
default ARDUHAL_LOG_DEFAULT_LEVEL_ERROR | ||
help | ||
Specify how much output to see in logs by default. | ||
|
||
config ARDUHAL_LOG_DEFAULT_LEVEL_NONE | ||
bool "No output" | ||
config ARDUHAL_LOG_DEFAULT_LEVEL_ERROR | ||
bool "Error" | ||
config ARDUHAL_LOG_DEFAULT_LEVEL_WARN | ||
bool "Warning" | ||
config ARDUHAL_LOG_DEFAULT_LEVEL_INFO | ||
bool "Info" | ||
config ARDUHAL_LOG_DEFAULT_LEVEL_DEBUG | ||
bool "Debug" | ||
config ARDUHAL_LOG_DEFAULT_LEVEL_VERBOSE | ||
bool "Verbose" | ||
endchoice | ||
|
||
config ARDUHAL_LOG_DEFAULT_LEVEL | ||
int | ||
default 0 if ARDUHAL_LOG_DEFAULT_LEVEL_NONE | ||
default 1 if ARDUHAL_LOG_DEFAULT_LEVEL_ERROR | ||
default 2 if ARDUHAL_LOG_DEFAULT_LEVEL_WARN | ||
default 3 if ARDUHAL_LOG_DEFAULT_LEVEL_INFO | ||
default 4 if ARDUHAL_LOG_DEFAULT_LEVEL_DEBUG | ||
default 5 if ARDUHAL_LOG_DEFAULT_LEVEL_VERBOSE | ||
|
||
config ARDUHAL_LOG_COLORS | ||
bool "Use ANSI terminal colors in log output" | ||
default "n" | ||
help | ||
Enable ANSI terminal color codes in bootloader output. | ||
In order to view these, your terminal program must support ANSI color codes. | ||
|
||
endmenu | ||
|
||
config AUTOCONNECT_WIFI | ||
bool "Autoconnect WiFi on boot" | ||
default "n" | ||
depends on AUTOSTART_ARDUINO | ||
help | ||
If enabled, WiFi will connect to the last used SSID (if station was enabled), | ||
else connection will be started only after calling WiFi.begin(ssid, password) | ||
|
||
endmenu |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
BOOT_APP_BIN_OFFSET := 0xe000 | ||
BOOT_APP_BIN_ROOT := $(call dequote,$(COMPONENT_PATH)) | ||
BOOT_APP_BIN_PATH := $(call dequote,$(abspath $(BOOT_APP_BIN_ROOT)/$(subst $(quote),,tools/partitions/boot_app0.bin))) | ||
|
||
ifndef CONFIG_PARTITION_TABLE_CUSTOM | ||
PARTITION_TABLE_CSV_PATH = $(call dequote,$(abspath $(BOOT_APP_BIN_ROOT)/$(subst $(quote),,tools/partitions/default.csv))) | ||
endif | ||
|
||
BOOT_APP_BIN_FLASH_CMD = $(ESPTOOLPY_SERIAL) write_flash $(BOOT_APP_BIN_OFFSET) $(BOOT_APP_BIN_PATH) | ||
ESPTOOL_ALL_FLASH_ARGS += $(BOOT_APP_BIN_OFFSET) $(BOOT_APP_BIN_PATH) | ||
|
||
CPPFLAGS += -DARDUINO=180 -DESP32=1 -DARDUINO_ARCH_ESP32=1 | ||
|
||
boot-app0: | ||
@echo "Rebooting to APP0" | ||
$(BOOT_APP_BIN_FLASH_CMD) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,140 @@ | ||
# ESPertino | ||
ESPertino board | ||
# Arduino core for ESPertino | ||
|
||
[![Build Status](https://travis-ci.org/espressif/arduino-esp32.svg?branch=master)](https://travis-ci.org/espressif/arduino-esp32) | ||
|
||
## Need help or have a question? Join the chat at [![https://gitter.im/espressif/arduino-esp32](https://badges.gitter.im/espressif/arduino-esp32.svg)](https://gitter.im/espressif/arduino-esp32?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | ||
|
||
- [Development Status](#development-status) | ||
- [Installation Instructions](#installation-instructions): | ||
+ [Using Arduino IDE](#using-through-arduino-ide) | ||
+ [Windows](https://github.com/espressif/arduino-esp32/blob/master/doc/windows.md) | ||
+ [Mac OS](#instructions-for-mac) | ||
+ [Debian/Ubuntu](#instructions-for-debianubuntu-linux) | ||
+ [Decoding Exceptions](#decoding-exceptions) | ||
+ [Using PlatformIO](#using-platformio) | ||
+ [Using as ESP-IDF component](#using-as-esp-idf-component) | ||
- [ESP32Dev Board PINMAP](#esp32dev-board-pinmap) | ||
|
||
## Development Status | ||
Most of the framework is implemented. Most noticable is the missing analogWrite. While analogWrite is on it's way, there are a few other options that you can use: | ||
- 16 channels [LEDC](https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-ledc.h) which is PWM | ||
- 8 channels [SigmaDelta](https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-sigmadelta.h) which uses SigmaDelta modulation | ||
- 2 channels [DAC](https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-dac.h) which gives real analog output | ||
|
||
## Installation Instructions | ||
|
||
### Using through Arduino IDE | ||
|
||
###[Instructions for Windows](doc/windows.md) | ||
|
||
#### Instructions for Mac | ||
- Install latest Arduino IDE from [arduino.cc](https://www.arduino.cc/en/Main/Software) | ||
- Open Terminal and execute the following command (copy->paste and hit enter): | ||
|
||
```bash | ||
mkdir -p ~/Documents/Arduino/hardware/espressif && \ | ||
cd ~/Documents/Arduino/hardware/espressif && \ | ||
git clone https://github.com/espressif/arduino-esp32.git esp32 && \ | ||
cd esp32/tools/ && \ | ||
python get.py | ||
``` | ||
- Restart Arduino IDE | ||
|
||
#### Instructions for Debian/Ubuntu Linux | ||
- Install latest Arduino IDE from [arduino.cc](https://www.arduino.cc/en/Main/Software) | ||
- Open Terminal and execute the following command (copy->paste and hit enter): | ||
|
||
```bash | ||
sudo usermod -a -G dialout $USER && \ | ||
sudo apt-get install git && \ | ||
mkdir -p ~/Arduino/hardware/espressif && \ | ||
cd ~/Arduino/hardware/espressif && \ | ||
git clone https://github.com/espressif/arduino-esp32.git esp32 && \ | ||
cd esp32/tools/ && \ | ||
python get.py | ||
``` | ||
- Restart Arduino IDE | ||
|
||
#### Decoding exceptions | ||
|
||
You can use [EspExceptionDecoder](https://github.com/me-no-dev/EspExceptionDecoder) to get meaningful call trace. | ||
|
||
### Using PlatformIO | ||
|
||
[PlatformIO](http://platformio.org) is an open source ecosystem for IoT | ||
development with cross platform build system, library manager and full support | ||
for Espressif ESP32 development. It works on the popular host OS: Mac OS X, Windows, | ||
Linux 32/64, Linux ARM (like Raspberry Pi, BeagleBone, CubieBoard). | ||
|
||
- [What is PlatformIO?](http://docs.platformio.org/page/what-is-platformio.html) | ||
- [PlatformIO IDE](http://platformio.org/platformio-ide) | ||
- Quick Start with [PlatformIO IDE](http://docs.platformio.org/page/ide/atom.html#quick-start) or [PlatformIO Core](http://docs.platformio.org/page/core.html) | ||
- [Integration with Cloud and Standalone IDEs](http://docs.platformio.org/page/ide.html) - | ||
Cloud9, Codeanywehre, Eclipse Che (Codenvy), Atom, CLion, Eclipse, Emacs, NetBeans, Qt Creator, Sublime Text, VIM and Visual Studio | ||
- [Project Examples](https://github.com/platformio/platform-espressif32/tree/develop/examples) | ||
- [Using "Stage" (Git) version of Arduino Core](http://docs.platformio.org/page/platforms/espressif32.html#using-arduino-framework-with-staging-version) | ||
|
||
### Building with make | ||
|
||
[makeEspArduino](https://github.com/plerup/makeEspArduino) is a generic makefile for any ESP8266/ESP32 Arduino project. | ||
Using make instead of the Arduino IDE makes it easier to do automated and production builds. | ||
|
||
### Using as ESP-IDF component | ||
- Download and install [esp-idf](https://github.com/espressif/esp-idf) | ||
- Create blank idf project (from one of the examples) | ||
- in the project folder, create a folder called components and clone this repository inside | ||
|
||
```bash | ||
mkdir -p components && \ | ||
cd components && \ | ||
git clone https://github.com/espressif/arduino-esp32.git arduino && \ | ||
cd .. && \ | ||
make menuconfig | ||
``` | ||
- ```make menuconfig``` has some Arduino options | ||
- "Autostart Arduino setup and loop on boot" | ||
- If you enable this options, your main.cpp should be formated like any other sketch | ||
|
||
```arduino | ||
//file: main.cpp | ||
#include "Arduino.h" | ||
|
||
void setup(){ | ||
Serial.begin(115200); | ||
} | ||
|
||
void loop(){ | ||
Serial.println("loop"); | ||
delay(1000); | ||
} | ||
``` | ||
|
||
- Else you need to implement ```app_main()``` and call ```initArduino();``` in it. | ||
|
||
Keep in mind that setup() and loop() will not be called in this case. | ||
If you plan to base your code on examples provided in [esp-idf](https://github.com/espressif/esp-idf/tree/master/examples), please make sure move the app_main() function in main.cpp from the files in the example. | ||
|
||
```arduino | ||
//file: main.cpp | ||
#include "Arduino.h" | ||
|
||
extern "C" void app_main() | ||
{ | ||
initArduino(); | ||
pinMode(4, OUTPUT); | ||
digitalWrite(4, HIGH); | ||
//do your own thing | ||
} | ||
``` | ||
- "Disable mutex locks for HAL" | ||
- If enabled, there will be no protection on the drivers from concurently accessing them from another thread/interrupt/core | ||
- "Autoconnect WiFi on boot" | ||
- If enabled, WiFi will start with the last known configuration | ||
- Else it will wait for WiFi.begin | ||
- ```make flash monitor``` will build, upload and open serial monitor to your board | ||
|
||
|
||
## Hint | ||
|
||
Sometimes to program ESP32 via serial you must keep GPIO0 LOW during the programming process | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
build: off | ||
environment: | ||
|
||
matrix: | ||
- PLATFORMIO_CI_SRC: "libraries/WiFi/examples/WiFiClient" | ||
- PLATFORMIO_CI_SRC: "libraries/WiFi/examples/WiFiClientBasic" | ||
- PLATFORMIO_CI_SRC: "libraries/WiFi/examples/WiFiClientEvents" | ||
- PLATFORMIO_CI_SRC: "libraries/WiFi/examples/WiFiIPv6" | ||
- PLATFORMIO_CI_SRC: "libraries/WiFi/examples/WiFiScan" | ||
- PLATFORMIO_CI_SRC: "libraries/WiFi/examples/WiFiSmartConfig" | ||
|
||
install: | ||
- cmd: git submodule update --init --recursive | ||
- cmd: SET PATH=%PATH%;C:\Python27\Scripts | ||
- cmd: pip install -U https://github.com/platformio/platformio/archive/develop.zip | ||
- cmd: platformio platform install https://github.com/platformio/platform-espressif32.git#feature/stage | ||
|
||
test_script: | ||
- cmd: platformio ci -b esp32dev -b nano32 -b node32s |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
menu.UploadSpeed=Upload Speed | ||
menu.FlashFreq=Flash Frequency | ||
menu.DebugLevel=Core Debug Level | ||
|
||
############################################################## | ||
|
||
esp32.name=ESPertino | ||
|
||
esp32.upload.tool=esptool | ||
esp32.upload.maximum_size=1044464 | ||
esp32.upload.maximum_data_size=294912 | ||
esp32.upload.wait_for_upload_port=true | ||
|
||
esp32.serial.disableDTR=true | ||
esp32.serial.disableRTS=true | ||
|
||
esp32.build.mcu=esp32 | ||
esp32.build.core=esp32 | ||
esp32.build.variant=esp32 | ||
esp32.build.board=ESP32_DEV | ||
|
||
esp32.build.f_cpu=240000000L | ||
esp32.build.flash_mode=dio | ||
esp32.build.flash_size=4MB | ||
|
||
esp32.menu.FlashFreq.80=80MHz | ||
esp32.menu.FlashFreq.80.build.flash_freq=80m | ||
esp32.menu.FlashFreq.40=40MHz | ||
esp32.menu.FlashFreq.40.build.flash_freq=40m | ||
|
||
esp32.menu.UploadSpeed.921600=921600 | ||
esp32.menu.UploadSpeed.921600.upload.speed=921600 | ||
esp32.menu.UploadSpeed.115200=115200 | ||
esp32.menu.UploadSpeed.115200.upload.speed=115200 | ||
esp32.menu.UploadSpeed.256000.windows=256000 | ||
esp32.menu.UploadSpeed.256000.upload.speed=256000 | ||
esp32.menu.UploadSpeed.230400.windows.upload.speed=256000 | ||
esp32.menu.UploadSpeed.230400=230400 | ||
esp32.menu.UploadSpeed.230400.upload.speed=230400 | ||
esp32.menu.UploadSpeed.460800.linux=460800 | ||
esp32.menu.UploadSpeed.460800.macosx=460800 | ||
esp32.menu.UploadSpeed.460800.upload.speed=460800 | ||
esp32.menu.UploadSpeed.512000.windows=512000 | ||
esp32.menu.UploadSpeed.512000.upload.speed=512000 | ||
|
||
esp32.menu.DebugLevel.none=None | ||
esp32.menu.DebugLevel.none.build.code_debug=0 | ||
esp32.menu.DebugLevel.error=Error | ||
esp32.menu.DebugLevel.error.build.code_debug=1 | ||
esp32.menu.DebugLevel.warn=Warn | ||
esp32.menu.DebugLevel.warn.build.code_debug=2 | ||
esp32.menu.DebugLevel.info=Info | ||
esp32.menu.DebugLevel.info.build.code_debug=3 | ||
esp32.menu.DebugLevel.debug=Debug | ||
esp32.menu.DebugLevel.debug.build.code_debug=4 | ||
esp32.menu.DebugLevel.verbose=Verbose | ||
esp32.menu.DebugLevel.verbose.build.code_debug=5 | ||
|
||
############################################################## | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
ARDUINO_CORE_LIBS := $(patsubst $(COMPONENT_PATH)/%,%,$(wildcard $(COMPONENT_PATH)/libraries/*/src)) | ||
|
||
COMPONENT_ADD_INCLUDEDIRS := cores/esp32 variants/esp32 $(ARDUINO_CORE_LIBS) | ||
COMPONENT_PRIV_INCLUDEDIRS := cores/esp32/libb64 | ||
COMPONENT_SRCDIRS := cores/esp32/libb64 cores/esp32 variants/esp32 $(ARDUINO_CORE_LIBS) | ||
CXXFLAGS += -fno-rtti |
Oops, something went wrong.