Commit Graph

1079 Commits

Author SHA1 Message Date
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
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 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 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
Bill Sideris b8cd6c093f
picow-ap progress 2022-11-17 21:47:39 +02: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
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
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
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
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 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 983502d6e3 ignore pin changes before sleep 2022-11-11 15:31:49 -05: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
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
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
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
Petr Sedlacek f3ec46bbb5 Add missing pin definitions for 42. Keebs Frood 2022-11-04 15:33:16 +01:00
Jeff Epler 403a5b2681
Merge pull request #7126 from jepler/scorpio
add feather rp2040 scorpio
2022-11-02 14:47:40 -05: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 0221cc8df7 Merge remote-tracking branch 'adafruit/main' into alarm-lifetime 2022-10-28 14:11:32 -04: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
Dan Halbert 9307b62ad5 wip 2022-10-27 22:42:04 -04:00
Dan Halbert ca25016b52
Merge pull request #7119 from jepler/picow-reuseaddr
Enable, use SOF_REUSEADDR
2022-10-26 15:25:50 -04:00
Jeff Epler 7545e02a8e
add feather rp2040 scorpio 2022-10-26 10:05:37 -05:00
Jeff Epler 0cf096dda1
pico w: implement sslsocket bind, listen, accept 2022-10-25 14:46:41 -05: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
Kattni Rembor 5ea8b75e17 Add STEMMA_I2C() object to Picos for Cowbells. 2022-10-24 16:27:32 -04:00
Bill Sideris 7a50beb67e
PicoW more ap work 2022-10-22 11:58:44 +03:00
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
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 08e1cdb282
Merge pull request #7079 from jepler/picow-2xmss
Pico W grab bag
2022-10-19 15:03:00 -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
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
Jeff Epler d4b1d4d430
Fix GPIO state when initializing CYW43 pin
Closes: #7063
2022-10-15 13:10:22 -05: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
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
Georg Bøe e768b9ebb3 Return correct errno 2022-10-13 21:00:51 +02: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
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
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
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 747dc7746d handle scan channel bounds but note they do nothing for RP2040 CYW43 2022-10-07 16:22:17 -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
Jeff Epler 6e2c24083a
switch flash split to leave 512kB for CIRCUITPY 2022-10-06 10:12:22 -05: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 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
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
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 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
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 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 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
Dan Halbert de80db681f
Merge pull request #6915 from dhalbert/ringbuf-cleanup
ringbuf cleanup
2022-09-25 17:50:21 -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 ea15a9118a ringbuf cleanup 2022-09-21 10:03:05 -04:00
Dan Halbert 8a568d18b5
Merge pull request #6757 from latkinso42/adcdma
analogbufio
2022-09-16 08:32:24 -04:00
Dan Halbert 82694b7265 remove extraneous copyrights 2022-09-15 20:31:08 -04:00
Dan Halbert 60f43b1703 allow preserving pin state during deep sleep 2022-09-15 17:35:14 -04:00
Lee Atkinson f279a2dbb2
Merge branch 'adafruit:main' into adcdma 2022-09-08 11:46:01 -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
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 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
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
Lee Atkinson 04af01a672 Pin Validation fixed/readmultiple return fixed 2022-08-27 14:47:12 -04:00
Jeff Epler ebd58155f2 bump pico-sdk to 1.4.0 2022-08-26 09:54:16 -05:00
Lee Atkinson 6fd08483e2 Tidying code for PR/ Minor Issues 2022-08-24 17:41:51 -04: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
Lee Atkinson 34b8fbaf14
Merge branch 'adafruit:main' into adcdma 2022-08-18 09:08:10 -04:00
arturo182 23f2b62196 Add the Solder Party BBQ20KBD board 2022-08-17 20:44:23 +02:00
Lee Atkinson 4542c801b0 Tidying up loose endson draft PR 2022-08-14 13:03:33 -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
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 c3c1e307c4 Sample Rate Enhancements 2022-08-11 17:50:30 -04:00
Lee Atkinson 5fb5fd0558
Merge branch 'adafruit:main' into adcdma 2022-08-10 18:33:52 -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 41bcd7b260 Remove support for auto-brightness 2022-08-09 22:40:21 -04: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
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
Dan Halbert 84807cd6eb Change I2C terminology from "peripheral" to "target" 2022-08-09 13:13:19 -04:00
takayoshiotake 5ce3778d75 Add custom board: Octave RP2040 2022-08-09 22:19:38 +09: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
Lee Atkinson f69939c49c First Commit for AnalogFastIn 2022-08-06 16:22:50 -04:00
Pontus Oldberg c884194c92 Fixed incorrect PID. 2022-08-03 08:45:39 +02:00
Pontus Oldberg 03181fe362 Adds support for the Challenger RP2040 SubGHz board. 2022-07-31 10:36:04 +02:00
David Glaude 2baf3455bd
Add board.LED (alias of board.LED_R part of RGB)
Totally untested change (will try with the artifact), but I think every board should have a board.LED if possible to be able to use the learn guide basic instruction.
2022-07-28 16:46:56 +02:00
Neradoc 87e8994c4a no default extension for ESP, fix duplicate line in rp2 2022-07-26 18:15:59 +02:00
Neradoc eabe8b971a list extensions instead of macros names ("bin,uf2" not BIN_UF2)
the modules_support_matrix usees a dictionnary per board instead of a list
optionally include the frozen modules URLs in it
2022-07-26 18:15:59 +02:00
Neradoc d021d9ae4a Move build extensions to board directories
- define CIRCUITPY_BUILD_EXTENSIONS to predefined values
- set CIRCUITPY_BUILD_EXTENSIONS in port and board config
- reuse the support matrix "get_settings_from_makefile" to get it
- move the existing port and board specific values
- remove the C3 specific board values because it's not the default
- update build_release_files.py to use get_settings_from_makefile
2022-07-26 18:15:50 +02:00
Scott Shawcroft acdfda7d0e
Merge pull request #6624 from bwshockley/bwshockley-figpi
Add raspberrypi port - figpi
2022-07-25 15:23:52 -07:00
Scott Shawcroft c90167a9db
Merge pull request #6630 from ViktorWiz/w5500-evb-pico
Add WIZNet W5500-EVB-Pico
2022-07-25 15:16:32 -07:00
Jeff Epler 955bcee1b3
It's OK for an init program to be zero bytes long
Closes #6636
2022-07-23 20:01:31 -05:00
ViktorWiz ae6c0e347c Add WIZNet W5500-EVB-Pico 2022-07-22 17:31:58 +09:00
Benjamin Shockley dc686545c2
Update pins.c
Minor whitespace change.
2022-07-20 15:40:43 -05:00
Benjamin Shockley e9eeaf2096
Update mpconfigboard.h
Moved UART to pins 24/25.
2022-07-20 12:35:40 -05:00
Benjamin Shockley d01b65dd32
Create pins.c 2022-07-20 12:35:08 -05:00
Benjamin Shockley 3861a97f38
Create pico-sdk-configboard.h 2022-07-20 12:18:22 -05:00
Benjamin Shockley 3647cfa424
Create mpconfigboard.mk 2022-07-20 12:17:39 -05:00
Benjamin Shockley d2865764ca
Create mpconfigboard.h
Added file.
2022-07-20 12:12:31 -05:00
Benjamin Shockley 21af8f42cc
Create board.c 2022-07-20 11:11:49 -05:00
Scott Shawcroft d9f6e99942
Fix RP2040 UART
It couldn't receive more than 32 bytes in while checking in_waiting
because in_waiting didn't turn interrupts back on correctly.

