Commit graph

1042 commits

Author SHA1 Message Date
dc77f3146f serial_bytes_available: don't double-count bytes on usb cdc
In 9.0.x, serial_bytes_available returned a bool and tud_cdc_available was
harmlessly checked twice for any characters.

When the routine was changed to return an int, the double checking led to
over-reporting the number of characters available. In code that would attempt
to read this many bytes from sys.stdin, this made the read call block since
only 1 byte was actually available.

This behavior came up in the discussion of #9393. I don't mark this bug as
closing that one, because that issue seems to be reporting multiple things that
this change would not address, such as delays in `sys.stdout.write()` or
problems seen while using webserial.
2024-07-03 11:36:30 -05:00
Dan Halbert
21d2c865f1 Fix BLE adv timeout; ESP: don't sched handler on adv finish 2024-07-02 12:13:20 -04:00
Dan Halbert
f66313c93b
Merge pull request #9344 from tannewt/disable_ble_completely
Only start BLE for workflow when desired
2024-06-18 17:01:10 -04:00
Scott Shawcroft
b658ce988b
Only start BLE for workflow when desired
The previous implementation would always start BLE and rely on
advertising logic to make the workflow not available when on USB.

This change removes the "always enable" call in favor of a default
value that is on if 1) we determine we should be discoverable or 2)
we're already bonded over BLE.
2024-06-17 15:40:28 -07:00
Scott Shawcroft
ed2f32fadb
Enable deep sleep on all ESP chips
Features of each chip is documented in this spreadsheet:
https://docs.google.com/spreadsheets/d/1NyKzHOWeWMb8UttDDugeeOANZ4m-idMHM6kiTlUUVIg/edit?usp=sharing

Fixes #9056
2024-06-13 10:26:33 -07:00
Scott Shawcroft
4c85b5f02e
Fix other BLE builds 2024-06-12 11:22:00 -07:00
Scott Shawcroft
63aeb11d7e
Improve ESP BLE and turn on BLE workflow
The BLE workflow will broadcast publicly when the web workflow
isn't activated.
2024-06-11 16:21:40 -07:00
Dan Halbert
e4f6656df6 Further fix to use absolute paths in remote workflows 2024-06-06 16:56:24 -04:00
Dan Halbert
6ec5d3fabe web_workflow.c: use absolute path 2024-06-05 23:29:47 -04:00
Dan Halbert
3f4d9310ff CircuitPython files: replace STATIC with static 2024-05-20 11:02:17 -04:00
Dan Halbert
950b5d09d2 guard2once -s ... 2024-05-19 20:40:44 -04:00
Dan Halbert
dbef48d5e2 add #pragma once to all CircuitPython header files without any include guards 2024-05-19 20:38:07 -04:00
Dan Halbert
747b7619ea update headers of most CircuitPython-only files 2024-05-17 14:56:28 -04:00
Dan Halbert
daa11cb1c2 updates before header conversion 2024-05-17 14:56:28 -04:00
Scott Shawcroft
9ab8831d38
Merge pull request #9218 from jepler/mp3-esp
Enable mp3 output on esp32s3
2024-05-02 14:30:07 -07:00
08a440d19b espressif: Don't hold interrupts disabled a long time
.. just to prevent background tasks from running
2024-05-01 10:07:13 -05:00
Scott Shawcroft
6d802fe616
Fix ESP builds 2024-04-29 14:11:38 -07:00
Scott Shawcroft
6cbdb64d03
Fix builds without custom USB ID 2024-04-29 11:46:58 -07:00
Scott Shawcroft
28b7421124
Merge remote-tracking branch 'adafruit/main' into renode 2024-04-29 11:27:19 -07:00
Scott Shawcroft
5fa40ccc22
Fix cyw43 and build with usb_cdc 2024-04-26 15:59:51 -07:00
Scott Shawcroft
d4a46ba153
Always define CFG_TUD_ENABLED 2024-04-26 15:36:46 -07:00
Scott Shawcroft
40f6d531b3
Add missing file 2024-04-26 14:27:16 -07:00
Scott Shawcroft
0cbd8b2e0c
Add CIRCUITPY_USB_DEVICE config
This replaces CIRCUITPY_USB and makes room for CIRCUITPY_TINYUSB
when it may only be included for host support.
2024-04-26 11:58:49 -07:00
Scott Shawcroft
b63d422768
Fix more boards and docs 2024-04-23 16:04:42 -07:00
Scott Shawcroft
442def3e68
Add minimal Renode port
This runs in the Renode simulator and enables easier tracing and
debugging of the CircuitPython core. This port can also serve as
a starting point for new ports because it implements the minimal
necessary for the CP core to run.
2024-04-23 13:31:31 -07:00
Dan Halbert
c35ec758dd Merge remote-tracking branch 'adafruit/9.0.x' into 9.0.4-update 2024-04-17 15:39:10 -04:00
Dan Halbert
98957cccd8 change unneeded uint8_t decls to size_t or uint32_t 2024-04-11 14:15:41 -04:00
Dan Halbert
2fa97f3872 fix flash_cache_table allocation failures; clean up code 2024-04-11 14:00:37 -04:00
Scott Shawcroft
aca3191a58
Add Max3421E support for usb host
It is enabled on:
* SAMD51 boards with 1MB flash (SKU ending in 20A)
* Feather RP2040 DVI. Others have PIO usb host.
* All ESP32 boards.
* All nRF boards

