Skip to content

Commit d2dff29

Browse files
authored
Merge branch 'master' into master
2 parents 7f44674 + 625c3a6 commit d2dff29

File tree

630 files changed

+38080
-20741
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

630 files changed

+38080
-20741
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
.DS_Store
22
tools/dist/
33
tools/xtensa-lx106-elf/
4-
tools/esptool/
54
tools/mkspiffs/
5+
tools/python/
66
package/versions/
77
exclude.txt
88
tools/sdk/lib/liblwip_src.a

.gitmodules

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,16 @@
33
url = https://github.com/d-a-v/esp82xx-nonos-linklayer.git
44
[submodule "tools/sdk/ssl/bearssl"]
55
path = tools/sdk/ssl/bearssl
6-
url = https://github.com/earlephilhower/bearssl-esp8266
6+
url = https://github.com/earlephilhower/bearssl-esp8266.git
7+
[submodule "libraries/SoftwareSerial"]
8+
path = libraries/SoftwareSerial
9+
url = https://github.com/plerup/espsoftwareserial.git
10+
[submodule "libraries/ESP8266SdFat"]
11+
path = libraries/ESP8266SdFat
12+
url = https://github.com/earlephilhower/ESP8266SdFat.git
13+
[submodule "tools/pyserial"]
14+
path = tools/pyserial
15+
url = https://github.com/pyserial/pyserial.git
16+
[submodule "tools/esptool"]
17+
path = tools/esptool
18+
url = https://github.com/espressif/esptool.git

.travis.yml

Lines changed: 120 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,133 @@
1-
sudo: false
21
language: bash
32
os: linux
43
dist: trusty
54

5+
git:
6+
depth: 1
7+
submodules: false
8+
9+
before_install:
10+
- git submodule update --init # no recursive update
11+
612
cache:
713
directories:
814
- $HOME/astyle
915

