Commit Graph

1565 Commits

Author SHA1 Message Date
Jeff Epler aca93d0ebb
MODULES_NOT_IN_BINDINGS can skip listing things in ADDITIONAL_MODULES 2023-07-20 11:16:49 -05:00
Jeff Epler 9593ec44b1
add os.getenv to the support matrix 2023-07-20 11:16:48 -05:00
Jeff Epler d7ff56b00e
sort a block of items 2023-07-20 11:16:48 -05:00
Jeff Epler 8ea0835ff6
Allow any files to be rendered as jinja templates
by including a comment ".. jinja" anywhere in the file. By convention,
this should be at the top.

os.getenv will use this so it can render a 'supported boards' list.
2023-07-20 11:16:48 -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
Elvis Pfutzenreuter cddeb5f075 docs/esp32/quickref: Add LAN example for WT32-ETH01 version 1.4.
This board requires slightly different configuration to work.  It is
important to hard reset (cycle power) if you try to initialize LAN and it
fails, before trying again with new parameters.

Discussion: https://github.com/orgs/micropython/discussions/11446

AliExpress purchase link: https://pt.aliexpress.com/item/1005002023196214.html

Signed-off-by: Elvis Pfutzenreuter <epxx@epxx.co>
2023-07-13 12:14:42 +10:00
Damien George 713a45124b docs/library/ssl: Add documentation for SSLContext.
Signed-off-by: Damien George <damien@micropython.org>
2023-06-26 16:34:41 +10:00
Damien George 68e0e889b4 docs/esp32: Update esp32 docs based on IDF v5 changes.
Signed-off-by: Damien George <damien@micropython.org>
2023-06-23 15:34:49 +10:00
Jim Mussared 9092909bf5 docs: Rename uasyncio to asyncio.
This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-06-19 18:36:54 +10:00
Jim Mussared 8211d56712 docs/library/index: Update docs after umodule rename.
- Update guide for extending built-in modules.
- Remove any last trace of umodule in other docs.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-06-08 17:54:28 +10:00
Jim Mussared f5f9edf645 all: Rename UMODULE to MODULE in preprocessor/Makefile vars.
This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-06-08 17:54:11 +10:00
Jim Mussared dfe232d000 py/builtinimport: Remove weak links.
In order to keep "import umodule" working, the existing mechanism is
replaced with a simple fallback to drop the "u".

This makes importing of built-ins no longer touch the filesystem, which
makes a typical built-in import take ~0.15ms rather than 3-5ms.

(Weak links were added in c14a81662c)

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-06-08 17:54:04 +10:00
robert-hh bf7d3ad8c6 samd/boards: Rename flash pins consistently for QSPI and SPI.
For SAMD21 devices, the board flash signals must be named in pins.csv as
FLASH_MOSI, FLASH_MISO, FLASH_SCK, FLASH_CS for creating the SPI object.

And rename the QSPI pins to QSPI_xxxx instead of FLASH_xxx.

Signed-off-by: robert-hh <robert@hammelrath.com>
2023-06-06 00:42:33 +10:00
Jim Mussared bd5d0163c4 docs/reference/mpremote.rst: Extend the mpremote guide.
Changes in this commit:
- Add a extra detail to each of the commands.
- Add more about handling options and arguments.
- Include shortcut commands that behave like real commands to the command
  list (e.g. bootloader, rtc).
- Add extra information and reword to address common misconceptions, in
  particular how commands chain together.
- Add additional examples showing some more interesting combinations.
- Add descriptions to each of the examples.
- Add pipx installation instructions.
- Describe how user-configuration works.

This work was sponsored by Google Season of Docs.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-06-02 16:16:28 +10:00
Jonas Scharpf 7a17596e1a docs/reference/packages: Add GitHub repo to package example dependency.
Signed-off-by: Jonas Scharpf <jonas@brainelectronics.de>
2023-06-02 11:25:55 +10:00
Jim Mussared 5159304ca1 docs/library/index: Update built-in extension docs.
- Make the docs match the new behavior which only allows certain modules
  to be extended.
