Commit Graph

11111 Commits

Author SHA1 Message Date
Dan Halbert 827eaeb1f9
Merge pull request #7962 from tannewt/inky_frame_5_7
Add Pimoroni Inky Frame 5.7
2023-05-12 18:22:42 -04:00
Scott Shawcroft bd2c1198d9
Minor C3 debug tweaks 2023-05-12 14:51:59 -07:00
Scott Shawcroft ca01200b4f
Merge pull request #7965 from dhalbert/stm-rtc-monotonic
STM: monotonic time even when RTC is changed
2023-05-12 13:43:13 -07:00
Dan Halbert e8067851f5 fix subticks handling 2023-05-12 14:39:57 -04:00
Scott Shawcroft 0a3faf8c9d
Merge pull request #7959 from jepler/synthio-bend-pan-ring
Synthio: next round of features
2023-05-12 08:54:49 -07:00
Scott Shawcroft db8bd56c6c
Merge pull request #7946 from anecdata/ap_ipv4
Allow Access Point static IPv4 on the espressif port
2023-05-12 08:47:07 -07:00
Scott Shawcroft 02d4c8153b
Merge pull request #7953 from jepler/issue7944-v3
Fix some regressions on feather M7
2023-05-12 08:34:39 -07:00
Bojan Potočnik 74624e7c22
Add missing ESP32-S3 pins to microcontroller module
ESP32-S3 defines two additional general use pins in
ports/espressif/peripherals/esp32s3/pins.h, for which
support is missing in the microcontroller module HAL.
2023-05-12 09:10:26 +02:00
Dan Halbert 0b2f857542 STM: monotonic time even when RTC is changed 2023-05-12 00:28:37 -04:00
Jeff Epler 5a5474b5dc
mimxrt: 101x: MIDI_RX_BUFSIZE must be 512
It's not clear why this is required, but otherwise it stops
midi_intest1 from ever receiving any MIDI events.

Closes: #7944
2023-05-11 21:47:54 -05:00
Jeff Epler 137e55696e
Merge pull request #7964 from tannewt/fix_imx_usb_reset
Correct pad count.
2023-05-11 21:47:36 -05:00
Scott Shawcroft a56174dc10
Correct pad count.
This prevents running into the pins that cannot be reset. On 1011
it was off by one pin that isn't attached to the package. So,
having the USB pins forbidden prevented resetting to a NULL address.

Fixes #7952
2023-05-11 15:02:56 -07:00
Dan Halbert d99b0634f7 Report SPI frequency accurately on Espressif 2023-05-11 16:57:07 -04:00
Jeff Epler 23baf02399
synthio: disable on a few boards where it doesn't fit 2023-05-11 15:22:48 -05:00
Scott Shawcroft cbfb2d0f55
Add Pimoroni Inky Frame 5.7
Tweak DTCM and ITCM loading and prevent epd refresh while waiting
for autoreload.
2023-05-11 12:12:34 -07:00
Alex Sirota 55d8f0db4e Add board.DISPLAY to hack_club_sprig 2023-05-10 11:24:26 -07:00
anecdata 29bf64decb raspberrypi common-hal f(x)s Not Implemented 2023-05-08 22:41:33 -05:00
Scott Shawcroft 9e4dea7b15
Merge pull request #7933 from jepler/synthio-note
synthio: add 'Note' with arbitrary frequency and more
2023-05-08 13:32:37 -07:00
anecdata 2f2a9e7e28 Allow Access Point static IPv4 on the espressif port. 2023-05-08 13:25:52 -05:00
Scott Shawcroft 7cd65ffb40
Merge pull request #7942 from furbrain/main
Add memorymap support to nrf boards
2023-05-08 10:42:29 -07:00
Phil Underwood bcd9d6bacc Add memorymap to nrf52840 devices only 2023-05-07 18:21:22 +01:00
Phil Underwood fe90cc759a remove excess line 2023-05-07 16:09:44 +01:00
Phil Underwood a31dc5cc70
Merge branch 'adafruit:main' into main 2023-05-07 16:07:16 +01:00
Phil Underwood 3abcc6a2c3 Add memorymap support for the nRF processors.
This gives very permissive access to the internals of the microprocessor.
It needs the user to be **very** careful that they do not break things
2023-05-07 15:58:25 +01:00
Bill Sideris f63aac9e52
Merge branch 'adafruit:main' into m5timer 2023-05-07 16:49:02 +03:00
Bill Sideris f4079b6799
add preliminary support for m5stack_timer_camera_x 2023-05-07 16:47:57 +03:00
RetiredWizard a52d0c742e Add call to rtc_reset 2023-05-06 03:16:38 -04:00
Kattni 018f15de95
Merge pull request #7938 from jepler/issue5980
Fix crash with fast ping on espressif
2023-05-05 18:52:02 -04:00
Jeff Epler 66411fdd38
espressif: check return value from esp_ping_new_session
esp_ping_new_session can fail, particularly if ping is called quickly
many times in succession.

This is because `esp_ping_new_session` has to do a bunch of stuff
including creating a task and a socket. Calling `esp_ping_delete_session`
doesn't clean up these resources immediately. Instead, it signals the
task to clean up resources and exit 'soon', but 'soon' is defined as 1
second.

When the calls are frequent, the in-use sockets and tasks fill up
available slots—I didn't actually check which resource gets used
up first.

With this change, the ping call will raise an exception instead of
continuing with a call to esp_ping_start that crashes.

Closes #5980 based on my testing on an ESP32S3-N8R2.
2023-05-05 17:11:03 -05:00
Scott Shawcroft fa9b59d14c
Merge pull request #7915 from RetiredWizard/picodvi
Add Pimoroni Pico dv Demo Base (pico only)
2023-05-04 10:07:48 -07:00
Jeff Epler eebd4a7f52
synthio: no longer fits on feather m4 can 2023-05-04 10:16:58 -05:00
Jeff Epler a388a59543
rp2040: fix audio glitch at soft-reload
The internal flash cache wasn't being properly used, because
`write_blocks` unconditionally performed the flash write.

Fixing this so that the write's not done until `internal_flash_flush`
fixes the problem in my test program with i2sout & synthio.

as a future optimization, `flash_read_blocks` could learn to read out
of the cache, but that's probably not super important.
2023-05-04 08:41:23 -05:00
Jeff Epler a7da245ad0
synthio: Add synthio.Note
This class allows much more expressive sound synthesis:
 * tremolo & vibrato
 * arbitrary frequency
 * different evelope & waveform per note
 * all properties dynamically settable from Python code
2023-05-04 07:23:49 -05:00
RetiredWizard 4f7d88676b Remove pico-w version 2023-05-03 17:30:01 -04:00
Jeff Epler bd9aca2526
Merge pull request #7862 from jepler/synthio-envelope
Synthio envelope
2023-05-03 12:42:56 -05:00
Liz 480c4f1081
Update pins.c 2023-05-02 17:27:53 -04:00
Liz facd3a4e78 Updating directory name 2023-05-02 17:07:49 -04:00
Liz cba7a812fc Minor update for Feather RP2040 ThinkInk
hihi - updating board name from EPD to ThinkInk and adding pin def for board.BUTTON
2023-05-02 17:02:59 -04:00
Scott Shawcroft 750615f2da
Merge pull request #7430 from Lanzaa/rp2040_cpu_frequency
Add frequency setting for RP2040 boards.
2023-05-02 09:52:28 -07:00
Scott Shawcroft 488dca565f
Merge pull request #7922 from tannewt/dvi320
Take in framebuffer resolution, not output res
2023-05-02 09:22:51 -07:00
Jeff Epler 80e1418c01
Merge pull request #7921 from tannewt/imx_evks
Add additional iMX RT support
2023-05-02 07:09:50 -05:00
Scott Shawcroft 051540f8da
Fix broadcom NAN 2023-05-01 11:38:13 -07:00
Scott Shawcroft 0aa71ed6e6
Tweak the picodvi docs and arg checking 2023-05-01 11:30:04 -07:00
Scott Shawcroft b08714bb8f
Take in framebuffer resolution, not output res
Fixes #7911
2023-04-28 17:13:17 -07:00
Scott Shawcroft 1a4e1d114c
Merge pull request #7916 from bablokb/badger_2040_w
Add support for Pimoroni Badger2040W
2023-04-28 16:42:03 -07:00
Scott Shawcroft 8104b824e0
Standardize CPU temp and voltage. Add autogen warning 2023-04-28 16:19:43 -07:00
RetiredWizard 1fb6d4d77e I2S pin names per Dan's suggestions on iMX PR 2023-04-28 16:58:39 -04:00
Scott Shawcroft f837f2438a
Update USB PIDs 2023-04-28 11:16:45 -07:00
Scott Shawcroft a9dc31a881
Add additional iMX RT support
This adds a script to generate the peripherals files (except clock).

