Commit Graph

643 Commits

Author SHA1 Message Date
Philip Gladstone 0f7716297c Make the CRON module work reliably (#2153) 2017-10-30 11:05:41 +01:00
Terry Ellison ffc914dad0
Merge pull request #2152 from pjsg/fix-no-int
Make it build without INTERRUPT_ENABLE
2017-10-29 18:19:40 +00:00
philip f17b5ebf59 Make it build without INTERRUPT_ENABLE 2017-10-29 10:35:24 -04:00
Johny Mattsson 4a91464467 Fixed broken wifi.sta.{dis,}connect() with event mon enabled. (#2098) 2017-10-28 23:23:15 +02:00
Nathaniel Wesley Filardo 5c8619eb4d ws2812 mix: add all, then divide (#2032)
This achieves rounding between multiple summed frame buffers
2017-10-22 19:20:45 +02:00
Suraj151 aebfd1a907 Swap reading y and z values (#2137) 2017-10-16 14:51:24 +02:00
Johny Mattsson 3e60fa8f60 Fix data loss in TCP streams. (#2097)
* Fix data loss in TCP streams.

* Factored out the UDP extra args handling.
2017-09-28 22:41:22 +02:00
dnc40085 7946deadab Added boolean return value for wifi.sta.sethostname (#2079)
- simplified wifi_change_default_host_name
- refactored code that checks hostname for compliance
2017-09-15 22:38:35 +02:00
Philip Gladstone e4d010e1c0 Handle doublequotes in strings. (#2104) 2017-09-15 22:25:13 +02:00
Nathaniel Wesley Filardo f9e0aab200 cron: don't include rtctime_internal.h (#2084)
That file is supposed to only be included once because it does things
like declare static globals.  As it stands, cron doesn't believe time is
ticking.

Fixes #2080
2017-08-24 21:17:31 +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
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
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
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
dnc40085 e2fc37fa17 Removed code allowing argument style station configuration (#2018) 2017-06-29 22:05:40 +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
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
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
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
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
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
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
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
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
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
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
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
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 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 ebb537c502 Version of printf that doesn't suffer from buffer overflows (#1564) 2016-10-27 09:38:47 +03: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
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
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
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
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 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 7f8a2b2c19 Update u8glib to v1.19.1 and add setContrast() (#1385) 2016-08-02 22:29:34 +02:00