34799 Commits

Author SHA1 Message Date
Damien George
cb31c0ae9c esp32: Add support for board-named pins and the Pin.board dict.
This adds named-pins support to the esp32 port, following other ports.
Since the name of esp32 CPU pins is just GPIOx, where x is an integer, the
Pin.cpu dict is not supported and CPU pins are just retrieved via their
existing integer "name" (the cost of adding Pin.cpu is about 800 bytes,
mostly due to the additional qstrs).

What this commit supports is the Pin.board dict and constructing a pin by
names given by a board.  These names are defined in a pins.csv file at the
board level.  If no such file exists then Pin.board exists but is empty.

As part of this commit, pin and pin IRQ objects are optimised to reduce
their size in flash (by removing their gpio_num_t entry).  The net change
in firmware size for this commit is about -132 bytes.

Signed-off-by: Damien George <damien@micropython.org>
2023-07-20 18:17:36 +10:00
robert-hh
51c2d26f15 renesas-ra/machine_spi: Consistently use machine_pin_find to get pin.
Sometimes mp_hal_get_pin_obj() was used.  machine_pin_find() is the
internal name, and the external interface is mp_hal_get_pin_obj().

Signed-off-by: robert-hh <robert@hammelrath.com>
2023-07-20 17:36:18 +10:00
robert-hh
9fea0e98b1 esp8266/machine_pin: Accept an integer argument to mp_obj_get_pin_obj.
Allowing the machine.pwm() and esp.apa102() module to accept Pin(x) integer
parameters.  Not so much of a gain, just consistent with other ports.

Signed-off-by: robert-hh <robert@hammelrath.com>
2023-07-20 17:33:54 +10:00
robert-hh
29e9573de7 esp32: Use always machine_pin_get_id for getting a Pin id.
This applies to all machine modules which have pins as arguments.  Since
machine_pin_get_id() calls pin_find(), these pin arguments may be at the
moment either integer objects or Pin objects.  That allows for instance to
write

    uart = UART(1, tx=Pin(4), rx=Pin(5))

instead of

    uart = UART(1, tx=4, rx=5)

which is consistent with other ports.  Since this handling is done at a
single place in the code, extending that scheme to accept strings for named
pins is easy.

Signed-off-by: robert-hh <robert@hammelrath.com>
2023-07-20 17:33:04 +10:00
robert-hh
3819ee4a6f esp32/machine_pin: Add a pin-find func and use it in machine_pin_get_id.
The new machine_pin_find() function accepts a Pin object and a integer
object as input and returns a pin object.  That can be extended later to
accept a string object, once named pins are supported.

Signed-off-by: robert-hh <robert@hammelrath.com>
2023-07-20 17:31:38 +10:00
robert-hh
c02da6d81d rp2/machine_pin: Factor out pin-find code from machine_pin_make_new.
And use it in mp_hal_get_pin_obj() and machine_pin_make_new().  That way,
mp_hal_get_pin_obj() accepts both int and str objects as argument, allowing
use of a pin specifier instead of a pin object in the constructor of
devices which need a pin as parameter.

E.g. instead of

    uart = UART(0, tx=Pin(0), rx=Pin(1))

one can write:

    uart = UART(0, tx=0, rx=1)