It adds support for the 1015, 1020, 1040, and 1050 EVKs.

Some work was started on 1176 but it isn't working. So, the board
def is in a separate branch.

Fixes #3521. Fixes #2477.
2023-04-28 11:01:13 -07:00
Bernhard Bablok 14c17224a1 update product-id 2023-04-28 08:57:22 +02:00
Bernhard Bablok 4f8ae14c18 update to upstream version 2023-04-28 08:56:52 +02:00
Bernhard Bablok a86c5f7310 Merge branch 'main' into plasma2040w 2023-04-28 08:41:02 +02:00
Bernhard Bablok ec6fde91ad integrate latest changes from upstream 2023-04-27 18:14:46 +02:00
Bernhard Bablok cc3d61eb49 fixed merge conflicts 2023-04-27 13:23:34 +02:00
RetiredWizard 12f59b4948 pre-commit formatting 2023-04-26 21:14:57 -04:00
RetiredWizard aba4c50e74 Add adafruit_sdcard as frozen library 2023-04-26 21:08:28 -04:00
RetiredWizard 5d0c37f198 Rename folders and add VID/PID from Pimoroni 2023-04-26 17:45:59 -04:00
RetiredWizard 4214f2bb77
Rename ports/raspberrypi/boards/pimoroni_pico_dv to ports/raspberrypi/boards/pimoroni_pico_dv_base 2023-04-26 11:01:56 -04:00
Dan Halbert 34f565dd89
Merge pull request #7891 from tannewt/fix_epd_uc
Add address_little_endian and fix display memory reuse
2023-04-26 00:27:59 -04:00
Dan Halbert be6e90c0ed
Merge pull request #7877 from dhalbert/rp2040-propmaker
Add Adafruit Feather RP2040 Prop-Maker
2023-04-26 00:23:49 -04:00
Damien George a14e79bcfb stm32/cyw43_configport: Provide cyw43_hal_pin_config_irq_falling func.
Signed-off-by: Damien George <damien@micropython.org>
2023-04-26 12:57:35 +10:00
Damien George fe4ac49d7f rp2/memmap_mp.ld: Allow a board to reserve memory for the C heap.
Since c80e7c14e6 changed the GC heap to use
all unused RAM, there is no longer any RAM available for the traditional C
heap (which is not used by default in MicroPython but may be used by C
extensions).  This commit adds a provision for a board to reserve RAM for
the C heap, by defining MICROPY_C_HEAP_SIZE.

Signed-off-by: Damien George <damien@micropython.org>
2023-04-26 12:36:21 +10:00
IcedRooibos 7ea06a3e26 esp32/esp32_rmt: Fix looping behaviour for RMT on ESP32-S3.
The previous code worked on ESP32 but not ESP32-S3.  All the IDF (v4.4.3)
examples call rmt_set_tx_loop_mode before rmt_write_items, so make that
change here.

Signed-off-by: Damien George <damien@micropython.org>
2023-04-26 12:32:13 +10:00
Jim Mussared a42a8022d8 extmod/modbluetooth: Make all HCI transports trace in the same format.
- Use HCI_TRACE macro consistently.
 - Use the same colour formatting.
 - Add a tool to convert to .pcap for Wireshark.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-04-26 11:37:20 +10:00
Jim Mussared 256f47e2f8 extmod/btstack: Fix indicate/notify queuing.
This adds a mechanism to track a pending notify/indicate operation that
is deferred due to the send buffer being full. This uses a tracked alloc
that is passed as the content arg to the callback.

This replaces the previous mechanism that did this via the global pending
op queue, shared with client read/write ops.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-04-26 11:37:20 +10:00
Jim Mussared bc9ec1cf71 extmod/modbluetooth: Merge gatts_notify/indicate implementation.
Makes gatts_notify and gatts_indicate work in the same way: by default they
send the DB value, but you can manually override the payload.

In other words, makes gatts_indicate work the same as gatts_notify.

Note: This removes support for queuing notifications and indications on
btstack when the ACL buffer is full. This functionality will be
reimplemented in a future commit.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-04-26 11:37:20 +10:00
Dan Halbert 95acec0f55 Improve pin names 2023-04-25 13:22:42 -04:00
Jeff Epler 38fd6aea02
Disable synthio on two boards where it doesn't fit 2023-04-25 12:05:54 -05:00
Neradoc 2bee4926f9 Fix Scorpio on-board neopixel pin 2023-04-25 17:22:04 +02:00
RetiredWizard 076cd1fab4
Nope, can't use the COSMO-pico vid/pid pair
Setting back, at least temporarily to the Adafruit pair.
2023-04-25 11:14:48 -04:00
RetiredWizard 361608119c
Change VID/PID to be Raspberry Pi values
Spotted the Cosmo_pico port on circuitpython.org which is the same class of device as the Pimoroni PICO dv so I'm switching the VID/PID to use the Raspberry Pi owned values rather than the Adafruit values just as the Como device uses.
2023-04-25 10:33:13 -04:00
Dan Halbert 2b95fc3029
Merge pull request #7893 from tannewt/fix_rp2040_idle
Fix RP2040 idle
2023-04-24 13:53:12 -04:00
Dan Halbert 338534420f
Merge pull request #7900 from dglaude/patch-1
This is about picodvi not rgbmatrix
2023-04-24 13:52:12 -04:00
Dan Halbert b9c7cd4028
describe instance more precisely 2023-04-24 12:58:40 -04:00
David Glaude 6aa3e7d8a6
This is about picodvi not rgbmatrix
There might be another way or other place where the documentation does not match the code.
But this is the most obvious, that's why I found it.
2023-04-23 10:58:02 +02:00
Scott Shawcroft b59f0e17be
Fix RP2040 idle
Don't idle from main if we scheduled an interrupt for 0 ticks in
the future.

Have RP2040 detect wakes that happen between setting the timer and
the idle call.

Fixes #7361
2023-04-21 16:04:23 -07:00
George White 031667ebd0
Added notes re the RTL8720D pins
The Wio Terminal includes a RealTek RTL8720D as a companion to the main chip to provide WiFi and Bluetooth capabilities via eRPC over a UART connection. The WIO Terminal schematic labels some pins as the RXD/TXD for the UART, and that was captured in the board definition for CircuitPython. However, these pins may be used for logging in another mode, but they are not the main pins used to communicate with the RTL chip. The correct configuration is RX on PC24/pad 2 and TX on PB24/pad 0 of SERCOM 0. The comments on the pin definitions now reflect this situation, for anyone trying to get the WiFi/BLE to work on the Wio Terminal.
2023-04-21 17:41:52 -04:00
Scott Shawcroft b16037859c
Fix native epd boards 2023-04-21 14:36:35 -07:00
Scott Shawcroft d5b747b305
Fix board inits 2023-04-21 13:23:01 -07:00
Damien George 9e6885ad82 extmod/btstack: Switch to use hci_dump_init instead of hci_dump_open.
The latter is no longer available in the version of BTstack now in use by
this repository.

Signed-off-by: Damien George <damien@micropython.org>
2023-04-22 00:39:31 +10:00
David (Pololu) bf3eb9dc39 rp2/machine_i2c: Add timeout parameter for machine.I2C().
This commit adds support for the `timeout` keyword argument to machine.I2C
on the rp2 port, following how it's done on other ports.

The main motivation here is avoid the interpreter crashing due to infinite
loops when SDA is stuck low, which is quite common if the board gets reset
while reading from an I2C device.

A default timeout of 50ms is chosen because it's consistent with:
- Commit a707fe50b0 which used a timeout of
  50,000us for zero-length writes on the rp2 port.
