summaryrefslogtreecommitdiffstatshomepage
path: root/esp8266
Commit message (Collapse)AuthorAge
* esp8266/README: Add link to docs.Paul Sokolovsky2016-04-03
|
* esp8266: Use VM_HOOK to call ets_loop_iter within the VM.Damien George2016-04-02
| | | | Starting with a divisor of 10, pystone_lowmem gives a score of 256.
* esp8266/uart: Get ctrl-C working now that event-based REPL is disabled.Damien George2016-04-01
|
* esp8266/uart: Comment out old, unused rx buffering code.Damien George2016-04-01
| | | | | | | This was originally used for non-event based REPL processing. Then it was unused when event-based processing was activated. But now that event based is disabled, and non-event based is back, there has been new ring buffer code to process the chars.
* esp8266: Switch to non event-driven REPL to support paste mode.Paul Sokolovsky2016-04-01
|
* esp8266: Support dedicated REPL loop (aka pull-style).Paul Sokolovsky2016-04-01
| | | | | | | | Event-driven loop (push-style) is still supported and default (controlled by MICROPY_REPL_EVENT_DRIVEN setting, as expected). Dedicated loop worked even without adding ets_loop_iter(), though that needs to be revisited later.
* esp8266: Disallow recursive calls to REPL.Paul Sokolovsky2016-04-01
| | | | | | | | | Before this change, if REPL blocked executing some code, it was possible to still input new statememts and excuting them, all leading to weird, and portentially dangerous interaction. TODO: Current implementation may have issues processing input accumulated while REPL was blocked.
* esp8266: Move PHY mode constants from modesp to modnetwork.Paul Sokolovsky2016-04-01
|
* esp8266: Reset term_obj on reboot.Damien George2016-03-31
| | | | | Also, term_obj can be NULL if socket enables REPL duplication signalling before os.dupterm is called, so it should be checked.
* esp8266: Implement input part of dupterm handling.Paul Sokolovsky2016-03-31
| | | | | | | | The idea is following: underlying interrupt-driven or push-style data source signals that more data is available for dupterm processing via call to mp_hal_signal_dupterm_input(). This triggers a task which pumps data between actual dupterm object (which may perform additional processing on data from low-level data source) and input ring buffer.
* esp8266: Switch back to accumulating input data via ring buffer.Paul Sokolovsky2016-03-30
| | | | | | | | But now it's generic ring buffer implemented via ringbuf.h, and is intended for any type of input, including dupterm's, not just UART. The general process work like this: an interrupt-driven input source puts data into input_buf, and then signals new data available via call to mp_hal_signal_input().
* esp8266: Fix issue when current repl line was garbage-collected.Paul Sokolovsky2016-03-30
| | | | Reference it from root pointers section.
* esp8266: Support synchronous wifi scanning.Damien George2016-03-30
| | | | | | | That is: aps = if0.scan() TODO: make sure that returned list has tuple with values in "standard" order (whatever that standard is).
* esp8266: Reduce heap size for now to avoid random segfaults on WiFi connect.Paul Sokolovsky2016-03-29
|
* esp8266: Let esp8266 "os" messages go to standard (REPL) UART.Paul Sokolovsky2016-03-29
| | | | That's definitely helpful for debugging.
* esp8266/esp_mphal: Add support for debug UART-only output.Paul Sokolovsky2016-03-29
| | | | | | | | | Helpful when debugging dupterm support (because otherwise all output is spooled to dupterm too). To use: mp_printf(&mp_debug_print, "...");
* esp8266: Enable uos.dupterm() method.Paul Sokolovsky2016-03-29
|
* esp8266: Add basic support for duplicating REPL output.Paul Sokolovsky2016-03-29
|
* esp8266: Implement os.urandom function.Damien George2016-03-29
| | | | Uses what is suspected to be a hardware random number generator.
* esp8266: Allow to build without FatFs support again.Paul Sokolovsky2016-03-28
|
* esp8266: Support importing modules from filesystem.Paul Sokolovsky2016-03-28
|
* esp8266: Zero out fs_user_mount state on (soft) reset.Damien George2016-03-28
| | | | | Otherwise device stays mounted on soft reset and leads to corruption (since block device object is now gone).
* esp8266/moduos: Add os.remove(), proxying to VFS object.Paul Sokolovsky2016-03-28
|
* esp8266/moduos: Factor out VFS method proxy helper.Paul Sokolovsky2016-03-28
|
* esp8266/moduos: Add listdir() proxy for MP_STATE_PORT(fs_user_mount)[0].Paul Sokolovsky2016-03-28
| | | | | I.e. os.listdir(...) will redirect to MP_STATE_PORT(fs_user_mount)[0].listdir(...).
* esp8266/moduos: Use mp_rom_map_elem_t for static const dictionary.Damien George2016-03-28
|
* esp8266: deploy: Use --flash_size=8m option to esptool.py.Paul Sokolovsky2016-03-28
| | | | | Most esp8266 modules have at least 1MB (8Mbit) of flash. If not set, vendor functions allow to access only first 512K.
* esp8266/esp8266.ld: Put FatFs to FlashROM.Paul Sokolovsky2016-03-27
|
* esp8266: Enable FatFs support.Paul Sokolovsky2016-03-27
|
* esp8266/README: Update for the current status of the port.Paul Sokolovsky2016-03-27
|
* esp8266/modesp: flash_read(): Accept buffer to read to as a second argument.Paul Sokolovsky2016-03-27
|
* esp8266/modesp: flash_write(): Writes in multiples of 4 bytes.Paul Sokolovsky2016-03-27
|
* esp8266: Set up UART handling task soon into init process.Paul Sokolovsky2016-03-27
| | | | | Otherwise, events may be posted to non-initialized task, which leads to segfaults.
* esp8266: Put modpybi2c.o to FlashROM.Paul Sokolovsky2016-03-26
|
* esp8266/tests: Add neopixel.py test.Damien George2016-03-26
|
* esp8266: Add esp.neopixel_write function to bit-bang WS2812 data.Damien George2016-03-26
|
* esp8266: Link ADC class into machine module.Damien George2016-03-26
|
* esp8266: Put utils.o to FlashROM.Paul Sokolovsky2016-03-26
|
* esp8266: Put lexerstr32.o into FlashROM.Paul Sokolovsky2016-03-26
|
* esp8266/esppwm.c: Fix IRQ handler prototype.Paul Sokolovsky2016-03-26
|
* esp8266: Add PWM support.Damien George2016-03-26
| | | | | | | | | | | | | | | | | 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.
* esp8266: Implement software SPI class.Damien George2016-03-25
| | | | | Supports speeds up to 500k baud, polarity=0/1, phase=0/1, and using any pins. Only supports MSB output at the moment.
* esp8266/README: Remove outdated reference to initial port heap size.Paul Sokolovsky2016-03-25
|
* esp8266: Add tests/onewire.py as a driver and test code for ds18b20 dev.Damien George2016-03-24
|
* esp8266: Add onewire helper functions as C module.Damien George2016-03-24
| | | | Includes functions to read and write bits and bytes.
* esp8266: Implement bit-bang I2C read, and add i2c.readfrom method.Damien George2016-03-24
| | | | I2C reading tested with TSL2561 luminosity sensor.
* esp8266: Clean up bit-bang I2C implementation.Damien George2016-03-24
| | | | | Changed from using set_sda_scl function to independent set_sda and set_scl functions.
* esp8266/modpybi2c: Add missing include.Paul Sokolovsky2016-03-24
|
* esp8266: Add basic I2C driver, with init and writeto methods.Damien George2016-03-24
| | | | Tested and working with SSD1306 I2C display.
* esp8266: Expose pin object as a public structure for use as C pin API.Damien George2016-03-24
| | | | | This is an initial attempt at making a simple C pin API for writing things like I2C drivers in C.