- List the modules that currently have the u-prefix.
- Add a note about the sys.path method for forcing a built-in import.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-06-01 16:22:04 +10:00
robert-hh 633408a4a5 docs/samd: Add the pin-out for the Adafruit Metro M4 Airlift board.
Signed-off-by: robert-hh <robert@hammelrath.com>
2023-06-01 12:38:58 +10:00
robert-hh 74dda80236 docs/mimxrt: Add the pin-out for the Adafruit Metro M7 board.
Signed-off-by: robert-hh <robert@hammelrath.com>
2023-06-01 12:38:58 +10:00
Jim Mussared 0000eb2724 docs/reference/speed_python: Remove 4-arg limit for viper.
This limit was removed in a676b5acf6.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-05-23 17:40:17 +10:00
robert-hh 20fd22edad samd/machine_uart: Add support for UART hardware flow control.
By specifying rts=pin(x) and/or cts=Pin(x) in the constructor.  The pad
numbers for the UART pins are fix in this case: TX must be at pad 0, RX at
pad 1, RTS at pad 2 and CTS at pad 3.

repr(uart) shows the pin names for rts and cts, if set.  In case of a RX
overflow, the rx interrupt will be disabled instead of just discarding the
data.  That allows RTS to act.

If RTS is inactive, still 2 bytes can be buffered in the FIFO.

Signed-off-by: robert-hh <robert@hammelrath.com>
2023-05-23 09:53:24 +10:00
Damien George 2771b20d29 tools/mpremote: Add repl option to escape non-printable characters.
This commit adds the "--escape-non-printable" option to the repl command.
When specified the REPL console will escape non-printable characters,
printing them as their hex value in square brackets.

This escaping behaviour was previously the default and only behaviour, but
it is now opt-in.

As part of this change, the speed of echoing device data to the console is
improved by by reading and writing in chunks.

Signed-off-by: Damien George <damien@micropython.org>
2023-05-22 14:13:24 +10:00
patrick 05e143dbdd esp32/esp32_ulp: Enable FSM ULP for S2 and S3 chips.
This commit enables the ULP for the S2 and S3 chips.

Note this is the FSM (Finite State Machine) ULP.

Signed-off-by: Patrick Joy <patrick@joytech.com.au>
2023-05-19 22:37:25 +10:00
marble b5c81f6bfb docs/develop/porting: Add missing code to example main.c and Makefile.
These two missing lines caused the build process to fail when implementing
the tutorial example port.

Signed-off-by: marble <git@computer-in.love>
2023-05-19 21:51:19 +10:00
glenn20 12dbbc8065 docs/library/espnow: Update espnow docs for WLAN.config(pm=x) options.
Update docs/library/espnow.rst to add:
- guidance on using WLAN.config(pm=WLAN.PM_NONE) for reliable
  espnow performance while also connected to a wifi access point;
- guidance on receiving encrypted messages;
- correction for default value of "encrypt" parameter (add_peer());
- guidance on use of ESPNow.irq(): recommand users readout all messages
  in the buffer each time the callback is called.

Signed-off-by: Glenn Moloney <glenn.moloney@gmail.com>
2023-05-19 21:48:08 +10:00
Adam Green f9958417d8 rp2: Make rp2_state_machine_exec accept integers.
Currently rp2.StateMachine.exec(instr_in) requires that the instr_in
parameter be a string representing the PIO assembly language instruction
to be encoded by rp2.asm_pio_encode(). This commit allows the parameter
to also be of integral type. This is useful if the exec() method is
being called often where the use of pre-encoded machine code is
desireable.

This commit still supports calls like:
    sm.exec("set(0, 1)")

It also now supports calls like:
    # Performed once earlier, maybe in __init__()
    assembled_instr = rp2.asm_pio_encode("out(y, 8)", 0)
    # Performed multiple times later as the PIO state machine is
    # configured for its next run.
    sm.exec(assembled_instr)

