Merge remote-tracking branch 'origin/master' into korean_trans

This commit is contained in:
Jeff Epler 2019-11-17 20:10:50 -06:00
commit 25273f9e87
1597 changed files with 41081 additions and 222983 deletions

207
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,207 @@
name: Build CI
on:
push:
pull_request:
release:
types: [published]
check_suite:
types: [rerequested]
jobs:
test:
runs-on: ubuntu-16.04
steps:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- name: Set up Python 3.5
uses: actions/setup-python@v1
with:
python-version: 3.5
- name: Install deps
run: |
sudo apt-get install -y gettext librsvg2-bin
pip install requests sh click setuptools cpp-coveralls Sphinx sphinx-rtd-theme recommonmark sphinxcontrib-svg2pdfconverter polib pyyaml
- name: Versions
run: |
gcc --version
python3 --version
- uses: actions/checkout@v1
with:
submodules: true
- name: CircuitPython version
run: git describe --dirty --always --tags
- name: Build mpy-cross
run: make -C mpy-cross -j2
- name: Build unix port
run: |
make -C ports/unix deplibs -j2
make -C ports/unix -j2
make -C ports/unix coverage -j2
- name: Test all
run: MICROPY_CPYTHON3=python3.5 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1
working-directory: tests
- name: Print failure info
run: |
for exp in *.exp;
do testbase=$(basename $exp .exp);
echo -e "\nFAILURE $testbase";
diff -u $testbase.exp $testbase.out;
done
working-directory: tests
if: failure()
- name: Native Tests
run: MICROPY_CPYTHON3=python3.5 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1 --emit native
working-directory: tests
- name: mpy Tests
run: MICROPY_CPYTHON3=python3.5 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1 --via-mpy -d basics float
working-directory: tests
- name: Docs
run: sphinx-build -E -W -b html . _build/html
- name: Translations
run: make check-translate
- name: New boards check
run: python3 -u ci_new_boards_check.py
working-directory: tools
build-arm:
runs-on: ubuntu-16.04
needs: test
strategy:
fail-fast: false
matrix:
board:
- "arduino_mkr1300"
- "arduino_mkrzero"
- "arduino_nano_33_ble"
- "arduino_zero"
- "bast_pro_mini_m0"
- "capablerobot_usbhub"
- "catwan_usbstick"
- "circuitplayground_bluefruit"
- "circuitplayground_express"
- "circuitplayground_express_crickit"
- "circuitplayground_express_displayio"
- "cp32-m4"
- "datalore_ip_m4"
- "datum_distance"
- "datum_imu"
- "datum_light"
- "datum_weather"
- "electronut_labs_blip"
- "electronut_labs_papyr"
- "escornabot_makech"
- "feather_m0_adalogger"
- "feather_m0_basic"
- "feather_m0_express"
- "feather_m0_express_crickit"
- "feather_m0_rfm69"
- "feather_m0_rfm9x"
- "feather_m0_supersized"
- "feather_m4_express"
- "feather_nrf52840_express"
- "feather_radiofruit_zigbee"
- "feather_stm32f405_express"
- "gemma_m0"
- "grandcentral_m4_express"
- "hallowing_m0_express"
- "hallowing_m4_express"
- "itsybitsy_m0_express"
- "itsybitsy_m4_express"
- "itsybitsy_nrf52840_express"
- "kicksat-sprite"
- "makerdiary_nrf52840_mdk"
- "makerdiary_nrf52840_mdk_usb_dongle"
- "meowmeow"
- "metro_m0_express"
- "metro_m4_airlift_lite"
- "metro_m4_express"
- "metro_nrf52840_express"
- "mini_sam_m4"
- "monster_m4sk"
- "particle_argon"
- "particle_boron"
- "particle_xenon"
- "pca10056"
- "pca10059"
- "pewpew10"
- "pewpew_m4"
- "pirkey_m0"
- "pybadge"
- "pybadge_airlift"
- "pyboard_v11"
- "pygamer"
- "pygamer_advance"
- "pyportal"
- "pyportal_titano"
- "pyruler"
- "robohatmm1_m0"
- "robohatmm1_m4"
- "sam32"
- "serpente"
- "snekboard"
- "sparkfun_lumidrive"
- "sparkfun_nrf52840_mini"
- "sparkfun_qwiic_micro_no_flash"
- "sparkfun_qwiic_micro_with_flash"
- "sparkfun_redboard_turbo"
- "sparkfun_samd21_dev"
- "sparkfun_samd21_mini"
- "spresense"
- "stm32f411ve_discovery"
- "stm32f412zg_discovery"
- "stringcar_m0_express"
- "trellis_m4_express"
- "trinket_m0"
- "trinket_m0_haxpress"
- "uchip"
- "ugame10"
- "winterbloom_sol"
steps:
- name: Set up Python 3.5
uses: actions/setup-python@v1
with:
python-version: 3.5
- name: Install deps
run: |
sudo apt-get install -y gettext
pip install requests sh click setuptools awscli
wget https://s3.amazonaws.com/adafruit-circuit-python/gcc-arm-embedded_7-2018q2-1~xenial1_amd64.deb && sudo dpkg -i gcc-arm-embedded*_amd64.deb
- name: Versions
run: |
gcc --version
arm-none-eabi-gcc --version
python3 --version
- uses: actions/checkout@v1
with:
submodules: true
- name: mpy-cross
run: make -C mpy-cross -j2
- name: build
run: python3 -u build_release_files.py
working-directory: tools
env:
BOARDS: ${{ matrix.board }}
- uses: actions/upload-artifact@v1.0.0
with:
name: ${{ matrix.board }}
path: bin/${{ matrix.board }}
- name: Upload to S3
run: aws s3 cp bin/ s3://adafruit-circuit-python/bin/ --recursive --no-progress --region us-east-1
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
if: github.event_name == 'push' || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
- name: Install upload deps
run: |
pip install uritemplate
- name: Upload to Release
run: python3 -u upload_release_files.py
working-directory: tools
env:
UPLOAD_URL: ${{ github.event.release.upload_url }}
ADABOT_GITHUB_ACCESS_TOKEN: ${{ secrets.BLINKA_GITHUB_ACCESS_TOKEN }}
if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested')

37
.github/workflows/create_website_pr.yml vendored Normal file
View File

@ -0,0 +1,37 @@
name: Update CircuitPython.org
on:
release:
types: [published]
jobs:
website:
runs-on: ubuntu-latest
steps:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- name: Set up Python 3.5
uses: actions/setup-python@v1
with:
python-version: 3.5
- name: Install deps
run: |
pip install requests sh click
- name: Versions
run: |
gcc --version
python3 --version
- uses: actions/checkout@v1
with:
submodules: true
- name: CircuitPython version
run: git describe --dirty --always --tags
- name: Website
run: python3 build_board_info.py
working-directory: tools
env:
RELEASE_TAG: ${{ github.event.release.tag_name }}
ADABOT_GITHUB_ACCESS_TOKEN: ${{ secrets.BLINKA_GITHUB_ACCESS_TOKEN }}
if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested')

3
.gitignore vendored
View File

@ -12,6 +12,8 @@
# Packages
############
dist/
*.egg-info
# Logs and Databases
######################
@ -25,6 +27,7 @@
######################
build/
bin/
circuitpython-stubs/
# Test failure outputs
######################

6
.gitmodules vendored
View File

@ -95,3 +95,9 @@
[submodule "frozen/circuitpython-stage"]
path = frozen/circuitpython-stage
url = https://github.com/python-ugame/circuitpython-stage.git
[submodule "ports/stm32f4/stm32f4"]
path = ports/stm32f4/stm32f4
url = https://github.com/adafruit/stm32f4.git
[submodule "ports/cxd56/spresense-exported-sdk"]
path = ports/cxd56/spresense-exported-sdk
url = https://github.com/sonydevworld/spresense-exported-sdk.git

View File

