Commit Graph

1150 Commits

Author SHA1 Message Date
Damien George
3c4bfd1dec py/objexcept: Support errno attribute on OSError exceptions.
This commit adds the errno attribute to exceptions, so code can retrieve
errno codes from an OSError using exc.errno.

The implementation here simply lets `errno` (and the existing `value`)
attributes work on any exception instance (they both alias args[0]).  This
is for efficiency and to keep code size down.  The pros and cons of this
are:

Pros:
- more compatible with CPython, less difference to document and learn
- OSError().errno will correctly return None, whereas the current way of
  doing it via OSError().args[0] will raise an IndexError
- it reduces code size on most bare-metal ports (because they already have
  the errno qstr)
- for Python code that uses exc.errno the generated bytecode is 2 bytes
  smaller and more efficient to execute (compared with exc.args[0]); so
  bytecode loaded to RAM saves 2 bytes RAM for each use of this attribute,
  and bytecode that is frozen saves 2 bytes flash/ROM for each use
- it's easier/shorter to type, and saves 2 bytes of space in .py files that
  use it (for each use)

Cons:
- increases code size by 4-8 bytes on minimal ports that don't already have
  the `errno` qstr
- all exceptions now have .errno and .value attributes (a cpydiff test is
  added to address this)

See also #2407.

Signed-off-by: Damien George <damien@micropython.org>
2021-04-23 22:03:46 +10:00
Damien George
321d1897c3 all: Bump version to 1.15.
Signed-off-by: Damien George <damien@micropython.org>
2021-04-19 00:11:51 +10:00
Damien George
f541b3673d docs/develop: Improve user C modules to properly describe how to build.
Make and CMake builds are slightly different and these changes help make it
clear what to do in each case.

Signed-off-by: Damien George <damien@micropython.org>
2021-04-02 17:07:20 +11:00
Damien George
d87f42b0e5 examples/usercmodules: Simplify user C module enabling.
It's a bit of a pitfall with user C modules that including them in the
build does not automatically enable them.  This commit changes the docs and
examples for user C modules to encourage writers of user C modules to
enable them unconditionally.  This makes things simpler and covers most use
cases.

See discussion in issue #6960, and also #7086.

Signed-off-by: Damien George <damien@micropython.org>
2021-04-01 16:27:38 +11:00
Phil Howard
8e5756e2b6 docs/develop/cmodules.rst: Document C-modules and micropython.cmake.
Documents the micropython.cmake file required to make user C modules
compatible with the CMake build system.

Signed-off-by: Phil Howard <phil@pimoroni.com>
2021-03-31 00:28:21 +11:00
stijn
914380cb89 all: Add .git-blame-ignore-revs for fixing up git blame output.
Add most formatting-only commits to this file so that when used with
git blame, these commits are excluded and the output shows only the
interesting bits.
2021-03-15 11:07:29 +01:00
Damien George
6129b8e401 tests: Rename run-tests to run-tests.py for consistency.
Signed-off-by: Damien George <damien@micropython.org>
2021-03-12 19:56:09 +11:00
Damien George
b24fcd7aec esp32/machine_hw_spi: Use default pins when making SPI if none given.
The default pins can be optionally configured by a board.

Fixes issue #6974.

Signed-off-by: Damien George <damien@micropython.org>
2021-03-12 10:56:25 +11:00
Thorsten von Eicken
c10d431819 esp32: Add basic support for Non-Volatile-Storage in esp32 module.
This commit implements basic NVS support for the esp32.  It follows the
pattern of the esp32.Partition class and exposes an NVS object per NVS
namespace.  The initial support provided is only for signed 32-bit integers
and binary blobs.  It's easy (albeit a bit tedious) to add support for
more types.

See discussions in: #4436, #4707, #6780
2021-02-19 15:05:19 +11:00
Thorsten von Eicken
2c1299b007 extmod/modussl: Fix ussl read/recv/send/write errors when non-blocking.
Also fix related problems with socket on esp32, improve docs for
wrap_socket, and add more tests.
2021-02-17 11:50:54 +11:00
Jim Mussared
cdf9c8648f docs/library/uasyncio.rst: Add docs for ThreadSafeFlag.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2021-02-16 16:35:37 +11:00
Jim Mussared
7ed99544e4 extmod/uasyncio: Add asyncio.current_task().
Matches CPython behavior.

Fixes #6686
2021-02-13 15:11:17 +11:00
Brianna Laugher
d128999938 tools: Add filesystem action examples to pyboard.py help.
Signed-off-by: Brianna Laugher <brianna.laugher@gmail.com>
2021-02-13 14:37:28 +11:00
Damien George
78b23c3a1f all: Bump version to 1.14.
Signed-off-by: Damien George <damien@micropython.org>
2021-02-03 00:59:07 +11:00
Damien George
0e44587076 docs/library/machine.Pin.rst: Make it clear which methods are not core.
Signed-off-by: Damien George <damien@micropython.org>
2021-02-03 00:54:18 +11:00
Damien George
ef9fde7339 LICENSE,docs: Update copyright year range to include 2021.
Signed-off-by: Damien George <damien@micropython.org>
2021-01-31 23:17:42 +11:00
Samuelson
407df82f81 docs/develop/natmod: Fix a small typo, con->can. 2021-01-30 15:20:44 +11:00
Christopher Tse
ddb53c9458 docs/esp8266/quickref: Add warning block about NeoPixel timing. 2021-01-30 14:36:30 +11:00
Andrew Scheller
499e199add docs,stm32: Fix minor typos in RTC docs, and->an. 2021-01-30 14:13:30 +11:00
nanjekyejoannah
4eaebc1988 docs/develop: Add MicroPython Internals chapter.
This commit adds many new sections to the existing "Developing and building
MicroPython" chapter to make it all about the internals of MicroPython.

This work was done as part of Google's Season of Docs 2020.
2021-01-27 16:59:58 +11:00
iabdalkader
20f8ce1982 stm32/pyb_can: Add ability to calculate CAN bit timing from baudrate.
Calculate the bit timing from baudrate if provided, allowing sample point
override.  This makes it a lot easier to make CAN work between different
MCUs with different clocks, prescalers etc.

Tested on F4, F7 and H7 Y/V variants.
2020-12-17 23:01:15 +11:00
Damien George
1719459c28 extmod/modubinascii: Update code, docs for hexlify now CPython has sep.
Since CPython 3.8 the optional "sep" argument to hexlify is officially
supported, so update comments in the code and the docs to reflect this.

Signed-off-by: Damien George <damien@micropython.org>
2020-12-14 14:35:29 +11:00
Jim Mussared
68136eb4ba docs/library/ubluetooth.rst: Add passkey docs.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-12-02 14:44:36 +11:00
Jim Mussared
b799fe1421 docs/library/ubluetooth.rst: Add bonding docs.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-12-02 14:42:46 +11:00
Jim Mussared
fff634e031 docs/library/ubluetooth.rst: Add gap_pair() docs.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-12-02 14:41:36 +11:00
Jim Mussared
f822557cbb docs/library/ubluetooth.rst: Add pairing/bonding config docs.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-12-02 14:41:21 +11:00
Andrew Leech
05fef8c6a4 extmod/modbluetooth: Add _IRQ_ENCRYPTION_UPDATE event.
This allows the application to be notified if any of encrypted,
authenticated and bonded state change, as well as the encryption key size.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-12-02 14:40:15 +11:00
Jim Mussared
5e20f689ad docs/library/ubluetooth.rst: Update read request IRQ docs.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-12-02 14:39:17 +11:00
Jim Mussared
89553997b8 docs/library/ubluetooth.rst: Update char/desc flags.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-12-02 14:37:45 +11:00
Jim Mussared
7a9aa49595 docs/library/ubluetooth.rst: Add _IRQ_CONNECTION_UDPATE docs.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-12-02 14:36:41 +11:00
Damien George
a14ca31e85 docs/reference/repl.rst: Add information about new raw-paste mode.
Signed-off-by: Damien George <damien@micropython.org>
2020-12-01 22:35:13 +11:00
Jim Mussared
3795c71271 docs/library/ubluetooth.rst: Add docs for L2CAP channels.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-11-24 01:07:17 +11:00
Damien George
dbb13104ca docs/develop/cmodules.rst: Add link to source code for user C example.
Signed-off-by: Damien George <damien@micropython.org>
2020-10-29 23:10:43 +11:00
stijn
25c4563f26 examples: Add example code for user C modules, both C and C++.
Add working example code to provide a starting point for users with files
that they can just copy, and include the modules in the coverage test to
verify the complete user C module build functionality.  The cexample module
uses the code originally found in cmodules.rst, which has been updated to
reflect this and partially rewritten with more complete information.
2020-10-29 15:30:42 +11:00
stijn
0153148fd2 py/py.mk: Support C++ code for user C modules.
Support C++ code in .cpp files by providing CXX counterparts of the
_USERMOD_ flags we have for C already.  This merely enables the Makefile of
user C modules to use variables specific to C++ compilation, it is still up
to each port's main Makefile to also include these in the build.
2020-10-29 15:29:20 +11:00
stijn
78c8b55067 docs: Fix reference to QSTR_GEN_CFLAGS Makefile flag. 2020-10-29 15:28:18 +11:00
Kevin Thomas
6eebdbc495 docs/reference/glossary.rst: Fix minor grammar error, An -> A. 2020-10-22 15:40:11 +11:00
Howard Lovatt
4842060366 docs/library/machine.Timer.rst: Add mention of constructor arguments. 2020-10-20 17:23:54 +11:00
Howard Lovatt
cf6845b1cf docs/library/machine.Signal.rst: Correct typo: usecases to use cases. 2020-10-20 17:21:30 +11:00
Howard Lovatt
23f9439f44 docs/library/machine.rst: Correct minor typo: timout to timeout. 2020-10-20 17:19:47 +11:00
Howard Lovatt
3bc0ecbcd9 docs/library/btree.rst: Correct method typo: __detitem__ to __delitem__. 2020-10-20 17:13:02 +11:00
Damien George
d4b61b0017 extmod/utime_mphal: Add generic utime.time_ns() function.
It requires mp_hal_time_ns() to be provided by a port.  This function
allows very accurate absolute timestamps.

