Commit Graph

11858 Commits

Author SHA1 Message Date
iabdalkader 4b9c459133 mimxrt/sdio: Add support for the 117x series.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-29 23:08:41 +10:00
MakerM0 7aa85353e7
Update mpconfigboard.mk 2023-09-29 16:32:33 +08:00
iabdalkader 6a6a90507d stm32/boards/ARDUINO_GIGA: Update board config.
Changes are:
- Disable internal flash storage and use the external QSPI for storage.
- Disable default bootloader entry mode.  The bootloader entry function
  exists in board_init.c.
- Remove OSC enable/disable macros (this board doesn't have an OSC).

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-29 16:56:06 +10:00
Jim Mussared da6f1e1d1e rp2/msc_disk: Allow configuring the USB MSC inquiry response.
This was previously hard-coded to "Micropy" / "Mass Storage" / "1.0".

Now allow it to be overridden by a board.

Also change "Micropy" to "MicroPy" and "1.0" to "1.00" to match stm32.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-09-29 16:36:45 +10:00
Jim Mussared 61f331374d stm32/usbd_msc_interface: Allow configuring the MSC inquiry response.
This was previously hard-coded to "MicroPy" / "pyboard Flash" / "1.00".

Now allow it to be overridden by a board.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-09-29 16:35:48 +10:00
dotnfc d7f63f994f esp32/main: Allow a board to override the MicroPython task stack size.
This allows the MicroPython task stack size to be overridden by the
mpconfigboard.h settings.

Signed-off-by: dotnfc <dotnfc@163.com>
2023-09-29 16:14:15 +10:00
Glenn Moloney 6662d84faa esp32/boards: Add bootloader rollback support for all builds.
Add "CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y" to
ports/esp32/boards/sdkconfig.base so that all micropython esp32 images
support OTA rollback in the bootloader.  These images can then be converted
to OTA-capable images as required by user tools.

Also remove CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y from board-specific
sdkconfig files as this is now the default.

Signed-off-by: Glenn Moloney <glenn.moloney@gmail.com>
2023-09-29 16:00:51 +10:00
MakerM0 79161dbeb2
Update sdkconfig 2023-09-29 13:47:47 +08:00
Felix Dörre 3c2b2f7a4d rp2/modmachine: Fix lightsleep while wifi is powered off.
While cyw43 is deinitialized, an interrupt occurs.  That is handled with
these lines: ports/rp2/mpnetworkport.c#L59-L61 and as pendsv is disabled
while in network code, the poll function then just waits there.

When deinit has finished, the poll func is executed, but skipped:
src/cyw43_ctrl.c#L222-L225 this skips the `CYW43_POST_POLL_HOOK` which
would re-enable interrupts, but also reset `cyw43_has_pending`.

And in that state, the lightsleep code, will skip sleeping as it thinks
there is a network packet pending to be handled.

With this change applied, lightsleep works as expected when the wifi chip
is enabled, and when it's powered off.
2023-09-29 15:15:42 +10:00
Jim Mussared cf32c2feb5 ports: Restrict board.json to standard features.
Applies to newly-added ARDUINO_PORTENTA_C33 and UM_NANOS3.

Makes the list match the standard features defined in
24a6e951ec.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-09-29 14:15:02 +10:00
Jim Mussared 79473691f2 {mimxrt,powerpc,samd}/mpconfigport: Don't override parse chunk alloc.
This was copied from minimal/mpconfigport.h, but it doesn't make sense
for general ports.

Add a comment to minimal/mpconfigport.h to explain why it specifically
overrides it.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-09-29 14:11:26 +10:00
Seon Rozenblum 77ae0a0948 esp32/boards: Fix VBAT voltage calculation for UM S3 boards.
Signed-off-by: Seon Rozenblum <seon@unexpectedmaker.com>
2023-09-29 14:09:15 +10:00
Angus Gratton 2fcd28f713 py/mkrules.mk: Don't strip binary if STRIP variable is unset.
This provides a way to build a non-DEBUG host binary that still has symbols
and debug information.

Document this for the unix port, and update a comment in the unix port
Makefile.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2023-09-29 13:01:12 +10:00
Damien George 03a3af417e esp8266/boards: Make sure modespnow.o is placed in irom0.
Signed-off-by: Damien George <damien@micropython.org>
2023-09-29 12:03:00 +10:00
Jeff Epler 10aeb23789
remove console pins, that was wrong 2023-09-28 17:13:22 -05:00
Dan Halbert 76ff01452b Trinket M0 comes up; still very much wip 2023-09-28 16:22:10 -04:00
Bill Sideris c3cf7c0894
wifi_reset 2023-09-28 17:53:40 +03:00
Damien George 5dbd6fc705 stm32/dma: Remove unbalanced ).
This was added by mistake in 9e0f934cdf

Signed-off-by: Damien George <damien@micropython.org>
2023-09-28 17:31:54 +10:00
Damien George 88564c1406 stm32/uart: Generalise UART source clock calculation for H5 and H7 MCUs.
This gets the calculation working properly for H5 MCUs, and fixes the
switch statement to switch on csel&7 instead of csel&3.

Signed-off-by: Damien George <damien@micropython.org>
2023-09-28 17:30:38 +10:00
Damien George 82b4ab7576 stm32/boards: Move includes to after defines in all hal_conf.h files.
The include of HAL headers should come after the HAL configuration defines,
so that the headers can see whether the defines were made or not, to
provide defaults and configure various things.

Signed-off-by: Damien George <damien@micropython.org>
2023-09-28 17:30:38 +10:00
Rene Straub 08c661c930 stm32/dac: Add STM32H5 DAC support, with dma_nohal implementation.
Integrate DAC support for STM32H5.  Implement STM32H5 GPDMA driver. The DMA
driver is largely different from other STM32 variants.  To support the DAC
circular mode, memory based linked list DMA descriptors are used.

Signed-off-by: Rene Straub <rene@see5.ch>
2023-09-28 17:11:37 +10:00
Jeff Epler a9fce6c495
qualia: fixes for revision C
* neopixel removed, could not share function with DBLTAP
 * external SPI bus definition is settled
2023-09-27 18:13:21 -05:00
Jeff Epler aa0d7aad83
Merge pull request #8440 from jepler/dotclock-overscan-rotation
Dotclock: fix overscan and rotation
2023-09-27 18:07:50 -05:00
Jeff Epler c1a98e460a
Merge pull request #8439 from tannewt/fix_for_make_quirk
Tweak for make quirk
2023-09-27 18:05:43 -05:00
Jeff Epler f80d08e207
Make dot clock displays with a masked portion on the left work 2023-09-27 15:15:32 -05:00
Scott Shawcroft 3684640ada
Merge pull request #8430 from jepler/dotclock-enhancements
Dotclock enhancements
2023-09-27 11:39:37 -07:00
Scott Shawcroft ad837d44ed
Tweak for make quirk 2023-09-27 09:17:07 -07:00
Rene Straub 72ef2e6291 stm32/machine_adc: Fix and improve STM32H5 support.
Changes are:
- Run ADC on PCLK/16.
- Verify and optimize timings (ADC_STAB_DELAY_US, ADC_SAMPLETIME_DEFAULT).
- Add support for STM32H5 VBAT and COREVDD channels on ADC2.
- Replace ADC constants in machine_adc_locals_dict_table.
- Convert STM32 literal to channel numbers in adc_config_channel with
  corresponding STM32 LL library functions (__LL_ADC_IS_CHANNEL_INTERNAL(),
  __LL_ADC_CHANNEL_TO_DECIMAL_NB()).

