aboutsummaryrefslogtreecommitdiff
path: root/shared-bindings
AgeCommit message (Collapse)Author
2017-04-20Switch to a shared piece of code to compute start and length of aScott Shawcroft
buffer from start, end and length. The old code miscomputed length leading to writing and reading from memory past the end of the buffer. Consolidating the code should make it easier to get right everywhere.
2017-04-13Correct PulseOut example code0.9.5Scott Shawcroft
2017-04-12atmel-samd: Rework status LED implementationScott Shawcroft
* Track status pin use by user code separately so it can take over the pins and then give them back. * Switch to hardware SPI for APA102 on Gemma and Trinket. * Merge microcontroller/types.h into microcontroller/Pin.h to better match approach going forwards.
2017-04-10Split up nativeio.0.9.4Scott Shawcroft
This was done to allow greatly granularity when deciding what functionality is built into each board's build. For example, this way pulseio can be omitted to allow for something else such as touchio.
2017-03-25Add low-level OneWire support class.Scott Shawcroft
This class focuses on the timing sensitive parts of the protocol. Everything else will be done by Python code. This also establishes that its OK to back a nativeio class with a bitbang implementation when no hardware acceleration exists. When it does, then bitbangio should be used to explicitly bitbang a protocol.
2017-03-24Add PulseIn support which can be used to measure a series of pulse widths.0.9.2Scott Shawcroft
This is useful for infrared input and DHT sensors.
2017-03-10Add PulseOut which can pulse a PWMOut for IR remote transmission.Scott Shawcroft
2017-03-10Fix duty_cycle constructor argument to PWMOut.Scott Shawcroft
2017-03-07shared-bindings: Do a pass on the docs and make sure keyword only arguments ↵Scott Shawcroft
make sense and are documented correctly. Fixes #109
2017-03-07shared-bindings: Reenable struct_time. It was turned off when playing with ↵Scott Shawcroft
LTO and never re-enabled.
2017-02-28shared-bindings: Fix two more try_locks. Copy and paste failed me.0.9.1Scott Shawcroft
2017-02-27atmel-samd: Add USB HID mouse and keyboard support.Scott Shawcroft
2017-02-26atmel-samd: Use link time optimization to reduce code size of builds whichScott Shawcroft
share space with the file system. "Express" builds with SPI flash crash the compiler for some reason so its currently disabled for them.
2017-02-24Make more type structures const to save RAM.Scott Shawcroft
2017-02-24Switch exception throwing to mp_raise helpers. It saves a little code space ↵Scott Shawcroft
each time to share the call.
2017-02-22Throw an error when sleep time is negative.Scott Shawcroft
2017-02-22Check that neopixel write is actually given a DigitalInOut.Scott Shawcroft
2017-02-19Save space by only supporting 800khz neopixels.Scott Shawcroft
2017-02-19Two I2C fixes:Scott Shawcroft
1) Bus error will be thrown on read/write errors with errno set. (Read didn't used to fail at all.) 2) try_lock correctly returns boolean whether lock was grabbed. Fixes #87
2017-02-19Switch enum-like attributes to all caps and add print support for them. Make ↵Scott Shawcroft
room for this functionality by adding a shared __enter__ function object. #76
2017-02-19Add print support to Pin. #83 #76Scott Shawcroft
2017-02-19Fix pin free check to ignore None objects. Fixes #89Scott Shawcroft
2017-02-19nativeio.SPI: Remove extraneous constructor args because they are in configure.Scott Shawcroft
2017-02-10SPI tweaks for SD Cards:Scott Shawcroft
* Always init SPI to 250k to start for SD cards. * Add ability to configure byte written during read. * Add ability to read and write to portions of buffers like existing I2C API.
2017-02-01Add more PWMOut examples and rename the duty constructor argumentScott Shawcroft
to duty_cycle so that its consistent with the attribute. Fixes #84
2017-01-30Add frequency changing support to PWMOut.Scott Shawcroft
You can either set it once up front, or set variable_frequency on custruction to indicate that the frequency must be able to change. This informs whether a timer can be shared amongst pins. This also adds persistent clock calibration on atmel-samd. Once the device has synced its clock frequency over USB it will remember that config value until USB is used again. This helps ensure the clock frequency is similar on and off USB. Lastly, this also corrects time.sleep() when on USB by correcting the tick counter.
2017-01-16More fixes to pin pull thanks to jerryn:Scott Shawcroft
* Correct atmel-samd pin pull state. * Correct conversion from python pull objects to C enum.
2017-01-16Fix pull kwarg DigitalInOut.switch_to_input and add example use to docs.Scott Shawcroft
Thanks to jerryn from the Adafruit Forum for finding the bug!
2017-01-12Fixup warnings from merge about undefined macro values, switch toScott Shawcroft
VM keyboard exception and switch to FATFS reader.
2017-01-08Correct monotonic.Scott Shawcroft
Fixes #69.
2017-01-05Link to the Bus Device docs.Scott Shawcroft
2017-01-05Improve docs and update to CircuitPython.Scott Shawcroft
2017-01-05Add time.struct_time support.Scott Shawcroft
2016-12-20atmel-samd: Improve TouchIn to allow for multiple simultaneous touch pads.Scott Shawcroft
2016-12-19atmel-samd: Add help() and remove mem_info functions from smallest builds to ↵Scott Shawcroft
make room.
2016-12-19atmel-samd: Add preliminary support for UARTSebastian Plamauer
2016-12-13Fix up Analog classes: unify them at 16 bits and adds reference_voltage memberScott Shawcroft
to make for easy conversion. Fixes #14.
2016-12-12atmel-samd: Basic capacitive touch button support.Scott Shawcroft
Currently only works on a single channel and is only enabled for boards with SPI flash. Only really designed for hardware testing at this point.
2016-12-07atmel-samd & esp8266: Make sure pins are not already in use.Scott Shawcroft
This prevents corrupting previous functional objects by stealing their pins out from under them. It prevents this by ensuring that pins are in default state before claiming them. It also verifies pins are released correctly and reset on soft reset. Fixes #4, instantiating a second class will fail. Fixes #29, pins are now reset too.
2016-12-02Add try_lock and unlock to I2C and SPI classes to make sure thingsScott Shawcroft
are shared well between threads and underlying MicroPython (SPI Flash for example.) It is recommended to use the bus device classes to manage the locks and other transaction state. https://github.com/adafruit/Adafruit_MicroPython_BusDevice Fixed #58 Fixed #59 Fixed #60
2016-12-01Fix two bugs found by clang:Scott Shawcroft
* PWMOut enter and exit weren't hooked up. * end couldn't be negative in I2C.
2016-11-29shared-bindings: Make MOSI and MISO optional for SPI.Scott Shawcroft
2016-11-29shared-bindings: Ensure pin objects are actually pins.Scott Shawcroft
Fixes #12
2016-11-29shared-bindings: Fix blinky example. Fixes #55Scott Shawcroft
2016-11-28shared-bindings: Stop using negative length at all. Having uint and int ↵Scott Shawcroft
mixed is confusing.
2016-11-28shared-bindings: Stop using max and min because C doesn't define them.Scott Shawcroft
2016-11-28Add start and end kwargs to writeto and readfrom_into so a single buffer can ↵Scott Shawcroft
be used to save memory.
2016-11-22Add uheap for debugging the size of objects. Still not perfect though.Scott Shawcroft
2016-11-21This introduces an alternative hardware API called nativeio structured ↵Scott Shawcroft
around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. Docs are here: http://tannewt-micropython.readthedocs.io/en/microcontroller/ It differs from upstream's machine in the following ways: * Python API is identical across ports due to code structure. (Lives in shared-bindings) * Focuses on abstracting common functionality (AnalogIn) and not representing structure (ADC). * Documentation lives with code making it easy to ensure they match. * Pin is split into references (board.D13 and microcontroller.pin.PA17) and functionality (DigitalInOut). * All nativeio classes claim underlying hardware resources when inited on construction, support Context Managers (aka with statements) and have deinit methods which release the claimed hardware. * All constructors take pin references rather than peripheral ids. Its up to the implementation to find hardware or throw and exception.
2016-11-01atmel-samd: Merge init into the constructor and check all availableScott Shawcroft
SERCOMs during initialization. Fixes #16. It was broken because the MISO pin used the second SERCOM.