Commit Graph

374 Commits

Author SHA1 Message Date
Philip Gladstone ec604d9c70 Mostly working version of the websocket support 2022-03-10 21:52:23 -05:00
Johny Mattsson cb434811ca
IDF web server module (#3502)
* Added httpd module.

Lua-interface to the standard esp_http_server component.

* Added eromfs module.
2022-03-05 13:51:54 +11:00
Philip Gladstone e5892a7286
Give the SPI module a chance of working... (#3496) 2022-01-27 07:02:56 +01:00
Johny Mattsson 6e63264963
Support interface-specific hostname on ethernet interface. (#3487) 2022-01-02 13:31:58 +11:00
Johny Mattsson a0c9085cca Make node.output() RTOS thread safe.
Also removed old, very unsafe node.osoutput(). We're now integrating cleanly
with the IDF/newlib way of redirecting stdout.

Added necessary depends in Kconfig to ensure VFS support is enabled, as
otherwise you'd only get a mysterious crash when attempting to enable
output redirection.
2021-11-04 22:24:01 +11:00
Johny Mattsson 5c59c57a16 Implement tmr.wdclr() 2021-10-22 12:38:07 +11:00
Johny Mattsson a2ba49e36b Switch to IDF-provided VFS and standard `io` module.
The IDF-provided VFS resolves several issues:

 - The IDF components having a different view of the (virtual) file system
   compared to the Lua environment.

 - RTOS task/thread safety. Our legacy VFS was only ever safe to use
   from the LVM thread, which limited its usability. Upgrading it
   would have effectively required a reimplementation of the IDF VFS,
   which would have been a bigger task with larger on-going maintenance
   issues.

 - We're no longer needing to maintain our own SPIFFS component.

 - We're no longer needing to maintain our own FATFS component.

 - The legacy of the 8266's lack of standard C interface to the file system
   is no longer holding us back, meaning that we can use the standard
   Lua `io` module rather than the cobbled-together swiss army knife
   also known as the file module.

Of course, the downside is that we'll either have to declare a backwards
breakage in regard to the file module, or provide a Lua shim for the old
functions, where applicable.

Also included is some necessary integer type fixups in unrelated code,
which apparently had depended on some non-standard types in either the
SPIFFS or FATFS headers.

A memory leak issue in the sdmmc module was also found and fixed while
said module got switched over to the Espressif VFS.

Module documentation has been updated to match the new reality (and I
discovered in some places it wasn't even matching the old reality).
2021-10-20 21:49:11 +11:00
Marcel Stör 389c119a8b
Add http.put (#3462)
Replaces setpostdata() with setbody().
2021-10-05 13:33:27 +11:00
Johny Mattsson 5e52a9e200 Added heaptrace module. 2021-09-16 13:54:55 +10:00
Johny Mattsson b84138595d Add eth.set_ip() functionality.
Effectively the esp_netif version of the recent tcpip_adapter based
support added on dev-esp32 in fa6fd1a41b.
2021-09-09 19:07:51 +10:00
Johny Mattsson 37f682dd70 More ethernet module fixes. 2021-09-09 19:05:48 +10:00
Johny Mattsson 185855b69a Brought over node.setonerror() functionality.
Now properly triggering restart on non-interactive errors.
2021-08-26 11:33:42 +10:00
Johny Mattsson 0690a7d181 Make bit module handle 32/64bit integer configs. 2021-08-25 18:58:53 +10:00
Johny Mattsson dba57fa0ea Merge branch 'dev-esp32-idf4-lua53' into dev-esp32-idf4 2021-08-24 10:42:43 +10:00
Johny Mattsson e52e0a8e84 Pulled in the 5.1+5.3 docs from the esp8266 branch.
With minor modifications to drop ESP8266 specific information not
applicable to the ESP32 series. Further corrections welcome.
2021-08-22 19:25:39 +10:00
Marcel Stör 3a6961ccc7
Update RTD MkDocs (#3457)
* Modernize docs

* Remove old style hacks

* Add comment
2021-08-16 15:27:56 +10:00
Johny Mattsson bc7b923646 Code cleanup to sort out warnings.
I2S constants have changed; docs updated.
2021-07-29 13:47:45 +10:00
Johny Mattsson dff32e8902 WiFi module updates.
- Added support for WPA3
- Evicted left-over broken WiFi auto-reconnect
- Updated docs
2021-07-28 19:09:19 +10:00
Johny Mattsson 06a0e3dc23 idf4: part 3.2 - fix bug in updated eth module
Updated docs to reflect new WiFi station connect behaviour.
2021-07-22 16:46:57 +10:00
Johny Mattsson 54a41149ea idf4: part 3.1 - sorting out the linker specifics
Now boots to the Lua prompt, and modules are included and findable.
2021-07-21 20:46:42 +10:00
Johny Mattsson d2f8121e22 idf4: part 2.2 - update wifi & eth modules to new APIs
Only compile-tested so far.

Of note is that the WiFi auto-connect (flag) functionality has been removed
from the IDF, and as a follow-on so has the "auto" field in the wifi config.

On the Ethernet side, support for the TLK110 PHY seems to have been removed,
but on the other hand there is now new support for several others.
2021-07-20 18:18:21 +10:00
Johny Mattsson 379a8eb844 idf4: updated build docs to note new ./install.sh step 2021-07-15 16:44:40 +10:00
Johny Mattsson 16ef39e255 idf4: overhaul to new build system, part 1 of 3
Yet to come:
  - part 2: dealing with deprecated and removed APIs
  - part 3: making it actually work again
2021-07-15 16:27:03 +10:00
serg3295 8e0e0cb31c
Fix ledc, otaupgrade, pulsecnt, sdmmc, sjson, touch docs (#3436)
ledc.md - formatting, add object name
otaupgrade.md - formatting, add 'Syntax' section
pulsecnt.md - formatting, fix syntax pulsecnt.create, add object name
sdmmc.md - fix typos
sjson.md - formatting, add `Parameters` section
touch.md - formatting, add object name, fix Returns in tp:read()
2021-05-23 16:29:01 +02:00
serg3295 39dc2e050f
Fix bit, bthci, can, encoder, eth, i2s docs (#3432)
* Fix bit, bthci, can, encoder, eth, i2s docs

* Fix bit, mqtt, qrcodegen, sigma-delta, sodium, time docs.

* Add object name in http.md
2021-05-19 21:02:49 +02:00
serg3295 1927b22c17
Fix adc, i2c, file, tmr docs (#3428) 2021-04-27 22:30:46 +02:00
Marcel Stör 3acb6b7c79
Add node.bootreason (#3413) 2021-04-02 08:03:17 +02:00
tomsci 6ba98f348d
Add uart.txflush() (#3390) 2021-02-14 08:43:20 +01:00
jmdasnoy fb12af06e7
Fix I2C timeout (#3377) 2021-01-22 13:01:21 +01:00
tomsci d5f0094576
Add node.sleep()(#3370)
Supporting wakeup from (non-EXT1) GPIO, UART, ULP, timer and touch
2021-01-17 09:00:12 +01:00
Kit Klein 830366188d
Add node.osoutput() method for ESP32 (#3363) 2021-01-05 12:34:35 +01:00
Nathaniel Wesley Filardo dd3b217df2
Kconfig: rename LUA_MODULE_* to NODEMCU_CMODULE_* (#3135)
Using the NODEMCU_ namespace prefix makes it obvious that these are not
part of Lua proper (contrast, e.g., LUA_BUILTIN_STRING).  Using
"CMODULE" gives us room to differentiate between modules whose
implementation is in C and whose implemenation is in Lua ("LMODULE").

The ESP8266 branch can adopt the same convention when it moves to
Kconfig; see https://github.com/nodemcu/nodemcu-firmware/issues/3130
2020-08-23 22:49:18 +02:00
Marcel Stör 572f731b61
Update build.md 2020-08-23 21:56:18 +02:00
tomsci fa2348f36b
Support for GPIO wakeup in node.dsleep() (#3115) 2020-08-22 10:32:45 +02:00
M.K 8db97c0f52
Fix method name encoder.fromBase64 in example code (#3247) 2020-08-22 10:31:08 +02:00
Javier Peletier 084d6cabc5
Add support for external modules (#3100) 2020-07-27 19:08:19 +02:00
kiritnarain 04e01fd4ef
Fix conflict between documentation and example for method newChannel() (#3184)
It now correctly uses ledc.newChannel() and saves the return value instead of invoking ledc.setup().
2020-06-30 13:52:12 +02:00
Javier Peletier f4887bf134
JTAG debugging quick guide for Linux (#3088) 2020-05-18 19:58:15 +02:00
tomsci b8e8ffa53a
Expose gpio_set_drive_capability API to Lua (#3099) 2020-05-18 19:56:43 +02:00
tomsci f7b8cf018e
Unref gpio.trig callbacks when type=INTR_DISABLE (#3072)
Fixes #2880
2020-04-27 14:29:08 +02:00
Kit Klein a8b46af905
Correct wifi auth types for esp32 (#3047)
Correcting the AP config auth types.  The ones defined in the current documentation don't seem to exist.
2020-02-26 12:30:22 +01:00
Marcel Stör 1e177194b0 Fix doc header 2020-02-11 23:30:20 +01:00
Marcel Stör 035bef406a Fix formatting and function sorting 2020-02-09 23:50:33 +01:00
John Lauer 9a5327cab1 Add touch sensor module (#2863)
* Touch module 1st checkin
* ESP32. Check-in 2 for Touch sensor module
* ESP32: Touch module. Sample Lua code.
* ESP32: Latest YouTube vid
* ESP32: Touch docs update
* Added opt_* methods for value retrieval
2019-10-27 19:49:56 +01:00
Arnim Läuger d20778ed09
Support eth boards without power pin, extend docs (#2855)
* fix handling of optional power pin

* add init example for wESP32

* add example for eth.on()
2019-08-12 22:31:19 +02:00
Javier Peletier b5146f8883 Added required libraries to build env setup instructions (#2844) 2019-07-23 18:38:27 +10:00
Johny Mattsson eaac369dec
LFS support for ESP32 NodeMCU (#2801)
* Port LFS from ESP8266 to ESP32
2019-07-22 19:13:43 +10:00
Arnim Läuger 7cb61a27d2 Esp32 eth (#2820)
Ethernet module added.
2019-07-20 12:47:43 +10:00
John Lauer fead54e744 Add video walk through of build process (#2826) 2019-07-10 19:55:19 +02:00
Johny Mattsson ca89bff073 OTA support for ESP32 (#2812)
* Implemented otaupgrade module.

* Added partition table example for otaupgrade.

* Copy-paste omission. Whoops.

* Updated otaupgrade docs after review.
2019-07-06 14:21:08 +02:00