Commit Graph

1490 Commits

Author SHA1 Message Date
Dan Halbert 2c0fa0f7dc initial merge from v1.20.0; just satisifying conflicts 2023-09-19 11:10:12 -04:00
Jeff Epler a94301122a
Make natmods work again.
And put back our magic number, because our bytecode format differs
from upstream

drop btree & framebuf natmods, they had additional problems I didn't
want to fix right now.
2023-08-19 16:59:13 -05:00
Dan Halbert 4a579f7242 fix doc build; reorganize placement of library docs 2023-08-14 12:34:00 -04:00
Dan Halbert 2171e67c1b merge latest adafruit/main 2023-08-13 19:43:54 -04:00
Jeff Epler dbafba889d
include SRC_PATTERNS for ci_set_matrix
Originally, all Makefile variables were implicitly included in
settings[]. When I revised ci_set_matrix, only explicltly named
variables are included.

Depending on the set of changed files, ci_set_matrix needs the
SRC_PATTERNS variable, so include it explicitly.

Typical error, seen in the history of building this PR:
```
Traceback (most recent call last):
  File "/home/runner/work/circuitpython/circuitpython/tools/ci_set_matrix.py", line 309, in <module>
    main()
  File "/home/runner/work/circuitpython/circuitpython/tools/ci_set_matrix.py", line 305, in main
    set_boards(run_all)
  File "/home/runner/work/circuitpython/circuitpython/tools/ci_set_matrix.py", line 215, in set_boards
    if module in settings["SRC_PATTERNS"]:
                 ~~~~~~~~^^^^^^^^^^^^^^^^
KeyError: 'SRC_PATTERNS'
Error: Process completed with exit code 1.
```
2023-08-03 08:57:42 -05:00
Jeff Epler 1325e5e2b9
Add index.html as a redirect to README.html
closes #8246
2023-08-02 09:26:10 -05:00
Dan Halbert 0d4bc8c163 initial v1.19.1 merge; not compiled yet 2023-08-01 13:50:05 -04:00
Jeff Epler 2e040b0d13
make starting with an unexpected prefix an exception 2023-07-31 10:41:10 -05:00
Jeff Epler f3c4a981c3
be explicit about the prefix we expect to remove from frozen_path 2023-07-31 10:22:54 -05:00
Jeff Epler 9a18524c30
simplify circuitpy_mpconfig with enable-if-any, -all
and make corresponding simplifications in shared-bindings-matrix,
but directly using the final defines from CFLAGS instead of the
status quo.

The net changes are to disable audiocore & audiomixer on some espressif
devices that have no audio output at all. Other than that, the
shared-bindings-matrix seems to be identical.
2023-07-25 19:56:08 -05:00
anecdata 73af1b8a30
Update docs/workflows.md
Co-authored-by: Scott Shawcroft <scott@tannewt.org>
2023-07-13 12:41:07 -05:00
anecdata bd2072123a
web workflow: uses an mdns port service slot 2023-07-12 23:24:33 -05:00
Neradoc bb2af51d25 document CIRCUITPY_PYSTACK_SIZE 2023-05-09 14:30:25 +02:00
Damien George 57ca8b71ee LICENSE,docs: Update copyright year range to include 2023.
Signed-off-by: Damien George <damien@micropython.org>
2023-04-26 13:33:32 +10:00
Jim Mussared a6aa7397d8 extmod/btstack: Include value handle in client read/write events.
This replaces the previous pending operation queue (that used to also be
shared with pending server notify/indicate ops) with a single pending
operation per connection. This allows the value handle to be correctly
passed to the Python-level events.