Reasoning for the second last point: the STM32 driver literals are uint32_t
that don't work with MP_ROM_INT() which handles signed 31 bit integers
only.  Introduce enumerator machine_adc_internal_ch_t to define external
channels (0..19), internal channels (256..) and the special channel VREF
(0xffff).  Values are converted to STM32 literals with adc_ll_channel()
when required in adc_config_and_read_u16().

Signed-off-by: Rene Straub <rene@see5.ch>
2023-09-27 16:58:10 +10:00
Rene Straub 64d24fccd6 stm32/adc: Optimize sampling time for G4, H5, L4 and WB MCUs.
Signed-off-by: Rene Straub <rene@see5.ch>
2023-09-27 16:28:31 +10:00
Rene Straub 8f9bba0a1a stm32/adc: Add support for STM32H5 ADC2 inputs.
Select ADC instance based on pin information to support ADC2 inputs.
Display ADC instance number similar to machine_adc (STM32H5 only):
<ADC2 on Pin(Pin.cpu.F14, mode=Pin.ANALOG) channel=6>

Signed-off-by: Rene Straub <rene@see5.ch>
2023-09-27 16:28:15 +10:00
Rene Straub 13cc280eae stm32/adc: Fix STM32H5 support.
Fixed the preliminary STM32H5 ADC support for pyb.ADC:
- Run ADC on PCLK/16.
- Use STM32 ADC library channel literals (__HAL_ADC_DECIMAL_NB_TO_CHANNEL).
- Use correct temperature conversion for H5 (30C, 130C calibration points).

Signed-off-by: Rene Straub <rene@see5.ch>
2023-09-27 16:26:30 +10:00
Phillip Burgess 54322578d2 RP2040: fix 8-bit WAV "audio buffer too small" bug
Also subtly fixed 8- to 16-bit scaling math
2023-09-26 16:44:19 -07:00
Scott Shawcroft 3fdfb9bd32
Update ADC and I2S APIs for 5.1
This fixes ESP32 because the BufferedIn used the old ADC API and
I2S did too indirectly.

Fixes #8429
2023-09-26 16:06:54 -07:00
Jeff Epler 3d3061f6f7
fix qualia board definition 2023-09-26 08:33:27 -05:00
Jeff Epler 1c2362b758
bump qualia psram to 120MHz 2023-09-26 08:33:10 -05:00
Jeff Epler 3af5cbc312
bump ram to 120MHz 2023-09-26 07:49:00 -05:00
Jeff Epler 03141d40af
espressif: i2c: initialize "has_lock"
Otherwise, a stack-constructed i2c instance might get some other value
here.
2023-09-26 07:48:59 -05:00
Jeff Epler 747b6e8d2e
enable LCD_RGB_RESTART_IN_VSYNC
this "should" turn permanent tearing into temporary tearing.
2023-09-25 16:39:38 -05:00
Jeff Epler 6263f6af84
Switch to i2c init string for espressif lcd ev, expose values via board 2023-09-25 16:39:00 -05:00
Jeff Epler 65310ab615
update io expander table for rev C 2023-09-25 12:00:04 -05:00
Jeff Epler ce22edba15
On Qualia, define board.TFT_IO_EXPANDER
these arguments make it easier to call ioexpander_send_init_sequence
2023-09-25 11:33:01 -05:00
MicroDev 27fd60d739
implement suggested changes
- update the docs
- split out common `watchdog_reset`
- revert to using `None` instead of `WatchDogMode.NONE`
2023-09-24 15:23:38 +00:00
MakerM0 761ac3b363
Update pins.c 2023-09-24 22:40:08 +08:00
MakerM0 6acce76181
Update pins.c 2023-09-24 22:35:31 +08:00
MakerM0 9284d25ad4
Update pins.c 2023-09-24 22:28:48 +08:00
MakerM0 e197493537
Update mpconfigboard.mk 2023-09-24 22:24:24 +08:00
MakerM0 1143d3e33a
Update mpconfigboard.h 2023-09-24 22:23:56 +08:00
MakerM0 ca4ecf043e
Update board.c 2023-09-24 22:23:12 +08:00
MakerM0 71e165b1fc
Update pins.c 2023-09-24 22:22:48 +08:00
MakerM0 918f93fc2c
Update mpconfigboard.mk 2023-09-24 22:08:00 +08:00
MakerM0 3913adf7fb
Update sdkconfig 2023-09-24 22:06:38 +08:00
MakerM0 c35839afc5
Update board.c 2023-09-24 22:05:34 +08:00
MakerM0 0507e7a00d
Update mpconfigboard.mk 2023-09-24 21:50:30 +08:00
MakerM0 5ffb7e7c83
Update mpconfigboard.mk 2023-09-24 21:38:30 +08:00
MakerM0 ab8e119510
Update sdkconfig 2023-09-24 21:17:39 +08:00
MakerM0 9ab8822c59
Update pins.c 2023-09-24 21:17:25 +08:00
MakerM0 6f77f0f163
Update mpconfigboard.h 2023-09-24 21:17:11 +08:00
MakerM0 6d7a08bcdc
Update board.c 2023-09-24 21:16:58 +08:00
MakerM0 12f35d1a0f
Update mpconfigboard.mk 2023-09-24 21:16:41 +08:00
MakerM0 a5ae99a5b6
Update mpconfigboard.mk 2023-09-24 21:12:49 +08:00
MakerM0 9d90680521
Add board def for MagiClick S3
The board is related here: https://github.com/MakerM0/MagiClick-esp32s3

VID&PID can be found here: https://github.com/espressif/usb-pids
2023-09-24 20:48:30 +08:00
MicroDev 05812e0618
Merge branch 'main' into watchdog-rp 2023-09-24 05:13:22 +00:00
Scott Shawcroft c726e87344
Enable BLE on H2 devkit 2023-09-22 15:05:20 -07:00
Jeff Epler fb6f4c938c
tweak coverage build configuration 2023-09-22 14:26:51 -05:00
Jeff Epler d1ee906afd
fix dependency on generated header 2023-09-22 14:14:07 -05:00
Jeff Epler 2cc07aef73
dummy RUN_BACKGROUND_TASKS for unix port 2023-09-22 13:39:08 -05:00
Jeff Epler 87feeab922
fix ringbuf differences 2023-09-22 13:38:56 -05:00
Scott Shawcroft faa445e347
Three more board fixes 2023-09-22 10:03:20 -07:00
Scott Shawcroft 1480d70d17
Fix builds
* Disable bleio on C3 with 4MB flash.
* Fix gpio include path in board.c's that use it.
2023-09-22 10:03:20 -07:00
Scott Shawcroft 16d1dc2be0
Update all target sdkconfig 2023-09-22 10:03:20 -07:00
Scott Shawcroft 6649b17fb5
H2 works 2023-09-22 10:03:20 -07:00
Scott Shawcroft 39192cc896
C6 works 2023-09-22 10:02:35 -07:00
Scott Shawcroft 7bad82a219
C6 compiles, runs but wifi crashes 2023-09-22 10:02:35 -07:00
Scott Shawcroft e22eefabd7
First stab at 5.1 update 2023-09-22 10:02:30 -07:00
Scott Shawcroft d6b284ebb0
Merge pull request #8411 from tannewt/update-idf
Update to ESP-IDF 5.0
2023-09-22 09:45:35 -07:00
Jeff Epler e1fffe67a0
split heap doesn't build yet so don't test it 2023-09-22 10:40:34 -05:00
Jeff Epler 4902b76129
guard this file against being included twice 2023-09-22 10:40:21 -05:00
Luca Burelli dd58be19ee esp32: Fix Partition.writeblocks() partial write corruption.
To simulate a partial erase, the code reads a native block, erases it,
and writes back the data before and after the erased area. However, the
current logic was filling the area after the erased block with data
from the beginning of the native block-aligned data, instead of applying
the proper offset.

