Commit Graph

988 Commits

Author SHA1 Message Date
MicroDev 508f2015b6
Merge pull request #7605 from Neradoc/pico-uart-in-use-error
Tweak the UART in use message on RP2040
2023-02-18 08:35:52 +05:30
Neradoc 13716c9c30 tweak the UART in use message on RP2040 2023-02-17 23:29:44 +01:00
Dan Halbert bbadc00599
Merge pull request #7577 from dhalbert/safemode-py
Implement safemode.py
2023-02-16 14:15:20 -05:00
Gregory Neverov fd1c3ca784 Increase number of LWIP timers for MDNS 2023-02-15 16:40:45 -08:00
Scott Shawcroft 931c7c1c51
Add Bangle.js 2, JDI memory displays and ACeP epd
This 2-in-1 PR started with the goal of support the Bangle.js 2
smartwatch with *no USB*.
* Adds "secure" DFU build support with a committed private key.
* Adds 3-bit color support with one dummy bit for the JDI memory display
* Allows nrf boards to have a board_background_task() run in RUN_BACKGROUND_TASK.
  This is needed because the Bangle.js 2 uses the watchdog to reset.
* Renamed port_background_task() to port_background_tick() to indicate it
  runs on tick, not RUN_BACKGROUND_TASK.
* Marks serial connected when the display terminal is inited. This means
  that safe mode messages show up on the display.

ACep, 7-color epaper displays also pack 3 bits in 4. So, I added that
support as well.
* Adds 3-bit ACeP color support for 7-color e-paper displays. (Not
  watch related but similar due to color depth.)
* Allows a refresh sequence instead of a single int command. The 7" ACeP
  display requires a data byte for refresh.
* Adds optional delay after resetting the display. The ACeP displays
  need this. (Probably to load LUTs from flash.)
* Adds a cleaning phase for ACeP displays before the real refresh.

For both:
* Add dither support to Palette.
* Palette no longer converts colors when set. Instead, it caches
  converted colors at each index.
* ColorConverter now caches the last converted color. It should make
  conversions faster for repeated colors (not dithering.)
2023-02-15 15:03:40 -08:00
MicroDev 32d86c3ea3
Merge pull request #7580 from adafruit/8.0.x
Merge 8.0.x up to main
2023-02-15 09:16:51 +05:30
MicroDev 48077daa7f
Merge pull request #7581 from gneverov/issue_7333
Add function common_hal_busio_uart_never_reset for rp2
2023-02-15 09:16:25 +05:30
Gregory Neverov 98b61279e4 Add function common_hal_busio_uart_never_reset for rp2 2023-02-14 09:05:24 -08:00
Dan Halbert d8231f1588 Implement safemode.py 2023-02-13 18:26:38 -05:00
Scott Shawcroft 7d236f2782
Merge pull request #7547 from ajs256/add_sprig
Add new board hack_club_sprig
2023-02-13 10:25:04 -08:00
Pierre Constantineau 676cbb308d minor update to boards.c to fix mismatched number of LEDs causing LEDs not to be reset 2023-02-13 09:52:18 -06:00
Ubuntu e125370cd4 first commit 2023-02-09 01:59:59 +00:00
Jeff Epler b9f689adf4 Use lowest drive level for PIO 2023-02-08 16:18:58 -06:00
Alex e78143a2f5
fix copyright header 2023-02-05 11:18:23 -08:00
Alex Sirota 07e8506b79 Add board hack_club_sprig 2023-02-03 20:19:11 -08:00
Gregory Neverov 77c6daf4b8 don't throw exception 2023-02-01 16:33:22 -08:00
MicroDev d9d94eacca
run updated pre-commit 2023-02-01 13:38:41 +05:30
Dan Halbert 13338df9f1
Merge pull request #7462 from tannewt/fix_rp2_reset_reason
Tweak RP2040 reset reason
2023-01-19 21:10:57 -05:00
Scott Shawcroft 82a313065e
Tweak RP2040 reset reason
Watchdogs are used to reboot out of the bootloader. There is a
scratch register for user watchdogs. So use sdk functions to better
distinguish these.

Related to #7346
2023-01-17 16:12:08 -08:00
Scott Shawcroft 683e393878
Add comments for MDNS code 2023-01-17 14:07:30 -08:00
Dan Halbert 79b76f7bea
Merge pull request #7445 from tannewt/fix_rpi_mdns
Share the web workflow MDNS object with the user
2023-01-17 14:46:38 -05:00
Dan Halbert 79bd88349e
Merge pull request #7444 from tannewt/fix_start_end_w_arrays
Have start and end kwargs respect element size
2023-01-13 20:11:41 -05:00
Scott Shawcroft ee2fe993dd
Fix repeated MDNS use on Pico W 2023-01-12 14:56:06 -08:00
Scott Shawcroft 5c517b7e5a
Handle MDNS deinited better. 2023-01-12 11:24:20 -08:00
Scott Shawcroft 72f4a8ebbc
Merge pull request #7423 from 0xCB-dev/add-0xCB-Helios
add support for 0xCB Helios rp2040 controller
2023-01-11 16:27:36 -08:00
Scott Shawcroft aa2ba4d88b
Have start and end kwargs respect element size
The comment says it is `buffer[start:end]` but it assumed elements
were a single byte long. Now it correctly does multibyte elements
from array.array.

Fixes #4988
2023-01-11 15:36:41 -08:00
Scott Shawcroft 78c2fa5b28
Merge pull request #7437 from dhalbert/improve-type-checking-error-msgs
Improve type validation error messages, especially for pins
2023-01-11 10:54:22 -08:00
Jeff Epler e817563ca0
Update cyw43-driver, fix no-password wifi
Now, open wifi works on Pico W, so this closes #7438.