Enabled on unix, windows, stm32, esp8266 and esp32.

Signed-off-by: Damien George <damien@micropython.org>
2020-10-01 14:20:42 +10:00
Damien George
98182a97c5 docs: Update I2C and SPI docs to add reference to SoftI2C and SoftSPI.
Signed-off-by: Damien George <damien@micropython.org>
2020-10-01 12:57:10 +10:00
David Lechner
ee7568ca8d docs/reference/packages.rst: Fix typo, remove duplicate "port".
Fixes #6485.
2020-09-30 23:32:24 +10:00
Damien George
c8ade2bd7f docs/develop: Add notes on prerequisite tools for building native .mpy.
Signed-off-by: Damien George <damien@micropython.org>
2020-09-25 12:25:29 +10:00
Damien George
81f2162ca0 extmod/modbluetooth: Change module-owned bytes objects to memoryview.
A read-only memoryview object is a better representation of the data, which
is owned by the ubluetooth module and may change between calls to the
user's irq callback function.

Signed-off-by: Damien George <damien@micropython.org>
2020-09-25 12:23:11 +10:00
Damien George
bd7af6151d ports: Add utime.gmtime() function.
To portably get the Epoch.  This is simply aliased to localtime() on ports
that are not timezone aware.

Signed-off-by: Damien George <damien@micropython.org>
2020-09-18 16:25:36 +10:00
Jim Mussared
f271b96b5c docs/library/ubluetooth.rst: Add docs for MTU API. 2020-09-18 12:51:21 +10:00
Jim Mussared
c200759290 docs/library/ubluetooth.rst: Clarify peripheral/central vs server/client
Previously this documentation assumed peripheral=server and central=client,
but this is not accurate or true to the implementation.
2020-09-15 15:42:59 +10:00
Jim Mussared
19faf55090 docs/library/ubluetooth.rst: Clarify position/kw arguments.
Almost all ubluetooth functions are positional-only, but some have optional
args.  Make this clearer and show what the defaults are.
2020-09-15 15:28:59 +10:00
Jim Mussared
67d8139e2b docs/library/ubluetooth.rst: Document BLE address modes. 2020-09-08 12:53:24 +10:00
stijn
40ad8f1666 all: Rename "sys" module to "usys".
This is consistent with the other 'micro' modules and allows implementing
additional features in Python via e.g. micropython-lib's sys.

Note this is a breaking change (not backwards compatible) for ports which
do not enable weak links, as "import sys" must now be replaced with
"import usys".
2020-09-04 00:10:24 +10:00
Damien George
b0932fcf2e all: Bump version to 1.13.
Signed-off-by: Damien George <damien@micropython.org>
2020-09-02 12:01:26 +10:00
Damien George
338b12d3c8 LICENSE,docs: Update copyright year range to include 2020.
Signed-off-by: Damien George <damien@micropython.org>
2020-08-29 13:58:20 +10:00
Andrew Leech
a80a146858 extmod/bluetooth: Support active scanning in BLE.gap_scan().
This adds an additional optional parameter to gap_scan() to select active
scanning, where scan responses are returned as well as normal scan results.
This parameter is False by default which retains the existing behaviour.
2020-08-26 15:00:11 +10:00
Damien George
2acc087880 extmod/vfs_lfs: Add mtime support to littlefs files.
This commit adds support for modification time of files on littlefs v2
filesystems, using file attributes.  For some background see issue #6114.

Features/properties of this implementation:
- Only supported on littlefs2 (not littlefs1).
- Uses littlefs2's general file attributes to store the timestamp.
- The timestamp is 64-bits and stores nanoseconds since 1970/1/1 (if the
  range to the year 2554 is not enough then additional bits can be added to
  this timestamp by adding another file attribute).
- mtime is enabled by default but can be disabled in the constructor, eg:
  uos.mount(uos.VfsLfs2(bdev, mtime=False), '/flash')
- It's fully backwards compatible, existing littlefs2 filesystems will work
  without reformatting and timestamps will be added transparently to
  existing files (once they are opened for writing).
- Files without timestamps will open correctly, and stat will just return 0
  for their timestamp.
- mtime can be disabled or enabled each mount time and timestamps will only
  be updated if mtime is enabled (otherwise they will be untouched).

Signed-off-by: Damien George <damien@micropython.org>
2020-08-25 17:35:19 +10:00
Zenix27
e76c7466b6 docs: Change \* to * in argument lists.
Latest versions of Sphinx (at least 3.1.0) do not need the `*` escaped and
will render the `\` in the output if it is there, so remove it.

Fixes issue #6209.
2020-08-21 12:24:13 +10:00
Josh Lloyd
fe7d47971f docs/esp32: Fix machine.Timer quickref to specify HW timers.
Also remove trailing spaces on other lines.
2020-07-25 00:50:06 +10:00
Howard Lovatt
47289f4bc9 docs/library: Update pyb.UART to correct pyboard UART availability.
On original pyboard UART 5 isn't available; added pyboard D availability.
2020-07-25 00:46:29 +10:00
Howard Lovatt
4a7c2731c5 docs/library: Update pyb.Timer to add missing args and defaults to init. 2020-07-25 00:34:48 +10:00
Howard Lovatt
cf9be201d7 docs/library: Update pyb.SPI init method to add descr about "ti" arg. 2020-07-25 00:28:16 +10:00
Jonathan Hogg
5f0e9d1bac docs/library: Update documentation of esp32's RMT.
This explains how looping now works, and removes the warning about calling
wait_done().
2020-07-21 00:57:35 +10:00
Jim Mussared
c7f7c0214c docs/library: For ubluetooth, add docs for _IRQ_GATTS_INDICATE_DONE. 2020-07-20 23:28:31 +10:00
Jim Mussared
b7698841b2 docs/library: Add gatts_indicate() doc to ubluetooth.rst.
Also clarify behavior of `gatts_notify` and add some TODOs about adding an
event for indication acknowledgement.
2020-07-18 14:34:44 +10:00
spacemanspiff2007
b572aa5721 docs/esp32: Add info about PWM duty cycle range to esp32 quickref.
See related #4581.
2020-06-30 22:28:09 +10:00
victor
cb9aafbf8f docs/library: Clarify that the arg to esp.deepsleep is in microseconds. 2020-06-30 22:01:44 +10:00
Jon Rob
1678f41744 esp32/esp32_rmt: Extend RMT to support carrier feature.
The ESP32 RMT peripheral has hardware support for a carrier frequency, and
this commit exposes it to Python with the keyword arguments carrier_freq
and carrier_duty_percent in the constructor.  Example usage:

    r = esp32.RMT(0, pin=Pin(2), clock_div=80, carrier_freq=38000, carrier_duty_percent=50)
2020-06-17 00:03:33 +10:00
Nick Crabtree
2934e41df0 docs/esp8266: Add quickref documentation for UART on esp8266.
This patch adds quickref documentation for the change in commit
afd0701bf7.  This commit added the ability to
disable the REPL and hence use UART0 for serial communication on the
esp8266, but was not previously documented anywhere.

The text is largely taken from the commit message, with generic information
on using the UART duplicated from the Wipy quickref document.
2020-06-10 22:46:09 +10:00
Damien George
a4c96fb3b0 extmod/uasyncio: Add asyncio.wait_for_ms function.
Fixes issue #6107.
2020-06-10 22:29:44 +10:00
David Lechner
1e6d18c915 docs: Fix Sphinx 3.x warnings, and enable warnings-as-errors on build.
This enables warnings as errors and fixes all current errors, namely:

- reference to terms in the glossary must now be explicit (:term:)
- method overloads must not be declared as a separate method or must
  use :noindex:
- 2 cases where `` should have been used instead of `
2020-06-05 21:42:17 +10:00
Jim Mussared
1cad63c0bc extmod/modbluetooth: Ensure status=0 always on success.
This commit makes sure that all discovery complete and read/write status
events set the status to zero on success.