The existing examples/rp2/pio_exec.py and examples/rp2/pio_pwm.py that
exercise the rp2.StateMachine.exec() method still work with this change.

Signed-off-by: Adam Green <adamgrym@yahoo.com>
2023-05-18 12:33:02 +10:00
David Lechner 3e64d76122 docs/reference/mpyfiles: Add release info on v6.1.
This documents when MPY v6.1 was released.

Also add some clarification on how the version is encoded in the header.

Signed-off-by: David Lechner <david@pybricks.com>
2023-05-11 14:30:34 +10:00
Neradoc bb2af51d25 document CIRCUITPY_PYSTACK_SIZE 2023-05-09 14:30:25 +02:00
glenn20 1093dea709 esp32,esp8266: Add support to set/get power saving mode of WLAN.
For esp32 and esp8266 this commit adds:
- a 'pm' option to WLAN.config() to set/get the wifi power saving mode; and
- PM_NONE, PM_PERFORMANCE and PM_POWERSAVE constants to the WLAN class.

This API should be general enough to use with all WLAN drivers.

Documentation is also added.
2023-05-06 13:51:00 +10:00
robert-hh 786013d467 docs/samd: Make use of pin names more consistent in examples.
This keeps up with the changed Pin naming scheme.
2023-05-04 13:19:19 +10:00
robert-hh 0b3b508d1d rp2/machine_pwm: Add support for inverting a PWM channel output.
Using the invert=True|False keyword option with the constructor or init().
2023-05-04 13:18:47 +10:00
robert-hh dc8f9d22ca docs: Update the PWM examples based on recent API improvements.
This adds the freq and duty_u16 keyword settings to the constructor, and
sometimes other details in the PWM section.

For mimxrt a clarification regarding the PWM invert argument was added, and
for rp2 a few words were spent on PWM output pairs of a channel/slice.
2023-05-04 13:15:55 +10:00
robert-hh 250757716a samd/machine_pwm: Add init() method to PWM and simplify the PWM code.
The PWM.init() method has been added.  Calling init() without arguments
restarts a PWM channel stopped with deinit().  Otherwise single parameters
except for "device=n" can be changed again.  The device can only be
specified once, either in the constructor or the first init() call.

Also simplify get_pwm_config() and get_adc_config(), and shrink the PWM
object.
2023-05-04 13:10:38 +10:00
Christian Clauss 8f8bd98164 all: Fix strings with backslash by using raw string literals. 2023-05-02 11:55:02 +10:00
Glenn Moloney 7fa322afb8 esp32,esp8266: Add support for the Espressif ESP-NOW protocol.
ESP-NOW is a proprietary wireless communication protocol which supports
connectionless communication between ESP32 and ESP8266 devices, using
vendor specific WiFi frames.  This commit adds support for this protocol
through a new `espnow` module.

This commit builds on original work done by @nickzoic, @shawwwn and with
contributions from @zoland.  Features include:
- Use of (extended) ring buffers in py/ringbuf.[ch] for robust IO.
- Signal strength (RSSI) monitoring.
- Core support in `_espnow` C module, extended by `espnow.py` module.
- Asyncio support via `aioespnow.py` module (separate to this commit).
- Docs provided at `docs/library/espnow.rst`.

Methods available in espnow.ESPNow class are:
- active(True/False)
- config(): set rx buffer size, read timeout and tx rate
- recv()/irecv()/recvinto() to read incoming messages from peers
- send() to send messages to peer devices
- any() to test if a message is ready to read
- irq() to set callback for received messages
- stats() returns transfer stats:
    (tx_pkts, tx_pkt_responses, tx_failures, rx_pkts, lost_rx_pkts)
- add_peer(mac, ...) registers a peer before sending messages
- get_peer(mac) returns peer info: (mac, lmk, channel, ifidx, encrypt)
- mod_peer(mac, ...) changes peer info parameters
- get_peers() returns all peer info tuples
- peers_table supports RSSI signal monitoring for received messages:
    {peer1: [rssi, time_ms], peer2: [rssi, time_ms], ...}

