Paul Sokolovsky
b1dfdaf6cb
py/ringbuf.h: Add reusable ring buffer class.
...
Features inline get/put operations for the highest performance. Locking
is not part of implementation, operation should be wrapped with locking
externally as needed.
2016-03-30 14:48:31 +03:00
Paul Sokolovsky
f50d9477c1
docs: network: esp8266: .scan() is now synchronous and returns result list.
2016-03-30 11:56:20 +03:00
Paul Sokolovsky
d7019d0628
docs: network: esp8266: status is WLAN object method.
2016-03-30 11:53:45 +03:00
Damien George
9475cc59e6
esp8266: Support synchronous wifi scanning.
...
That is: aps = if0.scan()
TODO: make sure that returned list has tuple with values in "standard"
order (whatever that standard is).
2016-03-30 11:35:03 +03:00
Damien George
2599672384
py/parsenum: Use pow function to apply exponent to decimal number.
...
Pow is already a dependency when compiling with floats, so may as well
use it here to reduce code size and speed up the conversion for most
cases.
2016-03-29 22:12:07 +01:00
Damien George
e1e7657277
py/formatfloat: Fix further cases of buffer overflow in formatting.
...
Includes extensive test cases to catch hopefully all cases where
buffer might overflow.
2016-03-29 22:07:15 +01:00
Damien George
03b8bb7ec9
py/formatfloat: Fix case of float format where leading digit was "10".
...
When taking the logarithm of the float to determine the exponent, there
are some edge cases that finish the log loop too large. Eg for an
input value of 1e32-epsilon, this is actually less than 1e32 from the
log-loop table and finishes as 10.0e31 when it should be 1.0e32. It
is thus rendered as :e32 (: comes after 9 in ascii).
There was the same problem with numbers less than 1.
2016-03-29 22:03:13 +01:00
Paul Sokolovsky
d88250c06e
esp8266: Reduce heap size for now to avoid random segfaults on WiFi connect.
2016-03-29 21:14:41 +03:00
Paul Sokolovsky
c4506ed869
esp8266: Let esp8266 "os" messages go to standard (REPL) UART.
...
That's definitely helpful for debugging.
2016-03-29 21:10:10 +03:00
Paul Sokolovsky
402a743821
esp8266/esp_mphal: Add support for debug UART-only output.
...
Helpful when debugging dupterm support (because otherwise all output is
spooled to dupterm too).
To use:
mp_printf(&mp_debug_print, "...");
2016-03-29 11:48:43 +03:00
Paul Sokolovsky
8fc5e56a6a
esp8266: Enable uos.dupterm() method.
2016-03-29 11:41:23 +03:00
Paul Sokolovsky
c961889e34
esp8266: Add basic support for duplicating REPL output.
2016-03-29 11:13:32 +03:00
Damien George
6ca17c1922
esp8266: Implement os.urandom function.
...
Uses what is suspected to be a hardware random number generator.
2016-03-29 10:29:57 +03:00
Paul Sokolovsky
b4070ee8a4
esp8266: Allow to build without FatFs support again.
2016-03-28 21:35:41 +03:00
Paul Sokolovsky
2f02302e22
esp8266: Support importing modules from filesystem.
2016-03-28 18:39:34 +03:00
danicampora
193795398d
docs: Correct pin interrupt example code for the WiPy.
2016-03-28 13:12:58 +02:00
Damien George
71d40f132d
esp8266: Zero out fs_user_mount state on (soft) reset.
...
Otherwise device stays mounted on soft reset and leads to corruption
(since block device object is now gone).
2016-03-28 13:28:41 +03:00
Paul Sokolovsky
9edd736ee6
esp8266/moduos: Add os.remove(), proxying to VFS object.
2016-03-28 12:50:07 +03:00
Paul Sokolovsky
e8e116e7fc
esp8266/moduos: Factor out VFS method proxy helper.
2016-03-28 12:44:36 +03:00
Paul Sokolovsky
8b08a0d9ed
esp8266/moduos: Add listdir() proxy for MP_STATE_PORT(fs_user_mount)[0].
...
I.e. os.listdir(...) will redirect to
MP_STATE_PORT(fs_user_mount)[0].listdir(...).
2016-03-28 12:29:47 +03:00
Damien George
61230e007d
esp8266/moduos: Use mp_rom_map_elem_t for static const dictionary.
2016-03-28 12:08:36 +03:00
Paul Sokolovsky
b01a373adb
esp8266: deploy: Use --flash_size=8m option to esptool.py.
...
Most esp8266 modules have at least 1MB (8Mbit) of flash. If not set, vendor
functions allow to access only first 512K.
2016-03-28 11:28:16 +03:00
Paul Sokolovsky
cd6194aefc
esp8266/esp8266.ld: Put FatFs to FlashROM.
2016-03-27 17:15:25 +03:00
Paul Sokolovsky
374654f2b8
esp8266: Enable FatFs support.
2016-03-27 17:13:47 +03:00
Paul Sokolovsky
fe9bc0c573
esp8266/README: Update for the current status of the port.
2016-03-27 16:10:58 +03:00
Paul Sokolovsky
bbc65d4eda
esp8266/modesp: flash_read(): Accept buffer to read to as a second argument.
2016-03-27 15:34:35 +03:00
Paul Sokolovsky
fd86bf5917
esp8266/modesp: flash_write(): Writes in multiples of 4 bytes.
2016-03-27 15:32:58 +03:00
Paul Sokolovsky
53302f1616
esp8266: Set up UART handling task soon into init process.
...
Otherwise, events may be posted to non-initialized task, which leads to
segfaults.
2016-03-27 14:33:17 +03:00
Paul Sokolovsky
651a188299
extmod/vfs_fat_diskio: Actually support sectors != 512 with Python blockdevs.
2016-03-27 14:21:06 +03:00
Paul Sokolovsky
13394a632d
unix/unix_mphal: Hack to make uos.dupterm() actually work.
...
See https://github.com/micropython/micropython/issues/1736 for the
list of complications. This workaround instead of duplicating REPL
to another stream, switches to it, because read(STDIN) we use otherwise
is blocking call, so it and custom REPL stream can't be used together.
2016-03-27 14:02:03 +03:00
Paul Sokolovsky
53ad5edc01
py/stream: Fix stupid thinko with variable naming/shadowing.
2016-03-27 12:58:33 +03:00
Paul Sokolovsky
87c783b454
docs/esp8266: esp.mac() replaced with network.WLAN.mac().
2016-03-27 06:59:39 +03:00
Paul Sokolovsky
679fe0abae
docs/esp8266: esp.wifi_mode() replaced with network.WLAN.active().
2016-03-27 06:59:00 +03:00
Paul Sokolovsky
eda8746324
docs/esp8266: phy_mode() moved to network module.
2016-03-27 06:58:06 +03:00
Paul Sokolovsky
935e021250
esp8266: Put modpybi2c.o to FlashROM.
2016-03-26 10:59:25 +02:00
Damien George
c33a76059f
esp8266/tests: Add neopixel.py test.
2016-03-26 10:55:29 +02:00
Damien George
3962766be0
esp8266: Add esp.neopixel_write function to bit-bang WS2812 data.
2016-03-26 10:55:21 +02:00
Damien George
b62beadae0
esp8266: Link ADC class into machine module.
2016-03-26 00:41:37 +02:00
Paul Sokolovsky
f71c0699a5
esp8266: Put utils.o to FlashROM.
2016-03-26 00:39:51 +02:00
Paul Sokolovsky
9c7e3353e5
esp8266: Put lexerstr32.o into FlashROM.
2016-03-26 00:39:02 +02:00
Paul Sokolovsky
ba640bde55
esp8266/esppwm.c: Fix IRQ handler prototype.
2016-03-26 00:34:28 +02:00
Damien George
632d8efa05
esp8266: Add PWM support.
...
PWM implementation uses a timer and interrupts (FRC1), taken from
Espressif's/NodeMCU's implementation and adapted for our use.
8 channels are supported, on pins 0, 2, 4, 5, 12, 13, 14, 15.
Usage:
import machine
pwm0 = machine.PWM(machine.Pin(0))
pwm0.freq(1000)
pwm0.duty(500)
Frequency is shared (ie the same) for all channels. Frequency is
between 1 and 1000. Duty is between 0 and 1023.
2016-03-26 00:32:37 +02:00
Damien George
82b95f625e
esp8266: Implement software SPI class.
...
Supports speeds up to 500k baud, polarity=0/1, phase=0/1, and using any
pins. Only supports MSB output at the moment.
2016-03-25 23:28:13 +02:00
Paul Sokolovsky
91031a75a1
extmod/modlwip: lwip_socket_setsockopt: Handle option value properly.
2016-03-25 20:53:52 +02:00
Paul Sokolovsky
4332d72fd8
extmod/modlwip: Add lwip->POSIX error map for lwIP 1.4.0.
...
Between 1.4.0 and 1.4.1, lwIP errors were renumbered.
2016-03-25 20:32:01 +02:00
Paul Sokolovsky
de0c84ebf1
extmod/modlwip: lwip_tcp_send: Handle properly send buffer full condition.
...
Per POSIX http://pubs.opengroup.org/onlinepubs/9699919799/functions/send.html :
"If space is not available at the sending socket to hold the message to be
transmitted, and the socket file descriptor does not have O_NONBLOCK set,
send() shall block until space is available. If space is not available at the
sending socket to hold the message to be transmitted, and the socket file
descriptor does have O_NONBLOCK set, send() shall fail [with EAGAIN]."
2016-03-25 18:38:13 +02:00
Paul Sokolovsky
5e75f335e6
extmod/modlwip: Implement setsocketopt(SO_REUSEADDR).
2016-03-25 17:44:24 +02:00
Paul Sokolovsky
0cb10b5220
docs/esp8266/quickref: Add note about GPIO16.
2016-03-25 16:48:15 +02:00
Paul Sokolovsky
159f1aaca8
docs/esp8266/quickref: Note that timers supported are virtual ones.
2016-03-25 16:44:13 +02:00
Paul Sokolovsky
e589cddcd4
docs/esp: Remove getaddrinfo(), now in socket module as expected.
2016-03-25 16:39:18 +02:00