The status value will be implementation-dependent on non-success cases.
2020-06-05 14:11:04 +10:00
Jim Mussared
9708fe8788 docs/library: Update ubluetooth for new events and discover by uuid. 2020-06-05 14:10:13 +10:00
Andrew Leech
e54626f4c1 docs/reference: Add note about multiple exceptions when heap is locked. 2020-06-02 15:56:34 +10:00
cccc
1662a0b06f esp32/machine_sdcard: Add "freq" keyword arg to SDCard constructor.
To allow high speed access.
2020-05-28 12:19:04 +10:00
Damien George
cae77daf00 docs/develop: Fix module/source name in Makefile of native example. 2020-05-16 15:00:46 +10:00
Damien George
3b6c9119eb extmod/modbluetooth: Add support for changing the GAP device name.
This commit allows the user to set/get the GAP device name used by service
0x1800, characteristic 0x2a00.  The usage is:

    BLE.config(gap_name="myname")
    print(BLE.config("gap_name"))

As part of this change the compile-time setting
MICROPY_PY_BLUETOOTH_DEFAULT_NAME is renamed to
MICROPY_PY_BLUETOOTH_DEFAULT_GAP_NAME to emphasise its link to GAP and this
new "gap_name" config value.  And the default value of this for the NimBLE
bindings is changed from "PYBD" to "MPY NIMBLE" to be more generic.
2020-05-11 21:30:41 +10:00
Thorsten von Eicken
952ff8a8ea esp32: Improve support for OTA updates.
This commit adds several small items to improve the support for OTA
updates on an esp32:

- a partition table for 4MB flash modules that has two OTA partitions ready
  to go to do updates
- a GENERIC_OTA board that uses that partition table and that enables
  automatic roll-back in the bootloader
- a new esp32.Partition.mark_app_valid_cancel_rollback() class-method to
  signal that the boot is successful and should not be rolled back at the
  next reset
- an automated test for doing an OTA update
- documentation updates
2020-05-03 15:00:45 +10:00
Thorsten von Eicken
7d97d241e8 docs/library: Fix docs for machine.WDT to specify millisecond timeout. 2020-05-02 22:55:48 +10:00
Damien George
391927c126 docs/library: Note that machine.Pin.irq's hard arg may not be supported. 2020-04-30 23:50:53 +10:00
Jim Mussared
7563d58210 unix: Add support for modbluetooth and BLE using btstack.
This commit adds full support to the unix port for Bluetooth using the
common extmod/modbluetooth Python bindings.  This uses the libusb HCI
transport, which supports many common USB BT adaptors.
2020-04-29 16:45:46 +10:00
Thorsten von Eicken
a177831c46 esp32/modesp32: Add idf_heap_info(capabilities) to esp32 module.
This commit adds an idf_heap_info(capabilities) method to the esp32 module
which returns info about the ESP-IDF heaps.  It's useful to get a bit of a
picture of what's going on when code fails because ESP-IDF can't allocate
memory anymore.  Includes documentation and a test.
2020-04-23 00:02:11 +10:00
Thomas Friebel
1b1ceb67b2 docs/library: Document that char_data/notify_data are also references. 2020-04-19 00:18:14 +10:00
Damien George
db137e70dc extmod/uasyncio: Add Loop.new_event_loop method.
This commit adds Loop.new_event_loop() which is used to reset the singleton
event loop.  This functionality is put here instead of in Loop.close() to
make it possible to write code that is compatible with CPython.
2020-04-13 22:16:52 +10:00
Peter Hinch
7409467361 docs/library: Note that uasyncio.wait_for() can raise exception. 2020-04-09 22:11:13 +10:00
Damien George
e0905e85a7 esp8266: Change from FAT to littlefs v2 as default filesystem.
This commit changes the esp8266 boards to use littlefs v2 as the
filesystem, rather than FAT.  Since the esp8266 doesn't expose the
filesystem to the PC over USB there's no strong reason to keep it as FAT.
Littlefs is smaller in code size, is more efficient in use of flash to
store data, is resilient over power failure, and using it saves about 4k of
heap RAM, which can now be used for other things.

This is a backwards incompatible change because all existing esp8266 boards
will need to update their filesystem after installing new firmware (eg
backup old files, install firmware, restore files to new filesystem).

As part of this commit the memory layout of the default board (GENERIC) has
changed.  It now allocates all 1M of memory-mapped flash to the firmware,
so the filesystem area starts at the 2M point.  This is done to allow more
frozen bytecode to be stored in the 1M of memory-mapped flash.  This
requires an esp8266 module with 2M or more of flash to work, so a new board
called GENERIC_1M is added which has the old memory-mapping (but still
changed to use littlefs for the filesystem).

In summary there are now 3 esp8266 board definitions:
- GENERIC_512K: for 512k modules, doesn't have a filesystem.
- GENERIC_1M: for 1M modules, 572k for firmware+frozen code, 396k for
  filesystem (littlefs).
- GENERIC: for 2M (or greater) modules, 968k for firmware+frozen code,
  1M+ for filesystem (littlefs), FAT driver also included in firmware for
  use on, eg, external SD cards.
2020-04-04 16:30:36 +11:00
Damien George
df156b18e5 docs,tests: Add docs and test for uasyncio custom exc handler methods. 2020-04-04 10:47:48 +11:00
Damien George
f97b5395ed extmod/uasyncio: Add StreamReader/StreamWriter as aliases of Stream cls.
To be compatible with CPython.  Fixes issue #5847.
2020-04-02 00:51:00 +11:00
Damien George
b389bc0afa extmod/uasyncio: Implement Loop.stop() to stop the event loop. 2020-04-02 00:14:18 +11:00
Lars Kellogg-Stedman
3a0f64fc7a tools/pyboard.py: Add -d as an alias for --device. 2020-03-30 11:37:32 +11:00
Lars Kellogg-Stedman
1cf994c48b tools/pyboard.py: Support setting device/baudrate from shell env vars.
Allow defaults for --device and --baudrate to be set in the environment
using PYBOARD_DEVICE and PYBOARD_BAUDRATE.
2020-03-30 11:37:32 +11:00
Damien George
c99322f8d8 docs/library: Add initial docs for uasyncio module. 2020-03-26 01:25:45 +11:00
Andrew Leech
86bfabec11 py/modmicropython: Add heap_locked function to test state of heap.
This commit adds micropython.heap_locked() which returns the current
lock-depth of the heap, and can be used by Python code to check if the heap
is locked or not.  This new function is configured via
MICROPY_PY_MICROPYTHON_HEAP_LOCKED and is disabled by default.

This commit also changes the return value of micropython.heap_unlock() so
it returns the current lock-depth as well.
2020-03-11 16:54:16 +11:00
Damien George
dd0bc26e65 extmod/modbluetooth: Change scan result's "connectable" to "adv_type".
This commit changes the BLE _IRQ_SCAN_RESULT data from:

    addr_type, addr, connectable, rssi, adv_data

to:

    addr_type, addr, adv_type, rssi, adv_data

This allows _IRQ_SCAN_RESULT to handle all scan result types (not just
connectable and non-connectable passive scans), and to distinguish between
them using adv_type which is an integer taking values 0x00-0x04 per the BT
specification.

This is a breaking change to the API, albeit a very minor one: the existing
connectable value was a boolean and True now becomes 0x00, False becomes
0x02.

Documentation is updated and a test added.