Fixes #8676
2024-04-10 10:57:28 -07:00
Joshua
8b8927b24a Readded misssing prototypes. 2024-04-07 06:07:53 +09:30
Dan Halbert
817a7fa4af
Merge branch 'main' into main 2024-04-06 16:21:01 -04:00
Joshua
3d183bbc5f Fixed board_serial_bytes_available prototype error. 2024-04-07 05:30:56 +09:30
Joshua
e956f2994b Updated to use ringbuf and an event callback. 2024-04-06 12:53:08 +10:30
Dan Halbert
064ac2d932 address review; fix STM; add limitation for STM 2024-04-06 09:26:59 +10:30
Dan Halbert
e847999a42 Runtime.serial_bytes_available: return count isntead of bool 2024-04-06 09:26:58 +10:30
Joshua
4d8310e374 Fixed precommit spacing problems. 2024-04-05 12:55:14 +10:30
Joshua
090f330ad5 Added support for Cardputer keyboard input. 2024-04-05 10:39:04 +10:30
Dan Halbert
4b44e324a5 address review; fix STM; add limitation for STM 2024-04-04 13:30:57 -04:00
Dan Halbert
bb9968215c Runtime.serial_bytes_available: return count isntead of bool 2024-04-04 12:26:06 -04:00
Scott Shawcroft
12b4ac13e3
Call vTaskDelay directly in usb_background
This minimizes the delay added. (`port_yield()` does vTaskDelay(4)
so low priority tasks run.)
2024-03-05 15:56:11 -08:00
Scott Shawcroft
e0c6302b73
Improve RGBMatrix reliability
The guard against running when flash is disabled isn't perfect and
may lead to calling the row handler anyway. We were crashing due
to mp_hal_delay_us being in flash. So, move it to RAM.

Also move the panic handler to IRAM so we get nice output when this
happens.

Turn off JTAG by default so its pins can be used by code.py.

Fixes #8987
2024-03-05 12:29:05 -08:00
Dan Halbert
d8bd26c560
Merge pull request #9005 from jepler/issue8980
Postpone interacting with the web workflow if a SPI bus is locked
2024-03-05 12:00:33 -05:00
c0064dcf9f Postpone interacting with the web workflow if a SPI bus is locked
I tested this by fetching a .txt file repeatedly using curl while
running the fancy camera demo. (100+ times without failure). I also
repeatedly loaded the filesystem view http://.../fs/#/sd/ which worked
10+ times without failure, but does take some time (multiple seconds) to
show a listing with a few dozen files.

(I suspect there's an accidentally quadratic behavior in oofatfs to stat
every file in a directory, because it repeatedly does a linear search of
the directory for the stat information of each file, but that's not an
issue for Right Now(TM))

Closes: #8980
2024-03-04 20:23:37 -06:00
Dan Halbert
78cbc8378c
Merge pull request #8994 from tannewt/ww_default_writable
Grab FS lock to test writability
2024-03-04 16:54:24 -05:00
Scott Shawcroft
9cc668b65d
Revert most changes. Only change web workflow writable 2024-03-04 13:45:06 -08:00
hathach
3d88402331
call tuh_hid_receive_abort() when detach from kernel driver
- add tuh_event_hook_cb() in SRAM, required when updated to latest tinyusb
- bump up pico-pio-usb to latest
- bump up tinyusb to latest for new tuh_hid_receive_abort(), and all endpoint abort when
SET_CONFIGURATION
2024-03-04 18:16:32 +07:00
Scott Shawcroft
95c4ffb6ef
Rename verify_fs_writable to filesystem_lock_raise 2024-03-01 14:54:17 -08:00
Scott Shawcroft
69105b24f0
Fix unix build 2024-02-29 14:36:15 -08:00
Scott Shawcroft
ddf9aec00e
Grab FS lock to test writability
Checking is_writable_from_python always follows USB policy even if
it is unplugged. Fixes #8986

Also does bare minimum for #8961.
2024-02-29 14:05:11 -08:00
Scott Shawcroft
02a488649f
Merge pull request #8923 from jepler/groups-in-rom
displayio: add, check "readonly" flag for groups
2024-02-16 09:49:14 -08:00