Paul Sokolovsky
dc2c8f0b1a
esp8266/axtls_helpers: Helper/wrapper functions for axTLS.
2016-04-27 14:54:36 +03:00
Paul Sokolovsky
648333d2d5
esp8266/Makefile: Override abort() when building axtls.
...
abort() is a special function known to compiler as no-return.
2016-04-27 13:41:59 +03:00
Paul Sokolovsky
6afd651f1e
esp8266/esp8266.ld: Put axTLS to FlashROM.
2016-04-27 00:45:09 +03:00
Paul Sokolovsky
6149ce01f8
esp8266/Makefile: Add target to build axTLS.
2016-04-27 00:35:13 +03:00
Paul Sokolovsky
90b2cfe644
esp8266/scripts/webrepl: Add "ws://" to "daemon started at" message.
...
To remind people it's not HTTP.
2016-04-26 12:47:24 +03:00
Paul Sokolovsky
237c519ac4
esp8266/scripts/flashbdev: Use all available Flash for filesystem.
...
All Flash sans firmware at the beginning and 16K SDK param block at the
end is used for filesystem (and that's calculated depending on the Flash
size).
2016-04-26 01:36:32 +03:00
Paul Sokolovsky
ef2ffc0e4e
esp8266/scripts/webrepl: Print client address for incoming connections.
2016-04-26 01:00:28 +03:00
Paul Sokolovsky
c888831410
esp8266/scripts/webrepl: Print connection address.
...
Based on active network interfaces.
2016-04-26 00:59:30 +03:00
Paul Sokolovsky
6d103b6548
py: Move call_function_*_protected() functions to py/ for reuse.
...
They almost certainly needed by any C code which calls Python callbacks.
2016-04-25 19:31:17 +03:00
Paul Sokolovsky
4296a8dc5c
esp8266/scripts/webrepl: Allow to override port.
2016-04-25 18:44:37 +03:00
Paul Sokolovsky
bd66b09512
esp8266/scripts/webrepl: Don't start on import.
...
Explicit .start() is required now.
2016-04-25 00:33:27 +03:00
Paul Sokolovsky
8db4f363e9
esp8266/scripts/webrepl: Convert to persistent daemon.
2016-04-25 00:31:43 +03:00
Paul Sokolovsky
7c40b15a3f
esp8266/scripts/webrepl: WebREPL based on C-level websocket object.
2016-04-24 23:04:21 +03:00
Paul Sokolovsky
d422e56631
esp8266/scripts/websocket_helper: Disable debug output.
2016-04-22 18:19:54 +03:00
Paul Sokolovsky
eb40769613
esp8266/scripts/websocket_helper: Module encapsulating handshake sequences.
2016-04-22 18:18:27 +03:00
Damien George
b372156f74
esp8266: Change software SPI driver to use general pin HAL.
2016-04-22 10:44:06 +01:00
Damien George
67a6d31955
esp8266: Allow GPIO16 to be used as a pin in the uPy pin HAL.
...
Now I2C works with GPIO16 as the SCL or SDA pin.
2016-04-22 10:35:26 +01:00
Damien George
a2d5d84ecc
esp8266: Convert mp_hal_pin_obj_t from pin ptr to simple integer.
...
Most pin I/O can be done just knowing the pin number as a simple
integer, and it's more efficient this way (code size, speed) because it
doesn't require a memory lookup to get the pin id from the pin object.
If the full pin object is needed then it can be easily looked up in the
pin table.
2016-04-22 10:04:12 +01:00
Damien George
624738ca64
extmod/machine_i2c: Allow mp_hal_pin_obj_t to be any type, not a ptr.
2016-04-22 09:56:02 +01:00
Damien George
d4f4cb6a24
esp8266/esp_mphal: Remove mp_hal_feed_watchdog.
...
It doesn't do anything and is not needed. ets_loop_iter/ets_event_poll
now take care of feeding the WDT.
2016-04-21 15:30:29 +01:00
Damien George
c4e26dd19a
esp8266/uart: Remove obsolete UART rx buffering code.
...
It's now completely replaced by the ringbuf implementation.
2016-04-21 15:27:18 +01:00
Damien George
d46bea9ffa
esp8266: Implement UART.read functionality.
2016-04-21 15:19:19 +01:00
Damien George
7652ab77ef
esp8266: Add uart_rx_wait and uart_rx_char functions.
2016-04-21 15:19:00 +01:00
Damien George
32d7cf6e44
esp8266: Implement basic deep-sleep capabilities.
...
Use the machine.deepsleep() function to enter the sleep mode. Use the
RTC to configure the alarm to wake the device.
Basic use is the following:
import machine
# configure RTC's ALARM0 to wake device from deep sleep
rtc = machine.RTC()
rtc.irq(trigger=rtc.ALARM0, wake=machine.DEEPSLEEP)
# do other things
# ...
# set ALARM0's alarm to wake after 10 seconds
rtc.alarm(rtc.ALARM0, 10000)
# enter deep-sleep state (system is reset upon waking)
machine.deepsleep()
To detect if the system woke from a deep sleep use:
if machine.reset_cause() == machine.DEEPSLEEP_RESET:
print('woke from deep sleep')
2016-04-21 11:43:37 +01:00
Paul Sokolovsky
4fa1731b6e
esp8266/modnetwork: .config(): Add "hidden ESSID" param.
2016-04-21 00:42:45 +03:00
Paul Sokolovsky
cc1ef76f88
esp8266/scripts/flashbdev: Correct bootloader flash size to match real size.
...
Flash size as seen by vendor SDK doesn't depend on real size, but rather on
a particular value in firmware header, as put there by flash tool. That means
it's user responsibility to know what flash size a particular device has, and
specify correct parameters during flashing. That's not end user friendly
however, so we try to make it "flash and play" by detecting real size vs
from-header size mismatch, and correct the header accordingly.
2016-04-20 18:07:34 +03:00
Paul Sokolovsky
584406880c
esp8266/scripts/_boot: Print notice when initial setup is executed.
2016-04-20 18:01:09 +03:00
Paul Sokolovsky
2494399a42
esp8266/scripts/flashbdev: Disable debug output/checks.
2016-04-20 00:35:46 +03:00
Paul Sokolovsky
46f0641fba
esp8266/modnetwork: .config(): Add "channel" param.
2016-04-20 00:25:31 +03:00
Paul Sokolovsky
8dcce92606
esp8266/scripts: Don't try to create filesystem on 512KB devices or less.
...
There's no space for it.
2016-04-18 17:14:00 +03:00
Paul Sokolovsky
89e56a80b8
esp8266/modesp: Add flash_size() function.
...
Returns FlashROM size in bytes from vendor SDK's point of view, not
physical size.
2016-04-18 17:12:57 +03:00
Paul Sokolovsky
3a5a35aaec
esp8266/scripts/flashbdev: Use all available space in 1MB FlashROM for FS.
2016-04-18 01:23:04 +03:00
Damien George
d76ebde85e
esp8266/modesp: Allow esp.deepsleep to take 2nd arg for RF wake opt.
2016-04-17 16:28:47 +01:00
Paul Sokolovsky
89aa7157d0
esp8266/README.md: Update feature list for current state of affairs.
2016-04-17 18:17:49 +03:00
Paul Sokolovsky
7e5715a6d5
esp8266/README.md: Typo fix.
2016-04-17 18:16:36 +03:00
Paul Sokolovsky
6f3b9933bd
esp8266/esp_mphal: Protect dupterm_task_handler() from recursive exec.
2016-04-17 18:11:04 +03:00
Paul Sokolovsky
dde9abad16
esp8266/moduos: Add dupterm_notify() function.
...
Should be called to notify that current dupterm object has more input
data to read.
2016-04-17 18:09:52 +03:00
Damien George
73ccb3fc5b
esp8266: Adapt port to use new auto-qstr generation.
2016-04-16 13:20:02 +01:00
Paul Sokolovsky
050e645ef2
esp8266/modmachine: Add reset_cause() function.
2016-04-15 22:08:04 +03:00
Damien George
091dcaea2f
esp8266/moduos: Add uos.mkdir function.
2016-04-14 23:37:15 +01:00
Damien George
7d2c685544
esp8266/scripts/_boot: Mount block device on "" instead of "/".
...
"" is the correct name of the root directory when mounting a device there
(as opposed to "/"). One can now do os.listdir('/') and open('/abc'), as
well as os.listdir() and open('abc').
2016-04-14 22:56:21 +01:00
Paul Sokolovsky
d3ab4bc7ca
esp8266/qstrdefsport.h: Mark qstr's for "esp" module.
2016-04-15 00:11:22 +03:00
Paul Sokolovsky
4f811d0e4c
esp8266: Enable input() builtin.
2016-04-15 00:08:39 +03:00
Paul Sokolovsky
9b0714b24c
py: Declare help, input, open builtins in core.
...
These are *defined* per-port, but why redeclare them again and again.
2016-04-15 00:07:56 +03:00
Paul Sokolovsky
272fad6d9c
esp8266/scripts/port_diag.py: Module to collect diagnostic info.
...
A shortcut for users to provide background diagnostic info for bug
reports.
2016-04-14 18:54:11 +03:00
Paul Sokolovsky
0a400a6333
esp8266: Switch integer arith routines to BootROM.
2016-04-14 15:06:07 +03:00
Damien George
df3b1741b6
esp8266: Separate 1-wire timing funcs from Python module to save iRAM.
...
esponewire.c contains low-level timing-critical functions that go in
iRAM. modonewire.c contains Python wrapper code.
2016-04-14 12:44:26 +01:00
Damien George
674bf1bc81
esp8266: Add hard IRQ callbacks for pin change on GPIO0-15.
2016-04-14 12:44:26 +01:00
Damien George
d9d408135d
esp8266: Add dummy entries for non-existing pins to simplify pin logic.
...
Now pins can be easily looked up in the table using the pin number as the
index and vice versa.
2016-04-14 12:43:25 +01:00
Damien George
a9a732af1f
esp8266: Remove pin_id field from C pin object.
...
This field is the same as phys_port and not needed.
2016-04-14 12:43:25 +01:00