Fixes #5738.
2020-03-11 14:00:44 +11:00
Thomas Friebel
f4726735cf extmod/modbluetooth: Implement config getter for BLE rxbuf size.
Knowing the buffer size can be important, to ensure that valid data will be
received.
2020-02-18 13:37:50 +11:00
Thorsten von Eicken
be92aacba3 docs/develop: Detail how to add symbols to mp_fun_table for native mods. 2020-02-16 00:04:25 +11:00
stijn
5f91933e54 windows: Improve default search path.
The default value for MICROPYPATH used in unix/main.c is
"~/.micropython/lib:/usr/lib/micropython" which has 2 problems when used in
the Windows port:
- it has a ':' as path separator but the port uses ';' so the entire string
  is effectively discarded since it gets interpreted as a single path which
  doesn't exist
- /usr/lib/micropython is not a valid path in a standard Windows
  environment

Override the value with a suitable default.
2020-02-11 13:34:35 +11:00
Peter Hinch
88cbfd791a docs/library: Fix framebuf monochrome 1-bit modes, swapping HLSB/HMSB.
This fix can be demonstrated by the following:

    b = bytearray(32)
    f = framebuf.FrameBuffer(b, 32, 8, framebuf.MONO_HLSB)
    f.pixel(0, 0, 1)
    print('MONO_HLSB', hex(b[0]))

    b = bytearray(32)
    f = framebuf.FrameBuffer(b, 32, 8, framebuf.MONO_HMSB)
    f.pixel(0, 0, 1)
    print('MONO_HMSB', hex(b[0]))

Outcome:

    MONO_HLSB 0x80
    MONO_HMSB 0x1
2020-02-10 23:04:15 +11:00
David Lechner
83439e38fc unix/main: Add command-line -h option for printing help text.
This adds a -h option to print the usage help text and adds a new, shorter
error message that is printed when invalid arguments are given.  This
behaviour follows CPython (and other tools) more closely.
2020-02-04 17:54:31 +11:00
David Lechner
c8d2f7838f docs/unix: Add a new new quickref page for the UNIX port.
This adds a new quickstart page for the UNIX port that documents the
command line options and environment variables.
2020-02-04 17:53:06 +11:00
Jesse Andrews
c4ea4c1810 docs/esp8266: In TCP tutorial, add HTTP response code and content-type.
Show how to send an HTTP response code and content-type.  Without the
response code Safari/iOS will fail.  Without the content-type Lynx/Links
will fail.
2020-02-03 23:50:09 +11:00
adzierzanowski
a55c17dc69 esp32/modnetwork: Add max_clients kw-arg to WLAN.config for AP setting.
This allows the user to configure the maximum number of clients that are
connected to the access point.  Resolves #5125.
2020-01-22 16:43:25 +11:00
Peter Hinch
59746ac14a docs/library/uos.rst: Improve block devices section, and ioctl ret vals. 2020-01-22 16:37:31 +11:00
Jason Neal
7ef2f65114 docs/library: Add / to indicate positional-only args in library docs.
Removes the confusion of positional-only arguments which have defaults that
look like keyword arguments.
2020-01-12 13:44:59 +11:00
Thorsten von Eicken
1caede927a docs/library/machine: Document machine.soft_reset() function. 2020-01-12 13:38:27 +11:00
Thorsten von Eicken
bc5c993adf docs/README: Add short paragraph about using readthedocs.
This adds a short paragraph on how to hook readthedocs.org up.  The main
goal is to make people aware of the option, to help with contributing to
the documentation.
2020-01-12 11:45:55 +11:00
Jason Neal
5ef3b6b2d9 docs/library/machine.UART.rst: Detail timeout behaviour of read methods.
Also document existence of "invert" argument to constructor.
2020-01-06 22:50:58 +11:00
Jason Neal
99ed431d28 docs/library/machine.I2C.rst: Use positional-only arguments syntax.
Addresses issue #5196.
2020-01-06 22:25:35 +11:00
Jason Neal
aec88ddf03 docs: More consistent capitalization and use of articles in headings.
See issue #3188.
2020-01-06 22:17:29 +11:00
Damien George
1f37194730 all: Bump version to 1.12. 2019-12-20 16:58:17 +11:00
Matt Trentini
7f235cbee9 docs/esp32: Add quickref and full docs for esp32.RMT class. 2019-12-20 12:25:38 +11:00
Damien George
8449e41818 docs/develop: Add documentation on how to build native .mpy modules. 2019-12-19 17:07:53 +11:00
Damien George
e58c7ce3d6 docs/reference: Add documentation describing use of .mpy files.
Including information about .mpy versioning and how to debug failed imports
of .mpy files.
2019-12-19 17:06:27 +11:00
ketograph
04e7aa0563 docs/esp8266/quickref: Add note that machine.RTC is not fully supported.
See issues #3220 and #3710.
2019-12-17 12:19:27 +11:00
Jim Mussared
f3f7eb48da docs/library/uos.rst: Clarify why the extended interface exists. 2019-12-16 12:45:15 +11:00
Damien George
b310930dba docs/library/uos: Add notes and links about littlefs failures. 2019-12-10 16:58:53 +11:00
Damien George
159388f850 docs/library/ubluetooth: Add note about API being under development. 2019-12-10 16:58:27 +11:00
Damien George
381be9a745 docs/reference/filesystem: Add note and example about using filesystem. 2019-12-09 14:21:22 +11:00
Daniel Mizyrycki
50dc5f10a6 docs/reference/filesystem: Fix typo in block device code example. 2019-12-09 14:13:09 +11:00
Damien George
84958a8fe1 extmod/modbluetooth: Allow setting ringbuf size via BLE.config(rxbuf=).
The size of the event ringbuf was previously fixed to compile-time config
value, but it's necessary to sometimes increase this for applications that
have large characteristic buffers to read, or many events at once.

With this commit the size can be set via BLE.config(rxbuf=512), for
example.  This also resizes the internal event data buffer which sets the
maximum size of incoming data passed to the event handler.
2019-12-05 11:30:35 +11:00
Damien George
7aeafe2ae9 extmod/modbluetooth: Add optional 4th arg to gattc_write for write mode.
This allows the user to explicitly select the behaviour of the write to the
remote peripheral.  This is needed for peripherals that have
characteristics with WRITE_NO_RESPONSE set (instead of normal WRITE).  The
function's signature is now:

    BLE.gattc_write(conn_handle, value_handle, data, mode=0)

mode=0 means write without response, while mode=1 means write with
response.  The latter was the original behaviour so this commit is a change
in behaviour of this method, and one should specify 1 as the 4th argument
to get back the old behaviour.

In the future there could be more modes supported, such as long writes.
2019-12-04 23:23:07 +11:00
Jim Mussared
9a849cc7ca docs: Add littlefs docs and a filesystem tutorial. 2019-12-04 23:18:23 +11:00
Jim Mussared
f2650be844 docs/library: Add docs for pyb.Flash class. 2019-12-04 23:18:17 +11:00
Jim Mussared
d7dbd267e7 docs/reference: Add docs describing use of pyboard.py. 2019-12-04 23:18:03 +11:00
Damien George
90c524c114 docs: Remove spaces on lines that are empty. 2019-12-04 15:02:54 +11:00
Jim Mussared
e873d352ad extmod/modbluetooth: Simplify management of pre-allocated event data.
The address, adv payload and uuid fields of the event are pre-allocated by
modbluetooth, and reused in the IRQ handler.  Simplify this and move all
storage into the `mp_obj_bluetooth_ble_t` instance.