10-
matrix:
16+
stages:
17+
- build
18+
- deploy
19+
20+
jobs:
1121
include:
12-
- env:
13-
- BUILD_TYPE=build_even
14-
- env:
15-
- BUILD_TYPE=build_odd
16-
- env:
17-
- BUILD_TYPE=debug_even
18-
- env:
19-
- BUILD_TYPE=debug_odd
20-
- env:
21-
- BUILD_TYPE=platformio
22-
- env:
23-
- BUILD_TYPE=docs
24-
- env:
25-
- BUILD_TYPE=package
26-
- env:
27-
- BUILD_TYPE=host_tests
28-
- env:
29-
- BUILD_TYPE=style_check
30-
31-
install:
32-
- >
33-
[ "$BUILD_TYPE" = "docs" ] && {
34-
pip install --user -r doc/requirements.txt;
35-
} || true
36-
- >
37-
[ "$BUILD_TYPE" = "style_check" ] && {
38-
[ -f $HOME/astyle/build/gcc/bin/astyle ] || {
39-
wget -O astyle_3.1_linux.tar.gz https://sourceforge.net/projects/astyle/files/astyle/astyle%203.1/astyle_3.1_linux.tar.gz/download;
40-
tar -xf astyle_3.1_linux.tar.gz -C $HOME;
41-
make -C $HOME/astyle/build/gcc;
42-
}
43-
make -C $HOME/astyle/build/gcc prefix=$HOME install;
44-
} || true
45-
- sudo apt-get install valgrind lcov
46-
47-
script:
48-
- $TRAVIS_BUILD_DIR/tests/common.sh
49-
50-
deploy:
51-
- provider: releases
52-
draft: true
53-
skip_cleanup: true
54-
api_key:
55-
secure: A4FBmqyhlzy33oPeZVolg2Q/A3ZcJ3WnRQqQJ3NAPy+qGM5xcboOYtwcLL9vKaHZGfUB7lUP9QVZFGou1Wrmo9DnPvAoe3+XvCaDRGzVMxeIpu7UStbBD4Knbh98tlbMvZCXYRlT4VcusI9bMLK6UWw4sMdPislBh2FEfglTiag=
56-
file_glob: true
57-
tag_name: $TRAVIS_TAG
58-
target_commitish: $TRAVIS_COMMIT
59-
file:
60-
- package/versions/$TRAVIS_TAG/esp8266-$TRAVIS_TAG.zip
61-
- package/versions/$TRAVIS_TAG/package_esp8266com_index.json
62-
on:
63-
repo: esp8266/Arduino
64-
tags: true
65-
condition: "$BUILD_TYPE = package"
66-
67-
- provider: script
68-
skip_cleanup: true
69-
script: bash package/deploy_package_index.sh
70-
on:
71-
repo: esp8266/Arduino
72-
tags: true
73-
condition: "$BUILD_TYPE = package"
22+
# Build stage. To save time, run all kinds of builds and tests in parallel.
23+
24+
- name: "Platformio (1)"
25+
stage: build
26+
script: $TRAVIS_BUILD_DIR/tests/platformio.sh
27+
env:
28+
- BUILD_PARITY=even
29+
- name: "Platformio (2)"
30+
stage: build
31+
script: $TRAVIS_BUILD_DIR/tests/platformio.sh
32+
env:
33+
- BUILD_PARITY=odd
34+
35+
- name: "Build (1)"
36+
stage: build
37+
script: $TRAVIS_BUILD_DIR/tests/build.sh
38+
env:
39+
- BUILD_PARITY=even
40+
- name: "Build (2)"
41+
stage: build
42+
script: $TRAVIS_BUILD_DIR/tests/build.sh
43+
env:
44+
- BUILD_PARITY=odd
45+
46+
- name: "Debug (1)"
47+
stage: build
48+
script: $TRAVIS_BUILD_DIR/tests/debug.sh
49+
env:
50+
- BUILD_PARITY=even
51+
- name: "Debug (2)"
52+
stage: build
53+
script: $TRAVIS_BUILD_DIR/tests/debug.sh
54+
env:
55+
- BUILD_PARITY=odd
56+
57+
- name: "Build IPv6 (1)"
58+
stage: build
59+
script: $TRAVIS_BUILD_DIR/tests/build6.sh
60+
env:
61+
- BUILD_PARITY=even
62+
- name: "Build IPv6 (2)"
63+
stage: build
64+
script: $TRAVIS_BUILD_DIR/tests/build6.sh
65+
env:
66+
- BUILD_PARITY=odd
67+
68+
- name: "Build lwIP-v1.4 (1)"
69+
stage: build
70+
script: $TRAVIS_BUILD_DIR/tests/build1.sh
71+
env:
72+
- BUILD_PARITY=even
73+
- name: "Build lwIP-v1.4 (2)"
74+
stage: build
75+
script: $TRAVIS_BUILD_DIR/tests/build1.sh
76+
env:
77+
- BUILD_PARITY=odd
78+
79+
- name: "Host tests"
80+
stage: build
81+
script: $TRAVIS_BUILD_DIR/tests/ci/host_test.sh
82+
install: sudo apt-get install valgrind lcov
83+
84+
- name: "Docs"
85+
stage: build
86+
script: $TRAVIS_BUILD_DIR/tests/ci/build_docs.sh
87+
install:
88+
- sudo apt-get install python3-pip
89+
- pip3 install --user -r doc/requirements.txt;
90+
91+
- name: "Style check"
92+
stage: build
93+
script: $TRAVIS_BUILD_DIR/tests/ci/style_check.sh
94+
install: tests/ci/install_astyle.sh
95+
96+
- name: "Boards"
97+
stage: build
98+
script: $TRAVIS_BUILD_DIR/tests/ci/build_boards.sh
99+
100+
# Deploy stage.
101+
# Here we build the package JSON (always) and do the deployments
102+
- name: "Package / deploy"
103+
stage: deploy
104+
script: tests/ci/build_package.sh
105+
env: BUILD_TYPE=package
106+
before_deploy: git submodule update --init
107+
deploy:
108+
# Create Github release, upload artifacts
109+
- provider: releases
110+
draft: true
111+
skip_cleanup: true
112+
api_key:
113+
secure: kYsxX/N21fwLSTLpbb0c96PnQHn1CIMqZstm02hfUhCX83FygWSh4vs3gzW28DMpjQMZ6vC4g+jtfosYU2tUhht/bynurDH4edpEyGeMyK+fzCI9pAr4JT0RbKQI84EC18ScpgP/UP0jTc1LJ+xl8UMwSiDE0mzHx7xJ4mMNQbA=
114+
file_glob: true
115+
tag_name: $TRAVIS_TAG
116+
target_commitish: $TRAVIS_COMMIT
117+
file:
118+
- package/versions/$TRAVIS_TAG/esp8266-$TRAVIS_TAG.zip
119+
- package/versions/$TRAVIS_TAG/package_esp8266com_index.json
120+
on:
121+
repo: esp8266/Arduino
122+
tags: true
74123