- The machine.SoftI2C class which uses 50,000us as the default timeout.
- The stm32 port's hardware I2C, which uses 50,000us for
  I2C_POLL_DEFAULT_TIMEOUT_US.

This commit also fixes the default timeout on the esp32 port to be
consistent with the above, and updates the documentation for machine.I2C to
document this keyword argument.
2023-04-21 18:03:33 +10:00
RetiredWizard b3c8575b81 Update for Pimoroni Pico dv pins/connectors 2023-04-20 21:22:39 -04:00
Dan Halbert 5014ddb43c
Merge pull request #7854 from CDarius/m5stack_core2
Add M5Stack Core2
2023-04-20 14:55:33 -04:00
Scott Shawcroft 0f9fb33371
Merge branch 'main' into rp2040_cpu_frequency 2023-04-19 17:05:58 -07:00
Scott Shawcroft e2ab7a4751
Change voltage. Refine docs 2023-04-19 17:04:54 -07:00
Scott Shawcroft 13bb801211
Fix docs and windows 2023-04-19 15:42:02 -07:00
Scott Shawcroft 66edcf5d03
Add PicoDVI support
PicoDVI in CP support 640x480 and 800x480 on Feather DVI, Pico and
Pico W. 1 and 2 bit grayscale are full resolution. 8 and 16 bit
color are half resolution.

Memory layout is modified to give the top most 4k of ram to the
second core. Its MPU is used to prevent flash access after startup.

The port saved word is moved to a watchdog scratch register so that
it doesn't get overwritten by other things in RAM.

Right align status bar and scroll area. This normally gives a few
pixels of padding on the left hand side and improves the odds it is
readable in a case. Fixes #7562

Fixes c stack checking. The length was correct but the top was being
set to the current stack pointer instead of the correct top.
Fixes #7643

This makes Bitmap subscr raise IndexError instead of ValueError
when the index arguments are wrong.
2023-04-19 15:14:02 -07:00
Scott Shawcroft 09c2c5ef0e
Merge pull request #7876 from thess/CORS-update
Simplify CORS checks and don't restrict host names.
2023-04-19 11:07:34 -07:00
Dan Halbert e105bf1690
Merge pull request #7879 from milindmovasha/espressif_analogbufio_fix
Bug fixes for analogbufio espressif implementation
2023-04-19 13:17:59 -04:00
Milind fd1e9cf8f1
1. Changed attenuation from ADC_ATTEN_DB_0 to ADC_ATTEN_DB_11
2. Scaling the 12-bit values received from DMA engine to 16-bit value
2023-04-19 21:46:08 +05:30
CDarius 14ecc44fbc Merge branch 'main' into m5stack_core2 2023-04-19 08:22:10 +00:00
CDarius e5a5a348fd Fixed wrong GPIO number for touch screen interrupt 2023-04-19 08:17:10 +00:00
Ted Hess 8980ebfa16 Simplify CORS checks and don't restrict host names.
Minor socket cleanup.
2023-04-18 22:09:48 -04:00
Dan Halbert 7567082965 Add Adafruit Feather RP2040 Prop-Maker 2023-04-18 15:52:06 -04:00
silabs-BelaV 4e25a4f6b3
Silabs' new Pull Request for submoduling the ports/silabs/tools/slc_cli_linux/ (#7874)
Doing a squash merge to avoid having the `slc_cli_linux` .zip files in the history. They were added in one commit and removed and replaced with a submodule in another.

* Initial commit for xg24

* Fix SLC issue

* Fix SLC extract fail

* Change board's name

* Correct spelling of code

Build immediately after slc generate

* Remove VID and PID

* Change creator and creation id

* Apply new creator_id and creation_id

* Update makefile, error message, mcu_processor function

* Update mpconfigboard.mk

* Update Board extensions, PORT_DEPS

* Update makefile

* Add exclude_patterns

* Show java, jinja2 version

* Show path for debugging CI

* Add requirements-dev for slc

* Add PATH slc_cli

* Update background function

* Add jinja2 PATH

* Show PATH

* Update jinja2 path

* Update jinja2 path

* Update jinja2 path

* Update jinja2 path

* Change slc folder

* Change markupsafe folder

* Add symbolic link for slc

* Update makefile

* Update makefile

* Update MX25R3235F.toml from submodule nvm.toml

* alphabetize the list

* Remove slc_cli_linux folder

* Update slc_cli submodule

---------

Co-authored-by: Chat Nguyen <cvnguyen@silabs.com>
Co-authored-by: silabs-ChatNguyen <chat.nguyen@silabs.com>
Co-authored-by: silabs-ChatNguyen <126220343+silabs-ChatNguyen@users.noreply.github.com>
2023-04-18 12:42:16 -04:00
Bernhard Bablok 2a49567ec6 added Adafruit_CircuitPython_Register to frozen libs 2023-04-17 19:03:42 +02:00
CDarius d765efd71c Moved EXTEN and DCDC2 on register 0x12 2023-04-14 13:08:52 +00:00
CDarius 681eb66824 Fixed DCDC2 output voltage register 2023-04-14 13:02:51 +00:00
CDarius 32ffdcdc7c Fix I2S pins 2023-04-14 08:02:56 +00:00
CDarius ed86f710c2 Refactored AXP192 code and moved under ports/espressif 2023-04-13 13:45:56 +00:00
iabdalkader 0acc73344a mimxrt: Fix the build for boards without ROM API. 2023-04-12 17:01:25 +02:00
CDario 88644613b5 Add M5Stack Core2 2023-04-11 12:29:43 +00:00
iabdalkader bde222ce84 mimxrt/modmachine: Implement machine.bootloader().
If a board defines a custom bootloader entry function it will be called
first, if not and the ROM API supports RUN bootloader API, then
`machine.bootloader()` will jump to the ROM serial downloader in USB mode.
2023-04-11 17:40:18 +10:00
iabdalkader 8b72721b29 mimxrt/mpconfigport: Allow configuring different network interfaces.
This commit allows boards to disable Ethernet and keep the networking stack
enabled, to use an alternate networking interface, such as WiFi.

Note that the `network` and `socket` modules are now enabled by default for
a board.
2023-04-11 17:20:29 +10:00
iabdalkader 944b4c2058 mimxrt/boards/MIMXRT1064_EVK: Fix board config to use internal flash.
This commit is necessary to make MicroPython work on this eval kit out of
the box, as the eval kit ships with the HyperFlash physically disconnected
from the bus (refer to the schematics or the user guide) and the QSPI
connected instead, but the fuses/board/pins are configured to boot from
internal flash (on FlexSPI2).

Note that enabling the HyperFlash is not trivial, as it requires soldering
and desoldering of many small footprint resistors and changing fuses.
2023-04-11 17:04:21 +10:00
iabdalkader ed5e3598f1 mimxrt/Makefile: Fix internal flash configuration and build. 2023-04-11 17:03:28 +10:00
Scott Shawcroft 06aa426e76
Merge pull request #7849 from stonehippo/micromod-samd51-update
Update pins to include UART1 RTS and CTS
2023-04-10 10:30:24 -07:00
Bill Sideris 20f84767dd
Merge branch 'adafruit:main' into YD_ESP32_S3 2023-04-09 01:32:21 +03:00
George White c37af65ee1
Update pins to include UART1 RTS and CTS
Previous pins definition stated that the UART1 RTS and CTS were not connected. They are connected and can currently be used via A1 and PWM0 respectively. To make things a little clearer, enabling the RTS1/CTS1.
2023-04-08 16:29:50 -04:00
Bernhard Bablok 2b3601451f Merge branch 'main' into badger_2040_w 2023-04-08 13:06:37 +02:00
Scott Shawcroft bc30475d09
Fix frequencyio 2023-04-07 12:02:54 -07:00
Scott Shawcroft 097af804cd
Fix ticks
In #7497 port_background_task was renamed to port_background_tick
but the actual call site wasn't changed. This meant that it was
no longer called!