Signed-off-by: robert-hh <robert@hammelrath.com>
2023-07-20 17:30:17 +10:00
Hosted Weblate
3fc3a92383
Merge remote-tracking branch 'origin/main' 2023-07-20 00:04:24 +02:00
Scott Shawcroft
305303996d
Merge pull request #8182 from tannewt/usb_host_singleton
Make usb_host.Port a singleton
2023-07-19 15:04:19 -07:00
Andi Chandler
b2c3297358
Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (997 of 997 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/en_GB/
2023-07-19 23:06:20 +02:00
Luc
b10294e939
Translated using Weblate (German)
Currently translated at 100.0% (997 of 997 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/de/
2023-07-19 23:06:19 +02:00
Scott Shawcroft
e81ed62cfd
Add missing header file 2023-07-19 11:46:04 -07:00
Scott Shawcroft
12d1181c64
Merge pull request #8183 from Qyriad/features/samx5x-external-clock
samx5x: support external clock sources
2023-07-19 09:59:27 -07:00
Dan Halbert
74eb360922
Merge pull request #8143 from kolkmvd/ShiftRegister-multi-data-pin
Extended ShiftRegisterKeys to support multiple data pins with shared clock and latch
2023-07-18 23:30:13 -04:00
Qyriad
3f3ec1c835 samx5x: support external clock sources
Adds two board config define's, which can be added in a board's
mpconfigboard.h: BOARD_XOSC_FREQ_HZ, and BOARD_XOSC_IS_CRYSTAL, which
are passed to clock_init(). External clock sources are currently only
implemented for SAM_D5X_E5X series chips, so defining BOARD_XOSC_FREQ_HZ
for a SAMD21 board will emit an error.

Signed-off-by: Qyriad <qyriad@qyriad.me>
2023-07-18 17:12:58 -06:00
Jeff Epler
3ec9f8a118
Merge pull request #8136 from FoamyGuy/blit_skip_self_index
adding skip_self_index argument to bitmap.blit()
2023-07-18 15:17:28 -05:00
Scott Shawcroft
1629faf8b3
Make usb_host.Port a singleton
This allows you to initialize usb_host.Port once successfully and
then returns the same object as long as you pass the same arguments
in. It does allow you to fix incorrect pins but not switching from
one valid set to another. (It needs a reset for that.)

This also moves hcd cache operations to RAM so that they don't
access the cache when doing maintenance.
2023-07-18 10:40:54 -07:00
ladyada
dd266f2622 renamed since we are now s3 2023-07-18 01:02:38 -04:00
Scott Shawcroft
a2002e364c
Merge pull request #8165 from anecdata/wifi_docs
Networking docs updates: Access Point, MDNS
2023-07-17 14:58:28 -07:00
Scott Shawcroft
2a83657b6f
Merge pull request #8161 from jepler/usb_host_keyboard
usb host: add keyboard map control in usb workflow
2023-07-17 14:57:13 -07:00
Scott Shawcroft
e2e8b162b6
Merge pull request #8175 from kbsriram/fromkeys-fix
py/objdict: Fix fromkeys to return the right type.
2023-07-17 14:56:14 -07:00
Dan Halbert
bb81b2ecf5
Merge pull request #8181 from jepler/update-metro-rp2040-flash
update metro rp2040 to work with 16MB flash
2023-07-17 14:19:07 -04:00
Jeff Epler
4f09078293
update metro rp2040 to work with 16MB flash 2023-07-17 12:56:55 -05:00
Jeff Epler
fd1fdee312
move set_user_keymap to usb_host module 2023-07-17 09:08:13 -05:00
Dan Halbert
fddb582390
Merge pull request #8180 from anecdata/ipv4_address_ap-read-only
docs:  wifi.radio.ipv4_address_ap is read-only
2023-07-16 23:54:42 -04:00
anecdata
8289722679
docs: wifi.radio.ipv4_address_ap is read-only 2023-07-16 20:35:49 -05:00
Dan Halbert
4b4fb47088
Merge pull request #8177 from weblate/weblate-circuitpython-main
Translations update from Hosted Weblate
2023-07-16 09:35:52 -04:00
hexthat
2295b1f1ea
Translated using Weblate (Chinese (Pinyin))
Currently translated at 100.0% (997 of 997 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/zh_Latn/
2023-07-16 06:32:18 +02:00
Jose David M
1e2b25be56
Translated using Weblate (Spanish)
Currently translated at 100.0% (997 of 997 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/es/
2023-07-16 06:32:17 +02:00
Dan Halbert
4a21e05ab6
Merge pull request #8170 from tannewt/fix_rp2_safe_mode
Fix rp2 safe mode via reset press
2023-07-15 17:13:18 -04:00
KB Sriram
03e93f8e6c py/objdict: Fix fromkeys to return the right type.
Fixes https://github.com/adafruit/circuitpython/issues/8173

It looks like a small fix, and mostly independent of upstream
plans around https://github.com/micropython/micropython/pull/6173

I also filed an issue upstream
https://github.com/micropython/micropython/issues/12011
2023-07-14 22:03:06 -07:00
Seon Rozenblum
9642e38783 Added second I2C B\bus IO and stuff for FeatherS3 2023-07-15 08:52:57 +10:00
Damien George
7d66ae603d esp32/machine_timer: Switch from legacy driver to timer HAL.
The legacy driver was deprecated in IDF v5, and crashes when the ISR
handler is called.  Instead of fixing the legacy code, this commit reworks
the machine.Timer class to use the low-level HAL driver.

Tested on ESP32, ESP32S2, ESP32S3 and ESP32C3.  Behaviour is the same as it
was before this commit, except the way the Timer object is printed, it now
gives more useful information (timer id, mode, period in ms).

Fixes issue #11970.

Signed-off-by: Damien George <damien@micropython.org>
2023-07-14 10:02:42 +10:00
Scott Shawcroft
4e01674cbd
Fix rp2 safe mode via reset press
The picodvi PR #7880 switched the saved word to the watchdog
register since it reworked the RAM layout. This works for
reset_into_safe_mode because the watchdog scratch registers are
preserved by soft resets. They *aren't* preserved for pressing the
reset button. So it broken manual safe mode. Switch back to using
RAM to store the saved word but use the pico-sdks "uninitialized"
designation instead of a fixed location.

Also fixes USB host feather status neopixel by setting the power
pin.
2023-07-13 14:49:08 -07:00
Scott Shawcroft
8de9d5a522
Merge pull request #8169 from jepler/os-getenv-exception
throw an exception if os.getenv is used on a board without settings.t…
2023-07-13 10:49:42 -07:00
anecdata
73af1b8a30
Update docs/workflows.md
Co-authored-by: Scott Shawcroft <scott@tannewt.org>
2023-07-13 12:41:07 -05:00
Scott Shawcroft
f4d1e680bc
Merge pull request #8166 from DatanoiseTV/picoadk-fixup
Add NeoPixel Library for Datanoise PicoADK.
2023-07-13 10:39:15 -07:00
Jeff Epler
235983652f
throw an exception if os.getenv is used on a board without settings.toml support 2023-07-13 09:47:38 -05:00
Sylwester
3ac84281bf Add NeoPixel Library for Datanoise PicoADK. 2023-07-13 12:04:27 +02:00
Jim Mussared
671b35ceae py/builtinimport: Fix built-in imports when external import is disabled.
Follow-up to 24c02c4eb5f11200f876bb57cd63a9d0bae91fd3 for when
MICROPY_ENABLE_EXTERNAL_IMPORT=0.  It now needs to try both extensible and
non-extensible modules.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-07-13 14:56:33 +10:00
anecdata
69d2f5ec2a
formatting fix 2023-07-12 23:53:52 -05:00
anecdata
d4ac8e75e8
raspberrypi: start AP before set IPv4 2023-07-12 23:41:14 -05:00
anecdata
cf5028e85b
mdns: can't use web workflow port 2023-07-12 23:32:44 -05:00
anecdata
bd2072123a
web workflow: uses an mdns port service slot 2023-07-12 23:24:33 -05:00
madcitygeek
a7bbb05e25
Update mpconfigboard.mk
Use unique CIRCUITPY_CREATION_ID
2023-07-12 22:59:43 -05:00
Damien George
606ec9bfb1 py/compile: Fix async for's stack handling of iterator expression.
Prior to this fix, async for assumed the iterator expression was a simple
identifier, and used that identifier as a local to store the intermediate
iterator object.  This is incorrect behaviour.

This commit fixes the issue by keeping the iterator object on the stack as
an anonymous local variable.

Fixes issue #11511.

Signed-off-by: Damien George <damien@micropython.org>
2023-07-13 13:50:50 +10:00
anecdata
efd4fffea6
start_ap max_connections ignored 2023-07-12 22:49:39 -05:00
madcitygeek
2742466709
Merge branch 'adafruit:main' into add_luatos_core_esp32c3_ch343 2023-07-12 22:29:47 -05:00
Nicholas H.Tollervey
14c2b64131 webassembly: Replace typeof window check with ENVIRONMENT_IS_NODE flag.
When the "typeof window" check is run within a web worker the window is
undefined, causing an error because "require" is only defined in a Node
environment.  Change the logic to reflect the true intentions of when this
code should run, ie in Node only.

Signed-off-by: Damien George <damien@micropython.org>
2023-07-13 13:24:35 +10:00
Damien George
88771c1500 renesas-ra,stm32: Remove duplicate machine module from constants list.
In the u-module renaming done in 30628d1bb782006c88325a086ddfcd5c2e5ddbb4,
these duplicate lines were accidentally left.

Signed-off-by: Damien George <damien@micropython.org>
2023-07-13 13:18:09 +10:00
Damien George
62673a7708 stm32/mpconfigport: Always define MICROPY_SOFT_TIMER_TICKS_MS.
Even if MICROPY_PY_MACHINE is disabled, the soft timer is still used.

Signed-off-by: Damien George <damien@micropython.org>
2023-07-13 13:10:31 +10:00