1. 05 Feb, 2024 1 commit
  2. 07 Nov, 2020 2 commits
  3. 18 Sep, 2020 1 commit
  4. 15 Sep, 2020 1 commit
  5. 29 Aug, 2020 1 commit
  6. 16 Jun, 2020 1 commit
  7. 09 Jun, 2020 1 commit
    • Terry Ellison's avatar
      Squashed updates do get Lua51 and Lua53 working (#3075) · bbeb09b6
      Terry Ellison authored
      -  Lots of minor but nasty bugfixes to get all tests to run clean
      -  core lua and test suite fixes to allow luac -F to run cleanly against test suite
      -  next tranch to get LFS working
      -  luac.cross -a options plus fixes from feedback
      -  UART fixes and lua.c merge
      -  commit of wip prior to rebaselining against current dev
      -  more tweaks
      bbeb09b6
  8. 01 Aug, 2019 1 commit
  9. 21 Jul, 2019 1 commit
    • Johny Mattsson's avatar
      Major cleanup - c_whatever is finally history. (#2838) · 526d21da
      Johny Mattsson authored
      The PR removed the bulk of non-newlib headers from the NodeMCU source base.  
      app/libc has now been cut down to the bare minimum overrides to shadow the 
      corresponding functions in the SDK's libc. The old c_xyz.h headerfiles have been 
      nuked in favour of the standard <xyz.h> headers, with a few exceptions over in 
      sdk-overrides. Again, shipping a libc.a without headers is a terrible thing to do. We're 
      still living on a prayer that libc was configured the same was as a default-configured
      xtensa gcc toolchain assumes it is. That part I cannot do anything about, unfortunately, 
      but it's no worse than it has been before.
      
      This enables our source files to compile successfully using the standard header files, 
      and use the typical malloc()/calloc()/realloc()/free(), the strwhatever()s and 
      memwhatever()s. These end up, through macro and linker magic, mapped to the 
      appropriate SDK or ROM functions.
      526d21da
  10. 08 Jul, 2019 1 commit
    • Marcel Stör's avatar
      Save the post data in a file on the filesystem (#2810) · 0398c336
      Marcel Stör authored
      * Use cross-browser JS for query params in EUS
      
      * Update EUS doc to explain how to use parameters
      
      * Remove ; in Lua code
      
      * Rewrite the endpoint table
      
      * Do not use properties as global Lua variables
      
      * remove enduser_setup.html.gz
      
      * rename folder 'eus' to 'enduser_setup'
      
      * Change input type for password to "password"
      
      * Replace outdated captive portal screen shot
      0398c336
  11. 08 May, 2019 1 commit
  12. 17 Feb, 2019 1 commit
  13. 13 Apr, 2018 1 commit
    • dnc40085's avatar
      Refactor timer suspend portion of node.sleep (pmsleep) (#2287) · 96e5c026
      dnc40085 authored
      * pmsleep refactor
      * Shortened swtmr disabled message 
      * Added swtimer debug module option to user_modules.h.
      * Added comments to user_config.h.
      * Fixed error in documentation for node.sleep()
      * remove blank sntp.c that got added in during rebase onto dev(6218b926)
      * Added #ifdefs around SWTIMER_REG_CB to prevent inclusion of disabled
      code
      96e5c026
  14. 23 Mar, 2018 1 commit
  15. 18 Mar, 2017 1 commit
  16. 07 Dec, 2016 1 commit
  17. 01 Dec, 2016 2 commits
    • Jason Follas's avatar
      EUS bug fixes (#1605) · a48e88d4
      Jason Follas authored
      - 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)
      a48e88d4
    • Marcel Stör's avatar
      Next 1.5.4.1 master drop (#1627) · 04ce0adf
      Marcel Stör authored
      * add u8g.fb_rle display
      
      * move comm drivers to u8g_glue.c
      
      * disable fb_rle per default
      
      * implement file.size for spiffs (#1516)
      
      Another bug squashed!
      
      * 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.
      
      * 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.
      
      * 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.
      
      * Rework flashing instructions
      
      Clarifies issues around SDK init data and hopefully clears up some
      confusion, when paired with the esp_init_data_default changes in
      NodeMCU.
      
      * Fix typo
      
      * Fixes the gpio.serout problem from #1534 (#1535)
      
      * Fix some issues in gpio.serout
      * Minor cleanup
      
      * fix dereferencing NULL pointer in vfs_errno() (#1539)
      
      * add map ids for flash sizes 32m-c2, 64m, 128m in user_rf_cal_sector_set() (#1529)
      
      * Somfy/TELIS driver (#1521)
      
      * Reduced LUAL_BUFFERSIZE to 256. Should free up some stack (#1530)
      
      * avoid task queue overrun for serial input (#1540)
      
      Thank you.
      
      * Increase irom0_0_seg size for PR build
      
      * Improve reliability of FS detection. (#1528)
      
      * Version to make filesystem detection more reliable
      * Improve bad fs detection
      
      * Version of printf that doesn't suffer from buffer overflows (#1564)
      
      * Small improvement to http client (#1558)
      
      * 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
      
      * 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
      
      * Add ssd1306_128x32 for U8G (#1571)
      
      * Update CONTRIBUTING.md
      
      * 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
      
      * 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
      
      * Make the MQTT PING functionality work better. (#1557)
      
      Deal with flow control stopped case
      
      * Implement object model for files (#1532)
      
      * 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
      
      * fix vfs_lseek() result checking in enduser_setup and clarify SPIFFS_lseek() return value (#1570)
      
      * Fix link
      
      * Overhaul flashing docs once again (#1587)
      
      * Add chapter about determine flash size plus small fixes
      * Rewrite esptool.py chapter, move flash size chapter to end
      
      * i2c - allow slave stretching SCL (just loop and check) (#1589)
      
      * Add note on dev board usage of SPI bus 0 (#1591)
      
      * Turn SPI busses note to admonition note
      
      * 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
      
      * Handle error condition in file.read() (#1599)
      
      * handle error condition in file.read()
      
      * simplify loop initialization
      
      * Fix macro as suggested in #1548
      
      * Extract and hoist net receive callbacks
      
      This is done to avoid the accidental upval binding
      
      * Fix typo at rtctime.md
      
      rtctime.dsleep -> rtctime.dsleep_aligned
      04ce0adf
  18. 08 Nov, 2016 2 commits
    • Arnim Läuger's avatar
    • Jason Follas's avatar
      Eus channelfix (#1583) · 058777ea
      Jason Follas authored
      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
      058777ea
  19. 05 Sep, 2016 1 commit
    • Arnim Läuger's avatar
      Add FatFs and SD card support (#1397) · ecf8bd98
      Arnim Läuger authored
      * 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
      ecf8bd98
  20. 28 Jun, 2016 1 commit
  21. 03 Jun, 2016 1 commit
  22. 01 Apr, 2016 1 commit
  23. 31 Mar, 2016 1 commit
  24. 30 Mar, 2016 2 commits
  25. 29 Mar, 2016 1 commit
    • Johny Mattsson's avatar
      enduser_setup: Fixed missing status update. · 0e404770
      Johny Mattsson authored
      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.
      0e404770
  26. 28 Mar, 2016 2 commits
    • Johny Mattsson's avatar
      Switch enduser_setup_module to LWIP raw API. · e1fffe6a
      Johny Mattsson authored
      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.
      e1fffe6a
    • Robert Foss's avatar
      Improved overall enduser_setup user experience. · 2d4f8f8e
      Robert Foss authored
      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().
      2d4f8f8e
  27. 01 Mar, 2016 3 commits
  28. 01 Feb, 2016 1 commit
    • Johny Mattsson's avatar
      Fixes and enchancements for enduser_setup module. · 86839d6e
      Johny Mattsson authored
      Fixes:
      
      * Removed spurious \0 bytes being sent to the client in many cases.
      
      * Properly terminated 404 header.
      
      * Now including Content-length: header for index.html (including built-in).
      
        Clients otherwise had to wait for their own timeout before considering
        the page load complete, which resulting in an unpleasant sluggish
        experience.
      
      * Switched form submission to GET, as iOS sometimes does not include the
        body in the same packet as the POST header, which led to the module
        not finding the form values.
      
      * Added redirect after form submission to avoid blank-page-in-browser.
      
      * Moved common "enduser_setup" prefix to a lua_pushfstring() to reduce
        string literal overhead.
      
      * Replaced cached lua_State* with calls to lua_getstate(), as in other
        modules.
      
      * Fixed broken appending of MAC to the SSID.
      
      * Fixed up macro definitions to not break `if` clauses unintentionally.
      
      Enhancements:
      
      * Support for scanning for available WiFi networks, and picking from the list.
      
      * Support for retrieving the current WiFi station status.
      
      * Added "manual" mode, where the module does not (re)configure the AP setup,
        nor shut down automatically. Default is still automatic, as before.
      
      * Updated docs for new `enduser_setup.manual()` function.
      86839d6e
  29. 27 Jan, 2016 1 commit
  30. 20 Jan, 2016 1 commit
  31. 21 Dec, 2015 1 commit
  32. 16 Dec, 2015 2 commits
    • Johny Mattsson's avatar
      Reworked module registration, removed modules.h · 4e8ef87d
      Johny Mattsson authored
      Module creation & registration now made a lot simpler. In essence,
      each module file is now self-contained and only needs a
      
        NODEMCU_MODULE(MYNAME, "myname", myname_map, luaopen_myname);
      
      line to both be automatically recognised by the Lua initialization
      as well as honor the LUA_USE_MODULES_MYNAME #define.
      4e8ef87d
    • TerryE's avatar
      Major cleanup of module registration pass 2. · b773290b
      TerryE authored
      carrying on Johny's edits as per my comments on #810
      b773290b