Rename more functions from task to tick to make it clearer which is
which.
2023-04-07 09:49:51 -07:00
Scott Shawcroft 76f9c187e0
Merge pull request #7843 from waptang/Waveshare_RP2040-LCD-0.96
Add Waveshare RP2040-LCD-0.96
2023-04-07 09:10:57 -07:00
Bill Sideris 42ab93fa4c
YD_ESP32_S3 2023-04-07 18:34:10 +03:00
John Sanders af35337136 Add Waveshare RP2040-LCD-0.96 2023-04-07 03:24:30 -07:00
MicroDev 50e259fefc
Merge pull request #7836 from thess/rfc-web-server
RFC: Web Workflow reliability and performance improvements
2023-04-07 09:20:37 +05:30
Jeff Epler 081e9b995e
samd51 can also handle 12 voices @ 24kHz! 2023-04-06 08:55:00 -05:00
Jeff Epler 046397aaff
sort block of settings 2023-04-06 08:54:49 -05:00
Scott Shawcroft 6df88ac948
Merge pull request #7825 from jepler/better-synthio
Better synthio
2023-04-05 12:23:10 -07:00
Bernhard Bablok 690168b1ab add support for Plasma2040W 2023-04-05 19:53:26 +02:00
Ted Hess 9825b7fbb7 Web Workflow sockets and threads handling improvements.
Fixes polling thread looping forever hangs preventing new connections.
Don't lose listening sockets on mp resets and re-init.
Keep better separation of "system" and "user" sockets.
Track socket states to prevent re-use of sockets before closed.
Close REST socket when transaction completes. No post-init.
Remove unnecessary state flags.
2023-04-05 13:50:42 -04:00
Dan Halbert a8ea8ea81a
Merge pull request #7834 from dhalbert/adafruit-feather-rp2040-can
Add Adafruit Feather RP2040 CAN
2023-04-05 13:25:19 -04:00
Jeff Epler 685fdf29e3
remove include directory that doesn't exist 2023-04-05 10:31:05 -05:00
Jeff Epler 4c7b962d16
Increase synthio channels to 12 on rp2040
with the AudioMixer workaround for #7837 this appears to work
even up to 48kHz.
2023-04-05 10:30:57 -05:00
Jeff Epler b9dea05dbf
Enable audiomixer on unix port, for testing 2023-04-05 09:02:03 -05:00
David Grayson c046b23ea2 shared/runtime/pyexec: Don't allow Ctrl+C to interrupt frozen boot code.
Helps prevent the filesystem from getting formatted by mistake, among other
things.  For example, on a Pico board, entering Ctrl+D and Ctrl+C fast many
times will eventually wipe the filesystem (without warning or notice).

Further rationale: Ctrl+C is used a lot by automation scripts (eg mpremote)
and UI's (eg Mu, Thonny) to get the board into a known state.  If the board
is not responding for a short time then it's not possible to know if it's
just a slow start up (eg in _boot.py), or an infinite loop in the main
application.  The former should not be interrupted, but the latter should.
The only way to distinguish these two cases would be to wait "long enough",
and if there's nothing on the serial after "long enough" then assume it's
running the application and Ctrl+C should break out of it.  But defining
"long enough" is impossible for all the different boards and their possible
behaviour.  The solution in this commit is to make it so that frozen
start-up code cannot be interrupted by Ctrl+C.  That code then effectively
acts like normal C start-up code, which also cannot be interrupted.

Note: on the stm32 port this was never seen as an issue because all
start-up code is in C.  But now other ports start to put more things in
_boot.py and so this problem crops up.

Signed-off-by: David Grayson <davidegrayson@gmail.com>
2023-04-05 10:38:50 +10:00
iabdalkader db4b416ea8 mimxrt/pendsv: Clean up PendSV code.
The dispatch active flag is only set once and never reset, so it will
always call the dispatch handler (once enabled), and it's not really
needed because it doesn't make things more efficient.

Also remove unused included headers.
2023-04-05 10:16:22 +10:00
robert-hh eb6e5143c4 nrf/modules/machine/uart: Prevent UART lock-up after a receive error.
Like frame error, overrun, etc.  Fix is provided by @ricksorensen.
2023-04-05 10:00:43 +10:00
robert-hh a529e0e8cf nrf/nrfx_config: Use UARTE for nrf52xxx devices.
It was incomplete.
2023-04-05 10:00:06 +10:00
robert-hh 408556504c nrf/modules/machine/pwm: Fix resource conflict, and change id to device.
Changes in this commit:
- Move the pwm_seq array to the p_config data structure.  That prevents
  potential resource collisions between PWM devices.
- Rename the keyword argument 'id' to 'device'.  That's consistent with the
  SAMD port as the other port allowing to specify it.
2023-04-05 09:58:33 +10:00
Dan Halbert 85cc21adc0 add Adafruit Feather RP2040 USB Host 2023-04-04 19:44:06 -04:00
Dan Halbert 44d7f4e7e1 fix Neopixel for RP2040 CAN 2023-04-04 19:33:39 -04:00
Dan Halbert 5d56ef06e7 Add Adafruit Feather RP2040 CAN 2023-04-04 19:16:39 -04:00
Jan Hrudka 5652f1f661 stm32/flash: Fix get_bank function for STM32H750.
STM32H750 has only 1 flash bank so function get_bank should always return
FLASH_BANK_1.
2023-04-04 14:58:54 +10:00
Damien George 783ddfc264 shared/tinyusb: Allow max USB descriptor string to be configured.
Signed-off-by: Damien George <damien@micropython.org>
2023-04-04 11:57:25 +10:00
Jeff Epler b011468251
Add synthio.Synthesizer
In contrast to MidiTrack, this can be controlled from Python code,
turning notes on/off as desired.

Not tested on real HW yet, just the acceptance test based on checking
which notes it thinks are held internally.
2023-04-02 20:37:23 -05:00
Jeff Epler 05cf5213e2
Allow disabling each class in keypad
.. for boards like pewpewm4 which need a specific kind. And need
some space.
2023-04-01 19:22:52 -05:00
Jeff Epler 13e17e6dcd
Make synthio debuggable in unix coverage port 2023-04-01 11:46:36 -05:00
Jeff Epler 02f8a45dfa
synthio: allow increasing number of channels
12 channels works well on metro m7
2023-04-01 11:46:27 -05:00
Dan Halbert 0aacb146ef take wifi.radio.enabled into account 2023-03-31 22:31:41 -04:00
Dan Halbert 5c429320a8 Add wifi.radio.connected, wifi.radio.ap_active 2023-03-31 17:57:53 -04:00
Dogus Cendek 2d48e9b0b7 Fix VID and Local_Hostname of DeneyapKart1A_v2
Fix VID and Local_Hostname of DeneyapKart1A_v2
2023-03-31 11:44:23 +03:00
Sebastian Romero 0a3600a9ad stm32/boards/ARDUINO_NICLA_VISION: Fix incorrect bootloader PID. 2023-03-31 17:11:14 +11:00
Dan Halbert b07de078f9
Merge pull request #7818 from CDarius/m5stack_stickc_fixes
M5stack Stick-C fixes
2023-03-30 09:33:07 -04:00
CDario 1ea6d7b9f4 Updatate PMU initializaiton. Increased low battery waring levels and disabled some interrupts 2023-03-30 09:24:52 +00:00
CDario 808df200ab Added pin connected to AXP192 N_VBUSSEN 2023-03-30 09:15:17 +00:00
CDario 24ed20b1fc Fixed boot led inverted status 2023-03-30 09:06:34 +00:00
Dan Halbert b863fba992
Merge pull request #7813 from gneverov/issue_7790
don't set tcp_err callback for listen sockets (fixes #7790)
2023-03-29 17:14:42 -04:00
Dan Halbert 9203b66142
Merge pull request #7815 from bill88t/intercontinental-ballistic-typo
24Mhz -> 240Mhz
2023-03-29 17:12:09 -04:00
Bill Sideris b746fd05ba
24Mhz -> 240Mhz 2023-03-29 23:58:54 +03:00
Dan Halbert 5909ceacc6
Merge pull request #7806 from dhalbert/no-report-id-out-reports
Handle HID OUT reports with no report ID
2023-03-29 15:33:36 -04:00
Gregory Neverov 173bc198c6 don't set tcp_err callback for listen sockets 2023-03-29 11:49:32 -07:00
MicroDev f14861c245
fix espnow reinit, remove todos and improve docs 2023-03-29 10:21:58 +05:30
Dan Halbert b57b8dc3b8
Merge pull request #7805 from jepler/mimxrt1011-i2s-sample-rate
mimxrt: Fix output frequency for samples that don't divide 192kHz
2023-03-28 16:50:30 -04:00
Dan Halbert b2535496b0 use max-inline-insns-auto=110 only on SAMD21 2023-03-28 16:28:31 -04:00
Dan Halbert 11082435f1 shrink SAMD21 builds by a few hundred bytes 2023-03-28 16:05:17 -04:00
Kattni Rembor 2a4383e633 Add Feather RP2040 RFM, update DVI. 2023-03-28 15:23:19 -04:00
Jeff Epler cb5e1a1e98
mimxrt: Fix output frequency for samples that don't divide 192kHz
This makes all the samples from Dan's collection register as 440Hz
when playing on pwmio or i2sout, using https://webaudiodemos.appspot.com/pitchdetect/index.html
to detect the frequency played (all should show as A 440Hz; an error
of up to 20 "cents" should be treated as OK)

