Commit Graph

329 Commits

Author SHA1 Message Date
me-no-dev
6707d4d331 Optimize timer drift
Fixes: https://github.com/espressif/arduino-esp32/issues/227
2017-08-26 00:01:02 +03:00
me-no-dev
77b03472c6 Set uart queue to NULL after free
Fixes: https://github.com/espressif/arduino-esp32/issues/435
2017-08-17 19:04:20 +03:00
Pranav Cherukupalli
41e36a72f3 uartEnd: Unlock mutex before detaching rx and tx (#554)
* uartEnd: Unlock mutex before detaching rx and tx

This should solve the device freezing issue when Serial.end() is called

* Unlock UART MUTEX only for detaching Rx and Tx

* Thanks to @me-no-dev for pointing it out that
   uart->dev->conf0.val can be inside mutex lock
2017-08-04 12:00:51 +03:00
me-no-dev
a1bef8b5c3 improve Serial repeated begin/baud change 2017-08-02 00:32:42 +03:00
me-no-dev
4495659ac5 Increase the memory for loop task 2017-08-02 00:08:56 +03:00
Claude Heintz
23acb4d17b Two Stop Bit Workaround (#461)
* Update esp32-hal-uart.c

* Two Stop Bit Workaround

see https://github.com/espressif/esp-idf/blob/master/components/driver/uart.c  lines 118-127
2017-06-22 19:40:31 +02:00
me-no-dev
c2f83f48e0 Revert "Fix enable Update partition"
This reverts commit 63e1daa5ea67ce0f9b89b789e4bb26672f64d32e.
2017-06-03 20:11:41 +03:00
me-no-dev
2e5743eaa1 Fix enable Update partition 2017-06-03 20:11:41 +03:00
me-no-dev
7db8f70956 change return type of micros() and millis()
Fixes: https://github.com/espressif/arduino-esp32/issues/384
2017-05-22 15:47:12 +03:00
me-no-dev
d36e9bbfa9 Change deprecated esp_efuse_read_mac method 2017-05-15 21:35:25 +03:00
me-no-dev
4b47402afd Use static buffer for log_printf 2017-05-15 20:53:45 +03:00
me-no-dev
befebb7242 Change DPORT access macros 2017-05-15 20:53:09 +03:00
me-no-dev
450df7e3f8 fix libb64
Implements: https://github.com/esp8266/Arduino/pull/2883
Fixes: https://github.com/espressif/arduino-esp32/issues/313
Fixes: https://github.com/espressif/arduino-esp32/issues/344
2017-05-06 18:56:25 +03:00
me-no-dev
673f453da0 BT define the hal methods even if BT is disabled (but return false) 2017-05-06 18:50:20 +03:00
me-no-dev
768e57f285 Fix BT enabled check 2017-05-06 18:40:23 +03:00
me-no-dev
b879f80017 Allow Arduino to be run without BT support in IDF
Fixes: https://github.com/espressif/arduino-esp32/issues/343
2017-05-06 18:27:03 +03:00
WEMOS Electronics
a38ffe58fe Add ESP.getChipId() function to get ESP32's ChipID. (#322)
* Add ESP.getChipId() function to get ESP32's ChipID.

* change getChipId() to getEfuseMac()
2017-05-05 09:59:54 +03:00
Severin Smith
cc73f17add SPI_MODE2 and SPI_MODE3 configurations inverted (#345)
It appears that the configurations for `ck_out_edge` were inverted for `SPI_MODE2` and `SPI_MODE3`. You can check the technical reference manual on page 76, table 23 "Clock Polarity and Phase, and Corresponding SPI Register Values for SPI Master".

I've check with my oscilloscope that the current configuration is wrong and this fix corrects the issue.
2017-05-05 09:59:18 +03:00
me-no-dev
aad4b336d6 Add default config for BT init and offsets for partition table 2017-04-22 16:33:07 +03:00
me-no-dev
ee14bc2cc6 Mute leftover debug from WiFi 2017-04-13 09:13:45 +03:00
me-no-dev
fd81fd0ac3 Fix BT init compilation error
Fixes: https://github.com/espressif/arduino-esp32/issues/309
2017-04-12 20:53:21 +03:00
me-no-dev
b465858563 Check and format NVS partition if size has changed 2017-04-04 01:27:26 +03:00
me-no-dev
90322ae7eb Make I2C work reliably with interrupts
Thanks @marcmerlin and @MartyMacGyver
2017-03-26 00:27:27 +02:00
me-no-dev
dda89947a7 Fix writePixels 2017-03-22 02:26:18 +02:00
me-no-dev
9388d8358e Return true for boolean test on Serial
Fixes: https://github.com/espressif/arduino-esp32/issues/270
2017-03-20 11:26:34 +02:00
me-no-dev
786425509e Track microseconds overflow
Closes: https://github.com/espressif/arduino-esp32/pull/267
2017-03-20 11:21:56 +02:00
me-no-dev
eb46978a8d Add Arduino SAM compatible analogReadResolution and Non-Blocking ADC api
connected to: https://github.com/espressif/arduino-esp32/issues/220 and
https://github.com/espressif/arduino-esp32/issues/161
2017-03-03 15:53:20 +02:00
me-no-dev
1058e89dc3 Fix wrong bitmask returned for pins above 31 2017-03-03 14:42:14 +02:00
me-no-dev
5f2b00228c IDF add some defaults and allow Arduino to run in single-core mode 2017-02-28 23:36:05 +02:00
Martin Sloup
00c1a65612 Improvements in EspClass (#222)
* Improvements in EspClass

- fixed not working functions for flash chip size, speed and mode
- added function to retrieve chip revision from eFuse
- flashRead / flashWrite supports encrypted flash

* Rename getCpuRevision function to getChipRevision

* Revert: flashRead / flashWrite supports encrypted flash

Reading and writing to encrypted flash has to be aligned to 16-bytes. Also NAND way of writing (i.e. flipping 1s to 0s) will not work with spi_flash_write_encrypted. Note: spi_flash_read_encrypted will always try to decrypt data, even if it wasn't encrypted in the first place.
2017-02-23 02:23:27 +02:00
me-no-dev
1d759380a6 Major IDF and Arduino Update
WiFi and BlueTooth can now be started and stopped at will.
basic functions added to esp32-hal to start and stop the BT radio
SimpleBLE class added to show the most basic functionality
Example to show how to switch between BT, WiFi or Both
2017-02-23 01:11:57 +02:00
me-no-dev
e873d577f7 Restructure Arduino.h a bit to help eclipse code indexer 2017-02-20 15:06:22 +02:00
me-no-dev
d0232d126a SPI implement transaction locking
Use transactions to skip mutex locks for reads and writes
2017-02-14 04:15:38 +02:00
me-no-dev
9bd5de11a7 add hook for bluetooth to Arduino INIT 2017-02-14 04:15:38 +02:00
Martin Sloup
43cc3dc815 Fix for implicit declaration of function nvs_flash_init error (#204) 2017-02-13 01:56:47 +02:00
me-no-dev
4a90aeebc9 fix ESP:: getCpuFreqMHz 2017-02-11 23:36:16 +02:00
me-no-dev
450ea0d211 Update ESP class 2017-02-11 23:34:43 +02:00
me-no-dev
09f5f7266b move yield to function
fixes: https://github.com/espressif/arduino-esp32/issues/193
2017-02-11 00:25:15 +02:00
Me No Dev
fb8fe671d6 New partitions (#192)
* Add new partition scheme

* Init NVS early, so it can be used without BT or WiFi
2017-02-10 14:11:24 +02:00
me-no-dev
7a7b697ff9 Add ESP::deepSleep(us)
fixes: https://github.com/espressif/arduino-esp32/issues/51
2017-02-08 20:32:49 +02:00
Martin Sloup
67128fcb2c Fixes implementation of __FlashStringHelper (#183)
Previous __FlashStringHelper implementation was defines as a char which brought problem in case the method with char* parameter used overloading with __FlashStringHelper* parameter (they was identical). Now __FlashStringHelper is defined as a class and all casts between char* and __FlashStringHelper* are made with reinterpret_cast sugar.
2017-02-08 19:57:26 +02:00
Me No Dev
d02c1c786e Update IDF, fix SS definition, add custom partitions and debug level selection (#174)
* Add build time partitions compilation

* Fix wrong definition of SS pin

* Add support for core debug level selection

* update idf libs
2017-02-06 15:17:11 +02:00
me-no-dev
de017a8a1b Optimize SPI transfers to take one lock and do not return until completed 2017-02-01 02:14:36 +02:00
me-no-dev
6a1e7c1e99 Fix cbuf not being able to hold the full length
fixes: https://github.com/espressif/arduino-esp32/issues/145
2017-01-24 17:57:44 +02:00
me-no-dev
5f203e1a98 Add ESP::getSdkVersion
fixes: https://github.com/espressif/arduino-esp32/issues/146
2017-01-24 11:44:26 +02:00
me-no-dev
c8140f8288 add configTime, getLocalTime and support for time in Print
example:
```cpp
//done once on WiFi init
configTime(-7200, 3600, "pool.ntp.org");
//get local time
struct tm timeinfo;
if(!getLocalTime(&timeinfo)){
    Serial.println("Failed to obtain time");
    return;
}
//print time
Serial.println(&timeinfo);
//print time with different format
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
```
fixes: https://github.com/espressif/arduino-esp32/issues/29
2017-01-24 04:07:27 +02:00
sorscode
13f3ac569b Enable pulseIn() (#140)
* Add files via upload

enable pulseIn()

* Remove optimistic_yield
2017-01-20 21:49:17 +02:00
me-no-dev
9e6e3249b6 update windows toolchain and platform.txt 2017-01-19 03:24:21 +02:00
me-no-dev
35316de8d3 revert toolchain for windows 2017-01-17 12:45:03 +02:00
Angus Gratton
ce5df79674 SDK headers: Use new esp-idf signal name VSPICLK_OUT_IDX (#130) 2017-01-16 12:12:13 +02:00
me-no-dev
6edf8a7795 fix renamed method names for SigmaDelta 2017-01-09 21:55:37 +02:00
me-no-dev
a4305284d0 LEDC Driver Update
- Add double precision to LEDC frequency
- Add method for writing frequencies (Tones)
- Add method for writing notes (8 channels polyphony anyone?)
2017-01-09 18:05:30 +02:00
me-no-dev
8e948096d4 Rename sd->sigmadelta in HAL
Change is to not be mistaken with SD Card
2017-01-09 17:57:17 +02:00
me-no-dev
7cef2e2954 Add initial IPv6 Support 2017-01-06 00:54:50 +02:00
me-no-dev
8b96b1a5f4 update IDF libs and esptool.py
adds autoreset after firmware upload
2017-01-05 13:54:40 +02:00
me-no-dev
668c3811b8 Wire: wait while bus is busy if ack failed 2016-12-15 01:41:54 +02:00
me-no-dev
b86fb30b1d cleanup read commands 2016-12-14 23:31:28 +02:00
me-no-dev
04e0902ca6 Wire: if we are reading only one byte, do not send empty read command 2016-12-14 18:43:32 +02:00
me-no-dev
917a4fd6f0 allow setting internal pull resistors for any mode and enable them for I2C 2016-12-14 13:11:10 +02:00
me-no-dev
c19fc061b0 Hopefully fix I2C/Wire
Tested with (all at the same time):
- MPU9250
- HTU21
- TMP102
- BMP180
- AM2320
- SSD1306
2016-12-14 02:41:22 +02:00
me-no-dev
e92634a92b Add analogSetAttenuation and analogSetPinAttenuation 2016-12-14 02:29:54 +02:00
me-no-dev
a6c02bc710 Add some missing defines
fixes: https://github.com/espressif/arduino-esp32/issues/76
fixes: https://github.com/espressif/arduino-esp32/issues/5
fixes: https://github.com/espressif/arduino-esp32/issues/91
2016-12-12 02:12:18 +02:00
Victor Tseng
54b1b8b1d3 const correctness (#89)
make IPAddress.toString() const method, it doesn't modify anything
within the class.
2016-12-12 01:32:55 +02:00
me-no-dev
8e7d00b9a8 i2c revert to old fifo write 2016-12-09 18:07:59 +02:00
me-no-dev
4e458fd6fb Initial Timers driver
Implementation for Timers 0-4 (no locks yet)
2016-12-09 17:47:30 +02:00
me-no-dev
f5d6828c5a Adjust interrupt numbers for GPIO and Touch 2016-12-09 13:22:56 +02:00
Me No Dev
d1025b6b5d Update esp32-hal-i2c.c
wait for data to be latched and increase timeout in attempt to fix clock stretch issues
Connected issues:
http://esp32.com/viewtopic.php?f=19&t=632&p=2832#p2801
https://github.com/espressif/arduino-esp32/issues/81
https://github.com/espressif/arduino-esp32/issues/53
https://github.com/espressif/arduino-esp32/issues/11
2016-12-09 12:51:36 +02:00
me-no-dev
758553a786 Add analogRead, touchRead, dacWrite and updated esp-idf 2016-12-08 23:43:41 +02:00
me-no-dev
48abb79ed3 Remove autostart define overwrite
Fixes issue where switch will not properly trigger if Arduino is used
in IDF as component.
See
https://github.com/espressif/arduino-esp32/issues/83#issuecomment-265326
071
2016-12-07 11:06:33 +02:00
me-no-dev
ba04076f16 Move definitions to not conflict with C includes 2016-12-05 22:53:04 +02:00
me-no-dev
6dc34077c4 Add correct definitions for word
fixes: https://github.com/espressif/arduino-esp32/issues/76
2016-12-05 22:50:51 +02:00
me-no-dev
e77ec634a9 Fix deprecation warnings in ESP.cpp 2016-12-02 14:30:04 +02:00
me-no-dev
49f35ff070 use esp_random in WMath.cpp 2016-12-02 13:42:31 +02:00
me-no-dev
6db0ee1304 Optimize GPIO and account for micros overflow in delayMicroseconds 2016-12-02 13:03:51 +02:00
me-no-dev
8904f52c39 Allow phy to be initialized only if WiFi/BLE is used/enabled
fixes: https://github.com/espressif/arduino-esp32/issues/72
2016-12-01 13:23:17 +02:00
me-no-dev
1d1aeecde2 simplify WiFi boot procedure to prepare for on-demand stack load
currently ```esp_wifi_init``` have to be called in ```app_main``` or
WiFi will fail to boot. When possible to boot later, code will be moved
into ```_esp_wifi_start``` to be executed when necessary
2016-11-28 00:50:21 +02:00
me-no-dev
f4c2135a30 RTC pins have pull up/down elsewhere
use driver/gpio for now.

fixes: https://github.com/espressif/arduino-esp32/issues/66
2016-11-26 12:04:36 +02:00
Me No Dev
be2a26b3ff set SCL to OUTPUT_OPEN_DRAIN
fixes: https://github.com/espressif/arduino-esp32/issues/69
2016-11-25 11:25:50 +02:00
Drake Youngkun Min
d8b2290313 Add 'fromString(const char*)', 'fromString(const String)' to IPAddress class (#68) 2016-11-24 09:46:11 +02:00
me-no-dev
5703b769f2 pull sdkconfig early so IDF does not warn about redefinition 2016-11-18 15:14:02 +02:00
me-no-dev
c30012ab78 Add Kconfig for IDF and option to disable HAL mutexes
IDF Options:
- Autostart Arduino (implements app_main)
- Disable HAL locks
- Set HAL debug level
- Auto-connect STA if configured (else will connect after WiFi.begin())
2016-11-18 15:07:25 +02:00
me-no-dev
7abb15ca62 reset i2c cmd buffer before read/write
related to [issue
53](https://github.com/espressif/arduino-esp32/issues/53)
2016-11-17 00:46:56 +02:00
me-no-dev
6d097cd4b5 Add definitions for yield() and optimistic_yield()
Fixes: https://github.com/espressif/arduino-esp32/issues/54
2016-11-16 17:36:52 +02:00
me-no-dev
56cd8f63f0 Add HardwareSerial::write(const char *)
fixes: https://github.com/espressif/arduino-esp32/issues/55
2016-11-16 17:30:13 +02:00
me-no-dev
47babd2098 shave off some time when sending multiple bytes through SPI 2016-11-14 13:08:30 +02:00
me-no-dev
f0b7959425 add default pins for UART1 and UART2
NOTE: UART1's default pins can be used only when SPI Flash is DIO

thanks @ladyada
2016-11-13 17:01:44 +02:00
me-no-dev
2cc1a6a1da add shiftIn shiftOut
thanks @ladyada
2016-11-13 16:53:56 +02:00
me-no-dev
bfe6e5ae77 optimize log facility for multi threading
- Shorten filenames
- Add log_printf with mutex locking to play nice with Serial and two
cores
2016-11-13 13:40:31 +02:00
me-no-dev
a5d52ac4f7 Do not include file that does not exist 2016-11-13 13:26:49 +02:00
me-no-dev
2515a3cfed Make compiler not complain about 2 random prototypes
Issue is when Arduino.h is included in C file
2016-11-13 13:23:44 +02:00
me-no-dev
fb8f1244b7 wrong count checked for uartWrite 2016-10-29 14:34:18 +03:00
volca
261bc5ae85 Add from original Arduino.h (#26) 2016-10-27 15:43:27 +03:00
me-no-dev
6465d4fa8e Make Arduino.h safe to include from C files 2016-10-26 04:07:52 +03:00
me-no-dev
a92f20edb2 include stdlib_noniso in Arduino.h 2016-10-26 02:13:00 +03:00
me-no-dev
29feaaa2d0 add some missing Arduino defines 2016-10-26 02:00:39 +03:00
me-no-dev
d7aed639ef Add noniso.c implementation from ESP8266 2016-10-26 00:21:06 +03:00
me-no-dev
50c2ea529b add ledc and sigma-delta api 2016-10-20 00:31:03 +03:00
me-no-dev
9f9fb41253 Merge branch 'i2c-thread-safe'
* i2c-thread-safe:
  remove unnecessary locks
  return proper errors
  implement thread-safe i2c
2016-10-17 15:41:45 +03:00
me-no-dev
9a9ef063ee Merge branch 'spi-thread-safe'
* spi-thread-safe:
  remove unnecessary locks
  implement thread-safe spi
2016-10-17 15:41:15 +03:00
me-no-dev
6327bbd3e9 do not lock for ets_printf 2016-10-17 15:34:55 +03:00
me-no-dev
988bcbf08f Merge branch 'master' into i2c-thread-safe 2016-10-14 03:24:21 +03:00
me-no-dev
9116cc4311 remove unnecessary locks 2016-10-14 03:24:20 +03:00
me-no-dev
7de6da591a Merge branch 'master' into spi-thread-safe 2016-10-14 03:16:09 +03:00
me-no-dev
cdee64cb07 remove unnecessary locks 2016-10-14 03:16:02 +03:00
me-no-dev
242bca9451 Implement thread-safe uart 2016-10-14 03:07:21 +03:00
me-no-dev
17c8ceb1b9 UART rework
many possible problems fixed in preparation for thread-safe
2016-10-14 03:02:40 +03:00
me-no-dev
d4dd33d2df implement thread-safe spi 2016-10-11 15:51:09 +03:00
me-no-dev
f9f895797a return proper errors 2016-10-11 15:11:51 +03:00
me-no-dev
9ec4389889 implement thread-safe i2c 2016-10-11 14:20:02 +03:00
me-no-dev
50b060ab32 really fix attachInterrupt to work on either core 2016-10-11 12:29:06 +03:00
me-no-dev
6125a40f93 fix GPIO attachInterrupt 2016-10-11 12:07:18 +03:00
me-no-dev
5d61d8ddd0 copy va_list in Print::printf 2016-10-11 11:42:47 +03:00
me-no-dev
658f81b792 attach uart isr on the current core 2016-10-11 11:16:43 +03:00
me-no-dev
1cc9f3bfef fix Serial RX
This trick does not fix GPIO interrupts. Different INUM maybe for GPIO
on APP cpu
2016-10-11 03:59:34 +03:00
me-no-dev
e7d2c18742 Do not delete printf buffer if not required 2016-10-10 19:29:25 +03:00
me-no-dev
01961ef5c6 use local buffer for printf if size is equal or less than 64 2016-10-10 17:37:34 +03:00
me-no-dev
3ecb32c4ba Prevent I2C Bus locks and wrong data being sent on retry 2016-10-10 14:54:36 +03:00
me-no-dev
45f5449fbf prevent some devices from locking the SCL line 2016-10-10 14:10:43 +03:00
me-no-dev
f3af437774 I2C SDA should properly register the ACK bit from some slaves 2016-10-10 13:53:55 +03:00
me-no-dev
cc3c55bbb1 fix i2c hal 2016-10-08 17:32:11 +03:00
me-no-dev
2ba4c40aca add more definitions to pgmspace.h to match ESP8266 2016-10-08 00:40:11 +03:00
me-no-dev
063b563079 Print::printf should allocate it's buffer 2016-10-08 00:18:12 +03:00
me-no-dev
bb9ded7ed4 comment out __FlashStringHelper methods in Print 2016-10-07 23:59:24 +03:00
me-no-dev
31773cff31 fix F macro 2016-10-07 23:56:50 +03:00
Me No Dev
7530db5f06 include math.h by default 2016-10-07 23:31:49 +03:00
Me No Dev
ac19ecf3d5 On app cpu (#1)
* move loop task to APP CPU

* Rework WiFi boot so it works when loop is on APP CPU
2016-10-06 18:16:00 +03:00
me-no-dev
fb4f1333d2 Fix UART writeBuf and flush 2016-10-06 16:31:28 +03:00
me-no-dev
03f5d62323 Wiring.h -> Arduino.h 2016-10-06 07:09:45 -06:00
me-no-dev
5f3a205955 initial import 2016-10-06 07:09:44 -06:00