This now allows users to hold on to a reference to these instances without
crashes, although they may be overwritten by future events.  If they want
to hold onto the values longer term they need to copy them.
2019-11-25 17:32:10 +11:00
Damien George
d667bc642f docs/library/ubluetooth: Fix name and link to FLAG_xxx constants. 2019-11-12 15:15:12 +11:00
Jim Mussared
d30b75e8f2 docs/library/machine.SDCard.rst: Fix various typos. 2019-11-07 14:47:11 +11:00
Jim Mussared
59850c0b83 docs/templates/topindex.html: Replace usage of deprecated defindex.html.
defindex.html (used by topindex.html) is deprecated, but topindex.html was
already identical other than setting the title, so just inherit directly
from layout.html.
2019-11-07 14:45:55 +11:00
Jim Mussared
1295146a6f docs/conf.py: Fix path to favicon.ico. 2019-11-07 14:45:34 +11:00
Jim Mussared
ca3d4c84e4 docs/library/ubluetooth: Add docs for gatts_set_buffer. 2019-10-29 23:11:11 +11:00
Damien George
7a24b7f091 docs/library: Add documentation for extended block device protocol. 2019-10-29 14:17:29 +11:00
Mike Wadsten
f69ef97f24 docs: Move ubluetooth under "MicroPython-specific libraries".
CPython does not have a bluetooth module,
so it is not appropriate to call ubluetooth
a Python standard library or micro-library.
2019-10-23 11:43:01 -05:00
Jim Mussared
19e87742c4 docs/library/bluetooth: Rename to "ubluetooth". 2019-10-22 21:58:05 +11:00
Damien George
a2eea57b1d docs/library: Rename "array" module to "uarray". 2019-10-22 16:40:58 +11:00
Volodymyr Shymanskyy
615d6b3c66 docs/wipy/tutorial: Link Blynk examples to the official library. 2019-10-16 14:20:31 +11:00
Mike Causer
a2c4cb484d docs: Fix spelling in various parts of the docs. 2019-10-16 14:08:28 +11:00
Mike Causer
5a8f392f09 docs/esp8266: Add ntptime usage to esp8266 quickref. 2019-10-16 14:08:13 +11:00
Peter Hinch
c0b3419261 docs/library: Clarify relation between machine and port-specific mods. 2019-10-16 14:03:44 +11:00
Thiago Paes
5463ab6df6 docs/esp8266/tutorial: Make http_get sample function self contained. 2019-10-16 13:52:04 +11:00
Damien George
d1ed73ca8f docs/library/bluetooth.rst: Fix typo in HR/UART services example. 2019-10-16 11:23:54 +11:00
Jim Mussared
36502bdfdc extmod/modbluetooth: Make gap_disconnect not raise when disconnected.
Previously it raised OSError(MP_ENOTCONN) if the conn_handle was already
disconnected.  Now it returns True/False.
2019-10-15 17:22:53 +11:00
Jim Mussared
ea315d7d58 docs/library/bluetooth.rst: Explain how to increase char buffer size. 2019-10-15 17:22:45 +11:00
Jim Mussared
62e3a966fb docs/library/bluetooth.rst: Clarify gap_advertise adv_data behavior.
Make it clear that the previous adv_data will be reused if it's not set.
And some minor other improvements.
2019-10-15 17:21:32 +11:00
Jim Mussared
a93495b66d docs/reference/glossary.rst: Add new terms and reduce complexity of old. 2019-10-15 16:36:02 +11:00
Jim Mussared
dc82bee298 docs/library/bluetooth: Add initial BLE documentation. 2019-10-11 14:03:01 +11:00
Jim Mussared
4ddd46e6cf docs/develop/qstr.rst: Add documentation for string interning. 2019-10-04 17:13:13 +10:00
Damien George
78e0e76b4f docs/library/pyb.USB_VCP.rst: Add info about id and flow params. 2019-09-26 14:00:21 +10:00
Damien George
cb84e22ac6 docs/library/pyb.rst: Update pyb.usb_mode() to mention VCP+MSC+HID. 2019-09-11 15:17:38 +10:00
Damien George
50636e5296 docs/library/pyb.rst: Update docs for pyb.usb_mode() function. 2019-09-10 13:22:35 +10:00
Damien George
e509da22df docs/library: Specify new machine.ADC class.
This initial specification is only for the ADC constructor and read_u16()
method.
2019-09-04 15:35:09 +10:00
Damien George
8a237237a3 docs: Rename machine.ADC docs to machine.ADCWiPy.
To signify that this ADC documentation is specific to the WiPy, and to make
way for a standardised ADC documentation.
2019-09-04 15:05:03 +10:00
Jim Mussared
74fe841449 docs/library/pyb.DAC.rst: Correct frequency for triangle mode output.
Also correct comments in related code.
2019-09-03 23:25:45 +10:00
Paul m. p. P
afc8596c15 docs/reference/speed_python: Add missing self to var caching example. 2019-08-28 12:55:41 +10:00
Damien George
05eb897d06 esp32: Add esp32.Partition class to expose partition and OTA funcs.
Partitions are exposed as a standard MicroPython block device.
2019-08-20 16:49:18 +10:00
Peter Hinch
3a679eaf00 docs/reference/speed_python: Update that read-only buffers are accepted.
As allowed by recent cd35dd9d9a
2019-08-19 16:39:30 +10:00
Vicki Lowe
afd10a4531 docs/pyboard: Emphasize the instructions for making a USB mouse.
It wasn't clear why that element was `10` instead of `0`.  Also bumped the
`10` to `100` to make the mouse movement more obvious.
2019-08-15 18:21:10 +10:00
Tom McDermott
d5a7741606 docs/library: Document that sys.version_info returns a 3-tuple only.
See issue #4970.
2019-08-15 18:12:22 +10:00
Vicki Lowe
6592a30f4b docs/pyboard: Clarify initial files on pyboard and fix up formatting. 2019-08-15 18:01:28 +10:00
Vicki Lowe
57476a3c37 docs/pyboard: Update name of mounted volume to match code. 2019-08-15 17:50:06 +10:00
Damien George
ed9c0185d8 docs/library/sys: Add documentation for sys.atexit function. 2019-08-15 17:42:38 +10:00
Arsenijs
00e7fe8ab1 docs/library/framebuf: Add missing module reference in example code. 2019-07-31 23:45:24 +10:00
Damien George
a29334761d esp32: Add support for hardware I2C. 2019-07-19 16:31:25 +10:00
Jim Mussared
bc66fe9064 py/scheduler: Rename sched_stack to sched_queue.
Behaviour was changed from stack to queue in
8977c7eb58, and this updates variable names
to match.  Also updates other references (docs, error messages).
2019-07-17 16:09:32 +10:00
Nicko van Someren
1a51fc9ddf esp32/machine_sdcard: Fix bug in SPI slot number selection.
And fix minor typo in docs when referring to SDCard class.
2019-06-17 12:36:22 +10:00
Nicko van Someren
6077d17150 docs/machine: Add initial docs for new machine.SDCard class. 2019-06-03 00:42:24 +10:00
Damien George
6f75c4f3cd all: Bump version to 1.11. 2019-05-29 16:38:10 +10:00
Damien George
e5e472198c docs/pyboard/quickref: Refer to new machine.I2C instead of old pyb.I2C.
On stm32 boards, machine.I2C is now preferred over pyb.I2C.
2019-05-20 15:46:01 +10:00
Damien George
8bec0e869d docs/machine.I2C: Add writevto method to write a vector of byte bufs.
This allows to efficiently send to an I2C slave data that is made up of
more than one buffer.  Instead of needing to allocate temporary memory to
combine buffers together this new method allows to pass in a tuple or list
of buffers.  The name is based on the POSIX function writev() which has
similar intentions and signature.

The reasons for taking this approach (compared to having an interface with
separate start/write/stop methods) are:
- It's a backwards compatible extension.
- It's convenient for the user.
- It's efficient because there is only one Python call, then the C code can
  do everything in one go.
- It's efficient on the I2C bus because the implementation can do
  everything in one go without pauses between blocks of bytes.
- It should be possible to implement this extension in all ports, for
  hardware and software I2C.