Fixes #6579
2022-07-11 13:36:44 -07:00
Xu Hao be3482ff05 Set MICROPY_HW_LED_STATUS pin to the elecfreaks_picoed 2022-07-11 16:51:06 +08:00
Nick Lopez dce9396fe3 issue adafruit#6538 loose bounds checking on WAIT PIO instruction 2022-07-02 14:32:20 -07:00
Xu Hao 1599844b82 Add some frozen libraries to elecfreaks_picoed 2022-06-29 15:03:29 +08:00
Patrick Van Oosterwijck 0b80c62400
Merge branch 'adafruit:main' into rp2040-shim 2022-06-22 11:40:02 -05:00
Patrick Van Oosterwijck ad56a16c2d Add board Silicognition LLC RP2040-Shim 2022-06-14 11:28:41 -06:00
Omer Kilic 9fbad229c0 Add custom board: Electrolama minik (RP2040) 2022-06-14 15:51:10 +01:00
Pontus Oldberg 42f05a32a3
Merge branch 'adafruit:main' into main 2022-06-09 08:42:42 +02:00
Scott Shawcroft 9c20eb58e9
Merge pull request #6450 from mwisslead/rp2040_pulsein_common_hal_construct
Rp2040 pulsein improvements
2022-06-08 08:15:29 -07:00
Pontus Oldberg 5c13f844c7 Fixed pre-commit trailing whitespace 2022-06-08 16:43:49 +02:00
Pontus Oldberg 91000ea294 Adds support for Challenger RP2040 LoRa boards 2022-06-08 16:38:21 +02:00
Scott Shawcroft 2baf476530
Merge pull request #6463 from adafruit/7.3.x
Catch main up to 7.3.x
2022-06-06 11:58:05 -07:00
Nathan Young 2f0d82a50b Disable board.SPI() for Challenger NB RP2040 WiFi
This was done as a result of an issue with the SPI pin mappings.
Please refer to the following for additional information: https://ilabs.se/challenger-rp2040-wifi-spi-bug
2022-06-06 09:52:23 +02:00
Dan Halbert 80ae14202a
Merge pull request #6416 from FoamyGuy/display_brightness_pwm
display brightness pwm 500hz frequency
2022-06-05 23:52:42 -04:00
Dan Halbert ac282b2a73
Merge pull request #6440 from tannewt/translate_header
Switch translate() to the header file
2022-06-05 23:50:47 -04:00
Dan Halbert a61c4c1af9
Merge pull request #6411 from fabaff/weact-studio-pico
Add support for WeAct Studio Pico
2022-06-05 19:17:56 -04:00
Fabian Affolter 7a073317f7 Update PID (0x102E) 2022-06-06 01:03:02 +02:00
foamyguy 260994d16e Merge branch 'main' into display_brightness_pwm 2022-06-04 11:32:15 -05:00
foamyguy cbff9dd8e3 add new argument for all boards with built-in display 2022-06-04 11:08:20 -05:00
Scott Shawcroft 9d10a3da66
Conditionalize LTO 2022-05-27 12:59:54 -07:00
Paint Your Dragon c3f58193ca
Correctly scale analog reading per issue #4794 2022-05-24 08:46:39 -07:00
arturo182 0f1973b037
Merge pull request #6418 from solderparty/stamp_round_board
Add a Round Carrier board file to the RP2040 Stamp build
2022-05-23 19:42:56 +02:00
Michael Wisslead 2b0518233b rp2040 PulseIn improvements 2022-05-23 00:45:06 +00:00
Michael Wisslead 893fc66d16 Use common_hal_rp2pio_statemachine_construct for PulseIn 2022-05-23 00:45:06 +00:00
arturo182 d2d3b27822 Add a Round Carrier board file to the RP2040 Stamp build 2022-05-22 15:52:25 +02:00
Dan Halbert e852b28bb2 update pico-sdk to 1.3.1 2022-05-20 17:52:35 -04:00
Dan Halbert f63b26c534 address jepler's comments and further squeezes 2022-05-20 10:10:55 -04:00
Fabian Affolter f1f9ba2371 Add support for WeAct Studio Pico 2022-05-19 23:51:25 +02:00
Fabian Affolter d875eb2ff4 Add support for VCC-GND Studio YD-RP2040 2022-05-19 22:57:43 +02:00
Dan Halbert a01dec1df9 message consolidation and more use of validators 2022-05-19 15:38:37 -04:00
Alec Delaney 289fdc1241 Added link to library and guide for rp2pio 2022-05-13 11:15:26 -04:00
Scott Shawcroft 9743aea7aa
Merge pull request #6334 from BigTuna94/add-rp2.65-f
Add new Keyboard - RP2.65-F
2022-05-10 16:52:39 -07:00
Dan Halbert bb46898572
Merge pull request #6361 from mwisslead/rp2040_pulsein_buffer_fix
Fix buffer issue for rp2040 PulseIn
2022-05-08 12:37:17 -04:00
Jeff Epler 5f4f66774c
Merge pull request #6360 from jepler/statemachine-improvements
Statemachine improvements
2022-05-07 09:35:57 -05:00
Jeff Epler 561ed3739a
fix the docstrings 2022-05-07 07:49:16 -05:00
Dan Halbert 34427bd6ba
Update StateMachine.c 2022-05-06 22:36:24 -04:00
Michael Wisslead b7882edd01 Fix buffer issue for rp2040 PulseIn 2022-05-07 00:57:10 +00:00
Jeff Epler b482a732c6
StateMachine: add swap flag
Always use DMA if swap flag is enabled.