There's an audible carrier with PWM output and the 8kHz samples. This is
probably a limitation of the peripheral which is documented as being for
input signals of 44 kHz or 48 kHz; the carrier frequency is a fixed
multiple of the sample frequency.

Closes #7800
2023-03-28 10:18:28 -05:00
Dan Halbert d4e6772cc2
Merge pull request #7791 from deneyapkart/add-new-boards
Update creator and creation IDs (deneyapkart/1a/g) and add new boards (deneyapmini/v2 and deneyapkart1av2)
2023-03-28 10:21:00 -04:00
Dan Halbert bf2df1b053
Merge pull request #7801 from CDarius/m5stack-atoms3-lite
Add M5Stack AtomS3 Lite
2023-03-28 09:53:50 -04:00
Dan Halbert 31f46f2460
Merge pull request #7797 from Neradoc/espnow-peer-arguments
espnow.Peer: fix argument types and default values
2023-03-28 09:05:46 -04:00
Neradoc 02c628a3c7
Update ports/espressif/bindings/espnow/ESPNow.c
Co-authored-by: MicroDev <70126934+microdev1@users.noreply.github.com>
2023-03-28 14:36:43 +02:00
Neradoc a481c564da change Peer(encrypt=) to encrypted to match the property 2023-03-28 14:00:03 +02:00
CDario 89bd5fae61 Add M5stack AtomS3 Lite 2023-03-28 06:28:56 +00:00
Dan Halbert 1597b32f96
Merge pull request #7798 from kattni/feather-rp2040-dvi-pin-update
Add BUTTON option and reorganise pins.
2023-03-27 20:46:46 -04:00
Dan Halbert 77cd20af8f
Merge pull request #7785 from jepler/mimxrt10xx-mqs
mimxrt10xx: Add PWMAudioOut
2023-03-27 20:46:11 -04:00
Kattni Rembor 16854ae570 Add BUTTON, reorganise pins. 2023-03-27 16:29:03 -04:00
Jeff Epler 9d090ee73e
get rid of another debug print 2023-03-27 10:52:52 -05:00
Neradoc 19429d3626 espnow.Peer: fix argument types and default values 2023-03-27 16:58:44 +02:00
Ozgur BOSTAN 2ede907746
Merge branch 'adafruit:main' into add-new-boards 2023-03-26 14:57:12 +03:00
ozgurbostan 297d9d0a81 Add new boards (deneyapmini/v2 and deneyapkart1a) 2023-03-26 14:54:34 +03:00
Ozgur BOSTAN 872495ef36
Update mpconfigboard.mk Deneyap Kart G 2023-03-26 01:03:40 +03:00
Ozgur BOSTAN c8b329c4ee
Update mpconfigboard.mk of Deneyap Kart 1A 2023-03-26 01:03:01 +03:00
Ozgur BOSTAN efeaa1ad20
Update mpconfigboard.mk of Deneyap Kart 2023-03-26 01:02:08 +03:00
MicroDev 730a2a9c2c
remove certain excludes from pre-commit 2023-03-25 13:09:35 +05:30
Dan Halbert 57ac9aa763
Merge pull request #7783 from deneyapkart/add-new-boards
Add new boards (deneyapkart/1a/g)
2023-03-24 08:58:29 -04:00
Ozgur BOSTAN 8814e0f4f7
Update sdkconfig
Add missing new line
2023-03-24 15:34:17 +03:00
Bernhard Bablok 659e5b4bed support for Pimoroni Badger2040W 2023-03-24 12:29:51 +01:00
Ozgur BOSTAN c5a6fd97b0
Update sdkconfig
Add missing new line
2023-03-24 09:43:49 +03:00
Jeff Epler b1d9331367
move comment next to its associated #if 2023-03-23 21:11:05 -05:00
Jeff Epler 0c0e06c940
remove comment that was copypasted 2023-03-23 21:10:04 -05:00
Jeff Epler e1c8a3062a
remove debugging print 2023-03-23 21:06:53 -05:00
Jeff Epler e2565e2305
mimxrt10xx: Add PWMAudioOut
.. via a peripheral known as the "MQS" (medium quality sound). It uses an
~192kHz PWM signal to generate audio. It sounds OK on a small speaker with
no amplifier. There's a small pop when starting/stopping audio, as is
typical.
2023-03-23 14:08:44 -05:00
Jeff Epler df916e0484
Merge remote-tracking branch 'origin/main' into mimxrt10xx-rotaryio 2023-03-23 13:02:12 -05:00
Dan Halbert 0639c0850f
Merge pull request #7751 from hathach/add-codespell
Add codespell to pre-commit to scan and fix typo
2023-03-23 13:26:24 -04:00
Scott Shawcroft 5c72828997
Merge pull request #7760 from Neradoc/01space-042-oled-c3
Adding 01space OLED 0.42 C3
2023-03-23 10:14:48 -07:00
Scott Shawcroft cd69e1cec3
Merge pull request #7764 from jepler/mimxrt10xx-i2sout-v2
mimxrt10xx: implement i2sout
2023-03-23 10:07:51 -07:00
Jeff Epler b235b50647
mimxrt: no longer need to collect the pin chainge interrupt ptrs
.. the objects on the gc heap are guaranteed to be alive, as their
finali(s/z)er will disable the interrupt.
2023-03-23 09:58:40 -05:00
Jeff Epler de74b63472
move pin change interrupt stuff to peripherals 2023-03-23 09:28:14 -05:00
Jeff Epler d247e5c6c9
Add the ability for a port to gc things, collect pin change objects that way 2023-03-23 09:16:00 -05:00
Jeff Epler 47e1abdbc7
Add IncrementalEncoder for mimxrt1011
.. and write a general 'pin change interrupt' facility to power it

This uses the same quadrature state machine as atmel-samd, nrf, and
rp2040. The 1011 doesn't have a dedicated encoder peripheral, so we
go the pin-change + software route.
2023-03-23 09:14:58 -05:00
Jeff Epler b50c80e3d9
remove unused macro 2023-03-23 09:12:46 -05:00
Dan Halbert b947605ab7
Touch up 2023-03-23 09:24:11 -04:00
Dan Halbert db76fbd55f
Merge pull request #7712 from gamblor21/ondiskgif_freemem_fix
Add deinit to OnDiskGif
2023-03-23 09:03:07 -04:00
ozgurbostan b38c0a4dc1 Add new boards (deneyapkart/1a/g) 2023-03-23 14:32:01 +03:00
hathach 8c1095b268
Merge branch 'main' into add-codespell 2023-03-23 14:09:57 +07:00
hathach a8abe8e705
remove lib from exludes, fix all remaining typos 2023-03-23 13:59:08 +07:00
Damien George 38e7b842c6 ports: Implement simple write polling for stdout.
This is a best-effort implementation of write polling.  It's difficult to
do correctly because if there are multiple output streams (eg UART and USB
CDC) then some may not be writeable while others are.  A full solution
should also have a return value from mp_hal_stdout_tx_strn(), returning the
number of bytes written to the stream(s).  That's also hard to define.

The renesas-ra and stm32 ports already implement a similar best-effort
mechanism for write polling.

Fixes issue #11026.

