Paul Sokolovsky
418faae8f7
esp8266/scripts/webrepl_setup: Add max password length check.
...
modwebrepl truncates password to 9 chars, and that led people to confusion.
2016-05-17 02:21:45 +03:00
Paul Sokolovsky
21ec1fd850
esp8266/scripts/webrepl_setup: Show password placeholder char.
...
That was the intent for the initial user setup, but didn't work before
due to lwIP issues. Enable now that they're fixed.
2016-05-17 00:01:41 +03:00
Paul Sokolovsky
7327d5f6f7
esp8266/scripts/port_diag: Add network diagnostic output.
2016-05-16 23:52:58 +03:00
Robert HH
a676a41cb7
esp8266/moduos.c: Addition of the rename method to module uos.
...
That one was missing in the module, even if it was available in the
vfs object. The change consist of adding the name and preparing the
call to the underlying vfs module, similar to what was already
implemented e.g. for remove.
Rename is useful by itself, or for instance for a safe file replace,
consisting of the sequence:
write to a temp file
delete the original file
rename the temp file to the original file's name
2016-05-16 13:19:13 +02:00
Damien George
0d6d315ba6
esp8266: Change to use internal errno's.
2016-05-12 12:49:36 +01:00
Damien George
7e1f580910
esp8266: Enable uerrno module, weak linked also as errno.
2016-05-10 23:30:39 +01:00
Damien George
4f2ba9fbdc
esp8266: Convert to use new MP_Exxx errno symbols.
...
These symbols are still defined in terms of the system Exxx symbols, and
can be switched to internal numeric definitions at a later stage.
Note that extmod/modlwip still uses many system Exxx symbols.
2016-05-10 23:30:39 +01:00
Paul Sokolovsky
d60cb8e180
esp8266/help: Add "sta_if.active(True)" command.
...
As reported on the forum by Roberthh.
2016-05-10 23:21:32 +03:00
Paul Sokolovsky
f16bec6bc9
esp8266/mpconfigport: Reduce various parser-related allocation params.
...
This gives noticeable result for parsing simple input (modelled on 32-bit
unix port):
Before:
>>> micropython.mem_total()
3360
>>> micropython.mem_total()
4472
After:
>>> micropython.mem_total()
3072
>>> micropython.mem_total()
4052
However, effect on parsing large input is much less conclusive, e.g.:
Before:
>>> micropython.mem_total()
3376
>>> import pystone_lowmem
>>> micropython.mem_total()
33006
delta=29630
After:
>>> micropython.mem_total()
3091
>>> import pystone_lowmem
>>> micropython.mem_total()
32509
delta=29418
2016-05-10 15:38:31 +03:00
Paul Sokolovsky
de5e0ed2e0
esp8266/main: Bump heap size to 28K.
...
This is kind of compensation for 4K FatFs buffer size which is eaten away
from it on FS mount. This should still leave enough of networking ("OS")
heap.
2016-05-09 19:02:40 +03:00
Paul Sokolovsky
13a1acc7e2
esp8266/scripts/webrepl: Add start_foreground() method.
...
Starts WebREPL server in foreground and waits for (single) connection.
2016-05-08 20:01:15 +03:00
Noah Rosamilia
2724bd4a94
esp8266/scripts/webrepl: Add optional password argument to webrepl.start()
...
This commit fixes issue #2045
2016-05-07 22:45:08 +03:00
Mike Causer
13d06a83e1
esp8266/scripts/: Add fill() to NeoPixel
2016-05-07 21:15:33 +03:00
Paul Sokolovsky
8db61e5b5a
esp8266/scripts/inisetup: Don't start WebREPL on boot in master branch.
...
It interferes with running testsuite. master branch should be optimized for
development, so any features which interfere with that, would need to be
disabled by default.
2016-05-07 20:04:45 +03:00
Paul Sokolovsky
df2b1a4758
esp8266/scripts/: Remove use of pin.PULL_NONE.
...
This constant is no longer part of hardware API (replaced with just None),
and is a default, so not needed in calls.
2016-05-05 23:47:37 +03:00
Paul Sokolovsky
fb5017f9dc
esp8266/main: Set sys.path to ["", "/", "/lib"].
2016-05-03 18:25:27 +03:00
Damien George
496a601c3b
esp8266: Shrink help text by a few lines, to fit in smaller windows.
2016-05-03 15:54:57 +01:00
Paul Sokolovsky
f873a5005a
esp8266/scripts/ntptime: Add simple NTP client.
...
.time() returns seconds since MicroPython epoch (2000-01-01 00:00UTC),
.settime() sends current system time, assuming UTC timezone.
2016-05-03 16:47:42 +03:00
Damien George
8e130fcf2b
esp8266/modpybpin: Make pin.irq() methods take keyword args.
2016-05-03 13:47:10 +01:00
Damien George
8a3e9036eb
esp8266/modpybpin: Use None instead of PULL_NONE for no-pull config.
2016-05-03 13:13:56 +01:00
Damien George
9df6b3a2c2
esp8266/modpybpin: Use enum+array instead of struct for parsing args.
2016-05-03 12:44:28 +01:00
Damien George
b539a61490
esp8266/scripts/neopixel.py: Swap red and green in pixel accessor.
2016-05-03 11:17:37 +01:00
Paul Sokolovsky
5e94f0b43a
esp8266/scripts/inisetup: Update for nic.mac() method being gone.
2016-05-03 02:16:42 +03:00
Paul Sokolovsky
35e63f0007
esp8266/modnetwork: Remove .mac() method, move to .config("mac").
...
Querying/setting MAC address is pretty adhoc operation to belong to
.config() instead of taking a whole method on its own.
2016-05-03 01:02:14 +03:00
Paul Sokolovsky
3944d3511f
esp8266/scripts/inisetup: Enable WebREPL auto-start on boot.
2016-05-03 00:38:47 +03:00
Paul Sokolovsky
76c81cd5a6
esp8266/modesp: Add malloc() and free() functions.
...
Useful for testing fragmentation issues in OS heap. E.g. freemem() may
report large amount, but is it possible to actually allocate block of
a given size? Issue malloc() (followed by free()) to find out.
2016-05-03 00:35:11 +03:00
Paul Sokolovsky
2123ced3f4
esp8266/modesp: Add esf_free_bufs() debugging function.
...
Return number of free inernal WiFi buffers.
2016-05-03 00:26:22 +03:00
Paul Sokolovsky
3d830415bc
esp8266/esp_mphal: Add ets_esf_free_bufs(), etc. functions.
...
Returning free number of various WiFi driver packet buffers.
2016-05-03 00:18:14 +03:00
Paul Sokolovsky
7b7c99fec1
esp8266/modnetwork: Remove deprecated wifi_mode().
...
Network interfaces are now controlled individually using .active() method.
2016-05-03 00:09:23 +03:00
Damien George
9215cdc7fd
esp8266: Change platform name from ESP8266 to esp8266.
...
The port name is lowercase, and this change is made for consistency with
the docs and other ports.
2016-05-02 18:54:46 +01:00
Paul Sokolovsky
13d9d50fea
esp8266/scripts/webrepl_setup: Reject too short passwords.
2016-05-02 18:48:32 +03:00
Paul Sokolovsky
26fd0ac571
esp8266/Makefile: Be sure to pass cross-compiling AR when building axtls.
...
Fixes build under MacOSX.
2016-05-02 01:22:42 +03:00
Paul Sokolovsky
9dd2c92d01
esp8266/README: Mention WebREPL.
2016-04-30 23:02:54 +03:00
Paul Sokolovsky
c1d1c562f3
esp8266/scripts/webrepl: Add "first connection" mode to setup password.
...
If there's no port_config.py file, or it lacks WEBREPL_PASS variable,
"initial setup mode" will be entered on first WebREPLconnection. User
will be asked for password, which will be written to
port_config.WEBREPL_PASS, and system restarted to work in normal mode
with password active.
2016-04-30 20:41:09 +03:00
Paul Sokolovsky
962d5a987f
esp8266/scripts/webrepl: Switch to using _webrepl object wrapper.
...
Handling of binary protocol is untested on esp8266 so far.
2016-04-30 20:39:35 +03:00
Paul Sokolovsky
006ffe1561
esp8266/scripts/webrepl: Connection ack prompt is now printed by modwebrepl.
...
After password is checked.
2016-04-30 20:38:05 +03:00
Paul Sokolovsky
6ddd9f3e2b
esp8266/scripts/inisetup: Create default boot.py in filesystem.
...
Currently it pre-imports webrepl, but doesn't start it.
2016-04-29 20:11:48 +03:00
Paul Sokolovsky
74f413bc60
esp8266/scripts/_boot: builtins is no longer used.
2016-04-29 20:04:17 +03:00
Paul Sokolovsky
d86d65f625
esp8266/scripts: Move all of initial setup to inisetup module.
2016-04-29 20:02:59 +03:00
Paul Sokolovsky
adae53d522
esp8266: Enable webrepl module.
2016-04-29 19:38:21 +03:00
Paul Sokolovsky
f8170db390
esp8266: Enable WebREPL file transfer rate limiting.
2016-04-29 19:15:26 +03:00
Paul Sokolovsky
22050a3ed0
esp8266/help: Add cheatsheet for basic WiFi configuration.
2016-04-29 00:34:08 +03:00
Paul Sokolovsky
b639ce27c7
esp8266/help: Implement help() builtin.
2016-04-29 00:17:11 +03:00
Aex Aey
af554b4ba2
esp8266/modnetwork: Make WLAN.ifconfig() read/write.
...
Allow setting ip, netmask, gw and dns server (also, allows getting dns).
For docs see: https://github.com/micropython/micropython/commit/06deec9
2016-04-28 23:51:04 +03:00
bsdfox
193c62226c
esp8266/README: Add recently required step of 'make axtls'.
2016-04-28 21:42:04 +03:00
Paul Sokolovsky
978a429aaa
esp8266: Set suitable values for axtls's RT_MAX_PLAIN_LENGTH & RT_EXTRA.
2016-04-28 17:45:22 +03:00
Damien George
8c3b5526ae
esp8266/scripts/neopixel.py: Remove test function from neopixel driver.
...
It takes up lots of room and isn't needed.
2016-04-28 13:37:17 +01:00
Damien George
1f7cec944e
esp8266/scripts/onewire.py: Simplify and improve 1-wire driver.
...
Changes are:
- added OneWireError exception and used where errors can occur
- renamed read/write functions to use same names as C _onewire funcs
- read_bytes is now read, write_bytes is now write
- add ability to read/write DS18B20 scratch pad
- rename start_measure to convert_temp (since that's what it does)
- rename get_temp to read_temp (consistency with other read names)
- removed test function
2016-04-28 13:33:55 +01:00
Damien George
38358a096d
esp8266: Move onewire.py, neopixel.py drivers from tests/ to scripts/.
2016-04-28 12:36:45 +01:00
Damien George
a6aa35af09
esp8266: Move pyb.info() function to esp module and remove pyb module.
...
All functionality of the pyb module is available in other modules, like
time, machine and os. The only outstanding function, info(), is
(temporarily) moved to the esp module and the pyb module is removed.
2016-04-28 12:23:55 +01:00
Paul Sokolovsky
0785040593
esp8266/Makefile: Enable "ussl" module.
...
axTLS should be built first using "make axtls".
2016-04-28 00:48:38 +03:00
Paul Sokolovsky
941ddfe559
esp8266/Makefile: Support linking with axTLS built from source.
2016-04-28 00:48:38 +03:00
Damien George
8ed3a9eb9c
esp8266/tests/onewire.py: Don't run test on import.
2016-04-27 22:32:39 +01:00
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