Commit Graph

248 Commits

Author SHA1 Message Date
TerryE 46ea2aa42e Make the wifi.smart functions options and remove wofs and upgrade
AFAIK no one uses the wifi.startsmart() and wifi.stopsmart().  Removing
them frees up an extra 20-25K of Flash to use as filesystem.  So I have
added a new config define WIFI_SMART_ENABLE which is enabled by default
so the default functionality is the same, but if this is commented out
then this code is omitted.

I have also removed wofs and upgrade from this build as we no longer
support these.
2016-02-26 17:23:38 +00:00
Johny Mattsson 88369a5bd3 Merge pull request #1072 from TerryE/dev-encoder
Addition of encoder module with base64 and hex encode/decode as per #925
2016-02-26 12:35:02 +11:00
Arnim Läuger 78e9873d33 Merge pull request #988 from pjsg/mdns
Simple mdns implementation using the Espressif code
2016-02-24 22:54:39 +01:00
philip e516a0e9a2 Performance monitoring tool.
Squashed commit of the following:

commit f1820af82bb5467d0c79c03290fca809b0273030
Author: philip <philip@gladstonefamily.net>
Date:   Sun Feb 21 15:08:31 2016 -0500

    Now uses userdata

commit 74a2298f5f2d2b07097a9501046efb8d4061ec5e
Merge: 4ffab15 716e682
Author: philip <philip@gladstonefamily.net>
Date:   Sun Feb 21 13:54:40 2016 -0500

    Merge remote-tracking branch 'upstream/dev' into performance

    Conflicts:
    	app/platform/hw_timer.c
    	app/platform/hw_timer.h

commit 4ffab15a2a15e0c6b2d7e93611a02be47bafdc79
Author: philip <philip@gladstonefamily.net>
Date:   Fri Feb 12 17:36:12 2016 -0500

    Simple low level performance monitoring tool

    Make it work with the new hw_timer code

commit 944db2bdb8
Author: philip <philip@gladstonefamily.net>
Date:   Sun Feb 14 10:32:41 2016 -0500

    Initial version of the hw_timer as part of the platform

Addressed review comments

Add the binsize return
2016-02-22 08:50:07 -05:00
Arnim Läuger b171ca35ba Merge pull request #1008 from vsky279/bme280
BME280/BMP280 Digital Pressure Sensor module
2016-02-21 20:58:37 +01:00
vsky 6bd0ec4480 BME280/BMP280 Digital Pressure Sensor module 2016-02-21 19:51:08 +01:00
TerryE ffa7ee9b67 Addition of encoder module with bas64 and hex encode/decode as per #925 2016-02-21 04:18:27 +00:00
Arnim Läuger 8743319b02 Merge pull request #1000 from devsaurus/sigma_delta
Add sigma_delta module.
2016-02-20 20:11:42 +01:00
devsaurus 8982650df9 Add sigma_delta module. 2016-02-18 21:35:58 +01:00
philip 669543bbf2 Hardware timer support and convert the PWM module to use it 2016-02-17 21:07:33 -05:00
TerryE 49733f6f6d Add New Tasking I/F and rework GPIO, UART, etc to support it
As with the last commit this rolls up the follwowing, but include the various
review comments on the PR.

-   **Documentation changes**. I've added the taks FAQ as a stub new Extension
developer FAQ, and split the old FAQ into a Lua Developer FAQ and a Hardware
FAQ.

-   **Tasking I/F**.  New `app/task/Makefile`, `app/task/task.c`,
`app/include/task/task.h` and `app/Makefile` as per previous commit.  Cascade
changes to `app/driver/uart.c`, `app/include/driver/uart.h`,
`app/user/user_main.c` and `app/modules/node.c`

-   **GPIO Rework** to `app/modules/gpio.c` and `pin_map.[hc]`, `platform.[hc]`
in `app/platform`

-   **Other Optimisations** Move the `platform_*_exists()` from
`app/platform/common.c` to static inline declarations in `platform.h` as
this generates faster, smaller code. Move lgc.a routines out of iram0.
2016-02-17 17:13:17 +00:00
Henk Vergonet a1c1e015ff Add i2c based module for am2320 humidity sensor
Example use:
> sda=1
> scl=2
> am2320.init(sda,scl)
> rh, t = am2320.read()
> print(string.format("Temperature: %s degrees C", t / 10))
> print(string.format("RH: %s %%", rh / 10))