ESP8266 is a pared down version of the ESP32 ESPNow support due to code
size restrictions and differences in the low-level API.  See docs for
details.

Also included is a test suite in tests/multi_espnow.  This tests basic
espnow data transfer, multiple transfers, various message sizes, encrypted
messages (pmk and lmk), and asyncio support.

Initial work is from https://github.com/micropython/micropython/pull/4115.
Initial import of code is from:
https://github.com/nickzoic/micropython/tree/espnow-4115.
2023-05-01 16:47:21 +10:00
algonell a39e2827b7 docs/reference: Remove double 'are' in glossary. 2023-05-01 11:50:53 +10:00
Damien George b1229efbd1 all: Fix spelling mistakes based on codespell check.
Signed-off-by: Damien George <damien@micropython.org>
2023-04-27 18:03:06 +10:00
Takeo Takahashi dc7de6ed83 renesas-ra: Change MICROPY_HW_BOARD_NAME definition to product name.
Changes in this commit:
- Change MICROPY_HW_BOARD_NAME definition to match the product name.
- Rename board folder's name to match the product name style.
- Change related files like Makefile, document descriptions, test cases, CI
  and tools.

Signed-off-by: Takeo Takahashi <takeo.takahashi.xv@renesas.com>
2023-04-27 14:12:53 +10: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
TPReal 859d0e9529 docs/library/framebuf: Clarify docs for blit regarding palette.
Clarified the behaviour when both key and palette are specified.
2022-11-17 23:18:22 +11:00
robert-hh 3459a4fa3d mimxrt/network: Rename the argument clock_mode to ref_clk_mode.
The definitions for LAN.IN and LAN.OUT are kept, but in the code Pin.IN
and Pin.OUT can be used as well as values for the ref_clk_mode argument.
2022-11-17 08:55:16 +01:00
Peter Hinch d1ed0f1610 docs/library/uasyncio: Describe restriction on ThreadSafeFlag.
As per Issue #7965, this class does not work on the Unix build.
2022-11-16 13:03:43 +11:00
Sky c1ae7d7534 docs/library/pyb.CAN: Update the recv example to take a 5-tuple.
A supplement to commit 5cdf964571
2022-11-15 22:50:17 +11:00
Howard Lovatt d2f8127258 docs/library/array: Add docs for dunder methods.
Signed-off-by: Damien George <damien@micropython.org>
2022-11-15 18:21:58 +11:00
Takeo Takahashi 5228f4067d renesas-ra: Change file system size to 64KB for RA6M1.
Changes in this commit:
- Change file system size from 128KB to 64KB in ra6m1_ek.ld.
- Change EK-RA6M1's file system size in renesas-ra port document.

Signed-off-by: Takeo Takahashi <takeo.takahashi.xv@renesas.com>
2022-11-15 10:01:36 +11:00
Takeo Takahashi 75012cfd6e docs/renesas-ra: Correct the internal file system size of EK-RA6M2.
Signed-off-by: Takeo Takahashi <takeo.takahashi.xv@renesas.com>
2022-11-15 10:01:35 +11:00
Damien George ec12cc5ba6 docs/develop: Fix mp_compile snippet to match latest code.
Signed-off-by: Damien George <damien.p.george@gmail.com>
2022-11-11 15:43:48 +11:00
robert-hh b3ce059767 docs/samd/pinout: Fix the pin numbering for the default assignments.
It still used the 'old' pin numbers.
2022-11-08 23:24:35 +11:00
Matt Trentini e65b12a1b9 docs/library/machine: Add machine.memX to docs with brief example. 2022-11-08 23:12:34 +11:00
robert-hh 65fa7fd8bb mimxrt/machine_timer: Use soft-timer implementation for machine.Timer.
This releases the hardware timers for other tasks, which need a higher
resolution and faster response.  And it is less port-specific code.
2022-10-27 14:09:29 +11:00
robert-hh 11910e2fa1 docs/samd: Add documentation for the samd port.
Includes a general overview, a quickref, pinout tables, and the beginnings
of a tutorial.
2022-10-26 23:39:35 +11:00
Jim Mussared 64af916c11 docs/templates/layout.html: Indicate latest vs release docs.
When looking at latest (the default for docs.micropython.org), make it
clear that this isn't the release version.
 - Changes the version in the top-left to "latest".
 - Adds a message to the top of each page to explain.