Also re-structure GATT client event handling to simplify the packet handler
functions.

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
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
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
Isaac Benitez 37116e6583 Fix documentation format error 2023-04-07 12:09:51 -07:00
Isaac Benitez e38b5491f4 Add device name env variable for web workflow 2023-04-07 11:45:13 -07:00
jposada202020 f56c221a50 removing need to use print format option. 2023-03-20 17:23:49 -04:00
Dan Halbert 6a9d69d743 add port-specific modules to support matrix 2023-03-14 16:06:30 -04: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
Jim Mussared 8b277d3c34 docs/library/network: Update docs for network.country, network.hostname.
Also marks wlan.config(hostname) as deprecated.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-03-01 01:28:02 +11:00
robert-hh 76cf98c35b samd/mcu: Implement a hardware seed for the SAMD21 random module.
By using the phase jitter between the DFLL48M clock and the FDPLL96M clock.
Even if both use the same reference source, they have a different jitter.
SysTick is driven by FDPLL96M, the us counter by DFLL48M.  As a random
source, the us counter is read out on every SysTick and the value is used
to accumulate a simple multiply, add and xor register.  According to tests
it creates about 30 bit random bit-flips per second.  That mechanism will
pass quite a few RNG tests, has a suitable frequency distribution and
serves better than just the time after boot to seed the PRNG.
2023-02-21 23:15:29 +11:00
jposada202020 e54775a8cb adding information regarding the version for libraries 2023-01-31 18:58:27 -05:00
enriquezgarc 5c10727b68 docs/zephyr/quickref: Fix zsensor module usage examples.
Signed-off-by: enriquezgarc <enriquezgarcia.external@infineon.com>
2023-01-19 16:04:24 +11:00
Chris Overgaauw 23ef29706e docs/reference/constrained: Add missing heap-dump symbols to mem_info(). 2023-01-19 15:59:29 +11:00
LiaoJingyi_winY7kp 7f6345a973 docs/library/machine.Timer: Add freq argument to machine.Timer.
Based on and tested on the rp2 port.

Signed-off-by: Liao Jingyi <liaojingyi2@gmail>
Signed-off-by: Damien George <damien@micropython.org>
2023-01-19 15:47:45 +11:00
robert-hh 30bac47b12 docs/esp32/quickref: Add docs for the LAN interface constructor.
Incorporating PR #7356.
2023-01-18 10:06:53 +11:00
Dorukyum f4811b0b42 docs/library/socket: Use correct sockaddr variable name.
Signed-off-by: Dorukyum <doruk.ak@hotmail.com>
2023-01-13 17:40:01 +11:00
Paul Warren a322ebafc0 docs/library/rp2.StateMachine: Expand put() documentation.
Document that put() can also accept arrays/bytearrays as values.

Fixes issue #10465.

Signed-off-by: Paul Warren <pdw@ex-parrot.com>
2023-01-12 17:14:04 +11:00
Stig Bjørlykke 209a6bb6b7 docs/rp2: Make LED have exactly 50% duty cycle in PIO 1Hz example.
This ensures the same number of cycles are used for LED on and LED off in
the PIO 1Hz example.  It's also possible to swap the first set() and the
irq() to avoid using an extra instruction, but this tutorial is a good
example of how to calculate the cycles.

Signed-off-by: Stig Bjørlykke <stig@bjorlykke.org>
2023-01-12 17:07:43 +11:00
robert-hh 988b6e2dae renesas-ra: Add the UART methods uart.txdone() and uart.flush().
This required to add two functions down the stack to uart.c and ra.sci.c.

- One for telling, whther the transmission is busy.
- One for reporting the size of the TX buffer.

Tested with a EK-RA6M2 board.
2022-12-15 12:09:34 +01:00
robert-hh e69313f89c samd: Add a vref=num option to the ADC and DAC constructor.
ADC: The argument of vref=num is an integer. Values for num are:

    SAMD21:
    0  INT1V   1.0V voltage reference
    1  INTVCC0 1/1.48 Analog voltage supply
    2  INTVCC1 1/2 Analog voltage supply (only for VDDANA > 2.0V)
    3  VREFA   External reference
    4  VREFB   External reference

    SAMD51:
    0  INTREF  internal bandgap reference
    1  INTVCC1 Analog voltage supply
    2  INTVCC0 1/2 Analog voltage supply (only for VDDANA > 2.0v)
    3  AREFA   External reference A
    4  AREFB   External reference B
    5  AREFC   External reference C (ADC1 only)

DAC: The argument of vref=num is an integer. Suitable values:

    SAMD21:
    0  INT1V   Internal voltage reference
    1  VDDANA  Analog voltage supply
    2  VREFA   External reference

    SAMD51:
    0  INTREF Internal bandgap reference
    1  VDDANA Analog voltage supply
    2  VREFAU Unbuffered external voltage reference (not buffered in DAC)
    4  VREFAB Buffered external voltage reference (buffered in DAC).
2022-12-14 12:48:24 +11:00
David Lechner f3d9fe7b2c docs/differences: Add Python 3.10 page.
This adds a new page for Python 3.10 implementation status similar to
previous releases.

Signed-off-by: David Lechner <david@pybricks.com>
2022-12-13 16:55:55 +11:00
David Lechner 918e0ae164 docs/differences: Update Python 3.9 status.
This marks PEP 584 as complete and notes a few PEPs as not relevant.