@ -1,135 +0,0 @@
sudo: required
dist: xenial
language: c
compiler:
- gcc
git:
depth: 6
# Each item under 'env' is a separate Travis job to execute.
# They run in separate environments, so each one must take the time
# to clone the repository and submodules; to download and install SDKs,
# pip packages, and so forth. By gathering activities together in optimal
# ways, the "run time" and "total time" of the travis jobs can be minimized.
#
# Since at the time of writing Travis generally starts 5 or 6 jobs, the
# builds have been organized into 5 groups of *approximately* equal durations.
# Additionally, the jobs that need extra SDKs are also organized together.
#
# When adding new boards, take a look on the travis CI page
# https://travis-ci.org/adafruit/circuitpython to which build that installs
# that SDK is shortest and add it there. In the case of major re-organizations,
# just try to make the builds "about equal in run time"
env:
- TRAVIS_TESTS="unix docs translations website" TRAVIS_BOARDS="circuitplayground_express mini_sam_m4 grandcentral_m4_express pca10056 pca10059 feather_nrf52840_express makerdiary_nrf52840_mdk makerdiary_nrf52840_mdk_usb_dongle particle_boron particle_argon particle_xenon sparkfun_nrf52840_mini electronut_labs_papyr" TRAVIS_SDK=arm:nrf
- TRAVIS_BOARDS="metro_m0_express metro_m4_express metro_m4_airlift_lite pirkey_m0 trellis_m4_express trinket_m0 sparkfun_lumidrive sparkfun_redboard_turbo bast_pro_mini_m0" TRAVIS_SDK=arm
- TRAVIS_BOARDS="feather_radiofruit_zigbee gemma_m0 hallowing_m0_express itsybitsy_m0_express itsybitsy_m4_express meowmeow sam32 uchip" TRAVIS_SDK=arm
- TRAVIS_BOARDS="feather_m0_express_crickit feather_m0_rfm69 feather_m0_rfm9x feather_m4_express arduino_zero arduino_mkr1300 arduino_mkrzero pewpew10 kicksat-sprite ugame10 robohatmm1" TRAVIS_SDK=arm
- TRAVIS_BOARDS="circuitplayground_express_crickit feather_m0_adalogger feather_m0_basic feather_m0_express catwan_usbstick pyportal sparkfun_samd21_mini sparkfun_samd21_dev pybadge" TRAVIS_SDK=arm
addons:
artifacts:
paths:
- $(ls -d1 bin/*/*/* | tr "\n" ":")
target_paths: /
deploy:
provider: releases
api_key:
secure: "jdqVFw6itRY4qwQF4ReXo0uaymT+Mob6RhYX0lw8KWFNqBgHnLVuKmKKcGMEuRvBVMPkvxF7bMuOQzSBOunqwlHFse3oMzdWvQODv1zwV7pSRXGwTdIvTPbBjKWxnBG9uSNRf2R5AMflJFUxy2CbtBpgvNzr+4VLREZDrrjEu8C1iTtXGpSm5AQ5iIp2fkMAWD85FP7CQPpkqRoxhSIFZmTdurfYRmenq1OZ/4SeD5TESKcyvqJNzVT9z210B3cg3eAkP6ukvelW4qE2zgIANqUkGqvDEnAvEII9M89kuwhCMAekdfwnUSPrry+g77i1dUZHoRN1+MFj+waYtPaqxdYo2G1sysa6enxlu4jHMR5MfMk9eKHgaNgL3PiyANusYSS44amh8QIiVaX5nw82myZDCpQOZW7YqJKE6WX70Lbs4mS+wIs+ig4KIXO1B0p9kMb0OeVjHRl+KcXsWGRu/ECG/ExpqlVIssSPU407LohMXT2cJ37CY/R/EeK2XSDsQ2M3L3EAGUjCJdBGuwsOJ+2lG+HQpAVu9vAB4kq5jy9Ye+MG+8Xlkly3XZZ5+FkXyYxKnXb26/QVv0e5sIG5OmdJCPYFaH2J1QdKo7CdhEcBtrf6DMPWaimGMldShFqzLjOz3b3qLysRxFF0aGb7ipKPa57vawNzYHoPAViOcXQ="
file_glob: true
file: "$TRAVIS_BUILD_DIR/bin/*/*/*"
skip_cleanup: true
on:
tags: true
notifications:
webhooks:
urls:
- https://rosie-ci.ngrok.io/travis
on_success: always
on_failure: always
on_start: always
on_cancel: always
on_error: always
before_script:
# Expand the git tree back to 4.0.0-alpha.1 and then fetch the latest tag.
- LAST_TAG=`git ls-remote --quiet --tags --sort=version:refname | egrep -o "refs/tags/[0-9]+.*\$" | tail -n 1`
- git fetch --depth 1 origin $LAST_TAG:$LAST_TAG
- git describe --dirty --always --tags
- function var_search () { case "$1" in *$2*) true;; *) false;; esac; }
- sudo dpkg --add-architecture i386
- (! var_search "${TRAVIS_SDK-}" arm || (wget https://s3.amazonaws.com/adafruit-circuit-python/gcc-arm-embedded_7-2018q2-1~xenial1_amd64.deb && sudo dpkg -i gcc-arm-embedded*_amd64.deb))
# For huzzah builds
- (! var_search "${TRAVIS_SDK-}" esp8266 || (wget https://github.com/jepler/esp-open-sdk/releases/download/2018-06-10/xtensa-lx106-elf-standalone.tar.gz && tar -C .. -xaf xtensa-lx106-elf-standalone.tar.gz))
- if var_search "${TRAVIS_SDK-}" esp8266 ; then PATH=$(readlink -f ../xtensa-lx106-elf/bin):$PATH; fi
# For coverage testing (upgrade is used to get latest urllib3 version)
- sudo apt-get install -y python3-pip
- pip3 install --user sh click
- ([[ -z "$TRAVIS_TESTS" ]] || sudo pip install --upgrade cpp-coveralls)
- (! var_search "${TRAVIS_TESTS-}" docs || sudo apt-get install -y librsvg2-bin)
- (! var_search "${TRAVIS_TESTS-}" docs || pip install --user Sphinx sphinx-rtd-theme recommonmark sphinxcontrib-svg2pdfconverter)
- (! var_search "${TRAVIS_TESTS-}" translations || pip3 install --user polib)
# report some good version numbers to the build
- gcc --version
- (! var_search "${TRAVIS_SDK-}" arm || arm-none-eabi-gcc --version)
- (! var_search "${TRAVIS_SDK-}" esp8266 || xtensa-lx106-elf-gcc --version)
- python3 --version
script:
# Build mpy-cross first because other builds depend on it.
- echo 'Building mpy-cross' && echo 'travis_fold:start:mpy-cross'
- make -C mpy-cross -j2 ; S=$? ; echo $S > status ; (exit $S)
- echo 'travis_fold:end:mpy-cross' && tools/print_status.py status
# Use unbuffered output because building all the releases can take a long time.
# Travis will cancel the job if it sees no output for >10 minutes.
- cd tools && python3 -u build_release_files.py
- cd ..
- echo 'Building unix' && echo 'travis_fold:start:unix'
- (! var_search "${TRAVIS_TESTS-}" unix || (make -C ports/unix deplibs -j2 && make -C ports/unix -j2 && make -C ports/unix coverage -j2)) ; S=$? ; echo $S > status ; (exit $S)
- echo 'travis_fold:end:unix' && tools/print_status.py status
# run tests without coverage info
#- (cd tests && MICROPY_CPYTHON3=python3.4 ./run-tests -j1)
#- (cd tests && MICROPY_CPYTHON3=python3.4 ./run-tests -j1 --emit native)
# run tests with coverage info
- echo 'Test all' && echo 'travis_fold:start:test_all'
- (! var_search "${TRAVIS_TESTS-}" unix || (cd tests && MICROPY_CPYTHON3=python3.5 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1)) ; S=$? ; echo $S > status ; (exit $S)
- echo 'travis_fold:end:test_all' && tools/print_status.py status
- echo 'Test threads' && echo 'travis_fold:start:test_threads'
- (! var_search "${TRAVIS_TESTS-}" unix || (cd tests && MICROPY_CPYTHON3=python3.5 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1 -d thread)) ; S=$? ; echo $S > status ; (exit $S)
- echo 'travis_fold:end:test_threads' && tools/print_status.py status
- echo 'Testing with native' && echo 'travis_fold:start:test_native'
- (! var_search "${TRAVIS_TESTS-}" unix || (cd tests && MICROPY_CPYTHON3=python3.5 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1 --emit native)) ; S=$? ; echo $S > status ; (exit $S)
- echo 'travis_fold:end:test_native' && tools/print_status.py status
- (echo 'Testing with mpy' && echo 'travis_fold:start:test_mpy')
- (! var_search "${TRAVIS_TESTS-}" unix || (cd tests && MICROPY_CPYTHON3=python3.5 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1 --via-mpy -d basics float)) ; S=$? ; echo $S > status ; (exit $S)
- echo 'travis_fold:end:test_mpy' && tools/print_status.py status
- (echo 'Building docs' && echo 'travis_fold:start:build_docs')
- (! var_search "${TRAVIS_TESTS-}" docs || sphinx-build -E -W -b html . _build/html) ; S=$? ; echo $S > status ; (exit $S)
- echo 'travis_fold:end:build_docs' && tools/print_status.py status
- (echo 'Building translations' && echo 'travis_fold:start:build_translations')
- (! var_search "${TRAVIS_TESTS-}" translations || make check-translate) ; S=$? ; echo $S > status ; (exit $S)
- echo 'travis_fold:end:build_translations' && tools/print_status.py status
# run coveralls coverage analysis (try to, even if some builds/tests failed)
#- (cd ports/unix && coveralls --root ../.. --build-root . --gcov $(which gcov) --gcov-options '\-o build-coverage/' --include py --include extmod)
- (! var_search "${TRAVIS_TESTS-}" website || (cd tools && python3 build_board_info.py && cd ..))
after_failure:
- (cd tests && for exp in *.exp; do testbase=$(basename $exp .exp); echo -e "\nFAILURE $testbase"; diff -u $testbase.exp $testbase.out; done)

View File

@ -1,4 +1,4 @@
# Makefile for Sphinx documentation
# Top-level Makefile for documentation builds and miscellaneous tasks.
#
# You can set these variables from the command line.
@ -17,6 +17,13 @@ CONFDIR = .
FORCE = -E
VERBOSE = -v
# path to generated type stubs
STUBDIR = circuitpython-stubs
# Run "make VALIDATE= stubs" to avoid validating generated stub files
VALIDATE = -v
# path to pypi source distributions
DISTDIR = dist
# Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the
# full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the
# executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
@ -31,7 +38,7 @@ I18NSPHINXOPTS = $(BASEOPTS)
TRANSLATE_SOURCES = extmod lib main.c ports/atmel-samd ports/nrf py shared-bindings shared-module supervisor
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext stubs
help:
@echo "Please use \`make <target>' where <target> is one of"
@ -60,6 +67,7 @@ help:
clean:
rm -rf $(BUILDDIR)/*
rm -rf $(STUBDIR) $(DISTDIR) *.egg-info
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@ -196,10 +204,18 @@ pseudoxml:
all-source:
locale/circuitpython.pot: all-source
find $(TRANSLATE_SOURCES) -iname "*.c" | xargs xgettext -L C -s --add-location=file --keyword=translate -o circuitpython.pot -p locale
find $(TRANSLATE_SOURCES) -iname "*.c" -print0 | (LC_ALL=C sort -z) | xargs -0 xgettext -L C -s --add-location=file --keyword=translate -o circuitpython.pot -p locale
translate: locale/circuitpython.pot
for po in $(shell ls locale/*.po); do msgmerge -U $$po -s --no-fuzzy-matching --add-location=file locale/circuitpython.pot; done
check-translate: locale/circuitpython.pot $(wildcard locale/*.po)
$(PYTHON) tools/check_translations.py $^
stubs:
rst2pyi $(VALIDATE) shared-bindings/ $(STUBDIR)
python setup.py sdist
update-frozen-libraries:
@echo "Updating all frozen libraries to latest tagged version."
cd frozen; for library in *; do cd $$library; ../../tools/git-checkout-latest-tag.sh; cd ..; done

View File

@ -63,7 +63,7 @@ Contributors who follow the `Code of
Conduct <https://github.com/adafruit/circuitpython/blob/master/CODE_OF_CONDUCT.md>`__
are welcome to submit pull requests and they will be promptly reviewed
by project admins. Please join the
`Discord <https://discord.gg/nBQh6qu>`__ too.
`Discord <https://adafru.it/discord>`__ too.
Branding
------------
@ -78,7 +78,7 @@ If you'd like to use the term "CircuitPython" and Blinka for your product here i
* Your product is supported by the primary
`"adafruit/circuitpython" <https://github.com/adafruit/circuitpython>`_ repo. This way we can
update any custom code as we update the CircuitPython internals.
* Your product is listed on `circuitpython.org <https:/circuitpython.org>`__ (source
* Your product is listed on `circuitpython.org <https://circuitpython.org>`__ (source
`here <https://github.com/adafruit/circuitpython-org/>`_). This is to ensure that a user of your
product can always download the latest version of CircuitPython from the standard place.
* Your product has a user accessible USB plug which appears as a CIRCUITPY drive when plugged in.
@ -115,8 +115,8 @@ Behavior
output is written to ``boot_out.txt``.
- ``code.py`` (or ``main.py``) is run after every reload until it
finishes or is interrupted. After it is done running, the vm and
hardware is reinitialized. **This means you cannot read state from
``code.py`` in the REPL anymore.** CircuitPython's goal for this
hardware is reinitialized. **This means you cannot read state from**
``code.py`` **in the REPL anymore.** CircuitPython's goal for this
change includes reduce confusion about pins and memory being used.
- After ``code.py`` the REPL can be entered by pressing any key. It no
longer shares state with ``code.py`` so it is a fresh vm.
@ -131,9 +131,9 @@ Behavior
``samd.disable_autoreload()``)
- Entering the REPL after the main code is finished requires a key press which enters the REPL and
disables autoreload.
- Main is one of these: ``code.txt``, **``code.py``**, ``main.py``,
- Main is one of these: ``code.txt``, ``code.py``, ``main.py``,
``main.txt``
- Boot is one of these: ``settings.txt``, ``settings.py``, **``boot.py``**,
- Boot is one of these: ``settings.txt``, ``settings.py``, ``boot.py``,
``boot.txt``
API

28
conf.py
View File

@ -13,6 +13,7 @@
# All configuration values have a default; values that are commented out
# serve to show the default.
import json
import sys
import os
@ -24,8 +25,20 @@ from recommonmark.parser import CommonMarkParser
sys.path.insert(0, os.path.abspath('docs'))
sys.path.insert(0, os.path.abspath('.'))
import shared_bindings_matrix
master_doc = 'docs/index'
# Grab the JSON values to use while building the module support matrix
# in 'shared-bindings/index.rst'
#modules_support_matrix = shared_bindings_matrix.support_matrix_excluded_boards()
modules_support_matrix = shared_bindings_matrix.support_matrix_by_board()
html_context = {
'support_matrix': modules_support_matrix
}
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
@ -40,7 +53,9 @@ extensions = [
'sphinxcontrib.rsvgconverter',
'sphinx.ext.intersphinx',
'sphinx.ext.todo',
'sphinx.ext.coverage'
'sphinx.ext.coverage',
'rstjinja',
'c2rst'
]
# Add any paths that contain templates here, relative to this directory.
@ -49,8 +64,7 @@ templates_path = ['templates']
# The suffix of source filenames.
source_suffix = ['.rst', '.md', '.c', '.h']
source_parsers = {'.md': CommonMarkParser,
'.c': "c2rst.CStrip", '.h': "c2rst.CStrip"}
source_parsers = {'.md': CommonMarkParser}
# The encoding of source files.
#source_encoding = 'utf-8-sig'
@ -84,6 +98,7 @@ version = release = '0.0.0'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
exclude_patterns = ["**/build*",
".git",
".venv",
".direnv",
"docs/README.md",
@ -110,6 +125,7 @@ exclude_patterns = ["**/build*",
"ports/cc3200",
"ports/cc3200/FreeRTOS",
"ports/cc3200/hal",
"ports/cxd56/spresense-exported-sdk",
"ports/esp32",
"ports/esp8266/boards",
"ports/esp8266/common-hal",
@ -121,6 +137,9 @@ exclude_patterns = ["**/build*",
"ports/nrf/nrfx",
"ports/nrf/peripherals",
"ports/nrf/usb",
"ports/stm32f4/stm32f4",
"ports/stm32f4/peripherals",
"ports/stm32f4/ref",
"ports/pic16bit",
"ports/qemu-arm",
"ports/stm32",
@ -350,3 +369,6 @@ texinfo_documents = [
intersphinx_mapping = {"cpython": ('https://docs.python.org/3/', None),
"bus_device": ('https://circuitpython.readthedocs.io/projects/busdevice/en/latest/', None),
"register": ('https://circuitpython.readthedocs.io/projects/register/en/latest/', None)}
def setup(app):
app.add_stylesheet("customstyle.css")

View File

@ -1,19 +1,31 @@
import sphinx.parsers
def c2rst(app, docname, source):
""" Pre-parse '.c' & '.h' files that contain rST source.
"""
# Make sure we're outputting HTML
if app.builder.format != 'html':
return
class CStrip(sphinx.parsers.Parser):
def __init__(self):
self.rst_parser = sphinx.parsers.RSTParser()
fname = app.env.doc2path(docname)
if (not fname.endswith(".c") and
not fname.endswith(".h")):
#print("skipping:", fname)
return
def parse(self, inputstring, document):
# This setting is missing starting with Sphinx 1.7.1 so we set it ourself.
document.settings.tab_width = 4
document.settings.character_level_inline_markup = False
stripped = []
for line in inputstring.split("\n"):
line = line.strip()
if line == "//|":
stripped.append("")
elif line.startswith("//| "):
stripped.append(line[len("//| "):])
stripped = "\r\n".join(stripped)
self.rst_parser.parse(stripped, document)
src = source[0]
stripped = []
for line in src.split("\n"):
line = line.strip()
if line == "//|":
stripped.append("")
elif line.startswith("//| "):
stripped.append(line[len("//| "):])
stripped = "\r\n".join(stripped)
rendered = app.builder.templates.render_string(
stripped, app.config.html_context
)
source[0] = rendered
def setup(app):
app.connect("source-read", c2rst)

View File

@ -60,6 +60,7 @@ For example, a user can then use ``deinit()```::
import digitalio
import board
import time
led = digitalio.DigitalInOut(board.D13)
led.direction = digitalio.Direction.OUTPUT
@ -79,6 +80,7 @@ Alternatively, using a ``with`` statement ensures that the hardware is deinitial
import digitalio
import board
import time
with digitalio.DigitalInOut(board.D13) as led:
led.direction = digitalio.Direction.OUTPUT

View File

@ -182,7 +182,7 @@ Exceptions
.. exception:: OSError
|see_cpython| `OSError`. CircuitPython doesn't implement the ``errno``
|see_cpython| :py:class:`cpython:OSError`. CircuitPython doesn't implement the ``errno``
attribute, instead use the standard way to access exception arguments:
``exc.args[0]``.
@ -198,11 +198,11 @@ Exceptions
.. exception:: SystemExit
|see_cpython| :py:class:`python:SystemExit`.
|see_cpython| :py:class:`cpython:SystemExit`.
.. exception:: TypeError
|see_cpython| :py:class:`python:TypeError`.
|see_cpython| :py:class:`cpython:TypeError`.
.. exception:: ValueError

View File

@ -5,6 +5,7 @@
.. include:: ../templates/unsupported_in_circuitpython.inc
.. module:: network
:noindex:
:synopsis: network configuration
This module provides network drivers and routing configuration. To use this

View File

@ -1 +1,3 @@
sphinxcontrib-svg2pdfconverter
sphinx==1.8.5
recommonmark==0.5.0
sphinxcontrib-svg2pdfconverter==0.1.0

24
docs/rstjinja.py Normal file
View File

@ -0,0 +1,24 @@
# Derived from code on Eric Holscher's blog, found at:
# https://www.ericholscher.com/blog/2016/jul/25/integrating-jinja-rst-sphinx/
def rstjinja(app, docname, source):
"""
Render our pages as a jinja template for fancy templating goodness.
"""
# Make sure we're outputting HTML
if app.builder.format != 'html':
return
# we only want our one jinja template to run through this func
if "shared-bindings/support_matrix" not in docname:
return
src = source[0]
print(docname)
rendered = app.builder.templates.render_string(
src, app.config.html_context
)
source[0] = rendered
def setup(app):
app.connect("source-read", rstjinja)

View File

@ -0,0 +1,289 @@
# The MIT License (MIT)
#
# Copyright (c) 2019 Michael Schroeder
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
import json
import os
import re
SUPPORTED_PORTS = ["atmel-samd", "nrf"]
def parse_port_config(contents, chip_keyword=None):
""" Compile a dictionary of port-wide module configs, which may
be categorized by chipset.
"""
chip_fam = "all"
ifeq_found = False
port_config_results = {"all": []}
chip_pattern = ""
if chip_keyword:
chip_pattern = (
re.compile("(?<=ifeq\s\(\$\({}\)\,)(\w+)".format(chip_keyword))
)
for line in contents:
if chip_keyword:
if not ifeq_found:
check_ifeq = chip_pattern.search(line)
if check_ifeq:
ifeq_found = True
chip_fam = check_ifeq.group(1)
#print("found chip:", chip_fam)
else:
ifeq_found = False
chip_fam = "all"
else:
if "endif" in line:
ifeq_found = False
chip_fam = "all"
if "CIRCUITPY_" in line:
if chip_fam in port_config_results:
port_config_results[chip_fam].append(line.rstrip("\n"))
else:
port_config_results[chip_fam] = [line.rstrip("\n")]
#print(port_config_results)
return port_config_results
def get_shared_bindings():
""" Get a list of modules in shared-bindings based on folder names
"""
return [item for item in os.listdir("./shared-bindings")]
def read_mpconfig():
""" Open 'circuitpy_mpconfig.mk' and return the contents.
"""
configs = []
with open("py/circuitpy_mpconfig.mk") as mpconfig:
configs = mpconfig.read()
return configs
def build_module_map():
""" Establish the base of the JSON file, based on the contents from
`configs`. Base will contain module names, if they're part of
the `FULL_BUILD`, or their default value (0, 1, or a list of
modules that determine default [see audiocore, audiomixer, etc.]).
"""
base = dict()
modules = get_shared_bindings()
configs = read_mpconfig()
full_build = False
for module in modules:
full_name = module
search_name = module.lstrip("_")
re_pattern = "CIRCUITPY_{}\s=\s(.+)".format(search_name.upper())
find_config = re.findall(re_pattern, configs)
if not find_config:
continue
find_config = ", ".join([x.strip("$()") for x in find_config])
full_build = int("CIRCUITPY_FULL_BUILD" in find_config)
if not full_build:
default_val = find_config
else:
default_val = "None"
base[search_name] = {
"name": full_name,
"full_build": str(full_build),
"default_value": default_val,
"excluded": {}
}
#print(base)
return base
def get_excluded_boards(base):
""" Cycles through each board's `mpconfigboard.mk` file to determine
if each module is included or not. Boards are selected by existence
in a port listed in `SUPPORTED_PORTS` (e.g. `/port/nrf/feather_52840`)
Boards are further categorized by their respective chipset (SAMD21,
SAMD51, nRF52840, etc.)
"""
modules = list(base.keys())
re_board_chip = None
chip_keyword = None
for port in SUPPORTED_PORTS:
# each port appears to use its own define for the chipset
if port in ["atmel-samd"]:
re_board_chip = re.compile("CHIP_FAMILY\s=\s(\w+)")
chip_keyword = "CHIP_FAMILY"
elif port in ["nrf"]:
re_board_chip = re.compile("MCU_VARIANT\s=\s(\w+)")
port_dir = "ports/{}".format(port)
port_config_contents = ""
with open(os.path.join(port_dir, "mpconfigport.mk")) as port_config:
port_config_contents = port_config.readlines()
port_config = parse_port_config(port_config_contents, chip_keyword)
for entry in os.scandir(os.path.join(port_dir, "boards")):
if not entry.is_dir():
continue
contents = ""
board_dir = os.path.join(entry.path, "mpconfigboard.mk")
with open(board_dir) as board:
contents = board.read()
board_chip = re_board_chip.search(contents)
#print(entry.name, board_chip.group(1))
if not board_chip:
board_chip = "Unknown Chip"
else:
board_chip = board_chip.group(1)
# add port_config results to contents
contents += "\n" + "\n".join(port_config["all"])
if board_chip in port_config:
contents += "\n" + "\n".join(port_config[board_chip])
check_dependent_modules = dict()
for module in modules:
board_is_excluded = False
# check if board uses `SMALL_BUILD`. if yes, and current
# module is marked as `FULL_BUILD`, board is excluded
small_build = re.search("CIRCUITPY_SMALL_BUILD = 1", contents)
if small_build and base[module]["full_build"] == "1":
board_is_excluded = True
# check if board uses `MINIMAL_BUILD`. if yes, and current
# module is marked as `DEFAULT_BUILD`, board is excluded
min_build = re.search("CIRCUITPY_MINIMAL_BUILD = 1", contents)
if min_build and base[module]["default_value"] == "CIRCUITPY_DEFAULT_BUILD":
board_is_excluded = True
# check if module is specifically disabled for this board
re_pattern = "CIRCUITPY_{}\s=\s(\w)".format(module.upper())
find_module = re.search(re_pattern, contents)
if not find_module:
if base[module]["default_value"].isdigit():
# check if default inclusion is off ('0'). if the board doesn't
# have it explicitly enabled, its excluded.
if base[module]["default_value"] == "0":
board_is_excluded = True
else:
# this module is dependent on another module. add it
# to the list to check after processing all other modules.
# only need to check exclusion if it isn't already excluded.
if (not board_is_excluded and
base[module]["default_value"] not in [
"None",
"CIRCUITPY_DEFAULT_BUILD"
]):
check_dependent_modules[module] = base[module]["default_value"]
else:
if (find_module.group(1) == "0" and
find_module.group(1) != base[module]["default_value"]):
board_is_excluded = True
if board_is_excluded:
if board_chip in base[module]["excluded"]:
base[module]["excluded"][board_chip].append(entry.name)
else:
base[module]["excluded"][board_chip] = [entry.name]
for module in check_dependent_modules:
depend_results = set()
parents = check_dependent_modules[module].split("CIRCUITPY_")
parents = [item.strip(", ").lower() for item in parents if item]
for parent in parents:
if parent in base:
if (board_chip in base[parent]["excluded"] and
entry.name in base[parent]["excluded"][board_chip]):
depend_results.add(False)
else:
depend_results.add(True)
# only exclude the module if there were zero parents enabled
# as determined by the 'depend_results' set.
if not any(depend_results):
if board_chip in base[module]["excluded"]:
base[module]["excluded"][board_chip].append(entry.name)
else:
base[module]["excluded"][board_chip] = [entry.name]
#print(json.dumps(base, indent=2))
return base
def support_matrix_excluded_boards():
""" Compiles a list of available modules, and which board definitions
do not include them.
"""
base = build_module_map()
return get_excluded_boards(base)
def support_matrix_by_board():
""" Compiles a list of the available core modules available for each
board.
"""
base = build_module_map()
base_with_exclusions = get_excluded_boards(base)
boards = dict()
for port in SUPPORTED_PORTS:
port_dir = "ports/{}/boards".format(port)
for entry in os.scandir(port_dir):
if not entry.is_dir():
continue
board_modules = []
board_name = entry.name
board_contents = ""
with open(os.path.join(entry.path, "mpconfigboard.h")) as get_name:
board_contents = get_name.read()
board_name_re = re.search("(?<=MICROPY_HW_BOARD_NAME)\s+(.+)",
board_contents)
if board_name_re:
board_name = board_name_re.group(1).strip('"')
for module in base_with_exclusions.keys():
#print(module)
board_has_module = True
if base_with_exclusions[module]["excluded"]:
for port in base_with_exclusions[module]["excluded"].values():
#print(port)
if entry.name in port:
board_has_module = False
if board_has_module:
board_modules.append(base_with_exclusions[module]["name"])
boards[board_name] = sorted(board_modules)
#print(json.dumps(boards, indent=2))
return boards

View File

@ -8,5 +8,6 @@ and ESP8266.
:maxdepth: 2
../ports/atmel-samd/README
../ports/esp8266/README
../ports/nrf/README
../ports/stm32f4/README
../ports/cxd56/README

View File

@ -31,7 +31,7 @@
#if MICROPY_PY_FRAMEBUF
#include "ports/stm32/font_petme128_8x8.h"
#include "font_petme128_8x8.h"
typedef struct _mp_obj_framebuf_t {
mp_obj_base_t base;

@ -1 +1 @@
Subproject commit 6b3402965999d068316882d63fae3ab26006477c
Subproject commit 52d87bd7e571af66ecb57ee32b5af92531134150

@ -1 +1 @@
Subproject commit 1d38fd81edd30f1bd70c0cfe77819ab610ea89a3
Subproject commit d87ea261c40ecbc6d893d72d337beefbea1cf932

@ -1 +1 @@
Subproject commit a1686803566793ec2de7e043bf6822e47cfa31d1
Subproject commit a6100fb5d867c7f4980f071119bfa7e0a76e1d47

@ -1 +1 @@
Subproject commit 836bb9843fd793683061c15150944f8897d806e9
Subproject commit 89faee0eb08a6855e14f117c514fecf2dd90769d

@ -1 +1 @@
Subproject commit aa4428f304b982aa19a5800822e78c47dc8a3b6c
Subproject commit 8b7611a2cc076a2ac1b368c70227519f69f1e3e9

@ -1 +1 @@
Subproject commit a03f9011279f9e630549432589463912831fcee1
Subproject commit 53146ab2e82c318c3c37bd76bac34035a597b311

@ -1 +1 @@
Subproject commit 98563ab65800aac6464f671c0d005df56ecaa6c6
Subproject commit ddc74844983b35b027bd45091c7b8bb3c8d7a2d1

@ -1 +1 @@
Subproject commit c0ed34813a608b64ed044826553918ddbad12f0c
Subproject commit c0bdd8b10383725ee9293f5d88fb8d47eb1272bd

@ -1 +1 @@
Subproject commit 893c5ec6a9aeef38284985074c2058e87754ad3d
Subproject commit 2e5aedf18eb417a4120d4998ac1f387a4f600730

@ -1 +1 @@
Subproject commit 1d12cfc0b729b4ae0a2f3f4e7c1933a0fbd3b166
Subproject commit ea5e445edd4441cacd207aa2d2bfd724b813a253

@ -1 +1 @@
Subproject commit 340bd688e4a9684c557e65236f203049d56a4210
Subproject commit c1d8e1d645cbc83d857e12cf4ba67549b988a4e7

@ -1 +0,0 @@
Subproject commit d2bcfda543d3b99361e44112aca929225bdcc07f

@ -1 +1 @@
Subproject commit 0848c462b3e431a9da42e96537d2b597a4579636
Subproject commit e413c9efa303d70de019a91aa415384fe80ca78f

View File

@ -26,10 +26,10 @@
#include "lib/utils/buffer_helper.h"
void normalize_buffer_bounds(int32_t* start, int32_t end, uint32_t* length) {
void normalize_buffer_bounds(int32_t* start, int32_t end, size_t* length) {
if (end < 0) {
end += *length;
} else if (((uint32_t) end) > *length) {
} else if (((size_t) end) > *length) {
end = *length;
}
if (*start < 0) {

View File

@ -28,7 +28,8 @@
#define MICROPY_INCLUDED_LIB_UTILS_BUFFER_HELPER_H
#include <stdint.h>
#include <string.h>
void normalize_buffer_bounds(int32_t* start, int32_t end, uint32_t* length);
void normalize_buffer_bounds(int32_t* start, int32_t end, size_t* length);
#endif // MICROPY_INCLUDED_LIB_UTILS_BUFFER_HELPER_H

View File

@ -49,7 +49,7 @@ void mp_keyboard_interrupt(void) {
// Check to see if we've been CTRL-C'ed by autoreload or the user.
bool mp_hal_is_interrupted(void) {
return MP_STATE_VM(mp_pending_exception) == MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_kbd_exception));
return MP_STATE_VM(mp_pending_exception) != NULL;
}
#endif

View File

@ -103,9 +103,11 @@ STATIC void strn_print_strn(void *data, const char *str, size_t len) {
strn_print_env->remain -= len;
}
#if defined(__GNUC__) && !defined(__clang__)
#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 9
// uClibc requires this alias to be defined, or there may be link errors
// when linkings against it statically.
// GCC 9 gives a warning about missing attributes so it's excluded until
// uClibc+GCC9 support is needed.
int __GI_vsnprintf(char *str, size_t size, const char *fmt, va_list ap) __attribute__((weak, alias ("vsnprintf")));
#endif

View File

@ -131,7 +131,9 @@ STATIC int parse_compile_execute(const void *source, mp_parse_input_kind_t input
// at the moment, the value of SystemExit is unused
ret = pyexec_system_exit;
} else {
mp_obj_print_exception(&mp_plat_print, (mp_obj_t)nlr.ret_val);
if ((mp_obj_t) nlr.ret_val != MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_reload_exception))) {
mp_obj_print_exception(&mp_plat_print, (mp_obj_t)nlr.ret_val);
}
ret = PYEXEC_EXCEPTION;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-04-17 11:24-0700\n"
"POT-Creation-Date: 2019-10-21 19:50-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -52,7 +52,7 @@ msgstr ""
msgid "%q indices must be integers, not %s"
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
#: shared-bindings/displayio/Group.c shared-bindings/displayio/Shape.c
msgid "%q must be >= 1"
msgstr ""
@ -217,16 +217,15 @@ msgstr ""
msgid "A hardware interrupt channel is already in use"
msgstr ""
#: shared-bindings/bleio/Address.c
#, c-format
msgid "Address is not %d bytes long or is in wrong format"
msgstr ""
#: shared-bindings/bleio/Address.c
#: shared-bindings/_bleio/Address.c
#, c-format
msgid "Address must be %d bytes long"
msgstr ""
#: shared-bindings/_bleio/Address.c
msgid "Address type out of range"
msgstr ""
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use"
msgstr ""
@ -254,11 +253,16 @@ msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c shared-bindings/pulseio/PWMOut.c
#: shared-module/_pew/PewPew.c
msgid "All timers in use"
msgstr ""
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Already advertising."
msgstr ""
#: ports/nrf/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr ""
@ -297,6 +301,10 @@ msgid ""
"disable.\n"
msgstr ""
#: shared-module/displayio/Display.c
msgid "Below minimum frame rate"
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Bit clock and word select must share a clock unit"
msgstr ""
@ -309,6 +317,10 @@ msgstr ""
msgid "Both pins must support hardware interrupts"
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Brightness must be 0-1.0"
msgstr ""
#: shared-bindings/supervisor/__init__.c
msgid "Brightness must be between 0 and 255"
msgstr ""
@ -317,11 +329,29 @@ msgstr ""
msgid "Brightness not adjustable"
msgstr ""
#: shared-bindings/_bleio/UUID.c
#, c-format
msgid "Buffer + offset too small %d %d %d"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "Buffer incorrect size. Should be %d bytes."
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Buffer is not a bytearray."
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Buffer is too small"
msgstr ""
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
#, c-format
msgid "Buffer length %d too big. It must be less than %d"
msgstr ""
#: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1"
msgstr ""
@ -332,7 +362,7 @@ msgstr ""
msgid "Bus pin %d is already in use"
msgstr ""
#: shared-bindings/bleio/UUID.c
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr ""
@ -340,25 +370,17 @@ msgstr ""
msgid "Bytes must be between 0 and 255."
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr ""
#: shared-bindings/_pixelbuf/PixelBuf.c
#, c-format
msgid "Can not use dotstar with %s"
msgstr ""
#: shared-bindings/bleio/Device.c
msgid "Can't add services in Central mode"
msgstr ""
#: shared-bindings/bleio/Device.c
msgid "Can't advertise in Central mode"
msgstr ""
#: shared-bindings/bleio/Device.c
msgid "Can't change the name in Central mode"
msgstr ""
#: shared-bindings/bleio/Device.c
msgid "Can't connect in Peripheral mode"
#: ports/nrf/common-hal/_bleio/Characteristic.c
msgid "Can't set CCCD on local Characteristic"
msgstr ""
#: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c
@ -414,15 +436,7 @@ msgstr ""
msgid "Cannot write without MOSI pin."
msgstr ""
#: shared-bindings/bleio/Service.c
msgid "Characteristic UUID doesn't match Service UUID"
msgstr ""
#: ports/nrf/common-hal/bleio/Service.c
msgid "Characteristic already in use by another Service."
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "CharacteristicBuffer writing not provided"
msgstr ""
@ -442,11 +456,29 @@ msgstr ""
msgid "Column entry must be digitalio.DigitalInOut"
msgstr ""
#: shared-bindings/displayio/I2CDisplay.c
msgid "Command must be 0-255"
msgstr ""
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c
msgid "Command must be an int between 0 and 255"
msgstr ""
#: ports/nrf/common-hal/bleio/UUID.c
#: shared-bindings/_bleio/Connection.c
msgid ""
"Connection has been disconnected and can no longer be used. Create a new "
"connection."
msgstr ""
#: py/persistentcode.c
msgid "Corrupt .mpy file"
msgstr ""
#: py/emitglue.c
msgid "Corrupt raw code"
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c
#, c-format
msgid "Could not decode ble_uuid, err 0x%04x"
msgstr ""
@ -455,11 +487,11 @@ msgstr ""
msgid "Could not initialize UART"
msgstr ""
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c shared-module/audiomixer/Mixer.c
msgid "Couldn't allocate first buffer"
msgstr ""
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c shared-module/audiomixer/Mixer.c
msgid "Couldn't allocate second buffer"
msgstr ""
@ -476,24 +508,28 @@ msgstr ""
msgid "Data 0 pin must be byte aligned"
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr ""
#: ports/nrf/common-hal/bleio/Broadcaster.c
#: ports/nrf/common-hal/bleio/Peripheral.c
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Data too large for advertisement packet"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Data too large for the advertisement packet"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "Destination capacity is smaller than destination_length."
msgstr ""
#: ports/nrf/common-hal/audiobusio/I2SOut.c
msgid "Device in use"
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Display must have a 16 bit colorspace."
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Display rotation must be in 90 degree increments"
msgstr ""
@ -502,6 +538,7 @@ msgid "Drive mode not used when direction is input."
msgstr ""
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
msgid "EXTINT channel already in use"
msgstr ""
@ -516,41 +553,50 @@ msgstr ""
msgid "Expected a %q"
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/Descriptor.c
msgid "Expected a Characteristic"
msgstr ""
#: shared-bindings/bleio/Characteristic.c shared-bindings/bleio/Descriptor.c
#: shared-bindings/bleio/Service.c
#: shared-bindings/_bleio/Characteristic.c
msgid "Expected a Service"
msgstr ""
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
#: shared-bindings/_bleio/Service.c
msgid "Expected a UUID"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Expected an Address"
msgstr ""
#: shared-module/_pixelbuf/PixelBuf.c
#, c-format
msgid "Expected tuple of length %d, got %d"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to acquire mutex"
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed initiate attribute read, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c ports/nrf/sd_mutex.c
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr ""
#: ports/nrf/sd_mutex.c
#, c-format
msgid "Failed to acquire mutex, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Service.c
#, c-format
msgid "Failed to add characteristic, err 0x%04x"
#: ports/nrf/common-hal/_bleio/Service.c
msgid "Failed to add characteristic, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to add service"
msgstr ""
#: ports/nrf/common-hal/bleio/Peripheral.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#, c-format
msgid "Failed to add service, err 0x%04x"
msgid "Failed to add descriptor, err 0x%04x"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
@ -563,108 +609,101 @@ msgstr ""
msgid "Failed to allocate RX buffer of %d bytes"
msgstr ""
#: ports/nrf/common-hal/bleio/Adapter.c
msgid "Failed to change softdevice state"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to change softdevice state, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to connect:"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to connect: internal error"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to continue scanning"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to connect: timeout"
msgstr ""
#: ports/nrf/common-hal/bleio/Scanner.c
#, c-format
msgid "Failed to continue scanning, err 0x%04x"
#: ports/nrf/common-hal/_bleio/Service.c
msgid "Failed to create service, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to create mutex"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
#: ports/nrf/common-hal/_bleio/Connection.c
msgid "Failed to discover services"
msgstr ""
#: ports/nrf/common-hal/bleio/Adapter.c
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to get local address"
msgstr ""
#: ports/nrf/common-hal/bleio/Adapter.c
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to get softdevice state"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#, c-format
msgid "Failed to notify or indicate attribute value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Connection.c
msgid "Failed to pair"
msgstr ""
#: ports/nrf/common-hal/_bleio/Characteristic.c
#, c-format
msgid "Failed to read CCCD value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed to read attribute value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed to read gatts value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/UUID.c
#: ports/nrf/common-hal/_bleio/UUID.c
#, c-format
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to release mutex"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c ports/nrf/sd_mutex.c
#: ports/nrf/sd_mutex.c
#, c-format
msgid "Failed to release mutex, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to start advertising"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to start advertising, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Broadcaster.c
#: ports/nrf/common-hal/bleio/Peripheral.c
#: ports/nrf/common-hal/_bleio/Adapter.c
#, c-format
msgid "Failed to start advertising, err 0x%04x"
msgid "Failed to start connecting, error 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to start scanning"
#: ports/nrf/common-hal/_bleio/Connection.c
msgid "Failed to start pairing, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Scanner.c
#: ports/nrf/common-hal/_bleio/Adapter.c
#, c-format
msgid "Failed to start scanning, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to stop advertising"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to stop advertising, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Broadcaster.c
#: ports/nrf/common-hal/bleio/Peripheral.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#, c-format
msgid "Failed to stop advertising, err 0x%04x"
msgid "Failed to write CCCD, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed to write attribute value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed to write gatts value, err 0x%04x"
msgstr ""
@ -700,6 +739,11 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Group already used"
msgstr ""
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr ""
@ -756,7 +800,7 @@ msgstr ""
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr ""
#: shared-bindings/audioio/Mixer.c
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid channel count"
msgstr ""
@ -764,11 +808,11 @@ msgstr ""
msgid "Invalid direction."
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr ""
@ -806,15 +850,27 @@ msgstr ""
msgid "Invalid polarity"
msgstr ""
#: shared-bindings/_bleio/Characteristic.c
msgid "Invalid properties"
msgstr ""
#: shared-bindings/microcontroller/__init__.c
msgid "Invalid run mode."
msgstr ""
#: shared-bindings/audioio/Mixer.c
#: shared-module/_bleio/Attribute.c
msgid "Invalid security_mode"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice count"
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr ""
@ -822,6 +878,10 @@ msgstr ""
msgid "LHS of keyword arg must be an id"
msgstr ""
#: shared-module/displayio/Group.c
msgid "Layer already in a group."
msgstr ""
#: shared-module/displayio/Group.c
msgid "Layer must be a Group or TileGrid subclass."
msgstr ""
@ -866,8 +926,12 @@ msgstr ""
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Must be a Group subclass."
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
#: ports/nrf/common-hal/_bleio/Characteristic.c
msgid "No CCCD for this Characteristic"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogOut.c
@ -903,11 +967,19 @@ msgstr ""
msgid "No hardware random available"
msgstr ""
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
msgid "No hardware support on clk pin"
msgstr ""
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
msgid "No hardware support on pin"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr ""
#: py/moduerrno.c
msgid "No space left on device"
msgstr ""
@ -916,11 +988,13 @@ msgstr ""
msgid "No such file/directory"
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c
#: shared-bindings/audiopwmio/PWMAudioOut.c
msgid "Not playing"
msgstr ""
@ -946,8 +1020,8 @@ msgstr ""
#: shared-module/displayio/OnDiskBitmap.c
#, c-format
msgid ""
"Only monochrome, indexed 8bpp, and 16bpp or greater BMPs supported: %d bpp "
"given"
"Only monochrome, indexed 4bpp or 8bpp, and 16bpp or greater BMPs supported: "
"%d bpp given"
msgstr ""
#: shared-bindings/_pixelbuf/PixelBuf.c
@ -985,6 +1059,14 @@ msgstr ""
msgid "Plus any modules on the filesystem\n"
msgstr ""
#: shared-bindings/ps2io/Ps2.c
msgid "Pop from an empty Ps2 buffer"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr ""
#: main.c
msgid "Press any key to enter the REPL. Use CTRL-D to reload."
msgstr ""
@ -1017,6 +1099,10 @@ msgstr ""
msgid "Read-only object"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr ""
@ -1037,15 +1123,20 @@ msgstr ""
msgid "SDA or SCL needs a pull up"
msgstr ""
#: shared-bindings/audioio/Mixer.c
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
#, c-format
msgid "Sample rate too high. It must be less than %d"
msgstr ""
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Scan already in progess. Stop with stop_scan."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "Serializer in use"
@ -1060,11 +1151,6 @@ msgstr ""
msgid "Slices not supported"
msgstr ""
#: ports/nrf/common-hal/bleio/Adapter.c
#, c-format
msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
msgstr ""
#: extmod/modure.c
msgid "Splitting with sub-captures"
msgstr ""
@ -1086,6 +1172,12 @@ msgid ""
"your CIRCUITPY drive:\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Please make sure your power supply "
@ -1100,19 +1192,19 @@ msgid ""
"exit safe mode.\n"
msgstr ""
#: shared-module/audioio/Mixer.c
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr ""
#: shared-module/audioio/Mixer.c
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's channel count does not match the mixer's"
msgstr ""
#: shared-module/audioio/Mixer.c
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's sample rate does not match the mixer's"
msgstr ""
#: shared-module/audioio/Mixer.c
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's signedness does not match the mixer's"
msgstr ""
@ -1120,8 +1212,12 @@ msgstr ""
msgid "Tile height must exactly divide bitmap height"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile index out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255"
msgid "Tile value out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c
@ -1136,11 +1232,13 @@ msgstr ""
msgid "Too many channels in sample."
msgstr ""
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/I2CDisplay.c
#: shared-bindings/displayio/ParallelBus.c
msgid "Too many display busses"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Too many displays"
msgstr ""
@ -1160,15 +1258,15 @@ msgstr ""
msgid "USB Error"
msgstr ""
#: shared-bindings/bleio/UUID.c
msgid "UUID integer value not in range 0 to 0xffff"
#: shared-bindings/_bleio/UUID.c
msgid "UUID integer value must be 0-0xffff"
msgstr ""
#: shared-bindings/bleio/UUID.c
#: shared-bindings/_bleio/UUID.c
msgid "UUID string not 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'"
msgstr ""
#: shared-bindings/bleio/UUID.c
#: shared-bindings/_bleio/UUID.c
msgid "UUID value is not str, int or byte buffer"
msgstr ""
@ -1177,6 +1275,11 @@ msgstr ""
msgid "Unable to allocate buffers for signed conversion"
msgstr ""
#: shared-module/displayio/I2CDisplay.c
#, c-format
msgid "Unable to find I2C Display at %x"
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "Unable to find free GCLK"
@ -1194,7 +1297,7 @@ msgstr ""
msgid "Unable to write to nvm."
msgstr ""
#: ports/nrf/common-hal/bleio/UUID.c
#: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type"
msgstr ""
@ -1207,11 +1310,11 @@ msgstr ""
msgid "Unsupported baudrate"
msgstr ""
#: shared-module/displayio/Display.c
#: shared-module/displayio/display_core.c
msgid "Unsupported display bus type"
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr ""
@ -1223,12 +1326,18 @@ msgstr ""
msgid "Unsupported pull value."
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
msgid "Value length != required fixed length"
msgstr ""
#: shared-module/audioio/Mixer.c
msgid "Voice index too high"
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
msgid "Value length > max_length"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
#: main.c
@ -1313,10 +1422,6 @@ msgstr ""
msgid "attributes not supported yet"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
msgid "bad GATT role"
msgstr ""
#: py/builtinevex.c
msgid "bad compile mode"
msgstr ""
@ -1345,7 +1450,7 @@ msgstr ""
msgid "bits must be 8"
msgstr ""
#: shared-bindings/audioio/Mixer.c
#: shared-bindings/audiomixer/Mixer.c
msgid "bits_per_sample must be 8 or 16"
msgstr ""
@ -1358,7 +1463,7 @@ msgstr ""
msgid "buf is too small. need %d bytes"
msgstr ""
#: shared-bindings/audioio/RawSample.c
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
@ -1569,10 +1674,6 @@ msgstr ""
msgid "casting"
msgstr ""
#: shared-bindings/bleio/Service.c
msgid "characteristics includes an object that is not a Characteristic"
msgstr ""
#: shared-bindings/_stage/Text.c
msgid "chars buffer too small"
msgstr ""
@ -1720,7 +1821,8 @@ msgstr ""
msgid "extra positional arguments given"
msgstr ""
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/audiocore/WaveFile.c
#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr ""
@ -1849,8 +1951,9 @@ msgstr ""
msgid "integer required"
msgstr ""
#: ports/nrf/common-hal/bleio/Broadcaster.c
msgid "interval not in range 0.0020 to 10.24"
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
msgstr ""
#: extmod/machine_i2c.c
@ -1942,6 +2045,10 @@ msgstr ""
msgid "length argument not allowed for this type"
msgstr ""
#: shared-bindings/audiomixer/MixerVoice.c
msgid "level must be between 0 and 1"
msgstr ""
#: py/objarray.c
msgid "lhs and rhs should be compatible"
msgstr ""
@ -1970,6 +2077,12 @@ msgstr ""
msgid "math domain error"
msgstr ""
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
msgid "max_length must be 0-%d when fixed_length is %s"
msgstr ""
#: py/runtime.c
msgid "maximum recursion depth exceeded"
msgstr ""
@ -2015,10 +2128,6 @@ msgstr ""
msgid "name '%q' is not defined"
msgstr ""
#: shared-bindings/bleio/Peripheral.c
msgid "name must be a string"
msgstr ""
#: py/runtime.c
msgid "name not defined"
msgstr ""
@ -2060,10 +2169,19 @@ msgstr ""
msgid "no module named '%q'"
msgstr ""
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/I2CDisplay.c
#: shared-bindings/displayio/ParallelBus.c
msgid "no reset pin available"
msgstr ""
#: py/runtime.c shared-bindings/_pixelbuf/__init__.c
msgid "no such attribute"
msgstr ""
#: ports/nrf/common-hal/_bleio/Connection.c
msgid "non-UUID found in service_uuids_whitelist"
msgstr ""
#: py/compile.c
msgid "non-default argument follows default argument"
msgstr ""
@ -2080,7 +2198,7 @@ msgstr ""
msgid "non-keyword arg after keyword arg"
msgstr ""
#: shared-bindings/bleio/UUID.c
#: shared-bindings/_bleio/UUID.c
msgid "not a 128-bit UUID"
msgstr ""
@ -2121,7 +2239,7 @@ msgstr ""
msgid "object not callable"
msgstr ""
#: py/sequence.c
#: py/sequence.c shared-bindings/displayio/Group.c
msgid "object not in sequence"
msgstr ""
@ -2146,6 +2264,14 @@ msgstr ""
msgid "offset out of bounds"
msgstr ""
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only bit_depth=16 is supported"
msgstr ""
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr ""
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported"
@ -2254,7 +2380,7 @@ msgstr ""
msgid "rsplit(None,n)"
msgstr ""
#: shared-bindings/audioio/RawSample.c
#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
@ -2272,10 +2398,6 @@ msgstr ""
msgid "script compilation not supported"
msgstr ""
#: shared-bindings/bleio/Peripheral.c
msgid "services includes an object that is not a Service"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@ -2373,10 +2495,6 @@ msgstr ""
msgid "threshold must be in the range 0-65536"
msgstr ""
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr ""
#: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence"
msgstr ""
@ -2389,7 +2507,7 @@ msgstr ""
msgid "timeout >100 (units are now seconds, not msecs)"
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "timeout must be >= 0.0"
msgstr ""
@ -2533,10 +2651,19 @@ msgstr ""
msgid "unsupported types for %q: '%s', '%s'"
msgstr ""
#: py/objint.c
#, c-format
msgid "value must fit in %d byte(s)"
msgstr ""
#: shared-bindings/displayio/Bitmap.c
msgid "value_count must be > 0"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr ""
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "write_args must be a list, tuple, or None"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-04-17 11:17-0700\n"
"POT-Creation-Date: 2019-10-21 19:50-0700\n"
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -52,7 +52,7 @@ msgstr ""
msgid "%q indices must be integers, not %s"
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
#: shared-bindings/displayio/Group.c shared-bindings/displayio/Shape.c
msgid "%q must be >= 1"
msgstr ""
@ -217,16 +217,15 @@ msgstr ""
msgid "A hardware interrupt channel is already in use"
msgstr ""
#: shared-bindings/bleio/Address.c
#, c-format
msgid "Address is not %d bytes long or is in wrong format"
msgstr ""
#: shared-bindings/bleio/Address.c
#: shared-bindings/_bleio/Address.c
#, c-format
msgid "Address must be %d bytes long"
msgstr ""
#: shared-bindings/_bleio/Address.c
msgid "Address type out of range"
msgstr ""
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use"
msgstr ""
@ -254,11 +253,16 @@ msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c shared-bindings/pulseio/PWMOut.c
#: shared-module/_pew/PewPew.c
msgid "All timers in use"
msgstr ""
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Already advertising."
msgstr ""
#: ports/nrf/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr ""
@ -297,6 +301,10 @@ msgid ""
"disable.\n"
msgstr ""
#: shared-module/displayio/Display.c
msgid "Below minimum frame rate"
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Bit clock and word select must share a clock unit"
msgstr ""
@ -309,6 +317,10 @@ msgstr ""
msgid "Both pins must support hardware interrupts"
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Brightness must be 0-1.0"
msgstr ""
#: shared-bindings/supervisor/__init__.c
msgid "Brightness must be between 0 and 255"
msgstr ""
@ -317,11 +329,29 @@ msgstr ""
msgid "Brightness not adjustable"
msgstr ""
#: shared-bindings/_bleio/UUID.c
#, c-format
msgid "Buffer + offset too small %d %d %d"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "Buffer incorrect size. Should be %d bytes."
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Buffer is not a bytearray."
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Buffer is too small"
msgstr ""
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
#, c-format
msgid "Buffer length %d too big. It must be less than %d"
msgstr ""
#: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1"
msgstr ""
@ -332,7 +362,7 @@ msgstr ""
msgid "Bus pin %d is already in use"
msgstr ""
#: shared-bindings/bleio/UUID.c
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr ""
@ -340,25 +370,17 @@ msgstr ""
msgid "Bytes must be between 0 and 255."
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr ""
#: shared-bindings/_pixelbuf/PixelBuf.c
#, c-format
msgid "Can not use dotstar with %s"
msgstr ""
#: shared-bindings/bleio/Device.c
msgid "Can't add services in Central mode"
msgstr ""
#: shared-bindings/bleio/Device.c
msgid "Can't advertise in Central mode"
msgstr ""
#: shared-bindings/bleio/Device.c
msgid "Can't change the name in Central mode"
msgstr ""
#: shared-bindings/bleio/Device.c
msgid "Can't connect in Peripheral mode"
#: ports/nrf/common-hal/_bleio/Characteristic.c
msgid "Can't set CCCD on local Characteristic"
msgstr ""
#: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c
@ -414,15 +436,7 @@ msgstr ""
msgid "Cannot write without MOSI pin."
msgstr ""
#: shared-bindings/bleio/Service.c
msgid "Characteristic UUID doesn't match Service UUID"
msgstr ""
#: ports/nrf/common-hal/bleio/Service.c
msgid "Characteristic already in use by another Service."
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "CharacteristicBuffer writing not provided"
msgstr ""
@ -442,11 +456,29 @@ msgstr ""
msgid "Column entry must be digitalio.DigitalInOut"
msgstr ""
#: shared-bindings/displayio/I2CDisplay.c
msgid "Command must be 0-255"
msgstr ""
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c
msgid "Command must be an int between 0 and 255"
msgstr ""
#: ports/nrf/common-hal/bleio/UUID.c
#: shared-bindings/_bleio/Connection.c
msgid ""
"Connection has been disconnected and can no longer be used. Create a new "
"connection."
msgstr ""
#: py/persistentcode.c
msgid "Corrupt .mpy file"
msgstr ""
#: py/emitglue.c
msgid "Corrupt raw code"
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c
#, c-format
msgid "Could not decode ble_uuid, err 0x%04x"
msgstr ""
@ -455,11 +487,11 @@ msgstr ""
msgid "Could not initialize UART"
msgstr ""
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c shared-module/audiomixer/Mixer.c
msgid "Couldn't allocate first buffer"
msgstr ""
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c shared-module/audiomixer/Mixer.c
msgid "Couldn't allocate second buffer"
msgstr ""
@ -476,24 +508,28 @@ msgstr ""
msgid "Data 0 pin must be byte aligned"
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr ""
#: ports/nrf/common-hal/bleio/Broadcaster.c
#: ports/nrf/common-hal/bleio/Peripheral.c
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Data too large for advertisement packet"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Data too large for the advertisement packet"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "Destination capacity is smaller than destination_length."
msgstr ""
#: ports/nrf/common-hal/audiobusio/I2SOut.c
msgid "Device in use"
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Display must have a 16 bit colorspace."
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Display rotation must be in 90 degree increments"
msgstr ""
@ -502,6 +538,7 @@ msgid "Drive mode not used when direction is input."
msgstr ""
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
msgid "EXTINT channel already in use"
msgstr ""
@ -516,41 +553,50 @@ msgstr ""
msgid "Expected a %q"
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/Descriptor.c
msgid "Expected a Characteristic"
msgstr ""
#: shared-bindings/bleio/Characteristic.c shared-bindings/bleio/Descriptor.c
#: shared-bindings/bleio/Service.c
#: shared-bindings/_bleio/Characteristic.c
msgid "Expected a Service"
msgstr ""
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
#: shared-bindings/_bleio/Service.c
msgid "Expected a UUID"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Expected an Address"
msgstr ""
#: shared-module/_pixelbuf/PixelBuf.c
#, c-format
msgid "Expected tuple of length %d, got %d"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to acquire mutex"
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed initiate attribute read, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c ports/nrf/sd_mutex.c
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr ""
#: ports/nrf/sd_mutex.c
#, c-format
msgid "Failed to acquire mutex, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Service.c
#, c-format
msgid "Failed to add characteristic, err 0x%04x"
#: ports/nrf/common-hal/_bleio/Service.c
msgid "Failed to add characteristic, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to add service"
msgstr ""
#: ports/nrf/common-hal/bleio/Peripheral.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#, c-format
msgid "Failed to add service, err 0x%04x"
msgid "Failed to add descriptor, err 0x%04x"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
@ -563,108 +609,101 @@ msgstr ""
msgid "Failed to allocate RX buffer of %d bytes"
msgstr ""
#: ports/nrf/common-hal/bleio/Adapter.c
msgid "Failed to change softdevice state"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to change softdevice state, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to connect:"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to connect: internal error"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to continue scanning"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to connect: timeout"
msgstr ""
#: ports/nrf/common-hal/bleio/Scanner.c
#, c-format
msgid "Failed to continue scanning, err 0x%04x"
#: ports/nrf/common-hal/_bleio/Service.c
msgid "Failed to create service, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to create mutex"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
#: ports/nrf/common-hal/_bleio/Connection.c
msgid "Failed to discover services"
msgstr ""
#: ports/nrf/common-hal/bleio/Adapter.c
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to get local address"
msgstr ""
#: ports/nrf/common-hal/bleio/Adapter.c
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to get softdevice state"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#, c-format
msgid "Failed to notify or indicate attribute value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Connection.c
msgid "Failed to pair"
msgstr ""
#: ports/nrf/common-hal/_bleio/Characteristic.c
#, c-format
msgid "Failed to read CCCD value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed to read attribute value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed to read gatts value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/UUID.c
#: ports/nrf/common-hal/_bleio/UUID.c
#, c-format
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to release mutex"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c ports/nrf/sd_mutex.c
#: ports/nrf/sd_mutex.c
#, c-format
msgid "Failed to release mutex, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to start advertising"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to start advertising, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Broadcaster.c
#: ports/nrf/common-hal/bleio/Peripheral.c
#: ports/nrf/common-hal/_bleio/Adapter.c
#, c-format
msgid "Failed to start advertising, err 0x%04x"
msgid "Failed to start connecting, error 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to start scanning"
#: ports/nrf/common-hal/_bleio/Connection.c
msgid "Failed to start pairing, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Scanner.c
#: ports/nrf/common-hal/_bleio/Adapter.c
#, c-format
msgid "Failed to start scanning, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to stop advertising"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to stop advertising, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Broadcaster.c
#: ports/nrf/common-hal/bleio/Peripheral.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#, c-format
msgid "Failed to stop advertising, err 0x%04x"
msgid "Failed to write CCCD, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed to write attribute value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed to write gatts value, err 0x%04x"
msgstr ""
@ -700,6 +739,11 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Group already used"
msgstr ""
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr ""
@ -756,7 +800,7 @@ msgstr ""
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr ""
#: shared-bindings/audioio/Mixer.c
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid channel count"
msgstr ""
@ -764,11 +808,11 @@ msgstr ""
msgid "Invalid direction."
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr ""
@ -806,15 +850,27 @@ msgstr ""
msgid "Invalid polarity"
msgstr ""
#: shared-bindings/_bleio/Characteristic.c
msgid "Invalid properties"
msgstr ""
#: shared-bindings/microcontroller/__init__.c
msgid "Invalid run mode."
msgstr ""
#: shared-bindings/audioio/Mixer.c
#: shared-module/_bleio/Attribute.c
msgid "Invalid security_mode"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice count"
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr ""
@ -822,6 +878,10 @@ msgstr ""
msgid "LHS of keyword arg must be an id"
msgstr ""
#: shared-module/displayio/Group.c
msgid "Layer already in a group."
msgstr ""
#: shared-module/displayio/Group.c
msgid "Layer must be a Group or TileGrid subclass."
msgstr ""
@ -866,8 +926,12 @@ msgstr ""
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Must be a Group subclass."
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
#: ports/nrf/common-hal/_bleio/Characteristic.c
msgid "No CCCD for this Characteristic"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogOut.c
@ -903,11 +967,19 @@ msgstr ""
msgid "No hardware random available"
msgstr ""
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
msgid "No hardware support on clk pin"
msgstr ""
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
msgid "No hardware support on pin"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr ""
#: py/moduerrno.c
msgid "No space left on device"
msgstr ""
@ -916,11 +988,13 @@ msgstr ""
msgid "No such file/directory"
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c
#: shared-bindings/audiopwmio/PWMAudioOut.c
msgid "Not playing"
msgstr ""
@ -946,8 +1020,8 @@ msgstr ""
#: shared-module/displayio/OnDiskBitmap.c
#, c-format
msgid ""
"Only monochrome, indexed 8bpp, and 16bpp or greater BMPs supported: %d bpp "
"given"
"Only monochrome, indexed 4bpp or 8bpp, and 16bpp or greater BMPs supported: "
"%d bpp given"
msgstr ""
#: shared-bindings/_pixelbuf/PixelBuf.c
@ -985,6 +1059,14 @@ msgstr ""
msgid "Plus any modules on the filesystem\n"
msgstr ""
#: shared-bindings/ps2io/Ps2.c
msgid "Pop from an empty Ps2 buffer"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr ""
#: main.c
msgid "Press any key to enter the REPL. Use CTRL-D to reload."
msgstr ""
@ -1017,6 +1099,10 @@ msgstr ""
msgid "Read-only object"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr ""
@ -1037,15 +1123,20 @@ msgstr ""
msgid "SDA or SCL needs a pull up"
msgstr ""
#: shared-bindings/audioio/Mixer.c
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
#, c-format
msgid "Sample rate too high. It must be less than %d"
msgstr ""
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Scan already in progess. Stop with stop_scan."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "Serializer in use"
@ -1060,11 +1151,6 @@ msgstr ""
msgid "Slices not supported"
msgstr ""
#: ports/nrf/common-hal/bleio/Adapter.c
#, c-format
msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
msgstr ""
#: extmod/modure.c
msgid "Splitting with sub-captures"
msgstr ""
@ -1086,6 +1172,12 @@ msgid ""
"your CIRCUITPY drive:\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Please make sure your power supply "
@ -1100,19 +1192,19 @@ msgid ""
"exit safe mode.\n"
msgstr ""
#: shared-module/audioio/Mixer.c
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr ""
#: shared-module/audioio/Mixer.c
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's channel count does not match the mixer's"
msgstr ""
#: shared-module/audioio/Mixer.c
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's sample rate does not match the mixer's"
msgstr ""
#: shared-module/audioio/Mixer.c
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's signedness does not match the mixer's"
msgstr ""
@ -1120,8 +1212,12 @@ msgstr ""
msgid "Tile height must exactly divide bitmap height"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile index out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255"
msgid "Tile value out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c
@ -1136,11 +1232,13 @@ msgstr ""
msgid "Too many channels in sample."
msgstr ""
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/I2CDisplay.c
#: shared-bindings/displayio/ParallelBus.c
msgid "Too many display busses"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Too many displays"
msgstr ""
@ -1160,15 +1258,15 @@ msgstr ""
msgid "USB Error"
msgstr ""
#: shared-bindings/bleio/UUID.c
msgid "UUID integer value not in range 0 to 0xffff"
#: shared-bindings/_bleio/UUID.c
msgid "UUID integer value must be 0-0xffff"
msgstr ""
#: shared-bindings/bleio/UUID.c
#: shared-bindings/_bleio/UUID.c
msgid "UUID string not 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'"
msgstr ""
#: shared-bindings/bleio/UUID.c
#: shared-bindings/_bleio/UUID.c
msgid "UUID value is not str, int or byte buffer"
msgstr ""
@ -1177,6 +1275,11 @@ msgstr ""
msgid "Unable to allocate buffers for signed conversion"
msgstr ""
#: shared-module/displayio/I2CDisplay.c
#, c-format
msgid "Unable to find I2C Display at %x"
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "Unable to find free GCLK"
@ -1194,7 +1297,7 @@ msgstr ""
msgid "Unable to write to nvm."
msgstr ""
#: ports/nrf/common-hal/bleio/UUID.c
#: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type"
msgstr ""
@ -1207,11 +1310,11 @@ msgstr ""
msgid "Unsupported baudrate"
msgstr ""
#: shared-module/displayio/Display.c
#: shared-module/displayio/display_core.c
msgid "Unsupported display bus type"
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr ""
@ -1223,12 +1326,18 @@ msgstr ""
msgid "Unsupported pull value."
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
msgid "Value length != required fixed length"
msgstr ""
#: shared-module/audioio/Mixer.c
msgid "Voice index too high"
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
msgid "Value length > max_length"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
#: main.c
@ -1313,10 +1422,6 @@ msgstr ""
msgid "attributes not supported yet"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
msgid "bad GATT role"
msgstr ""
#: py/builtinevex.c
msgid "bad compile mode"
msgstr ""
@ -1345,7 +1450,7 @@ msgstr ""
msgid "bits must be 8"
msgstr ""
#: shared-bindings/audioio/Mixer.c
#: shared-bindings/audiomixer/Mixer.c
msgid "bits_per_sample must be 8 or 16"
msgstr ""
@ -1358,7 +1463,7 @@ msgstr ""
msgid "buf is too small. need %d bytes"
msgstr ""
#: shared-bindings/audioio/RawSample.c
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
@ -1569,10 +1674,6 @@ msgstr ""
msgid "casting"
msgstr ""
#: shared-bindings/bleio/Service.c
msgid "characteristics includes an object that is not a Characteristic"
msgstr ""
#: shared-bindings/_stage/Text.c
msgid "chars buffer too small"
msgstr ""
@ -1720,7 +1821,8 @@ msgstr ""
msgid "extra positional arguments given"
msgstr ""
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/audiocore/WaveFile.c
#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr ""
@ -1849,8 +1951,9 @@ msgstr ""
msgid "integer required"
msgstr ""
#: ports/nrf/common-hal/bleio/Broadcaster.c
msgid "interval not in range 0.0020 to 10.24"
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
msgstr ""
#: extmod/machine_i2c.c
@ -1942,6 +2045,10 @@ msgstr ""
msgid "length argument not allowed for this type"
msgstr ""
#: shared-bindings/audiomixer/MixerVoice.c
msgid "level must be between 0 and 1"
msgstr ""
#: py/objarray.c
msgid "lhs and rhs should be compatible"
msgstr ""
@ -1970,6 +2077,12 @@ msgstr ""
msgid "math domain error"
msgstr ""
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
msgid "max_length must be 0-%d when fixed_length is %s"
msgstr ""
#: py/runtime.c
msgid "maximum recursion depth exceeded"
msgstr ""
@ -2015,10 +2128,6 @@ msgstr ""
msgid "name '%q' is not defined"
msgstr ""
#: shared-bindings/bleio/Peripheral.c
msgid "name must be a string"
msgstr ""
#: py/runtime.c
msgid "name not defined"
msgstr ""
@ -2060,10 +2169,19 @@ msgstr ""
msgid "no module named '%q'"
msgstr ""
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/I2CDisplay.c
#: shared-bindings/displayio/ParallelBus.c
msgid "no reset pin available"
msgstr ""
#: py/runtime.c shared-bindings/_pixelbuf/__init__.c
msgid "no such attribute"
msgstr ""
#: ports/nrf/common-hal/_bleio/Connection.c
msgid "non-UUID found in service_uuids_whitelist"
msgstr ""
#: py/compile.c
msgid "non-default argument follows default argument"
msgstr ""
@ -2080,7 +2198,7 @@ msgstr ""
msgid "non-keyword arg after keyword arg"
msgstr ""
#: shared-bindings/bleio/UUID.c
#: shared-bindings/_bleio/UUID.c
msgid "not a 128-bit UUID"
msgstr ""
@ -2121,7 +2239,7 @@ msgstr ""
msgid "object not callable"
msgstr ""
#: py/sequence.c
#: py/sequence.c shared-bindings/displayio/Group.c
msgid "object not in sequence"
msgstr ""
@ -2146,6 +2264,14 @@ msgstr ""
msgid "offset out of bounds"
msgstr ""
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only bit_depth=16 is supported"
msgstr ""
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr ""
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported"
@ -2254,7 +2380,7 @@ msgstr ""
msgid "rsplit(None,n)"
msgstr ""
#: shared-bindings/audioio/RawSample.c
#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
@ -2272,10 +2398,6 @@ msgstr ""
msgid "script compilation not supported"
msgstr ""
#: shared-bindings/bleio/Peripheral.c
msgid "services includes an object that is not a Service"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@ -2373,10 +2495,6 @@ msgstr ""
msgid "threshold must be in the range 0-65536"
msgstr ""
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr ""
#: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence"
msgstr ""
@ -2389,7 +2507,7 @@ msgstr ""
msgid "timeout >100 (units are now seconds, not msecs)"
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "timeout must be >= 0.0"
msgstr ""
@ -2533,10 +2651,19 @@ msgstr ""
msgid "unsupported types for %q: '%s', '%s'"
msgstr ""
#: py/objint.c
#, c-format
msgid "value must fit in %d byte(s)"
msgstr ""
#: shared-bindings/displayio/Bitmap.c
msgid "value_count must be > 0"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr ""
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "write_args must be a list, tuple, or None"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-04-17 11:17-0700\n"
"POT-Creation-Date: 2019-10-21 19:50-0700\n"
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
"Last-Translator: \n"
"Language-Team: @sommersoft, @MrCertainly\n"
@ -54,7 +54,7 @@ msgstr ""
msgid "%q indices must be integers, not %s"
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
#: shared-bindings/displayio/Group.c shared-bindings/displayio/Shape.c
msgid "%q must be >= 1"
msgstr ""
@ -219,16 +219,15 @@ msgstr ""
msgid "A hardware interrupt channel is already in use"
msgstr "Avast! A hardware interrupt channel be used already"
#: shared-bindings/bleio/Address.c
#, c-format
msgid "Address is not %d bytes long or is in wrong format"
msgstr ""
#: shared-bindings/bleio/Address.c
#: shared-bindings/_bleio/Address.c
#, c-format
msgid "Address must be %d bytes long"
msgstr ""
#: shared-bindings/_bleio/Address.c
msgid "Address type out of range"
msgstr ""
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use"
msgstr ""
@ -256,11 +255,16 @@ msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c shared-bindings/pulseio/PWMOut.c
#: shared-module/_pew/PewPew.c
msgid "All timers in use"
msgstr ""
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Already advertising."
msgstr ""
#: ports/nrf/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr ""
@ -301,6 +305,10 @@ msgstr ""
"Auto-reload be on. Put yer files on USB to weigh anchor, er' bring'er about "
"t' the REPL t' scuttle.\n"
#: shared-module/displayio/Display.c
msgid "Below minimum frame rate"
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Bit clock and word select must share a clock unit"
msgstr ""
@ -313,6 +321,10 @@ msgstr ""
msgid "Both pins must support hardware interrupts"
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Brightness must be 0-1.0"
msgstr ""
#: shared-bindings/supervisor/__init__.c
msgid "Brightness must be between 0 and 255"
msgstr ""
@ -321,11 +333,29 @@ msgstr ""
msgid "Brightness not adjustable"
msgstr ""
#: shared-bindings/_bleio/UUID.c
#, c-format
msgid "Buffer + offset too small %d %d %d"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "Buffer incorrect size. Should be %d bytes."
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Buffer is not a bytearray."
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Buffer is too small"
msgstr ""
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
#, c-format
msgid "Buffer length %d too big. It must be less than %d"
msgstr ""
#: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1"
msgstr ""
@ -336,7 +366,7 @@ msgstr ""
msgid "Bus pin %d is already in use"
msgstr "Belay that! Bus pin %d already be in use"
#: shared-bindings/bleio/UUID.c
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr ""
@ -344,25 +374,17 @@ msgstr ""
msgid "Bytes must be between 0 and 255."
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr ""
#: shared-bindings/_pixelbuf/PixelBuf.c
#, c-format
msgid "Can not use dotstar with %s"
msgstr ""
#: shared-bindings/bleio/Device.c
msgid "Can't add services in Central mode"
msgstr ""
#: shared-bindings/bleio/Device.c
msgid "Can't advertise in Central mode"
msgstr ""
#: shared-bindings/bleio/Device.c
msgid "Can't change the name in Central mode"
msgstr ""
#: shared-bindings/bleio/Device.c
msgid "Can't connect in Peripheral mode"
#: ports/nrf/common-hal/_bleio/Characteristic.c
msgid "Can't set CCCD on local Characteristic"
msgstr ""
#: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c
@ -418,15 +440,7 @@ msgstr ""
msgid "Cannot write without MOSI pin."
msgstr ""
#: shared-bindings/bleio/Service.c
msgid "Characteristic UUID doesn't match Service UUID"
msgstr ""
#: ports/nrf/common-hal/bleio/Service.c
msgid "Characteristic already in use by another Service."
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "CharacteristicBuffer writing not provided"
msgstr ""
@ -446,11 +460,29 @@ msgstr ""
msgid "Column entry must be digitalio.DigitalInOut"
msgstr ""
#: shared-bindings/displayio/I2CDisplay.c
msgid "Command must be 0-255"
msgstr ""
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c
msgid "Command must be an int between 0 and 255"
msgstr ""
#: ports/nrf/common-hal/bleio/UUID.c
#: shared-bindings/_bleio/Connection.c
msgid ""
"Connection has been disconnected and can no longer be used. Create a new "
"connection."
msgstr ""
#: py/persistentcode.c
msgid "Corrupt .mpy file"
msgstr ""
#: py/emitglue.c
msgid "Corrupt raw code"
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c
#, c-format
msgid "Could not decode ble_uuid, err 0x%04x"
msgstr ""
@ -459,11 +491,11 @@ msgstr ""
msgid "Could not initialize UART"
msgstr ""
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c shared-module/audiomixer/Mixer.c
msgid "Couldn't allocate first buffer"
msgstr ""
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c shared-module/audiomixer/Mixer.c
msgid "Couldn't allocate second buffer"
msgstr ""
@ -480,24 +512,28 @@ msgstr ""
msgid "Data 0 pin must be byte aligned"
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr ""
#: ports/nrf/common-hal/bleio/Broadcaster.c
#: ports/nrf/common-hal/bleio/Peripheral.c
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Data too large for advertisement packet"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Data too large for the advertisement packet"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "Destination capacity is smaller than destination_length."
msgstr ""
#: ports/nrf/common-hal/audiobusio/I2SOut.c
msgid "Device in use"
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Display must have a 16 bit colorspace."
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Display rotation must be in 90 degree increments"
msgstr ""
@ -506,6 +542,7 @@ msgid "Drive mode not used when direction is input."
msgstr ""
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
msgid "EXTINT channel already in use"
msgstr "Avast! EXTINT channel already in use"
@ -520,41 +557,50 @@ msgstr ""
msgid "Expected a %q"
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/Descriptor.c
msgid "Expected a Characteristic"
msgstr ""
#: shared-bindings/bleio/Characteristic.c shared-bindings/bleio/Descriptor.c
#: shared-bindings/bleio/Service.c
#: shared-bindings/_bleio/Characteristic.c
msgid "Expected a Service"
msgstr ""
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
#: shared-bindings/_bleio/Service.c
msgid "Expected a UUID"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Expected an Address"
msgstr ""
#: shared-module/_pixelbuf/PixelBuf.c
#, c-format
msgid "Expected tuple of length %d, got %d"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to acquire mutex"
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed initiate attribute read, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c ports/nrf/sd_mutex.c
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr ""
#: ports/nrf/sd_mutex.c
#, c-format
msgid "Failed to acquire mutex, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Service.c
#, c-format
msgid "Failed to add characteristic, err 0x%04x"
#: ports/nrf/common-hal/_bleio/Service.c
msgid "Failed to add characteristic, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to add service"
msgstr ""
#: ports/nrf/common-hal/bleio/Peripheral.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#, c-format
msgid "Failed to add service, err 0x%04x"
msgid "Failed to add descriptor, err 0x%04x"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
@ -567,108 +613,101 @@ msgstr ""
msgid "Failed to allocate RX buffer of %d bytes"
msgstr ""
#: ports/nrf/common-hal/bleio/Adapter.c
msgid "Failed to change softdevice state"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to change softdevice state, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to connect:"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to connect: internal error"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to continue scanning"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to connect: timeout"
msgstr ""
#: ports/nrf/common-hal/bleio/Scanner.c
#, c-format
msgid "Failed to continue scanning, err 0x%04x"
#: ports/nrf/common-hal/_bleio/Service.c
msgid "Failed to create service, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to create mutex"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
#: ports/nrf/common-hal/_bleio/Connection.c
msgid "Failed to discover services"
msgstr ""
#: ports/nrf/common-hal/bleio/Adapter.c
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to get local address"
msgstr ""
#: ports/nrf/common-hal/bleio/Adapter.c
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to get softdevice state"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#, c-format
msgid "Failed to notify or indicate attribute value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Connection.c
msgid "Failed to pair"
msgstr ""
#: ports/nrf/common-hal/_bleio/Characteristic.c
#, c-format
msgid "Failed to read CCCD value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed to read attribute value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed to read gatts value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/UUID.c
#: ports/nrf/common-hal/_bleio/UUID.c
#, c-format
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to release mutex"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c ports/nrf/sd_mutex.c
#: ports/nrf/sd_mutex.c
#, c-format
msgid "Failed to release mutex, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to start advertising"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to start advertising, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Broadcaster.c
#: ports/nrf/common-hal/bleio/Peripheral.c
#: ports/nrf/common-hal/_bleio/Adapter.c
#, c-format
msgid "Failed to start advertising, err 0x%04x"
msgid "Failed to start connecting, error 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to start scanning"
#: ports/nrf/common-hal/_bleio/Connection.c
msgid "Failed to start pairing, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Scanner.c
#: ports/nrf/common-hal/_bleio/Adapter.c
#, c-format
msgid "Failed to start scanning, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Device.c
msgid "Failed to stop advertising"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to stop advertising, NRF_ERROR_%q"
msgstr ""
#: ports/nrf/common-hal/bleio/Broadcaster.c
#: ports/nrf/common-hal/bleio/Peripheral.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#, c-format
msgid "Failed to stop advertising, err 0x%04x"
msgid "Failed to write CCCD, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed to write attribute value, err 0x%04x"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Failed to write gatts value, err 0x%04x"
msgstr ""
@ -704,6 +743,11 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Group already used"
msgstr ""
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr ""
@ -760,7 +804,7 @@ msgstr ""
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr ""
#: shared-bindings/audioio/Mixer.c
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid channel count"
msgstr ""
@ -768,11 +812,11 @@ msgstr ""
msgid "Invalid direction."
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr ""
@ -810,15 +854,27 @@ msgstr ""
msgid "Invalid polarity"
msgstr ""
#: shared-bindings/_bleio/Characteristic.c
msgid "Invalid properties"
msgstr ""
#: shared-bindings/microcontroller/__init__.c
msgid "Invalid run mode."
msgstr ""
#: shared-bindings/audioio/Mixer.c
#: shared-module/_bleio/Attribute.c
msgid "Invalid security_mode"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice count"
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr ""
@ -826,6 +882,10 @@ msgstr ""
msgid "LHS of keyword arg must be an id"
msgstr ""
#: shared-module/displayio/Group.c
msgid "Layer already in a group."
msgstr ""
#: shared-module/displayio/Group.c
msgid "Layer must be a Group or TileGrid subclass."
msgstr ""
@ -870,8 +930,12 @@ msgstr ""
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr ""
#: shared-bindings/displayio/Display.c
msgid "Must be a Group subclass."
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
#: ports/nrf/common-hal/_bleio/Characteristic.c
msgid "No CCCD for this Characteristic"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogOut.c
@ -907,11 +971,19 @@ msgstr ""
msgid "No hardware random available"
msgstr ""
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
msgid "No hardware support on clk pin"
msgstr ""
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
msgid "No hardware support on pin"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr ""
#: py/moduerrno.c
msgid "No space left on device"
msgstr ""
@ -920,11 +992,13 @@ msgstr ""
msgid "No such file/directory"
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c
#: shared-bindings/audiopwmio/PWMAudioOut.c
msgid "Not playing"
msgstr ""
@ -950,8 +1024,8 @@ msgstr ""
#: shared-module/displayio/OnDiskBitmap.c
#, c-format
msgid ""
"Only monochrome, indexed 8bpp, and 16bpp or greater BMPs supported: %d bpp "
"given"
"Only monochrome, indexed 4bpp or 8bpp, and 16bpp or greater BMPs supported: "
"%d bpp given"
msgstr ""
#: shared-bindings/_pixelbuf/PixelBuf.c
@ -989,6 +1063,14 @@ msgstr ""
msgid "Plus any modules on the filesystem\n"
msgstr ""
#: shared-bindings/ps2io/Ps2.c
msgid "Pop from an empty Ps2 buffer"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr ""
#: main.c
msgid "Press any key to enter the REPL. Use CTRL-D to reload."
msgstr ""
@ -1021,6 +1103,10 @@ msgstr ""
msgid "Read-only object"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr ""
@ -1041,15 +1127,20 @@ msgstr "Runnin' in safe mode! Nay runnin' saved code.\n"
msgid "SDA or SCL needs a pull up"
msgstr ""
#: shared-bindings/audioio/Mixer.c
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
#, c-format
msgid "Sample rate too high. It must be less than %d"
msgstr ""
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Scan already in progess. Stop with stop_scan."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "Serializer in use"
@ -1064,11 +1155,6 @@ msgstr ""
msgid "Slices not supported"
msgstr ""
#: ports/nrf/common-hal/bleio/Adapter.c
#, c-format
msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
msgstr ""
#: extmod/modure.c
msgid "Splitting with sub-captures"
msgstr ""
@ -1090,6 +1176,12 @@ msgid ""
"your CIRCUITPY drive:\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Please make sure your power supply "
@ -1104,19 +1196,19 @@ msgid ""
"exit safe mode.\n"
msgstr ""
#: shared-module/audioio/Mixer.c
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr ""
#: shared-module/audioio/Mixer.c
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's channel count does not match the mixer's"
msgstr ""
#: shared-module/audioio/Mixer.c
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's sample rate does not match the mixer's"
msgstr ""
#: shared-module/audioio/Mixer.c
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's signedness does not match the mixer's"
msgstr ""
@ -1124,8 +1216,12 @@ msgstr ""
msgid "Tile height must exactly divide bitmap height"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile index out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255"
msgid "Tile value out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c
@ -1140,11 +1236,13 @@ msgstr ""
msgid "Too many channels in sample."
msgstr ""
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/I2CDisplay.c
#: shared-bindings/displayio/ParallelBus.c
msgid "Too many display busses"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Too many displays"
msgstr ""
@ -1164,15 +1262,15 @@ msgstr ""
msgid "USB Error"
msgstr ""
#: shared-bindings/bleio/UUID.c
msgid "UUID integer value not in range 0 to 0xffff"
#: shared-bindings/_bleio/UUID.c
msgid "UUID integer value must be 0-0xffff"
msgstr ""
#: shared-bindings/bleio/UUID.c
#: shared-bindings/_bleio/UUID.c
msgid "UUID string not 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'"
msgstr ""
#: shared-bindings/bleio/UUID.c
#: shared-bindings/_bleio/UUID.c
msgid "UUID value is not str, int or byte buffer"
msgstr ""
@ -1181,6 +1279,11 @@ msgstr ""
msgid "Unable to allocate buffers for signed conversion"
msgstr ""
#: shared-module/displayio/I2CDisplay.c
#, c-format
msgid "Unable to find I2C Display at %x"
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "Unable to find free GCLK"
@ -1198,7 +1301,7 @@ msgstr ""
msgid "Unable to write to nvm."
msgstr ""
#: ports/nrf/common-hal/bleio/UUID.c
#: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type"
msgstr ""
@ -1211,11 +1314,11 @@ msgstr ""
msgid "Unsupported baudrate"
msgstr ""
#: shared-module/displayio/Display.c
#: shared-module/displayio/display_core.c
msgid "Unsupported display bus type"
msgstr ""
#: shared-module/audioio/WaveFile.c
#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr ""
@ -1227,12 +1330,18 @@ msgstr ""
msgid "Unsupported pull value."
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
msgid "Value length != required fixed length"
msgstr ""
#: shared-module/audioio/Mixer.c
msgid "Voice index too high"
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
msgid "Value length > max_length"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
#: main.c
@ -1317,10 +1426,6 @@ msgstr ""
msgid "attributes not supported yet"
msgstr ""
#: ports/nrf/common-hal/bleio/Characteristic.c
msgid "bad GATT role"
msgstr ""
#: py/builtinevex.c
msgid "bad compile mode"
msgstr ""
@ -1349,7 +1454,7 @@ msgstr ""
msgid "bits must be 8"
msgstr "pieces must be of 8"
#: shared-bindings/audioio/Mixer.c
#: shared-bindings/audiomixer/Mixer.c
msgid "bits_per_sample must be 8 or 16"
msgstr ""
@ -1362,7 +1467,7 @@ msgstr ""
msgid "buf is too small. need %d bytes"
msgstr ""
#: shared-bindings/audioio/RawSample.c
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
@ -1573,10 +1678,6 @@ msgstr ""
msgid "casting"
msgstr ""
#: shared-bindings/bleio/Service.c
msgid "characteristics includes an object that is not a Characteristic"
msgstr ""
#: shared-bindings/_stage/Text.c
msgid "chars buffer too small"
msgstr ""
@ -1724,7 +1825,8 @@ msgstr ""
msgid "extra positional arguments given"
msgstr ""
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/audiocore/WaveFile.c
#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr ""
@ -1853,8 +1955,9 @@ msgstr ""
msgid "integer required"
msgstr ""
#: ports/nrf/common-hal/bleio/Broadcaster.c
msgid "interval not in range 0.0020 to 10.24"
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
msgstr ""
#: extmod/machine_i2c.c
@ -1946,6 +2049,10 @@ msgstr ""
msgid "length argument not allowed for this type"
msgstr ""
#: shared-bindings/audiomixer/MixerVoice.c
msgid "level must be between 0 and 1"
msgstr ""
#: py/objarray.c
msgid "lhs and rhs should be compatible"
msgstr ""
@ -1974,6 +2081,12 @@ msgstr ""
msgid "math domain error"
msgstr ""
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
msgid "max_length must be 0-%d when fixed_length is %s"
msgstr ""
#: py/runtime.c
msgid "maximum recursion depth exceeded"
msgstr ""
@ -2019,10 +2132,6 @@ msgstr ""
msgid "name '%q' is not defined"
msgstr ""
#: shared-bindings/bleio/Peripheral.c
msgid "name must be a string"
msgstr ""
#: py/runtime.c
msgid "name not defined"
msgstr ""
@ -2064,10 +2173,19 @@ msgstr ""
msgid "no module named '%q'"
msgstr ""
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/I2CDisplay.c
#: shared-bindings/displayio/ParallelBus.c
msgid "no reset pin available"
msgstr ""
#: py/runtime.c shared-bindings/_pixelbuf/__init__.c
msgid "no such attribute"
msgstr ""
#: ports/nrf/common-hal/_bleio/Connection.c
msgid "non-UUID found in service_uuids_whitelist"
msgstr ""
#: py/compile.c
msgid "non-default argument follows default argument"
msgstr ""
@ -2084,7 +2202,7 @@ msgstr ""
msgid "non-keyword arg after keyword arg"
msgstr ""
#: shared-bindings/bleio/UUID.c
#: shared-bindings/_bleio/UUID.c
msgid "not a 128-bit UUID"
msgstr ""
@ -2125,7 +2243,7 @@ msgstr ""
msgid "object not callable"
msgstr ""
#: py/sequence.c
#: py/sequence.c shared-bindings/displayio/Group.c
msgid "object not in sequence"
msgstr ""
@ -2150,6 +2268,14 @@ msgstr ""
msgid "offset out of bounds"
msgstr ""
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only bit_depth=16 is supported"
msgstr ""
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr ""
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported"
@ -2258,7 +2384,7 @@ msgstr ""
msgid "rsplit(None,n)"
msgstr ""
#: shared-bindings/audioio/RawSample.c
#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
@ -2276,10 +2402,6 @@ msgstr ""
msgid "script compilation not supported"
msgstr ""
#: shared-bindings/bleio/Peripheral.c
msgid "services includes an object that is not a Service"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@ -2377,10 +2499,6 @@ msgstr ""
msgid "threshold must be in the range 0-65536"
msgstr ""
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr ""
#: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence"
msgstr ""
@ -2393,7 +2511,7 @@ msgstr ""
msgid "timeout >100 (units are now seconds, not msecs)"
msgstr ""
#: shared-bindings/bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "timeout must be >= 0.0"
msgstr ""
@ -2537,10 +2655,19 @@ msgstr ""
msgid "unsupported types for %q: '%s', '%s'"
msgstr ""
#: py/objint.c
#, c-format
msgid "value must fit in %d byte(s)"
msgstr ""
#: shared-bindings/displayio/Bitmap.c
msgid "value_count must be > 0"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr ""
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "write_args must be a list, tuple, or None"
msgstr ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

37
main.c
View File

@ -45,7 +45,6 @@
#include "background.h"
#include "mpconfigboard.h"
#include "shared-module/displayio/__init__.h"
#include "supervisor/cpu.h"
#include "supervisor/memory.h"
#include "supervisor/port.h"
@ -58,6 +57,10 @@
#include "supervisor/shared/stack.h"
#include "supervisor/serial.h"
#if CIRCUITPY_DISPLAYIO
#include "shared-module/displayio/__init__.h"
#endif
#if CIRCUITPY_NETWORK
#include "shared-module/network/__init__.h"
#endif
@ -66,6 +69,11 @@
#include "shared-module/board/__init__.h"
#endif
#if CIRCUITPY_BLEIO
#include "shared-bindings/_bleio/__init__.h"
#include "supervisor/shared/bluetooth.h"
#endif
void do_str(const char *src, mp_parse_input_kind_t input_kind) {
mp_lexer_t *lex = mp_lexer_new_from_str_len(MP_QSTR__lt_stdin_gt_, src, strlen(src), 0);
if (lex == NULL) {
@ -187,7 +195,9 @@ void cleanup_after_vm(supervisor_allocation* heap) {
supervisor_move_memory();
reset_port();
#if CIRCUITPY_BOARD
reset_board_busses();
#endif
reset_board();
reset_status_led();
}
@ -248,6 +258,9 @@ bool run_code_py(safe_mode_t safe_mode) {
}
bool serial_connected_before_animation = false;
#if CIRCUITPY_DISPLAYIO
bool refreshed_epaper_display = false;
#endif
rgb_status_animation_t animation;
prep_rgb_status_animation(&result, found_main, safe_mode, &animation);
while (true) {
@ -285,6 +298,13 @@ bool run_code_py(safe_mode_t safe_mode) {
}
serial_connected_before_animation = serial_connected();
// Refresh the ePaper display if we have one. That way it'll show an error message.
#if CIRCUITPY_DISPLAYIO
if (!refreshed_epaper_display) {
refreshed_epaper_display = maybe_refresh_epaperdisplay();
}
#endif
tick_rgb_status_animation(&animation);
}
}
@ -424,6 +444,10 @@ int __attribute__((used)) main(void) {
// Start serial and HID after giving boot.py a chance to tweak behavior.
serial_init();
#if CIRCUITPY_BLEIO
supervisor_start_bluetooth();
#endif
// Boot script is finished, so now go into REPL/main mode.
int exit_code = PYEXEC_FORCED_EXIT;
bool skip_repl = true;
@ -455,9 +479,18 @@ void gc_collect(void) {
// This collects root pointers from the VFS mount table. Some of them may
// have lost their references in the VM even though they are mounted.
gc_collect_root((void**)&MP_STATE_VM(vfs_mount_table), sizeof(mp_vfs_mount_t) / sizeof(mp_uint_t));
#if CIRCUITPY_DISPLAYIO
displayio_gc_collect();
#endif
#if CIRCUITPY_BLEIO
common_hal_bleio_gc_collect();
#endif
// This naively collects all object references from an approximate stack
// range.
gc_collect_root((void**)sp, ((uint32_t)&_estack - sp) / sizeof(uint32_t));
gc_collect_root((void**)sp, ((uint32_t)port_stack_get_top() - sp) / sizeof(uint32_t));
gc_collect_end();
}

View File

@ -99,10 +99,9 @@ endif
#Debugging/Optimization
ifeq ($(DEBUG), 1)
# Turn on Python modules useful for debugging (e.g. uheap, ustack).
CFLAGS += -ggdb
# You may want to disable -flto if it interferes with debugging.
CFLAGS += -flto
CFLAGS += -flto -flto-partition=none
# You may want to enable these flags to make setting breakpoints easier.
# CFLAGS += -fno-inline -fno-ipa-sra
ifeq ($(CHIP_FAMILY), samd21)
@ -112,13 +111,18 @@ else
# -finline-limit can shrink the image size.
# -finline-limit=80 or so is similar to not having it on.
# There is no simple default value, though.
ifeq ($(INTERNAL_FLASH_FILESYSTEM),1)
CFLAGS += -finline-limit=50
# Do a default shrink for small builds.
ifndef CFLAGS_INLINE_LIMIT
ifeq ($(CIRCUITPY_SMALL_BUILD),1)
CFLAGS_INLINE_LIMIT = 50
endif
endif
ifdef CFLAGS_INLINE_LIMIT
CFLAGS += -finline-limit=$(CFLAGS_INLINE_LIMIT)
endif
CFLAGS += -flto
CFLAGS += -flto -flto-partition=none
endif
CFLAGS += $(INC) -Wall -Werror -std=gnu11 -nostdlib $(BASE_CFLAGS) $(CFLAGS_MOD) $(COPT)
@ -285,7 +289,8 @@ SRC_COMMON_HAL_EXPANDED = $(addprefix shared-bindings/, $(SRC_COMMON_HAL)) \
$(addprefix common-hal/, $(SRC_COMMON_HAL))
SRC_SHARED_MODULE_EXPANDED = $(addprefix shared-bindings/, $(SRC_SHARED_MODULE)) \
$(addprefix shared-module/, $(SRC_SHARED_MODULE))
$(addprefix shared-module/, $(SRC_SHARED_MODULE)) \
$(addprefix shared-module/, $(SRC_SHARED_MODULE_INTERNAL))
SRC_S = supervisor/$(CHIP_FAMILY)_cpu.s

View File

@ -124,15 +124,20 @@ Setup
-----
An ARM compiler is required for the build, along with the associated binary
utilities. On Ubuntu, these can be installed as follows:
utilities. They can be installed as follows:
.. code-block:: shell
- Ubuntu
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get install gcc-arm-embedded
.. code-block:: shell
On Arch Linux the compiler is available for via the package
``arm-none-eabi-gcc``.
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get install gcc-arm-embedded
- Arch Linux
.. code-block:: shell
sudo pacman -S arm-none-eabi-gcc arm-none-eabi-newlib
For other systems, the `GNU Arm Embedded Toolchain <https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads>`_
may be available in binary form.

View File

@ -51,7 +51,7 @@
// <i> This defines the current in output buffer according to conversion rate
// <id> dac0_arch_cctrl
#ifndef CONF_DAC0_CCTRL
#define CONF_DAC0_CCTRL 1
#define CONF_DAC0_CCTRL 0
#endif
// <q> Run in standby
@ -90,7 +90,7 @@
// <i> This defines the current in output buffer according to conversion rate
// <id> dac1_arch_cctrl
#ifndef CONF_DAC1_CCTRL
#define CONF_DAC1_CCTRL 1
#define CONF_DAC1_CCTRL 0
#endif
// <q> Run in standby

View File

@ -1,8 +1,9 @@
// Circuit Python SAMD51 clock tree:
// DFLL48M (with USBCRM on to sync with external USB ref) -> GCLK1, GCLK5
// DFLL48M (with USBCRM on to sync with external USB ref) -> GCLK1, GCLK5, GCLK6
// GCLK1 (48MHz) -> 48 MHz peripherals
// GCLK5 (48 MHz divided down to 2 MHz) -> DPLL0, DAC peripherals
// GCLK5 (48 MHz divided down to 2 MHz) -> DPLL0
// DPLL0 (multiplied up to 120 MHz) -> GCLK0, GCLK4 (output for monitoring)
// GCLK6 (48 MHz divided down to 12 MHz) -> DAC
// We'd like to use XOSC32K as a ref for DFLL48M on boards with a 32kHz crystal,
// but haven't figured that out yet.
@ -472,7 +473,7 @@
// <i> Indicates whether generic clock 6 configuration is enabled or not
// <id> enable_gclk_gen_6
#ifndef CONF_GCLK_GENERATOR_6_CONFIG
#define CONF_GCLK_GENERATOR_6_CONFIG 0
#define CONF_GCLK_GENERATOR_6_CONFIG 1
#endif
// <h> Generic Clock Generator Control
@ -488,7 +489,7 @@
// <i> This defines the clock source for generic clock generator 6
// <id> gclk_gen_6_oscillator
#ifndef CONF_GCLK_GEN_6_SOURCE
#define CONF_GCLK_GEN_6_SOURCE GCLK_GENCTRL_SRC_XOSC1
#define CONF_GCLK_GEN_6_SOURCE GCLK_GENCTRL_SRC_DFLL
#endif
// <q> Run in Standby
@ -523,14 +524,14 @@
// <i> Indicates whether Improve Duty Cycle is enabled or not
// <id> gclk_arch_gen_6_idc
#ifndef CONF_GCLK_GEN_6_IDC
#define CONF_GCLK_GEN_6_IDC 0
#define CONF_GCLK_GEN_6_IDC 1
#endif
// <q> Generic Clock Generator Enable
// <i> Indicates whether Generic Clock Generator Enable is enabled or not
// <id> gclk_arch_gen_6_enable
#ifndef CONF_GCLK_GEN_6_GENEN
#define CONF_GCLK_GEN_6_GENEN 0
#define CONF_GCLK_GEN_6_GENEN 1
#endif
// </h>
@ -538,7 +539,7 @@
//<o> Generic clock generator 6 division <0x0000-0xFFFF>
// <id> gclk_gen_6_div
#ifndef CONF_GCLK_GEN_6_DIV
#define CONF_GCLK_GEN_6_DIV 1
#define CONF_GCLK_GEN_6_DIV 4
#endif
// </h>
// </e>

View File

@ -73,7 +73,7 @@
// <id> dac_gclk_selection
// <i> Select the clock source for DAC.
#ifndef CONF_GCLK_DAC_SRC
#define CONF_GCLK_DAC_SRC GCLK_PCHCTRL_GEN_GCLK5_Val
#define CONF_GCLK_DAC_SRC GCLK_PCHCTRL_GEN_GCLK6_Val
#endif
/**

View File

@ -29,25 +29,49 @@
#include "samd/events.h"
#include "samd/dma.h"
#include "shared-bindings/audioio/RawSample.h"
#include "shared-bindings/audioio/WaveFile.h"
#include "shared-bindings/audiocore/RawSample.h"
#include "shared-bindings/audiocore/WaveFile.h"
#include "py/mpstate.h"
#include "py/runtime.h"
#if CIRCUITPY_AUDIOIO || CIRCUITPY_AUDIOBUSIO
static audio_dma_t* audio_dma_state[AUDIO_DMA_CHANNEL_COUNT];
// This cannot be in audio_dma_state because it's volatile.
static volatile bool audio_dma_pending[AUDIO_DMA_CHANNEL_COUNT];
uint8_t find_free_audio_dma_channel(void) {
static bool audio_dma_allocated[AUDIO_DMA_CHANNEL_COUNT];
uint8_t audio_dma_allocate_channel(void) {
uint8_t channel;
for (channel = 0; channel < AUDIO_DMA_CHANNEL_COUNT; channel++) {
if (!dma_channel_enabled(channel)) {
if (!audio_dma_allocated[channel]) {
audio_dma_allocated[channel] = true;
return channel;
}
}
return channel;
return channel; // i.e., return failure
}
void audio_dma_free_channel(uint8_t channel) {
assert(channel < AUDIO_DMA_CHANNEL_COUNT);
assert(audio_dma_allocated[channel]);
audio_dma_disable_channel(channel);
audio_dma_allocated[channel] = false;
}
void audio_dma_disable_channel(uint8_t channel) {
if (channel >= AUDIO_DMA_CHANNEL_COUNT)
return;
dma_disable_channel(channel);
}
void audio_dma_enable_channel(uint8_t channel) {
if (channel >= AUDIO_DMA_CHANNEL_COUNT)
return;
dma_enable_channel(channel);
}
void audio_dma_convert_signed(audio_dma_t* dma, uint8_t* buffer, uint32_t buffer_length,
@ -153,7 +177,7 @@ audio_dma_result audio_dma_setup_playback(audio_dma_t* dma,
bool output_signed,
uint32_t output_register_address,
uint8_t dma_trigger_source) {
uint8_t dma_channel = find_free_audio_dma_channel();
uint8_t dma_channel = audio_dma_allocate_channel();
if (dma_channel >= AUDIO_DMA_CHANNEL_COUNT) {
return AUDIO_DMA_DMA_BUSY;
}
@ -252,16 +276,20 @@ audio_dma_result audio_dma_setup_playback(audio_dma_t* dma,
}
dma_configure(dma_channel, dma_trigger_source, true);
dma_enable_channel(dma_channel);
audio_dma_enable_channel(dma_channel);
return AUDIO_DMA_OK;
}
void audio_dma_stop(audio_dma_t* dma) {
dma_disable_channel(dma->dma_channel);
disable_event_channel(dma->event_channel);
MP_STATE_PORT(playing_audio)[dma->dma_channel] = NULL;
uint8_t channel = dma->dma_channel;
if (channel < AUDIO_DMA_CHANNEL_COUNT) {
audio_dma_disable_channel(channel);
disable_event_channel(dma->event_channel);
MP_STATE_PORT(playing_audio)[channel] = NULL;
audio_dma_state[channel] = NULL;
audio_dma_free_channel(dma->dma_channel);
}
dma->dma_channel = AUDIO_DMA_CHANNEL_COUNT;
}
@ -290,7 +318,8 @@ void audio_dma_reset(void) {
for (uint8_t i = 0; i < AUDIO_DMA_CHANNEL_COUNT; i++) {
audio_dma_state[i] = NULL;
audio_dma_pending[i] = false;
dma_disable_channel(i);
audio_dma_allocated[i] = false;
audio_dma_disable_channel(i);
dma_descriptor(i)->BTCTRL.bit.VALID = false;
MP_STATE_PORT(playing_audio)[i] = NULL;
}
@ -333,3 +362,4 @@ void audio_dma_background(void) {
audio_dma_pending[i] = false;
}
}
#endif

View File

@ -29,8 +29,8 @@
#include "extmod/vfs_fat.h"
#include "py/obj.h"
#include "shared-module/audioio/RawSample.h"
#include "shared-module/audioio/WaveFile.h"
#include "shared-module/audiocore/RawSample.h"
#include "shared-module/audiocore/WaveFile.h"
typedef struct {
mp_obj_t sample;
@ -64,7 +64,8 @@ uint8_t audiosample_channel_count(mp_obj_t sample_obj);
void audio_dma_init(audio_dma_t* dma);
void audio_dma_reset(void);
uint8_t find_free_audio_dma_channel(void);
uint8_t audio_dma_allocate_channel(void);
void audio_dma_free_channel(uint8_t channel);
// This sets everything up but doesn't start the timer.
// Sample is the python object for the sample to play.
@ -83,6 +84,9 @@ audio_dma_result audio_dma_setup_playback(audio_dma_t* dma,
bool output_signed,
uint32_t output_register_address,
uint8_t dma_trigger_source);
void audio_dma_disable_channel(uint8_t channel);
void audio_dma_enable_channel(uint8_t channel);
void audio_dma_stop(audio_dma_t* dma);
bool audio_dma_get_playing(audio_dma_t* dma);
void audio_dma_pause(audio_dma_t* dma);

View File

@ -56,11 +56,11 @@ void run_background_tasks(void) {
assert_heap_ok();
running_background_tasks = true;
#if (defined(SAMD21) && defined(PIN_PA02)) || defined(SAMD51)
#if CIRCUITPY_AUDIOIO || CIRCUITPY_AUDIOBUSIO
audio_dma_background();
#endif
#if CIRCUITPY_DISPLAYIO
displayio_refresh_displays();
displayio_background();
#endif
#if CIRCUITPY_NETWORK

View File

@ -4,9 +4,10 @@ USB_PID = 0x8053
USB_PRODUCT = "Arduino MKR1300"
USB_MANUFACTURER = "Arduino"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_SMALL_BUILD = 1
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
SUPEROPT_GC = 0

View File

@ -1,12 +1,14 @@
LD_FILE = boards/samd21x18-bootloader.ld
USB_VID = 0x239A
USB_PID = 0x8035
USB_PID = 0x8050
USB_PRODUCT = "Arduino MKRZero"
USB_MANUFACTURER = "Arduino"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_SMALL_BUILD = 1
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
SUPEROPT_GC = 0

View File

@ -4,9 +4,11 @@ USB_PID = 0x824D
USB_PRODUCT = "Arduino Zero"
USB_MANUFACTURER = "Arduino"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_SMALL_BUILD = 1
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
SUPEROPT_GC = 0

View File

@ -1,12 +1,12 @@
LD_FILE = boards/samd21x18-bootloader.ld
USB_VID = 0xBAB3
USB_PID = 0x1209
USB_VID = 0x1209
USB_PID = 0xBAB3
USB_PRODUCT = "Bast Pro Mini M0"
USB_MANUFACTURER = "Electronic Cats"
CHIP_VARIANT = SAMD21E18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_SMALL_BUILD = 1
CHIP_VARIANT = SAMD21E18A
CHIP_FAMILY = samd21

View File

@ -24,17 +24,24 @@
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_ESP8266_COMMON_HAL_PULSEIO_PWMOUT_H
#define MICROPY_INCLUDED_ESP8266_COMMON_HAL_PULSEIO_PWMOUT_H
#include "boards/board.h"
#include "mpconfigboard.h"
#include "hal/include/hal_gpio.h"
#include "common-hal/microcontroller/Pin.h"
typedef struct {
mp_obj_base_t base;
int channel;
const mcu_pin_obj_t* pin;
} pulseio_pwmout_obj_t;
void board_init(void) {
// Don't reset:
// - USB Host Enable Pin
// - reset pin of the USB Hub
//
// If either are reset, USB devices will disconnect when the MCU restarts
never_reset_pin_number(PIN_PA07);
never_reset_pin_number(PIN_PB08);
}
void pwmout_reset(void);
bool board_requests_safe_mode(void) {
return false;
}
#endif // MICROPY_INCLUDED_ESP8266_COMMON_HAL_PULSEIO_PWMOUT_H
void reset_board(void) {
}

View File

@ -0,0 +1,37 @@
#define MICROPY_HW_BOARD_NAME "Capable Robot Programmable USB Hub"
#define MICROPY_HW_MCU_NAME "samd51g19"
#define CIRCUITPY_MCU_FAMILY samd51
#define MICROPY_HW_LED_STATUS (&pin_PA22)
// These are pins not to reset.
// QSPI Data pins
#define MICROPY_PORT_A (PORT_PA08 | PORT_PA09 | PORT_PA10 | PORT_PA11)
// QSPI CS, and QSPI SCK
#define MICROPY_PORT_B (PORT_PB10 | PORT_PB11)
#define MICROPY_PORT_C (0)
#define MICROPY_PORT_D (0)
#define AUTORESET_DELAY_MS 500
// If you change this, then make sure to update the linker scripts as well to
// make sure you don't overwrite code
#define CIRCUITPY_INTERNAL_NVM_SIZE 8192
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE)
#define DEFAULT_I2C_BUS_SCL (&pin_PA23)
#define DEFAULT_I2C_BUS_SDA (&pin_PA22)
#define DEFAULT_SPI_BUS_SCK (&pin_PA01)
#define DEFAULT_SPI_BUS_MOSI (&pin_PA00)
#define DEFAULT_SPI_BUS_MISO (&pin_PB23)
#define DEFAULT_UART_BUS_RX (&pin_PA16)
#define DEFAULT_UART_BUS_TX (&pin_PA17)
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1

View File

@ -0,0 +1,16 @@
LD_FILE = boards/samd51x19-bootloader-external-flash.ld
USB_VID = 0x04D8
USB_PID = 0xEDB3
USB_PRODUCT = "Programmable USB Hub"
USB_MANUFACTURER = "Capable Robot Components"
CHIP_VARIANT = SAMD51G19A
CHIP_FAMILY = samd51
QSPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICE_COUNT = 1
EXTERNAL_FLASH_DEVICES = GD25Q16C
LONGINT_IMPL = MPZ
# No I2S on SAMD51G
CIRCUITPY_AUDIOBUSIO = 0

View File

@ -0,0 +1,36 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_ANMB), MP_ROM_PTR(&pin_PA02) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_ANVLIM), MP_ROM_PTR(&pin_PA04) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_AN5V), MP_ROM_PTR(&pin_PA05) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_MBPWM), MP_ROM_PTR(&pin_PA14) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_MBINT), MP_ROM_PTR(&pin_PA15) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_MBCS), MP_ROM_PTR(&pin_PA18) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_MBRST), MP_ROM_PTR(&pin_PB09) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_LED1), MP_ROM_PTR(&pin_PA19) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_LED2), MP_ROM_PTR(&pin_PA20) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_LED3), MP_ROM_PTR(&pin_PA21) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA16) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA17) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_USBHEN), MP_ROM_PTR(&pin_PA07) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_USBRST), MP_ROM_PTR(&pin_PB08) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA23) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_SDA2), MP_ROM_PTR(&pin_PA12) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCL2), MP_ROM_PTR(&pin_PA13) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA01) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA00) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB23) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -1,12 +1,12 @@
LD_FILE = boards/samd21x18-bootloader.ld
USB_VID = 0xBAB2
USB_PID = 0x1209
USB_VID = 0x1209
USB_PID = 0xBAB2
USB_PRODUCT = "CatWAN USBStick"
USB_MANUFACTURER = "Electronic Cats"
CHIP_VARIANT = SAMD21E18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_SMALL_BUILD = 1
CHIP_VARIANT = SAMD21E18A
CHIP_FAMILY = samd21

View File

@ -4,6 +4,9 @@ USB_PID = 0x8019
USB_PRODUCT = "CircuitPlayground Express"
USB_MANUFACTURER = "Adafruit Industries LLC"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
SPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICE_COUNT = 2
EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
@ -14,8 +17,8 @@ CIRCUITPY_DISPLAYIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_I2CSLAVE = 0
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
SUPEROPT_GC = 0
CFLAGS_INLINE_LIMIT = 55
# Include these Python libraries in firmware.
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
@ -24,10 +27,3 @@ FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_LIS3DH
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Thermistor
# Tweak inlining depending on language.
ifeq ($(TRANSLATION), zh_Latn_pinyin)
CFLAGS_INLINE_LIMIT = 35
else
CFLAGS_INLINE_LIMIT = 55
endif

View File

@ -4,26 +4,23 @@ USB_PID = 0x8019
USB_PRODUCT = "CircuitPlayground Express with Crickit libraries"
USB_MANUFACTURER = "Adafruit Industries LLC"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
SPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICE_COUNT = 2
EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
# Turn off longints for Crickit build to make room for additional frozen libs.
LONGINT_IMPL = NONE
# Turn off features and optimizations for Crickit build to make room for additional frozen libs.
LONGINT_IMPL = NONE
CIRCUITPY_DISPLAYIO = 0
CIRCUITPY_PIXELBUF = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_I2CSLAVE = 0
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
# Tweak inlining depending on language.
ifeq ($(TRANSLATION), zh_Latn_pinyin)
CFLAGS_INLINE_LIMIT = 35
else
SUPEROPT_GC = 0
CFLAGS_INLINE_LIMIT = 55
endif
# Include these Python libraries in firmware.
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice

View File

@ -0,0 +1,65 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <string.h>
#include "boards/board.h"
#include "common-hal/microcontroller/Pin.h"
#include "hal/include/hal_gpio.h"
#include "shared-bindings/digitalio/DigitalInOut.h"
#include "shared-bindings/neopixel_write/__init__.h"
void board_init(void)
{
}
// Check the status of the two buttons on CircuitPlayground Express. If both are
// pressed, then boot into user safe mode.
bool board_requests_safe_mode(void) {
gpio_set_pin_function(PIN_PA14, GPIO_PIN_FUNCTION_OFF);
gpio_set_pin_direction(PIN_PA14, GPIO_DIRECTION_IN);
gpio_set_pin_pull_mode(PIN_PA14, GPIO_PULL_DOWN);
gpio_set_pin_function(PIN_PA28, GPIO_PIN_FUNCTION_OFF);
gpio_set_pin_direction(PIN_PA28, GPIO_DIRECTION_IN);
gpio_set_pin_pull_mode(PIN_PA28, GPIO_PULL_DOWN);
bool safe_mode = gpio_get_pin_level(PIN_PA14) &&
gpio_get_pin_level(PIN_PA28);
reset_pin_number(PIN_PA14);
reset_pin_number(PIN_PA28);
return safe_mode;
}
void reset_board(void) {
uint8_t empty[30];
memset(empty, 0, 30);
digitalio_digitalinout_obj_t neopixel_pin;
common_hal_digitalio_digitalinout_construct(&neopixel_pin, &pin_PB23);
common_hal_digitalio_digitalinout_switch_to_output(&neopixel_pin, false,
DRIVE_MODE_PUSH_PULL);
common_hal_neopixel_write(&neopixel_pin, empty, 30);
common_hal_digitalio_digitalinout_deinit(&neopixel_pin);
}

View File

@ -0,0 +1,48 @@
#define MICROPY_HW_BOARD_NAME "Adafruit CircuitPlayground Express with displayio"
#define MICROPY_HW_MCU_NAME "samd21g18"
#define MICROPY_HW_LED_STATUS (&pin_PA17)
// Don't allow touch on A0 (PA02), because it's connected to the speaker.
#define PA02_NO_TOUCH (true)
// Salae reads 12mhz which is the limit even though we set it to the safer 8mhz.
#define SPI_FLASH_BAUDRATE (8000000)
// On-board flash
#define SPI_FLASH_MOSI_PIN &pin_PA20
#define SPI_FLASH_MISO_PIN &pin_PA16
#define SPI_FLASH_SCK_PIN &pin_PA21
#define SPI_FLASH_CS_PIN &pin_PB22
// These are pins not to reset.
#define MICROPY_PORT_A (0)
#define MICROPY_PORT_B (0)
#define MICROPY_PORT_C (0)
#define SPEAKER_ENABLE_PIN (&pin_PA30)
// If you change this, then make sure to update the linker scripts as well to
// make sure you don't overwrite code.
#define CIRCUITPY_INTERNAL_NVM_SIZE 256
#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - CIRCUITPY_INTERNAL_NVM_SIZE)
#define CALIBRATE_CRYSTALLESS 1
// Explanation of how a user got into safe mode.
#define BOARD_USER_SAFE_MODE_ACTION "pressing both buttons at start up"
#define DEFAULT_I2C_BUS_SCL (&pin_PB03)
#define DEFAULT_I2C_BUS_SDA (&pin_PB02)
#define DEFAULT_SPI_BUS_SCK (&pin_PA05)
#define DEFAULT_SPI_BUS_MOSI (&pin_PA07)
#define DEFAULT_SPI_BUS_MISO (&pin_PA06)
#define DEFAULT_UART_BUS_RX (&pin_PB09)
#define DEFAULT_UART_BUS_TX (&pin_PB08)
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1

View File

@ -0,0 +1,31 @@
LD_FILE = boards/samd21x18-bootloader-external-flash-crystalless.ld
USB_VID = 0x239A
USB_PID = 0x8019
USB_PRODUCT = "CircuitPlayground Express with displayio"
USB_MANUFACTURER = "Adafruit Industries LLC"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
SPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICE_COUNT = 2
EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
# Turn off features and optimizations for Crickit build to make room for additional frozen libs.
LONGINT_IMPL = NONE
CIRCUITPY_BITBANGIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_I2CSLAVE = 0
CIRCUITPY_PIXELBUF = 0
CIRCUITPY_GAMEPAD = 0
CIRCUITPY_RTC = 0
SUPEROPT_GC = 0
CFLAGS_INLINE_LIMIT = 55
# Include these Python libraries in firmware.
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_CircuitPlayground
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_LIS3DH
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Thermistor

View File

@ -0,0 +1,63 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA02) },
{ MP_ROM_QSTR(MP_QSTR_SPEAKER), MP_ROM_PTR(&pin_PA02) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA05) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA05) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PB03) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PB03) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PB03) },
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PB02) },
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PB02) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PB02) },
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PB09) },
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PB09) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB09) },
{ MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_PB08) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PB08) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB08) },
{ MP_ROM_QSTR(MP_QSTR_LIGHT), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_TEMPERATURE), MP_ROM_PTR(&pin_PA09) },
{ MP_ROM_QSTR(MP_QSTR_A9), MP_ROM_PTR(&pin_PA09) },
{ MP_ROM_QSTR(MP_QSTR_BUTTON_A), MP_ROM_PTR(&pin_PA28) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA28) },
{ MP_ROM_QSTR(MP_QSTR_BUTTON_B), MP_ROM_PTR(&pin_PA14) },
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA14) },
{ MP_ROM_QSTR(MP_QSTR_SLIDE_SWITCH), MP_ROM_PTR(&pin_PA15) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA15) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PB23) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PB23) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA17) },
{ MP_ROM_QSTR(MP_QSTR_REMOTEIN), MP_ROM_PTR(&pin_PA12) },
{ MP_ROM_QSTR(MP_QSTR_IR_RX), MP_ROM_PTR(&pin_PA12) },
{ MP_ROM_QSTR(MP_QSTR_REMOTEOUT), MP_ROM_PTR(&pin_PA23) },
{ MP_ROM_QSTR(MP_QSTR_IR_TX), MP_ROM_PTR(&pin_PA23) },
{ MP_ROM_QSTR(MP_QSTR_IR_PROXIMITY), MP_ROM_PTR(&pin_PA04) },
{ MP_ROM_QSTR(MP_QSTR_MICROPHONE_CLOCK), MP_ROM_PTR(&pin_PA10) },
{ MP_ROM_QSTR(MP_QSTR_MICROPHONE_DATA), MP_ROM_PTR(&pin_PA08) },
{ MP_ROM_QSTR(MP_QSTR_ACCELEROMETER_INTERRUPT), MP_ROM_PTR(&pin_PA13) },
{ MP_ROM_QSTR(MP_QSTR_ACCELEROMETER_SDA), MP_ROM_PTR(&pin_PA00) },
{ MP_ROM_QSTR(MP_QSTR_ACCELEROMETER_SCL), MP_ROM_PTR(&pin_PA01) },
{ MP_ROM_QSTR(MP_QSTR_SPEAKER_ENABLE), MP_ROM_PTR(&pin_PA30) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA05) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -4,14 +4,13 @@ USB_PID = 0x8021
USB_PRODUCT = "CP32-M4"
USB_MANUFACTURER = "Nadda-Reel Company LLC"
CHIP_VARIANT = SAMD51J20A
CHIP_FAMILY = samd51
QSPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICE_COUNT = 1
EXTERNAL_FLASH_DEVICES = "W25Q128JV_PM"
# No I2S on SAMD51G
CIRCUITPY_PS2IO = 1
# No I2S on SAMD51G.
CIRCUITPY_AUDIOBUSIO = 0
# No touch on SAMD51 yet
CIRCUITPY_TOUCHIO = 0
CHIP_VARIANT = SAMD51J20A
CHIP_FAMILY = samd51

View File

@ -4,17 +4,14 @@ USB_PID = 0x0001
USB_PRODUCT = "Datalore IP M4"
USB_MANUFACTURER = "TG-Boards"
QSPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICE_COUNT = 3
EXTERNAL_FLASH_DEVICES = "GD25Q16C, W25Q16JV_IQ, W25Q16JV_IM"
LONGINT_IMPL = MPZ
CHIP_VARIANT = SAMD51J19A
CHIP_FAMILY = samd51
# No touch on SAMD51 yet
CIRCUITPY_TOUCHIO = 0
QSPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICE_COUNT = 3
EXTERNAL_FLASH_DEVICES = "GD25Q16C, W25Q16JV_IQ, W25Q16JV_IM"
LONGINT_IMPL = MPZ
CIRCUITPY_NETWORK = 1
MICROPY_PY_WIZNET5K = 5500
CIRCUITPY_PS2IO = 1

View File

@ -0,0 +1,29 @@
// LEDs
#define MICROPY_HW_LED_STATUS (&pin_PA17)
#define MICROPY_HW_LED_TX &pin_PA27
#define MICROPY_HW_LED_RX &pin_PA17
#define MICROPY_HW_BOARD_NAME "J&J Studios datum-Distance"
#define MICROPY_HW_MCU_NAME "samd21g18"
#define MICROPY_PORT_A (0)
#define MICROPY_PORT_B (0)
#define MICROPY_PORT_C (0)
#define CIRCUITPY_INTERNAL_NVM_SIZE 256
#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE)
#define DEFAULT_I2C_BUS_SCL (&pin_PA23)
#define DEFAULT_I2C_BUS_SDA (&pin_PA22)
#define DEFAULT_SPI_BUS_SCK (&pin_PB11)
#define DEFAULT_SPI_BUS_MOSI (&pin_PB10)
#define DEFAULT_SPI_BUS_MISO (&pin_PA12)
#define DEFAULT_UART_BUS_RX (&pin_PA11)
#define DEFAULT_UART_BUS_TX (&pin_PA10)
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1

View File

@ -0,0 +1,14 @@
LD_FILE = boards/samd21x18-bootloader.ld
USB_VID = 0x04D8
USB_PID = 0xEE8C
USB_PRODUCT = "datum-Distance"
USB_MANUFACTURER = "J&J Studios LLC"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_SMALL_BUILD = 1
SUPEROPT_GC = 0

View File

@ -0,0 +1,27 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB11) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB10) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA12) },
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA10) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA10) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA23) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA09) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA08) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA20) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA21) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA18) },
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA16) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA19) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA17) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -0,0 +1,38 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "boards/board.h"
void board_init(void)
{
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}

View File

@ -0,0 +1,29 @@
// LEDs
#define MICROPY_HW_LED_STATUS (&pin_PA17)
#define MICROPY_HW_LED_TX &pin_PA27
#define MICROPY_HW_LED_RX &pin_PA17
#define MICROPY_HW_BOARD_NAME "J&J Studios datum-IMU"
#define MICROPY_HW_MCU_NAME "samd21g18"
#define MICROPY_PORT_A (0)
#define MICROPY_PORT_B (0)
#define MICROPY_PORT_C (0)
#define CIRCUITPY_INTERNAL_NVM_SIZE 256
#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE)
#define DEFAULT_I2C_BUS_SCL (&pin_PA23)
#define DEFAULT_I2C_BUS_SDA (&pin_PA22)
#define DEFAULT_SPI_BUS_SCK (&pin_PB11)
#define DEFAULT_SPI_BUS_MOSI (&pin_PB10)
#define DEFAULT_SPI_BUS_MISO (&pin_PA12)
#define DEFAULT_UART_BUS_RX (&pin_PA11)
#define DEFAULT_UART_BUS_TX (&pin_PA10)
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1

View File

@ -0,0 +1,14 @@
LD_FILE = boards/samd21x18-bootloader.ld
USB_VID = 0x04D8
USB_PID = 0xEE8D
USB_PRODUCT = "datum-IMU"
USB_MANUFACTURER = "J&J Studios LLC"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_SMALL_BUILD = 1
SUPEROPT_GC = 0

View File

@ -0,0 +1,29 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA03) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB11) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB10) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA12) },
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA10) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA10) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA23) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA09) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA08) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA20) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA21) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA18) },
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA16) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA19) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA17) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -0,0 +1,38 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "boards/board.h"
void board_init(void)
{
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}

View File

@ -0,0 +1,29 @@
// LEDs
#define MICROPY_HW_LED_STATUS (&pin_PA17)
#define MICROPY_HW_LED_TX &pin_PA27
#define MICROPY_HW_LED_RX &pin_PA17
#define MICROPY_HW_BOARD_NAME "J&J Studios datum-Light"
#define MICROPY_HW_MCU_NAME "samd21g18"
#define MICROPY_PORT_A (0)
#define MICROPY_PORT_B (0)
#define MICROPY_PORT_C (0)
#define CIRCUITPY_INTERNAL_NVM_SIZE 256
#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE)
#define DEFAULT_I2C_BUS_SCL (&pin_PA23)
#define DEFAULT_I2C_BUS_SDA (&pin_PA22)
#define DEFAULT_SPI_BUS_SCK (&pin_PB11)
#define DEFAULT_SPI_BUS_MOSI (&pin_PB10)
#define DEFAULT_SPI_BUS_MISO (&pin_PA12)
#define DEFAULT_UART_BUS_RX (&pin_PA11)
#define DEFAULT_UART_BUS_TX (&pin_PA10)
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1

View File

@ -0,0 +1,14 @@
LD_FILE = boards/samd21x18-bootloader.ld
USB_VID = 0x04D8
USB_PID = 0xEE8E
USB_PRODUCT = "datum-Light"
USB_MANUFACTURER = "J&J Studios LLC"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_SMALL_BUILD = 1
SUPEROPT_GC = 0

View File

@ -0,0 +1,27 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB11) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB10) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA12) },
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA10) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA10) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA23) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA09) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA08) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA20) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA21) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA18) },
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA16) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA19) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA17) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -0,0 +1,38 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "boards/board.h"
void board_init(void)
{
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}

View File

@ -0,0 +1,29 @@
// LEDs
#define MICROPY_HW_LED_STATUS (&pin_PA17)
#define MICROPY_HW_LED_TX &pin_PA27
#define MICROPY_HW_LED_RX &pin_PA17
#define MICROPY_HW_BOARD_NAME "J&J Studios datum-Weather"
#define MICROPY_HW_MCU_NAME "samd21g18"
#define MICROPY_PORT_A (0)
#define MICROPY_PORT_B (0)
#define MICROPY_PORT_C (0)
#define CIRCUITPY_INTERNAL_NVM_SIZE 256
#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE)
#define DEFAULT_I2C_BUS_SCL (&pin_PA23)
#define DEFAULT_I2C_BUS_SDA (&pin_PA22)
#define DEFAULT_SPI_BUS_SCK (&pin_PB11)
#define DEFAULT_SPI_BUS_MOSI (&pin_PB10)
#define DEFAULT_SPI_BUS_MISO (&pin_PA12)
#define DEFAULT_UART_BUS_RX (&pin_PA11)
#define DEFAULT_UART_BUS_TX (&pin_PA10)
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1

View File

@ -0,0 +1,14 @@
LD_FILE = boards/samd21x18-bootloader.ld
USB_VID = 0x04D8
USB_PID = 0xEE8F
USB_PRODUCT = "datum-Weather"
USB_MANUFACTURER = "J&J Studios LLC"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_SMALL_BUILD = 1
SUPEROPT_GC = 0

View File

@ -0,0 +1,27 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB11) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB10) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA12) },
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA10) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA10) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA23) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA09) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA08) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA20) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA21) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA18) },
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA16) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA19) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA17) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -3,7 +3,7 @@
*
* The MIT License (MIT)
*
* Copyright (c) 2016 Damien P. George
* Copyright (c) 2017 Andrés Sabas for Electronic Cats
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@ -23,9 +23,16 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_STM32_WDT_H
#define MICROPY_INCLUDED_STM32_WDT_H
extern const mp_obj_type_t pyb_wdt_type;
#include "boards/board.h"
#endif // MICROPY_INCLUDED_STM32_WDT_H
void board_init(void)
{
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}

View File

@ -0,0 +1,34 @@
#define MICROPY_HW_BOARD_NAME "Escornabot Makech"
#define MICROPY_HW_MCU_NAME "samd21g18"
#define MICROPY_HW_LED_STATUS (&pin_PA02)
// These are pins not to reset.
#define MICROPY_PORT_A (0)
#define MICROPY_PORT_B (0)
#define MICROPY_PORT_C (0)
// If you change this, then make sure to update the linker scripts as well to
// make sure you don't overwrite code.
#define CIRCUITPY_INTERNAL_NVM_SIZE 256
#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE)
#define CALIBRATE_CRYSTALLESS 1
// Explanation of how a user got into safe mode.
#define BOARD_USER_SAFE_MODE_ACTION "pressing both buttons at start up"
#define DEFAULT_I2C_BUS_SCL (&pin_PA08)
#define DEFAULT_I2C_BUS_SDA (&pin_PA09)
#define DEFAULT_SPI_BUS_SCK (&pin_PA14)
#define DEFAULT_SPI_BUS_MOSI (&pin_PA19)
#define DEFAULT_SPI_BUS_MISO (&pin_PA20)
#define DEFAULT_UART_BUS_RX (&pin_PA01)
#define DEFAULT_UART_BUS_TX (&pin_PA00)
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1

View File

@ -0,0 +1,14 @@
LD_FILE = boards/samd21x18-bootloader.ld
USB_VID = 0x1209
USB_PID = 0xBAB6
USB_PRODUCT = "Escornabot Makech"
USB_MANUFACTURER = "Electronic Cats"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_SMALL_BUILD = 1
SUPEROPT_GC = 0

View File

@ -0,0 +1,58 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
//LEDs
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA04) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA05) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA10) },
// Buttons
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA03) },
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA00) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA01) },
// Motors
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA22) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA27) },
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA28) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA18) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA17) },
// Buzzer
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA16) },
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA08) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA09) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA13) },
//UART
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA01) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA00) },
// I2C
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA08) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA09) },
// SPI
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA15) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA12) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA13) },
// ESP control
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_CS), MP_ROM_PTR(&pin_PA14) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_GPIO0), MP_ROM_PTR(&pin_PA20) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_BUSY), MP_ROM_PTR(&pin_PA21) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RESET), MP_ROM_PTR(&pin_PA23) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RTS), MP_ROM_PTR(&pin_PA19) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -4,9 +4,11 @@ USB_PID = 0x8015
USB_PRODUCT = "Feather M0 Adalogger"
USB_MANUFACTURER = "Adafruit Industries LLC"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_SMALL_BUILD = 1
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
SUPEROPT_GC = 0

View File

@ -4,9 +4,11 @@ USB_PID = 0x8015
USB_PRODUCT = "Feather M0"
USB_MANUFACTURER = "Adafruit Industries LLC"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_SMALL_BUILD = 1
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
SUPEROPT_GC = 0

View File

@ -4,15 +4,17 @@ USB_PID = 0x8023
USB_PRODUCT = "Feather M0 Express"
USB_MANUFACTURER = "Adafruit Industries LLC"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
SPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICE_COUNT = 2
EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
LONGINT_IMPL = MPZ
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
CIRCUITPY_BITBANGIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_I2CSLAVE = 0
# Tweak inlining depending on language.
ifeq ($(TRANSLATION), zh_Latn_pinyin)
CFLAGS_INLINE_LIMIT = 60
endif
SUPEROPT_GC = 0

View File

@ -4,6 +4,9 @@ USB_PID = 0x8023
USB_PRODUCT = "Feather M0 Express"
USB_MANUFACTURER = "Adafruit Industries LLC"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
SPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICE_COUNT = 2
EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
@ -14,13 +17,8 @@ CIRCUITPY_BITBANGIO = 0
CIRCUITPY_DISPLAYIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_I2CSLAVE = 0
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
CFLAGS_INLINE_LIMIT = 50
CIRCUITPY_GAMEPAD = 0
CFLAGS_INLINE_LIMIT = 50
# Include these Python libraries in firmware.
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice

View File

@ -4,9 +4,11 @@ USB_PID = 0x8015
USB_PRODUCT = "Feather M0 RFM69"
USB_MANUFACTURER = "Adafruit Industries LLC"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_SMALL_BUILD = 1
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
SUPEROPT_GC = 0

View File

@ -4,9 +4,11 @@ USB_PID = 0x8015
USB_PRODUCT = "Feather M0 RFM9x"
USB_MANUFACTURER = "Adafruit Industries LLC"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_SMALL_BUILD = 1
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
SUPEROPT_GC = 0

Some files were not shown because too many files have changed in this diff Show More