Further discussion is found in issue #3482, PR #4020 and PR #4763.
2019-05-20 14:51:56 +10:00
Nicko van Someren
f812394c33 docs/esp32: Correct quickref for ESP32 hardware SPI with non-default IO. 2019-05-10 15:56:13 +10:00
Damien George
34942d0a72 stm32/machine_uart: Change default UART timeout to 0, for non blocking.
It's more common to need non-blocking behaviour when reading from a UART,
rather than having a large timeout like 1000ms (the original behaviour).
With a large timeout it's 1) likely that the function will read forever if
characters keep trickling it; or 2) the function will unnecessarily wait
when characters come sporadically, eg at a REPL prompt.
2019-05-07 13:56:42 +10:00
Mike Causer
6323cbda4f docs/esp8266: Add tutorial for APA102 LEDs. 2019-05-07 11:45:10 +10:00
Yonatan Goldschmidt
ef9843653b extmod/moducryptolib: Add AES-CTR support.
Selectable at compile time via MICROPY_PY_UCRYPTOLIB_CTR.  Disabled by
default.
2019-05-06 18:09:48 +10:00
Daniel O'Connor
d4e182039f docs/cmodules: Note the various ways MODULE_EXAMPLE_ENABLED can be set. 2019-04-18 11:59:43 +10:00
Daniel O'Connor
fd58136d6b docs/cmodules: Fix example to globally define MODULE_EXAMPLE_ENABLED.
MODULE_EXAMPLE_ENABLED must be globally defined for the module to be seen
and referenced by all parts of the code.
2019-04-15 11:56:22 +10:00
Damien George
0fb15fc3f4 docs/develop: Remove paragraph that was copied in error from other doc. 2019-03-29 11:50:39 +11:00
spacemanspiff2007
95b6330403 docs/esp32: Add example for pin isolation in combination with deepsleep. 2019-03-28 15:25:41 +11:00
Damien George
28c2873d99 docs/esp32: Add a note to quickref about use of Pin.PULL_HOLD. 2019-03-14 07:38:50 +11:00
Damien George
6fa830bfd8 docs/library/machine.Pin: Add PULL_HOLD constant to possible pin pulls.
As already mentioned in the docs, not all constants may be available on all
ports, so this is optional to implement.
2019-03-14 07:29:04 +11:00
Martin Fischer
912e957512 docs/develop: Fix typos in C-module example for example_add_ints. 2019-03-13 12:54:01 +11:00
johnthagen
ea95bdc1ca docs/pyboard: Make pyboard v1.1 pinout the default shown in quickref. 2019-03-13 12:37:35 +11:00
johnthagen
d390ad9053 docs/pyboard: Add link to pyboard v1.1 schematic and layout PDF. 2019-03-13 12:33:02 +11:00
Andrew Leech
89ff506513 py: Update and rework build system for including external C modules.
How to use this feature is documented in docs/develop/cmodules.rst.
2019-03-08 22:58:42 +11:00
Ayke van Laethem
2e516074da py: Implement a module system for external, user C modules.
This system makes it a lot easier to include external libraries as static,
native modules in MicroPython.  Simply pass USER_C_MODULES (like
FROZEN_MPY_DIR) as a make parameter.
2019-03-08 22:49:00 +11:00
Yonatan Goldschmidt
9521399044 docs/uos: Document extra requirements on stream objs passed to dupterm.
This is only correct for the extmod/uos_dupterm.c implementation however,
as e.g cc3200 implementation does the mp_load_method() itself, and anyway
requires `read` instead of `readinto`.
2019-02-26 01:12:37 +11:00
Mike Causer
812969d615 all: Change PYB message prefix to MPY.
Replaces "PYB: soft reboot" with "MPY: soft reboot", etc.

Having a consistent prefix across ports reduces the difference between
ports, which is a general goal.  And this change won't break pyboard.py
because that tool only looks for "soft reboot".
2019-02-12 15:18:33 +11:00
Yonatan Goldschmidt
a0d60c574a docs/ure: Fix match.group signature to indicate index param is required. 2019-02-08 17:06:19 +11:00
Damien George
4dfcc255d5 docs: Convert all cases of machine.sleep to machine.lightsleep. 2019-01-30 14:15:51 +11:00
Damien George
b16146d189 docs/machine: Change sleep to lightsleep and add timeout arguments.
The machine.sleep() function can be misleading because it clashes with
time.sleep() which has quite different semantics.  So change it to
machine.lightsleep() which shows that it is closer in behaviour to
machine.deepsleep().

Also, add an optional argument to these two sleep functions to specify a
maximum time to sleep for.  This is a common operation and underlying
hardware usually has a special way of performing this operation.

The existing machine.sleep() function will remain for backwards
compatibility purposes, and it can simply be an alias for
machine.lightsleep() without arguments.  The behaviour will be the same.
2019-01-27 11:12:16 +11:00
Damien George
3e25d611ef all: Bump version to 1.10. 2019-01-26 00:56:48 +11:00
Damien George
acd647100b docs/library: Add documentation for esp32 module. 2019-01-25 12:18:34 +11:00
Matt Trentini
69e72954ad docs: Add initial docs for esp32 port, including quick-ref and general.
With contributions from Oliver Robson (@HowManyOliversAreThere), Sean
Lanigan (@seanlano) and @rprr.
2019-01-25 12:18:34 +11:00
stijn
5064df2074 docs/differences: Clarify the differences are against Python 3.4. 2019-01-11 12:11:02 +11:00
Paul Sokolovsky
169b152f29 docs/ure: Fully describe supported syntax subset, add example. 2018-12-13 01:16:30 +11:00
Damien George
beeeec292b docs/README: Remove references to MICROPY_PORT when building docs.
The docs are now built as one for all ports.
2018-12-11 02:55:22 +11:00
Paul Sokolovsky
42d0a28117 docs/conf.py: Use https for intersphinx link to docs.python.org.
To get rid of warning when building the docs saying there's a redirect from
http: to https:.
2018-10-23 11:47:35 +11:00
Paul Sokolovsky
dd76c8dc0f docs/library/uctypes: Add examples and make general updates.
Examples are added to the beginning of the module docs, similarly to docs
for many other modules.

Improvements to grammar, style, and clarity. Some paragraphs are updated
with better suggestions. A warning added of the effect incorrect usage of
the module may have. Describe the fact that offset range used in one
defined structure is limited.
2018-10-23 11:42:30 +11:00
Dave Hylands
b031b6f4dd docs/pyb.Pin: Minor typo fix to specify Pin in pyb.Pin.cpu. 2018-10-19 17:31:59 +11:00
Paul Sokolovsky
5f7088f84d docs/uio: Document StringIO/BytesIO(alloc_size) constructors. 2018-10-18 12:39:25 +11:00
Peter Hinch
759853f2a1 docs/machine.Pin: Document "hard" argument of Pin.irq method. 2018-10-15 00:17:54 +11:00
Peter Hinch
7de9211b80 docs/machine.Pin: Add note regarding irq handler argument. 2018-10-13 16:25:42 +11:00
Damien George
f5d46a88aa lib/utils/pyexec: Forcefully unlock the heap if locked and REPL active.
Otherwise there is really nothing that can be done, it can't be unlocked by
the user because there is no way to allocate memory to execute the unlock.

See issue #4205 and #4209.
2018-10-13 16:21:08 +11:00
Paul Sokolovsky
d251f26688 docs/uselect: Describe more aspects of poll.register/modify behavior.
E.g., register() can be called again for the same object, while modify()
will raise exception if object was not register()ed before.
2018-10-05 16:57:58 +10:00
Damien George
86819a52fe docs/wipy: Fix links to network.Server, and markup for boot.py. 2018-10-01 14:08:02 +10:00
Damien George
d1adfee251 docs: Remove sphinx_selective_exclude, it's no longer used. 2018-10-01 13:54:32 +10:00
Damien George
b3e013f60e docs: Unify all the ports into one set of documentation.
With this commit there is now only one entry point into the whole
documentation, which describes the general MicroPython language, and then
from there there are links to information about specific platforms/ports.

This commit doesn't change content (almost, it does fix a few internal
links), it just reorganises things.
2018-10-01 13:53:53 +10:00
Damien George
8a84e08dc8 docs/library/network: Make AbstractNIC methods layout correctly. 2018-09-27 17:24:41 +10:00
Damien George
217566b764 docs/library/network: Move specific network classes to their own file.
All concrete network classes are now moved to their own file (eg
network.WLAN.rst) and deconditionalised (remove ..only:: directives).  This
makes the network documentation the same for all ports.  After this change
there are no more "..only::" directives for different ports, and the only
difference among ports is the very front page of the docs.
2018-09-27 17:23:42 +10:00
Peter Hinch
09c5c58a1f docs/library/machine.SPI: Add note about baudrate imprecision. 2018-09-26 15:21:10 +10:00
Damien George
ad4fb62f13 docs/pyboard: Fix to use Sphinx style for internal/external links. 2018-09-20 17:14:13 +10:00
Peter Hinch
927a5d1dfd docs/library/pyb: Add deprecation warning for mount and old block proto.
pyb.mount(None, mountpoint) functionality is also removed and replaced by
uos.umount.
2018-09-20 16:31:36 +10:00
Damien George
b18fa1e606 docs/library/machine.UART.rst: Specify optional txbuf and rxbuf args.
If a port would like to expose the configuration of transmit and/or receive
buffers then it can use these arguments.
2018-08-14 15:21:54 +10:00
Peter Hinch
163bacd1e8 docs/library/machine.I2C.rst: Clarify availability of primitive I2C ops. 2018-08-04 15:53:12 +10:00
Damien George
d8e0320485 docs: Move WiPy specific Timer class to separate doc file.
The WiPy machine.Timer class is very different to the esp8266 and esp32
implementations which are better candidates for a general Timer class.  By
moving the WiPy Timer docs to a completely separate file, under a new name
machine.TimerWiPy, it gives a clean slate to define and write the docs for
a better, general machine.Timer class.  This is with the aim of eventually
providing documentation that does not have conditional parts to it,
conditional on the port.

