Commit Graph

9714 Commits

Author SHA1 Message Date
Jeff Epler 14b20087b5
only ignore sdkconfig* files in the espressif port's top directory
danh and microdev1 noticed that this ignore pattern was over-broad
and caused added sdkconfig files in boards/ (which should be committed)
to be ignored and not proposed for addition by common tools like
git status, git gui, etc.

This pattern anchors the search so that it only matches in the
ports/espressif directory, so ports/espressif/sdkconfig is ignored
but ports/espressif/boards/example/sdkconfig is not ignored anymore
2022-11-14 11:29:18 -06:00
Bill Sideris 2e6dd1bf1f
Radio.c no longer needs ping.h 2022-11-14 18:36:42 +02:00
Jeff Epler cdab078d9d
shared-bindings: Get rid of CYW43 special cases in shared-bindings
.. by moving it into a new weak function that can be replaced
just by the picow build.
2022-11-14 08:44:08 -06:00
Dominic Davis-Foster e1046b1050
Add support for the 16MB WeAct Studio Pico 2022-11-14 14:04:07 +00:00
Dan Halbert 8f414eb4ee
Merge pull request #7179 from jepler/picow-voltage-monitor
Add ability to read VOLTAGE_MONITOR on Pico W
2022-11-13 22:40:54 -05:00
Jeff Epler f3169246ba
Implement chained exceptions
This adds the __cause__, __context__ and __suppress_context__
members to exception objects and makes e.g., `raise exc from cause`
set them in the same way as standard Python.
2022-11-13 19:52:50 -06:00
Jeff Epler b8f5def985
return to using python 3.x for builds 2022-11-13 09:26:49 -06:00
Dan Halbert 6e9909c65e
Merge pull request #7198 from CRCibernetica/crcibernetica-ideaboard
Add new board crcibernetica-ideaboard
2022-11-13 09:12:43 -05:00
root 43566dec5b allow inclusion of board while blocking build files 2022-11-13 12:13:32 +00:00
Dan Halbert c96208902f
Merge pull request #7199 from MicroDev1/espressif
Enable `microcontroller.cpu.temperature` on esp32s3
2022-11-12 11:16:45 -05:00
Jeff Epler e4d620f055
make whitespace match 2022-11-12 09:17:52 -06:00
Jeff Epler 78fc43baab
raspberrypi: Make port_idle_until_interrupt work
This needs thorough testing before it's merged, as we tried
and reverted this once before (#5341 and #5356).

I think that besides checking for tinyusb having "something to do",
the fact that `port_interrupt_after_ticks` and `port_disable_tick`
weren't implemented that was causing a secondary problem.

I've tested this on a pico w over reboot-cycles and ctrl-c-cycles,
with and without drive automounting, with and without serial repl open,
and on a power-only connection.

I didn't notice the problem reported in #5356 after merely implementing
port_idle_until_interrupt; but I did notice that sleeps in general would
take over-long until "something" (like writing to the USB drive) happened;
I think "something" was probably calling port_enable_tick(). When this
problem was happening, sleeps would take a lot longer; for instance,
`sleep(.001)` would take about 1/20s and `sleep(.1)` would take about 1/7s.
2022-11-12 09:16:41 -06:00
Dan Halbert 9e94d7e758
Merge pull request #7196 from dhalbert/rp2-pin-alarm-race
RP2040: ignore pin changes before deep sleep
2022-11-12 09:36:15 -05:00
MicroDev 512cda8b73
enable `microcontroller.cpu.temperature` on esp32s3 2022-11-12 10:03:00 +05:30
root 6c3b9b64da add crcibernetica-ideaboard 2022-11-12 03:22:15 +00:00
Dan Halbert 983502d6e3 ignore pin changes before sleep 2022-11-11 15:31:49 -05:00
Jeff Epler f5c637dc10
Add adafruit_pixelmap.PixelMap
.. a fast helper for animations. It is similar to and inspired by the
PixelMap helper in Adafruit LED Animation library, but with an extremely
fast 'paste' method for setting a series of pixels. This is a common
operation for many animations, and can give a substantial speed improvement.

It's named `adafruit_pixelmap` so that we can package a compatible version
in pure Python for systems that can't fit it in C in flash, or for
Blinka.

This is a proof of concept and can make a very fast comet animation:
```python
import time
import adafruit_pixelbuf
import adafruti_pixelmap
import board
import neopixel
from supervisor import ticks_ms
from adafruit_led_animation.animation.solid import Solid
from adafruit_led_animation import color

pixel_pin = board.GP0
pixel_num = 96

pixels = neopixel.NeoPixel(pixel_pin, pixel_num, brightness=1, auto_write=False, pixel_order="RGB")

evens = adafruit_pixelmap.PixelMap(pixels, tuple(range(0, pixel_num, 2)))
odd_indices = tuple((i, i+2) for i in range(1, pixel_num, 4))
print(odd_indices)
odds = adafruit_pixelbuf.PixelMap(pixels, odd_indices)
assert len(odds) == len(odd_indices)


comet_length = 16

comet1 = [color.calculate_intensity(color.GREEN, ((1+i) / comet_length) ** 2.4)
        for i in range(comet_length)]
comet2 = [color.calculate_intensity(color.PURPLE, ((1+i) / comet_length) ** 2.4)
        for i in range(comet_length)]

pos1 = 0
pos2 = 96//4

while True:
    evens.paste(comet1, pos1, wrap=True, reverse=False, others=0)
    pos1 = (pos1 + 1) % len(evens)

    odds.paste(comet2, pos2, wrap=True, reverse=True, others=0)
    pos2 = (pos2 - 1) % len(odds)
    pixels.show()

    m = ticks_ms()
    if m % 2000 > 1000:
        time.sleep(.02)
```
2022-11-11 07:54:33 -06:00
Bill Sideris e6a4e2982f
Update ports/raspberrypi/common-hal/wifi/Radio.c
u32_t -> uint32_t

Co-authored-by: MicroDev <70126934+MicroDev1@users.noreply.github.com>
2022-11-11 14:40:47 +02:00
Bill Sideris 0bf9df232a
fix debug 2022-11-11 14:17:57 +02:00
dronecz a37c36c383
Merge branch 'adafruit:main' into main 2022-11-10 21:47:23 +01:00
paul-1 11f1174658
picow: Change init to use country code routine.....place holder for future improvements to allow country code setting. 2022-11-10 17:24:09 +02:00
paul-1 851c2cd8cb
picow: Add channel setting when starting AP 2022-11-10 17:23:59 +02:00
paul-1 8fdb2df0bf
picow: enable dhcpserver for apmode. 2022-11-10 17:23:38 +02:00
Bill Sideris 25c0a0aca9
Merge branch 'adafruit:main' into picow-ap 2022-11-10 17:04:21 +02:00
Dan Halbert d90bc1760f
Merge pull request #7188 from kylemccreery/pillbug
Add new board PillBug
2022-11-10 09:10:40 -05:00
Kyle McCreery 1f332e7007 Adding pillbug initial commit 2022-11-09 23:15:38 -05:00
Dan Halbert e6936decac
Merge pull request #7169 from blues/pdmin
STM32L4 PDMIn support
2022-11-09 14:19:51 -05:00
dronecz 11ce074318
Update mpconfigboard.mk 2022-11-08 23:43:13 +01:00
Matthew McGowan 97f693d2d8 docs(swan_r5): updated copyright notices 2022-11-08 14:18:54 -08:00
Matthew McGowan 843d6b42f9 formatting(swan_r5): lexicographically sorted the board module names in the swan_r5 makefile include [ci-skip][skip-ci]. Skip CI since this is a cosmetic change only. 2022-11-08 12:04:30 -08:00
Jeff Epler 7f36a365cf
delay 100us for analog voltage to stabilize
.. otherwise, depending on the prior state of the pin as a digital
input, the value read could be 20% low.
2022-11-08 10:43:14 -06:00
Jeff Epler 09f6919c93
Add ability to read VOLTAGE_MONITOR on Pico W
Because this must be treated like an in-use pin for all other purposes,
unfortunately a special case must be added in shared-bindings.

Multiple AnalogIn objects for VOLTAGE_MONITOR can be created (because
in use tracking isn't working) but this causes no harm.

Testing performed: Read the monitor, then imported wifi. When the
pin state was insufficiently restored, the second step would fail
with debug messages about do_ioctl timeout.

```
import analogio, board
a = analogio.AnalogIn(board.VOLTAGE_MONITOR)
print(a.value)
import wifi
```

Closes: #7020
2022-11-08 09:37:15 -06:00
dronecz 28e4834da8
Merge branch 'adafruit:main' into main 2022-11-08 01:02:46 +01:00
dronecz a568a5c2e2
Rename sdkonfig to sdkconfig 2022-11-06 22:14:19 +01:00
dronecz f1e658f8bb
Update sdkonfig 2022-11-06 22:07:12 +01:00
Jeff Epler 452ebe27ae
socketpool: make socket objects selectable
.. which will lead to them being usable in async contexts, pending
relevant changes in asyncio
2022-11-05 12:05:19 -05:00
Matthew McGowan ad9db01f5f Implements PDMIn for STM32L4 using the SAI peripheral and decimation/filtering in software. 2022-11-04 17:27:08 -07:00
Petr Sedlacek f3ec46bbb5 Add missing pin definitions for 42. Keebs Frood 2022-11-04 15:33:16 +01:00
dronecz 882100a87a
Create sdkonfig 2022-11-02 22:10:44 +01:00
dronecz 71b5e6088b
Update mpconfigboard.mk 2022-11-02 22:07:28 +01:00
dronecz d6fe378456
Update mpconfigboard.h 2022-11-02 22:05:39 +01:00
Jeff Epler 403a5b2681
Merge pull request #7126 from jepler/scorpio
add feather rp2040 scorpio
2022-11-02 14:47:40 -05:00
Rose Hooper 8933f93439 simplify and use columns for boardlist 2022-11-01 11:00:48 -04:00
Rose Hooper 36c4cc7d30 fix output layout of board list 2022-11-01 00:18:46 -04:00
Rose Hooper dec128f508 add boards list to make error message 2022-10-31 23:57:59 -04:00
dronecz 9b1181804c
Merge branch 'adafruit:main' into main 2022-10-30 19:16:05 +01:00
dronecz 468709abcc
Update pins.c
Hopefully last change nefore merge.
2022-10-30 18:51:46 +01:00
Dan Halbert 952812cdea
Merge pull request #7154 from dhalbert/alarm-lifetime
Save wake alarm info in static storage, simplifying recording of alarm
2022-10-30 12:28:50 -04:00
dronecz ae8f415bd5
Update board.c 2022-10-30 02:17:38 +02:00
Neradoc 0aa41fa92e change BOARD_USER_SAFE_MODE_ACTION into a separate sentence 2022-10-30 01:55:42 +02:00
Neradoc 934d2a7004 remove duplicate press boot button, it's already the default 2022-10-30 01:52:17 +02:00
dronecz 5d7c58da5d
Update pins.c
Attempt to fix build issue
2022-10-30 01:52:09 +02:00
Dan Halbert ded134c346 store wake_alarm in a static object 2022-10-29 16:26:36 -04:00
Jozsef Kiraly 992e97d84b fix: pre-commit 2022-10-29 20:00:37 +01:00
Jozsef Kiraly 9ca057385a feat: Add support for Waveshare RP2040-LCD-1.28 2022-10-29 18:52:43 +01:00
Dan Halbert a064b52ad7
CIRCUITPY_ESP32_CAMERA, not CIRCUITPY_USB_CAMERA 2022-10-29 10:13:11 -04:00
Dan Halbert 2ffd16a10c
Update mpconfigboard.mk 2022-10-29 09:27:09 -04:00
CDario 19fd9107a2 Merded with main branch 2022-10-29 07:46:54 +00:00
CDarius 7282bd9c9a
Removed boilerplate already handled by MP_WEAK definitions
Co-authored-by: Dan Halbert <halbert@halwitz.org>
2022-10-29 09:34:45 +02:00
Dan Halbert 053d0fa8b5
Merge pull request #7145 from chukwon/fix_lolin_s3
fix and add lolin_s3 pins definition
2022-10-28 23:50:53 -04:00
Dan Halbert d95a085be4
Merge pull request #7144 from CDarius/add_m5stack_core_safe_mode
Added safe mode button and fix coyright attribution
2022-10-28 15:59:59 -04:00
Dan Halbert 0221cc8df7 Merge remote-tracking branch 'adafruit/main' into alarm-lifetime 2022-10-28 14:11:32 -04:00
chukwon 9c66320474 fix and add lolin_s3 pins definition 2022-10-28 21:40:35 +08:00
Dan Halbert 4e20049c38
Merge pull request #7122 from jepler/picow-ssl-server
pico w: implement sslsocket bind, listen, accept
2022-10-28 09:33:21 -04:00
CDario b815a4cc5e Added safe mode button and fix coyright attribution 2022-10-28 12:06:11 +00:00
CDario 27142d090b Fixed copyright attribution 2022-10-28 11:08:30 +00:00
microDev 9a09c62eee
espressif add back `ESP32_CAMERA` 2022-10-28 13:55:33 +05:30
CDario b276ed7af9 Fixed copyright attribution 2022-10-28 05:32:09 +00:00
CDario b94447fde5 Added safe mode button 2022-10-28 05:00:54 +00:00
Dan Halbert 9307b62ad5 wip 2022-10-27 22:42:04 -04:00
Dan Halbert 8fe44a23d2
Merge pull request #7140 from dhalbert/esp32-s3-box-spiram-fix
correct SPIRAM settings for ESP32-S3-BOX
2022-10-27 16:09:59 -04:00
Dan Halbert 26688fa826 correct SPIRAM settings for ESP32-S3-BOX 2022-10-27 14:45:29 -04:00
MicroDev baa44a2dba
Merge pull request #7133 from CDarius/fix_m5stack_core_basic
Fixed wrong configuration in sdkconfig
2022-10-27 18:34:07 +05:30
dronecz d774f3d34f
Update board.c
Fix for CLI
2022-10-27 15:02:44 +02:00
dronecz 0e0c106740 Add Maker badge board 2022-10-27 01:06:38 +02:00
CDario cdbad53649 Fixed wrong configuration in sdkconfig 2022-10-26 20:06:27 +00:00
CDario be07722bbc Added board M5Stack Atom Lite 2022-10-26 19:57:23 +00:00
Dan Halbert ca25016b52
Merge pull request #7119 from jepler/picow-reuseaddr
Enable, use SOF_REUSEADDR
2022-10-26 15:25:50 -04:00
Dan Halbert 5ebdf281cb
Merge pull request #7125 from dhalbert/esp-pin-alarm-fix
Fix setup of Espressif PinAlarms
2022-10-26 15:24:58 -04:00
Jeff Epler 7545e02a8e
add feather rp2040 scorpio 2022-10-26 10:05:37 -05:00
Jeff Epler 366cf4a048
Merge pull request #7113 from CDarius/m5stack_core_fire
Added M5Stack Core Fire board
2022-10-26 09:10:50 -05:00
Jeff Epler 0bc986ea7a
Merge pull request #7124 from piit79/frood
Adds support for the 42. Keebs Frood RP2040 board
2022-10-26 09:09:42 -05:00
Jeff Epler 76ed0445bb
Merge pull request #7120 from CDarius/m5stack_core_basic
Added M5Stack Core Basic board
2022-10-26 09:09:11 -05:00
Dan Halbert 56d8b9451f don't wait for pulls in PinAlarm 2022-10-25 20:42:08 -04:00
Dan Halbert e49cd00d60 fix debug UART pins on Metro ESP32-S2 2022-10-25 20:41:08 -04:00
Georg Bøe 032bf63f2d Raise error with positive code in recv_into for espressif 2022-10-25 22:53:01 +02:00
Jeff Epler 0cf096dda1
pico w: implement sslsocket bind, listen, accept 2022-10-25 14:46:41 -05:00
CDario f6e2369bbd Removed not available UART in board 2022-10-25 16:53:42 +00:00
CDario f9983ff556 Added M5Stack Core Basic board 2022-10-25 16:42:14 +00:00
Jeff Epler f997d0053d
Enable, use SOF_REUSEADDR
This is the lwip no-os version of SO_REUSEADDR, which is set on all
listening sockets in the espressif port; do so here as well,
it makes running servers easier. The "address in use" error does
not occur.
2022-10-25 10:09:16 -05:00
Petr Sedlacek bd7f0e23d7 Adds support for the 42. Keebs Frood RP2040 board
https://github.com/piit79/Frood
2022-10-25 16:40:32 +02:00
CDario c8191e8830 Better pins definitions 2022-10-25 11:41:39 +00:00
Kattni Rembor 5ea8b75e17 Add STEMMA_I2C() object to Picos for Cowbells. 2022-10-24 16:27:32 -04:00
CDario 5fa67548ea Added missing sdkconfig file 2022-10-24 20:03:06 +00:00
CDario 39171d7626 Removed unnecessary compiler flags 2022-10-24 19:21:26 +00:00
CDario beab76c325 Added M5Stack Core Fire board 2022-10-24 18:38:30 +00:00
MicroDev 773bb99c96
Merge pull request #7099 from Neradoc/add-m5stampc3-board
Add M5Stack Stamp C3 Board
2022-10-23 00:05:44 +05:30
Neradoc 3c5bf4e852
Update ports/espressif/boards/m5stack_stamp_c3/mpconfigboard.mk
Co-authored-by: MicroDev <70126934+MicroDev1@users.noreply.github.com>
2022-10-22 16:23:27 +02:00
microDev 8f0a674a1b
coproc module enhancements
- add light and pretend-to-deep sleep support
- check coproc running status
2022-10-22 19:08:49 +05:30
microDev 83b54d003d
implement more checks in coproc module
- check memory address range
- check firmware size at an earlier stage
2022-10-22 19:05:48 +05:30
Bill Sideris 7a50beb67e
PicoW more ap work 2022-10-22 11:58:44 +03:00
askpatrickw d147712522 Add M5 Stamp C3 board 2022-10-22 00:45:54 +02:00
Dan Halbert da7edf80e0
Merge pull request #7091 from MicroDev1/corpoc
Add `CoprocAlarm`
2022-10-21 13:36:01 -04:00
microDev 5b2728bd65
reorganize espressif `mpconfigport.mk` 2022-10-21 17:35:59 +05:30
microDev 2285dd1838
update espressif risc-v build configuration
- use optimization level O2
- explicitly state risc-v arch
2022-10-21 17:11:56 +05:30
Bill Sideris 8cc536bb7f
PicoW start_ap() 2022-10-21 13:20:16 +03:00
microDev b33a2b45dc
add coproc alarm 2022-10-20 18:38:20 +05:30
MicroDev b5b649801b
Merge pull request #6902 from MicroDev1/coproc
Add `coproc` module
2022-10-20 12:51:59 +05:30
microDev 5232e3f6c3
add coproc module 2022-10-20 09:09:44 +05:30
Dan Halbert 7015b7396e
Merge pull request #7089 from jepler/picow-gpio-number
pico w: Disentangle "TOTAL_GPIO_COUNT", it's complicated
2022-10-19 22:42:16 -04:00
Jeff Epler 576a1ac700
pico w: Disentangle "TOTAL_GPIO_COUNT", it's complicated
You might wonder how this fixes a problem with PulseIn, when the
changes aren't to any of those files! PulseIn is implemented in terms of
StateMachine, which had some assumptions about the relation between
the index of a pin object in mcu_pin_global_dict_table and its "pin
number". This was true, until some pins were removed from the
microcontroller module on Pico W.

Closes: #7078
2022-10-19 21:09:50 -05:00
Jeff Epler 8bef4282c0
pico w: implement static configuration methods in wifi.Radio 2022-10-19 20:54:53 -05:00
Dan Halbert 31d7c91c85
Merge pull request #7059 from jepler/asyncio-tests-dogfood
asyncio: we should dogfood our own asyncio implementation during automated tests
2022-10-19 15:11:04 -04:00
Dan Halbert 08e1cdb282
Merge pull request #7079 from jepler/picow-2xmss
Pico W grab bag
2022-10-19 15:03:00 -04:00
Dan Halbert 607e917363
Merge pull request #7073 from MicroDev1/patch
Fix 2/4MB Partition Tables & Makefile
2022-10-17 22:29:16 -04:00
Jeff Epler 6e350a65cf
Merge pull request #7076 from bill88t/early-wifi
Implement async wifi connection on picow
2022-10-17 19:54:58 -05:00
Jeff Epler 3b7feccd9b
picow: Implement stop_station
Weirdly we have to stop the AP too (which we never started),
or cyw43_tcpip_link_status still reports that STA is connected.
As long as AP mode isn't implemented, this doesn't matter and
we can just do it.
2022-10-17 19:42:10 -05:00
Jeff Epler 57756863ef
picow: depending on memory pressure, may only be able to write 1 MSS
Foamyguy discovered that trying to send >2920 bytes at once consistently
failed. I further discovered that sometimes trying to send >1460 bytes
would fail too.  By "fail", I mean that it would take a very long time
(around 200 * 50ms) before erroneously reporting that all bytes were
written.

In my testing, this change causes larger writes to successfully
send either 2920 or 1460 bytes (possibly after doing some 50ms waits
for a previous packet to clear).

The documentation of socket.send always stated that it COULD send fewer
bytes than requested, but adafruit_httpserver assumed that the number
of requested bytes were always sent, so after this change alone,
adafruit_httpserver will still not work properly.

Closes: #7077 (albeit fixes are needed in adafruit_httpserver too)
2022-10-17 19:42:07 -05:00
Jeff Epler 861b22730e
picow: if initial write fails, write at most 1 TCP MSS of data 2022-10-17 19:28:02 -05:00
Jeff Epler 1975742d9f
picow: fix formatting numbers in lwip debug output 2022-10-17 19:28:02 -05:00
Jeff Epler 6128f4e5af
picow: add resolution of ".local" names 2022-10-17 19:28:01 -05:00
microDev fb91c2f436
cleanup `sdkconfig-esp32.defaults`
- remove log level: set by -opt or -debug sdkconfig
- remove lwip hostname: set by board specific sdkconfig
2022-10-17 22:05:20 +05:30
Bill Sideris 47c373e67e
Use `cyw43_tcpip_link_status` instead 2022-10-17 18:33:32 +03:00
Bill Sideris bce024f59e
Implement async wifi connection on picow 2022-10-17 18:17:14 +03:00
Jeff Epler 47541afc7c
picow: ask at a lower level if the interface is up
Closes: #7072

```
Adafruit CircuitPython 8.0.0-beta.2-9-g5192082e64-dirty on 2022-10-17; Raspberry Pi Pico W with rp2040
>>> import wifi
>>> print(wifi.radio.ipv4_address)
None
>>> import os
>>> wifi.radio.connect(os.getenv('WIFI_SSID'), os.getenv('WIFI_PASSWORD'))
>>> print(wifi.radio.ipv4_address)
10.0.2.94
```
2022-10-17 10:08:50 -05:00
microDev 434c6d5604
fix uf2 bootloader condition in makefile 2022-10-17 19:45:48 +05:30
microDev 5114ae7a31
fix `2MB-no-uf2` partition table 2022-10-17 19:44:08 +05:30
microDev f86377e0f1
fix `4MB-no-uf2` partition table 2022-10-17 19:42:41 +05:30
Jeff Epler d4b1d4d430
Fix GPIO state when initializing CYW43 pin
Closes: #7063
2022-10-15 13:10:22 -05:00
microDev e7b25dbf73
improve `dualbank` errors 2022-10-15 13:20:10 +05:30
Jeff Epler 6a8bc738ec
Make it easy to test just a subset of tests
with e.g., 'make TEST_EXTRA="extmod/uasyncio*.py" test'
2022-10-14 17:07:27 -05:00
Jeff Epler 963a51487a
unix Makefile: easy wait to print test failures as diffs 2022-10-14 14:44:52 -05:00
Dan Halbert 0ce84b27e8
Merge pull request #7053 from CytronTechnologies/add-pin-definitions-maker-feather-aiot-s3
Added Pin Definitions for Cytron Maker Feather AIoT S3
2022-10-14 11:31:53 -04:00
Dan Halbert 062d63ee3a
Merge pull request #7050 from jepler/picow-wirelsess-off-in-deep-sleep
picow: Turn off wifi co-processor regulator when entering deep sleep
2022-10-14 08:17:16 -04:00
Dan Halbert 8caafd9079
Merge pull request #7051 from jepler/picow-hashlib
implement hashlib for picow
2022-10-14 08:14:41 -04:00
Kong Wai Weng fc00a6675e Added some pin definitions to match with the Arduino core. 2022-10-14 17:25:24 +08:00
microDev 66b539d768
fix espressif log level 2022-10-14 11:33:10 +05:30
Jeff Epler 3b3fe44174
implement hashlib for picow 2022-10-13 20:42:50 -05:00
Jeff Epler 0c5fd55c16
picow: Turn off wifi co-processor regulator when entering deep sleep
This reduces power consumption during true deep sleep.

In my measurements with ppk2 and a program that _irrevocably_ entered
deep sleep (no time alarm or pin alarm), power usage as measured on a
ppk2 decreased from ~10mA to ~1mA.
2022-10-13 20:10:10 -05:00
Dan Halbert bb3e04a078
Merge pull request #7048 from georgboe/fix-recvinto-errno
Return correct errno in raspberrypi's Socket.c
2022-10-13 18:19:02 -04:00
Georg Bøe e768b9ebb3 Return correct errno 2022-10-13 21:00:51 +02:00
Dan Halbert de7a9c38fc Merge remote-tracking branch 'adafruit/main' into add-os-utime-function 2022-10-13 14:15:13 -04:00
Dan Halbert 1569c7ed33
Merge pull request #7045 from jepler/smaller-microcontroller-temperature-samd
samd: Size-optimize the temperature code with an 0.5 to 2.0 degree relative additional error
2022-10-13 14:02:51 -04:00
Dan Halbert 7e4b2a09eb
Merge pull request #7000 from MicroDev1/storage-extend
Add Storage Extension Support
2022-10-13 10:05:55 -04:00
microDev 728fea4ca4
add storage extension python api 2022-10-13 09:53:33 +05:30
Jeff Epler f7d39ceae4
comment on the revised algorithm 2022-10-12 16:25:09 -05:00
Jeff Epler a943167d69
samd: Reduce a further 48 bytes for non-full builds
Another reduction of -48 bytes can be had if the fine calculation
step is skipped. The worst difference compared to the old reference
code with my calibration values in the 0° to 60° was 2°C,
and the difference at 25°C is 1°C.

The final size decrease for non-full builds like Trinket M0 is 268
bytes.
2022-10-12 15:53:44 -05:00
Jeff Epler b251e78ac5
samd: size-optimize microcontroller temp calc
Perform most arithmetic with scaled integer values.
For my calibration values
```
const uint32_t NVMCTRL_TEMP_LOG[]={0xfc05511e, 0xcc7ac0f7};
```
the maximum difference between the old and new calculation is 0.50°C.
The difference is smallest (0.13°) at 25.87°C in the old scale.

This reduces mcu_processor_get_temperature from 568 bytes to 348 bytes
(-220 bytes)
2022-10-12 15:44:14 -05:00
Jeff Epler 874ddd67bf
Pico W: ssl: factor out do_handshake 2022-10-12 11:38:30 -05:00
Jeff Epler 1641a7c002
Pico W: ssl: Correctly handle errors in send/recv
The prefixed versions raise Python exceptions, the un-prefixed return
negative error values. We don't want to raise an exception from here,
it leaves the SSL stack in an undefined state.
2022-10-12 11:38:30 -05:00
Jeff Epler 7c849fdadb
Pico W: ssl: Raise MemoryError for allocation errors 2022-10-12 11:38:29 -05:00
Jeff Epler b1f7940297
Pico W: Correctly treat empty cadata= as disabling host checking 2022-10-12 11:38:29 -05:00
Jeff Epler ca9523b814
Pico w: socket: Correctly return negative error code from recv_into 2022-10-12 11:38:29 -05:00
Jeff Epler 62cbd3bcd8
Pico w: socket: correctly track sockets generated by accept() 2022-10-12 11:38:26 -05:00
MicroDev ab22d5a8cd
Merge pull request #7024 from flom84/stm-include-headers-fixes
Remove redundant header files in STM port
2022-10-12 10:22:29 +05:30
Dan Halbert 822e806f03
Merge pull request #7031 from BPI-STEAM/CircuitPython-main-bpi-picow-dev
Add BananaPi BPI-PicoW-S3 .
2022-10-11 22:53:37 -04:00
Wind-stormger 376df8ec7e Add BananaPi BPI-PicoW-S3 .
Adds support for the BananaPi BPI-PicoW-S3 Boards.
Based on esp32s3 chip.
With one WS2812 LED, one monochrome LED, one ceramic antenna.
Support double-reset to tinyUF2.
2022-10-12 09:11:25 +08:00
Dan Halbert e19abef57e forgot to add these! 2022-10-11 13:12:43 -04:00
Dan Halbert 851f8a188d Merge remote-tracking branch 'adafruit/main' into HEAD 2022-10-11 12:21:59 -04:00
Dan Halbert 4cd370ecf8 Merge remote-tracking branch 'adafruit/main' into add-os-utime-function 2022-10-10 17:51:59 -04:00
Jeff Epler 0c8b261ec9
picow: Add support of self-signed certificates.
## Testing self-signed certificates and `load_verify_locations`

Obtain the badssl "self-signed" certificate in the correct form:

```sh
openssl s_client -servername self-signed.badssl.com -connect untrusted-root.badssl.com:443 < /dev/null | openssl x509 > self-signed.pem
```

Copy it and the script to CIRCUITPY:
```python
import os
import wifi
import socketpool
import ssl
import adafruit_requests

TEXT_URL = "https://self-signed.badssl.com/"
if not wifi.radio.ipv4_address:
    wifi.radio.connect(os.getenv('WIFI_SSID'), os.getenv('WIFI_PASSWORD'))

pool = socketpool.SocketPool(wifi.radio)
context = ssl.create_default_context()
requests = adafruit_requests.Session(pool, context)

print(f"Fetching from {TEXT_URL} without certificate (should fail)")
try:
    response = requests.get(TEXT_URL)
except Exception as e:
    print(f"Failed: {e}")
else:
    print(f"{response.status_code=}, should have failed with exception")

print("Loading server certificate")
with open("/self-signed.pem", "rb") as certfile:
    context.load_verify_locations(cadata=certfile.read())
requests = adafruit_requests.Session(pool, context)

print(f"Fetching from {TEXT_URL} with certificate (should succeed)")
try:
    response = requests.get(TEXT_URL)
except Exception as e:
    print(f"Unexpected exception: {e}")
else:
    print(f"{response.status_code=}, should be 200 OK")
```
2022-10-10 15:53:56 -05:00
Jeff Epler c98174eea5
Add support for SSL client certificate (load_cert_chain)
Tested with badssl.com:

 1. Get client certificates from https://badssl.com/download/
 2. Convert public portion with `openssl x509 -in badssl.com-client.pem -out CIRCUITPY/cert.pem`
 3. Convert private portion with `openssl rsa -in badssl.com-client.pem -out CIRCUITPY/privkey.pem` and the password `badssl.com`
 4. Put wifi settings in CIRCUITPY/.env
 5. Run the below Python script:

```py
import os
import wifi
import socketpool
import ssl
import adafruit_requests

TEXT_URL = "https://client.badssl.com/"
wifi.radio.connect(os.getenv('WIFI_SSID'), os.getenv('WIFI_PASSWORD'))

pool = socketpool.SocketPool(wifi.radio)
context = ssl.create_default_context()
requests = adafruit_requests.Session(pool, context)

print(f"Fetching from {TEXT_URL} without certificate (should fail)")
response = requests.get(TEXT_URL)
print(f"{response.status_code=}, should be 400 Bad Request")
input("hit enter to continue\r")

print("Loading client certificate")
context.load_cert_chain("/cert.pem", "privkey.pem")
requests = adafruit_requests.Session(pool, context)

print(f"Fetching from {TEXT_URL} with certificate (should succeed)")
response = requests.get(TEXT_URL)
print(f"{response.status_code=}, should be 200 OK")
```
2022-10-10 15:10:53 -05:00
flom84 81d227de73 Use types from circuitpython. 2022-10-10 20:55:44 +02:00
Florin Maticu ab1de66dd3 Remove redundant header files. 2022-10-10 20:37:31 +02:00
Dan Halbert 14c9028c1f
Merge pull request #7026 from dhalbert/minor-space-savings
save about 112 bytes
2022-10-10 13:55:56 -04:00
Dan Halbert de95463deb
Merge pull request #7023 from dhalbert/wifi-scanning-fixes
update esp-idf; allow start/stop channels in wifi scanning
2022-10-10 13:54:54 -04:00
Dan Halbert 8d344459cd
Merge pull request #7021 from jepler/pico-w-vbus-sense
pico w: pins improvements
2022-10-10 11:56:30 -04:00
Dan Halbert 86a0f9a861 save about 112 bytes 2022-10-09 19:22:39 -04:00
Dan Halbert 987030e706
Merge branch 'main' into add-os-utime-function 2022-10-07 22:45:51 -04:00
Dan Halbert b097c0736a shrink some small builds 2022-10-07 22:44:06 -04:00
Dan Halbert 747dc7746d handle scan channel bounds but note they do nothing for RP2040 CYW43 2022-10-07 16:22:17 -04:00
Dan Halbert 21c0c4c1a6 update esp-idf; allow start/stop channels in wifi scanning 2022-10-07 15:29:09 -04:00
MicroDev fc549fe345
Merge pull request #7014 from jepler/restore-nvm-module
restore nvm module
2022-10-08 00:12:41 +05:30
Dan Halbert 78b278e091 disable rainbowio on arduino_zero 2022-10-07 10:39:30 -04:00
Jeff Epler f882571366
pico w: pins improvements
Closes: #7017

 * Remove the 'GP23' alias for CYW1
 * Remove the 'CYW0' alias for CYW0
 * Switch VBUS_SENSE to CYW2, remove 'GP24' alias

Code that wants to use SMPS_MODE, VBUS_SENSE and LED while being
portable to the W and non-W variants should use those names, not alias
names.

 * Remove A3 / VOLTAGE_MONITOR

Right now this cannot be used. The ability to check the voltage monitor
should be added back in some fashion in the future.
2022-10-07 08:48:36 -05:00
Dan Halbert 041885da1b
Merge pull request #7011 from jepler/pico-w-resize-circuitpy-again
switch flash split to leave 512kB for CIRCUITPY
2022-10-07 08:32:18 -04:00
Neradoc 3a6382d1ea cyw43.CywPin should be the class, not a string 2022-10-07 02:11:05 +02:00
Jeff Epler 644d293641
Fix CIRCUITPY drive offset in flash correctly, accounting for NVM
.. and fix nvm to read/right the correct area.

.. putting a comment in link.ld to explain it all

Closes #7012
2022-10-06 12:39:46 -05:00
Jeff Epler 07cd2ff065
restore 4kB gap pending resolution of #7011 2022-10-06 11:20:48 -05:00
Dan Halbert 8d82e4ba5f
Merge pull request #7008 from MicroDev1/patch
Cleanup `mpconfigboard.mk` of espressif boards
2022-10-06 11:20:11 -04:00
Jeff Epler 6e2c24083a
switch flash split to leave 512kB for CIRCUITPY 2022-10-06 10:12:22 -05:00
Dan Halbert e0517c7379
Merge pull request #6999 from jepler/picow-ssl
pico_w: implement ssl with caveats
2022-10-06 10:51:36 -04:00
microDev 4f753251db
cleanup `mpconfigboard.mk` of espressif boards
- move `INTERNAL_FLASH_FILESYSTEM` to `mpconfigport.mk`
- move `LONGINT_IMPL` to `mpconfigport.mk`
- move `CFG_TUD_TASK_QUEUE_SZ` to `Makefile`
2022-10-06 16:15:01 +05:30
microDev b0ef35d50b
update storage extension implementation 2022-10-06 09:19:56 +05:30
Dan Halbert 296960dd89 shorten board.c 2022-10-05 20:23:19 -04:00
Neradoc d31acdef6c
we don't use AUTORESET_DELAY_MS 2022-10-06 02:19:48 +02:00
Jeff Epler 2dc283f578
close underlying socket object when closing ssl socket 2022-10-05 15:10:14 -05:00
Jeff Epler 4a9389d347
remove debug message 2022-10-05 14:57:04 -05:00
Jeff Epler 14f2309b6f
Enable more key exchange methods
This is intended (but not entirely verified) to match our esp32 builds.
It does fix accessing https://circuitpython.org, which failed before with
"MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE".

It still doesn't work on a personal website of mine with valid letsencrypt
certificate but I haven't verified whether it works on esp32s2 with CP.
That site only allows TLS 1.3, while this mbedtls only supports up to
1.2.
The version of mbedtls we adopted based on micropython's use has no
TLS 1.3 support, but the one in espressif esp-idf does.
2022-10-05 14:56:27 -05:00
Jeff Epler fabfdcf6fe
More ssl work 2022-10-05 14:56:26 -05:00
Jeff Epler 944d388158
copy esp_crt_bundle.c from esp-idf@d51f7d8821 2022-10-05 14:56:26 -05:00
Jeff Epler a64c1a11c5
move nina-fw certificates so it can be shared with other ports 2022-10-05 14:56:25 -05:00
Jeff Epler 09023abcd2
Update espressif function prototype to match 2022-10-05 14:56:25 -05:00
Kyle Mohr dd5f9411c8
Merge branch 'adafruit:main' into main 2022-10-05 13:44:12 -05:00
Jeff Epler dcb650c513 pico w: add ssl module
Note: at this time, the ssl module on pico_w never verifies the server
certificate. This means it does not actually provide a higher security
level than regular socket / http protocols.
2022-10-05 13:12:43 -04:00
Jeff Epler 2bd50673b6
Finish adapting flash storage size
Before this, CIRCUITPY would start at 1MB anyway. This appeared to work
only because I hadn't checked the actual size of the CIRCUITPY drive,
and because until now the flash hadn't actually crossed that 1MB
boundary into CIRCUITPY storage.

WARNING: on pico_w, upgrading/downgrading CircuitPython across this commit
boundary will erase the CIRCUITPY filesystem. After this commit,
switching between pico and pico_w firmware will erase the CIRCUITPY
filesystem
2022-10-05 10:02:38 -05:00
Jeff Epler 52bca95208
Refactor dotenv module so that it can be tested on host
.. it needs to operate on a FILE* rather than FIL depending on
the build.

Note that this is comparing output to expected, not to cpython dotenv
package. Because run-tests.py starts the CPython interpreter with the
'-S' (skip site initialization) flag, pip-installed packages are
not available for import inside a test file. Instead, the exp
file is generated manually:
```
circuitpython/tests$ python3 circuitpython/dotenv_test.py > circuitpython/dotenv_test.py.exp
```

Unfortunately, the test fails on test e15:
```diff
FAILURE /home/jepler/src/circuitpython/tests/results/circuitpython_dotenv_test.py
--- /home/jepler/src/circuitpython/tests/results/circuitpython_dotenv_test.py.exp	2022-10-04 09:48:16.307703128 -0500
+++ /home/jepler/src/circuitpython/tests/results/circuitpython_dotenv_test.py.out	2022-10-04 09:48:16.307703128 -0500
@@ -14,7 +14,7 @@
 line
 e13 e13value
 e14 None
-e15 e15value
+e15 None
 e16 #
 e17 def
 e18 #has a hash
```
2022-10-04 09:51:27 -05:00
microDev 2618e11002
use next update partition 2022-10-04 19:42:48 +05:30
microDev 9fe7308b88
conditionally add storage extension 2022-10-04 17:26:28 +05:30
microDev 7d8ff20dac
add initial storage extension support 2022-10-04 17:25:48 +05:30
Kyle Mohr 02e115cbc2
Update mpconfigboard.mk 2022-10-04 00:03:59 -05:00
Kyle Mohr 330b96726a add newlines to end of files 2022-10-04 04:56:31 +00:00
Kyle Mohr 5268ef01c9
Utilize VID/PID from native USB port 2022-10-03 23:45:28 -05:00
Kyle Mohr cffc1bfcab
sdkconfig didn't get committed for some reason... 2022-10-03 22:54:31 -05:00
Kyle Mohr a948dc399b add esp32-s2-devkitc-1-n8r2 variant 2022-10-04 03:51:51 +00:00
Dan Halbert 90f6096955 fix ai-thinker creation ids; fix some typos elsewhere 2022-10-03 15:29:03 -04:00
Dan Halbert ad79f595a5
Merge pull request #6974 from MicroDev1/patch
Couple Minor Fixes
2022-10-01 13:12:01 -04:00
Dan Halbert 7bb90dbf45 remove redundant port/*/.gitignore; cleanup others 2022-10-01 11:52:36 -04:00
Jeff Epler 40c2de833d
doc improvements 2022-10-01 10:09:33 -05:00
Jeff Epler d3e85d165e
Set cyw43 power management as needed, default to disabled
.. the value actually needs to be enforced each time the STA or AP
is enabled, because internally there's a call to cyw43_wifi_pm with the
library's defaut power management value, not ours.

Add a getter, though it only returns our idea of what the power
management register is set to, it doesn't read out from the actual
hardware, sadly.
2022-10-01 08:20:34 -05:00
Jeff Epler 943b992bfc
Improve cyw43.set_power_management documentation
.. and provide 4 preset values
2022-10-01 07:52:08 -05:00
microDev 7eaeca4eb3
update espressif port's .gitignore 2022-10-01 09:14:48 +05:30
Dan Halbert f9e655da47
Merge pull request #6962 from dhalbert/espressif-deep-sleep-hold-pins
Espressif: do not hold pins during deep sleep if not necessary
2022-09-30 22:20:44 -04:00
Dan Halbert bced76887e
Merge pull request #6973 from jepler/rp2040-fix-warnings
Rp2040 fix warnings
2022-09-30 16:21:31 -04:00
Jeff Epler c02602ace1
Enable strict-overflow diagnostic 2022-09-30 11:19:23 -05:00
Jeff Epler afc1c0e3bb
Fix unused variable diagnostics, make it a fatal error 2022-09-30 11:19:22 -05:00
Jeff Epler 37620d4eb0
Fix several classes of compiler diagnostic & make fatal
* -Wno-nested-externs
 * -Wno-strict-prototypes
 * -Wno-double-promotion
 * -Wno-sign-compare
2022-09-30 11:19:22 -05:00
Jeff Epler c6eef3931f
Enable warning for unused static functions 2022-09-30 11:19:22 -05:00
Jeff Epler 2c9c6fc80e
Remove unused static functions 2022-09-30 11:19:21 -05:00
Jeff Epler 907c5d387f
Tweak black_bindings
Originally, black_bindings found each contiguous "//|" block and sent
it to black independently. This was slower than it needed to be.

Instead, swap the comment prefix: when running black, take off
"//|" prefixes and put "##|" prefixes on all un-prefixed lines.
Then, after black is run, do the opposite operation

This more than doubles the overall speed of "pre-commit run --all",
from 3m20s to 55s CPU time on my local machine (32.5s to under 10s
"elapsed" time)

It also causes a small amount of churn in the bindings, because
black now sees enough context to know whether one 'def' follows another
or ends the 'def's in a 'class'. In the latter case, it adds an extra
newline, which becomes a "//|" line.

I'm less sure why a trailing comma was omitted before down in
rp2pio/StateMachine.c but let's roll with it.
2022-09-30 11:18:13 -05:00
Jeff Epler fcf7cfe838
Merge pull request #6960 from jepler/picow-server
Pico W: implement more things
2022-09-30 11:15:37 -05:00
Jeff Epler 0912889106
raspberrypi: statically allocate storage for hostname 2022-09-30 10:05:11 -05:00
Jeff Epler 84c7ac4a81
Make cyw43.set_power_management() be a function as intended 2022-09-30 07:56:59 -05:00
Jeff Epler 3281e14be1
fix reference to board module 2022-09-29 21:37:34 -05:00
Jeff Epler 4de9487820
It turns out you CAN have too many GPIO 2022-09-29 20:10:33 -05:00
Dan Halbert 9d1b12066d Espressif: do not hold pins during deep sleep if not necessary 2022-09-29 20:11:48 -04:00
flom84 7af8a23ddf Use macro for computing size of array. 2022-09-29 22:10:21 +02:00
flom84 3609c29b27 Update STM DFU mode software implementation.
- fix for sizeof array calculation.

 - follow ARM recommendation to turn off interruptions with NVIC.
2022-09-29 21:15:51 +02:00
Jeff Epler 510bd11f58
Enable reading back value of cyw43 pin
Now, `led.value = not led.value` works as a way to toggle the LED state.

Closes: #6959
2022-09-29 11:06:11 -05:00
Jeff Epler a3bcfd6911
Add pin_CYW1 for SMPS_MODE 2022-09-29 10:54:06 -05:00
Jeff Epler 72b06021c0
fix doc formatting 2022-09-29 10:27:13 -05:00
Jeff Epler 74cdf42ece
pico w: implement bind, listen, accept
this works with some simple tcp & udp echo service code
2022-09-29 10:02:20 -05:00
Jeff Epler 12ea04ca70
Add cyw43.set_power_management 2022-09-29 10:02:20 -05:00
Jeff Epler 91f1266db5
Document CywPin 2022-09-29 10:02:19 -05:00
Jeff Epler 56f9f0d136
add tx power get/set 2022-09-29 10:02:19 -05:00
Jeff Epler 71a00157ba
Add hostname setting 2022-09-29 10:02:19 -05:00
Jeff Epler c6d3163841
remove comment about something the Makefile does now 2022-09-29 10:02:18 -05:00
Dan Halbert db065a299f
Merge pull request #6933 from jepler/🥧🐮
Implement a useful subset of `wifi` and `socketpool` modules on 🥧🐮
2022-09-28 18:09:24 -04:00
Jeff Epler 2dd6df9d93
better to explain why this file has no useful content 2022-09-28 15:19:06 -05:00
Jeff Epler 72bce51ce3
restore submodule commits 2022-09-28 14:48:54 -05:00
Jeff Epler 3d76aa00f5
implementations not needed 2022-09-28 14:38:13 -05:00
Jeff Epler 09d4fbc557
Remove FIXME
this was verbatim-copied from micropython
2022-09-28 14:38:13 -05:00
Jeff Epler 6189156a0b
Add missing NotImplementedErrors 2022-09-28 14:38:12 -05:00
Jeff Epler edf1efd728
Add CYW43 guards to more things 2022-09-28 14:38:12 -05:00
Jeff Epler e100981d90
revert CFLAGS change 2022-09-28 14:38:12 -05:00
Jeff Epler 4380292848
comment why not actually reset wifi 2022-09-28 14:38:11 -05:00
Jeff Epler ff7731491e
Implement enough of socketpool to do ntp and non-https requests 2022-09-28 10:06:34 -05:00
Jeff Epler a7a1bd7880
Implement DNS resolution
```
>>> s = socketpool.SocketPool(wifi.radio)
>>> s.getaddrinfo("google.com", 80)
[(0, 0, 0, '', ('142.250.81.206', 80))]
```
2022-09-28 10:06:33 -05:00
Jeff Epler 6c3cdceb45
Implement scan, connect, ping
My pings go out, and then they come back

```py
import os
import wifi
import ipaddress

wifi.radio.connect(os.getenv('WIFI_SSID'), os.getenv('WIFI_PASSWORD'))
ipv4 = ipaddress.ip_address("8.8.4.4")
print("Ping google.com: %f ms" % (wifi.radio.ping(ipv4)*1000))
```
2022-09-28 10:06:33 -05:00
Jeff Epler 346fff2e7c
cyw43 basic gpio support, hwaddr in boot_out 2022-09-28 10:06:33 -05:00
Jeff Epler 22b04aef22
Reindent a block 2022-09-28 10:05:53 -05:00
Jeff Epler 9caa65cf28
allow a board to override link.ld 2022-09-28 10:05:53 -05:00
Jeff Epler 77fcb8a5a3
disable rainbowio on this arduino_nano_33_iot
The gpio changes took away enough code space that it doesn't fit.
2022-09-28 10:05:32 -05:00
Dan Halbert 39492b3403
Merge pull request #6951 from jepler/black-bindings
Black bindings
2022-09-27 17:57:07 -04:00
Jeff Epler b2cc8d2aad
run black_bindings across all bindings 2022-09-27 15:21:42 -05:00
Jeff Epler 4e96667d50
Manual fix for oddball cases 2022-09-27 15:19:32 -05:00
Kattni Rembor ea5e4b20b0 Add more spacing for aliased pins. 2022-09-27 15:50:30 -04:00
Kattni Rembor 9c4c7241d0 Update pin order to match silk. 2022-09-27 15:24:07 -04:00
flom_84 96a83ecbfe
Update mpconfigboard.h 2022-09-26 19:58:33 +02:00
flom84 e626502fd2 Add USB VID and PID from STM. 2022-09-26 19:45:33 +02:00
flom84 2bd2406d13 Update license info and remove redundant board functions. 2022-09-26 19:39:07 +02:00
Florin Maticu 8754a6ec53 Add circuitpython support for STM Nucleo-F446RE. 2022-09-26 19:12:42 +02:00
Dan Halbert de80db681f
Merge pull request #6915 from dhalbert/ringbuf-cleanup
ringbuf cleanup
2022-09-25 17:50:21 -04:00
Jeff Epler 1c8e12660c
Merge pull request #6944 from Neradoc/doc-fix-usb-cdc
docs: usb_cdc.Serial.readinto has no nbytes parameter
2022-09-25 13:35:58 -05:00
Dan Halbert e25c195b78 fix broadcom UART ringbuf init 2022-09-25 09:12:23 -04:00
Neradoc 5346b89b08 don't use @property in docs, just document as a property 2022-09-25 07:18:18 +02:00
Dan Halbert d44edc4a0c
Merge pull request #6937 from jepler/issue6839
Use new unique ID for this board
2022-09-24 23:55:06 -04:00
Jeff Epler f12136af7f
esp32-camera: sync doc with code.
Closes: #6836
2022-09-23 08:54:00 -05:00
Jeff Epler 5bbbca4d44
lock and unlock i2c bus around any ops that might access it 2022-09-22 17:03:05 -05:00
Jeff Epler a769beed3f
Use new unique ID for this board 2022-09-22 16:23:38 -05:00
Dan Halbert ea15a9118a ringbuf cleanup 2022-09-21 10:03:05 -04:00
Dan Halbert c567b43441 add CIRCUITPY_USB_IDENTIFICATION to turn off on smallest builds 2022-09-20 14:32:38 -04:00
Florin Maticu 745d83adac DFU mode implementation for STM32F4 MCU. 2022-09-18 18:24:38 +02:00
Jeff Epler 1091d51af2
Merge pull request #6918 from UnexpectedCircuitPython/main
Added support for Unexpected Maker TinyPICO (V2/V3) and TinyPICO Nano
2022-09-17 21:39:17 -04:00
Seon Rozenblum 268b3f0dde Added support for Unexpected Maker TinyPICO (V2/V3) and TinyPICO Nano boards using ESP32-PICO-D4 2022-09-18 09:49:30 +10:00
Paul Price b2ffda219a
updated a pin definition 2022-09-17 16:53:24 -04:00
Dan Halbert 8a568d18b5
Merge pull request #6757 from latkinso42/adcdma
analogbufio
2022-09-16 08:32:24 -04:00
MicroDev 4a69dfa50c
Merge pull request #6907 from dhalbert/preserve-pins-on-deep-sleep
allow preserving pin state during deep sleep
2022-09-16 17:52:04 +05:30
MicroDev f994b11d52
Merge pull request #6909 from dhalbert/fesp32s2tft-remove-unneeded-code
Remove unneeded workaround for Feather ESP32-S2 TFT
2022-09-16 10:18:13 +05:30
Dan Halbert 7914870f9a
Merge pull request #6908 from dhalbert/nrf-busio-none-empty-uart-read
nrf: return None when UART.read() reads nothing
2022-09-15 22:12:06 -04:00
Dan Halbert 6bb47038d5 Merge remote-tracking branch 'adafruit/main' into adcdma 2022-09-15 20:42:51 -04:00
Dan Halbert 0ab4f12dc4 fix some submodules commit skew 2022-09-15 20:36:29 -04:00
Dan Halbert 82694b7265 remove extraneous copyrights 2022-09-15 20:31:08 -04:00
Dan Halbert 4df8a51982 Remove unneeded workaround for Feather ESP32-S2 TFT 2022-09-15 20:06:47 -04:00
Dan Halbert 3abfd212ec nrf: return None when UART.read() reads nothing 2022-09-15 19:40:02 -04:00
Dan Halbert 60f43b1703 allow preserving pin state during deep sleep 2022-09-15 17:35:14 -04:00
Wind-stormger 56c5f1eedf Add BananaPi BPI-Leaf-S3.
Based on esp32s3, all available pins are drawn.
2M PSRAM, 8M FLASH.
A JST SH 4-pin Connector can be used for STEMMA QT / Qwiic.
A MX 1.25mm 2-Pin Connector Lithium battery power supply.
A WS2812 LED.
2022-09-15 14:18:24 +08:00
Dan Halbert 14fc4a0797
Merge pull request #6898 from dhalbert/espressif-pwmout-reset
Espressif pwmout reset fixes
2022-09-14 18:47:05 -04:00
Dan Halbert ae64f9fd78
Merge pull request #6899 from BPI-STEAM/CircuitPython-main-BPI-BIT-S2-PR
Add BananaPi BPI-Bit-S2 .
2022-09-13 23:02:46 -04:00
Wind-stormger 6f4cc611ed Add BananaPi BPI-Bit-S2 .
Adds support for the BananaPi BPI-Bit-S2 Boards.
Based on esp32s2 chip.
With 25 ws2812 LEDs, 1 buzzer, 2 photosensitive sensors, 1 thermosensitive sensor,
2 buttons on the front, 1 reset button and 1 boot button on the back.
2022-09-14 10:21:23 +08:00
Dan Halbert d2f28eb980
Merge pull request #6887 from RetiredWizard/Broadcom-UART
Enable CIRCUITPY_CONSOLE_UART by default on Broadcom boards
2022-09-13 14:35:16 -04:00
Dan Halbert 2b25a5d574 update esp32-camera 2022-09-13 13:16:37 -04:00
Dan Halbert 14adfb16dd avoid pwmout_reset() workaround by reordering in main(); remove unnecessary never-resets 2022-09-12 21:32:21 -04:00
Dan Halbert d0d10179c2 fix logic in pwmout_reset() 2022-09-12 17:03:45 -04:00
Kong Wai Weng c157f1cb39 Cast pin_number to int8_t so that it can be used with switch-case. 2022-09-12 18:56:15 +08:00
Kong Wai Weng 0ae015e4d9 Removed whitespaces. 2022-09-12 18:25:27 +08:00
Kong Wai Weng aaa2be1200 Set the default pin state for GPIOs to pull down. 2022-09-12 18:19:33 +08:00
microDev 36221bd749
update board microdev_micro_c3 2022-09-11 13:31:38 +05:30
RetiredWizard 14b604f48c
Add LED pin definition to Zero 2W board 2022-09-10 23:18:25 -04:00
RetiredWizard 28756936d5
Add HW_LED_STATUS pin to Zero 2W board 2022-09-10 23:17:02 -04:00
RetiredWizard 38a0ca324e
Uses different pins for RX/TX 2022-09-10 21:48:10 -04:00
RetiredWizard f4eb618598
Define CIRCUITPY_CONSOLE_UART_TX/RX 2022-09-10 21:42:41 -04:00
RetiredWizard 1bdf9fca40
Define CIRCUITPY_CONSOLE_UART_TX/RX 2022-09-10 21:40:31 -04:00
RetiredWizard 1d03d73c13
Define CIRCUITPY_CONSOLE_UART_TX/RX 2022-09-10 21:39:51 -04:00
RetiredWizard 29e0aba72f
Define CIRCUITPY_CONSOLE_UART_TX/RX 2022-09-10 21:39:03 -04:00
RetiredWizard fb4062d23f
Define CIRCUITPY_CONSOLE_UART_TX/RX 2022-09-10 21:38:16 -04:00
RetiredWizard 72c479efe6
Define CIRCUITPY_CONSOLE_UART_TX/RX 2022-09-10 21:37:31 -04:00
RetiredWizard a892af8d77
Define CIRCUITPY_CONSOLE_UART_TX/RX 2022-09-10 21:36:41 -04:00
RetiredWizard 7708f19ec8
Define CIRCUITPY_CONSOLE_UART_TX/RX 2022-09-10 21:36:01 -04:00
RetiredWizard 0913e3a148
Define CIRCUITPY_CONSOLE_UART_TX/RX 2022-09-10 21:34:45 -04:00
RetiredWizard ecb74aa652
Remove CIRCUITPY_CONSOLE_UART_TX/RX 2022-09-10 21:33:29 -04:00
microDev 8cd4b9fc04 fix espressif run modes 2022-09-10 18:08:09 +05:30
Kong Wai Weng 2fbb3090e2 Changed the pins assignment. 2022-09-09 16:50:14 +08:00
Lee Atkinson f279a2dbb2
Merge branch 'adafruit:main' into adcdma 2022-09-08 11:46:01 -04:00
Dan Halbert dd37c81136
Merge pull request #6847 from dhalbert/status-bar-control
Allow enabling and disabling of status bar
2022-09-08 10:48:36 -04:00
Dan Halbert 58b00467c4
Merge pull request #6878 from dhalbert/weak-board-defs
Use MP_WEAK for default board.c routines
2022-09-08 10:47:08 -04:00
Dan Halbert 4cb69a51d5 Use MP_WEAK for default board.c routines 2022-09-08 07:36:50 -04:00
latkinso42 c1f57c6ceb Pushing for resolution 2022-09-07 18:53:35 -04:00
Dan Halbert 328138225b
Merge pull request #6868 from PontusO/main
Added challenger_rp2040_wifi_ble board
2022-09-07 18:36:52 -04:00
Seon Rozenblum 6c4f352533 Fixed incorrect IO naming for ProS3 and FeatherS3 2022-09-07 19:51:45 +10:00
latkinso42 25078a24a3 Attempt to fix Build-Docs and Pre-Commit 2022-09-06 18:58:57 -04:00
Pontus Oldberg c043c437f7 Merge branch 'main' of https://github.com/PontusO/circuitpython 2022-09-06 09:37:25 +02:00
Pontus Oldberg 9a937e6ea3 Added challenger_rp2040_wifi_ble board. 2022-09-06 09:37:21 +02:00
latkinso42 5498b3ac91 fix to analogbufio BufferedIn.h 2022-09-05 14:22:08 -04:00
Scott Shawcroft a09836eb4a
Merge pull request #6681 from PontusO/main
Adds support for the Challenger RP2040 SubGHz board
2022-09-05 10:01:51 -07:00
latkinso42 a1856ea3e9 Renaming module from adcbuffer to analogbufio 2022-09-05 12:11:49 -04:00
latkinso42 478b40ecf9 Merge branch 'adcdma' of https://github.com/latkinso42/circuitpython into adcdma
Syncing with remote
2022-09-04 16:07:37 -04:00
Lee Atkinson 3cd8259a78
Merge branch 'adafruit:main' into adcdma 2022-09-04 15:59:20 -04:00
latkinso42 d7a1db5b87 Changes per review 2022-09-04 15:57:59 -04:00
Dan Halbert 14498f793d
Merge pull request #6859 from wemos/s3_cpython
Add LOLIN S3 ESP32-S3 board.
2022-09-04 13:10:52 -04:00
bill88t ca7fb6dede removal of sda-scl and add "GP" to 40,41 2022-09-04 18:05:50 +03:00
bill88t e1891038c8 Forgor the one IO pin and sda-scl 2022-09-04 16:59:56 +03:00
Dan Halbert 449b43e5a6
Merge pull request #6863 from jepler/rp2pio-erroneous-mask
rp2pio: fix occasional bug when not using OUT pins
2022-09-04 09:15:35 -04:00
Jeff Epler a3e17189a4
rp2pio: fix occasional bug when not using OUT pins
a NULL first pin object is used to indicate that there are zero
of some kind of pin associated with the StateMachine. However,
mask_and_rotate wasn't checking for zero. It actually read data from
near address 0x0 and (in my case) got a nonzero mask, which then
caused a program with GPIO11 and GPIO12 as input with pull-up and no
out pins to erroneously encounter the error "pull masks conflict with
direction masks"
2022-09-03 20:39:42 -05:00
wemos 3a18d285a2 Add LOLIN S3 ESP32-S3 board. 2022-09-03 11:06:51 +08:00
latkinso42 6fe2ea4513 Merging back with updated main files 2022-09-02 15:51:45 -04:00
Pontus Oldberg 59fb3fbbd6
Merge branch 'adafruit:main' into main 2022-09-01 10:35:13 +02:00
Dan Halbert 52080e24eb status bar control 2022-08-30 15:23:44 -04:00
Dan Halbert 3ba385ff5c
Merge pull request #6794 from jepler/esp32-camera-error-checking
Esp32 camera error checking
2022-08-30 11:41:42 -04:00
Dan Halbert 371e544a92
Merge pull request #6823 from pypewpew/ugame10-fix
Fix ugame.py for the ugame10 board
2022-08-29 12:34:02 -04:00
Jeff Epler 2c6f57be5e
Update ports/espressif/common-hal/esp32_camera/Camera.c
Co-authored-by: Mark <56205165+gamblor21@users.noreply.github.com>
2022-08-28 16:46:50 -05:00
Lee Atkinson 04af01a672 Pin Validation fixed/readmultiple return fixed 2022-08-27 14:47:12 -04:00
Radomir Dopieralski 0a0c03c3d2 Fix ugame.py for the ugame10 board
It was still trying to use the gamepad module, and there was a typo
2022-08-26 17:07:44 +02:00
Jeff Epler ebd58155f2 bump pico-sdk to 1.4.0 2022-08-26 09:54:16 -05:00
Jeff Epler dc27fb967d error at runtime if no psram actually reserved 2022-08-26 09:27:50 -05:00
Jeff Epler 9f22e75e5e error if camera is configured but no psram 2022-08-26 09:27:50 -05:00
Jeff Epler 8ed6a6135a Disable camera on boards without psram 2022-08-26 09:27:50 -05:00
Dan Halbert 83838fc4fd
Merge pull request #6798 from DavePutz/issue_6735
Fix handling of zero-length pulseout pulse
2022-08-25 07:49:28 -04:00
Lee Atkinson 37b6079c05 Merge branch 'adcdma' of https://github.com/latkinso42/circuitpython into adcdma
Reconciling remote updates
2022-08-24 21:46:28 -04:00
Lee Atkinson 55c0404d85
Merge branch 'adafruit:main' into adcdma 2022-08-24 21:07:12 -04:00
Lee Atkinson 6fd08483e2 Tidying code for PR/ Minor Issues 2022-08-24 17:41:51 -04:00
DavePutz c00a630f50
Update PulseOut.c
reorder the tests for zero-length
2022-08-23 15:58:27 -05:00
root 3daebb36c3 Fix handling of zero-length pulseout pulse 2022-08-23 15:17:54 -05:00
Jeff Epler 6572f85913
Merge pull request #6779 from dhalbert/matrixportal-more-ram
matrixportal: remove ulab to make room to freeze portalbase
2022-08-23 09:41:36 -06:00
Lee Atkinson e23b621d69 Fixing 8 bit and 12 bit conversion 2022-08-22 18:55:55 -04:00
Lee Atkinson f5655dd48c Fixing Build errors/ DMA Xfer Rate 2022-08-21 11:44:40 -04:00
Lee Atkinson 68671399d1 More formating 2022-08-19 10:51:13 -04:00
Lee Atkinson d3c3c9eac4 Tidy a few things 2022-08-18 19:10:16 -04:00
Lee Atkinson f91af513b7 Introduced odule adcbuffer / removed analogio/AnalogFastIn 2022-08-18 16:23:17 -04:00
Dan Halbert 0c87d0b40d matrixportal: remove ulab instead of bleio HCI 2022-08-18 10:23:37 -04:00
Lee Atkinson 34b8fbaf14
Merge branch 'adafruit:main' into adcdma 2022-08-18 09:08:10 -04:00
Dan Halbert 2664d3766d matrixportal: remove BLEIO HCI to make room to freeze portalbase 2022-08-18 07:43:31 -04:00
arturo182 23f2b62196 Add the Solder Party BBQ20KBD board 2022-08-17 20:44:23 +02:00
Scott Shawcroft 2f0e209eca
Merge pull request #6772 from dhalbert/esp32-touch-fix
Fix ESP32 touch; rework common code a bit
2022-08-17 10:24:22 -07:00
Dan Halbert 2bc8d73776 Fix ESP32 touch; rework common code a bit 2022-08-16 20:04:27 -04:00
Scott Shawcroft 4b1d1fd72d
Merge pull request #6768 from mayrhomar/main
Add Waveshare ESP32-S2-Pico-LCD
2022-08-16 09:50:46 -07:00
Scott Shawcroft 3fbddfde59
Merge pull request #6758 from gamblor21/rp2040_i2ctarget
Rp2040 i2ctarget support
2022-08-15 13:57:49 -07:00
Martin 528da05f54 Add Waveshare ESP32-S2-Pico-LCD 2022-08-15 16:46:14 +02:00
Lee Atkinson 4542c801b0 Tidying up loose endson draft PR 2022-08-14 13:03:33 -04:00
lady ada 2f2ccdddbf pycam rev b pins 2022-08-13 23:41:35 -04:00
gamblor21 7584363f66 Forgot an include 2022-08-13 17:41:45 -05:00
gamblor21 1ae2a2154e Initial i2ctaret commit 2022-08-13 17:00:43 -05:00
MicroDev fa3e265bfb
Merge pull request #6753 from tannewt/esp_led_reset
Audit all boards with LED pins defined
2022-08-13 15:25:02 +05:30
Lee Atkinson 8cd12b2478 Copyright Change 2022-08-12 16:01:58 -04:00
Lee Atkinson 81c7ba899d Copyright Update/Acknowledgements 2022-08-12 13:57:45 -04:00
Lee Atkinson 6d8e8c71fc Merge branch 'adcdma' of https://github.com/latkinso42/circuitpython into adcdma
Fixing code behind commits
2022-08-11 17:58:46 -04:00
Lee Atkinson ce24469848
Merge branch 'adafruit:main' into adcdma 2022-08-11 17:57:01 -04:00
Lee Atkinson c3c1e307c4 Sample Rate Enhancements 2022-08-11 17:50:30 -04:00
Scott Shawcroft df1435ae94
Audit all boards with LED pins defined
Add them as MICROPY_HW_LED_STATUS so that we can share reset code
for them. They aren't actually used for the status if another RGB
option is available. (But maybe they should be.)

Fixes #6717
2022-08-11 14:41:20 -07:00
Scott Shawcroft 5823bcc744
Merge branch 'main' into c3_short_send 2022-08-11 12:45:02 -07:00
Scott Shawcroft f1053fb963
Introduce port_yield()
This allows the web workflow send code to yield briefly when
waiting for more room to send in a socket. Waiting for an "interrupt"
could wait forever because the select task only waits for read and
error. Adding wait on write is tricky because much of the time we
don't care if the sockets are ready to write. Using yield avoids
this trickiness.
2022-08-11 11:25:34 -07:00
Lee Atkinson 5fb5fd0558
Merge branch 'adafruit:main' into adcdma 2022-08-10 18:33:52 -04:00
Scott Shawcroft f9d724c09e
Fix retries after successful connection.
We may have set retries to 0 to enforce a timeout but the connect
succeeded. When it succeeds, we want to allow retries later in
case we lose signal briefly. (The callback will do this too but
the connect function will override it after.)

Also, remove extra code from websocket that is leftover from
debugging.
2022-08-10 15:24:08 -07:00
Jeff Epler c2a45c1f27
Merge pull request #6739 from jepler/qrio-esp32camera
Enable qrio to work with rgb565 data, including byte-swapped data
2022-08-10 13:54:40 -05:00
Scott Shawcroft 7a5d2e81fc
Merge pull request #6734 from dhalbert/remove-autobrightness
Remove support for auto-brightness
2022-08-10 10:22:53 -07:00
Jeff Epler 86f9d98a5d fix documentation of framebuffer_count 2022-08-10 11:12:54 -05:00
Dan Halbert af64faae1e switch back one I2C message 2022-08-10 12:06:43 -04:00
Lee Atkinson e778112710
Merge branch 'adafruit:main' into adcdma 2022-08-10 10:29:17 -04:00
Lee Atkinson 9e0c580d3d AnalogFastIn 2022-08-10 09:42:24 -04:00
Dan Halbert 198c8fea11 merge from upstream and fix espressif_esp32s3_eye 2022-08-10 08:43:08 -04:00
Dan Halbert 02cc6c2aee Merge remote-tracking branch 'adafruit/main' into remove-autobrightness 2022-08-10 08:35:53 -04:00
Scott Shawcroft 138c92f035
Merge pull request #6727 from dhalbert/restore-deleted-modules
restore rainbowio and onewireio to a number of boards
2022-08-09 21:44:26 -07:00
Dan Halbert 41bcd7b260 Remove support for auto-brightness 2022-08-09 22:40:21 -04:00
Scott Shawcroft 59b4353282
Merge pull request #6713 from tannewt/exception_filename
Add exception filename to title bar
2022-08-09 16:59:12 -07:00
Jeff Epler 5040e1b7a5
Merge pull request #6684 from jepler/espressif-camera-2
Rewrite camera support for the Espressif port
2022-08-09 18:50:25 -05:00
Scott Shawcroft db837e2b48
Merge pull request #6725 from dhalbert/esp-stack-size-16kB
increase main task stack size from 8kB to 16kB
2022-08-09 16:40:16 -07:00
Scott Shawcroft 554063a817
Merge branch 'main' into espressif-camera-2 2022-08-09 14:07:14 -07:00
Scott Shawcroft 5084de1b73
Merge pull request #6708 from strid3r21/main
Added Smart Bee Design Boards
2022-08-09 14:06:11 -07:00
Dan Halbert c4db71d12e
Merge pull request #6721 from dhalbert/i2c-target
Change I2C terminology from "peripheral" to "target"
2022-08-09 16:12:17 -04:00
Dan Halbert 34b22eac2a restore rainbowio and onewireio to a number of boards 2022-08-09 16:10:17 -04:00
Dan Halbert 4021b44a39 increase main task stack size from 8kB to 16kB 2022-08-09 15:00:01 -04:00
Scott Shawcroft df52d995ed
Merge pull request #6714 from dannystaple/patch-2
Improve docs for rp2Pio Statemachine frequency
2022-08-09 10:50:27 -07:00
Scott Shawcroft b3b27a1d80
Remove extra leading spaces 2022-08-09 10:45:47 -07:00
Scott Shawcroft 556d01a685
Remove extra newline at end of file 2022-08-09 10:44:57 -07:00
Scott Shawcroft ce1273be7a
Pull Feather S2 TFT LED down on reset 2022-08-09 10:42:56 -07:00
Jeff Epler c74746f052 Cross references in documentation always help 2022-08-09 12:20:02 -05:00
Dan Halbert 84807cd6eb Change I2C terminology from "peripheral" to "target" 2022-08-09 13:13:19 -04:00
Scott Shawcroft d95cfc3abc
Merge pull request #6719 from dhalbert/huzzah32-web-workflow
enable web workflow on Feather HUZZAH32
2022-08-09 10:08:39 -07:00
Jeff Epler 5a85b8ab95 improve docstrings based on my best sleuthing 2022-08-09 11:42:19 -05:00
Jeff Epler ec839d6f90 these items should not have been disabled 2022-08-09 11:42:19 -05:00
Jeff Epler f87e34b9ed add shutter button 2022-08-09 11:42:19 -05:00
takayoshiotake 5ce3778d75 Add custom board: Octave RP2040 2022-08-09 22:19:38 +09:00
Dan Halbert 10275001ac enable web workflow on Feather HUZZAH32 2022-08-09 07:26:18 -04:00
paul 15ad24ba62 ran pre-commit. 2022-08-09 04:32:21 -04:00
Danny Staple 3c1c477c5b
Improve docs for rp2Pio Statemachine frequency
This frequency can be set to 0 for the system (133mhz) clock speed.
2022-08-08 22:14:55 +01:00
lady ada 2cd9222e5e add includes 2022-08-07 14:32:29 -04:00
lady ada 029b6b6fbe add default display 2022-08-07 14:12:40 -04:00
paul a6eadd6259 Added Bee Motion S3 board 2022-08-07 11:59:43 -04:00
paul f39058edc4 Added Bee S3 board 2022-08-06 22:22:20 -04:00
Lee Atkinson f69939c49c First Commit for AnalogFastIn 2022-08-06 16:22:50 -04:00
Lee Atkinson 56c44f6265 Merge remote-tracking branch 'origin/main' 2022-08-06 15:53:54 -04:00
Lee Atkinson 552f6af4a1 clean up 2022-08-06 15:50:22 -04:00
Jeff Epler 1a11ff864a
Merge remote-tracking branch 'origin/main' into espressif-camera-2 2022-08-05 21:08:12 -05:00
Jeff Epler 1da8065d6b
Merge remote-tracking branch 'origin/main' into espressif-camera-2 2022-08-05 16:38:51 -05:00
Scott Shawcroft 207311b02a
Merge branch 'main' into title_execution_status 2022-08-05 13:42:58 -07:00
Dan Halbert 8c10e09ba0
Merge pull request #6667 from jepler/esp-reserve-heap-for-idf
Add ability to reserve psram
2022-08-05 15:06:44 -04:00
Jeff Epler 3f49d77036
Improve esp32-s3-eye board definition 2022-08-05 13:10:21 -05:00
Scott Shawcroft e7d72b1ebe
Use libgcc from Arch on SAMD21 (it's smaller.)
Fixes #4705
2022-08-04 16:33:41 -07:00
Scott Shawcroft 83cbbc9946
Add BLE status to title bar 2022-08-04 16:33:10 -07:00
Scott Shawcroft 125b276af0
Get CIRCUITPY FATFS directly.
Otherwise, you may actually get a non-root filesystem.

Fixes #6575
2022-08-04 16:06:27 -07:00
Jeff Epler 861fa9625d
Add the ESP32-EYE aka ESP-EYE 2022-08-04 15:12:12 -05:00
Jeff Epler 98202c8568
Allow changing camera settings that require reinit
These can only be changed in a group, though any items to keep
unchanged can be unspecified or specified as None.
2022-08-04 15:12:11 -05:00
Jeff Epler 428fbcd343
remove debug message during build 2022-08-04 15:12:10 -05:00
Jeff Epler 0e26a937cc
Disable camera everywhere it doesn't fit 2022-08-04 15:12:08 -05:00
Jeff Epler 230532f0eb
one last doc build fix 2022-08-04 15:12:07 -05:00
Jeff Epler a9d53ad2a6
Fix "check-stubs" problems 2022-08-04 15:12:06 -05:00
Jeff Epler 7cb40c9054
further doc build fixes 2022-08-04 15:12:05 -05:00
Jeff Epler 81fb9a5f20
specify return type for docs 2022-08-04 15:12:04 -05:00
Jeff Epler 8bdbe0355a
Add more getters 2022-08-04 15:12:02 -05:00
Jeff Epler badcae5ace
Fix docstring errors 2022-08-04 15:12:01 -05:00
Jeff Epler aead0dfe45
Return a Bitmap from take() when appropriate 2022-08-04 15:12:00 -05:00
Jeff Epler 54fe753602
Enable gifio and qrio when appropriate 2022-08-04 15:11:59 -05:00
Jeff Epler 258f72640a
Implement a pile of getters & setters 2022-08-04 15:11:57 -05:00
Jeff Epler 69949ecb43
update PID for this board 2022-08-04 15:11:56 -05:00
Jeff Epler d1b89fca91
Reset camera when interpreter is reset 2022-08-04 15:11:55 -05:00
Jeff Epler f54c7adddc
Must treat NO_PIN cast to uint8_t the same as NO_PIN
Otherwise, deinitializing a camera with e.g., the powerdown
pin unspecified results in an assertion failure in a debug build.
2022-08-04 15:11:54 -05:00
Jeff Epler 1d1e139379
fix taking multiple pictures 2022-08-04 15:11:53 -05:00
Jeff Epler b903a020fd
Enable display on esp32-s3-eye 2022-08-04 15:11:52 -05:00
Jeff Epler 8d673bdbf5
reserve 1MB of PSRAM for camera framebuffer on esp32s3-eye
.. this setting can be overridden with a bigger or smaller value in
CIRCUITPY/.env but 1/8 of PSRAM seems like a good initial value. It's
enough to store a single 800x600 or 640x480 RGB565 frame, or multiple
smaller frames such as 320x240.
2022-08-04 15:11:51 -05:00
Jeff Epler 5db6db0128
add esp32-camera
This uses the esp32-camera code instead of our own homebrewed camera code.
In theory it supports esp32, esp32-s2 and esp32-s3, as long as they have
PSRAM.

This is very basic and doesn't support changing any camera parameters,
including switching resolution or pixelformat.

This is tested on the Kaluga (ESP32-S2) and ESP32-S3-Eye boards.

First, reserve some PSRAM by putting this line in `CIRCUITPY/_env`:
```
CIRCUITPY_RESERVED_PSRAM=524288
```
and hard-reset the board for it to take effect.

Now, the following script will take a very low-resolution jpeg file and print
it in the REPL in escape coded form:

```python
import board
import esp32_camera

c = esp32_camera.Camera(
    data_pins=board.CAMERA_DATA,
    external_clock_pin=board.CAMERA_XCLK,
    pixel_clock_pin=board.CAMERA_PCLK,
    vsync_pin=board.CAMERA_VSYNC,
    href_pin=board.CAMERA_HREF,
    pixel_format=esp32_camera.PixelFormat.JPEG,
    i2c=board.I2C(),
    external_clock_frequency=20_000_000)

m = c.take()
if m is not None:
    print(bytes(m))
```

Then on desktop open a python repl and run something like
```python
>>> with open("my.jpg", "wb") as f: f.write(<BIG PASTE FROM REPL>)
```
and open my.jpg in a viewer.
2022-08-04 15:11:50 -05:00