Commit Graph

9567 Commits

Author SHA1 Message Date
Bill Sideris
44d5326d4c
fix picow-ap 2022-11-30 19:36:00 +02:00
Bill Sideris
362018dcca
Merge branch 'main' into picow-ap 2022-11-30 19:11:03 +02:00
Dan Halbert
2f5ec1cab0
Merge pull request #7281 from jepler/esp32-trailing-dot
handle domain with trailing dot
2022-11-30 11:18:47 -05:00
Dan Halbert
c8390a7918
Merge pull request #7069 from jepler/exception-chain
Implement chained exceptions
2022-11-30 11:13:57 -05:00
Jeff Epler
286efc18fc
handle domain with trailing dot
Closes: #7032
2022-11-30 09:29:21 -06:00
Scott Shawcroft
a8c70aa7bd
Fix S3 deep sleep
Adding `-u ld_include_highint_hdl` forces the linker to keep the
high priority interrupt handler that calls the ipc_isr handler.

The deep sleep is waiting for this interrupt to be handled on core
0 before sleeping from core 1.

Fixes #6090
2022-11-29 17:20:38 -08:00
Jeff Epler
49ac82564c
Merge pull request #7278 from jepler/sdcardio-failures
Sdcardio failures
2022-11-29 15:13:53 -06:00
Jeff Epler
4af95f1cb1
atmel-samd: Ensure sdioio.SDCard pins are released 2022-11-29 13:45:18 -06:00
Jeff Epler
8e83f36c36
SAM E54 Xplained devkit hardfaults at start with -O2
I don't know why, but other samd5x are using -Os too, see the block above.

Closes: #7277
2022-11-29 13:05:39 -06:00
Scott Shawcroft
c13ca95da1
Add MDNS support to Pico W
This adds both cpy-MAC.local and circuitpython.local support.

Fixes #7214
2022-11-28 16:15:28 -08:00
Scott Shawcroft
ad2d190507
Merge pull request #7247 from tannewt/picow_web_workflow
Enable* web workflow for Pico W
2022-11-28 14:19:42 -08:00
m1cha1s
680e56c52a Changed creator id 2022-11-25 14:09:35 +01:00
m1cha1s
26fbb25653 Fixed formatting 2022-11-25 13:55:06 +01:00
m1cha1s
fb46e7c4d8 Defined esp32 board for the esp32 devkit v1 2022-11-25 12:13:44 +01:00
foamyguy
c6ca2bdd59 disable pixelmap on bluemicro833 2022-11-24 09:09:48 -06:00
Dan Halbert
79f4344860 fix playing mono files on stereo output 2022-11-23 22:11:41 -05:00
Scott Shawcroft
30563655d7
Merge pull request #7249 from dhalbert/wifi-connect-ap-api
correct Radio.connect() and .start_ap() signatures; clean up some code
2022-11-23 10:29:05 -08:00
Dan Halbert
17be447c4b correct Radio.connect() and .start_ap() signatures; clean up some code 2022-11-22 17:11:03 -05:00
Dan Halbert
6d022733b3
Merge pull request #7162 from rhooper/boards-list
add boards list to make error message
2022-11-21 23:18:37 -05:00
foamyguy
19f1119994 Merge branch 'main' into fastpixelmap
# Conflicts:
#	shared-module/adafruit_pixelbuf/PixelBuf.c
2022-11-21 20:25:58 -06:00
Scott Shawcroft
c3a96a63c0
Enable* web workflow for Pico W
* Except for circuitpython.local which depends on MDNS and will be
done in a follow up PR.

Progress on #7214
2022-11-21 16:24:05 -08:00
Bill Sideris
b40facd0b4
Error msg changes 2022-11-22 01:00:34 +02:00
Dan Halbert
df0150ff0e Add common settings to sdkconfig-esp32c3.defaults 2022-11-21 15:15:26 -05:00
Dan Halbert
85a83b8150 Simplify some ESP32-C3 board sdkconfig files 2022-11-21 12:35:10 -05:00
Dan Halbert
d4834cb7ec
Merge pull request #7234 from jepler/espressif-uart-console-break
Interrupt on UART 'break'
2022-11-19 14:46:18 -05:00
Dan Halbert
96fc85cd18
Merge pull request #7229 from dhalbert/rp2040-spi-mode-3
RP2040: have clock start high when SPI polarity high
2022-11-19 14:32:02 -05:00
Jeff Epler
4e0f8e7fcd
Interrupt on UART 'break'
Tested and working with the CH9102F USB converter on Adafruit's
Feather ESP32 V2 (& tio as the software on the host computer)

