Commit Graph

537 Commits

Author SHA1 Message Date
Pontus Oldberg e23b272595 Added missing LDO control pin (SARA_PWR) 2022-01-08 16:39:48 +01:00
Dan Halbert 9d2a32d07e countio: add selectable rise and fall detection, pulls 2021-12-31 16:34:58 -05:00
Dan Halbert 8aafc734a4
Merge pull request #5789 from adafruit/7.1.x
Merge latest changes from 7.1.x
2021-12-28 18:12:29 -05:00
Scott Shawcroft 08d09ac493
Merge pull request #5613 from jepler/issue5418
clear out interrupt when freeing the timer
2021-12-28 10:57:58 -08:00
Dan Halbert 3bc48802b1
Merge pull request #5783 from jepler/longint-config
Centralize LONGINT_IMPL handling
2021-12-28 12:55:26 -05:00
Jeff Epler 1986d2ee71
clear out interrupt flags when disabling timer too 2021-12-27 16:42:41 -06:00
Jeff Epler f5fa4ae237
Merge pull request #5764 from dannystaple/patch-1
Fix RST formatting for readthedocs
2021-12-27 09:41:46 -07:00
Jeff Epler 1d13c4ccd1
Centralize LONGINT_IMPL handling
This closes #5782
2021-12-27 10:21:47 -06:00
Jeff Epler c1236fb4d6
Merge pull request #5766 from tannewt/rp2040_sideset_enable
Add sideset_enable support to PIO
2021-12-22 20:17:33 -07:00
Scott Shawcroft 827ad327a5
Only ignore warnings if in gcc >= 11 2021-12-22 18:21:18 -08:00
Scott Shawcroft 674c845fb6
Merge pull request #5760 from jepler/rename_under_typing
circuitpython_stubs: Use `circuitpython_typing` for cp-specific typing
2021-12-22 14:05:04 -08:00
Scott Shawcroft 3e13d4f5b5
Add sideset_enable support to PIO
This allows for UART TX via PIO
2021-12-22 12:00:19 -08:00
Jeff Epler 166793f843 circuitpython_stubs: Use `circuitpython_typing` for cp-specific typing
Installing stubs for a module named `_typing` seems like a dubious
decision.
2021-12-22 11:14:21 -06:00
Danny Staple 174a2cbf25
Fix RST formatting for readthedocs
And also a typo/grammar thing.
2021-12-22 17:03:58 +00:00
Scott Shawcroft 7c2e7bfeaa
Add alternative clock pin name to match silkscreen 2021-12-15 14:41:42 -08:00
Pierre Constantineau f3ec6ee760 tested hardware and cleaned-up commented out pin defs 2021-12-14 21:46:04 -06:00
Pierre Constantineau 162e253949 finalizing pin assignments prior to final hardware test 2021-12-14 09:45:39 -06:00
Pierre Constantineau 9119a32a5d fixed row0 and added encoder pins 2021-12-13 13:31:00 -06:00
Pierre Constantineau 86ddecfd4f merge main and resolve conflict 2021-12-10 16:57:50 -06:00
Pierre Constantineau dac71e684d moved aliased boards down to actual builds 2021-12-10 16:34:06 -06:00
Pierre Constantineau a043f65352 adding Pykey family of boards 2021-12-09 23:25:48 -06:00
Michael Himing d72311f76a Update xiao rp2040 pins 2021-12-10 09:39:31 +11:00
Scott Shawcroft b12d2063d0
Merge remote-tracking branch 'adafruit/7.1.x' into merge_7.1 2021-12-08 10:50:22 -08:00
Scott Shawcroft 3c8a05ebbf
Merge pull request #5673 from CytronTechnologies/add-maker-nano-rp2040-7.1.x
Add new board Maker Nano RP2040 to branch 7.1.x.
2021-12-08 10:33:57 -08:00
ZodiusInfuser 3ea1619816
Merge branch 'adafruit:main' into tiny2mb 2021-12-08 16:51:47 +00:00
ZodiusInfuser 201fae8342
Added final USB PID 2021-12-08 16:48:32 +00:00
Scott Shawcroft 121b22b0c5
Merge pull request #5666 from skerr92/add-odt-castaway2040
Add odt castaway2040
2021-12-06 14:44:33 -08:00
Scott Shawcroft 309faee334
Merge pull request #5519 from jpconstantineau/seeduino-xiao-rp2040
Add New Board - Seeeduino XIAO RP2040
2021-12-06 13:08:22 -08:00
Kong Wai Weng ee1987d34b Added Maker Nano RP2040 to branch 7.1.x. 2021-12-06 23:12:53 +08:00
Kong Wai Weng 7ee825370e Use 4x space instead of tab. 2021-12-06 17:28:45 +08:00
Kong Wai Weng bde65d0f28 Added Maker Nano RP2040 2021-12-06 17:26:00 +08:00
Dan Halbert 5fe4c3bec9 fix mistaken use of PWM channel for slice 2021-12-05 21:16:46 -05:00
Seth Kerr e352048db9 Add ODT Cast-Away RP2040 2021-12-05 14:49:48 -07:00
Dan Halbert 4de6c7cf6f
Merge pull request #5656 from dhalbert/rp2040-i2c-zero-write-bitbang-timeout
Use a longer clock stretching timeout for RP2040 zero-byte I2C writes
2021-12-04 19:40:48 -05:00
foamyguy fa37ee6484 limit disable interrupts to flash calls 2021-12-04 14:14:23 -06:00
foamyguy 5e7c1328b0 disable interrupts inside of write_page and erase_write_sector 2021-12-04 12:21:51 -06:00
foamyguy f49271b472 disable interrupts inside of ports raspberrypi common hal 2021-12-04 11:34:49 -06:00
Dan Halbert 80abd2d645 Use a longer clock stretching timeout for RP2040 zero-byte I2C writes 2021-12-03 18:19:13 -05:00
Kattni Rembor 3b6011d551 Update pin order to match silk. 2021-12-03 11:40:40 -05:00
ZodiusInfuser 0e56c5aa8a Added definitions for 2MB Tiny2040 2021-12-02 16:45:43 +00:00
Jeff Epler b1a3ccb36c
clear out interrupt when freeing the timer
Closes #5418
2021-11-23 13:03:01 -06:00
Timon a1052d5f73
Initial broadcom port for Raspberry Pi
This targets the 64-bit CPU Raspberry Pis. The BCM2711 on the Pi 4
and the BCM2837 on the Pi 3 and Zero 2W. There are 64-bit fixes
outside of the ports directory for it.

