Commit Graph

251 Commits

Author SHA1 Message Date
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