While the new docs are being defined it makes sense to keep the WiPy docs,
since they describe its behaviour.  Once the new Timer behaviour is defined
the WiPy code can be changed to match it, and then the TimerWiPy docs would
be removed.
2018-07-31 23:40:06 +10:00
Damien George
81e320aecc docs/library/machine: Remove conditionals in machine class index.
The machine module should be standard across all ports so should have the
same set of classes in the docs.  A special warning is added to the top of
the machine.SD class because it is not standardised and only available on
the cc3200 port.
2018-07-20 15:58:18 +10:00
Damien George
0ab8428995 docs/reference/index: Remove conditional for inline asm docs.
The heading of this section makes it clear it is for Thumb-2 architectures
only.
2018-07-20 15:51:06 +10:00
Damien George
5b1ca66668 docs/library/index: Add hint about using help('modules') for discovery. 2018-07-20 15:47:42 +10:00
Damien George
84d5dd46fe docs/library/index: Remove all conditionals from library index.
It's fair to just provide a link to all available modules, regardless of
the port.  Most of the existing ports (unix, stm32, esp8266, esp32) share
most of the same set of modules anyway, so no need to maintain separate
lists for them.  And there's a big discussion at the start of this index
about modules not being available on a given port.

For port-specific modules, they can also be listed unconditionally because
they have headings that explicitly state they are only available on certain
ports.
2018-07-20 15:34:22 +10:00
Damien George
3e0d587a49 docs/library/machine: Remove conditional docs for rng function.
And instead list its availability explicitly.
2018-07-18 16:28:30 +10:00
Damien George
163cc66a0b docs/library/machine: Remove conditional docs for wake_reason function.
And instead list its availability explicitly.
2018-07-18 16:23:34 +10:00
Damien George
4cc65e22d4 docs/library/machine.UART: Remove conditional docs for wipy port.
The UART.init() method is now included unconditionally and its wording
adjusted to better describe ports other than the cc3200.

UART.irq() is also included unconditionally, but this is currently only
available on the WiPy target.
2018-07-18 16:20:53 +10:00
Damien George
164377f806 docs/library/pyb.DAC: Fix typo in markup to balance quotes. 2018-07-18 15:52:48 +10:00
Damien George
805fd0cfe6 docs/library: Remove "only" directive from all pyb module docs.
By virtue of its name, the pyb module would only be available on a pyboard
and so does not need to have conditional "only" directives throughout its
documentation.

These conditionals were added mostly in
cfcf47c064 in the initial development of the
cc3200 port, which had the pyb module before it switched to the machine
module.  And wipy only conditionals were removed from the pyb module
documentation in 4542643025, so there's no
need to retain any more conditionals.
2018-07-18 15:47:44 +10:00
Damien George
2cff340357 docs/pyboard: For latex build, use smaller quickref jpg, and no gifs.
The latexpdf target needs images that fit on the page, and does not support
gifs.
2018-07-10 12:45:52 +10:00
Damien George
41226e9a18 docs/ure: Document some more supported regex operators. 2018-07-02 14:55:05 +10:00
Damien George
4727bd1db8 docs/ure: Document sub(), groups(), span(), start() and end(). 2018-07-02 14:55:05 +10:00
Damien George
ab02abe96d docs/uos: Make it clear that block device block_num param is an index. 2018-06-28 13:25:10 +10:00
Yonatan Goldschmidt
473fe45da2 extmod/moducryptolib: Optionally export MODE_* constants to Python.
Allow including crypto consts based on compilation settings.  Disabled by
default to reduce code size; if one wants extra code readability, can
enable them.
2018-06-27 16:29:26 +10:00
Damien George
11a7a70a6f docs/usocket: Minor fixes to grammar of getaddrinfo. 2018-06-27 15:18:46 +10:00
Paul Sokolovsky
2e3468a68c docs/usocket: getaddrinfo: Describe af/type/proto optional params.
These can be optionally specified, but all ports are expected to be able to
accept them, at the very least ignore, though handling of "type" param
(SOCK_STREAM vs SOCK_DGRAM) is recommended.
2018-06-27 14:57:19 +10:00
Paul Sokolovsky
12fde67a25 docs/ucryptolib: Add docs for new ucryptolib module. 2018-06-27 14:57:11 +10:00
Damien George
b9ec6037ed docs/library: Add documentation for ucollections.deque. 2018-06-26 14:29:22 +10:00
jcea
5731e535dd docs/esp8266: Fix minor typo in "certificates". 2018-06-25 17:36:28 +10:00
Damien George
6c955932f3 stm32/rtc: Don't try to set SubSeconds value on RTC.
The hardware doesn't allow it, instead the value is reset to 255 upon
setting the other calendar/time values.
2018-05-21 14:08:37 +10:00
Damien George
421b84af99 docs: Bump version to 1.9.4. 2018-05-11 16:39:59 +10:00
Damien George
c7818032b1 docs/library: Add ussl module to library index for unix port. 2018-04-26 17:14:51 +10:00
Damien George
c24b0a7f2b docs/library/pyb.ADC: Fix typo of "prarmeter". 2018-04-20 15:54:09 +10:00
Peter Hinch
0600645944 docs/library/pyb.ADC: Remove outdated ADCAll code example. 2018-04-20 15:52:28 +10:00
Damien George
b30e0d2f26 stm32/dac: Add buffering argument to constructor and init() method.
This can be used to select the output buffer behaviour of the DAC.  The
default values are chosen to retain backwards compatibility with existing
behaviour.

Thanks to @peterhinch for the initial idea to add this feature.
2018-04-11 14:22:21 +10:00
Damien George
aebd9701a7 stm32/adc: Optimise read_timed_multi() by caching buffer pointers. 2018-04-11 14:09:09 +10:00
Peter Hinch
4f40fa5cf4 stm32/adc: Add read_timed_multi() static method, with docs and tests. 2018-04-11 13:36:17 +10:00
T S
8f11d0b532 docs/library/pyb.ADC.rst: Document new features for ADCAll. 2018-04-10 13:06:26 +10:00
Damien George
0abbafd424 stm32/can: Add "list" param to CAN.recv() to receive data inplace.
This API matches (as close as possible) how other pyb classes allow inplace
operations, such as pyb.SPI.recv(buf).
2018-03-19 15:12:24 +11:00
Damien George
b7d576d69a docs/library/pyb.CAN: Clean up documentation of data constants. 2018-03-16 18:29:43 +11:00
Damien George
a25e6c6b65 stm32/can: Add CAN.info() method to retrieve error and tx/rx buf info. 2018-03-16 18:28:35 +11:00
Damien George
d7e67fb1b4 stm32/can: Add CAN.state() method to get the state of the controller.
This is useful for monitoring errors on the bus and knowing when a restart
is needed.
2018-03-16 17:10:41 +11:00
Damien George
1272c3c65d stm32/can: Add CAN.restart() method so controller can leave bus-off. 2018-03-15 17:29:30 +11:00
Damien George
823ca03008 stm32/can: Add "auto_restart" option to constructor and init() method. 2018-03-15 17:17:33 +11:00
Damien George
d91a1989f5 docs/library/pyb.CAN: Update markup to use latest doc conventions. 2018-03-15 16:30:05 +11:00
Damien George
0db49c37a4 docs: Fix some references and RST markup to eliminate Sphinx warnings. 2018-03-15 15:50:51 +11:00
Tom Collins
4d3a92c67c extmod/vfs_fat: Add file size as 4th element of uos.ilistdir tuple. 2018-03-12 12:26:36 +11:00
Damien George
9cef2b03a7 docs/reference/repl.rst: Fix some minor errors in the REPL tutorial. 2018-03-09 16:14:58 +11:00
Damien George
8359210e71 docs/library/uos: Document mount, umount, VfsFat and block devices. 2018-03-07 14:50:38 +11:00
Damien George
63b003d523 docs/library/uos: Create sections for distinct parts and document uname. 2018-03-07 14:49:25 +11:00
Damien George
a5fb699d87 docs/library/micropython: Describe optimisation levels for opt_level(). 2018-03-05 19:10:45 +11:00
Damien George
6e09320b4c docs/library/usocket: Make xref to uerrno explicitly a module reference. 2018-03-05 19:07:39 +11:00
Damien George
c5fe610ba1 esp8266/modnetwork: Implement WLAN.status('rssi') for STA interface.
This will return the RSSI of the AP that the STA is connected to.
2018-02-26 16:41:13 +11:00
Damien George
e05fca4ef3 docs/library/ujson: Document dump() and load() functions. 2018-02-15 11:37:48 +11:00
Damien George
9e8b7b1b63 docs/library/ujson: Update to conform with docs conventions.
The formatting of exception objects is done as per CPython conventions, eg:

    :exc:`TypeError`