Signed-off-by: David Lechner <david@pybricks.com>
2022-12-13 16:31:11 +11:00
Jeff Epler 2bf5d2bc07
Merge remote-tracking branch 'origin/main' into dotenv-becomes-toml 2022-12-10 15:39:50 -06:00
Jeff Epler f2032dbf0f
remove mention of _environ 2022-12-09 14:11:37 -06:00
Jeff Epler 529ec23ecb
sadly, no emoji in the docs :( hopefully this works 2022-12-08 20:07:48 -06:00
Dan Halbert fa96bcce84 remove micropython asyncio doc; update libraries page and links 2022-12-08 20:23:02 -05:00
Jeff Epler 3459fe322b
Withdraw the _environ module
This existed solely for testing, so expose it a different way during
the unix coverage build

Also turn off os.getenv support on samd21.
2022-12-08 15:33:10 -06:00
Jeff Epler ef2bfdb5db
dotenv becomes settings.toml 2022-12-08 12:44:20 -06:00
Damien George 2283b6d68f py: Pass in address to compiled module instead of returning it.
This change makes it so the compiler and persistent code loader take a
mp_compiled_module_t* as their last argument, instead of returning this
struct.  This eliminates a duplicate context variable for all callers of
these functions (because the context is now stored in the
mp_compiled_module_t by the caller), and also eliminates any confusion
about which context to use after the mp_compile_to_raw_code or
mp_raw_code_load function returns (because there is now only one context,
that stored in mp_compiled_module_t.context).

Reduces code size by 16 bytes on ARM Cortex-based ports.

Signed-off-by: Damien George <damien@micropython.org>
2022-12-08 12:27:23 +11:00
Jim Mussared 3ecbaf1e06 docs/library/neopixel: Update GitHub URL for neopixel.py link.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2022-12-07 13:36:20 +11:00
Laurens Valk a6fd13a026 docs/library/struct: Embed format tables.
Also add note about long support.

Signed-off-by: Laurens Valk <laurens@pybricks.com>
2022-12-06 09:32:05 +01:00
Laurens Valk 6503cd47af docs/library/struct: Fix buffer argument description.
The buffer is the data in this case. There is no buffer argument.

Signed-off-by: Laurens Valk <laurens@pybricks.com>
2022-12-06 17:46:42 +11:00
Michael Mogenson 921f397acb tools/mpremote: Only auto connect to serial device with USB VID/PID.
On MacOS and Windows there are a few default serial devices that are
returned by `serial.tools.list_ports.comports()`. For example on MacOS:

```
{'description': 'n/a',
 'device': '/dev/cu.Bluetooth-Incoming-Port',
 'hwid': 'n/a',
 'interface': None,
 'location': None,
 'manufacturer': None,
 'name': 'cu.Bluetooth-Incoming-Port',
 'pid': None,
 'product': None,
 'serial_number': None,
 'vid': None}

{'description': 'n/a',
 'device': '/dev/cu.wlan-debug',
 'hwid': 'n/a',
 'interface': None,
 'location': None,
 'manufacturer': None,
 'name': 'cu.wlan-debug',
 'pid': None,
 'product': None,
 'serial_number': None,
 'vid': None}
```

Users of mpremote most likely do not want to connect to these ports. It
would be desirable if mpremote did not select this ports when using the
auto connect behavior. These serial ports do not have USB VID or PID
values and serial ports for Micropython boards with FTDI/serial-to-USB
adapter or native USB CDC/ACM support do.

Check for the presence of a USB VID / PID int value when selecting a
serial port to auto connect to. All serial ports will still be listed by
the `list` command and can still be selected by name when connecting.

Signed-off-by: Michael Mogenson <michael.mogenson@gmail.com>
2022-11-25 17:20:14 -05:00
Laurens Valk a67989aa20 examples/usercmodule: Add example of a native C class.
This shows how ports can add their own custom types/classes.

It is part of the unix coverage build, so we can use it for tests too.

Signed-off-by: Laurens Valk <laurens@pybricks.com>
2022-11-23 11:46:17 +11:00
yn386 a74e4fabeb stm32/i2c: Fix I2C frequency calc so it doesn't exceed requested rate.
Prior to this commit, the actual I2C frequency can be faster than specified
one and it may exceed the I2C's specification for Fast Mode.  The frequency
of SCL should be less than or equal to 400KHz in Fast Mode.

This commit fixes this issue for F4 MCUs by rounding up the division in the
frequency calculation.
2022-11-18 14:25:19 +11:00