For the web workflow it's now OK to either
 * specify an empty password string (as before)
 * not have the CIRCUITPY_WIFI_PASSWORD key at all (new functionality)
2023-01-10 15:07:17 -06:00
Dan Halbert a974402542 Improve type validation errors messages, especially for pins 2023-01-10 15:02:55 -05:00
Conor Burns 5aa8419455
add pid.codes VID and PID 2023-01-07 13:11:38 +01:00
Conor Burns 56c0f0388d
add 0xCB Helios 2023-01-05 23:02:00 +01:00
Scott Shawcroft bb3a1c0a2a
Merge pull request #7153 from fonix232/feature/waveshare_rp2040_lcd_1_28
feat: Add support for Waveshare RP2040-LCD-1.28
2023-01-04 10:18:01 -08:00
Dan Halbert 4f78d63905
Merge pull request #7412 from 2231puppy/e-fidget
Add E-Fidget board
2023-01-04 12:32:27 -05:00
2231puppy 38ebe90f7c Remove unexposed pins from E-Fidget 2023-01-03 19:24:48 -05:00
2231puppy bea62030b7 Add E-Fidget board 2023-01-03 16:02:24 -05:00
Jozsef Kiraly f23a96fa09
Update config with proper USB VID 2023-01-03 20:31:18 +00:00
Jozsef Kiraly 463c8d0f11
Merge pull request #2 from adafruit/main
Merge main
2023-01-03 20:28:18 +00:00
Dan Halbert 03b43b7b3f complete rework for microcontroller.cpu.frequency and wifi.radio MAC addresses 2023-01-02 11:45:58 -05:00
Dan Halbert a3adcf0e1a clarify read-only mac address; reuse translate msgs 2023-01-02 10:13:20 -05:00
Dan Halbert 4e31522d08
Merge pull request #7373 from jaygreco/add_nullbits_bit_c_pro
Add nullbits Bit-C PRO board
2023-01-02 09:22:16 -05:00
Jeff Epler 928fb0a9c4
Make the "name or service not known" message translatable 2022-12-26 13:58:31 -06:00
Jay Greco cdefd2e674 Add nullbits Bit-C PRO board 2022-12-25 15:21:32 +00:00
Neradoc b36d603cf3 add GP25 as status LED on the Raspberry Pi Pico 2022-12-19 22:11:30 +01:00
Dan Halbert 66efed5ba5 fix AuthMode printing regression 2022-12-15 15:49:58 -05:00
Jeff Epler 297657ea9a
Refactor so that all sites of name lookup failure result in gaierror 2022-12-14 14:45:32 -06:00
Dan Halbert 398b7c26ca
Merge pull request #7321 from jepler/dotenv-becomes-toml
Dotenv becomes toml
2022-12-13 19:56:36 -05:00
Jeff Epler d49af4d784
make wording a bit clearer 2022-12-13 08:11:47 -06:00
Pontus Oldberg aa5b1e063f Added new RP2040 board with integrated SD/Card reader and RTC 2022-12-13 13:34:28 +01:00
Jeff Epler adff93c61a
Mark cyw43 pins "never reset" before reset_port
reset_port calls reset_all_pins, which disables the built-in pull
down. In theory, this could allow some CYW43 interfacing pin to float
to an inappropriate value. There's no proof of this! but the move can't
really hurt, either
2022-12-12 20:14:08 -06:00
Jeff Epler 90894014a2
Use the HW LED as status indicator
For me this made a rare startup failure stop, which is nonsense.
2022-12-12 19:43:10 -06:00
Jeff Epler 243ecc2502
remove debugging prints 2022-12-08 14:18:22 -06:00
Jeff Epler 1fe05cb8cd
pico w: re-use previous connection if ssid matches 2022-12-08 12:44:34 -06:00
Jeff Epler ff8d051eff
Add an additional large delay time at start for pico w boards 2022-12-07 15:10:13 -06:00
Scott Shawcroft d7874e65c2
Merge pull request #7299 from BooleanMattock/main
Fix to Issue #7224 - Servo update slow due to PWM channel duty cycle update busy-wait
2022-12-05 12:54:41 -08:00
BooleanMattock afb5301cef Fix to Issue #7224 - tested 2022-12-02 20:21:40 -05:00
Scott Shawcroft 4c064c263e
Merge pull request #7294 from tannewt/analogbufio_rework
Rework the analogbufio API.
2022-12-02 14:53:16 -08:00
Scott Shawcroft f7504ff857
Tweaks based on review comments 2022-12-02 10:19:31 -08:00
Scott Shawcroft 255e997345
Rework the analogbufio API.
* read() is now readinto() and takes the buffer to write into.
* readinto() returns the number of valid samples.
* readinto() can be interrupted by ctrl-c.
* readinto() API doesn't support signed numbers because it never did.
* sample_rate is now required in the constructor because supported
  values will vary per-port.
* 16 bit values are full range. 12 bit samples from RP2040 are stretched
  in the same way they are for AnalogIn.

Fixes #7226
2022-12-01 17:46:07 -08:00
Bill Sideris 3fb4fd81e9
Revert "debug_dhcp to follow general debug" 2022-11-30 22:44:18 +02:00
Bill Sideris 0738d50834
debug_dhcp to follow general debug 2022-11-30 22:24:21 +02:00
Bill Sideris f8070d2141
Change comment, and logic on dhcpserver 2022-11-30 21:51:50 +02:00
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
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
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
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