<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/shared-bindings/busio, branch 4.0.0-alpha.5</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=4.0.0-alpha.5</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=4.0.0-alpha.5'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2018-12-04T20:05:39+00:00</updated>
<entry>
<title>allow KeyboardInterrupt on UART read; fix nrf UART pin claiming; rename feather 52840 UART pins</title>
<updated>2018-12-04T20:05:39+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2018-12-04T20:05:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=63cd9209f17c6807e96e5011c5dca9862d67da58'/>
<id>urn:sha1:63cd9209f17c6807e96e5011c5dca9862d67da58</id>
<content type='text'>
</content>
</entry>
<entry>
<title>UART changes: timeout in secs, write bytes, etc.</title>
<updated>2018-12-03T17:04:32+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2018-12-03T16:00:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=80db2cec99ca5c995a0302b1d6d00ad77cfcd736'/>
<id>urn:sha1:80db2cec99ca5c995a0302b1d6d00ad77cfcd736</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move atmel-samd to tinyusb and support nRF flash.</title>
<updated>2018-11-09T01:25:30+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2018-10-20T01:46:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=9d91111b1b6a1eee77a88b13faf695ee0c5caea3'/>
<id>urn:sha1:9d91111b1b6a1eee77a88b13faf695ee0c5caea3</id>
<content type='text'>
This started while adding USB MIDI support (and descriptor support is
in this change.) When seeing that I'd have to implement the MIDI class
logic twice, once for atmel-samd and once for nrf, I decided to refactor
the USB stack so its shared across ports. This has led to a number of
changes that remove items from the ports folder and move them into
supervisor.

Furthermore, we had external SPI flash support for nrf pending so I
factored out the connection between the usb stack and the flash API as
well. This PR also includes the QSPI support for nRF.
</content>
</entry>
<entry>
<title>round SPI freq down; check max freq</title>
<updated>2018-10-03T01:06:40+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2018-10-03T01:06:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=21d331c8cc54855897549ebcbcf9983235d98b2e'/>
<id>urn:sha1:21d331c8cc54855897549ebcbcf9983235d98b2e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>nrf: remove error check for SPI baudrate too high; round to nearest baudrate</title>
<updated>2018-10-01T22:54:13+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2018-10-01T22:54:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=aa95526428edb0196029587eb1b84fed544bbad8'/>
<id>urn:sha1:aa95526428edb0196029587eb1b84fed544bbad8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>merge 3.0.2 to master</title>
<updated>2018-09-18T19:38:12+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2018-09-18T19:38:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=bc510e714f4fde7af949c525ced5c8a4db53bce0'/>
<id>urn:sha1:bc510e714f4fde7af949c525ced5c8a4db53bce0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>UART fixes and enhancements; default board object fix</title>
<updated>2018-09-12T21:19:43+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2018-09-12T21:19:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6a046f55c449da59cf4641ef4cf34c6b1b63da44'/>
<id>urn:sha1:6a046f55c449da59cf4641ef4cf34c6b1b63da44</id>
<content type='text'>
</content>
</entry>
<entry>
<title>UART: Always allocate UART objects in the long-lived pool</title>
<updated>2018-08-09T00:21:57+00:00</updated>
<author>
<name>Jeff Epler</name>
<email>jepler@gmail.com</email>
</author>
<published>2018-07-31T01:49:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e1b4e9b7c7cdd7a022a5ab113b68c8fa6be2c74d'/>
<id>urn:sha1:e1b4e9b7c7cdd7a022a5ab113b68c8fa6be2c74d</id>
<content type='text'>
Particularly when they have buffers that are written via IRQ or DMA,
UART objects do not relocate gracefully.  If such an object is
relocated to the long-lived pool after its original creation, the
IRQ or DMA will write to an unexpected location within the Python
heap, leading to a variety of symptoms.  The most frequent symptom
is inability to read from the UART.

Consider the particular case of atmel-samd: usart_uart_obj_t
contains a usart_async_descriptor contains a _usart_async_device.
In _sercom_init_irq_param the address of this contained
_usart_async_device is assigned to a global array
sercom_to_sercom_dev which is later used from the interrupt context
_sercom_usart_interrupt_handler to store the received data in the
right ring buffer.

When the UART object is relocated to the long-lived heap, there's no
mechanism to re-point these internal pointers, so instead take the
cowardly way and allocate the UART object as long-lived.

Happily, almost all UART objects are likely to be long-lived, so
this is unlikely to have a negative effect on memory usage or heap
fragmentation.

Closes: #1056
</content>
</entry>
<entry>
<title>Support internationalisation.</title>
<updated>2018-08-07T21:58:57+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2018-07-31T23:53:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=933add6cd833bb6ba6682ad2b6eb478871415ff5'/>
<id>urn:sha1:933add6cd833bb6ba6682ad2b6eb478871415ff5</id>
<content type='text'>
</content>
</entry>
<entry>
<title> add timeout keyword to I2C - for bitbangio - ignored for busio</title>
<updated>2018-05-14T01:54:44+00:00</updated>
<author>
<name>Jerry Needell</name>
<email>jerryneedell@gmail.com</email>
</author>
<published>2018-05-14T01:54:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d6c26942a5fadeb95305c86a604233257a7858db'/>
<id>urn:sha1:d6c26942a5fadeb95305c86a604233257a7858db</id>
<content type='text'>
</content>
</entry>
</feed>