124+
# Update the package index URL to point to the new version
125+
- provider: script
126+
skip_cleanup: true
127+
script: bash package/deploy_package_index.sh
128+
on:
129+
repo: esp8266/Arduino
130+
tags: true
75131

76132
notifications:
77133
email:

README.md

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
Arduino core for ESP8266 WiFi chip
22
===========================================
33

4+
# Quick links
5+
6+
- [Latest release documentation](https://arduino-esp8266.readthedocs.io/en/2.5.1/)
7+
- [Current "git version" documentation](https://arduino-esp8266.readthedocs.io/en/latest/)
8+
- [Install git version](https://arduino-esp8266.readthedocs.io/en/latest/installing.html#using-git-version) ([sources](doc/installing.rst#using-git-version))
9+
10+
# Arduino on ESP8266
11+
412
This project brings support for ESP8266 chip to the Arduino environment. It lets you write sketches using familiar Arduino functions and libraries, and run them directly on ESP8266, no external microcontroller required.
513

614
ESP8266 Arduino core comes with libraries to communicate over WiFi using TCP and UDP, set up HTTP, mDNS, SSDP, and DNS servers, do OTA updates, use a file system in flash memory, work with SD cards, servos, SPI and I2C peripherals.
@@ -20,20 +28,20 @@ ESP8266 Arduino core comes with libraries to communicate over WiFi using TCP and
2028

2129
Starting with 1.6.4, Arduino allows installation of third-party platform packages using Boards Manager. We have packages available for Windows, Mac OS, and Linux (32 and 64 bit).
2230

23-
- Install the current upstream Arduino IDE at the 1.8 level or later. The current version is at the [Arduino website](http://www.arduino.cc/en/main/software).
31+
- Install the current upstream Arduino IDE at the 1.8.7 level or later. The current version is at the [Arduino website](https://www.arduino.cc/en/main/software).
2432
- Start Arduino and open Preferences window.
25-
- Enter ```http://arduino.esp8266.com/stable/package_esp8266com_index.json``` into *Additional Board Manager URLs* field. You can add multiple URLs, separating them with commas.
33+
- Enter ```https://arduino.esp8266.com/stable/package_esp8266com_index.json``` into *Additional Board Manager URLs* field. You can add multiple URLs, separating them with commas.
2634
- Open Boards Manager from Tools > Board menu and install *esp8266* platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation).
2735

2836
#### Latest release [![Latest release](https://img.shields.io/github/release/esp8266/Arduino.svg)](https://github.com/esp8266/Arduino/releases/latest/)
29-
Boards manager link: `http://arduino.esp8266.com/stable/package_esp8266com_index.json`
37+
Boards manager link: `https://arduino.esp8266.com/stable/package_esp8266com_index.json`
3038

31-
Documentation: [https://arduino-esp8266.readthedocs.io/en/2.4.2/](https://arduino-esp8266.readthedocs.io/en/2.4.2/)
39+
Documentation: [https://arduino-esp8266.readthedocs.io/en/2.5.1/](https://arduino-esp8266.readthedocs.io/en/2.5.1/)
3240

3341
### Using git version (basic instructions)
3442
[![Linux build status](https://travis-ci.org/esp8266/Arduino.svg)](https://travis-ci.org/esp8266/Arduino)
3543

36-
- Install the current upstream Arduino IDE at the 1.8 level or later. The current version is at the [Arduino website](http://www.arduino.cc/en/main/software).
44+
- Install the current upstream Arduino IDE at the 1.8 level or later. The current version is at the [Arduino website](https://www.arduino.cc/en/main/software).
3745
- Go to Arduino directory
3846
- For Mac OS X, it is `Arduino.app` showing as the Arduino icon.
3947
This location may be your `~/Downloads`, `~/Desktop` or even `/Applications`.
@@ -50,6 +58,8 @@ cd hardware
5058
mkdir esp8266com
5159
cd esp8266com
5260
git clone https://github.com/esp8266/Arduino.git esp8266
61+
cd esp8266
62+
git submodule update --init
5363
```
5464
- Download binary tools (you need Python 2.7)
5565
```bash
@@ -60,19 +70,19 @@ python get.py
6070

6171
### Using PlatformIO
6272

63-
[PlatformIO](http://platformio.org?utm_source=github&utm_medium=arduino-esp8266) is an open source ecosystem for IoT
73+
[PlatformIO](https://platformio.org?utm_source=github&utm_medium=arduino-esp8266) is an open source ecosystem for IoT
6474
development with cross platform build system, library manager and full support
6575
for Espressif (ESP8266) development. It works on the popular host OS: macOS, Windows,
6676
Linux 32/64, Linux ARM (like Raspberry Pi, BeagleBone, CubieBoard).
6777

68-
- [What is PlatformIO?](http://docs.platformio.org/en/latest/what-is-platformio.html?utm_source=github&utm_medium=arduino-esp8266)
69-
- [PlatformIO IDE](http://platformio.org/platformio-ide?utm_source=github&utm_medium=arduino-esp8266)
70-
- [PlatformIO Core](http://docs.platformio.org/en/latest/core.html?utm_source=github&utm_medium=arduino-esp8266) (command line tool)
71-
- [Advanced usage](http://docs.platformio.org/en/latest/platforms/espressif8266.html?utm_source=github&utm_medium=arduino-esp8266) -
78+
- [What is PlatformIO?](https://docs.platformio.org/en/latest/what-is-platformio.html?utm_source=github&utm_medium=arduino-esp8266)
79+
- [PlatformIO IDE](https://platformio.org/platformio-ide?utm_source=github&utm_medium=arduino-esp8266)
80+
- [PlatformIO Core](https://docs.platformio.org/en/latest/core.html?utm_source=github&utm_medium=arduino-esp8266) (command line tool)
81+
- [Advanced usage](https://docs.platformio.org/en/latest/platforms/espressif8266.html?utm_source=github&utm_medium=arduino-esp8266) -
7282
custom settings, uploading to SPIFFS, Over-the-Air (OTA), staging version
73-
- [Integration with Cloud and Standalone IDEs](http://docs.platformio.org/en/latest/ide.html?utm_source=github&utm_medium=arduino-esp8266) -
83+
- [Integration with Cloud and Standalone IDEs](https://docs.platformio.org/en/latest/ide.html?utm_source=github&utm_medium=arduino-esp8266) -
7484
Cloud9, Codeanywhere, Eclipse Che (Codenvy), Atom, CLion, Eclipse, Emacs, NetBeans, Qt Creator, Sublime Text, VIM, Visual Studio, and VSCode
75-
- [Project Examples](http://docs.platformio.org/en/latest/platforms/espressif8266.html?utm_source=github&utm_medium=arduino-esp8266#examples)
85+
- [Project Examples](https://docs.platformio.org/en/latest/platforms/espressif8266.html?utm_source=github&utm_medium=arduino-esp8266#examples)
7686

7787
### Building with make
7888

@@ -85,27 +95,28 @@ Documentation for latest development version: https://arduino-esp8266.readthedoc
8595

8696
### Issues and support ###
8797

88-
[ESP8266 Community Forum](http://www.esp8266.com/u/arduinoanswers) is a well established community for questions and answers about Arduino for ESP8266.
98+
[ESP8266 Community Forum](https://www.esp8266.com/u/arduinoanswers) is a well established community for questions and answers about Arduino for ESP8266. If you need help, have a "How do I..." type question, have a problem with a 3rd party lib not hosted in this repo, or just want to discuss how to approach a problem , please ask there.
8999

90-
If you find this forum useful, please consider supporting it with a donation. <br />
100+
If you find the forum useful, please consider supporting it with a donation. <br />
91101
[![Donate](https://img.shields.io/badge/paypal-donate-yellow.svg)](https://www.paypal.com/webscr?cmd=_s-xclick&hosted_button_id=4M56YCWV6PX66)
92102

93-
If you encounter an issue which you think is a bug in the ESP8266 Arduino Core or the associated libraries, you are welcome to submit it here on Github: https://github.com/esp8266/Arduino/issues.
103+
If you encounter an issue which you think is a bug in the ESP8266 Arduino Core or the associated libraries, or if you want to propose an enhancement, you are welcome to submit it here on Github: https://github.com/esp8266/Arduino/issues.
94104

95-
Please provide as much context as possible:
105+
Please provide as much context as possible, as well as the information requested in the issue template:
96106

97107
- ESP8266 Arduino core version which you are using (you can check it in Boards Manager)
98108
- your sketch code; please wrap it into a code block, see [Github markdown manual](https://help.github.com/articles/basic-writing-and-formatting-syntax/#quoting-code)
99109
- when encountering an issue which happens at run time, attach serial output. Wrap it into a code block, just like the code.
100110
- for issues which happen at compile time, enable verbose compiler output in the IDE preferences, and attach that output (also inside a code block)
101111
- ESP8266 development board model
102-
- IDE settings (board choich, flash size)
112+
- IDE settings (board choice, flash size)
113+
- etc
103114

104115
### Contributing
105116

106117
For minor fixes of code and documentation, please go ahead and submit a pull request.
107118

108-
Check out the list of issues which are easy to fix — [easy issues for 2.5.0](https://github.com/esp8266/Arduino/issues?q=is%3Aopen+is%3Aissue+milestone%3A2.5.0+label%3A%22level%3A+easy%22). Working on them is a great way to move the project forward.
119+
Check out the list of issues which are easy to fix — [easy issues pending](https://github.com/esp8266/Arduino/issues?q=is%3Aopen+is%3Aissue+label%3A%22level%3A+easy%22). Working on them is a great way to move the project forward.
109120

110121
Larger changes (rewriting parts of existing code from scratch, adding new functions to the core, adding new libraries) should generally be discussed by opening an issue first.
111122

@@ -127,6 +138,8 @@ ESP8266 core files are licensed under LGPL.
127138

128139
[umm_malloc](https://github.com/rhempel/umm_malloc) memory management library written by Ralph Hempel is used in this project. It is distributed under MIT license.
129140

141+
[SoftwareSerial](https://github.com/plerup/espsoftwareserial) library and examples written by Peter Lerup. Distributed under LGPL 2.1.
142+
130143
[axTLS](http://axtls.sourceforge.net/) library written by Cameron Rich, built from https://github.com/igrr/axtls-8266, is used in this project. It is distributed under [BSD license](https://github.com/igrr/axtls-8266/blob/master/LICENSE).
131144

132145
[BearSSL](https://bearssl.org) library written by Thomas Pornin, built from https://github.com/earlephilhower/bearssl-esp8266, is used in this project. It is distributed under the [MIT License](https://bearssl.org/#legal-details).

0 commit comments

Comments
 (0)