summaryrefslogtreecommitdiff
path: root/esp8266
AgeCommit message (Collapse)Author
2016-10-07esp8266: Use mp_raise_OSError helper function.Damien George
2016-10-07esp8266: Add FLASH_MODE,FLASH_SIZE options for make deploy target.dmanso
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-06esp8266: Make PY_UHASHLIB_SHA1 config depend on PY_USSL and SSL_AXTLS.Damien George
SHA1 can only be supported if ussl module is compiled in, and it uses axtls.
2016-10-05esp8266/modpybrtc.c: Implement machine.RTC.alarm_left()puuu
Implementation of machine.RTC.alarm_left(), like described in the documentation.
2016-10-05esp8266/main: Put /lib before / in sys.path.Paul Sokolovsky
upip will use first non-empty component in sys.path as an install path (if MICROPYPATH envvar is not set, like it will be for baremetal targets).
2016-10-04esp8266/modmachine: idle(): Return number of CPU cycles spent idling.Paul Sokolovsky
Useful to better understand esp8266 inner workings and compare behavior in different cases.
2016-10-04extmod/machine_spi: Use delay_half, not baudrate, for internal timing.Damien George
The delay_half parameter must be specified by the port to set up the timing of the software SPI. This allows the port to adjust the timing value to better suit its timing characteristics, as well as provide a more accurate printing of the baudrate.
2016-10-03esp8266/moduos: Move stat/statvfs funcs to sit within #if VFS guard.Damien George
2016-10-03extmod/machine_spi: Factor out software SPI code from esp8266 to extmod.Damien George
2016-10-03extmod/machine_spi: Simplify SPI xfer function to only take one buf len.Damien George
There is no need to take src_len and dest_len arguments. The case of reading-only with a single output byte (originally src_len=1, dest_len>1) is now handled by using the output buffer as the input buffer, and using memset to fill the output byte into this buffer. This simplifies the implementations of the spi_transfer protocol function.
2016-09-29lib/interrupt_char: Factor out typical Ctrl+C handling from esp8266 port.Paul Sokolovsky
Utility functions for keyboard interrupt handling, to be reused across (baremetal) ports.
2016-09-27esp8266: Add uos.statvfs() to get filesystem status.Alex March
2016-09-22all: Remove 'name' member from mp_obj_module_t struct.Damien George
One can instead lookup __name__ in the modules dict to get the value.
2016-09-20esp8266: Extend system microsecond counter to 64-bits; use in ticks_ms.Damien George
So now ticks_ms can count up to the full 30 bits. Fixes issue #2412.
2016-09-19esp8266/esp_mphal: Add tentative change to mp_hal_stdin_rx_chr() to wait IRQ.Paul Sokolovsky
Instead of busy-looping waiting for UART input. Not enabled by default, needs more testing.
2016-09-18esp8266/ets_alt_task: ets_post: Should return 0 on success, !0 - failure.Paul Sokolovsky
2016-09-17py: Move frozen modules rules from esp8266 port for reuse across ports.Paul Sokolovsky
A port now just needs to define FROZEN_DIR var and add $(BUILD)/frozen.c to SRC_C to support frozen modules.
2016-09-17esp8266/Makefile: Rename SCRIPTDIR to FROZEN_DIR for consistency.Paul Sokolovsky
With FROZEN_MPY_DIR.
2016-09-08stmhal,cc3200,esp8266: Consistently use PWRON_RESET constant.Damien George
machine.POWER_ON is renamed to machine.PWRON_RESET to match other reset-cause constants that all end in _RESET. The cc3200 port keeps a legacy definition of POWER_ON for backwards compatibility.
2016-09-07esp8266/modmachine: Map PWR_ON_RESET to vendor's REASON_DEFAULT_RST.Paul Sokolovsky
When dealing with a board which controls chip reset with UART's DTR/RTS, we never see REASON_DEFAULT_RST (0), only REASON_EXT_SYS_RST (6). However, trying a "raw" module with with just TXD/RXD UART connection, on power up it has REASON_DEFAULT_RST as a reset reason.
2016-09-06esp8266/modnetwork: Fix wlan.scan() method so it returns all networks.Damien George
According to the Arduino ESP8266 implementation the first argument to the wifi scan callback is actually a bss_info pointer. This patch fixes the iteration over this data so the first 2 entries are no longer skipped. Fixes issue #2372.
2016-09-06esp8266/espneopixel: Disable IRQs during eps.neopixel_write.Torsten Wagner
Interrupts during neopixel_write causes timing problems and therefore wrong light patterns. Switching off IRQs should help to keep the strict timing schedule.
2016-09-05unix,stmhal,esp8266: When find'ing frozen files follow symbolic links.Damien George
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-05py: Add MICROPY_USE_INTERNAL_PRINTF option, defaults to enabled.Delio Brignoli
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-04esp8266/modmachine: Simplify SPI class implementation multiplexing.Paul Sokolovsky
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-04esp8266/modmachine: Don't expose internal SoftSPI and HSPI classes.Paul Sokolovsky
There functionality is available via standard SPI class.
2016-09-04esp8266/modmachine: Add WDT_RESET and SOFT_RESET constants.Paul Sokolovsky
Both tested to work. (WDT_RESET can be seen by issuing machine.disable_irq() and waiting for WDT reset, SOFT_RESET - by machine.reset()).
2016-09-03esp8266/modmachinewdt: Add .deinit() method.Paul Sokolovsky
2016-09-03esp8266/esp8266.ld: Move modmachinewdt to FlashROM.Paul Sokolovsky
2016-09-01esp8266/modpybhspi: Simplify HSPI driver by using 1 function for xfers.Damien George
2016-09-01esp8266/modpybspi: Use generic SPI helper methods to implement SPI.Damien George
2016-08-31unix,stmhal,esp8266: When find'ing frozen files don't use extra slash.Damien George
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-29esp8266/modules/ds18x20.py: Add support for DS18S20 devices.Damien George
2016-08-29esp8266/modules/onewire: Change onewire.read() to onewire.readinto().Damien George
This allows 1-wire drivers (eg DS18X20) to perform in-place operations and hence do less memory allocations.
2016-08-29esp8266/modules: Split onewire.py into OneWire and DS18X20 driver.Damien George
The OneWire class is now in its own onewire.py module, and the temperature sensor class is in its own ds18x20.py module. The latter is renamed to DS18X20 to reflect the fact that it will support both the "S" and "B" variants of the device. These files are moved to the modules/ subdirectory to take advantage of frozen bytecode.
2016-08-28esp8266/modmachinewdt: Implement machine.WDT class.Paul Sokolovsky
2016-08-26esp8266/modous: Add os.umount method to unmount a filesystem.Radomir Dopieralski
This is an object-oriented approach, where uos is only a proxy for the methods on the vfs object. Some internals had to be exposed (the STATIC keyword removed) for this to work. Fixes #2338.
2016-08-25esp8266/hspi: Enable duplex operation of hardware SPIRadomir Dopieralski
Without this, spi.read(1, 0xff) would use 16 clock cycles, first to send 0xff and then to receive one byte, as visible with a logic analyzer.
2016-08-25esp8266/modpybrtc: Use 64-bit arithmetic when computing alarm expiry.Damien George
2016-08-20esp8266/esp_mphal: No longer disable watchdog on startup.Paul Sokolovsky
Disabling it was an omission from early development stages.
2016-08-19esp8266/modmachinespi: Add a factory method for SoftSPI/HSPIRadomir Dopieralski
2016-08-19esp8266/modpybhspi: Add a HSPI module for hardware SPI supportRadomir Dopieralski
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-15ports: Remove typedef of machine_ptr_t, it's no longer needed.Damien George
This type was used only for the typedef of mp_obj_t, which is now defined by the object representation. So we can now remove this unused typedef, to simplify the mpconfigport.h file.
2016-08-14esp8266/mpconfigport.h: Enable support for all special methods.Paul Sokolovsky
2016-08-10esp8266: PULL_UP is not supported on Pin(16), so raise an exception.Damien George
2016-08-10esp8266: Fix reading of pin object for GPIO16.Damien George
Pin(16) now works as an input.
2016-08-09esp8266/modules/flashbdev: Start filesystem at 0x90000.Paul Sokolovsky
To accommodate growing firmware.
2016-08-09esp8266/esp8266.ld: Increase firmware image size to 0x90000 (576K).Paul Sokolovsky
Of them, 0x87000 is irom0 segment. This is required to ship increasing number of modules and examples developed in teh course of ESP8266 port project.
2016-08-07esp8266/modmachine: Implement dummy sleep() function.Paul Sokolovsky
2016-08-07esp8266/modutime: Actually implement ticks_cpu().Paul Sokolovsky