Signed-off-by: Damien George <damien@micropython.org>
2023-03-23 13:51:17 +11:00
Dan Halbert 2365f9b3be shrink SAMD21 builds; rework shrink logic in Makefile 2023-03-22 19:20:20 -05:00
Dan Halbert 3ef2b7f81f
Merge pull request #7777 from tannewt/fix_epd_grayscale
Fix tricolor epd and add EPD feather
2023-03-22 20:13:23 -04:00
Dan Halbert 2282d8ea2d
Merge pull request #7779 from jepler/revert-socket-error
Revert "Correctly raise OS error in socketpool_socket_recv_into()"
2023-03-22 20:10:03 -04:00
Dan Halbert d45cde1d6f
Merge pull request #7776 from dhalbert/metro-m7-esp-tx-rx-swap
Swap ESP32 RX and TX pins on Metro M7 1011
2023-03-22 20:09:38 -04:00
Jeff Epler e05f0ba3b2
Revert "Correctly raise OS error in socketpool_socket_recv_into()"
This reverts commit 7e6e824d56.

Fixes #7770

The change in #7623 needs to be revered; the raise-site added in #7632
is the correct one and the one in socketpool needs to be reverted.

This is not affecting 8.0.x because #7623 was not back-ported to there
before we realized it was not a full fix.

Both #7770 and #7606 should be re-tested. I didn't test.
2023-03-22 14:32:06 -05:00
Scott Shawcroft a280c010c2
Fix tricolor epd and add EPD feather 2023-03-22 11:14:38 -07:00
Dan Halbert 57188885d3 Swap ESP32 RX and TX pins on Metro M7 1011 2023-03-22 14:08:03 -04:00
Jeff Epler f40504b7bc
enable MP3 2023-03-22 12:16:29 -05:00
Jeff Epler 04bb0513df
enable audiomixer 2023-03-22 12:16:26 -05:00
Jeff Epler c6bc9c48c9
mimxrt10xx: implement i2sout
tested on metro m7 (green prototype version) with max98357a i2s amplifier and the following test code:
```py
import board
import time
import digitalio
from audiobusio import I2SOut
from audiocore import RawSample
from microcontroller import pin
from ulab import numpy as np

n = np.array(np.sin(np.linspace(0, np.pi*2, 218, endpoint=False)) * 200, dtype=np.int16)
print(n)
r = RawSample(n, sample_rate=8000, channel_count=2)
def main():
    with digitalio.DigitalInOut(board.LED) as l:
        l.switch_to_output(True)
        value = False
        while True:
            with I2SOut(pin.GPIO_06, pin.GPIO_07, pin.GPIO_04) as i:
                time.sleep(.01)
                l.value = value = not value
                i.play(r, loop=True)
                print(i.playing)
                time.sleep(.5)
                i.stop()
                print("STOPPED")
                print(i.playing)
                time.sleep(.5)
                i.play(r, loop=True)
                print(i.playing)
                print("PLAY AGAIN")
                time.sleep(.5)
            time.sleep(1)
```

Only stereo, 16-bit, raw samples were tested; the sample rate is actually fixed
at 48kHz in the core right now. There is more to do, but the basics work.

# Conflicts:
#	ports/mimxrt10xx/Makefile
#	ports/mimxrt10xx/mpconfigport.mk
2023-03-22 12:15:25 -05:00
Dan Halbert 45257147dc
Merge pull request #7772 from jepler/fix-struct-pack
struct: Check that argument counts match, similar to cpython3
2023-03-22 13:11:34 -04:00
Jeff Epler 1e1172bc24
fix sorting of block 2023-03-22 12:04:34 -05:00
Jeff Epler 08358ecd50
constify spi, i2c, uart bank data 2023-03-22 12:03:20 -05:00
Scott Shawcroft e1f16472c1
Merge pull request #7766 from tannewt/switch_nxp_sdk
Switch iMX RT sdk to NXP repo
2023-03-22 09:57:12 -07:00
Jeff Epler 349dedca54
struct: Check that argument counts match, similar to cpython3
.. and test our struct module during the build-time tests

Closes #7771
2023-03-22 09:35:09 -05:00
Damien George 31e7a0587d stm32/boards/NUCLEO_G0B1RE: Add config for USB and mboot.
But leave these disabled.

Signed-off-by: Damien George <damien@micropython.org>
2023-03-22 16:38:03 +11:00
Damien George 31638473b7 stm32/mboot: Add support for G0 MCUs.
Signed-off-by: Damien George <damien@micropython.org>
2023-03-22 16:38:03 +11:00
Damien George c7923b1139 stm32: Add support for USB on G0 MCUs.
Signed-off-by: Damien George <damien@micropython.org>
2023-03-22 16:38:03 +11:00
robert-hh b7ea90d4cb rp2/machine_uart: Fix setting of UART LCR parameters.
Prior to this change, setting of UART parameters like parity, stop bits or
data bits did not work correctly.  As suggested by @iabdalkader, adding
__DSB() fixes the problem, making sure that changes to the UART LCR_H
register are seen by the peripheral.

Note: the FIFO is already enabled in the call to uart_init(), so the call
to uart_set_fifo_enabled() is not required, but kept for visibility.

Fixes issue #10976.
2023-03-22 16:21:48 +11:00
Dan Halbert c93560144b
Merge pull request #7678 from FoamyGuy/boundary_fill_background_tasks
do background tasks and handle interrupt during boundary fill
2023-03-21 23:38:05 -04:00
Scott Shawcroft 9c3c0555dd
Switch iMX RT sdk to NXP repo
Fixes #7645
2023-03-21 16:21:57 -07:00
Scott Shawcroft 67e0a49a1f
Merge pull request #7724 from tannewt/get_perfbench_running
Improve iMX RT performance
2023-03-21 09:00:48 -07:00
Neradoc b45d128726 fix lwip name in 01space_lcd042_esp32c3 2023-03-21 16:46:08 +01:00
Neradoc 36e4dc2588 Adding 01space OLED 0.42 C3 2023-03-21 05:01:17 +01:00
Damien George 051e2900d9 stm32/boards/NUCLEO_H723ZG: Add new H723 board.
The following have been tested and are working:
- 550MHz CPU frequency
- UART REPL via ST-Link
- USB REPL and mass storage
- 3x LEDs and 1x user button
- Ethernet

Signed-off-by: Damien George <damien@micropython.org>
2023-03-21 14:05:59 +11:00
Damien George d995c01042 stm32/boards: Add ld and af.csv for H723.
Signed-off-by: Damien George <damien@micropython.org>
2023-03-21 14:02:49 +11:00
Damien George 13fcd8440e stm32: Add support for STM32H723 MCUs.
Signed-off-by: Damien George <damien@micropython.org>
2023-03-21 14:02:49 +11:00
Damien George 3187e4c7e7 stm32/mphalport: Update HAL version to 1.11.0 to match stm32lib.
Signed-off-by: Damien George <damien@micropython.org>
2023-03-21 14:02:49 +11:00
Scott Shawcroft 41a8ada327
Merge pull request #7750 from Neradoc/add-ttgo-tdisplay-esp32
Add Lilygo TTGO T-display ESP32 board
2023-03-20 14:40:16 -07:00
Scott Shawcroft 32a596df39
Merge pull request #7757 from adafruit/8.0.x
Merge latest 8.0.x changes
2023-03-20 14:34:59 -07:00
Scott Shawcroft b75d99c5d7
Merge pull request #7745 from Neradoc/lilygo-twatch-v3-MAIN
Add Lilygo T-Watch 2020 V3 (ESP32)
2023-03-20 14:31:32 -07:00
Scott Shawcroft bdf592089a
Fix .bin, .hex and .uf2 with new linker sections
Also, format perfbench output in table with reference timing from
the host.
2023-03-20 14:02:57 -07:00
robert-hh 711bac511e rp2/main: Keep UART REPL with DEBUG=1 and MICROPY_HW_ENABLE_UART_REPL=1.
For builds with DEBUG=1 and MICROPY_HW_ENABLE_UART_REPL=1, calling
stdio_init_all() in main() detaches the UART input from REPL.  This change
suppresses calling stdio_init_all() then.
2023-03-20 22:33:45 +11:00
robert-hh be686e634e rp2: Allow disabling USB via MICROPY_HW_ENABLE_USBDEV config.
Previously, setting MICROPY_HW_ENABLE_USBDEV to 0 caused build errors.  The
change affects the nrf and samd ports as well, so MICROPY_HW_ENABLE_USBDEV
had to be explicitly enabled there.