For future release versions, add a short message to link to the latest
version.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2022-10-26 16:23:20 +11:00
Jeff Epler 3bd7075c55
we removed MpyError 2022-10-22 11:28:23 -05:00
Jeff Epler 07dda44b20
remove hashlib, zlib from micropython modules index
.. these have been converted to shared-bindings style
and have their own documentation now that better matches our
implementation.

Closes: #7034
2022-10-17 09:57:44 -05:00
Jeff Epler 25164030e2
Don't recompute 'all_ports_all_boards'
This looks modestly expensive, and it's trivial to cache it.
2022-10-14 11:33:02 -05:00
Jeff Epler cab4063057
Make it easier to locally test ci_set_matrix
Now you can e.g., `tools/ci_set_matrix.py ports/raspberrypi/mpconfigport.h`
and see what outputs would be set.
2022-10-14 11:33:02 -05:00
Jim Mussared 3cc6decfc4 py/py.mk: Make user-C-module handling self-contained in py.mk.
Removes the need for the port to add anything to OBJS or SRC_QSTR.

Also makes it possible for user-C-modules to differentiate between code
that should be processed for QSTR vs other files (e.g. helpers and
libraries).

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2022-10-11 23:23:18 +11:00
Jim Mussared 17f2783e4a all: Use += rather than = everywhere for CFLAGS/LDFLAGS/LIBS.
This avoids a surprise where an = can cancel out an earlier +=.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2022-10-11 23:17:41 +11:00
Dan Halbert 833f55922c
Remove multiterminal
This module has not been built in years, since the (removed) esp8266 port.
Delete the code, as it is not likely to be useful in its current form.

Closes: #7015
2022-10-06 14:02:47 -05:00
Dan Halbert ed87579a65 add missing native modules to support matrix 2022-10-04 19:22:18 -04:00
Jim Mussared 12ca918eb2 tools/mpremote: Add `mpremote mip install` to install packages.
This supports the same package sources as the new `mip` tool.
 - micropython-lib (by name)
 - http(s) & github packages with json description
 - directly downloading a .py/.mpy file

The version is specified with an optional `@version` on the end of the
package name. The target dir, index, and mpy/no-mpy can be set through
command line args.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2022-10-01 22:44:24 +10:00
Jim Mussared 924a3e03ec top: Replace upip with mip everywhere.
Updates all README.md and docs, and manifests to `require("mip")`.

Also extend and improve the documentation on freezing and packaging.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2022-09-30 17:34:03 +10:00
Jim Mussared b76ddcbc83 docs/Makefile: Enable parallel compilation for Sphinx.
This has a fairly dramatic (nearly 3x on a 6-core machine) speedup for docs
compilation, with no impact on correctness.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2022-09-29 23:51:29 +10:00
Jim Mussared d94141e147 py/persistentcode: Introduce .mpy sub-version.
The intent is to allow us to make breaking changes to the native ABI (e.g.
changes to dynruntime.h) without needing the bytecode version to increment.

With this commit the two bits previously used for the feature flags (but
now unused as of .mpy version 6) encode a sub-version.  A bytecode-only
.mpy file can be loaded as long as MPY_VERSION matches, but a native .mpy
(i.e. one with an arch set) must also match MPY_SUB_VERSION.  This allows 3
additional updates to the native ABI per bytecode revision.

The sub-version is set to 1 because the previous commits that changed the
layout of mp_obj_type_t have changed the native ABI.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Signed-off-by: Damien George <damien@micropython.org>
2022-09-19 23:19:55 +10:00