Skip to content

catch up #23

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 57 commits into from
Mar 9, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
823fb8f
Reword some instructions
me-no-dev Nov 28, 2017
1fae11a
Merge branch 'master' of https://github.com/espressif/arduino-esp32
me-no-dev Nov 28, 2017
aa83fca
Update link to PIO Core (#877)
ivankravets Nov 28, 2017
3198f25
Set HSPI ports by default when HSPI is selected (#874)
zipiju Nov 28, 2017
62fa954
Import SSL in Windows (get.exe)
me-no-dev Nov 28, 2017
3e87abc
Merge branch 'master' of https://github.com/espressif/arduino-esp32
me-no-dev Nov 28, 2017
46d1b17
doc typo (#889)
markyad Nov 28, 2017
f0336b3
fix change in IDF causing havoc when used as component
me-no-dev Nov 30, 2017
b2d01e0
Rollback to previous toolchain (#894)
ivankravets Nov 30, 2017
88bd512
Add missing flag to LD
me-no-dev Nov 30, 2017
2179182
Merge branch 'master' of https://github.com/espressif/arduino-esp32
me-no-dev Nov 30, 2017
d1d56b5
Append Core (IDF) after the user libraries when linking a firmware
ivankravets Nov 30, 2017
7d2bffb
Sync "-u __cxx_fatal_exception" LD flag
ivankravets Nov 30, 2017
79e5d4c
Allow PSK instead of passphrase in WiFiSTA::begin (#897)
mascii Dec 4, 2017
20db2ee
Add Time and TimerWDT examples
me-no-dev Dec 14, 2017
75bc1e6
Allow configuration of Ethernet PHY clock source (#916)
sauttefk Dec 19, 2017
cfbb730
Update to make use of SSL a bit less confusing by ensuring errors are…
lonerzzz Dec 19, 2017
70d0d46
Enable static IP via ethernet (#924)
copercini Dec 19, 2017
600f4c4
Update IDF to 1c3dd23
me-no-dev Jan 17, 2018
528caff
Added missing include directive for stdint.h (#1005)
alwint3r Jan 17, 2018
9642877
Small grammar fixes and clarifications (#1003)
joeybab3 Jan 17, 2018
78acedd
Workaround strict-aliasing warnings and added missing pgm_read_ptr de…
Lauszus Jan 17, 2018
2633fc3
Add progress callback to Update::writeStream(). (#948)
everslick Jan 17, 2018
81e0250
Update windows.md (#946)
vppillai Jan 17, 2018
d650ac6
WiFiClientSecure::lastError() method (#945)
lbernstone Jan 17, 2018
bac5609
Reorder Updater init
me-no-dev Jan 17, 2018
dde5e29
Update BLE lib
me-no-dev Jan 18, 2018
8332a23
fix issue with STA emiting the wrong event
me-no-dev Jan 18, 2018
615c927
Add DNS Server
me-no-dev Jan 18, 2018
bd932a9
Update BLE lib
me-no-dev Jan 19, 2018
52d4705
enable exceptions in build flags
me-no-dev Jan 19, 2018
7fa8caf
Fix issue when user name contains a space
ivankravets Jan 23, 2018
c8596cb
Update integration with @PlatformIO
ivankravets Feb 5, 2018
a153f6a
Sync with the latest changes to Arduino platform.txt
ivankravets Feb 8, 2018
d29cfdb
Add Pico Kit board configuration
me-no-dev Feb 27, 2018
694c3a4
DNS Server : bug fix and prettifying (#1011)
LaurentLouf Mar 4, 2018
3310e2e
Add EEPROMClass and examples (#1034)
fedy0 Mar 4, 2018
77a8e47
Changed Python version in Debian/Ubuntu install instructions (#1043)
birgersp Mar 4, 2018
f5c2aff
fix upload.maximum_size as current partition size 0x140000 for esp32v…
erikwilson Mar 4, 2018
8e29347
Add Ticker library (#1057)
bertmelis Mar 4, 2018
da46d0b
FIX: getEfuseMac can return random data (#1059)
tferrin Mar 4, 2018
2718d69
Python 3 fails, unicode is not needed or supplied (#1082)
alecthegeek Mar 4, 2018
494ff21
Make ESPmDNS compatible to ESP8266mDNS (#1085)
beegee-tokyo Mar 4, 2018
e3a5ae4
clean up faster (fixes #828) (#1087)
h3ndrik Mar 4, 2018
0f9595e
Fixes SPI mode setting (Issue #1094) (#1096)
kroggen Mar 4, 2018
7aa7c3f
Add additional test detail (#1099)
lonerzzz Mar 4, 2018
e2f7736
Fix coding stype as per PEP8 (#1105)
hecko Mar 4, 2018
bb8b255
fix issue 1081 and 1086 Wifi connection error when using STATIC IP se…
baggior Mar 4, 2018
848f98e
fix event reason logging > 176 (#1132)
tablatronix Mar 4, 2018
1256f2e
Updated to download mkspiffs 0.2.2 (#1159)
rfestag Mar 4, 2018
7141e3e
micros() returning inconsistend values when call from different tasks…
stickbreaker Mar 4, 2018
adf513f
Unify time modification on SD and SPIFFS (#738)
Mar 4, 2018
835268c
fix thread storage
me-no-dev Mar 4, 2018
b4b9a79
Add BluetoothSerial library (#1144)
copercini Mar 5, 2018
146b2f6
Use correct separator in keywords.txt (#1175)
per1234 Mar 5, 2018
e9ee0ab
Fixed M5Stack build.board name (#1187)
M5StackJimmyLai Mar 9, 2018
3a4ec66
Add hasClient for BluetoothSerial (#1183)
copercini Mar 9, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 56 additions & 4 deletions boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,58 @@ esp32.menu.DebugLevel.verbose.build.code_debug=5

##############################################################

pico32.name=ESP32 Pico Kit

pico32.upload.tool=esptool
pico32.upload.maximum_size=1310720
pico32.upload.maximum_data_size=294912
pico32.upload.wait_for_upload_port=true

pico32.serial.disableDTR=true
pico32.serial.disableRTS=true

pico32.build.mcu=esp32
pico32.build.core=esp32
pico32.build.variant=pico32
pico32.build.board=ESP32_PICO

pico32.build.f_cpu=240000000L
pico32.build.flash_size=4MB
pico32.build.flash_freq=80m
pico32.build.flash_mode=qio
pico32.build.boot=qio
pico32.build.partitions=default

pico32.menu.UploadSpeed.921600=921600
pico32.menu.UploadSpeed.921600.upload.speed=921600
pico32.menu.UploadSpeed.115200=115200
pico32.menu.UploadSpeed.115200.upload.speed=115200
pico32.menu.UploadSpeed.256000.windows=256000
pico32.menu.UploadSpeed.256000.upload.speed=256000
pico32.menu.UploadSpeed.230400.windows.upload.speed=256000
pico32.menu.UploadSpeed.230400=230400
pico32.menu.UploadSpeed.230400.upload.speed=230400
pico32.menu.UploadSpeed.460800.linux=460800
pico32.menu.UploadSpeed.460800.macosx=460800
pico32.menu.UploadSpeed.460800.upload.speed=460800
pico32.menu.UploadSpeed.512000.windows=512000
pico32.menu.UploadSpeed.512000.upload.speed=512000

pico32.menu.DebugLevel.none=None
pico32.menu.DebugLevel.none.build.code_debug=0
pico32.menu.DebugLevel.error=Error
pico32.menu.DebugLevel.error.build.code_debug=1
pico32.menu.DebugLevel.warn=Warn
pico32.menu.DebugLevel.warn.build.code_debug=2
pico32.menu.DebugLevel.info=Info
pico32.menu.DebugLevel.info.build.code_debug=3
pico32.menu.DebugLevel.debug=Debug
pico32.menu.DebugLevel.debug.build.code_debug=4
pico32.menu.DebugLevel.verbose=Verbose
pico32.menu.DebugLevel.verbose.build.code_debug=5

##############################################################

esp32thing.name=SparkFun ESP32 Thing

esp32thing.upload.tool=esptool
Expand Down Expand Up @@ -952,7 +1004,7 @@ mhetesp32minikit.menu.UploadSpeed.512000.upload.speed=512000
esp32vn-iot-uno.name=ESP32vn IoT Uno

esp32vn-iot-uno.upload.tool=esptool
esp32vn-iot-uno.upload.maximum_size=1044464
esp32vn-iot-uno.upload.maximum_size=1310720
esp32vn-iot-uno.upload.maximum_data_size=294912
esp32vn-iot-uno.upload.wait_for_upload_port=true

Expand Down Expand Up @@ -1166,7 +1218,7 @@ m5stack-core-esp32.serial.disableRTS=true
m5stack-core-esp32.build.mcu=esp32
m5stack-core-esp32.build.core=esp32
m5stack-core-esp32.build.variant=esp32
m5stack-core-esp32.build.board=M5Stack-Core-ESP32
m5stack-core-esp32.build.board=M5Stack_Core_ESP32

m5stack-core-esp32.build.f_cpu=240000000L
m5stack-core-esp32.build.flash_size=4MB
Expand Down Expand Up @@ -1225,7 +1277,7 @@ m5stack-core-esp32.menu.DebugLevel.verbose.build.code_debug=5
heltec_wifi_kit_32.name=Heltec_WIFI_Kit_32

heltec_wifi_kit_32.upload.tool=esptool
heltec_wifi_kit_32.upload.maximum_size=1044464
heltec_wifi_kit_32.upload.maximum_size=1310720
heltec_wifi_kit_32.upload.maximum_data_size=294912
heltec_wifi_kit_32.upload.wait_for_upload_port=true

Expand Down Expand Up @@ -1268,7 +1320,7 @@ heltec_wifi_kit_32.menu.UploadSpeed.512000.upload.speed=512000
heltec_wifi_lora_32.name=Heltec_WIFI_LoRa_32

heltec_wifi_lora_32.upload.tool=esptool
heltec_wifi_lora_32.upload.maximum_size=1044464
heltec_wifi_lora_32.upload.maximum_size=1310720
heltec_wifi_lora_32.upload.maximum_data_size=294912
heltec_wifi_lora_32.upload.wait_for_upload_port=true

Expand Down
2 changes: 1 addition & 1 deletion cores/esp32/Esp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ bool EspClass::flashRead(uint32_t offset, uint32_t *data, size_t size)

uint64_t EspClass::getEfuseMac(void)
{
uint64_t _chipmacid;
uint64_t _chipmacid = 0LL;
esp_efuse_mac_get_default((uint8_t*) (&_chipmacid));
return _chipmacid;
}
2 changes: 1 addition & 1 deletion cores/esp32/esp32-hal-bt.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
#if defined(CONFIG_BT_ENABLED) && defined(CONFIG_BLUEDROID_ENABLED)


#include "bt.h"
#include "esp_bt.h"
#include "esp_bt_defs.h"
#include "esp_bt_main.h"

Expand Down
8 changes: 4 additions & 4 deletions cores/esp32/esp32-hal-ledc.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ static void _ledcSetupTimer(uint8_t chan, uint32_t div_num, uint8_t bit_num, boo
#endif
}
LEDC_MUTEX_LOCK();
LEDC_TIMER(group, timer).conf.div_num = div_num;//18 bit (10.8) This register is used to configure parameter for divider in timer the least significant eight bits represent the decimal part.
LEDC_TIMER(group, timer).conf.bit_num = bit_num;//5 bit This register controls the range of the counter in timer. the counter range is [0 2**bit_num] the max bit width for counter is 20.
LEDC_TIMER(group, timer).conf.clock_divider = div_num;//18 bit (10.8) This register is used to configure parameter for divider in timer the least significant eight bits represent the decimal part.
LEDC_TIMER(group, timer).conf.duty_resolution = bit_num;//5 bit This register controls the range of the counter in timer. the counter range is [0 2**bit_num] the max bit width for counter is 20.
LEDC_TIMER(group, timer).conf.tick_sel = apb_clk;//apb clock
if(group) {
LEDC_TIMER(group, timer).conf.low_speed_update = 1;//This bit is only useful for low speed timer channels, reserved for high speed timers
Expand Down Expand Up @@ -111,8 +111,8 @@ static double _ledcTimerRead(uint8_t chan)
bool apb_clk;
uint8_t group=(chan/8), timer=((chan/2)%4);
LEDC_MUTEX_LOCK();
div_num = LEDC_TIMER(group, timer).conf.div_num;//18 bit (10.8) This register is used to configure parameter for divider in timer the least significant eight bits represent the decimal part.
bit_num = LEDC_TIMER(group, timer).conf.bit_num;//5 bit This register controls the range of the counter in timer. the counter range is [0 2**bit_num] the max bit width for counter is 20.
div_num = LEDC_TIMER(group, timer).conf.clock_divider;//18 bit (10.8) This register is used to configure parameter for divider in timer the least significant eight bits represent the decimal part.
bit_num = LEDC_TIMER(group, timer).conf.duty_resolution;//5 bit This register controls the range of the counter in timer. the counter range is [0 2**bit_num] the max bit width for counter is 20.
apb_clk = LEDC_TIMER(group, timer).conf.tick_sel;//apb clock
LEDC_MUTEX_UNLOCK();
uint64_t clk_freq = 1000000;
Expand Down
40 changes: 33 additions & 7 deletions cores/esp32/esp32-hal-misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include "nvs.h"
#include "esp_partition.h"
#include "esp_log.h"
#include "pthread.h"
#include <sys/time.h>

//Undocumented!!! Get chip temperature in Farenheit
Expand All @@ -38,20 +39,45 @@ void yield()
}

portMUX_TYPE microsMux = portMUX_INITIALIZER_UNLOCKED;
static pthread_key_t microsStore=NULL; // Thread Local Storage Handle

void microsStoreDelete(void * storage) { // release thread local data when task is delete.
if(storage) free(storage);
}

unsigned long IRAM_ATTR micros()
{
static unsigned long lccount = 0;
static unsigned long overflow = 0;
if (!microsStore) { // first Time Ever thread local not init'd
portENTER_CRITICAL_ISR(&microsMux);
pthread_key_create(&microsStore,microsStoreDelete); // create initial holder
portEXIT_CRITICAL_ISR(&microsMux);
}

uint32_t *ptr;// [0] is lastCount, [1] is overFlow

ptr = pthread_getspecific(microsStore); // get address of storage

if(ptr == NULL) { // first time in this thread, allocate mem, init it.
portENTER_CRITICAL_ISR(&microsMux);
ptr = (uint32_t*)malloc(sizeof(uint32_t)*2);
pthread_setspecific(microsStore,ptr); // store the pointer to this thread's values
ptr[0] = 0; // lastCount value
ptr[1] = 0; // overFlow
portEXIT_CRITICAL_ISR(&microsMux);
}

unsigned long ccount;

portENTER_CRITICAL_ISR(&microsMux);
__asm__ __volatile__ ( "rsr %0, ccount" : "=a" (ccount) );
if(ccount < lccount){
overflow += UINT32_MAX / CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ;
__asm__ __volatile__ ( "rsr %0, ccount" : "=a" (ccount) ); //get cycle count
if(ccount < ptr[0]) { // overflow occurred
ptr[1] += UINT32_MAX / CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ;
}
lccount = ccount;

ptr[0] = ccount;
portEXIT_CRITICAL_ISR(&microsMux);
return overflow + (ccount / CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ);

return ptr[1] + (ccount / CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ);
}

unsigned long IRAM_ATTR millis()
Expand Down
8 changes: 4 additions & 4 deletions cores/esp32/esp32-hal-spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -309,9 +309,9 @@ uint8_t spiGetDataMode(spi_t * spi)
bool outEdge = spi->dev->user.ck_out_edge;
if(idleEdge) {
if(outEdge) {
return SPI_MODE3;
return SPI_MODE2;
}
return SPI_MODE2;
return SPI_MODE3;
}
if(outEdge) {
return SPI_MODE1;
Expand Down Expand Up @@ -713,11 +713,11 @@ void spiTransaction(spi_t * spi, uint32_t clockDiv, uint8_t dataMode, uint8_t bi
break;
case SPI_MODE2:
spi->dev->pin.ck_idle_edge = 1;
spi->dev->user.ck_out_edge = 0;
spi->dev->user.ck_out_edge = 1;
break;
case SPI_MODE3:
spi->dev->pin.ck_idle_edge = 1;
spi->dev->user.ck_out_edge = 1;
spi->dev->user.ck_out_edge = 0;
break;
case SPI_MODE0:
default:
Expand Down
21 changes: 18 additions & 3 deletions cores/esp32/pgmspace.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,18 +37,33 @@ typedef unsigned long prog_uint32_t;
#define _SFR_BYTE(n) (n)

#define pgm_read_byte(addr) (*(const unsigned char *)(addr))
#define pgm_read_word(addr) (*(const unsigned short *)(addr))
#define pgm_read_dword(addr) (*(const unsigned long *)(addr))
#define pgm_read_float(addr) (*(const float *)(addr))
#define pgm_read_word(addr) ({ \
typeof(addr) _addr = (addr); \
*(const unsigned short *)(_addr); \
})
#define pgm_read_dword(addr) ({ \
typeof(addr) _addr = (addr); \
*(const unsigned long *)(_addr); \
})
#define pgm_read_float(addr) ({ \
typeof(addr) _addr = (addr); \
*(const float *)(_addr); \
})
#define pgm_read_ptr(addr) ({ \
typeof(addr) _addr = (addr); \
*(void * const *)(_addr); \
})

#define pgm_read_byte_near(addr) pgm_read_byte(addr)
#define pgm_read_word_near(addr) pgm_read_word(addr)
#define pgm_read_dword_near(addr) pgm_read_dword(addr)
#define pgm_read_float_near(addr) pgm_read_float(addr)
#define pgm_read_ptr_near(addr) pgm_read_ptr(addr)
#define pgm_read_byte_far(addr) pgm_read_byte(addr)
#define pgm_read_word_far(addr) pgm_read_word(addr)
#define pgm_read_dword_far(addr) pgm_read_dword(addr)
#define pgm_read_float_far(addr) pgm_read_float(addr)
#define pgm_read_ptr_far(addr) pgm_read_ptr(addr)

#define memcmp_P memcmp
#define memccpy_P memccpy
Expand Down
4 changes: 2 additions & 2 deletions docs/arduino-ide/debian_ubuntu.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Installation instructions for Debian / Ubuntu OS
cd esp32 && \
git submodule update --init --recursive && \
cd tools && \
python get.py
python2 get.py
```
- Restart Arduino IDE

Expand All @@ -32,4 +32,4 @@ Installation instructions for Debian / Ubuntu OS
cd esp32 && \
git submodule update --init --recursive && \
cd tools && \
python get.py```
python2 get.py```
98 changes: 49 additions & 49 deletions docs/arduino-ide/windows.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,49 @@
## Steps to install Arduino ESP32 support on Windows
### Tested on 32 and 64 bit Windows 10 machines
1. Download and install the latest Arduino IDE ```Windows Installer``` from [arduino.cc](https://www.arduino.cc/en/Main/Software)
2. Download and install Git from [git-scm.com](https://git-scm.com/download/win)
3. Start ```Git GUI``` and run through the following steps:
- Select ```Clone Existing Repository```
![Step 1](win-screenshots/win-gui-1.png)
- Select source and destination
- Source Location: ```https://github.com/espressif/arduino-esp32.git```
- Target Directory: ```C:/Users/[YOUR_USER_NAME]/Documents/Arduino/hardware/espressif/esp32```
- Change this to your Sketchbook Location if you have a different directory listed underneath the "Sketchbook location" in Arduino preferences.
- Click ```Clone``` to start cloning the repository
![Step 2](win-screenshots/win-gui-2.png)
![Step 3](win-screenshots/win-gui-3.png)
- Open ```C:/Users/[YOUR_USER_NAME]/Documents/Arduino/hardware/espressif/esp32/tools``` and double-click ```get.exe```
![Step 4](win-screenshots/win-gui-4.png)
- When ```get.exe``` finishes, you should see the following files in the directory
![Step 5](win-screenshots/win-gui-5.png)
4. Plug your ESP32 board and wait for the drivers to install (or install manually any that might be required)
5. Start Arduino IDE
6. Select your board in ```Tools > Board``` menu
7. Select the COM port that the board is attached to
8. Compile and upload (You might need to hold the boot button while uploading)
![Arduino IDE Example](win-screenshots/arduino-ide.png)
### How to update to the latest code
1. Start ```Git GUI``` and you should see the repository under ```Open Recent Repository```. Click on it!
![Update Step 1](win-screenshots/win-gui-update-1.png)
2. From menu ```Remote``` select ```Fetch from``` > ```origin```
![Update Step 2](win-screenshots/win-gui-update-2.png)
3. Wait for git to pull any changes and close ```Git GUI```
4. Open ```C:/Users/[YOUR_USER_NAME]/Documents/Arduino/hardware/espressif/esp32/tools``` and double-click ```get.exe```
![Step 4](win-screenshots/win-gui-4.png)
## Steps to install Arduino ESP32 support on Windows
### Tested on 32 and 64 bit Windows 10 machines

1. Download and install the latest Arduino IDE ```Windows Installer``` from [arduino.cc](https://www.arduino.cc/en/Main/Software)
2. Download and install Git from [git-scm.com](https://git-scm.com/download/win)
3. Start ```Git GUI``` and run through the following steps:
- Select ```Clone Existing Repository```

![Step 1](win-screenshots/win-gui-1.png)

- Select source and destination
- Sketchbook Directory: Usually ```C:/Users/[YOUR_USER_NAME]/Documents/Arduino``` and is listed underneath the "Sketchbook location" in Arduino preferences.
- Source Location: ```https://github.com/espressif/arduino-esp32.git```
- Target Directory: ```[ARDUINO_SKETCHBOOK_DIR]/hardware/espressif/esp32```
- Click ```Clone``` to start cloning the repository

![Step 2](win-screenshots/win-gui-2.png)
![Step 3](win-screenshots/win-gui-3.png)
- open a `Git Bash` session pointing to ```ARDUINO_SKETCHBOOK_DIR``` and execute ```git submodule update --init --recursive```
- Open ```[ARDUINO_SKETCHBOOK_DIR]/hardware/espressif/esp32/tools``` and double-click ```get.exe```

![Step 4](win-screenshots/win-gui-4.png)

- When ```get.exe``` finishes, you should see the following files in the directory

![Step 5](win-screenshots/win-gui-5.png)

4. Plug your ESP32 board and wait for the drivers to install (or install manually any that might be required)
5. Start Arduino IDE
6. Select your board in ```Tools > Board``` menu
7. Select the COM port that the board is attached to
8. Compile and upload (You might need to hold the boot button while uploading)

![Arduino IDE Example](win-screenshots/arduino-ide.png)

### How to update to the latest code

1. Start ```Git GUI``` and you should see the repository under ```Open Recent Repository```. Click on it!

![Update Step 1](win-screenshots/win-gui-update-1.png)

2. From menu ```Remote``` select ```Fetch from``` > ```origin```

![Update Step 2](win-screenshots/win-gui-update-2.png)

3. Wait for git to pull any changes and close ```Git GUI```
4. Open ```[ARDUINO_SKETCHBOOK_DIR]/hardware/espressif/esp32/tools``` and double-click ```get.exe```

![Step 4](win-screenshots/win-gui-4.png)
17 changes: 8 additions & 9 deletions docs/platformio.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
Installation instructions for 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)
- [What is PlatformIO?](http://docs.platformio.org/en/latest/what-is-platformio.html?utm_source=github&utm_medium=arduino-esp32)
- [PlatformIO IDE](http://platformio.org/platformio-ide?utm_source=github&utm_medium=arduino-esp32)
- [PlatformIO Core](http://docs.platformio.org/en/latest/core.html?utm_source=github&utm_medium=arduino-esp32) (command line tool)
- [Advanced usage](http://docs.platformio.org/en/latest/platforms/espressif32.html?utm_source=github&utm_medium=arduino-esp32) -
custom settings, uploading to SPIFFS, Over-the-Air (OTA), staging version
- [Integration with Cloud and Standalone IDEs](http://docs.platformio.org/en/latest/ide.html?utm_source=github&utm_medium=arduino-esp32) -
Cloud9, Codeanywhere, Eclipse Che (Codenvy), Atom, CLion, Eclipse, Emacs, NetBeans, Qt Creator, Sublime Text, VIM, Visual Studio, and VSCode
- [Project Examples](http://docs.platformio.org/en/latest/platforms/espressif32.html?utm_source=github&utm_medium=arduino-esp32#examples)
Loading