Commit Graph

1037 Commits

Author SHA1 Message Date
Nathaniel Wesley Filardo fe032edd9c Add %p to libc's debug printf (#2062) 2017-08-16 21:38:10 +02:00
fetchbot d079b842a8 add ds18b20 module (#2003)
* add ds18b20 module
* add intitial eeprom value definition
* adjust read() function and address handling
2017-08-16 21:04:23 +02:00
dnc40085 c9e8621821 fix for travisCI 2017-08-05 14:46:14 -07:00
dnc40085 295e640a7a Comment out pmsleep and timer_suspend options in user_config.h
for master drop
2017-08-05 14:05:26 -07:00
Johny Mattsson e09e830d4b Fixed alignment assumptions in SHA2 update. (#2034)
Unaligned loads are a no-no on many architectures, the ESP8266 included.
2017-07-31 14:12:34 +02:00
Philip Gladstone d93465cd86 Add tracking and control of the rate error in the clock crystal. (#1697)
* Improve RTC timekeeping -- includes clock rate tracking
* Improved division by 1M
* Fix crash in sntp
* Disable RTC debug
* Get the offset correct
* Add comments on where the mysterious numbers came from
* Fix a crash with auto repeat mode and errors on repeat
2017-07-18 22:51:20 +02:00
Johny Mattsson 864bcdbd89 Merge pull request #2038 from pjsg/spiffs-blocksize
Fix the SPIFFS blocksize issues
2017-07-12 11:15:25 +10:00
dnc40085 9edcce5b44 Update wifi.sta.config to save configuration to flash by default (#1998) 2017-07-08 22:51:33 +02:00
dnc40085 2e33abe198 Modify wifi.sta.get*config() to return AP's MAC (#2026)
* Modified wifi.sta.get*config() to return AP's MAC even if bssid_set==0
* Improved documentation for wifi.sta.getapinfo, fixes #2025
2017-07-08 22:49:02 +02:00
philip 761c9dff7f Try to fix the blocksize issues 2017-07-06 23:18:06 -04:00
Johny Mattsson c01f653736 Unbreak build when SPIFFS_CACHE==0. (#2028) 2017-07-05 18:00:26 +02:00
Johny Mattsson 0c315ed0ef Merge pull request #2024 from DiUS/sjson_undefined_symbol_fix
Sjson undefined symbol fix
2017-07-04 14:21:41 +10:00
Johny Mattsson ea4d33715f Cleaned up sjson module build.
- Move jsonsl build to regular library build rather than #include the .c file
- Provide wrappers for malloc/calloc/free to fix undefined symbol warnings.
2017-07-03 13:35:45 +10:00
Gregor Hartmann 15b4fa24fd Call HTTP callback in all cases (#2020)
* fix 2007 Call callback in all cases, call callback with errorcode -1 if no connection could be establioshed
* change logging from ERR to DEBUG
* make debug output more clear (hopefully)
* add handling of errors to docs, note error handling on every call instead of only in the main documentation
2017-07-01 18:29:54 +02:00
dnc40085 e2fc37fa17 Removed code allowing argument style station configuration (#2018) 2017-06-29 22:05:40 +02:00
Arnim Läuger 435a4cf5a1 backport fix for https://github.com/espressif/esp-idf/issues/631 (#2006)
* backport fix for https://github.com/espressif/esp-idf/issues/631
* remove code from intermediate fix
2017-06-20 21:59:12 +02:00
Philip Gladstone 438f1609f6 Only handle errors if we have not parsed a complete object (#1999)
* Only handle errors if we have not parsed a complete object
* Fix typo which means that \n was not an ending character
2017-06-18 08:20:26 +02:00
Arnim Läuger 216b820d08 Ensure standard DHCP message length when sending response to clients (#1985) 2017-05-25 13:59:45 +02:00
dnc40085 e90ffb4266 Add mcp4725 module (#1966) 2017-05-21 16:30:26 +02:00
dnc40085 169cb69ee2 Add event callbacks to wifi.sta.config() and wifi.ap.config() and more (#1903)
* Add event callbacks to wifi.sta.config() and wifi.ap.config() and more

Added option to register event callbacks during configuration of both
station and AP.
Added option to register event callbacks to `wifi.sta.connect()` and
`wifi.sta.disconnect()`

* Add note about event registration to wifi module documentation

Other minor changes to wifi documentation are also included

* Add more detail to documentation for wifi.sta.config()
2017-05-21 16:18:56 +02:00
dnc40085 7b1f0223ad Removed wifi station event monitor (#1900)
The following functions were removed:
 - `wifi.sta.eventMonReg()`
 - `wifi.sta.eventMonStart()`
 - `wifi.sta.eventMonStop()`
 
The corresponding documentation has also been removed

This PR addresses issue #1893
2017-05-21 16:17:54 +02:00
Arnim Läuger 7dae5236e6 Deprecate xyz.init() in favor of xyz.setup(), removing inherent i2c configuration (#1887) 2017-05-21 16:17:29 +02:00
Philip Gladstone e7f063950b Update to current version of SPIFFS (#1949) 2017-05-21 16:16:39 +02:00
Arnim Läuger 4e4dfc1d88 Align 8 MB & 16 MB flash sizes with SDK 2.1.0. (#1968)
* align 8MB and 16MB auto flash support with sdk 2.1.0
* remove SAFE_API
* fix flash size mismatch detection logic
2017-05-16 16:50:36 +02:00
dnc40085 447fcd397d Exposed wifi event OPMODE_CHANGED. (#1967) 2017-05-15 09:05:22 +02:00
Arnim Läuger c4516f1a17 Upgrade to SDK 2.1.0. (#1962) 2017-05-11 07:13:23 +02:00
fetchbot faefc09595 add ads1115 module (#1942)
* add ads1115 module

* replace os_delay with os_timer

* typo
2017-05-07 09:49:57 +02:00
fetchbot 8668239640 add si7021 module (#1921)
* add si7021 module

* add settings function for resolution and heater
2017-04-27 23:16:33 +02:00
dnc40085 3e24b1c75b Added deprecation message to wifi.sta.config() for argument style cfg (#1939)
Documentation for the old(argument) style of station configuration was
removed in a previous PR, so I added a deprecation message to inform
developer of the upcoming removal of the feature.
2017-04-26 13:00:34 +02:00
dnc40085 9dbae1c963 Expose UART 1 (#1934)
* Expose UART 1 and update uart module documentation
2017-04-24 22:06:54 +02:00
Metin KOC 9d11543fa9 Hdc1080 Module Add (#1880)
* Hdc1080 Module Add

* for Float/Integer Build fixes

* disable module for default

* document fix

* Deprecate init() in favor of setup()

* Fix grammar and code sample

* Deprecate init() in favor of setup()

* Update hdc1080.md

* Update hdc1080.md

* Mini fix

* Update user_modules.h
2017-04-20 22:23:51 +02:00
Nathaniel Wesley Filardo 332bcb39a3 mqtt: fix several buffer length checks (#1906)
Partially addresses nodemcu/nodemcu-firmware#1773.
2017-04-19 20:16:44 +02:00
tjhowse d777fdc50a Add module for TCS34725 colour sensor. (#1895)
* Add module for TCS34725 colour sensor.

* Fix implicit return.

* Fix timer disarm after init completion callback.

* Rework init() into setup() as per PR#1887.

* Add new module to mkdocs and user_modules.

* Fix unclear debug messages.

* Documentation updates.

* Cleanup comments and formatting.

* Don't auto-enable the sensor.

* Add callback function to enable.

* Simplify Read16.

* Remove Lua state argument to enable callback.

* Remove self_ref.
2017-04-19 20:16:27 +02:00
Marcel Stör b645100d28 Add autoconnect deprecation warning to MQTT code 2017-04-04 22:52:51 +02:00
Philip Gladstone 66ffa6cdc4 Fix the error callback from not being called sometimes (#1683)
* Fix the error callback from not being called sometimes
* Moved the setting of the reconnect status to after the connack is recevied
* Increase the irom0_seg size
* Updated the documentation
* Make it clearer that autoreconnect is deprecated
2017-04-04 22:22:04 +02:00
dnc40085 41a5736d78 Add wifi.suspend() and node.sleep() (#1231)
* Exposed forced sleep API and more
Added timer suspend functionality
* wifi.suspend
* wifi.resume
* node.sleep 
* tmr.suspend
* tmr.suspend_all
* tmr.resume
* tmr.resume_all
* Implement timer suspend functionality
* Fix for uart TX glitch
* Made some modifications to the error reporting
2017-04-04 21:31:06 +02:00
dnc40085 50a5c02119 Deprecate wifi.sta.eventMonReg (#1889)
* Update wifi event monitor documentation

Added a note to `wifi.eventmon.register()` and `wifi.sta.eventmonreg()`
* Add deprecation note to `wifi.sta.eventMonReg()`
2017-03-31 09:48:04 +02:00
Arnim Läuger fc887e9f9f Fix memory leak in file_stat(). (#1871)
* Change vfs_stat() api to pre-allocated buffer for stat info.
* Change vfs_readdir() api to stat buffer as well. vfs_item api removed.
2017-03-29 13:58:40 +02:00
Yury Popov 92cfbb45c3 Cron fixes (#1884)
* Fix cron values >32

* Fix crontab description items order
2017-03-27 08:20:08 +02:00
Philip Gladstone b09cac058a Add support for streaming JSON encoder/decoder (#1755)
Replaces the problematic cjson module.
2017-03-22 11:24:32 +11:00
Frank Exoo d9b3db06f6 Show IP address after enduser_setup (#1867) 2017-03-18 09:45:26 +01:00
Yury Popov 2f00c1d8d9 TIME_WAIT sockets fixes (#1838)
* Enable SO_REUSEADDR for server TCP sockets

* Reduce TCP_MSL to 5 sec

* Add changes notice for future updates

* Move MSL change to lwipiots.h
2017-03-17 07:31:37 +01:00
Johny Mattsson 45ae795739 Extend node.dsleep() to support instant sleep. (#1859) 2017-03-14 10:49:41 +01:00
FrankX b4319bdb4b Add driver for XPT2046 touch controller (#1848) 2017-03-09 07:20:01 +01:00
Yury Popov 466c03d90f Deprecation messages for convenient net.create(Server/Connection) calls (#1844) 2017-03-07 20:50:32 +01:00
Arnim Läuger f5652187a6 use flash size byte to determine the location of the init data for byte 107 (#1827) 2017-03-02 14:48:44 +11:00
Marcel Stör a26969b388 Add generic function to print deprecation notes (#1538) 2017-03-01 12:42:20 +01:00
Arnim Läuger f577c2c080 Sync uart configuration to Tx FIFO level (#1806)
* sync uart configuration to tx fifo level

* poll tx fifo empty before disabling interrupts

* echo parameter is optional for uart.setup()
2017-03-01 12:41:56 +01:00
Arnim Läuger 2168e5185e Apply power selection at the end of the write slot while IRQs are masked (#1808) 2017-03-01 12:41:17 +01:00
Arnim Läuger 8931f09ce4 Fix missing return code for ws2812_init() (#1816) 2017-02-24 21:20:09 +01:00
dnc40085 b382a42057 Fix debug message for wifi.sta.getrssi() (#1814) 2017-02-22 20:59:04 +01:00
FrankX 4dfa5cd7d6 Correct BME280 IIR filter setting (#1787) 2017-02-11 22:53:06 +01:00
Philip Gladstone 00bc9403fe Fix the adjusting of the time when there is a rollover (#1788) 2017-02-09 21:53:12 +01:00
Jason Follas 2ab28df92a Support clearing WiFi config (#1761)
* Add wifi.sta.clearconfig(). Adjust password validation to match 2.0.0 SDK rules (no min length enforced, i.e. for WEP)
* Updat comments about WEP key not having a minimum
* Documentation: add note about node.restore() to wifi.sta.clearconfig() docs, and add SDK verbiage to describe what node.restore() impacts.
* Normaliz if statements
* Convert leading tabs to leading spaces for consistency
2017-02-08 21:42:29 +01:00
Arnim Läuger 416d53eb39 Add string support for spi.set_mosi() and spi.get_miso() (#1753)
clean-up endianess handling in spi driver
2017-02-06 13:55:26 +01:00
Yury Popov 2c8961d153 Add TTL support to net module (#1756) 2017-02-06 13:54:20 +01:00
Arnim Läuger 87e1abfb0f rtctime: change to lua_setfieldfor populating the table (#1746)
Looks good.
2017-01-22 14:17:46 -05:00
ffedoroff a271ce4d34 Invert signal on rfswitch pin (#1738)
Since that code was migrated from Arduino, I should invert pin
2017-01-19 12:46:45 +01:00
FrankX a18826ec54 Accept 64 byte length WiFi passwords (#1730) 2017-01-17 21:55:30 +01:00
Arnim Läuger 305d7c4672 Add file.stat() to query file/directory attributes. (#1724)
* add file.stat()

* set default time/date to 1970-01-01
use lua_setfield
2017-01-17 21:54:23 +01:00
Marcel Stör 0a503587ee Fix typo (#1714) 2017-01-10 21:09:54 +01:00
ffedoroff 52aa1f7e3d Fix typo (#1715) 2017-01-10 21:05:48 +01:00
FrankX 378e5eb0ad Add WPS module (#1694)
* WPS functionality added

* WPS module switched off by default

* Update mkdocs.yml
2017-01-09 08:43:47 +01:00
Yury Popov a592af7ab1 Depend http client secure part on CLIENT_SSL_ENABLE (#1702) 2017-01-04 18:31:32 +01:00
Verne Roberts cad1632e40 Add 31250 baud rate for MIDI support (#1690)
* add 31250 baud rate for MIDI support
* add bitrate to uart_bitrates array for the get operation
2017-01-04 12:31:47 +01:00
Philip Gladstone 9b86937d45 Fix crash in sntp and add more reliable defaults servers (#1682)
* Fix bug in sntp where callback was run at interrupt level. Also add
the nodemcu pool servers as the default.

* Add comments on where the mysterious numbers came from

* Fix a crash with auto repeat mode and errors on repeat
2017-01-01 22:26:17 +01:00
Yury Popov 3adba91b15 Net functionality rewrite on top of LWIP (#1379)
* Rewrite net.dns.resolve on LWIP

* Move IGMP (net multicast) to LWIP

* Cleanup net module

* Move secure connection operations to tls module

* Net module on LWIP

* Server timeout parameter

* TCP hold

* Fixes in documentation

* Documentation fixes

* Note TLS module depends on net

* Add TLS module to user_modules.h

* Callback on connect event

* Fix depends net module on tls module

* Fix unhold exponential time issue
2016-12-31 13:14:03 +01:00
Yury Popov 2b897e56c7 Cron module (#1674) 2016-12-26 14:19:12 +01:00
Arnim Läuger c57af8972f Rework support for >4MB modules: place SPIFFS after SDK data (#1646) 2016-12-26 14:17:57 +01:00
Philip Gladstone 543f438b6b Added node.random implementation (#1665) 2016-12-26 14:14:49 +01:00
Philip Gladstone feab8b2208 Various minor bits of cleanup (#1647)
* Check the return code of the read function when doing crypto.fhash so that we don't pass negative lengths to the hashing functions
*  Fix various assert failures in the LVM arising from rotables. No functional change
* Add the gpio interrupt time to the callback (and pass it from the interrupt handler)
* Get the PC right in the perf module
* Make the headers static in the websocket module
* Fix the documentation
2016-12-25 10:45:34 +11:00
kicer 118acb808e Fix crypto.mask() to encode with correct mask (#1677) (#1678)
Thank you.
2016-12-23 12:03:02 -05:00
Johny Mattsson c5c0143b2f rtctime.dsleep() current draw improvements (#1659)
* Switch off interrupts before rtctime dsleep.

* Deal with the fact that MCU keeps running after being told to enter deep sleep
(It can keep running for quite a few instructions at times (and none at
all at others), and it appears that trying to cache additional code from
SPI flash while trying to go to sleep fails miserably at both....)

* Ensure flash is not active when going into deep sleep.
2016-12-14 12:39:31 +01:00
vsky d56b4ef2e6 BME280: improved reliability and efficiency (#1662)
* BME280: improved reliability and efficiency

* BME280: new parameter to bme280.init() and new bme280.read() method documented
2016-12-11 22:31:39 +01:00
Yury Popov bdd54648f4 Upgrade to SDK 2.0.0 (#1435)
* Update LWIP from SDK
* mbedTLS integration
* Fix argument type in dbg_printf (#1624)
* Migrate to espressif’s download center (#1604)
* Fixed BBS links to firmware
* Adjust net module docs with mbedTLS info
* Remove unrelevant axTLS notice
2016-12-11 21:03:00 +01:00
Philip Gladstone 017b4637c2 Adds uart.getconfig(0) to get the current uart parameters (#1658) 2016-12-11 20:35:04 +01:00
vsky 12a7b1c239 BME280: fixing humidity trimming parameter readout bug (#1652) 2016-12-09 21:19:58 -05:00
Philip Gladstone 79013ae79a Improve SNTP module: Add list of servers and auto-sync [SNTP module only] (#1596) 2016-12-04 21:03:49 +01:00
Arnim Läuger ea7ad21318 move init_data from .text to .rodata.dram section (#1643) 2016-12-04 20:19:51 +01:00
ffedoroff 9f9fee9008 add new rfswitch module to handle 433MHZ devices (#1565) 2016-12-01 22:19:01 +01:00
Yury Popov 83eec61874 Fix iram/irom section contents (#1566) 2016-12-01 22:14:20 +01:00
Philip Gladstone 00b356be84 HTTP module can now chain requests (#1629)
* Fix up the HTTP module to use less memory
2016-12-01 22:13:33 +01:00
Jason Follas a48e88d4a3 EUS bug fixes (#1605)
- Bug fixes and improvements
- FIX: Ensure that station is enabled before doing network scan (this seems to be the cause of #1578)
- FIX: Check if state == NULL on enduser_setup.stop()
- IMPROVEMENT: Look for both enduser_setup.html.gz and enduser_setup.html as valid filenames, for semantic reasons
- IMPROVEMENT: Show a generic status message on HTML page if failure occurred before user even submitted data (i.e., would have come from previously stored config when the STA was started by EUS)
2016-12-01 22:12:47 +01:00
Marcel Stör c54bc05ba6 Fix macro as suggested in #1548 2016-11-19 21:17:50 +01:00
Arnim Läuger c70dc7497e Handle error condition in file.read() (#1599)
* handle error condition in file.read()

* simplify loop initialization
2016-11-19 10:36:00 -05:00
Mariusz Kryński 59b9b3e26f support for custom websocket headers (#1573)
Looks good to me. Thank you.

Also:
 - allow for '\0's in received messages

* add client:config for setting websocket headers

Also:
 - headers are case-insensitive now

* fix docs

* fix typo

* remove unnecessary luaL_argcheck calls

* replace os_sprintf with simple string copy
2016-11-19 10:35:20 -05:00
Marcel Stör 1d0cf5e8d0 Virtual u8g display driver for RFB/VNC support (#1514)
* add u8g.fb_rle display
* move comm drivers to u8g_glue.c
* disable fb_rle per default
2016-11-14 13:40:45 +01:00
zelll 798759950f i2c - allow slave stretching SCL (just loop and check) (#1589) 2016-11-13 10:16:07 -05:00
Arnim Läuger fdc766be9f fix vfs_lseek() result checking in enduser_setup and clarify SPIFFS_lseek() return value (#1570) 2016-11-08 22:27:12 +01:00
Jason Follas 058777ea60 Eus channelfix (#1583)
Squashed commits included:

Bug fixes and final implementation
- Added Content-Length: 0 to all headers
- Endpoint name checks not using trailing space so cache-busting techniques can be used (i.e., append a nonce to the URL)
- Track when connecting so APList scan doesn't take place during (which changes the channel)
- More debugging output added to assist in tracking down some issues

Added /status.json endpoint for phone apps/XHR to get JSON response

Station Status caching for wifi channel workaround + AJAX/CORS
- During checkstation poll, cache the last station status
- Shut down the station if status = 2,3,4 and channel is different than SoftAP
- Add Access-Control-Allow-Origin: * to endpoint responses used by a service
- Add a /setwifi GET endpoint for phone apps/XHR to use (same parameters as /update endpoint). Returns a JSON response containing chip id and status code.
- Add handler for OPTIONS verb (needed for CORS support)

Wi-Fi Channel Issue Workaround
- Do a site survey upon startup, set SoftAP channel to the strongest rssi's channel
- Compare successful station connect channel to SoftAP's. If different, then defer the Lua success callback to the end. Shut down Station and start the SoftAP back up with original channel.
- After the 10 second shutdown timer fires, check to see if success callback was already called. If not, then call it while starting the Station back up.

HTTP Response and DNS enhancements
- If DNS's UDP buffer fills up, keep going as non-fatal. It's UDP and not guaranteed anyways. I've seen this occur when connecting a PC to the SoftAP and every open program tries to phone home at the same time, overwhelming the EUS DNS server.
- Support for detecting/handling pre-gzipped `enduser_setup.html` (and `http_html_backup`) payload. Nice for keeping the size of the `state->http_payload_data` as small as possible (also makes minimization not as critical)
- Corrected misuse of HTTP 401 response status (changed one occurrence to 400/Bad Request, and changed another to 405/Method Not Allowed)

* Normalized formatting (tabs-to-spaces)
* Added documentation
* Corrected misuse of strlen for binary (gzip) data.
* Added NULL check after malloc
2016-11-08 21:58:33 +01:00
Arnim Läuger a0e2e0ca37 Implement object model for files (#1532) 2016-11-08 21:02:51 +01:00
Philip Gladstone b74a9dbdf7 Make the MQTT PING functionality work better. (#1557)
Deal with flow control stopped case
2016-11-08 21:00:17 +01:00
dnc40085 73773fd8a5 Update to the wifi module (#1497)
* Removed inline documentation for several functions and update comments
Since documentation is now part of the repository, the inline
documentation just adds to the already huge wifi.c

* Wifi module: add new functionality, update documentation

Functions Added:
wifi.getdefaultmode(): returns default wifi opmode
wifi.sta.apchange(): select alternate cached AP
wifi.sta.apinfo(): get cached AP list 
wifi.sta.aplimit(): set cached AP limit
wifi.sta.getapindex(): get index of currently configured AP
wifi.sta.getdefaultconfig(): get default station configuration
wifi.ap.getdefaultconfig(): get default AP configuration

functions modified:
wifi.setmode: saving mode to flash is now optional
wifi.sta.config: now accepts table as an argument and save config to
flash is now optional
wifi.sta.getconfig: added option to return table
wifi.ap.config: save config to flash is now optional
wifi.ap.getconfig: added option to return table

Documentation changes:
- Modified documentation to reflect above changes
- Removed unnecessary inline documentation from `wifi.c` 
- Updated documentation for `wifi.sta.disconnect`to address issue #1480 
- Fixed inaccurate documentation for function `wifi.sleeptype`
- Added more details to `wifi.nullmodesleep()`

* Move function `wifi.sleeptype()` to `wifi.sta.sleeptype()`

* Fixed problem where wifi.x.getconfig() returned invalid strings when
ssid or password were set to maximum length.

* fix error in documentation for `wifi.sta.getapindex`

* Renamed some wifi functions
wifi.sta.apinfo -> getapinfo
wifi.sta.aplimit -> setaplimit 
wifi.sta.apchange -> changeap

also organized the wifi_station_map array
2016-11-06 20:51:01 +01:00
Philip Gladstone 77b2e85d09 Add support to mix ws2812.buffer objects. (#1575)
* Add load/dump/mix/power operations on the buffer object
* Calculate the pixel value in mix and then clip to the range.
* Fixed the two wrong userdata types
* Added a couple more useful methods
* Add support for shifting a piece of the buffer.
* Fix a minor bug with offset shifts
2016-11-05 13:53:42 +01:00
Arnim Läuger f0780e399e Add ssd1306_128x32 for U8G (#1571) 2016-10-30 00:19:04 +03:00
Marcel Stör 7c3f76009a Change HTTP failures from debug to error messages (#1568)
* Change HTTP failures from debug to error messages

* Add tag to HTTP error messages

* Create macro for error msg and improve dbg msg
2016-10-29 14:04:23 +02:00
Arnim Läuger 9db07783f4 Remove luaL_buffer from file_g_read() (#1541)
* remove luaL_buffer from file_g_read()
- avoid memory leak when function gets terminated by lua_error
- skip scanning for end_char when reading until EOF
* attempt to free memory in any case
2016-10-28 17:32:12 +03:00
Philip Gladstone 2227383843 Small improvement to http client (#1558) 2016-10-27 14:07:04 +03:00
Philip Gladstone ebb537c502 Version of printf that doesn't suffer from buffer overflows (#1564) 2016-10-27 09:38:47 +03:00
Philip Gladstone 0ee1ab68b0 Improve reliability of FS detection. (#1528)
* Version to make filesystem detection more reliable
* Improve bad fs detection
2016-10-25 22:51:59 +02:00
Arnim Läuger 020afdcf33 avoid task queue overrun for serial input (#1540)
Thank you.
2016-10-17 21:56:38 -04:00
Philip Gladstone f9533ed85a Reduced LUAL_BUFFERSIZE to 256. Should free up some stack (#1530) 2016-10-16 21:18:03 +09:00
vsky 880bd9850b Somfy/TELIS driver (#1521) 2016-10-14 07:49:58 +09:00
Arnim Läuger 101eb201ab add map ids for flash sizes 32m-c2, 64m, 128m in user_rf_cal_sector_set() (#1529) 2016-10-13 16:51:48 +09:00
Arnim Läuger b8e00120b6 fix dereferencing NULL pointer in vfs_errno() (#1539) 2016-10-13 16:48:37 +09:00
Philip Gladstone 025805b0e8 Fixes the gpio.serout problem from #1534 (#1535)
* Fix some issues in gpio.serout
* Minor cleanup
2016-10-11 21:51:00 +09:00
Jim Paris 407eaa45ac Replace hardcoded init data with generated data from SDK
The esp_init_data_default.bin is now extracted from the SDK (and its
patch file, if present), and the contents are automatically embedded
into user_main.o.
2016-10-04 13:11:34 -04:00
Johny Mattsson 088d2c3820 Reimplemented esp_init_data_default.
To work around the pesky "rf_cal[0] !=0x05" hang when booting on a chip
which doesn't have esp_init_data written to it.

It is no longer possible to do the writing of the esp_init_data_default
from within nodemcu_init(), as the SDK now hangs long before it gets
there.  As such, I've had to reimplement this in our user_start_trampoline
and get it all done before the SDK has a chance to look for the init data.
It's unfortunate that we have to spend IRAM on this, but I see no better
alternative at this point.
2016-10-04 12:04:09 +11:00
Johny Mattsson 90c6e86872 Fix start-up race between UART & start_lua. (#1522)
Input during startup (especially while doing initial filesystem format)
ran the risk of filling up the task queue, preventing the start_lua task
from being queued, and hence NodeMCU would not start up that time.
2016-10-03 10:19:20 +02:00
Arnim Läuger a86fb74c34 implement file.size for spiffs (#1516)
Another bug squashed!
2016-10-02 21:32:48 -04:00
devsaurus c2732803a5 disable fb_rle per default 2016-09-28 22:02:50 +02:00
Philip Gladstone 04e93b2433 Add the esp-gdbstub to enable debugging (#1506)
* Initial version of gdbstub support

* Add DEBUG argument to Makefile to add more debug data and turn off -Os

* Add the output redirection handling

* Added documentation

* Cleaned up the english a bit

* Make gdboutput actually trap all the output

* Review comments
2016-09-21 11:38:12 +10:00
devsaurus 837cf20633 move comm drivers to u8g_glue.c 2016-09-20 23:59:23 +02:00
devsaurus 492ee578ae add u8g.fb_rle display 2016-09-20 23:37:13 +02:00
Johny Mattsson a112296850 Added crypto.new_hmac() feature. (#1499)
Docs for crypto module refactored for easier maintenance.
2016-09-16 17:46:39 +02:00
Luís Fonseca 19f80abb32 Fix float math.pow when number was negative and power was odd (#1492) 2016-09-07 22:45:06 +02:00
Arnim Läuger b02450f5e0 fix debug compile (#1487) 2016-09-06 12:28:46 +10:00
Arnim Läuger ecf8bd98d6 Add FatFs and SD card support (#1397)
* Add FatFs
* enable BUILD_FATFS for all-module build
* push vfs into rest of firmware
* align maximum filename length
* increase timeout for acmd41 during card initialization
* switch from DOS to Unix path semantics chdrive() is substituted by chdir()
* update to fatfs R.012a incl. patches 1-6
* add callback for rtc provisioning in file
* update docs
2016-09-05 20:17:13 +02:00
Philip Gladstone 99cd2177bb Make struct.unpack wrapped in setlist actually work (#1486)
Fixes #1434.
2016-09-05 11:16:27 +10:00
Yury Popov be263dacde Set espconn's secure buffer size once at initialization (#1466)
Fixes #1457
2016-09-04 22:45:46 +02:00
dnc40085 3328c66f2c Add function `wifi.nullmodesleep()` (#1475)
Enable auto sleep in NULL_MODE by default.
2016-08-27 11:46:24 +02:00
Marcel Stör 5e01b51123 Make DNS engine RFC 5452 compliant (#1324)
The original code did not deal with UDP binding failures, this new code
does one random port attempt and then sets port to 0 to get 'OS
default' behaviour, and ASSERTs that that has to work.

Patch also moves the local UDP port range definition to udp.h from
udp.c.
2016-08-20 22:19:31 +02:00
Marcel Stör ced7ddc926 Fix math.floor for negative integers (#1454)
Fixes #1453
2016-08-19 16:35:35 +10:00
Luís Fonseca 16051d51d6 Implement initial version for websocket module (#1433) 2016-08-18 13:59:44 +02:00
Yury Popov 3c55e8c026 MQTT memory / connection issues fix (#1445) 2016-08-14 10:32:11 +02:00
Luís Fonseca 67750c4a72 Make HTTP module follow redirects (#1450)
Fixes #1366
2016-08-14 00:48:13 +02:00
Marcel Stör 567b0a5553 Allow to override User-Agent and Host HTTP headers (#1426)
* Allow to override User-Agent and Host HTTP headers

Fixes #1410

Idea borrowed from (unmerged) #1157

* Do not send port for host header for default ports
2016-08-11 13:22:31 +10:00
Marcel Stör 07aa210c50 Remove DEVKIT_VERSION_0_9 and deprecated functions (#1439) 2016-08-04 23:03:37 +02:00
Yury Popov f1afe7b6ab Add support for dynamic timers, deprecating the static ones (#1424) 2016-08-02 22:35:53 +02:00
Yury Popov a499716cc1 Update modules to be Lua coroutine compatible (#1423) 2016-08-02 22:33:05 +02:00
Arnim Läuger ff46abe61f Fix DHCP server heap corruption per recommendation by Espressif (#1421)
To avoid crash in DHCP big packages modify option length from 312 to MTU - IPHEAD(20) - UDPHEAD(8) - DHCPHEAD(236).
2016-08-02 22:30:11 +02:00
Arnim Läuger 7f8a2b2c19 Update u8glib to v1.19.1 and add setContrast() (#1385) 2016-08-02 22:29:34 +02:00
Marcel Stör aa5fd1445d Change 'formatting file system' message (#1413) 2016-07-24 14:39:42 +02:00
Arnim Läuger 84c005e85c Update to SDK 1.5.4.1 (#1390) 2016-07-22 23:18:47 +02:00
Thomas Soëte 8866297c6d Remove buffer:write() as ws2812.write() handles buffers (#1408) 2016-07-20 23:04:33 +02:00
Thomas Soëte 854ad7c80f Handle two WS2812 strips in parallel using the two UARTs through GPIO2 and TXD0 (#1310) 2016-07-20 22:28:47 +02:00
Arnim Läuger 56839fb20b Add rtctime.epoch2cal() (#1386) 2016-07-19 22:01:26 +02:00
bert hubert 05baef325d Increase DNS transaction ID space from 250 to 65536 states (#1323) 2016-07-19 21:24:54 +02:00
Arnim Läuger b21b3e08aa Free HTTP headers and post data memory in disconnect and DNS failure callback (#1403) 2016-07-17 22:27:26 +02:00
Marcel Stör cc2fee5ec0 Seed CoAP message id, fixes #847 (#1401) 2016-07-17 15:17:57 +02:00
Yury Popov 549f42107e Update to SDK 1.5.4 (#1377) 2016-07-10 15:18:46 +02:00
Jonathan Karras 04b86b80f6 Fix open drain level issues when _not_ using parasitic power mode. (#1291)
Port of @pstolarz work on PaulStoffregen/OneWire#8
2016-06-28 22:51:55 +02:00
FrankX e14dd7aba0 Adjust EUS to new SPIFFS (#1376) 2016-06-28 22:50:23 +02:00
Philip Gladstone 4a8abc2060 Add support for driving instrument gauge stepper motors (#1355) 2016-06-26 14:19:06 +02:00
moononournation 4aad34158b add 64m and 128m flash support (#1367)
* update esptool.py to v1.2-dev

* add 64 Mbit and 128 Mbit support
2016-06-26 14:16:39 +02:00
vsky f2d0195732 gpio.serout going asynchronous (#1359)
* gpio.serout going asynchronous

* fixing several issues following PR comments
2016-06-16 20:33:26 +02:00
Arnim Läuger d445ae97fb Enable spi clock_div < 4. (#1283) 2016-06-15 21:01:52 +02:00
Jonathan Karras 7ff8326cc9 Skip passing port in Host header if standard port. (#1362)
Some virtual hosts break if the port is added in the headers.
2016-06-15 12:45:39 +02:00
Konrad Hübner 500bbceded added fadeIn, faceOut and shift to ws2812 module (#1343)
* added fadeIn, faceOut and shift to ws2812 module

* improvements to rotate, unified fade method

shift renamed to rotate and usage of more efficient memory operations.
fadeIn and fadeOut unified into fade method with optional parameter for direction.

* rename method to "shift" with optional mode parameter
2016-06-10 22:23:37 +02:00
Arnim Läuger d416648990 Add pcm module. (#1255)
* Add pcm module.
* Add network streaming example.
* document hw_timer dependency with pwm
* Add vu peak callback.
2016-06-05 23:21:36 +02:00
Philip Gladstone af39a0bc25 Upgrade to latest SPIFFS and add building of file systems (#1226)
Fixes #1164 and thus also #1150, #1149, #1147 and #898.

* Move to latest version of SPIFFS
* Add SPIFFS porting layer for NodeMCU
* Add option to delete output if it doesn't fit
* Change FLASHSIZE to be in bits by default: default 4mb 32mb
* Add SPIFFS_MAX_FILESYSTEM_SIZE override
* Add notes on SPIFFS_FIXED_LOCATION
* Add 1M boundary
* Include the current version of the LICENSE
2016-06-05 23:10:58 +02:00
Jason Schmidlapp e3f7e6321f Added support for STM L3G4200D digital gyroscope (#1251) 2016-06-05 23:00:37 +02:00
Jason Schmidlapp be10ccdb6b Added support for Analog Devices ADXL345 accelerometer (#1252) 2016-06-05 22:59:55 +02:00
Jason Schmidlapp bb9e210441 Added support for Honeywell HMC5883L digital compass (#1253) 2016-06-05 22:59:39 +02:00
dnc40085 4a1775c2e8 Fixed bug where default hostname is not set on boot when in SoftAP mode (#1341) 2016-06-05 13:38:12 +02:00
FrankX f4582e2499 EUS: add assigned IP address (#1313)
This change shows the assigned IP address when connected using EUS
2016-06-04 00:21:18 +02:00
Arnim Läuger ae873b70c6 Add caching for multi-byte transfers (#1247)
* add caching for multi-byte transfers
handle HSPI /CS in examples

* push similar code snippets into macro
2016-06-04 00:18:19 +02:00
Sebastian ecf74e5004 Added support for tm1829 baed led controllers (#1330) 2016-06-03 23:47:36 +02:00
dnc40085 2fdaa9b171 Moved call to set default wifi hostname (#1317)
Moved call from `luaopen_wifi (wifi.c)` to `user_rf_pre_init
(user_main.c)`
Note: This change adds ~440 us to boot time
2016-05-27 13:25:42 +02:00
Arnim Läuger 37411da06d Remove app/json. (#1312) 2016-05-27 11:53:21 +02:00
Philip Gladstone 2dacec156a Ensure that load_store exceptions trigger the exception handler (#1307)
Chain unhandled load_store exceptions to SDK exception handler
2016-05-27 12:14:02 +10:00
Arnim Läuger 2bb6e407a3 Initialize cb for unsubscribe and unref it upon socket deletion. (#1305)
Thank you.
2016-05-21 08:25:16 -04:00
Johny Mattsson 30d354c290 Rework ADC mode setting approach (#1285)
- Stop fighting against the SDK in terms of owning/writing the init_data block.
  NodeMCU included a default init_data block because originally the SDK did
  not, but by now it's not needed.

- Expose a way to reconfigure the ADC mode from Lua land. With most people
  using the cloud builder and not able to change the #define for byte 107
  this has been a pain point.

- Less confusion about which init_data has been used. Lua code can now simply
  state what mode it wants the ADC to be in, and not worry about the rest of
  the init_data complexities such as the init_data changing location due to
  flashing with wrong flash_size setting, or doing/not doing a chip-erase
  before loading new NodeMCU firmware.
2016-05-18 21:45:15 +02:00
dnc40085 1744372060 Updated tmr module and documentation
* Change upper limit for timer in `tmr_register` and `tmr_interval` to reflect new limit in SDK 1.5.3.
* Change documentation for `tmr.alarm()`, `tmr.interval()` and `tmr.register()` to match source.
* Improve error reporting to be more descriptive.
2016-05-14 00:17:04 +02:00
Philip Gladstone f0c1034308 Send a multicast response for QM query and other mDNS fixes
* Send a multicast response if it is a QM query
* Use the NSEC record in the style which mDNS demands
* Shuffle the code a bit and allow sending of A response...
* Made the A record work
* Now gets TTLs right and (I think) handles multiple questions
2016-05-12 14:37:46 +02:00
philip 501ef9d566 Fix bugs with mqtt connection error handling 2016-05-09 22:04:23 -04:00
Thomas Soëte 0577c8af0f Finalize work on ws2812 module
* Fix bug on first write
	Pin is 'HIGH' at reset, so we need to pull it down and generate a
	reset.

* Move init code to flash section, not needed to be in iram.

* Remove pin choice in API

* Remove lock in ws2812_buffer_write

* Remove naked malloc

* Drop ws2812_writergb

* Drop support of ws2812.buffers to ws2812_writegrb should use ws2812.buffers:write

* Add support for <>3 colors per leds strips (RGBW)

* Remove ICACHE_FLASH_ATTR

* Add static const on _uartData to avoid initialization penalty
2016-05-09 07:21:50 +02:00
Johny Mattsson 9a7a2c4dc3 Merge pull request #1184 from devsaurus/user-gnu11
Enable -std=gnu11 for user dir
2016-04-30 13:26:09 +10:00
devsaurus 8e11e895f5 move SPIRead to rom.h 2016-04-29 19:57:31 +02:00
Philip Gladstone 0472587c4c Added length checking (#1260)
Made the code clearer
2016-04-24 16:45:47 +02:00
Philip Gladstone 5b4b1e0388 Autobaudrate detection by default -- to reduce problems with speed change (#1215)
* Auto autobaud detection by default

* Added stopping the autobaud if explicitly configured

* Add note about auto-baud to the uart.md
2016-04-17 23:44:18 +02:00
Johny Mattsson f428897810 SNTP module enhancements (#1243)
* Provide an error code to SNTP error callback.

* Switch SNTP to use ephemeral port.

In case we're being hit by ISP-level thou-shall-not-run-NTP silliness.
2016-04-15 12:49:18 +02:00
Philip Gladstone 61c2b4dfe3 Minimal changes to handle bad bodies (#1212)
Fix failure to compile

Move the check into the http module

Reverted change
2016-04-09 13:54:10 +02:00
Philip Gladstone 3a5e5f10e2 Take 2: Add regular sends to mdns. Check for (some) buffer overflows. Make it handle unicast
Merging as suggested by @TerryE (and squashing at the same time. Turns out that this feature is enabled for this repo).

* Squashed commit of the following:

commit f985f10d9d2ee035f5a6ee6245c60d9904d98cc1
Author: philip <philip@gladstonefamily.net>
Date:   Sun Mar 27 21:52:46 2016 -0400

    Better mdns code

commit 6ee49ee106
Author: philip <philip@gladstonefamily.net>
Date:   Fri Mar 25 23:25:11 2016 -0400

    Update the docs

commit 7e455541c6
Author: philip <philip@gladstonefamily.net>
Date:   Thu Mar 24 21:58:16 2016 -0400

    Add retries and buffer checking to mdns

    Get the length right

    Now it seems to work

* Might work for combined mode

* Fix crash

* Simplified various bits of code. Changed the LUA interface

Added checking (to some degree) incoming quyery types

Move the defaults to the right place

Added reference to the RFC`
2016-04-03 14:10:52 -04:00
Jason Follas e16204d4f4 Corrected SPI CPOL/CPHA relationships
* Corrected CPOL/CPHA relationships

* Simplified to remove duplicated code

* Removed comments about when MISO is sampled. ESP seems to sample MISO on same clock edge as when MOSI is set.
2016-04-02 19:26:07 +02:00
Johny Mattsson f3cc39c2a2 Merge pull request #1214 from robertfoss/eus_js_fix
EUS JS select fix, part 2
2016-04-01 15:26:38 +11:00
dnc40085 5e9ab01523 Modified wifi module
Implement SDK event monitor
Move wifi status event monitor code into seperate file
(app/modules/wifi_eventmon.c)
Modify wifi lua callback registration code.
Add Functions wifi.ap.deauth and wifi.sta.getrssi
Rework wifi event monitor to use tasking interface
fix for Lua coroutine compatibility issue
Made changes Suggested by TerryE

Also, moved code that sets the default host name out of
luaopen_wifi_init and into a separate function and added a post_task_low
entry in it's place.

Replaced some if test then return error lines with
luaL_argcheck
Add check for malloc null return in wifi.eventmon 
to catch out of memory errors
2016-03-31 19:01:41 -07:00
Robert Foss 2e597e72e9 Improve previous EUS JS select fix to work better on mobile UIs. 2016-03-31 21:26:22 -04:00
Johny Mattsson 51efa2ab65 Fixed EUS password/ssid decoding. 2016-03-31 17:47:40 +11:00
Johny Mattsson 7e43c2c352 Merge pull request #1206 from robertfoss/eus_js_fix
enduser_setup: JS select fix
2016-03-31 13:05:48 +11:00
Johny Mattsson e7c6790b68 Merge pull request #1200 from DiUS/enduser-setup-status-fix
enduser_setup: Fixed missing status update.
2016-03-31 13:01:46 +11:00
Robert Foss 701d4121ed Fix SSID selection box when aplist only has one entry. 2016-03-30 11:04:37 -04:00
Johny Mattsson 7b95711636 Merge pull request #1203 from DiUS/reduce-tmr-time-drift
Make tmr.time() more resilient against RTC changing frequency
2016-03-30 21:58:25 +11:00
Terry Ellison e99f44350b Merge pull request #1202 from DiUS/crypto-fix-double-free
Fixed double-free in crypto module
2016-03-30 10:13:16 +01:00
Marcel Stör 568e83a775 Change index.html to eus-index.html 2016-03-30 08:09:15 +02:00
Bernd Meyer 858e4bf501 Make tmr.time() more resilient against RTC changing frequency 2016-03-30 13:33:01 +11:00
Bernd Meyer f2991f555d Remove improper free of userdata; It's for the garbage collection to free 2016-03-30 12:35:06 +11:00
Johny Mattsson 0e40477011 enduser_setup: Fixed missing status update.
Due to the hard-close, the status message did not get sent out reliably.
Connection closing logic now reworked to be nicer, while still avoiding
the problem of lots of connections lingering in fin_wait.
2016-03-29 17:32:07 +11:00
Johny Mattsson d515dfd8d6 Merge pull request #1138 from robertfoss/enduser_setup_improvements
Improve overall enduser_setup user experience.
2016-03-29 12:57:04 +11:00
Johny Mattsson e1fffe6ae4 Switch enduser_setup_module to LWIP raw API.
Shutting down an espconn server safely is impossible, and currently would
include at least one use-after-free. Even with that patched, at best this
would change things from impossible to "very tricky".

The native LWIP API does not have those issues, and is still quite easy
to work with.
2016-03-28 18:48:18 -04:00
Robert Foss 2d4f8f8e77 Improved overall enduser_setup user experience.
A single bug is fixed, a few features are added and overall the codebase has been worked through.

 - Added support for calls to /generate_204 that let's android know that the internet is accessible.
 - Added 10 second delay to the shutdown call to allow a final status update to be fetched by the client.
 - Added iframe to html to avoid having a form submission change the page.
 - Added support for dynamic /status responses.
 - Improved HTML appearance by removing AP-list button.
 - Improved CSS to center form, even when list of access points have loaded.
 - Improved debug prints to contain line numbers and not require lua_State*.
 - Fixed broken failure check when calling wifi_station_connect().
 - Fixed unguarded malloc().
2016-03-28 18:48:18 -04:00
Marcel Stör 117df40f58 Merge pull request #1179 from pjsg/unsubscribe
MQTT Unsubscribe support
2016-03-28 12:23:10 +02:00
Philip Gladstone bff75bc0f4 Merge pull request #1132 from pjsg/devtool
Merging on @TerryE say-so. No spurious output seen.
2016-03-25 23:36:41 -04:00
philip ab950ff518 Removed useless checks before calling luaL_unref 2016-03-25 23:35:07 -04:00
devsaurus f768e22293 shorten ucg constructors to keep them below LUA_MAX_ROTABLE_NAME 2016-03-25 23:49:22 +01:00
devsaurus 8bc2e8aa19 Enable -std=gnu11 for user dir 2016-03-24 00:06:09 +01:00
devsaurus 103cca303e Enable -std=gnu11 for tsl2561 dir 2016-03-22 22:26:44 +01:00
devsaurus 212cc8fdcd enable -std=gnu11 for u8glib and ucglib dir 2016-03-22 22:26:36 +01:00
philip 426e805c43 Initial version of unsubscribe 2016-03-20 18:44:06 -04:00
philip 84487d300b Remove unusedcode 2016-03-20 12:54:16 -04:00