There are a couple other cleanups that were incidental:
* Use const mcu_pin_obj_t instead of omitting the const. The structs
  themselves are const because they are in ROM.
* Use PTR <-> OBJ conversions in more places. They were found when
  mp_obj_t was set to an integer type rather than pointer.
* Optimize submodule checkout because the Pi submodules are heavy
  and unnecessary for the vast majority of builds.

Fixes #4314
2021-11-22 14:54:44 -08:00
Pierre Constantineau ce7cd22116 updated pins.c to enable support for PyKey87 2021-11-14 21:56:18 -06:00
Pierre Constantineau 2c3557d4af
Merge branch 'adafruit:main' into seeduino-xiao-rp2040 2021-11-14 21:44:10 -06:00
Jeff Epler 340d6b9213
more missing-prototypes fixes 2021-11-10 21:00:17 -06:00
Jeff Epler 017b52c455
further raspberrypi fixes 2021-11-10 12:11:06 -06:00
Jeff Epler 621953c960
Additional missing-prototypes fixes
I think this correctly enables missing-prototypes in atmel-samd
and raspberrypi ports.
2021-11-10 10:55:53 -06:00
lady ada 02573676e7 add KB2040 and fix Trinkey QT2040 pid 2021-11-05 12:43:44 -04:00
Pierre Constantineau f3eb9ea5e1
Merge branch 'adafruit:main' into seeduino-xiao-rp2040 2021-11-03 14:07:45 -06:00
Jeff Epler a8614a61dc ParallelImageCapture: Add continuous capture on espressif
By having a pair of buffers, the capture hardware can fill one buffer while
Python code (including displayio, etc) operates on the other buffer.  This
increases the responsiveness of camera-using code.

On the Kaluga it makes the following improvements:
 * 320x240 viewfinder at 30fps instead of 15fps using directio
 * 240x240 animated gif capture at 10fps instead of 7.5fps

As discussed at length on Discord, the "usual end user" code will look like
this:

    camera = ...

    with camera.continuous_capture(buffer1, buffer2) as capture:
        for frame in capture:
            # Do something with frame

However, rather than presenting a context manager, the core code consists of
three new functions to start & stop continuous capture, and to get the next
frame.  The reason is twofold.  First, it's simply easier to implement the
context manager object in pure Python.  Second, for more advanced usage, the
context manager may be too limiting, and it's easier to iterate on the right
design in Python code.  In particular, I noticed that adapting the
JPEG-capturing programs to use continuous capture mode needed a change in
program structure.

The camera app was structured as
```python
while True:
    if shutter button was just pressed:
        capture a jpeg frame
    else:
        update the viewfinder
```

However, "capture a jpeg frame" needs to (A) switch the camera settings and (B)
capture into a different, larger buffer then (C) return to the earlier
settings. This can't be done during continuous capture mode. So just
restructuring it as follows isn't going to work:

```python
with camera.continuous_capture(buffer1, buffer2) as capture:
    for frame in capture:
        if shutter button was just pressed:
            capture a jpeg frame, without disturbing continuous capture mode
        else:
            update the viewfinder
```

The continuous mode is only implemented in the espressif port; others
will throw an exception if the associated methods are invoked.  It's not
impossible to implement there, just not a priority, since these micros don't
have enough RAM for two framebuffer copies at any resonable sizes.

The capture code, including single-shot capture, now take mp_obj_t in the
common-hal layer, instead of a buffer & length.  This was done for the
continuous capture mode because it has to identify & return to the user the
proper Python object representing the original buffer.  In the Espressif port,
it was convenient to implement single capture in terms of a multi-capture,
which is why I changed the singleshot routine's signature too.
2021-11-03 11:02:46 -05:00