Fixes #12474.

Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
2023-09-21 17:49:48 +02:00
Scott Shawcroft 8f3c6422ee
Fix MDNS after the user turns off wifi
We need to reset our MDNS state instead of just the IDF's.
2023-09-20 14:46:42 -07:00
Scott Shawcroft d4000023d8
Fix board def mistakes and cast 2023-09-20 11:45:45 -07:00
Jeff Epler e7668ed91d
spelling 2023-09-20 11:23:34 -05:00
Jeff Epler 2b754b1f6b
spelling 2023-09-20 11:23:28 -05:00
Damien George a3862e7267 stm32/powerctrlboot: Allow PLL1 Q and R outputs to be enabled on H5.
If a board needs these outputs then it can define MICROPY_HW_CLK_PLLQ/R.

It saves power to not enable them if they are not needed.

Signed-off-by: Damien George <damien@micropython.org>
2023-09-20 18:56:52 +10:00
Dan Halbert 4d175ab41a convert to MP_DEFINED_CONST_OBJ_TYPE() 2023-09-19 21:09:29 -04:00
Dan Halbert 2c0fa0f7dc initial merge from v1.20.0; just satisifying conflicts 2023-09-19 11:10:12 -04:00
Dan Halbert 931a6adb81 fix CPU on Monster M4SK; turn off audiobusio by default on SAMD51G 2023-09-18 21:28:00 -04:00
Dan Halbert 9e9dff4bf2
Merge pull request #8400 from jepler/update-rgbmatrix-docs
rgbmatrix: more small doc improvements
2023-09-18 18:31:39 -04:00
Scott Shawcroft e39fbf1b26
Merge pull request #8401 from jepler/i2c-expander-init
Fast(ish) special purpose bitbang spi over i2c
2023-09-18 13:19:49 -07:00
Scott Shawcroft c86b3ae19f
Update to merged idf changes 2023-09-18 11:18:04 -07:00
Jeff Epler faa6887050
Use faster bus & remove final delay
this pushes the LCD initialization down to about 1.3s.
2023-09-18 13:00:18 -05:00
Jeff Epler 67e15bb6a2
makerfabs_tft7: rename properties to match docs 2023-09-18 10:35:49 -05:00
Jeff Epler 75ba82cdb0
lcd_ev: add timings; rename TFT -> TFT_PINS 2023-09-18 10:35:36 -05:00
Jeff Epler 4c682262e6
lcd_ev: fix compile error 2023-09-18 10:35:05 -05:00
IhorNehrutsa 00930b213e esp32/mphalport: Add function/line/file info to check_esp_err exception.
Currently, check_esp_err() raises an exception without a location in the
source code, eg:

    Traceback (most recent call last):
      File "<stdin>", line 8, in <module>
    OSError: (-258, 'ESP_ERR_INVALID_ARG')

This commit allows additional error reporting (function, line and file) to
be enabled via detailed exceptions.  Change the error reporting config to

    #define MICROPY_ERROR_REPORTING (MICROPY_ERROR_REPORTING_DETAILED)