The configuration options MICROPY_HW_ENABLE_USBDEV and
MICROPY_HW_ENABLE_UART_REPL are independent, and can be enabled or disabled
by a board.

Signed-off-by: Damien George <damien@micropython.org>
2023-03-20 22:33:45 +11:00
robert-hh a2b31f968d nrf/modules/machine: Support the freq=n argument for machine.I2C.
Mostly for compatibility.  Effective values are 100000, 250000 and 400000.
The supplied values are mapped to these.
2023-03-20 16:27:44 +11:00
robert-hh 3bbf2ef3fb nrf/modules/machine: Use a dedicated function for machine.idle().
Calling MICROPY_EVENT_POLL_HOOK.  That allows Ctrl-C to break loops with
idle().
2023-03-20 16:15:43 +11:00
robert-hh 2cd3a7b45c nrf/nrfx_config: Use the UARTE definitions and drivers for the NRF52xx.
Suggested by @ricksorensen after testing.  These match better the hardware
of the NRF52xx.
2023-03-20 16:12:16 +11:00
robert-hh 7ea192af05 nrf/modules/machine/uart: Add timeout keyword options and "any" method.
Changes in this commit:
- Add the timeout and timeout_char keyword options.
- Make uart.read() non-blocking.
- Add uart.any().
- Add ioctl MP_STREAM_POLL handling.
- Change uart.write() into non-busy waiting. uart.write() still waits until
  all data has been sent, but calls MICROPY_EVENT_POLL_HOOK while waiting.
  uart.write() uses DMA for transfer.  One option would be to add a small
  local buffer, such that transfers up to the size of the buffer could be
  done without waiting.
- As a side effect to the change of uart.write(), uart.txdone() and ioctl
  flush now report/wait correctly for the end of transmission.
- Change machine_hard_uart_buf_t in machine_hard_uart_obj_t to an instance
  of that struct, rather than a pointer to one.
2023-03-20 16:08:35 +11:00
Damien George 42511b5291 stm32/boards/NUCLEO_H743ZI2: Fix MCU tag in board.json file.
Signed-off-by: Damien George <damien@micropython.org>
2023-03-20 15:24:45 +11:00
iabdalkader a197823eb7 ports: Fix MCU tags in Arduino board.json files. 2023-03-20 15:22:24 +11:00
Jeff Epler 3ac696e7ba
Merge pull request #7731 from kreasteve/statemachine_run_fix
Statemachine run fix
2023-03-19 20:47:09 -05:00
Neradoc b88e76d3a4 Add builtin display support with shared board.I2C to Lolin S2 Pico 2023-03-19 17:48:36 +01:00
hathach fecc1bdedb
fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
Neradoc e7c349ea43 Add Lilygo TTGO T-display ESP32 board 2023-03-18 15:27:59 +01:00
Neradoc f1b7612b5a Add Lilygo T-Watch 2020 V3 (ESP32)
- DISPLAY is in, brightness is ok
- default busses and pin names
- enabled PSRAM
2023-03-18 01:17:46 +01:00
Dan Halbert ca292f3427 Turn off mkfs FAT32 on all SAMD21 builds; note in doc 2023-03-17 12:18:24 -04:00
Benjamin Shockley f35af4c9ce
Update mpconfigboard.mk
Added trailing line
2023-03-16 16:54:55 -05:00
Benjamin Shockley d59a57ecc9
Update pins.c
Changed GIO00 to GIO0
2023-03-16 16:54:38 -05:00
Benjamin Shockley eab8633a9e
Updated Fig Pi Pins and Added Memory Option
Updated the Fig Pi pin definition to match latest production and fix errors.  Added an optional memory chip for parts shortage issues.
2023-03-16 16:41:49 -05:00
kreasteve 208c081c95 bugfix_#7706 2023-03-16 11:10:57 +01:00
kreasteve d7fb21ec76 Revert "bugfix"
This reverts commit 4f1627f68e.
2023-03-16 11:02:41 +01:00
kreasteve 4f1627f68e bugfix 2023-03-16 10:56:22 +01:00
MicroDev 37b9f778e1
Merge pull request #7237 from kdb424/main
Add Boardsource Blok
2023-03-16 00:02:10 +05:30
Kyle Brown 6062e75b08 add Blok 2023-03-15 08:58:53 -07:00
foamyguy f2931dec7a empty RUN_BACKGROUND_TASKS for unix port 2023-03-14 18:26:23 -05:00
Scott Shawcroft 5bb8a7a7c6
Improve iMX RT performance
* Enable dcache for OCRAM where the VM heap lives.
* Add CIRCUITPY_SWO_TRACE for pushing program counters out over the
  SWO pin via the ITM module in the CPU. Exempt some functions from
  instrumentation to reduce traffic and allow inlining.
* Place more functions in ITCM to handle errors using code in RAM-only
  and speed up CP.
* Use SET and CLEAR registers for digitalio. The SDK does read, mask
  and write.
* Switch to 2MiB reserved for CircuitPython code. Up from 1MiB.
* Run USB interrupts during flash erase and write.
* Allow storage writes from CP if the USB drive is disabled.
* Get perf bench tests running on CircuitPython and increase timeouts
  so it works when instrumentation is active.
2023-03-14 12:30:58 -07:00
Dan Halbert d4840cbf10 translate() messages must be one string 2023-03-14 13:13:58 -04:00
Dan Halbert 9083ae02de
Merge pull request #7710 from PaintYourDragon/pb-feather-dvi
Add Feather RP2040 DVI
2023-03-14 13:10:47 -04:00
Scott Shawcroft 141a43cdce
Merge pull request #7702 from dhalbert/tinyusb-update
update tinyusb to latest
2023-03-14 09:59:45 -07:00
hathach b432cf6201
fix rp2040 with new shared irq usb handler 2023-03-13 22:46:27 +07:00
Matthias Kreier f5b8b8d6f2
tailing whitespace removed (pre-commit run failed) 2023-03-13 15:30:52 +07:00
Matthias Kreier 49e9ea2e9a
add missing pins 4, 36 and 39 - and 4 aliases
The original list left D4 (GPIO4), VN (GPIO39) and VP (GPIO36) out.

Added aliases for 1, 3, 16 and 17 with their GPIO names, even though they won't be used as such since they are UART0 and UART2
2023-03-13 15:17:55 +07:00
robert-hh 05bb26010e samd: Always provide the machine.RTC class.
Even if boards do not have a clock crystal.  In that case, the clock
quality will be very poor.

Always having machine.RTC means that the date/time can be set in a way that
is consistent with other ports.

This commit also removes the special code in modutime.c for devices without
the RTC class.

Signed-off-by: Damien George <damien@micropython.org>
2023-03-13 12:44:34 +11:00
pmendham d5c45a80d2 embed: Fix arguments to mp_raw_code_load_mem.
Update arguments to mp_raw_code_load_mem so that the embed port can build
when MICROPY_PERSISTENT_CODE_LOAD is enabled.
2023-03-13 12:35:12 +11:00
IhorNehrutsa 416707eefe esp32/machine_pin: Use const for size of machine_pin_irq_handler array. 2023-03-13 12:14:09 +11:00
Dan Halbert daa927a114 switch STM to dwc2 USB 2023-03-12 14:02:38 -04:00
MicroDev 7163ab390c
Merge pull request #7715 from bill88t/waveshare_esp32s2_pico
Even more board definition improvements for `waveshare_esp32s2_pico`
2023-03-12 07:46:42 +05:30
Bill Sideris bfc551c158
Invert led 2023-03-11 14:14:47 +02:00
Bill Sideris 76e83a432c
Debug uart, default spi/i2c 2023-03-11 14:05:45 +02:00
MicroDev 5f0aa4a608
change board config of some esp32s3 boards
- remove unnecessary optimization flags
- shrink adafruit_feather_esp32s3_reverse_tft
2023-03-11 08:53:44 +05:30
Paint Your Dragon ff0a17d095
Merge branch 'adafruit:main' into main 2023-03-10 13:45:53 -08:00
Dan Halbert b6a7613350
Merge pull request #7470 from microdev1/espnow
Add ESP-NOW Support
2023-03-10 12:21:56 -05:00
BrainBoardz 838450643e
Merge branch 'adafruit:main' into main 2023-03-10 09:50:27 -05:00
Christian Clauss 4376c969f6 all: Fix Python comparison to None and True, and use "not in".
These are basic PEP8 recommendations.
2023-03-10 13:32:24 +11:00
Damien George b3c8ab37ec py/gc: Make gc_dump_info/gc_dump_alloc_table take a printer as argument.
So that callers can redirect the output if needed.