Improve docs a bit
2022-05-06 15:22:43 -05:00
Jeff Epler 23c0fc8354
add ability to get, clear txstall flag
This can be used to make sure a PIO has actually finished all data
it was schedule to receive via a 'once' background_write
2022-05-06 15:22:43 -05:00
Jeff Epler f776749ca3
Key off len, not buf, to decide if anything to DMA 2022-05-06 15:22:43 -05:00
Jeff Epler 1a9034ff7c
rp2pio: Allow background_write(None) to terminate after complete loop 2022-05-06 15:22:42 -05:00
Dan Halbert 5edc59f070
Merge pull request #6337 from jepler/property-storage
Optimize flash storage of properties
2022-05-06 09:55:18 -04:00
Guy Dupont 02ec1cebf6
Fix pin mapping for thing plus 2040
GPIO 26 was mapped to GPIO 28
2022-05-05 21:11:32 -04:00
Jeff Epler a9d929627a
minor comment update 2022-05-05 14:40:49 -05:00
Dan Halbert b71ea29a8b
Merge pull request #6330 from KurtE/rp2040_uart_rs485
[RP2040] Allow any GPIO pin for RS485 direction pin
2022-05-04 13:32:36 -04:00
Jeff Epler 7d7986b041
Add NEOPIXEL pin
Closes: #6307
2022-05-03 12:21:15 -05:00
Jeff Epler 510890b207
Enable squeezing property storage in flash
.. and enable it on atmel-samd and raspberrypi. On trinket_m0 this saves
96 net bytes of flash. There are 216 bytes actually saved by reducing
the flash storage size of the property descriptors, but added code in
several paths takes back over half of the 'raw savings'.

By organizing the "get-only" and "get-set" (but no delete) properties
each in a different section, we can represent then more efficiently.

Testing performed: that a get-only property can still be gotten but
can't be set or deleted; that a get-set property can sill be gotten or
set but can't be deleted.  Tested on pygamer.

Because this requires linker file support, I only enabled it on two of
the ports.
2022-05-03 08:48:53 -05:00
Jeff Epler 78cf0a90af
Make MP_PROPERTY_GETTER / _GETSET fully declare the property
This will enable setting data attributes, namely, the section of the
symbol.
2022-05-03 08:48:53 -05:00
Jeff Epler 31da335cac
Introduce, use MP_PROPERTY_GETTER, _GETSET
Later, these can be changed in cunning ways to save flash storage.
2022-05-03 08:48:52 -05:00
Zach Richard a23ede8bc4
update USB VID/PID codes to match pidcodes request 2022-05-02 19:49:30 -04:00