Closes: #7233
2022-11-19 10:57:21 -06:00
Dan Halbert
1611cf98da have clock start high in SPI mode 3 2022-11-18 18:27:38 -05:00
Bill Sideris
88bd9ef6b8
just change the ap error 2022-11-18 22:51:05 +02:00
MicroDev
7c51201e88
fix nRF build directory naming 2022-11-19 00:23:03 +05:30
MicroDev
c3c1717813
refactor common port specific Makefile code 2022-11-18 23:00:28 +05:30
MicroDev
e2a3597263
add awesome new make error message
Copied from initial implementation on atmel-samd

Co-authored-by: Rose Hooper <rhooper@toybox.ca>
Co-authored-by: Jeff Epler <jepler@gmail.com>
2022-11-18 11:27:23 +05:30
MicroDev
3a418379d3
Merge branch 'main' of origin into ESP32-S3-DevKitC-1-N32R8 2022-11-18 09:40:20 +05:30
Bill Sideris
b8cd6c093f
picow-ap progress 2022-11-17 21:47:39 +02:00
Neradoc
f9f1edbb08 setup PWM status LED on aithinker ESP32-C3 boards 2022-11-17 20:32:50 +01:00
Dan Halbert
be53193dde
Merge pull request #7219 from tannewt/c3_pwm_in_use
Fix PWM status LED never_reset
2022-11-17 13:59:47 -05:00
Bill Sideris
a234b74e87
Merge branch 'adafruit:main' into picow-ap 2022-11-16 21:32:46 +02:00
Scott Shawcroft
6689b9ad09
Merge pull request #7208 from domdfcoding/weact_pico_16mb
Add support for the 16MB WeAct Studio Pico
2022-11-16 09:59:37 -08:00
Scott Shawcroft
a4bd7721e9
Merge pull request #7217 from dhalbert/samd21-tick-event
samd21: port_disable_tick() should disable event channel
2022-11-16 09:05:48 -08:00
Dan Halbert
b74893eb07 samd21: port_disable_tick() should disable event channel 2022-11-15 21:52:12 -05:00
Jeff Epler
12545fb060
Add prototype feather esp32s2/s3 reverse tft board definition
This is not final hardware and may change!
2022-11-15 20:22:20 -06:00
Scott Shawcroft
8e4e84c58b
Match channel number, not timer number 2022-11-15 16:51:47 -08:00
Scott Shawcroft
93ee54a2fb
Fix PWM status LED never_reset
It doesn't need never reset because the status LED is only active
when user code isn't.

This also fixes PWM never reset on espressif so that deinit will
undo it.

Fixes #6223
2022-11-15 16:14:31 -08:00
Jeff Epler
ef34378b1d
Merge pull request #7201 from jepler/rp2040-light-sleep
raspberrypi: Make port_idle_until_interrupt work
2022-11-15 17:25:48 -06:00
Jeff Epler
ef93eda0a0
Merge pull request #7192 from bill88t/picow-debug
Fix pi cow debug compilation
2022-11-15 14:08:44 -06:00
Jeff Epler
412df210ad
Merge remote-tracking branch 'origin/main' into build-python3x 2022-11-15 14:02:09 -06:00
Scott Shawcroft
b8a2d3ffdc
Merge pull request #7212 from dhalbert/stm-pwm-fix
STM: off-by-one TIMx reference; other code cleanup and minor fixes
2022-11-15 11:50:53 -08:00
Dan Halbert
11dcd69f2c
Merge pull request #7207 from jepler/nicer-pin-checking
shared-bindings: Get rid of CYW43 special cases in shared-bindings
2022-11-14 23:35:26 -05:00
Bill Sideris
6954e569b7
since it ain't leaving.. 2022-11-15 00:05:01 +02:00
Bill Sideris
fde1c05e6d
Revert "remove lwip_src"
This reverts commit 398e9122a0.
It fails on LINK without them.
2022-11-14 20:03:41 +02:00
Dan Halbert
fdeaf805d3 STM: off-by-one TIMx reference; other code cleanup and minor fixes 2022-11-14 13:00:32 -05:00
Bill Sideris
398e9122a0
remove lwip_src 2022-11-14 19:33:06 +02:00
Bill Sideris
6ad61a3fd1
Radio.c work 2022-11-14 19:31:18 +02:00
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