2018-02-15 11:31:34 +11:00
Olivier Ortigues
298b325f3e docs/esp8266: Add a note concerning GPIO16 pull capabilities. 2018-02-15 11:15:12 +11:00
Olivier Ortigues
d072573226 docs/esp8266: Update PWM doc regarding clipping of min/max values. 2018-02-15 11:14:34 +11:00
Damien George
e708e87139 docs/library/pyb.rst: Add note about availability of USB MSC-only mode. 2018-02-01 15:52:49 +11:00
Paul Sokolovsky
5de064fbd0 docs/library/index: Elaborate uPy libraries intro. 2017-12-23 21:21:08 +02:00
Paul Sokolovsky
e37ccfe59b docs/packages: Explicitly recommend usage of setuptools instead of distutils. 2017-12-16 10:42:30 +02:00
Paul Sokolovsky
9251f1395e docs/packages: Use "install_dir/" in examples. 2017-12-16 10:37:36 +02:00
Paul Sokolovsky
02d2a0fb3a docs/conf: Reference CPython 3.5 docs.
CPython 3.6 contains some backward incompatible changes, and further
version(s) are expected to have more. As we anyway implemente 3.4 with
some features of 3.5, refer to 3.5 docs to avoid confusion.

Examples of 3.6 backward incompatibilities:

https://docs.python.org/3.6/library/json.html#json.dump
https://docs.python.org/3.6/library/json.html#json.load

> Changed in version 3.6: All optional parameters are now keyword-only.

https://docs.python.org/3.6/library/functions.html#type

> Changed in version 3.6: Subclasses of type which don’t override
> type.__new__ may no longer use the one-argument form to get the
> type of an object.

https://docs.python.org/3.6/library/collections.html#collections.namedtuple

> Changed in version 3.6: The verbose and rename parameters became
> keyword-only arguments.
2017-12-16 01:22:46 +02:00
Paul Sokolovsky
448d93a04a docs/glossary: micropython-lib: Clarify wording. 2017-12-15 00:11:02 +02:00
Paul Sokolovsky
bf73ee114f docs/packages: mpy_bin2res no longer required to create resources.
Everything happens automagically with overridden "sdist" from
sdist_upip.py.
2017-12-14 18:28:10 +02:00
Damien George
46b35356e1 extmod/modframebuf: Add 8-bit greyscale format (GS8). 2017-12-14 17:36:13 +11:00
Petr Viktorin
34247465c3 extmod/modframebuf: Add 2-bit color format (GS2_HMSB).
This format is used in 2-color LED matrices and in e-ink displays like
SSD1606.
2017-12-14 17:13:02 +11:00
Ryan Finnie
1e2b78111b docs/esp8266/tutorial: Fix typo, change -> changed. 2017-12-13 17:30:02 +11:00
Paul Sokolovsky
54cd6e3e4b docs/packages: Add quick "Creating distribution packages" section.
Needs more details.
2017-12-13 00:12:37 +02:00
Paul Sokolovsky
c60fc670ea docs/reference/packages: Add chapter on distribution packages and deployment.
A long overdue overview of preparing packages, installing them with upip,
freezing, dealing with resources. Initial version, more iterations required.
2017-12-11 00:08:41 +02:00
Paul Sokolovsky
ca8034d6b8 docs/glossary: Clarify wording for "baremetal". 2017-12-06 00:08:24 +02:00
Paul Sokolovsky
3ff7040c8a docs/library: Add xrefs to "stream" dictionary entry for many modules. 2017-12-04 18:36:20 +02:00
Paul Sokolovsky
155ec21e49 docs/glossary: Describe string interning. 2017-12-04 01:01:03 +02:00
Paul Sokolovsky
8175f1608e docs/glossary: Describe "stream" term. 2017-12-03 18:56:18 +02:00
Paul Sokolovsky
140acc9a32 docs/uerrno: Fix xref-vs-code markup. 2017-12-03 15:50:37 +02:00
Paul Sokolovsky
4fee35a32c docs/glossary: Describe the callee-owned tuple concept. 2017-12-03 15:08:39 +02:00
Paul Sokolovsky
cb9da2279b docs/uselect: ipoll: Fix grammar/wording of one-shot flag description. 2017-11-30 20:32:49 +02:00
Paul Carver
7d25a19220 docs/library/utime: Fix incorrect example with ticks_diff args order.
The parameter order in the example for ticks_diff was incorrect.  If it's
"too early" that means that scheduled time is greater than current time and
if it's "running late" then scheduled time would be less than current time.
2017-11-30 14:56:08 +11:00
Paul Sokolovsky
f59c6b48ae docs/uselect: Describe POLLHUP/POLLERR semantics in more details.
Per POSIX, http://pubs.opengroup.org/onlinepubs/9699919799/functions/poll.html
these flags aren't valid in the input eventmask. Instead, they can be
returned in unsolicited manner in the output eventmask at any time.
2017-11-26 09:58:19 +02:00
Paul Sokolovsky
50cffcfe2c docs/uctypes: Tweak descriptor reference to hopefully be easier to follow.
Put offset first in OR expressions, and use "offset" var instead of
hardcoded numbers. Hopefully, this will make it more self-describing
and show patterns better.
2017-11-25 09:02:08 +02:00
Paul Sokolovsky
c23cc4cc81 docs/uctypes: Typo/article fixes. 2017-11-25 09:01:11 +02:00
Paul Sokolovsky
067bf849d2 docs/uselect: poll: Explicitly specify that no-timeout value is -1. 2017-11-23 18:03:32 +02:00
Peter Hinch
ec1e9a10a7 docs: Add notes on heap allocation caused by bound method refs. 2017-11-23 11:35:58 +11:00
Damien George
31550a52e4 docs/library/network: Enhance AbstractNIC.status to take an argument.
The argument is optional and if given should be a string naming the
status variable to query.
2017-11-16 14:48:04 +11:00
Paul Sokolovsky
579b86451d docs/_thread: Add a placeholder docs for _thread module.
Doesn't list specific API calls yet, the purpose is to let user know that
the module exists.
2017-11-10 00:09:43 +02:00
Paul Sokolovsky
5b1b80a8db docs/ure: Emphasize not supported features more.
Plus, additional descriptions/formatting.
2017-11-08 00:24:39 +02:00
Paul Sokolovsky
ad5a6f5917 docs/ure: Add flags arg to ure.compile(), mention that ure.DEBUG is optional. 2017-11-04 00:26:31 +02:00
Paul Sokolovsky
1742ab2653 docs/esp8266/general: Minor grammar fixes. 2017-11-02 00:38:58 +02:00
Paul Sokolovsky
58c785632f docs/esp8266/general: TLS limitations: Mention also "ussl" module limitations. 2017-11-01 08:59:42 +02:00
Damien George
fe45d78b1e docs: Bump version to 1.9.3. 2017-11-01 11:19:56 +11:00
Paul Sokolovsky
80e3f07e7f docs/ure: Add "|" (alternative) to the list of supported operators. 2017-10-31 14:46:08 +02:00
Paul Sokolovsky
b81fbf938f docs/usocket: Document that settimeout() isn't supported by all ports.
And describe an alternative of using uselect.poll().
2017-10-31 00:28:28 +02:00
Paul Sokolovsky
4dd523adbb docs/esp8266/general: Add section on TLS limitations. 2017-10-30 19:50:57 +02:00
Paul Sokolovsky
6fb093282b docs/ussl: Fix module name refs and use "MicroPython port" term. 2017-10-30 18:03:54 +02:00
Yuval Langer
05a2bb888f docs/reference/isr_rules: Minor typo correction. 2017-10-30 13:29:00 +11:00
Joar Wandborg
b9923262db docs/library/network: Add dhcp_hostname parameter
I have not actually tested this, going by information available in https://forum.micropython.org/viewtopic.php?t=2584
2017-10-27 11:04:52 +03:00
Paul Sokolovsky
a33fca99a1 docs/usocket: Document inet_ntop(), inet_pton(). 2017-10-27 00:27:27 +03:00
Paul Sokolovsky
d1cd533134 docs/usocket: Elaborate descriptions.
Use the "usocket" module name everywhere. Use "MicroPython port"
terminology. Suggest to avoid using IPPROTO_* constants in socket()
call.
2017-10-26 14:20:37 +03:00