and then exception messages from IDF errors look like:

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    OSError: (-258, "0x0102 ESP_ERR_INVALID_ARG in function 'set_duty_u16'
    at line 342 in file './machine_pwm.c'")

Signed-off-by: Ihor Nehrutsa <IhorNehrutsa@gmail.com>
2023-09-18 11:26:43 +10:00
Scott Shawcroft 0547ef61f9
Update dotclock for IDF 5.0 2023-09-15 14:43:37 -07:00
Jeff Epler 2a78d16b54
add board.DISPLAY 2023-09-15 14:49:29 -05:00
Jeff Epler 68af5543af
set up display at reset (yayay!) 2023-09-15 14:46:28 -05:00
Jeff Epler cff65bbbe2
esp32 lcd ev: fix pin assignments 2023-09-15 14:10:32 -05:00
iabdalkader 5473200aab rp2/boards/ARDUINO_NANO_RP2040_CONNECT: Use standard HCI UART baudrate.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-15 16:48:20 +10:00
iabdalkader 9ea9e04ef6 rp2/mpconfigport: Disable BLE locking when MICROPY_PY_BLUETOOTH enabled.
Bluetooth code runs in the scheduler, so no locking/mutex is required.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-15 16:44:07 +10:00
iabdalkader 1976781d33 rp2/mpbthciport: Fix HCI UART config.
Fixes are:
- The baudrate argument is a keyword arg, it was passed before as a
  positional arg.
- Use the port and baudrate arguments passed from higher level code instead
  of the hard-coded port ID and baudrate, which would allow HCI drivers to
  change baudrates.
- Increase UART char timeout and RX buffer size.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-15 16:43:15 +10:00
iabdalkader 6abe3e1714 rp2/mpbthciport: Switch to static scheduler nodes.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-15 16:42:50 +10:00
iabdalkader 7087880ce9 esp32/machine_pin: Fix null pointer access in machine_pin_find.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-15 13:44:50 +10:00
Wind-stormger 970e61c8b4 Update bpi_leaf_s3 2023-09-15 02:20:46 +00:00
Scott Shawcroft 4087960dfd
Fix MDNS. C3 works 2023-09-14 15:04:07 -07:00
Scott Shawcroft 952118f6c3
Update new boards. Reduce memory use in S2 2023-09-14 11:19:38 -07:00
Jeff Epler b61900f881
fixup! matrixportal_m4: Add board.MTX_ADDRESS and board.MTX_COMMON 2023-09-14 10:38:01 -05:00
Jeff Epler 9710ef0200
matrixportal_m4: Add board.MTX_ADDRESS and board.MTX_COMMON
This eases using the RGBMatrix constructor and matches the Matrixportal
S3.
2023-09-14 10:27:03 -05:00
iabdalkader 7802eed14b renesas-ra/boards/ARDUINO_PORTENTA_C33: Add support for Portenta C33.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-15 00:10:47 +10:00
iabdalkader abd9bed667 renesas-ra/fsp_cfg: Add common FSP config files.
Add DAC, SCE and USB FSP config files.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-14 23:51:30 +10:00
iabdalkader 31ff3ff3aa renesas-ra: Add mbedTLS support.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-14 23:51:20 +10:00
iabdalkader 62e650f2c2 renesas-ra: Add networking support using lwIP.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-14 23:51:18 +10:00
iabdalkader 142e8b70e2 renesas-ra: Add RNG driver.
It needs to be enabled explicitly by a board.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-14 23:50:47 +10:00
iabdalkader 5b774517dc renesas-ra: Add Bluetooth support using NimBLE.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-14 23:50:47 +10:00
iabdalkader d89a0606e0 renesas-ra: Add TinyUSB support.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-14 23:50:45 +10:00
iabdalkader 816b88ad07 mimxrt/Makefile: Update to work with latest TinyUSB.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-14 23:35:54 +10:00
iabdalkader 09a2ee8e7f renesas-ra/Makefile: Generate binary firmware output.
This patch generates a binary firmware image (*.bin) and removes the split
TEXT1/0_ADDR/SECTIONS because it's not configured for this port so it
generates broken binaries.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-14 23:34:18 +10:00
Scott Shawcroft a3d37122a7
Fix PSRAM address 2023-09-13 11:40:09 -07:00
Scott Shawcroft f357f4a3af
Size optimize 3 more boards 2023-09-13 11:40:09 -07:00
Scott Shawcroft 99726e255d
Switch to newlib nano 2023-09-13 11:40:09 -07:00
Scott Shawcroft 18fd0045f6
More kconfig updates 2023-09-13 11:40:09 -07:00
Scott Shawcroft 0a9ae1f6ba
Code size optimizations 2023-09-13 11:40:09 -07:00
Scott Shawcroft cb6b4d0d4a
Fix esp-camera. 32 was dropped so the path doesn't have esp32 in it. 2023-09-13 11:40:09 -07:00
Scott Shawcroft 5937f4c0c0
Hopefully finish updating kconfig 2023-09-13 11:40:09 -07:00
Scott Shawcroft 2a45d95f9d
Use correct flash defaults 2023-09-13 11:40:09 -07:00
Scott Shawcroft 4b29862d30
Clean up more s2 sdkconfig 2023-09-13 11:40:08 -07:00
Scott Shawcroft 1ab083fab7
Support target specific kconfig source 2023-09-13 11:39:51 -07:00
Scott Shawcroft 73e04e84a2
Split out flash and psram settings from sdkconfig 2023-09-13 11:39:10 -07:00
Scott Shawcroft 6043874969
Split out ram dependent configs 2023-09-13 11:36:33 -07:00
Scott Shawcroft feabf7b6ce
Use kconfiglib in sdkconfig update script 2023-09-13 11:36:33 -07:00
Scott Shawcroft e90c07ed87
More esp fixing 2023-09-13 11:36:31 -07:00
MicroDev 7a7f1e6efa
fix arch switch statement in ulp
Co-authored-by: Casey Webb <caseywebb@protonmail.com>
2023-09-13 11:35:14 -07:00
MicroDev ba22633fb0
temporarily disable `rgbmatrix` on `espressif` 2023-09-13 11:35:14 -07:00
MicroDev 3d2cfa162a
enable `paralleldisplay` on `esp32` and `esp32s3` 2023-09-13 11:35:14 -07:00
MicroDev 8feb3bad29
refactor board config files 2023-09-13 11:35:14 -07:00
MicroDev c38972b51c
update ulp implementation 2023-09-13 11:35:14 -07:00
MicroDev 242a720593
fix psram crash 2023-09-13 11:35:14 -07:00
MicroDev 7b9c87e432
update espressif ble sdkconfig 2023-09-13 11:35:14 -07:00
MicroDev 931ed7c6e5
conditionally include `esp_psram` and fix sdkconfig 2023-09-13 11:35:11 -07:00
MicroDev a18e015888
update idf to v5.0 2023-09-13 11:33:51 -07:00
Dan Halbert f13edcc583
Merge pull request #8396 from tirtharajsinha/8.2.x
fixing the wrong rx,tx gpio related issue in 8.2.x for board waveshare-esp32-s3-pico
2023-09-13 12:05:32 -04:00
Tirtharaj Sinha 5191071d5d fixing the wrong rx,tx gpio related issue. 2023-09-13 20:44:40 +05:30
Damien George dc99840b3a stm32/uart: Add support for UART10 when it's a USART.
Signed-off-by: Damien George <damien@micropython.org>
2023-09-13 16:48:15 +10:00
Damien George a4d28e5279 stm32/timer: Fix use of TIM8 on H5 MCU's.
Signed-off-by: Damien George <damien@micropython.org>
2023-09-13 16:48:15 +10:00
Damien George 67b1c81f69 stm32/powerctrlboot: Allow using PLL3 for USB clock on H5 MCU's.
A board should enable MICROPY_HW_CLK_USE_PLL3_FOR_USB to use this feature.

Signed-off-by: Damien George <damien@micropython.org>
2023-09-13 16:48:15 +10:00
Damien George 60e0ef6ef6 stm32/octospi: Add support for dual-line SPI interface.
And fix the case of 32-bit addresses in single-line mode.

Signed-off-by: Damien George <damien@micropython.org>
2023-09-13 16:48:15 +10:00
Damien George ee5e594472 stm32/dma: Add support for SPI1 DMA on H5 MCU's.
Signed-off-by: Damien George <damien@micropython.org>
2023-09-13 16:14:23 +10:00
Dan Halbert 9f1d52601e merge from 8.2.x 2023-09-12 20:14:30 -04:00
Bill Sideris 9acc542957
Deinit all the pins. 2023-09-12 23:25:01 +03:00
Dan Halbert 843fca1874
Merge pull request #8388 from bill88t/espcam-deinit
[ESPCAMERA] Deinit all the pins.
2023-09-12 12:53:08 -04:00
Dan Halbert 46bcd103a7 Revert "Reset UART on deinit, reduces power consumption" (from #8089)
This reverts commit ec1e7a03b3.
2023-09-12 11:24:49 -04:00
Dan Halbert 05267948b4 Revert "formatting" (from #8089)
This reverts commit 4bb475b930.
2023-09-12 11:24:02 -04:00
Andrew Leech ff70bd1197 stm32/timer: Fix deadtime config on Advanced Timer peripherals.
Newer MCU series have additional fields in the struct which need to be
initialised to zero, eg Break2AFMode on WB55.

This work was funded by Planet Innovation.

Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au>
2023-09-12 17:12:16 +10:00
Scott Shawcroft 4563c35908
Merge pull request #8385 from n3o59hf/add_m5stack_atoms3u
Add M5Stack AtomS3U
2023-09-11 13:46:03 -07:00
Bill Sideris 6e9c21baba
Deinit all the pins. 2023-09-11 23:35:54 +03:00
Jeff Epler 5a96696025
This board got a KICKIN marketing name 2023-09-11 13:46:08 -05:00
Elviss Kustans 92eaf6236f Add M5Stack AtomS3U 2023-09-09 01:38:08 +00:00
Scott Shawcroft 885dbec599
Merge pull request #8357 from eightycc/memorymap
Add memorymap support to RP2 port
2023-09-08 11:28:11 -07:00
Scott Shawcroft 0928a95bb2
Merge pull request #8351 from jepler/dotclockframebuffer
Dotclockframebuffer
2023-09-07 13:21:29 -07:00
Jeff Epler 0196401d08
reduce reserved psram 2023-09-07 13:01:16 -05:00
Jeff Epler eb060184c2
Add hack tablet 2023-09-07 12:59:42 -05:00
Bob Abeles 79edcbe97d second instance of misspelled 'unaligned' 2023-09-07 09:25:02 -07:00
Dan Halbert 4dd45b6dc6
Merge pull request #8374 from dhalbert/new-certificates-submodule
Update TLS certificates and use new certificates submodule
2023-09-07 10:19:05 -04:00
Dan Halbert aaa23df649
Merge pull request #8372 from tirtharajsinha/8.2.x
8.2.x backport waveshare-esp32-s3-pico
2023-09-07 08:50:59 -04:00
Dan Halbert bc44571384
Merge pull request #8375 from UnexpectedCircuitPython/fs3_changes
Added UM FeatherS3 second I2C STEMMAQT
2023-09-06 23:13:46 -04:00
Bob Abeles 1e178318cf review update, add RP2040 example 2023-09-06 19:59:40 -07:00
Seon Rozenblum e71c39736e Added UM FeatherS3 second I2C STEMMAQT 2023-09-07 12:13:37 +10:00
Dan Halbert 58a21326b2 Update to new certificates submodule. 2023-09-06 19:36:48 -04:00
Scott Shawcroft d7edec67ce 8.2.x backport Added Arduino Nano ESP32-S3 2023-09-06 11:43:07 -07:00
Tirtharaj Sinha 896be9edb3 added precommit 2023-09-06 23:12:47 +05:30
Tirtharaj Sinha 1eb8822feb added SCL and SDA 2023-09-06 22:47:34 +05:30
Tirtharaj Sinha 0c0b927843 added waveshare_esp32_s3_pico for circuitpython version 8.2.x 2023-09-06 21:48:41 +05:30
Jeff Epler 6153d23ed8
Fix build with no psram
these are conditionally-defined identifiers so have to use if defined.
2023-09-05 21:30:35 -05:00
Scott Shawcroft b100041bf7
Merge pull request #8190 from makermelissa/arduino-nano-esp32s3
Added Arduino Nano ESP32-S3
2023-09-05 14:31:08 -07:00
Scott Shawcroft 442f84d0e6
Merge pull request #8345 from tannewt/s3_watchdog
Forbidden pins are now correctly "in use" on ESP
2023-09-05 13:25:42 -07:00
Jeff Epler 5e26862b2c
Allow use of CONFIG_SPIRAM_USE_CAPS_ALLOC
.. and switch makerfabs tft7 over to it as a test.

We have our existing way of "reserving" PSRAM for esp-idf (we actually
control it all but add back the "reserved" part). However, this does
not work with off the shelf esp_lcd, which only will allocate a
framebuffer in PSRAM if CONFIG_SPIRAM_USE_CAPS_ALLOC (or CONFIG_SPIRAM_USE_ALLOC)
is defined, not if CONFIG_SPIRAM_USE_MEMMAP is.

This new way is possibly compatible with more esp-idf code, but it complicates
CircuitPython's initial startup since nothing until port_heap_init is
permitted to use the CP heap or supervisor allocator. In practice this
seems to be OK today.

Right now this doesn't change the setting across all boards with PSRAM and so
it does not revert esp-idf to its prior state. Instead, what I'm thinking is
that we can do it during or just after the IDF5 update when sdkconfig files
will be getting an overhaul anyway.
2023-09-05 12:43:22 -05:00
Jeff Epler b7d1147f67
Bump the stack size of the uart task
With DEBUG build and a consle UART, this would occur early during startup on makerfabs tft7:
```
I (0) cpu_start: Starting scheduler on APP CPU.
I (10) uart: queue free spaces: 20

***ERROR*** A stack overflow in task uart_event_task has been detected.


Backtrace: 0x403786f2:0x3fce9f40 0x403820a9:0x3fce9f60 0x403850da:0x3fce9f80 0x40383a7d:0x3fcea000 0x40382158:0x3fcea030 0x4038214e:0xa5a5a5a5 |<-CORRUPTED
```

Decoded backtrace was not enlightening:
```
0x403786f2: panic_abort at /home/jepler/src/circuitpython/ports/espressif/build-makerfabs_tft7/esp-idf/../../esp-idf/components/esp_system/panic.c:408
0x403820a9: esp_system_abort at /home/jepler/src/circuitpython/ports/espressif/build-makerfabs_tft7/esp-idf/../../esp-idf/components/esp_system/esp_system.c:137
0x403850da: vApplicationStackOverflowHook at /home/jepler/src/circuitpython/ports/espressif/build-makerfabs_tft7/esp-idf/../../esp-idf/components/freertos/port/xtensa/port.c:407
0x40383a7d: vTaskSwitchContext at /home/jepler/src/circuitpython/ports/espressif/build-makerfabs_tft7/esp-idf/../../esp-idf/components/freertos/tasks.c:3505
0x40382158: _frxt_dispatch at /home/jepler/src/circuitpython/ports/espressif/build-makerfabs_tft7/esp-idf/../../esp-idf/components/freertos/port/xtensa/portasm.S:436
0x4038214e: _frxt_int_exit at /home/jepler/src/circuitpython/ports/espressif/build-makerfabs_tft7/esp-idf/../../esp-idf/components/freertos/port/xtensa/portasm.S:231
0x00000000: ?? ??:0
```

Adding an additional 512 bytes of stack allowed CircuitPython to start
successfully.
2023-09-05 12:07:09 -05:00
Jeff Epler 6784e0e720
Ensure debug is defined earlier 2023-09-05 12:06:57 -05:00
Glenn Moloney 0bafdaf5f0 esp32: Skip validation of image on boot from deepsleep.
sdkconfig.base: Add CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP=y.
This reduces time to boot from deepsleep by at least 200ms and can
provide significant power savings for deepsleep-based battery
applications.

docs/library/esp32.rst: Add note cautioning not to enter deepsleep after
changing the boot partition, without first performing a hard reset.

Signed-off-by: Glenn Moloney <glenn.moloney@gmail.com>
2023-09-05 22:36:06 +10:00
Damien George 671b38f944 mimxrt/sdio: Move config guard so headers are only included if used.
Otherwise it's a build error on certain MCU series.

Signed-off-by: Damien George <damien@micropython.org>
2023-09-05 11:03:08 +10:00
robert-hh 297892c4f4 mimxrt/machine_uart: Add a helper function to change the baudrate.
And use it in the Bluetooth bindings instead of setting the baudrate by a
call to the NXP lib.

Also fixes machine_uart.c to work with a baud rate of 921600.

Signed-off-by: robert-hh <robert@hammelrath.com>
2023-09-05 10:54:49 +10:00
Seon Rozenblum 8bd2494c95 esp32/boards/UM_FEATHERS3: Fix I2C pins in pins.csv.
Signed-off-by: Seon Rozenblum <seon@unexpectedmaker.com>
2023-09-04 23:32:09 +10:00
Sebastian Romero bf35eefc62 esp32/boards/ARDUINO_NANO_ESP32: Clarify recovery instructions.
Signed-off-by: Sebastian Romero <s.romero@arduino.cc>
2023-09-04 10:55:31 +10:00
David Yang 545b94a8f5 unix/modjni: Fix build errors with type definitions and error strings.
- Superfluous comments in MP_DEFINE_CONST_OBJ_TYPE stop correct macro
  expanding.
- MP_ERROR_TEXT now gives mp_rom_error_text_t, but we want plain const
  char *.

Signed-off-by: David Yang <mmyangfl@gmail.com>
2023-09-04 10:22:19 +10:00
David Lechner ffb43b2dd3 py/modthread: Return thread id from start_new_thread().
In CPython, `_thread.start_new_thread()` returns an ID that is the same ID
that is returned by `_thread.get_ident()`.  The current MicroPython
implementation of `_thread.start_new_thread()` always returns `None`.

This modifies the required functions to return a value. The native thread
id is returned since this can be used for interop with other functions, for
example, `pthread_kill()` on *nix. `_thread.get_ident()` is also modified
to return the native thread id so that the values match and avoids the need
for a separate `native_id` attribute.

Fixes issue #12153.

Signed-off-by: David Lechner <david@pybricks.com>
2023-09-03 18:49:18 +10:00
Daniël van de Giessen c0d4c604e6 esp32/network_ppp: Block after deleting task.
When calling ppp.active(False) we could get a crash due to immediately
returning after asking FreeRTOS to delete the current task.

This commit adds a simple blocking loop, the same as used in all other
places where we call vTaskDelete(NULL).

Signed-off-by: Daniël van de Giessen <daniel@dvdgiessen.nl>
2023-09-02 18:01:03 +10:00
Seon Rozenblum 6bd1404225 esp32/boards/UM_NANOS3: Add new UM NanoS3 board.
Signed-off-by: Seon Rozenblum <seon@unexpectedmaker.com>
2023-09-02 17:55:24 +10:00
Seon Rozenblum 6ec2e8f643 esp32/boards: Add pins.csv to UM boards and other minor changes.
Signed-off-by: Seon Rozenblum <seon@unexpectedmaker.com>
2023-09-02 17:51:26 +10:00
robert-hh 9f1576f2ad rp2/machine_timer: Fix printing of timer period.
Showing the period alway as microsecond quantities, since tick_hz is
assumed as 1_000_000 if the period is given by freq=xxx.  If the period is
larger than 0xffffffff, the value is divided by 1000 and "000" is appended
in the display.  That works for periods up to about 50 days.

Signed-off-by: robert-hh <robert@hammelrath.com>
2023-09-02 17:09:51 +10:00
Melissa LeBlanc-Williams 7fe6cf5ed6 Set D13 to input with Pulldown 2023-09-01 15:03:08 -07:00
Melissa LeBlanc-Williams 8d6f9d06df merge branch main 2023-09-01 14:42:53 -07:00
Bob Abeles 1648a3db1e Fix IO register stores of multiple words 2023-09-01 11:23:30 -07:00
Jeff Epler 84aadf3a64
Update TFT experiment for rev b 2023-09-01 12:58:00 -05:00
Bob Abeles ab59e36613 Correct problems found by CI 2023-09-01 08:34:53 -07:00
Jim Mussared f52a2cd55a samd/modules/_boot.py: Add /lib to sys.path.
Needed for mip to find a default location to install to.

Like esp32, samd uses "/" as the mount point for the flash. Make _boot.py
add the entry after successfully mounting.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-09-02 00:09:26 +10:00
Daniël van de Giessen 3cc3e4e032
esp32/machine_uart: Release GIL for blocking reads.
If we're reading from an UART with a non-zero timeout, we can release the
GIL so that other threads/tasks may run while we are sleeping waiting for
data to arrive.

Signed-off-by: Daniël van de Giessen <daniel@dvdgiessen.nl>
2023-09-01 14:23:54 +02:00
Daniël van de Giessen f8bd6778c8 esp32: Support JTAG console, free up UART.
CONFIG_USB_OTG_SUPPORTED is automatically set by the ESP-IDF when the chip
supports USB-OTG, which is the case for the ESP32-S2 and ESP32-S3.

When trying to use the JTAG console with these chips, it would not work
because our USB implementation will take over control over the USB port,
breaking the JTAG console in the process.

Thus, when the board is configured to use the JTAG console, we should not
enable our USB console support.

Additionally, this change also frees up UART0 when an USB-based console is
configured, since there's no reason to prevent (re)configuration of UART0
for other uses in that case.

Signed-off-by: Daniël van de Giessen <daniel@dvdgiessen.nl>
2023-09-01 21:01:26 +10:00
Daniël van de Giessen ba8aad3d1d esp32/modnetwork: Add support for SO_BINDTODEVICE socket option.
This implements support for SO_BINDTODEVICE, which allows telling a socket
to use a specific interface instead of lwIP automatically selecting one.
This allows devices that have multiple connections (for example cellular
over PPP in addition to WLAN) to explicitly choose which data is send over
which connection, which may have different reliability and or (mobile data)
costs associated with using them.

The used lwIP network stack already has support for this, so all that was
needed was to expose this functionality in MicroPython.  This commit
exposes a new constant SO_BINDTODEVICE which can be set as an socket
option.  As a value it expects the name of the interface to bind to.  These
names can be retrieved using `.config('ifname')` implemented on each
interface type (including adding in this commit a `.config()` method to
PPP, which it didn't have before), which returns a string with the
interface name:

    >>> import machine
    >>> import network
    >>> network.WLAN(network.AP_IF).config('ifname')
    'lo0'
    >>> wlan = network.WLAN(network.AP_IF)
    >>> wlan.active(True) and wlan.config('ifname')
    'ap1'
    >>> wlan = network.WLAN(network.STA_IF)
    >>> wlan.active(True) and wlan.config('ifname')
    'st1'
    >>> ppp = network.PPP(machine.UART(0))
    >>> ppp.active(True) and ppp.config('ifname')
    'pp1'
    >>> ppp = network.PPP(machine.UART(0))
    >>> ppp.active(True) and ppp.config('ifname')
    'pp2'
    >>> ppp = network.PPP(machine.UART(0))
    >>> ppp.active(True) and ppp.config('ifname')
    'pp3'

Note that lo0 seems to be returned by lwIP if the interface is not yet
active.  The method can also return None in the case of PPP where the
entire lwIP interface doesn't yet exist before being activated.  Currently
no effort is made to unify those cases; it is expected that whatever we
receive from lwIP is valid.

When the socket option is set, this forces using a specific device:

    import socket
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_BINDTODEVICE, 'st1')

setsockopt will throw (OSError: [Errno 19] ENODEV) if the specified
interface does not exist.

Tested with LAN, WLAN, and PPP; can specify which interface should be used
and when testing with, for example, HTTP requests to ifconfig.co the
returned IP address confirms a specific interface was used.

Signed-off-by: Daniël van de Giessen <daniel@dvdgiessen.nl>
2023-09-01 19:21:20 +10:00
Damien George 56e5a21312 esp32/modsocket: Add support for SO_BROADCAST socket option.
Signed-off-by: Damien George <damien@micropython.org>
2023-09-01 18:35:09 +10:00
Yuuki NAGAO 141750ff79 stm32/uart: Fix UART timeout issue with low baudrate on G4 MCUs.
With using UART FIFO, the timeout should be long enough that FIFO becomes
empty.  Since previous data transfer may be ongoing, the timeout must be
timeout_char multiplied by FIFO size + 1.

Signed-off-by: Yuuki NAGAO <wf.yn386@gmail.com>
2023-09-01 13:52:00 +10:00
Bob Abeles 66b3eccaf6 8334: RP2040 lacks raw memory map access 2023-08-31 20:25:20 -07:00
Oliver Joos a175f98a65 stm32/mboot: Fix fwupdate by replacing zlib with new deflate module.
Since commit 3533924c36 the zlib module has
been replaced by the new deflate module.  This commit updates the script
fwupdate.py to use the new deflate module.

Signed-off-by: Oliver Joos <oliver.joos@hispeed.ch>
2023-09-01 12:39:06 +10:00
Jeff Epler 5f12e0f9b8
Revert mistaken change 2023-08-31 14:53:31 -05:00
Jeff Epler 554f529fdf
Per review notes, make esp_lcd and esp32-camera unconditional 2023-08-31 14:52:54 -05:00
Jeff Epler 80a1d1a20a
Add support for a non-displayed left portion of screen 2023-08-31 14:52:26 -05:00
Melissa LeBlanc-Williams 06ccd41294
Remove frozen libs from Funhouse 2023-08-31 13:15:51 -05:00
robert-hh 81c19d93bc mimxrt/machine_uart: Support slow baud rates for UART.
Down to 50 baud (in reverence to Jean-Maurice-Émile Baudot).  Implemented
for the MIMXRT10xx MCU's only.  The MIMXRT1176 runs down to 300 baud.

Signed-off-by: robert-hh <robert@hammelrath.com>
2023-09-01 00:41:23 +10:00
robert-hh c86b9ec8bd mimxrt/boards: Fix use of MICROPY_HW_SDRAM_AVAIL in MIMXRT1176.ld.
MICROPY_HW_SDRAM_AVAIL is always defined.

Thanks to Ibrahim Abdakader for noticing.

Signed-off-by: robert-hh <robert@hammelrath.com>
2023-09-01 00:40:44 +10:00
robert-hh ce38784fa8 mimxrt/machine_uart: Fix and complete UART.deinit and uart_deinit_all.
The code did not check at deinit whether a UART was initialized.  That did
not matter for all MCU's except MIMXRT1176, which crashes at the second
soft reset in a row.

But since it is a general problem to use UART methods of a UART which has
been deinitialized, checks were added to all applicable methods for a clear
response instead of e.g. a crash.

Deinitialize UART using software reset.  It resets the UART but keeps it
accessible for software, avoiding an exception when UART registers are
accessed after a DeInit.

Signed-off-by: robert-hh <robert@hammelrath.com>
2023-09-01 00:27:13 +10:00
iabdalkader 3f5976e14a mimxrt/irq: Move all IRQ related definitions to dedicated header.
Following other ports, IRQ priorities and related functions are moved to
their own header, to simplify mpconfigport.h.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-01 00:02:19 +10:00
iabdalkader a453b4f31d drivers/cyw43: Make the CYW43 Bluetooth HCI driver more portable.
This commit allows other ports to reuse the CYW43 HCI driver, by replacing
all Bluetooth UART and control named pins with defines in config files and
using `mpbthci` abstract functions (i.e. `mp_bluetooth_hci_*`) instead of
the STM32 specific UART functions.

Note: the function `cywbt_wait_cts_low` does not need to switch the CTS
pin from alternate function to GPIO to read it.  At least on stm32, mimxrt
it's possible to just read the pin input.  For example, see the STM32F7
RM0410 section 6.3.11, and the `SION` for IMXRT.  So this function can
also be available for other ports if the pin mode switching is removed.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-09-01 00:02:00 +10:00
iabdalkader fc495240a6 mimxrt: Integrate Bluetooth support with NimBLE bindings.
This commit adds the necessary functions to get NimBLE working with the
mimxrt port.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-08-31 23:42:10 +10:00
iabdalkader 772a36098f mimxrt: Integrate support for WiFi via the CYW43 driver.
This commit adds the necessary configuration and hooks to get the CYW43
driver working with the mimxrt port.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-08-31 23:40:49 +10:00
iabdalkader 46d83d9748 mimxrt/sdio: Add SDIO driver.
This is a basic SDIO driver for the mimxrt port, that was added mainly to
support the CYW43 WiFi driver, and as such it only supports the commands
required by the CYW43 driver (but more commands can be added easily). The
driver performs non-blocking DMA transfers, and can detect and recover from
errors.

Note: because the mimxrt port is missing static alternate functions, named
pins and other pin related functions, currently the alternate functions for
USDHC 1 and 2 are hard-coded in the driver.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-08-31 23:39:34 +10:00
iabdalkader 6b407d5600 mimxrt/machine_pin: Extend pin configuration functions.
Add portable pin config macros to mphalport.h.  And add a function to
configure pins with more pin options such as alt function, pull, speed,
drive, interrupt mode, etc.

Note: this new `machine_pin_config()` function can replace
`machine_pin_set_mode()`, but the latter is left as-is to avoid breaking
anything.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2023-08-31 23:36:20 +10:00
Tirtharaj Sinha da3dfd7b5a added new board - esp32 s3 pico 2023-08-31 04:15:25 +05:30
Jeff Epler 1ef4e3c738
Add Adafruit TFT Experiment (rev A)
There will be a revision but get the basics in for now.

This successfully displays on a TL040HDS20-B1502A screen with:
```
import board
from framebufferio import FramebufferDisplay
from dotclockframebuffer import DotClockFramebuffer
from displayio import release_displays

tft_pins = board.TFT
tft_timings = {
    "frequency": 6_500_000,
    "width": 720,
    "height": 720,
    "hsync_pulse_width": 20,
    "hsync_front_porch": 40,
    "hsync_back_porch": 40,
    "vsync_pulse_width": 10,
    "vsync_front_porch": 40,
    "vsync_back_porch": 40,
    "hsync_idle_low": False,
    "vsync_idle_low": False,
    "de_idle_high": False,
    "pclk_active_high": False,
    "pclk_idle_high": False,
}

release_displays()
fb = DotClockFramebuffer(**tft_pins, **tft_timings)
disp = FramebufferDisplay(fb)
```
2023-08-30 15:05:07 -05:00
Jeff Epler 7dbf9a9b56
fix vprintf_adapter build error 2023-08-30 11:34:01 -05:00
Jeff Epler 9dcc0b5056
fix those pesky pid/vid duplicates 2023-08-30 10:58:52 -05:00
Jeff Epler fb15c7ca51
Fix timings table & remove redundant comment 2023-08-30 10:50:16 -05:00
Jeff Epler 9e0993af5b
Add espressif esp32s3 lcd devkit
This is not working/tested. The display requires an initialization sequence,
and its SPI bus is on the other side of an I2C GPIO expander making things
more difficult.
2023-08-30 10:31:47 -05:00
Jeff Epler 494aee62b3
Add makerfabs 7" 800x480 TFT
this is working, though it has to be down-clocked to 6.5MHz to prevent
display glitching
2023-08-30 10:30:54 -05:00
Jeff Epler ed9cacf41d
Add DotClockFramebuffer 2023-08-30 10:30:15 -05:00
Jim Mussared f3eccb154c py/mpconfig: Enable SSL finalizers if finalizers are enabled.
The rp2 port was enabling SSL and had finalizers enabled via the "extra
features" level, but missed explicitly enabling `MICROPY_PY_SSL_FINALISER`
(like esp32, stm32, and mimxrt did).

This commit makes `MICROPY_PY_SSL_FINALISER` default to enabled if
finalizers are enabled, and removes the explicit setting of this for
esp32, stm32, mimxrt (because they all use the "extra features" level).

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-08-30 12:38:13 +10:00
Jim Mussared b2b5bcce28 py/profile: Remove the requirement to disable MICROPY_COMP_CONST.
The only reason that const had to be disabled was to make the test output
match CPython when const was involved.  Instead, this commit fixes the test
to handle the lines where const is used.

Also:
- remove the special handling for MICROPY_PERSISTENT_CODE_SAVE in
  unix/mpconfigport.h, and make this automatic.
- move the check for MICROPY_PERSISTENT_CODE_SAVE to where it's used (like
  we do for other similar checks) and add a comment explaining it.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-08-30 10:58:04 +10:00
Scott Shawcroft 337b800ceb
Merge pull request #7151 from fonix232/feature/waveshare_rp2040_plus_support
feat: Add support for Waveshare RP2040-Plus
2023-08-29 13:00:37 -07:00
Scott Shawcroft 66bd679a64
Merge pull request #8323 from RetiredWizard/dvbaseW
Pimoroni PICO DV Base w/Pico W (network disabled)
2023-08-29 12:59:11 -07:00
Scott Shawcroft 9daccc08c5
Forbidden pins are now correctly "in use" on ESP
This removes duplicate code to make debug UART pins in use via
never reset. It is done through forbidden pins automatically now.

Fixes #8288
2023-08-28 15:55:14 -07:00
Scott Shawcroft 3605d891de
Merge pull request #8338 from pypewpew/async-samd21
Allow enabling async on samd21
2023-08-28 12:56:38 -07:00
Scott Shawcroft b20e211d29
Merge pull request #8293 from fonix232/port/esp32/m5paper
Add support for M5Stack M5Paper
2023-08-28 12:53:37 -07:00
Scott Shawcroft 2eb62f8238
Merge pull request #8305 from cleverca22/move-stack
raise kernel load addr and slip stack under kernel on both 32bit and 64bit
2023-08-28 12:52:38 -07:00
Jeremy Littler 9bdb576351
Add files via upload 2023-08-28 10:10:04 -04:00
Jeremy Littler c1144e66a8
Add files via upload 2023-08-28 10:09:06 -04:00
Jeff Epler b0967cb1a4
Use QSTR_GLOBAL_REQUIREMENTS to give explicit dependency for qstr generation
I investigated and found that this seems to be the best way to specify
a file that must be generated before "qstr processing" can occur.

Closes #8337
2023-08-27 16:16:40 -05:00
Radomir Dopieralski 34cb5f6dc0
Merge branch 'main' into async-samd21 2023-08-27 19:33:27 +02:00
Radomir Dopieralski 55fbbdcb52 Allow enabling async on samd21
It was just disabled, possibly because of size considerations, but it's
useful to be able to enable it explicitly for selected boards.

This requires some of the settings to use ?= instead of =, and fixing
a bug in the traceback module, where the chain variable is unused if
exception chaining is not enabled.
2023-08-27 19:28:44 +02:00
RetiredWizard 9eb61ef667 Enable WiFi, leave DV enable to usercode 2023-08-26 11:00:37 -04:00
Scott Shawcroft c395e1f9f7
Merge pull request #8332 from pypewpew/ugame22
Add new board uGame22
2023-08-25 13:22:16 -07:00
Michael Bishop 8d25faf30a raise kernel load addr and slip stack under kernel on both 32bit and 64bit 2023-08-25 15:56:40 -03:00
Radomir Dopieralski b9b04fcefa Add new board uGame22
Information about the board:
https://hackaday.io/project/186921-game-22

Hardware design repository:
https://github.com/python-ugame/ugame-22
2023-08-25 19:26:30 +02:00
Scott Shawcroft 233cf7fc6d
Merge pull request #8326 from bill88t/picow-stop-ap
Pico W wifi code improvements.
2023-08-25 09:49:04 -07:00
Scott Shawcroft ab70f8eace
Merge remote-tracking branch 'adafruit/main' into i2s_mclk 2023-08-24 15:07:14 -07:00
Damien George 1dedb65e64 esp8266/boards/ESP8266_GENERIC: Add image filename.
This image is now in micropython-media.

Signed-off-by: Damien George <damien@micropython.org>
2023-08-24 17:15:32 +10:00
Jim Mussared bc1af5ab7f cc3200/Makefile: Build firmware.zip.
This allows the cc3200 port to be build with the standard autobuild script
rather than the custom build-cc3200-latest.sh (which is now removed).

This also fixes the path inside the zip file (by using the `-j` flag to
zip).

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-08-24 15:44:20 +10:00
Bill Sideris 2cc05f7ac8
Picow-ap wifi improvements 2023-08-23 20:04:51 +03:00
Jim Mussared 326dfd2a85 esp32/boards/ESP32_GENERIC_C3: Enable UART REPL.
This should have been added in 4815af75bc
when the variants were combined. The original non-USB variant got this
implicitly, and therefore was not in mpconfigvariant.h

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-08-23 15:49:37 +10:00
Jim Mussared 873bd00ad4 rp2: Rename PICO, PICO_W to RPI_PICO, RPI_PICO_W.
PICO might not always be a unique name across all ports, and the
convention generally for other boards is to do VENDOR_BOARD.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-08-23 15:49:37 +10:00
Jim Mussared ef03ca8bf2 esp8266: Add board variant support.
This merges the existing GENERIC, GENERIC_1M, and GENERIC_512k boards
into variants of the new ESP8266_GENERIC board (renamed from GENERIC so
as not to clash with other ports).

Also moves the generation of the "OTA" variant (previously generated by
autobuild/build-esp8266-latest.sh) into the variant.

Following the convention established for the WEACTSTUDIO rp2 board, the
names of the variants are FLASH_1M and FLASH_512K (but rename the .ld files
to use MiB and kiB).

Updates autobuild to build esp8266 firmware the same way as other ports.
This requires renaming the output from firmware-combined.bin to just
firmware.bin.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-08-23 15:49:37 +10:00
Jim Mussared aa23698119 esp32: Rename GENERIC* boards to ESP32_GENERIC*.
Board names need to be unique across ports, and GENERIC clashes with
the ESP8266 (which will be renamed to ESP8266_GENERIC).

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-08-23 13:54:37 +10:00
Jim Mussared 97ffc53ec9 {esp32,rp2,stm32}/Makefile: Append board variant to BUILD.
This allows switching between variants without clobbering the build
output.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-08-23 13:54:37 +10:00