dmanso
0363e1d7b5
esp8266: Add FLASH_MODE,FLASH_SIZE options for make deploy target.
...
Added options to make deploy so it can be used for ESP8266 boards with
other flash configurations. For example NodeMCU DEVKIT V1.0 can now use:
$ make FLASH_MODE=dio FLASH_SIZE=32m deploy
2016-10-07 13:18:48 +11:00
Paul Sokolovsky
6ab2c5e6cc
lib/interrupt_char: Factor out typical Ctrl+C handling from esp8266 port.
...
Utility functions for keyboard interrupt handling, to be reused across
(baremetal) ports.
2016-09-29 10:15:38 -07:00
Paul Sokolovsky
f28efa1971
py: Move frozen modules rules from esp8266 port for reuse across ports.
...
A port now just needs to define FROZEN_DIR var and add $(BUILD)/frozen.c
to SRC_C to support frozen modules.
2016-09-17 21:00:40 +03:00
Paul Sokolovsky
8ae885a0c6
esp8266/Makefile: Rename SCRIPTDIR to FROZEN_DIR for consistency.
...
With FROZEN_MPY_DIR.
2016-09-17 21:00:04 +03:00
Damien George
9526e24234
unix,stmhal,esp8266: When find'ing frozen files follow symbolic links.
...
It's useful to be able to use symbolic links to add files and directories
to the set of scripts to be frozen.
2016-09-05 12:35:05 +10:00
Delio Brignoli
e2ac8bb3f1
py: Add MICROPY_USE_INTERNAL_PRINTF option, defaults to enabled.
...
This new config option allows to control whether MicroPython uses its own
internal printf or not (if not, an external one should be linked in).
Accompanying this new option is the inclusion of lib/utils/printf.c in the
core list of source files, so that ports no longer need to include it
themselves.
2016-09-05 12:18:53 +10:00
Paul Sokolovsky
dba40afa70
esp8266/modmachine: Simplify SPI class implementation multiplexing.
...
modpybhspi now does the needed multiplexing, calling out to modpybspi
(bitbanging SPI) for suitable peripheral ID's. modmachinespi (previous
multiplexer class) thus not needed and removed.
modpybhspi also updated to following standard SPI peripheral naming:
SPI0 is used for FlashROM and thus not supported so far. SPI1 is available
for users, and thus needs to be instantiated as:
spi = machine.SPI(1, ...)
2016-09-04 20:33:11 +03:00
Damien George
9c04ef2a67
unix,stmhal,esp8266: When find'ing frozen files don't use extra slash.
...
This extra forward slash for the starting-point directory is unnecessary
and leads to additional slashes on Max OS X which mean that the frozen
files cannot be imported.
Fixes #2374 .
2016-08-31 15:12:57 +10:00
Paul Sokolovsky
263aaa7030
esp8266/modmachinewdt: Implement machine.WDT class.
2016-08-28 14:48:49 +03:00
Radomir Dopieralski
d076fae219
esp8266/modmachinespi: Add a factory method for SoftSPI/HSPI
2016-08-19 21:19:59 +03:00
Radomir Dopieralski
8e7dfea803
esp8266/modpybhspi: Add a HSPI module for hardware SPI support
...
This module uses ESP8266's SPI hardware, which allows much higher
speeds. It uses a library from
https://github.com/MetalPhreak/ESP8266_SPI_Driver
2016-08-19 21:19:59 +03:00
Paul Sokolovsky
4d22ade102
esp8266: Enable btree module.
2016-07-31 02:39:59 +03:00
Paul Sokolovsky
6aa7c805cc
esp8266: Cache Xtensa-built libaxtls.a in local build dir.
...
Allows to build the library variant for other archs in parallel.
2016-07-16 04:56:23 +03:00
Paul Sokolovsky
be313ea215
esp8266: Select axTLS for SSL implementation, following recent refactor.
2016-07-13 01:59:41 +03:00
Damien George
db80c0ed46
esp8266: Enable frozen bytecode, with scripts in modules/ subdir.
...
To start with, the critical scripts _boot.py and flashbdev.py are frozen
to improve performance and reduce RAM consumption.
Saves about 1000 bytes of heap RAM for a bare boot with filesystem.
2016-06-29 13:59:19 +01:00
Paul Sokolovsky
236838a9fc
esp8266/Makefile: Enable --verify option for esptool.py write_flash.
...
Based on my experience, there's rather non-zero chance to have an image be
flashed incorrectly. As --verify option is now works well in teh latest
esptool.py, enable it by default.
2016-06-12 18:50:24 +03:00
Paul Sokolovsky
74e6c0337d
esp8266/Makefile: Document "disable" value for UART_OS.
2016-05-27 00:44:05 +03:00
Damien George
45f3416816
esp8266: Enable DHT C-level driver.
...
Exposed as esp.dht_readinto. Probably should go somewhere less
port-specific.
2016-05-26 17:11:43 +01:00
misterdanb
a0a08b4be1
esp8266: Add APA102 serial individually controllable LEDs support.
...
APA102 is a new "smart LED", similar to WS2812 aka "Neopixel".
2016-05-19 22:29:11 +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
b639ce27c7
esp8266/help: Implement help() builtin.
2016-04-29 00:17:11 +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
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
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
6149ce01f8
esp8266/Makefile: Add target to build axTLS.
2016-04-27 00:35:13 +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
Damien George
73ccb3fc5b
esp8266: Adapt port to use new auto-qstr generation.
2016-04-16 13:20:02 +01:00
Paul Sokolovsky
4f811d0e4c
esp8266: Enable input() builtin.
2016-04-15 00:08:39 +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
a525493e40
esp8266: Switch from using custom I2C driver to generic extmod one.
2016-04-12 14:06:54 +01:00
Damien George
1a0a323ca8
esp8266: Add initial implementation of machine.UART.
...
Currently UART(0) and UART(1) are exposed and only uart.write works.
2016-04-06 19:45:52 +03:00
Paul Sokolovsky
919b70b7ec
esp8266: Switch back to flashing combined firmware (single file).
...
With gap between segments minimized, there's not much padding to flash,
so no big speed overhead.
2016-04-03 15:48:46 +03:00
Paul Sokolovsky
8d2bcaf3cd
esp8266: Minimize gap between Inst/DataRAM segments and FlashROM segment.
...
With .rodata being in FlashROM now, gap can be much smaller now. InstRAM
can be max 32K, and with segment headers, that already makes it more than
32K. Then there's some .data still, and the next Flash page boundary is
0x9000. That figure should be more or less future-proof.
TODO: Refactor makeimg to take FlashROM segment offset from file name.
2016-04-03 15:45:14 +03:00
Paul Sokolovsky
ef0c5db2ed
esp8266: Move .rodata where it belongs with -mforce-l32 help.
2016-04-03 00:51:51 +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
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
374654f2b8
esp8266: Enable FatFs support.
2016-03-27 17:13:47 +03: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
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
Damien George
78d0dde562
esp8266: Add onewire helper functions as C module.
...
Includes functions to read and write bits and bytes.
2016-03-24 17:33:42 +02:00
Damien George
dd32f02cc3
esp8266: Add basic I2C driver, with init and writeto methods.
...
Tested and working with SSD1306 I2C display.
2016-03-24 11:17:17 +02:00
Paul Sokolovsky
9d7b871f58
esp8266: Store frozen modules in FlashROM.
...
Requires special lexer to access their contents.
2016-03-17 23:06:47 +08:00
Paul Sokolovsky
e5c39a3a9e
esp8266: Switch to lwIP built from source.
...
Using https://github.com/pfalcon/esp-open-lwip project.
2016-03-12 11:45:53 +07:00
Damien George
932f07ccf5
esp8266: Rejig Makefile so extmod/modlwip.o is placed under build/.
2016-03-11 12:00:01 +07:00
Paul Sokolovsky
6e5c31c947
esp8266: Be sure to build ets_alt_task.
2016-03-11 09:43:39 +07:00