summaryrefslogtreecommitdiff
path: root/esp8266
AgeCommit message (Collapse)Author
2016-03-26esp8266: Link ADC class into machine module.Damien George
2016-03-26esp8266: Put utils.o to FlashROM.Paul Sokolovsky
2016-03-26esp8266: Put lexerstr32.o into FlashROM.Paul Sokolovsky
2016-03-26esp8266/esppwm.c: Fix IRQ handler prototype.Paul Sokolovsky
2016-03-26esp8266: Add PWM support.Damien George
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-25esp8266: Implement software SPI class.Damien George
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-25esp8266/README: Remove outdated reference to initial port heap size.Paul Sokolovsky
2016-03-24esp8266: Add tests/onewire.py as a driver and test code for ds18b20 dev.Damien George
2016-03-24esp8266: Add onewire helper functions as C module.Damien George
Includes functions to read and write bits and bytes.
2016-03-24esp8266: Implement bit-bang I2C read, and add i2c.readfrom method.Damien George
I2C reading tested with TSL2561 luminosity sensor.
2016-03-24esp8266: Clean up bit-bang I2C implementation.Damien George
Changed from using set_sda_scl function to independent set_sda and set_scl functions.
2016-03-24esp8266/modpybi2c: Add missing include.Paul Sokolovsky
2016-03-24esp8266: Add basic I2C driver, with init and writeto methods.Damien George
Tested and working with SSD1306 I2C display.
2016-03-24esp8266: Expose pin object as a public structure for use as C pin API.Damien George
This is an initial attempt at making a simple C pin API for writing things like I2C drivers in C.
2016-03-23esp8266: Enable auto-indent in REPL.Paul Sokolovsky
2016-03-23esp8266: Add "socket" and "usocket" aliases for lwip module.Paul Sokolovsky
2016-03-23esp8266: Enable non-blocking stream support.Paul Sokolovsky
2016-03-23esp8266: Enable more extmod's: uheapq, ure, uzlib.Damien George
2016-03-23esp8266: Add module weak link from json to ujson.Damien George
2016-03-23esp8266: Enable urandom module.Paul Sokolovsky
2016-03-23esp8266: Make mp_hal_delay_us work with new event framework.Damien George
2016-03-23esp8266: Update README with the latest features.Paul Sokolovsky
2016-03-17esp8266/ets_alt_task: Make FIRST_PRIO=0 to cover all task priorities.Damien George
FIRST_PRIO=2 works but using 0 is hopefully safer, and can anyway be optimised in the future.
2016-03-17esp8266: Store frozen modules in FlashROM.Paul Sokolovsky
Requires special lexer to access their contents.
2016-03-12esp8266: Switch to lwIP built from source.Paul Sokolovsky
Using https://github.com/pfalcon/esp-open-lwip project.
2016-03-11esp8266: Mention git submodule in build instructions for esp8266 port.Christopher Arndt
2016-03-11esp8266: Rejig Makefile so extmod/modlwip.o is placed under build/.Damien George
2016-03-11esp8266: Define MICROPY_EVENT_POLL_HOOK for the port.Paul Sokolovsky
2016-03-11esp8266: Be sure to build ets_alt_task.Paul Sokolovsky
2016-03-11esp8266/esp_mphal: Add higher-level event polling function.Paul Sokolovsky
ets_event_poll() polls both system events and uPy pending exception.
2016-03-11esp8266/ets_alt_task: Update for vendor SDK 1.5.0.Paul Sokolovsky
SDK 1.5.0 has a task with priority 3: ets_task(401001f4, 3, 3fff9808, 4). Recognizing SDK version requires the latets esp-open-sdk build.
2016-03-11esp8266/ets_alt_task: Be sure to "pop" event before calling its handler.Paul Sokolovsky
Otherwise, if handler calls recursive event loop, there's infinite recursion (because the loop calls the same handler on same event again).
2016-03-11esp8266: Feed WDT in ets_loop_iter().Damien George
2016-03-11esp8266: Add alternative event loop implementation.Paul Sokolovsky
This implementation provides the same interface and uses the same datastructures as used by BootROM, i.e. is a drop-in replacement for it. But it offers one advantage: it allows to run single iteration of event-pumping loop. Original BootROM function are renamed, prefixed with underscore. There's a switch which allows to use forward calls to them, for compatibility testing. The implementation also includes workarounds for hardware timer handler, and these workarounds may be SDK version specific.
2016-03-10esp8266/modnetwork: Add symbolic names for network interfaces: STA_IF & AP_IF.Paul Sokolovsky
These are expected to be passed to network.WLAN() to instantiate network interface objects.
2016-03-10esp8266/modnetwork: Introduce interface .config() method.Paul Sokolovsky
Allows to set (in case keyword args are given) or query (in case a single "symbolic keyword" (a string, value is the same as keyword)) arbitrary interface paramters (i.e. extensible and adaptable to various hardware). Example usage: ap_if = network.WLAN(1) ap_if.config(essid="MicroPython on Air") print(ap_if.config("essid"))
2016-03-10esp8266/modnetwork: Move config defines to the top.Paul Sokolovsky
2016-03-10esp8266/modnetwork: Add per-interface .active() method.Paul Sokolovsky
Allows to up/down interface when called with a boolean, or query current state if called without args. This per-interface method is intended to supersede adhoc network.wifi_mode() function.
2016-03-10esp8266: Move wifi_mode() and phy_mode() to network module.Paul Sokolovsky
2016-03-10esp8266/modnetwork: Allow to configure STA and AP interfaces separately.Paul Sokolovsky
On ESP8266, there're 2 different interfaces. Pretending it's not the case desn't make sense. So, network.WLAN() now takes interface id, and returns interface object. Individual operations are then methods of interface object. Some operations require i/f of specific type (e.g. .connect() makes sense only for STA), other are defined for any (e.g. .ifconfig(), .mac()).
2016-03-09esp8266: Move pyb.freq to machine.freq.Damien George
2016-03-08esp8266/main: Module to run on boot is "boot", not "main".Paul Sokolovsky
2016-03-08esp8266: Put more code in iROM section.Damien George
Also explicitly name the py/*.o files in the linker file, to enable easy testing of putting certain ones in iRAM.
2016-03-08esp8266/Makefile: Add define for ESP8266 lwIP.Paul Sokolovsky
2016-03-08esp8266: Enable modlwip.Damien George
2016-03-08esp8266: Don't gc-collect BSS.Paul Sokolovsky
None of the other ports do, since introduction of mp_state_ctx_t. In the case of current esp8266 port, heap is inside BSS, so scanning it picked up a lot of dead pointers.
2016-03-07esp8266: Enable stack overflow checking.Paul Sokolovsky
2016-03-06esp8266: Allow Makefile's BAUD variable to be overridden.Damien George
2016-03-05esp8266/uart: Add uart_flush() function.Paul Sokolovsky
2016-03-05esp8266: Support raising KeyboardInterrupt on Ctrl+C.Paul Sokolovsky