Commit graph

282 commits

Author SHA1 Message Date
Brian Schwind
cd594a4296 Fix according to review comments 2016-10-11 20:51:29 +09:00
Brian Schwind
a323680115 Add a TSL2561 driver and example usage 2016-09-24 19:54:54 +09:00
Vlad Ivanov
8368929a66 paho_mqtt_c: refactor: rename symbols so they all have same prefix (#204)
* paho_mqtt_c: refactor: rename symbols so they all have same prefix

* Update AWS IOT example after MQTT refactoring
2016-09-15 19:52:57 +02:00
ourairquality
e6eda5c3ff i2c: use open drain for output rather than flipping between input and output. 2016-09-01 22:48:02 +10:00
rongsaws
7041c014bb Added a MQTT pub/sub example of using AWS IoT (#173)
* Added a MQTT pub/sub example of using AWS IoT (via ECC based TLS1.2 connection).

* Fixed a buffer overflow issue when receiving large MQTT packet.

* Reset TLS connection on read/write errors.
2016-08-29 19:55:32 +02:00
ourairquality
f0c43ff5d5 BME280 support.
The BME280 is close to compatible with the existing BMP280 and extends it with support for measuring humidity, so support has been bundled into the bmp280 driver.

The example now auto-detects the device and displays the humidity for the BME280.

The I2C bus initialization has been moved out of the bmp280 driver to support multiple devices.

The check-id and reset logic has been bundled into the driver initialization. It needs to be re-initialized after reset anyway and the chip-id is need to initialize it, just re-initialize to reset.

Support has been added for multiple devices. The calibration data storage needs to be managed by the caller rather than static data. The caller can choose the I2C address to allow two BMx280 devices to be used on the same I2C bus.

An interface has been added to return the measurement values in an integer fixed float format. The float format interface is still there.

All the values are read in one I2C transaction to ensure they are a consistent set.

Renamed bmp280_calib_t to bmp280_t, and removed read_register8.
2016-08-17 23:33:04 +10:00
sheinz
666f821263 ws2812_i2s: WS2812 leds driver implementation using i2s_dma library 2016-08-16 10:53:56 +03:00
sheinz
27135d6252 i2s_dma: Implementation of I2S + DMA wrapper library 2016-08-16 10:19:33 +03:00
Peter Andersson
5ea0228639 spiffs: enable temporal cache for spiffs v 0.3.6 2016-08-14 15:15:45 +02:00
Johan Kanflo
0c09054f3e Merge pull request #178 from sheinz/feature/spiffs_update
SPIFFS: Selectable configuration of SPIFFS
2016-08-09 22:32:37 +02:00
Johan Kanflo
a868f9dadb Updated SPIFFS to 0.3.6 2016-08-09 20:33:40 +02:00
sheinz
5051c5c528 SPIFFS: Selectable configuration of SPIFFS 2016-08-08 23:18:15 +03:00
sheinz
964a2f850a Merge pull request #165 from ourairquality/bmp180-rework
bmp180: make a lower level interface available and support oversampling.
2016-08-06 00:39:43 +03:00
Bhuvanchandra
782cdfd11d extras: ds3231: Add support for DS3231 real-time clock (RTC)
Add support for DS3231 extremely accurate I2C real-time clock (RTC).

Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@gmail.com>
2016-08-03 01:23:43 +00:00
Johan Kanflo
083aa0451a Merge pull request #163 from sheinz/feature/spiffs
File system support. SPIFFS integration.
2016-08-02 15:42:22 +02:00
sheinz
d69b8390d4 SPIFFS: Fix PR review comments.
* Enable SPIFFS_USE_MAGIC
 * Enable SPIFFS_USE_MAGIC_LENGTH
 * Enable SPIFFS_FILEHDL_OFFSET
 * Rebuild mkspiffs if spiffs_config.h is changed
 * Emulate NOR flash in mkspiffs
 * Build spiffs image in 'flash' and 'test' targets
2016-07-27 10:12:59 +03:00
sheinz
0ec47b5de9 Merge branch 'feature/spiffs' into experiments/spi_flash_reimplement 2016-07-21 16:48:26 +03:00
sheinz
38cccbd456 SPIFFS: Optimized SPI data read/write.
Unaligned read/write from/to SPI data registers is rewritten in
assembler to improve performance.
2016-07-21 16:36:55 +03:00
ourairquality
41d4427fba bmp180: separate the task and queue interface from the lower level support.
This just separates them in the one file leaving it as possible future change to actually remove the higher level api or move it to an example.
2016-07-20 18:52:13 +10:00
ourairquality
05bbe48bd4 bmp180: make a lower level interface available and support oversampling.
An application using multiple I2C devices will need it's own
loop. This reworks the code to make the detection, calibration
constant loading, and measurment functions available too without
having to use the bmp810 task which is still retained.

Adds support for oversampling.

Fixes a bug in the calculation of the temperature.

Better error handling. Checks for I2C errors and errors in the loading
of the calibration constants and propagates these up.
2016-07-20 18:42:51 +10:00
sheinz
281faa2cac SPIFFS: Wait SPI idle optimization. 2016-07-19 17:38:21 +03:00
Angus Gratton
22c480b583 Merge pull request #160 from sheinz/feature/bmp280
BMP280 pressure sensor driver and example.
2016-07-19 08:22:14 +10:00
Johan Kanflo
38375e218a Merge pull request #164 from ourairquality/i2c-open-drain
i2c: use open drain outputs.
2016-07-18 22:01:34 +02:00
sheinz
4b1568cbb9 SPIFFS: flash access refactoring. 2016-07-18 13:12:21 +03:00
ourairquality
16157080cd i2c: use open drain outputs.
Configure the pins as open-drain just in case the code forces them
high although it should be configuring them as inputs to let them float high.

Initialize the pins when the driver is initialized.

Enable the internal pull-ups to prevent them floating too high if not
connected and damaging the circuit.
2016-07-18 14:35:01 +10:00
sheinz
5d5f28a22f SPIFFS: Bypass SDK and bootrom for flash access.
Accessing SPI flash using reversed engineered functions.
2016-07-16 00:22:33 +03:00
sheinz
fb187eae08 Merge branch 'feature/spiffs' into experiments/spi_flash_reimplement 2016-07-16 00:19:21 +03:00
sheinz
0a98f43902 SPIFFS: Fixed linux build and travis build
mkspiffs utility explicitly use gcc to compile
2016-07-15 19:01:17 +03:00
sheinz
55b7d29767 SPIFFS: Fix SPIFFS rebuild if SIZE is changed. 2016-07-15 15:44:22 +03:00
sheinz
924860a78f SPIFFS: Update example, README.md
Separate method to initialize SPIFFS memory buffers.
REDME.md for spiffs component.
Simplify spiffs example.
2016-07-15 15:22:03 +03:00
sheinz
66610c56cb SPIFFS: Improve SPIFFS image build
Rebuild SPIFFS image if files change.
Rebuild mkspiffs if SPIFFS_SIZE is changed in Makefile.
2016-07-15 01:21:32 +03:00
sheinz
22654a4de7 SPIFFS: Support lseek, stat, fstat
Support for lseek, stat, fstat added.
Test extended to covert those functions.
2016-07-14 16:13:03 +03:00
sheinz
bfa20af855 Fix branch merging.
Changes in esp_spiffs.c recovered.
2016-07-14 15:44:02 +03:00
sheinz
d25b8b2a55 Create SPIFFS image and flash it.
mkspiffs is added to create SPIFFS image from directory with files.
Build process changed to flash SPIFFS image if necessary
2016-07-14 14:49:34 +03:00
sheinz
5c12b7c7e9 Draft implementation of SPIFFS integration 2016-07-14 14:49:34 +03:00
Angus Gratton
eac9504d8a Merge pull request #158 from baoshi/mqtt_fix
Handling MQTT read failure and send buffer length
2016-07-14 07:30:35 +10:00
Angus Gratton
b15b536e40 Merge pull request #154 from SuperHouse/open-libmain
First open_esplibs batch, libmain (most of libmain open sourced)
2016-07-14 07:29:28 +10:00
sheinz
91e2f6c0a1 BMP280 driver: typo fixed 2016-07-08 14:59:21 +03:00
sheinz
db4e39b8bd Update component.mk
Comment typo fixed.
2016-07-08 12:52:54 +03:00
sheinz
a155928f19 Update README.md 2016-07-08 12:49:51 +03:00
sheinz
c19126fc13 BMP280 driver: Add README.md 2016-07-08 12:40:15 +03:00
sheinz
440ad67834 BMP280 driver: Forced mode. Soft reset. 2016-07-07 23:39:25 +03:00
sheinz
4a2679271e BMP280 pressure sensor driver draft implementation. 2016-07-07 18:04:17 +03:00
sheinz
6ff78f802d DHT11/DHT22 library fixes.
Fixed temperature below zero.
Fixed checksum overflow verification.
Fixed inconsistent reading of DHT11.
2016-07-06 21:01:44 +03:00
sheinz
a41407e3d1 DHT11/22 library fix
Support DHT11/DHT22 modules.
Data representation fix.
Library refactoring.
2016-07-06 15:58:59 +03:00
Angus Gratton
e3827b2f1c Fix rboot-api sdk_spi_flash_read pointer types 2016-07-06 17:21:34 +10:00
baoshi
09a5ec062a Handling MQTT read failure and send buffer length 2016-07-05 21:37:47 +08:00
sheinz
33b63d46a5 Reverse engineered some spi_flash functions 2016-06-29 00:47:14 +03:00
sheinz
ab795350fb Draft implementation of SPIFFS integration 2016-06-27 18:06:06 +03:00
iosen
37180024f4 sntp: free the pbuf after sending the request
Fixes a memory leak.
2016-06-26 21:36:04 +10:00
Kenshi Kawaguchi
84856f80a9 ota_tftp_download takes an optional receive_cb that will report on the status of the TFTP transfer 2016-05-28 11:27:10 +10:00
Angus Gratton
d9202af2aa Use latest upstream rboot, always build with OTA - use prebuilt rboot if
none is compiled locally.
2016-05-28 11:27:10 +10:00
Angus Gratton
1f1881a452 rboot-ota: Always put a checksum in rboot config
Means bootloader will still work if configured to verify the checksum
2016-05-28 11:27:10 +10:00
Angus Gratton
53b2b50241 rboot: Add cryptographic digest support for OTA images & SHA256 example 2016-05-28 11:27:10 +10:00
Angus Gratton
03559de5cb Move rboot_verify_image to rboot-api
Removes rboot-integration.c, removes need for clients to include rboot-integration.h
2016-05-28 11:27:10 +10:00
Angus Gratton
6eceb5843c OTA: Move OTA-aware Cache_Read_Enable to core
Otherwise images built with OTA=1 are only OTA-suitable if they also
link rboot-ota.
2016-05-28 11:27:10 +10:00
Angus Gratton
e671927bd0 OTA: Add TFTP client mode, expand ota_basic example. 2016-05-28 11:27:10 +10:00
Angus Gratton
d5221e7efa mbedtls: Remove WIN32 #ifdef sections, use socket's SO_ERROR flag over errno when possible 2016-05-27 11:51:11 +10:00
Drasko DRASKOVIC
e7607ffc2b Add JSON support
This commits adds JSON support by adding Jsmn
(http://zserge.com/jsmn.html), a minimalistic JSON parser.

Signed-off-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com>
2016-05-15 22:32:14 +10:00
Angus Gratton
57c718d835 Travis: Work around 4MB log limit when building all examples 2016-05-15 22:16:42 +10:00
Angus Gratton
5809a0119b Merge pull request #114 from doragasu/sntp
Added sntp support and example
2016-05-15 20:42:35 +10:00
jsuiker
99eba80c4d Added DHT library to extras and sample code to examples 2016-04-25 01:58:09 +00:00
Angus Gratton
8453445620 mbedtls: Update to upstream v2.3.0 2016-04-20 09:05:33 +10:00
Angus Gratton
736e790e80 Merge pull request #124 from kanflo/rboot-merge
Updated rboot to #75ca33b including the flash write bug.
2016-04-15 11:19:56 +10:00
Yudi Ludkevich
7e9d5bd2e2 MQTT client api and example
This code based on ESP8266 port of the embedded C client in Eclipse Paho project
(http://www.eclipse.org/paho/) and it port for espressif
ESP8266_RTOS_SDK by baoshi (https://github.com/baoshi/ESP-RTOS-Paho.git)
2016-04-14 16:59:07 +10:00
Johan Kanflo
9c49134d61 Updated rboot to #75ca33b including the flash write bug. 2016-04-07 20:29:28 +02:00
Alex Stewart
494c2d9cec Implement new ds18b20 APIs 2016-04-05 10:05:42 -07:00
Alex Stewart
60e468bdb2 Misc ds18b20 fixups/enhancements
add onewire_power() after CONVERT_T
Fix naming of DS18B20_* constants
2016-04-05 10:04:56 -07:00
Alex Stewart
9c37da6834 Add more documentation for onewire.h 2016-04-05 10:04:31 -07:00
Alex Stewart
9b49b426f6 Added error-checking in onewire routines 2016-04-05 10:04:31 -07:00
Alex Stewart
a2b9d688ea Multiple cleanups/tweaks for onewire driver
Use onewire_addr_t for onewire addresses
Move internal defines out of onewire.h
Remove global variables for search state
use taskENTER_CRITICAL instead of portDISABLE_INTERRUPTS
remove unnecessary onewire_init function
Remove unnecessary critical sections
Use GPIO_OUT_OPEN_DRAIN
reformat/style cleanup
2016-04-05 10:03:17 -07:00
doragasu
11c9031d9b Removed my _time() implementation to use newlib provided one. 2016-03-31 16:05:15 +02:00
doragasu
9651692ca2 Cleanup and some changes to make implementation a bit more conforming to the standard. 2016-03-13 18:29:30 +01:00
doragasu
f14025b1c7 Removed non working clock_* calls from example. Using vars for tz and dst. 2016-03-13 17:04:03 +01:00
doragasu
0482aebf7d Added quick and dirty _gettimeofday_r() test implementation. 2016-03-11 13:11:15 +01:00
doragasu
16c831fffa Added sntp support and example 2016-03-09 17:18:51 +01:00
Alex Stewart
6c50e968f5 Merge pull request #107 from UncleRus/extras/pcf8574
Driver for PCF8574 (8-bit I2C GPIO expander)
2016-03-07 19:06:09 -08:00
Angus Gratton
81df978fa9 Add missing MIT license for rboot-ota 2016-03-03 08:15:21 +11:00
Angus Gratton
f360935800 Merge pull request #106 from MightyPork/ws2812b-driver
WS2812B driver & example
2016-03-02 21:10:19 +11:00
Ondřej Hruška
b0e683b909 Use anonymous struct in ws2812_rgb_t. 2016-03-01 23:17:13 +01:00
UncleRus
124332b5ea License changed to MIT 2016-03-02 02:19:46 +05:00
UncleRus
03ee667d5d Tabs replaced to spaces 2016-03-02 02:17:07 +05:00
UncleRus
875db616ae Driver for PCF8574 (8-bit I2C GPIO expander) 2016-03-02 00:52:13 +05:00
Ondřej Hruška
e97dca4859 Added WS2812 driver and examples (squashed commits) 2016-03-01 14:06:40 +01:00
darksv
dc2c4be4e9 Fix delay in DS18B20 driver
There is a bug in the driver for DS18B20: instead of delaying for 750ms it waits only for 750us, which obviously causes that read temprature is not valid (it's default 85 degrees).
2016-02-28 11:30:16 +01:00
Grzegorz Hetman
b5f1c893bf Merge branch 'master' into ds18b20 2016-02-24 17:05:20 +01:00
Alex Stewart
d0ed5f03a2 A couple of fixups prior to merging into main project
Changed the ds_sensor_t struct to just return a float instead of major/minor
Renamed ds18b20.h functions to have consistent `ds18b20_*` naming.
Removed some unnecessary LICENSE files.  Clarified onewire origin/license.
2016-02-22 21:18:50 -08:00
Angus Gratton
7c1d7fb43e Merge branch 'feature/dhcp-server' 2016-02-21 10:36:28 +11:00
Grzegorz Hetman
6178865cc6 Add clear version of commit 72f30ad. 2016-02-18 18:42:50 +01:00
Angus Gratton
3dfa2272cc mbedtls: mbedlts_net_bind should bind on all interfaces with bind_ip == NULL
As per mbedtls documentation. This is different to lwip_getaddrinfo()
which uses loopback for a NULL address.

Fixes bug mentioned here https://groups.google.com/forum/#!topic/esp-open-rtos/3KH5TZSTMUw
2016-02-09 10:54:57 +11:00
Angus Gratton
e2759f9e7d Merge pull request #77 from jcard0na/master
Initial PWM implementation from gpascualg
2016-02-09 09:30:51 +11:00
Angus Gratton
d5e50edc0b ota_basic example, ota-tftp support: Add links to the new OTA wiki page 2016-02-08 16:58:31 +11:00
Blipi
72d5dd99fb Initial PWM implementation from gpascualg 2015-12-11 15:20:28 -08:00
Angus Gratton
336bad573d timers.h: Remove compile-time-auto-inlining complexity
Fixes bug mentioned in #72 (oops!), also progress towards #57.
2015-11-28 16:32:52 +11:00
Angus Gratton
d14d5b1aab stdin_uart_interrupt driver: Don't reset TX FIFO (loses output otherwise)
Fixes bug in 'terminal' example where banner message didn't print on startup.

Relates to #59.
2015-11-21 17:13:08 +11:00
Johan Kanflo
4cfe40d348 extras/stdin_uart_interrupt: stdin via IRQ driven RX driver on UART0
See examples/terminal/ for usage
2015-11-21 16:15:58 +11:00
Angus Gratton
65307aed75 Merge branch 'feature/mbedtls' 2015-09-28 13:29:38 +10:00
Angus Gratton
1907e3c45e Remove extraneous extras/ subdirs - all merged into cpp_support now 2015-09-25 18:26:51 +10:00
Angus Gratton
87f77b1021 Refactor Hardware RNG functions to esp/hwrand.h
As suggested by @foogod, thanks!
2015-09-24 20:48:16 +10:00
Angus Gratton
09405a9095 Merge branch 'master' into feature/mbedtls 2015-09-24 20:40:36 +10:00
Angus Gratton
43a8bf2087 Merge branch 'master' into feature/dhcp-server 2015-09-24 08:33:48 +10:00
Angus Gratton
a0a23ae232 dhcpserver: Cleanup find_lease routine, fix bug 2015-09-23 22:24:30 +10:00
Angus Gratton
c5a53c87fa bmp180: Fix more 'temperatue' typos (thanks @atomman) 2015-09-21 08:46:45 +10:00
Angus Gratton
8a470e6f98 Merge branch 'master' into feature/mbedtls 2015-09-20 21:26:29 +10:00
Angus Gratton
b03f279f74 mbedTLS: Add ESP8266 hardware entropy source discovered by @foogod
Addresses #3, provided turns out to be an effective HWRNG.
2015-09-20 21:15:30 +10:00
Angus Gratton
1b22cc088e Add initial mbedTLS and HTTPS example project (using howsmyssl.com JSON API)
mbedTLS version 2.1.0 (current stable)

Has some known issues/hacks:
* Entropy source not hooked in at all
* Linker script has a messy hack in it to store some (not all) data in
  irom
2015-09-20 21:13:38 +10:00
Angus Gratton
a5ba05b5f9 Remove stray extras/cplusplus 2015-09-20 21:13:38 +10:00
Angus Gratton
1c8017484c Move c++ operators back to link-time resolutions, part of 'core'
This reverts commit e9b1df5cb5.
2015-09-20 21:13:38 +10:00
Angus Gratton
6416fe7329 Post-merge cleanup of extras/cpp_support 2015-09-20 21:13:38 +10:00
Michael Jacobsen
fbb01c81ad Header files adjustment
(MQTT changes split from original commit - @projectgus.)
2015-09-20 21:13:38 +10:00
Michael Jacobsen
602d3e2d98 Header files re-arrangement 2015-09-20 21:13:38 +10:00
Michael Jacobsen
028451fa84 Updated license 2015-09-20 21:13:38 +10:00
Michael Jacobsen
63bbf92a76 Header files adjustments 2015-09-20 21:13:38 +10:00
Michael Jacobsen
627b78331a Added C++ base components and example 2015-09-20 21:13:38 +10:00
Angus Gratton
cceb9de300 bmp180 i2c: Fix typo temperatue->temperature.
Closes #47
2015-09-18 17:59:50 +10:00
Angus Gratton
46111bad52 dhcpserver cleanup, add access_point example
DHCP Server & AP mode tested w/ Debian & Android clients
2015-09-13 18:42:20 +10:00
Angus Gratton
9fc223b3c2 dhcpserver: Add expiry, DHCPNAK packets 2015-09-13 18:42:20 +10:00
Angus Gratton
4c98f575e7 dhcpserver: Initial DHCP server support, hands out leases but doesn't expire them 2015-09-13 18:42:11 +10:00
Angus Gratton
8b90dbd9e5 Merge branch 'feature/c++' 2015-09-12 16:27:26 +10:00
Angus Gratton
7e73693898 Rework component makefiles to have a default <component>_ROOT
This fixes a long-standing bug where build directories sometimes
expanded many levels deeper than they should have.

Component names can now no longer contains slashes (ie the component
name for 'extras/i2c' is now just 'i2c')
2015-09-08 09:59:59 +10:00
Angus Gratton
ed2c1ad713 Update README with some recent developments 2015-09-07 17:52:01 +10:00
Angus71
fd1081a0cc Added BMP180 and I2C driver and example
Fixed reference to unknown environment var
Moved drivers into extras folder and added additional documentations.
Changed LOCAL to static and renamed DEBUG to BMP180_DEBUG
2015-08-31 13:39:27 +02:00
Angus Gratton
18d1bb21f7 Remove stray extras/cplusplus 2015-08-26 11:16:58 +10:00
Angus Gratton
43ecec5470 Move c++ operators back to link-time resolutions, part of 'core'
This reverts commit e9b1df5cb5.
2015-08-26 11:07:06 +10:00
Angus Gratton
e9b1df5cb5 Post-merge cleanup of extras/cpp_support 2015-08-26 10:45:21 +10:00
Michael Jacobsen
5c1ce0a508 Header files adjustment
(MQTT changes split from original commit - @projectgus.)
2015-08-26 10:45:21 +10:00
Michael Jacobsen
94a953d3e3 Header files re-arrangement 2015-08-26 10:45:21 +10:00
Michael Jacobsen
6bc95994b7 Updated license 2015-08-26 10:45:21 +10:00
Michael Jacobsen
4f7d1c2393 Header files adjustments 2015-08-26 10:45:21 +10:00
Michael Jacobsen
1282e11c08 Added C++ base components and example 2015-08-26 10:45:21 +10:00
Angus Gratton
19b8383069 Working TFTP server based OTA updates
Tested with 16MBit flash configuration, two rboot update slots.

Closes #10
2015-08-05 14:10:14 +10:00
Angus Gratton
147257efa4 Almost functional OTA support
ota_basic example can receive new image via TCP.

However - writing to flash with interrupts disabled causes data loss,
and the TCP flow is very slow to recover. Linux sender quickly ramps up
RTT timer to very long retry intervals, crippling performance &
throughput.

Running the update without the flash writes causes the data to be
received quickly, so this is definitely an issue with the time taken for
the erase cycle.

Progress towards #10
2015-07-29 16:50:23 +10:00