signed-off-by: henk.vergonet@gmail.com
2016-02-14 15:12:42 +01:00
philip 0e9a0d43d4 Direct port of the struct module that provides access to
packed structures in strings. Very useful for network protocol
packing/unpacking. The docs are directly converted from the original.

Review feedback

Fix typo
2016-02-13 08:32:25 -05:00
devsaurus dc2e1efefb Extend data type for spi miso/mosi buffer offset to 16 bit. 2016-02-09 22:05:05 +01:00
philip 76b28c1f74 Simple mdns implementation using the Espressif code 2016-01-29 21:37:19 -05:00
Johny Mattsson 74d27b3486 Merge pull request #968 from devsaurus/crypto_http_mqtt_lua-gnu11
Enable -std=gnu11 for crypto, http, mqtt, and lua dir
2016-01-28 17:36:27 +11:00
Robert Foss 0f3c0ffbb0 Added support for the APA102 LED. 2016-01-25 20:54:27 -05:00
Huang Rui 5e2eb3588c Fix redefine bug on some other version SDK(such as espressif's lubuntu environment)
Signed-off-by: Huang Rui <vowstar@gmail.com>
2016-01-25 03:06:18 +08:00
devsaurus f149b60c7f enable -std=gnu11 for lua dir 2016-01-24 00:02:27 +01:00
devsaurus 19fda87e33 enable -std=gnu11 for http dir 2016-01-23 22:41:41 +01:00
devsaurus 9f54c8f5d4 enable -std=gnu11 for driver dir with corrected os_printf* decls 2016-01-23 11:22:03 +01:00
devsaurus 0c3fc6cc78 enable -std=gnu11 for platform dir 2016-01-22 23:21:34 +01:00
Johny Mattsson 0cd287e67b Added -Wimplicit to modules build.
Plus associated fixes.
2016-01-22 10:55:57 +11:00
Johny Mattsson 182d45f928 Enable -std=gnu11 for modules dir.
Plus boat-load of fixes to actually make that build.
2016-01-20 19:40:47 +11:00
Terry Ellison 7e8c54890f Merge pull request #878 from dnc40085/dev_wifi_sta_Xethostname
Add functions: wifi.sta.sethostname and wifi.sta.gethostname
2016-01-15 08:56:37 +00:00
Johny Mattsson 52e121f469 Merge pull request #887 from vowstar/dev-all-in-one
Add HTTP client module and documents.
2016-01-15 17:44:41 +11:00
jfollas bf74b617d0 SPI: Implemented CPOL=1
Reference: http://bbs.espressif.com/viewtopic.php?f=49&t=1570
2016-01-13 22:39:15 -05:00
philip dd5dafa99e Merge remote-tracking branch 'jmattsson/tmr-libmain-binpatch150' into sdk1.5.1
Conflicts:
	Makefile
2016-01-13 07:54:27 -05:00
Philip Gladstome 1d9336fb99 Upgrade to SDK version 1.5.1 from Espressif 2016-01-12 21:05:47 -05:00
Johny Mattsson 0b2d90300a Remove left-over cruft regarding Lua mem opt. 2016-01-06 10:38:58 +11:00
dnc40085 b2190e4d7b Added functions: wifi.sta.sethostname and wifi.sta.gethostname and
option to set hostname in user.config.h
2016-01-02 18:34:40 -08:00
Terry Ellison 2f655deeca Merge pull request #885 from jmattsson/sdk150bin
Upgrade to SDK 1.5.0 + Espressif's Open LWIP 1.5.0.
2016-01-01 22:30:22 +00:00
Huang Rui 88bae3ed22 Remove all version data and combine 33 commits to 1.
Add http module and documention, including fix httpclient bug.
2015-12-29 19:25:37 +08:00
Johny Mattsson a6c0873a28 Upgrade to SDK 1.5.0 + Espressif's Open LWIP 1.5.0.
Removed earlier TCP port randomisation fix - the new SDK has its own fix
even though Espressif told me they wouldn't fix it. Yay?
2015-12-23 11:17:05 +11:00
devsaurus 6cbe716db0 uart: fix parity and stopbit generation 2015-12-21 17:51:43 +01:00
Johny Mattsson 9003d3e8fb Rework NODEMCU_MODULE() to not pull in extra gunk.
Third time lucky. I hope. Hi Terry.
2015-12-18 13:10:48 +11:00
Johny Mattsson 4e8ef87d03 Reworked module registration, removed modules.h
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.
2015-12-16 16:09:16 +11:00
Terry Ellison 32b2911263 Merge pull request #746 from DiUS/vdd33
Remove adc.readvdd33() limitation.
2015-12-01 23:37:53 +00:00
btsimonh b2345857e9 Added uart.alt(n) to swap to use alternate rx/tx lines.
if n = 0 -> std pinout.
if n != 0 -> alternate pinout (gpio13 and gpio15)
2015-11-28 22:51:01 +00:00
Marcel Stör 5b00d02bf2 Order modules list alphabetically 2015-11-19 22:48:05 +01:00
Johny Mattsson 1e3c231630 Fix esp_init_data_default inconsistencies.
Make ADC vs readvdd33 option user_config.h configurable for the init data,
and made readvdd33 the default.
2015-11-12 12:57:07 +11:00
Johny Mattsson 7512e628b6 Merge pull request #742 from TerryE/dev-stripdebug
Port of strip debug patch to the SDK 1.4-baseline dev
2015-11-10 12:20:36 +11:00
Johny Mattsson 382eea5079 Fix building with DEVKIT_0_9 defined.
This got broken in the 1.4.0 overhaul, mea culpa.
2015-11-09 12:15:40 +11:00
TerryE 83d06b667d Port of strip debug patch to the SDK 1.4-baseline dev 2015-11-08 23:46:08 +00:00
TerryE 307323d1ff Add luac.cross capability to nodeMCU 2015-11-03 21:37:14 +00:00
TerryE a08626d84f Add minimum debug library providing traceback() and getregistry() functions 2015-11-03 21:34:42 +00:00
Vowstar a38fbdbf51 Merge pull request #713 from christakahashi/hx711-support
Added support for the hx711 load cell ADC.
2015-11-01 14:31:12 +08:00
Vowstar 3e0a3e992e Merge pull request #717 from karrots/feature/baudrate_define
Add #DEFINE to user_config.h to enable easier bit rate selection.
2015-11-01 14:30:57 +08:00
Jonathan karras 66e65bd3c1 Add #DEFINE to user_config.h to enable easier bit rate selection. 2015-10-31 19:47:11 -06:00
chris dffbfacd46 most users won't need this so it should be off be default 2015-10-30 23:31:45 -07:00
devsaurus 9444ae28df simplify spi api
duplex_mode configuration enables/disables receiving with spi.send()
spi.send_recv removed
2015-10-27 23:30:33 +01:00
devsaurus 7d77398921 introduce full/half duplex transactions and add spi.send_recv() 2015-10-25 22:58:06 +01:00
devsaurus 19092712e5 remove obsolete spi_mast_send and rename platform_spi_send 2015-10-18 11:13:56 +02:00
devsaurus f238673772 rework of (H)SPI API 2015-10-18 11:13:55 +02:00
devsaurus 9cde0bbb83 add SPI transaction support 2015-10-18 11:13:55 +02:00
Johny Mattsson afdd9430e0 Removed old lwip include file. 2015-10-12 15:57:24 +11:00
Johny Mattsson 5d5be35633 Upgraded LWIP to 1.4.0 released from Espressif.
Plus directly provided patch for user_interface.h.
2015-10-12 14:31:04 +11:00
Johny Mattsson a161f882ae Espressif-provided fix for open source LWIP on 1.4.0. 2015-10-12 13:26:05 +11:00
Johny Mattsson bf8ed500bf Moved node.key() & node.led() support into node module.
It was piggybacking on the Lua readline timer which no longer exists.

Also cleaned up injection of Lua commands via CoAP & node.input().
2015-10-12 13:26:05 +11:00
Johny Mattsson fe6289a6c2 Switch Lua input to event driven instead of polled.
The Lua input timer has been the thorn in the side which prevents a lot of
potential sleeping, unnecessarily.
2015-10-12 13:26:05 +11:00
Johny Mattsson e905c24dcc Removed unsused, now incompatible SSL code. 2015-10-12 13:26:05 +11:00
Johny Mattsson 21c4e11020 Enable dynamic build dates, plus print SDK version. 2015-10-12 13:26:05 +11:00
Johny Mattsson 7d0b13df81 Bumped version string to stop confusing myself. 2015-10-12 13:26:04 +11:00
Johny Mattsson 3b9a42e254 Updated #includes to work on new SDK.
Both "c_types.h" and "lwip/ip_addr.h" don't get included indirectly anymore.
2015-10-12 13:26:04 +11:00
Johny Mattsson cc220d9201 Moved TEXT_SECTION_ATTR macro to its own header. 2015-10-12 13:26:04 +11:00
Johny Mattsson 8dff84e0a2 Missing file from the LWIP upgrade/import. 2015-10-12 13:26:04 +11:00
Johny Mattsson c674d191e4 Upgraded open-source LWIP.
From Espressif's lwip_open_src_template_proj_for_v1.3.0.zip
2015-10-12 13:26:04 +11:00
chris cf079fa333 Basic hx711 functionality 2015-10-08 20:34:24 -07:00
devsaurus 093a895980 Merge pull request #678 from devsaurus/dev-hspi_clockdiv
Add divider for arbitrary HSPI clock frequencies, resolves #674
2015-10-06 21:05:17 +02:00
Johny Mattsson 5e19b8488f Merge pull request #644 from robertfoss/enduser_setup
Added ENDUSER_SETUP module.
2015-10-05 19:18:18 +11:00
devsaurus ac50f9c6a5 add divider for arbitrary HSPI clock frequencies 2015-10-04 00:40:21 +02:00
Robert Foss ee82b2ad12 Moved SSID define to user_config.h 2015-09-30 13:24:18 -04:00
Robert Foss a15097659b Disabled enduser_setup module 2015-09-19 15:22:01 -04:00
Robert Foss cd85e50e73 Added support for connected, error and debug callbacks. 2015-09-19 15:06:56 -04:00
devsaurus a6c9ba8004 disable UCG module per default 2015-09-17 22:43:59 +02:00
devsaurus 154b456f11 extend ucg example with ST7735 display 2015-09-17 22:37:31 +02:00
devsaurus a2bca463a0 establish parametrization via ucg_config.h 2015-09-17 21:53:48 +02:00
devsaurus 6dc0dfc068 import ucglib v1.3.3
https://github.com/olikraus/Ucglib_Arduino
2015-09-17 21:53:47 +02:00
Robert Foss e2ada487f3 Added ENDUSER_SETUP module.
The module will start a SoftAP, DNS, HTTP server acting as a captive portal.
The portal will have the SSID SetupGadget and will serve a website where
credentials for the end users WLAN can be submitted.

Once valid credentials have been submitted and used to connect to the
local WLAN this module will stop.

This module requires USE_DNS to enabled in dhcpserver.h
2015-09-10 18:40:39 -04:00
aeprox 29ee02f680 Revert version change 2015-08-22 22:34:54 +02:00
aeprox 6cb90ea924 First commit 2015-08-22 00:15:28 +02:00
Vowstar ad49c5dd3b Merge pull request #589 from kbeckmann/pr_bmp085
Implemented BMP085 module
2015-08-05 23:21:03 +08:00
Vowstar a1bb3a6ad8 Merge pull request #586 from DiUS/ram-saving
Reclaim ~1.5k RAM by tuning down SPIFFS cache, use dynamic DNS table names
2015-08-05 23:19:24 +08:00
Konrad Beckmann 0b28056959 Implemented BMP085 module 2015-08-03 17:07:56 +02:00
zeroday c19596cae8 Merge pull request #581 from robertfoss/dev
Added USE_DNS define.
2015-08-02 23:40:37 +08:00
Johny Mattsson 4a47813e20 Reduced SPIFFS cache, freeing ~0.5k RAM.
Also made the cache on/off configurable via user_config.h. Uncached writes
are not a very good idea, but for read-only deployments a further ~0.5k RAM
can be gained by disabling the cache.

Tweaked the file.read() workhorse to read large chunks at a time rather
than use getc(), to compensate for potential unavailability of cache.
2015-07-31 18:15:18 +10:00
Bernd Meyer 595509a7f3 More sensible cjson realloc strategy. 2015-07-31 11:36:46 +10:00
Robert Foss 5822d4c4ed Add define for advertising DNS in the DHCP OFFER message. 2015-07-28 16:32:38 +02:00
devsaurus f4f62fb255 fix display table construction 2015-07-21 20:37:44 +02:00
devsaurus 6fd106afac added more displays:
sh1106_128x64_i2c
    ssd1306_64x48_i2c
    ssd1309_128x64_i2c
    ssd1327_96x96_gr_i2c
    uc1611_dogm240_i2c
    uc1611_dogxl240_i2c
    ld7032_60x32_hw_spi
    pcd8544_84x48_hw_spi
    pcf8812_96x65_hw_spi
    sh1106_128x64_hw_spi
    ssd1306_64x48_hw_spi
    ssd1309_128x64_hw_spi
    ssd1322_nhd31oled_bw_hw_spi
    ssd1322_nhd31oled_gr_hw_spi
    ssd1325_nhd27oled_bw_hw_spi
    ssd1325_nhd27oled_gr_hw_spi
    ssd1327_96x96_gr_hw_spi
    ssd1351_128x128_332_hw_spi
    ssd1351_128x128gh_332_hw_spi
    ssd1351_128x128_hicolor_hw_spi
    ssd1351_128x128gh_hicolor_hw_spi
    ssd1353_160x128_332_hw_spi
    ssd1353_160x128_hicolor_hw_spi
    st7565_64128n_hw_spi
    st7565_dogm128_hw_spi
    st7565_dogm132_hw_spi
    st7565_lm6059_hw_spi
    st7565_lm6063_hw_spi
    st7565_nhd_c12832_hw_spi
    st7565_nhd_c12864_hw_spi
    uc1601_c128032_hw_spi
    uc1608_240x128_hw_spi
    uc1608_240x64_hw_spi
    uc1610_dogxl160_bw_hw_spi
    uc1610_dogxl160_gr_hw_spi
    uc1611_dogm240_hw_spi
    uc1611_dogxl240_hw_spi
    uc1701_dogs102_hw_spi
    uc1701_mini12864_hw_spi
2015-07-20 23:11:13 +02:00
devsaurus b837726013 simplify device/display macros 2015-07-20 22:07:59 +02:00
devsaurus 8bd3d7d2bf introduce lua_api_name parameter when building the display table
keeps the API as before and gets rid of hw_spi vs sw_spi topics
2015-07-19 21:57:14 +02:00
devsaurus 1bc156e4d1 move display constructors into template-based functions
+ uniform generaration
+ addition of further displays
- slight unneccesary heap allocation when display drivers are included but not used
2015-07-16 23:23:43 +02:00
devsaurus 02d473dab0 revert local changes to u8glib 2015-07-16 21:31:00 +02:00
Johny Mattsson dd38a0a0e6 Imported reworked rtctime support. 2015-07-10 16:16:25 +10:00
Johny Mattsson 09410d55c6 Added SNTP module, for easy time sync.
Integrates with the rtctime component if it's available.
2015-07-10 15:12:31 +10:00
Johny Mattsson 67e72c45df Imported RTC FIFO component + added Lua interface.
The rtcfifo module uses RTC memory to store sensor samples across deep-sleeps,
making it possible to batch up samples for less frequent uploads. This
component uses 9 RTC memory slots for control, and a variable number of
slots for sample storage (see rtcfifo.prepare() on how to control the
size/location of the latter).

When used together with the rtctime module, it also exposes the convenience
function rtcfifo.dsleep_until_sample() which can be used to easily take
readings on a regular basis without having to manually take into account
time spent awake to get an accurate sleep time.

The format used for storing samples is quite dense, and allows for 16 bits
of data in a fixed point format (per sample).
2015-07-10 15:12:31 +10:00
Johny Mattsson 2187424928 Imported RTC+sleep timekeeping from an internal DiUS project.
Added Lua module rtctime to interface with it.

This keeps as accurate time as is possible on the ESP8266, including across
deep sleeps (provided rtctime.dsleep() is used rather than node.dsleep()).
Intended to be used together with NTP for high accuracy time keeping. The
API is via rtctime.{get,set}timeofday(), working from Unix epoch.

Note that 160MHz CPU clock is not currently supported by the rtctime code,
as it is only aware of the 52MHz boot clock and the regular 80Mhz default
clock.

See rtctime.h for detailed info on how this all works.
2015-07-10 15:12:31 +10:00
Johny Mattsson 1a613effeb Imported RTC access from a DiUS internal project.
Added Lua access module named "rtcmem" for read/write of RTC user module.
2015-07-10 15:10:15 +10:00
Vowstar f5938dfe17 Will made some modules default off.
Need discussion. And turn off some modules by default.
May our community should build more version?
2015-07-04 02:51:41 +08:00