Signed-off-by: Damien George <damien@micropython.org>
2023-03-10 10:58:10 +11:00
Damien George f450e94ba0 ports: Rename remaining "Micro Python" to "MicroPython".
Signed-off-by: Damien George <damien@micropython.org>
2023-03-10 10:54:00 +11:00
robert-hh ed1f42cb49 nrf/modules/machine/pwm: Support using all 4 channels of a PWM module.
These have the same frequency, but can have different duty cycle and
polarity.

pwm.deinit() stops all channels of a module, but does not release the
module.  pwm.init() without arguments restarts all outputs.
2023-03-10 10:44:02 +11:00
robert-hh e3b877826c nrf/modules/machine/soft_pwm: Add PWM for nrf51x boards using soft PWM.
Using extmod/machine_pwm.c for the Python bindings and the existing
softpwm.c driver, by just adding the interface.

Properties:
- Frequency range 1-3906 Hz.
- All PWM outputs run at the same frequency but can have different duty
  cycles.
- Limited to the P0.x pins.

Since it uses the existing softpwm.c mechanism, it will be affected by
playing music with the music class.
2023-03-10 10:44:02 +11:00
robert-hh a1f838cdf1 nrf/modules/machine/pwm: Use extmod/machine_pwm.c for PWM module.
This is a breaking change, making the hardware PWM on the nrf port
compatible with the other ports providing machine.PWM.

Frequency range 4Hz - ~5.4 MHz.  The base clock range is 125kHz to 16 MHz,
and the divider range is 3 - 32767.

The hardware supports up to four outputs per PWM device with different duty
cycles, but only one output is (and was) supported.
2023-03-10 10:43:55 +11:00
robert-hh cf43df4caa nrf/modules/machine/pwm: Add paramter checks and error messages. 2023-03-10 10:30:16 +11:00
Dan Halbert 0f31ba676b update errata fixes for RP2040 2023-03-09 17:40:53 -05:00
Dan Halbert 353411af4b
Merge pull request #7701 from dhalbert/background-task-for-7673
run background tasks during multi-part DMA
2023-03-09 17:25:42 -05:00
MicroDev 58f28b98be
minor doc fix
Co-authored-by: Scott Shawcroft <scott@tannewt.org>
2023-03-10 00:01:44 +05:30
Scott Shawcroft fe40035cb9
Merge pull request #7697 from dhalbert/pico-sdk-cyw43-update
pico-sdk to 1.5.0; cyw43-driver to 0.9.0
2023-03-09 10:02:45 -08:00
Scott Shawcroft fcc4299b92
Merge pull request #7686 from gamblor21/esp_family_spi_speed_increase
ESP32 Family: Add multiple transctions to SPI for improved efficency
2023-03-09 10:01:02 -08:00
Dan Halbert 96e2a72d71 run background tasks during multi-part DMA 2023-03-09 11:53:16 -05:00
Dan Halbert 2ebc0ea51c
GitHub online editor introduced spaces on blank lines :( 2023-03-09 11:30:38 -05:00
Dan Halbert de3c5ad2f4
add blank lines around aliased pins 2023-03-09 11:00:55 -05:00
BrainBoardz 0054362784
Updated Pin Assignments (Add SPI definition)
Changed incorrect i2C pins assignment in mpconfigboard.h (changed SDA/SCL to GPIO 8/GPIO 9. 
Rename  SD_MOSI, SD_MISO and SD_SCK to MOSI, MISO and SCK
Added SPI define in mpconfigboard.h for SPI
2023-03-09 10:26:54 -05:00
MicroDev 874ba4ec68
revert `Communicate` class and more 2023-03-09 12:04:50 +05:30
Dan Halbert fef9571400 pico-sdk to 1.5.0; cyw43-driver to 0.9.0 2023-03-08 22:43:12 -05:00
Damien George b336b6bb74 stm32/pybthread: Make pyb_thread_dump take a printer as its argument.
Signed-off-by: Damien George <damien@micropython.org>
2023-03-09 13:20:59 +11:00
Damien George 067c7cd9dc stm32/pin: Make pin_find debug output use mp_printf.
Signed-off-by: Damien George <damien@micropython.org>
2023-03-09 13:20:59 +11:00
Damien George f43c4dfc68 stm32/extint: Make ExtInt.regs print using mp_printf.
Signed-off-by: Damien George <damien@micropython.org>
2023-03-09 13:20:59 +11:00
Damien George f6a35f76af stm32/modmachine: Make machine.info print using mp_printf.
Signed-off-by: Damien George <damien@micropython.org>
2023-03-09 13:20:59 +11:00
Damien George 6c8b19c7e2 stm32/spi: Return error code and raise exception if SPI init fails.
Signed-off-by: Damien George <damien@micropython.org>
2023-03-09 12:47:45 +11:00
Damien George 98937dcfc2 stm32/i2c: Return error code and raise exception if I2C init fails.
Signed-off-by: Damien George <damien@micropython.org>
2023-03-09 12:47:45 +11:00
Damien George b981e37ccd stm32/main: Use mp_printf instead of printf for MPY start-up messages.
Signed-off-by: Damien George <damien@micropython.org>
2023-03-09 12:47:45 +11:00
Damien George b9dad0add2 stm32: Remove commented-out printf's and debugging code.
Signed-off-by: Damien George <damien@micropython.org>
2023-03-09 12:47:45 +11:00
cpottle9 c80e7c14e6 rp2: Allocate GC heap from unused RAM.
Borrowing an idea from the mimxrt port (also stm32 port): in the loader
input file memmap_mp.ld calculate __GcHeapStart and __GcHeapEnd as the
unused RAM.  Then in main.c use these addresses as arguments to gc_init().

The benefits of this change are:

1) When libraries are added or removed in the future changing BSS usage,
   main.c's sizing of the GC heap does not need to be changed.

2) Currently these changes make the GC area about 30 KBytes larger, eg on
   PICO_W the GC heap increases from 166016 to 192448 bytes.  Without that
   change this RAM would never get used.

3) If someone wants to disable one or more SRAM blocks on the RP2040 to
   reduce power consumption it will be easy: just change the MEMORY section
   in memmap_mp.ld.  For instance to not use SRAM2 and SRAM3 change it to:

        MEMORY
        {
            FLASH(rx) : ORIGIN = 0x10000000, LENGTH = 2048k
            RAM(rwx) : ORIGIN =  0x21000000, LENGTH = 128k
            SCRATCH_X(rwx) : ORIGIN = 0x20040000, LENGTH = 4k
            SCRATCH_Y(rwx) : ORIGIN = 0x20041000, LENGTH = 4k
        }

   Then to turn off clocks for SRAM2 and SRAM3 from MicroPython, set the
   appropriate bits in WAKE_EN0 and SLEEP_EN0.

Tested by running the firmware.uf2 file on PICO_W and displaying
micropython.mem_info().  Confirmed GC total size approximately matched the
size calculated by the loader.

Signed-off-by: cpottle9 <cpottle9@outlook.com>
2023-03-09 12:00:02 +11:00
David Grayson f80d040c03 rp2/modrp2: Disable other core, shorten delay to 8us in bootsel_button.
This function seems to work fine in multi-core applications now.

The delay is now in units of microseconds instead of depending on the clock
speed, and is adjustable by board configuration headers.

Also added documentation.
2023-03-09 11:44:20 +11:00
Tomofumi Inoue 673957b643 rp2/modrp2: Support reading the BOOTSEL button on the Pico board.
And any other board that exposes this pin with a button.
2023-03-09 11:43:39 +11:00