Merge branch 'main' into espnow
This commit is contained in:
commit
14c3b52b8d
82
.github/actions/fetch_submodules/action.yml
vendored
Normal file
82
.github/actions/fetch_submodules/action.yml
vendored
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
name: 'Fetch Submodules'
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
submodules:
|
||||||
|
description: 'The submodules to cache'
|
||||||
|
required: false
|
||||||
|
default: '["extmod/ulab", "lib/", "tools/"]'
|
||||||
|
type: string
|
||||||
|
|
||||||
|
cache:
|
||||||
|
description: 'The cache action to use'
|
||||||
|
required: false
|
||||||
|
default: 'restore'
|
||||||
|
type: choice
|
||||||
|
options:
|
||||||
|
- cache
|
||||||
|
- restore
|
||||||
|
|
||||||
|
version:
|
||||||
|
description: 'Whether to generate CP version'
|
||||||
|
required: false
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
frozen:
|
||||||
|
description: 'Whether frozen submodules were fetched'
|
||||||
|
value: ${{ steps.cp-deps.outputs.frozen_tags }}
|
||||||
|
|
||||||
|
version:
|
||||||
|
description: 'The CP version'
|
||||||
|
value: ${{ steps.cp-version.outputs.cp-version }}
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Create submodule status
|
||||||
|
id: create-submodule-status
|
||||||
|
run: |
|
||||||
|
git submodule status ${{ join(fromJSON(inputs.submodules), ' ') }} >> submodule_status
|
||||||
|
echo $(cut -d ' ' -f 2 submodule_status) | echo "submodules=[\"$(sed "s/ /\", \"/g")\"]" >> $GITHUB_OUTPUT
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Cache submodules
|
||||||
|
if: ${{ inputs.cache == 'cache' }}
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ".git/modules/\n${{ join(fromJSON(steps.create-submodule-status.outputs.submodules), '\n') }}"
|
||||||
|
key: submodules-common-${{ hashFiles('submodule_status') }}
|
||||||
|
enableCrossOsArchive: true
|
||||||
|
|
||||||
|
- name: Restore submodules
|
||||||
|
if: ${{ inputs.cache == 'restore' }}
|
||||||
|
uses: actions/cache/restore@v3
|
||||||
|
with:
|
||||||
|
path: ".git/modules/\n${{ join(fromJSON(steps.create-submodule-status.outputs.submodules), '\n') }}"
|
||||||
|
key: submodules-common-${{ hashFiles('submodule_status') }}
|
||||||
|
enableCrossOsArchive: true
|
||||||
|
|
||||||
|
- name: Remove submodule status
|
||||||
|
run: rm submodule_status
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: CircuitPython dependencies
|
||||||
|
id: cp-deps
|
||||||
|
run: python tools/ci_fetch_deps.py ${{ matrix.board || github.job }}
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: CircuitPython version
|
||||||
|
id: cp-version
|
||||||
|
if: ${{ inputs.version == 'true' }}
|
||||||
|
run: |
|
||||||
|
echo "::group::Fetch history and tags"
|
||||||
|
git fetch --no-recurse-submodules --shallow-since="2021-07-01" --tags https://github.com/adafruit/circuitpython HEAD
|
||||||
|
git fetch --no-recurse-submodules --shallow-since="2021-07-01" origin $GITHUB_SHA
|
||||||
|
git repack -d
|
||||||
|
echo "::endgroup::"
|
||||||
|
CP_VERSION=$(tools/describe)
|
||||||
|
echo "$CP_VERSION"
|
||||||
|
echo "CP_VERSION=$CP_VERSION" >> $GITHUB_ENV
|
||||||
|
echo "cp-version=$CP_VERSION" >> $GITHUB_OUTPUT
|
||||||
|
shell: bash
|
547
.github/workflows/build.yml
vendored
547
.github/workflows/build.yml
vendored
@ -21,41 +21,43 @@ jobs:
|
|||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
outputs:
|
outputs:
|
||||||
build-doc: ${{ steps.set-matrix.outputs.build-doc }}
|
build-doc: ${{ steps.set-matrix.outputs.build-doc }}
|
||||||
boards-arm: ${{ steps.set-matrix.outputs.boards-arm }}
|
|
||||||
boards-riscv: ${{ steps.set-matrix.outputs.boards-riscv }}
|
|
||||||
boards-espressif: ${{ steps.set-matrix.outputs.boards-espressif }}
|
|
||||||
boards-aarch: ${{ steps.set-matrix.outputs.boards-aarch }}
|
boards-aarch: ${{ steps.set-matrix.outputs.boards-aarch }}
|
||||||
|
boards-arm: ${{ steps.set-matrix.outputs.boards-arm }}
|
||||||
|
boards-espressif: ${{ steps.set-matrix.outputs.boards-espressif }}
|
||||||
|
boards-riscv: ${{ steps.set-matrix.outputs.boards-riscv }}
|
||||||
|
cp-version: ${{ steps.set-up-submodules.outputs.version }}
|
||||||
steps:
|
steps:
|
||||||
- name: Dump GitHub context
|
- name: Dump GitHub context
|
||||||
run: echo "$GITHUB_CONTEXT"
|
run: echo "$GITHUB_CONTEXT"
|
||||||
env:
|
env:
|
||||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||||
- uses: actions/checkout@v3
|
- name: Set up repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: false
|
submodules: false
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
- name: Set up Python 3
|
- name: Set up python
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: "3.x"
|
python-version: "3.x"
|
||||||
- name: Get CP deps
|
- name: Duplicate USB VID/PID check
|
||||||
run: python tools/ci_fetch_deps.py test ${{ github.sha }}
|
run: python3 -u -m tools.ci_check_duplicate_usb_vid_pid
|
||||||
- name: CircuitPython version
|
- name: Set up submodules
|
||||||
run: |
|
id: set-up-submodules
|
||||||
tools/describe || git log --parents HEAD~4..
|
uses: ./.github/actions/fetch_submodules
|
||||||
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
|
with:
|
||||||
|
cache: "cache"
|
||||||
|
version: true
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y eatmydata
|
sudo apt-get install -y eatmydata
|
||||||
sudo eatmydata apt-get install -y gettext gcc-aarch64-linux-gnu mingw-w64
|
sudo eatmydata apt-get install -y gettext gcc-aarch64-linux-gnu mingw-w64
|
||||||
pip install -r requirements-ci.txt -r requirements-dev.txt
|
pip install -r requirements-dev.txt
|
||||||
- name: Versions
|
- name: Versions
|
||||||
run: |
|
run: |
|
||||||
gcc --version
|
gcc --version
|
||||||
python3 --version
|
python3 --version
|
||||||
- name: Duplicate USB VID/PID Check
|
|
||||||
run: python3 -u -m tools.ci_check_duplicate_usb_vid_pid
|
|
||||||
- name: Build mpy-cross
|
- name: Build mpy-cross
|
||||||
run: make -C mpy-cross -j2
|
run: make -C mpy-cross -j2
|
||||||
- name: Build unix port
|
- name: Build unix port
|
||||||
@ -114,13 +116,16 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: mpy-cross.static-x64-windows
|
name: mpy-cross.static-x64-windows
|
||||||
path: mpy-cross/mpy-cross.static.exe
|
path: mpy-cross/mpy-cross.static.exe
|
||||||
- name: Upload mpy-cross builds to S3
|
- name: Upload to S3
|
||||||
if: (github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
if: >-
|
||||||
|
(github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') ||
|
||||||
|
(github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
||||||
env:
|
env:
|
||||||
AWS_PAGER: ''
|
AWS_PAGER: ''
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
run: |
|
run: |
|
||||||
|
pip install awscli
|
||||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static-aarch64 s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-aarch64-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static-aarch64 s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-aarch64-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
||||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static-raspbian s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-raspbian-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static-raspbian s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-raspbian-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
||||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-amd64-linux-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-amd64-linux-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
||||||
@ -160,29 +165,26 @@ jobs:
|
|||||||
|
|
||||||
mpy-cross-mac:
|
mpy-cross-mac:
|
||||||
runs-on: macos-11
|
runs-on: macos-11
|
||||||
steps:
|
needs: test
|
||||||
- name: Dump GitHub context
|
if: >-
|
||||||
|
needs.test.outputs.boards-aarch != '[]' ||
|
||||||
|
needs.test.outputs.boards-arm != '[]' ||
|
||||||
|
needs.test.outputs.boards-espressif != '[]' ||
|
||||||
|
needs.test.outputs.boards-riscv != '[]'
|
||||||
env:
|
env:
|
||||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
CP_VERSION: ${{ needs.test.outputs.cp-version }}
|
||||||
run: echo "$GITHUB_CONTEXT"
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- name: Set up repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: false
|
submodules: false
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
- name: Set up Python 3
|
- name: Set up python
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: "3.10"
|
python-version: "3.x"
|
||||||
- name: Get CP deps
|
- name: Set up submodules
|
||||||
run: python tools/ci_fetch_deps.py mpy-cross-mac ${{ github.sha }}
|
uses: ./.github/actions/fetch_submodules
|
||||||
- name: CircuitPython version
|
|
||||||
run: |
|
|
||||||
tools/describe || git log --parents HEAD~4..
|
|
||||||
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
brew install gettext
|
|
||||||
echo >>$GITHUB_PATH /usr/local/opt/gettext/bin
|
|
||||||
- name: Versions
|
- name: Versions
|
||||||
run: |
|
run: |
|
||||||
gcc --version
|
gcc --version
|
||||||
@ -219,30 +221,29 @@ jobs:
|
|||||||
|
|
||||||
|
|
||||||
build-doc:
|
build-doc:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
needs: test
|
needs: test
|
||||||
if: ${{ needs.test.outputs.build-doc == 'True' }}
|
if: ${{ needs.test.outputs.build-doc == 'True' }}
|
||||||
|
env:
|
||||||
|
CP_VERSION: ${{ needs.test.outputs.cp-version }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- name: Set up repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: false
|
submodules: false
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
- name: Get CP deps
|
- name: Set up python
|
||||||
run: python tools/ci_fetch_deps.py docs ${{ github.sha }}
|
|
||||||
- name: CircuitPython version
|
|
||||||
run: |
|
|
||||||
tools/describe || git log --parents HEAD~4..
|
|
||||||
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
|
|
||||||
- name: Set up Python 3
|
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: "3.10"
|
python-version: "3.x"
|
||||||
|
- name: Set up submodules
|
||||||
|
uses: ./.github/actions/fetch_submodules
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y eatmydata
|
sudo apt-get install -y eatmydata
|
||||||
sudo eatmydata apt-get install -y latexmk librsvg2-bin texlive-fonts-recommended texlive-latex-recommended texlive-latex-extra
|
sudo eatmydata apt-get install -y latexmk librsvg2-bin texlive-fonts-recommended texlive-latex-recommended texlive-latex-extra
|
||||||
pip install -r requirements-ci.txt -r requirements-doc.txt
|
pip install -r requirements-doc.txt
|
||||||
- name: Build and Validate Stubs
|
- name: Build and Validate Stubs
|
||||||
run: make check-stubs -j2
|
run: make check-stubs -j2
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v3
|
||||||
@ -262,13 +263,16 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: docs
|
name: docs
|
||||||
path: _build/latex
|
path: _build/latex
|
||||||
- name: Upload stubs to S3
|
- name: Upload to S3
|
||||||
if: (github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
if: >-
|
||||||
|
(github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') ||
|
||||||
|
(github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
||||||
env:
|
env:
|
||||||
AWS_PAGER: ''
|
AWS_PAGER: ''
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
run: |
|
run: |
|
||||||
|
pip install awscli
|
||||||
zip -9r circuitpython-stubs.zip circuitpython-stubs
|
zip -9r circuitpython-stubs.zip circuitpython-stubs
|
||||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp circuitpython-stubs/dist/*.tar.gz s3://adafruit-circuit-python/bin/stubs/circuitpython-stubs-${{ env.CP_VERSION }}.zip --no-progress --region us-east-1
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp circuitpython-stubs/dist/*.tar.gz s3://adafruit-circuit-python/bin/stubs/circuitpython-stubs-${{ env.CP_VERSION }}.zip --no-progress --region us-east-1
|
||||||
- name: Upload stubs to PyPi
|
- name: Upload stubs to PyPi
|
||||||
@ -282,225 +286,33 @@ jobs:
|
|||||||
[ -z "$TWINE_USERNAME" ] || twine upload circuitpython-stubs/dist/*
|
[ -z "$TWINE_USERNAME" ] || twine upload circuitpython-stubs/dist/*
|
||||||
|
|
||||||
|
|
||||||
build-arm:
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
needs: test
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
board: ${{ fromJSON(needs.test.outputs.boards-arm) }}
|
|
||||||
if: ${{ needs.test.outputs.boards-arm != '[]' }}
|
|
||||||
steps:
|
|
||||||
- name: Set up Python 3
|
|
||||||
uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: "3.10"
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
submodules: false
|
|
||||||
fetch-depth: 1
|
|
||||||
- name: Get CP deps
|
|
||||||
run: python tools/ci_fetch_deps.py ${{ matrix.board }} ${{ github.sha }}
|
|
||||||
- uses: carlosperate/arm-none-eabi-gcc-action@v1
|
|
||||||
with:
|
|
||||||
release: '10-2020-q4'
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
sudo apt-get install -y gettext
|
|
||||||
pip install -r requirements-ci.txt -r requirements-dev.txt
|
|
||||||
- name: Versions
|
|
||||||
run: |
|
|
||||||
gcc --version
|
|
||||||
arm-none-eabi-gcc --version
|
|
||||||
python3 --version
|
|
||||||
- name: mpy-cross
|
|
||||||
run: make -C mpy-cross -j2
|
|
||||||
- name: Setup build failure matcher
|
|
||||||
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
|
|
||||||
- name: build
|
|
||||||
run: python3 -u build_release_files.py
|
|
||||||
working-directory: tools
|
|
||||||
env:
|
|
||||||
BOARDS: ${{ matrix.board }}
|
|
||||||
- uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: ${{ matrix.board }}
|
|
||||||
path: bin/${{ matrix.board }}
|
|
||||||
- name: Upload to S3
|
|
||||||
run: "[ -z \"$AWS_ACCESS_KEY_ID\" ] || aws s3 cp bin/ s3://adafruit-circuit-python/bin/ --recursive --no-progress --region us-east-1"
|
|
||||||
env:
|
|
||||||
AWS_PAGER: ''
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
if: (github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
|
||||||
|
|
||||||
|
|
||||||
build-riscv:
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
needs: test
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
board: ${{ fromJSON(needs.test.outputs.boards-riscv) }}
|
|
||||||
if: ${{ needs.test.outputs.boards-riscv != '[]' }}
|
|
||||||
steps:
|
|
||||||
- name: Set up Python 3
|
|
||||||
uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: "3.10"
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
submodules: false
|
|
||||||
fetch-depth: 1
|
|
||||||
- name: Get CP deps
|
|
||||||
run: python tools/ci_fetch_deps.py ${{ matrix.board }} ${{ github.sha }}
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
sudo apt-get install -y gettext
|
|
||||||
pip install -r requirements-ci.txt -r requirements-dev.txt
|
|
||||||
wget https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-centos6.tar.gz
|
|
||||||
sudo tar -C /usr --strip-components=1 -xaf riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-centos6.tar.gz
|
|
||||||
- name: Versions
|
|
||||||
run: |
|
|
||||||
gcc --version
|
|
||||||
riscv64-unknown-elf-gcc --version
|
|
||||||
python3 --version
|
|
||||||
- name: mpy-cross
|
|
||||||
run: make -C mpy-cross -j2
|
|
||||||
- name: Setup build failure matcher
|
|
||||||
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
|
|
||||||
- name: build
|
|
||||||
run: python3 -u build_release_files.py
|
|
||||||
working-directory: tools
|
|
||||||
env:
|
|
||||||
BOARDS: ${{ matrix.board }}
|
|
||||||
- uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: ${{ matrix.board }}
|
|
||||||
path: bin/${{ matrix.board }}
|
|
||||||
- name: Upload to S3
|
|
||||||
run: "[ -z \"$AWS_ACCESS_KEY_ID\" ] || aws s3 cp bin/ s3://adafruit-circuit-python/bin/ --recursive --no-progress --region us-east-1"
|
|
||||||
env:
|
|
||||||
AWS_PAGER: ''
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
if: (github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
|
||||||
|
|
||||||
|
|
||||||
build-espressif:
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
needs: test
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
board: ${{ fromJSON(needs.test.outputs.boards-espressif) }}
|
|
||||||
if: ${{ needs.test.outputs.boards-espressif != '[]' }}
|
|
||||||
steps:
|
|
||||||
- name: Set up Python 3
|
|
||||||
id: py3
|
|
||||||
uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: "3.10"
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
submodules: false
|
|
||||||
fetch-depth: 1
|
|
||||||
- name: Get CP deps
|
|
||||||
run: python tools/ci_fetch_deps.py ${{ matrix.board }} ${{ github.sha }}
|
|
||||||
- name: CircuitPython version
|
|
||||||
run: |
|
|
||||||
tools/describe || git log --parents HEAD~4..
|
|
||||||
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
|
|
||||||
- uses: actions/cache@v3
|
|
||||||
name: Fetch IDF tool cache
|
|
||||||
id: idf-cache
|
|
||||||
with:
|
|
||||||
path: ${{ github.workspace }}/.idf_tools
|
|
||||||
key: ${{ runner.os }}-idf-tools-${{ hashFiles('.git/modules/ports/espressif/esp-idf/HEAD') }}-${{ steps.py3.outputs.python-path }}-20220404
|
|
||||||
- name: Clone IDF submodules
|
|
||||||
run: git submodule update --init $IDF_PATH
|
|
||||||
env:
|
|
||||||
IDF_PATH: ${{ github.workspace }}/ports/espressif/esp-idf
|
|
||||||
- name: Install IDF tools
|
|
||||||
run: |
|
|
||||||
echo "Installing ESP-IDF tools"
|
|
||||||
$IDF_PATH/tools/idf_tools.py --non-interactive install required
|
|
||||||
$IDF_PATH/tools/idf_tools.py --non-interactive install cmake
|
|
||||||
echo "Installing Python environment and packages"
|
|
||||||
$IDF_PATH/tools/idf_tools.py --non-interactive install-python-env
|
|
||||||
rm -rf $IDF_TOOLS_PATH/dist
|
|
||||||
env:
|
|
||||||
IDF_PATH: ${{ github.workspace }}/ports/espressif/esp-idf
|
|
||||||
IDF_TOOLS_PATH: ${{ github.workspace }}/.idf_tools
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
source $IDF_PATH/export.sh
|
|
||||||
sudo apt-get install -y gettext ninja-build
|
|
||||||
pip install -r requirements-ci.txt -r requirements-dev.txt
|
|
||||||
env:
|
|
||||||
IDF_PATH: ${{ github.workspace }}/ports/espressif/esp-idf
|
|
||||||
IDF_TOOLS_PATH: ${{ github.workspace }}/.idf_tools
|
|
||||||
- name: Versions
|
|
||||||
run: |
|
|
||||||
source $IDF_PATH/export.sh
|
|
||||||
gcc --version
|
|
||||||
python3 --version
|
|
||||||
ninja --version
|
|
||||||
cmake --version
|
|
||||||
shell: bash
|
|
||||||
env:
|
|
||||||
IDF_PATH: ${{ github.workspace }}/ports/espressif/esp-idf
|
|
||||||
IDF_TOOLS_PATH: ${{ github.workspace }}/.idf_tools
|
|
||||||
- name: mpy-cross
|
|
||||||
run: make -C mpy-cross -j2
|
|
||||||
- name: Setup build failure matcher
|
|
||||||
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
|
|
||||||
- name: build
|
|
||||||
run: |
|
|
||||||
source $IDF_PATH/export.sh
|
|
||||||
python3 -u build_release_files.py
|
|
||||||
working-directory: tools
|
|
||||||
shell: bash
|
|
||||||
env:
|
|
||||||
IDF_PATH: ${{ github.workspace }}/ports/espressif/esp-idf
|
|
||||||
IDF_TOOLS_PATH: ${{ github.workspace }}/.idf_tools
|
|
||||||
BOARDS: ${{ matrix.board }}
|
|
||||||
- uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: ${{ matrix.board }}
|
|
||||||
path: bin/${{ matrix.board }}
|
|
||||||
- name: Upload to S3
|
|
||||||
run: "[ -z \"$AWS_ACCESS_KEY_ID\" ] || aws s3 cp bin/ s3://adafruit-circuit-python/bin/ --recursive --no-progress --region us-east-1"
|
|
||||||
env:
|
|
||||||
AWS_PAGER: ''
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
if: (github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
|
||||||
|
|
||||||
|
|
||||||
build-aarch:
|
build-aarch:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
needs: test
|
needs: test
|
||||||
|
if: ${{ needs.test.outputs.boards-aarch != '[]' }}
|
||||||
|
env:
|
||||||
|
CP_VERSION: ${{ needs.test.outputs.cp-version }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
board: ${{ fromJSON(needs.test.outputs.boards-aarch) }}
|
board: ${{ fromJSON(needs.test.outputs.boards-aarch) }}
|
||||||
if: ${{ needs.test.outputs.boards-aarch != '[]' }}
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up Python 3
|
- name: Set up repository
|
||||||
uses: actions/setup-python@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
|
||||||
python-version: "3.10"
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
with:
|
with:
|
||||||
submodules: false
|
submodules: false
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
- name: Get CP deps
|
- name: Set up python
|
||||||
run: python tools/ci_fetch_deps.py ${{ matrix.board }} ${{ github.sha }}
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: "3.x"
|
||||||
|
- name: Set up submodules
|
||||||
|
id: set-up-submodules
|
||||||
|
uses: ./.github/actions/fetch_submodules
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get install -y gettext mtools
|
sudo apt-get install -y gettext mtools
|
||||||
pip install -r requirements-ci.txt -r requirements-dev.txt
|
pip install -r requirements-dev.txt
|
||||||
wget --no-verbose https://adafruit-circuit-python.s3.amazonaws.com/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz
|
wget --no-verbose https://adafruit-circuit-python.s3.amazonaws.com/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz
|
||||||
sudo tar -C /usr --strip-components=1 -xaf gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz
|
sudo tar -C /usr --strip-components=1 -xaf gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz
|
||||||
- uses: carlosperate/arm-none-eabi-gcc-action@v1
|
- uses: carlosperate/arm-none-eabi-gcc-action@v1
|
||||||
@ -522,11 +334,12 @@ jobs:
|
|||||||
arm-none-eabi-gcc --version
|
arm-none-eabi-gcc --version
|
||||||
python3 --version
|
python3 --version
|
||||||
mkfs.fat --version || true
|
mkfs.fat --version || true
|
||||||
- name: mpy-cross
|
- name: Build mpy-cross
|
||||||
|
if: ${{ steps.set-up-submodules.outputs.frozen == 'True' }}
|
||||||
run: make -C mpy-cross -j2
|
run: make -C mpy-cross -j2
|
||||||
- name: Setup build failure matcher
|
- name: Setup build failure matcher
|
||||||
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
|
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
|
||||||
- name: build
|
- name: Build
|
||||||
run: python3 -u build_release_files.py
|
run: python3 -u build_release_files.py
|
||||||
working-directory: tools
|
working-directory: tools
|
||||||
env:
|
env:
|
||||||
@ -536,9 +349,231 @@ jobs:
|
|||||||
name: ${{ matrix.board }}
|
name: ${{ matrix.board }}
|
||||||
path: bin/${{ matrix.board }}
|
path: bin/${{ matrix.board }}
|
||||||
- name: Upload to S3
|
- name: Upload to S3
|
||||||
run: "[ -z \"$AWS_ACCESS_KEY_ID\" ] || aws s3 cp bin/ s3://adafruit-circuit-python/bin/ --recursive --no-progress --region us-east-1"
|
if: >-
|
||||||
|
(github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') ||
|
||||||
|
(github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
||||||
|
run: |
|
||||||
|
pip install awscli
|
||||||
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp bin/ s3://adafruit-circuit-python/bin/ --recursive --no-progress --region us-east-1
|
||||||
|
env:
|
||||||
|
AWS_PAGER: ''
|
||||||
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
|
||||||
|
|
||||||
|
build-arm:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
needs: test
|
||||||
|
if: ${{ needs.test.outputs.boards-arm != '[]' }}
|
||||||
|
env:
|
||||||
|
CP_VERSION: ${{ needs.test.outputs.cp-version }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
board: ${{ fromJSON(needs.test.outputs.boards-arm) }}
|
||||||
|
steps:
|
||||||
|
- name: Set up repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: false
|
||||||
|
fetch-depth: 1
|
||||||
|
- name: Set up python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: "3.x"
|
||||||
|
- name: Set up submodules
|
||||||
|
id: set-up-submodules
|
||||||
|
uses: ./.github/actions/fetch_submodules
|
||||||
|
- uses: carlosperate/arm-none-eabi-gcc-action@v1
|
||||||
|
with:
|
||||||
|
release: '10-2020-q4'
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get install -y gettext
|
||||||
|
pip install -r requirements-dev.txt
|
||||||
|
- name: Versions
|
||||||
|
run: |
|
||||||
|
gcc --version
|
||||||
|
arm-none-eabi-gcc --version
|
||||||
|
python3 --version
|
||||||
|
- name: Build mpy-cross
|
||||||
|
if: ${{ steps.set-up-submodules.outputs.frozen == 'True' }}
|
||||||
|
run: make -C mpy-cross -j2
|
||||||
|
- name: Setup build failure matcher
|
||||||
|
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
|
||||||
|
- name: Build
|
||||||
|
run: python3 -u build_release_files.py
|
||||||
|
working-directory: tools
|
||||||
|
env:
|
||||||
|
BOARDS: ${{ matrix.board }}
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.board }}
|
||||||
|
path: bin/${{ matrix.board }}
|
||||||
|
- name: Upload to S3
|
||||||
|
if: >-
|
||||||
|
(github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') ||
|
||||||
|
(github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
||||||
|
run: |
|
||||||
|
pip install awscli
|
||||||
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp bin/ s3://adafruit-circuit-python/bin/ --recursive --no-progress --region us-east-1
|
||||||
|
env:
|
||||||
|
AWS_PAGER: ''
|
||||||
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
|
||||||
|
|
||||||
|
build-espressif:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
needs: test
|
||||||
|
if: ${{ needs.test.outputs.boards-espressif != '[]' }}
|
||||||
|
env:
|
||||||
|
CP_VERSION: ${{ needs.test.outputs.cp-version }}
|
||||||
|
IDF_PATH: ${{ github.workspace }}/ports/espressif/esp-idf
|
||||||
|
IDF_TOOLS_PATH: ${{ github.workspace }}/.idf_tools
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
board: ${{ fromJSON(needs.test.outputs.boards-espressif) }}
|
||||||
|
steps:
|
||||||
|
- name: Set up repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: false
|
||||||
|
fetch-depth: 1
|
||||||
|
- name: Set up python
|
||||||
|
id: setup-python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: "3.10"
|
||||||
|
- name: Get IDF commit
|
||||||
|
id: idf-commit
|
||||||
|
run: |
|
||||||
|
COMMIT=$(git submodule status ports/espressif/esp-idf | grep -o -P '(?<=^-).*(?= )')
|
||||||
|
echo "$COMMIT"
|
||||||
|
echo "commit=$COMMIT" >> $GITHUB_OUTPUT
|
||||||
|
- name: Cache IDF submodules
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
.git/modules/ports/espressif/esp-idf
|
||||||
|
ports/espressif/esp-idf
|
||||||
|
key: submodules-idf-${{ steps.idf-commit.outputs.commit }}
|
||||||
|
- name: Cache IDF tools
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ${{ env.IDF_TOOLS_PATH }}
|
||||||
|
key: ${{ runner.os }}-Python-${{ steps.setup-python.outputs.python-version }}-tools-idf-${{ steps.idf-commit.outputs.commit }}
|
||||||
|
- name: Initialize IDF submodules
|
||||||
|
run: git submodule update --init --depth=1 --recursive $IDF_PATH
|
||||||
|
- name: Install IDF tools
|
||||||
|
run: |
|
||||||
|
echo "Installing ESP-IDF tools"
|
||||||
|
$IDF_PATH/tools/idf_tools.py --non-interactive install required
|
||||||
|
$IDF_PATH/tools/idf_tools.py --non-interactive install cmake
|
||||||
|
echo "Installing Python environment and packages"
|
||||||
|
$IDF_PATH/tools/idf_tools.py --non-interactive install-python-env
|
||||||
|
rm -rf $IDF_TOOLS_PATH/dist
|
||||||
|
- name: Set up submodules
|
||||||
|
id: set-up-submodules
|
||||||
|
uses: ./.github/actions/fetch_submodules
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
source $IDF_PATH/export.sh
|
||||||
|
sudo apt-get install -y gettext ninja-build
|
||||||
|
pip install -r requirements-dev.txt
|
||||||
|
- name: Versions
|
||||||
|
run: |
|
||||||
|
source $IDF_PATH/export.sh
|
||||||
|
gcc --version
|
||||||
|
python3 --version
|
||||||
|
ninja --version
|
||||||
|
cmake --version
|
||||||
|
- name: Build mpy-cross
|
||||||
|
if: ${{ steps.set-up-submodules.outputs.frozen == 'True' }}
|
||||||
|
run: make -C mpy-cross -j2
|
||||||
|
- name: Setup build failure matcher
|
||||||
|
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
source $IDF_PATH/export.sh
|
||||||
|
python3 -u build_release_files.py
|
||||||
|
working-directory: tools
|
||||||
|
env:
|
||||||
|
BOARDS: ${{ matrix.board }}
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.board }}
|
||||||
|
path: bin/${{ matrix.board }}
|
||||||
|
- name: Upload to S3
|
||||||
|
if: >-
|
||||||
|
(github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') ||
|
||||||
|
(github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
||||||
|
run: |
|
||||||
|
pip install awscli
|
||||||
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp bin/ s3://adafruit-circuit-python/bin/ --recursive --no-progress --region us-east-1
|
||||||
|
env:
|
||||||
|
AWS_PAGER: ''
|
||||||
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
|
||||||
|
|
||||||
|
build-riscv:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
needs: test
|
||||||
|
if: ${{ needs.test.outputs.boards-riscv != '[]' }}
|
||||||
|
env:
|
||||||
|
CP_VERSION: ${{ needs.test.outputs.cp-version }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
board: ${{ fromJSON(needs.test.outputs.boards-riscv) }}
|
||||||
|
steps:
|
||||||
|
- name: Set up repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: false
|
||||||
|
fetch-depth: 1
|
||||||
|
- name: Set up python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: "3.x"
|
||||||
|
- name: Set up submodules
|
||||||
|
id: set-up-submodules
|
||||||
|
uses: ./.github/actions/fetch_submodules
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get install -y gettext
|
||||||
|
pip install -r requirements-dev.txt
|
||||||
|
wget https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-centos6.tar.gz
|
||||||
|
sudo tar -C /usr --strip-components=1 -xaf riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-centos6.tar.gz
|
||||||
|
- name: Versions
|
||||||
|
run: |
|
||||||
|
gcc --version
|
||||||
|
riscv64-unknown-elf-gcc --version
|
||||||
|
python3 --version
|
||||||
|
- name: Build mpy-cross
|
||||||
|
if: ${{ steps.set-up-submodules.outputs.frozen == 'True' }}
|
||||||
|
run: make -C mpy-cross -j2
|
||||||
|
- name: Setup build failure matcher
|
||||||
|
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
|
||||||
|
- name: Build
|
||||||
|
run: python3 -u build_release_files.py
|
||||||
|
working-directory: tools
|
||||||
|
env:
|
||||||
|
BOARDS: ${{ matrix.board }}
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.board }}
|
||||||
|
path: bin/${{ matrix.board }}
|
||||||
|
- name: Upload to S3
|
||||||
|
if: >-
|
||||||
|
(github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') ||
|
||||||
|
(github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
||||||
|
run: |
|
||||||
|
pip install awscli
|
||||||
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp bin/ s3://adafruit-circuit-python/bin/ --recursive --no-progress --region us-east-1
|
||||||
env:
|
env:
|
||||||
AWS_PAGER: ''
|
AWS_PAGER: ''
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
if: (github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
|
||||||
|
27
.github/workflows/create_website_pr.yml
vendored
27
.github/workflows/create_website_pr.yml
vendored
@ -6,41 +6,38 @@ name: Update CircuitPython.org
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
release:
|
release:
|
||||||
types: [published]
|
types: [published, rerequested]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
website:
|
website:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Dump GitHub context
|
- name: Dump GitHub context
|
||||||
|
run: echo "$GITHUB_CONTEXT"
|
||||||
env:
|
env:
|
||||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||||
run: echo "$GITHUB_CONTEXT"
|
- name: Set up repository
|
||||||
- uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: false
|
submodules: false
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
- name: Set up Python 3
|
- name: Set up python
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: "3.x"
|
python-version: "3.x"
|
||||||
- name: Get CP deps
|
- name: Set up submodules
|
||||||
run: python tools/ci_fetch_deps.py website ${{ github.sha }}
|
uses: ./.github/actions/fetch_submodules
|
||||||
- name: Install deps
|
with:
|
||||||
run: |
|
version: true
|
||||||
pip install -r requirements-dev.txt
|
- name: Install dependencies
|
||||||
|
run: pip install -r requirements-dev.txt
|
||||||
- name: Versions
|
- name: Versions
|
||||||
run: |
|
run: |
|
||||||
gcc --version
|
gcc --version
|
||||||
python3 --version
|
python3 --version
|
||||||
- name: CircuitPython version
|
|
||||||
run: |
|
|
||||||
tools/describe || git log --parents HEAD~4..
|
|
||||||
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
|
|
||||||
- name: Website
|
- name: Website
|
||||||
run: python3 build_board_info.py
|
run: python3 build_board_info.py
|
||||||
working-directory: tools
|
working-directory: tools
|
||||||
env:
|
env:
|
||||||
RELEASE_TAG: ${{ github.event.release.tag_name }}
|
RELEASE_TAG: ${{ github.event.release.tag_name }}
|
||||||
ADABOT_GITHUB_ACCESS_TOKEN: ${{ secrets.ADABOT_GITHUB_ACCESS_TOKEN }}
|
ADABOT_GITHUB_ACCESS_TOKEN: ${{ secrets.ADABOT_GITHUB_ACCESS_TOKEN }}
|
||||||
if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested')
|
|
||||||
|
10
.github/workflows/notify.yml
vendored
10
.github/workflows/notify.yml
vendored
@ -7,8 +7,12 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
notify:
|
notify:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
issues: write
|
||||||
steps:
|
steps:
|
||||||
- uses: jenschelkopf/issue-label-notification-action@1.3
|
- uses: tekktrik/issue-labeled-ping@v1
|
||||||
with:
|
with:
|
||||||
recipients: |
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
ulab=@v923z
|
user: v923z
|
||||||
|
label: ulab
|
||||||
|
message: Heads up {user} - the "{label}" label was applied to this issue.
|
||||||
|
23
.github/workflows/ports_windows.yml
vendored
23
.github/workflows/ports_windows.yml
vendored
@ -4,7 +4,7 @@ on:
|
|||||||
push:
|
push:
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- '.github/workflows/*.yml'
|
- '.github/workflows/ports_windows.yml'
|
||||||
- 'extmod/**'
|
- 'extmod/**'
|
||||||
- 'lib/**'
|
- 'lib/**'
|
||||||
- 'mpy-cross/**'
|
- 'mpy-cross/**'
|
||||||
@ -19,8 +19,8 @@ concurrency:
|
|||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
windows:
|
||||||
runs-on: windows-2019
|
runs-on: windows-2022
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
# We define a custom shell script here, although `msys2.cmd` does neither exist nor is it available in the PATH yet
|
# We define a custom shell script here, although `msys2.cmd` does neither exist nor is it available in the PATH yet
|
||||||
@ -32,8 +32,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Check python coding (cmd)
|
- name: Check python coding (cmd)
|
||||||
run: |
|
run: python -c "import sys, locale; print(sys.getdefaultencoding(), locale.getpreferredencoding(False))"
|
||||||
python -c "import sys, locale; print(sys.getdefaultencoding(), locale.getpreferredencoding(False))"
|
|
||||||
shell: cmd
|
shell: cmd
|
||||||
|
|
||||||
# We use a JS Action, which calls the system terminal or other custom terminals directly, if required
|
# We use a JS Action, which calls the system terminal or other custom terminals directly, if required
|
||||||
@ -71,16 +70,16 @@ jobs:
|
|||||||
which python; python --version; python -c "import cascadetoml"
|
which python; python --version; python -c "import cascadetoml"
|
||||||
which python3; python3 --version; python3 -c "import cascadetoml"
|
which python3; python3 --version; python3 -c "import cascadetoml"
|
||||||
|
|
||||||
- uses: actions/checkout@v3
|
- name: Set up repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: false
|
submodules: false
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
- name: Get CP deps
|
|
||||||
run: python tools/ci_fetch_deps.py windows ${{ github.sha }}
|
- name: Set up submodules
|
||||||
- name: CircuitPython version
|
uses: ./.github/actions/fetch_submodules
|
||||||
run: |
|
with:
|
||||||
tools/describe || git log --parents HEAD~4..
|
version: true
|
||||||
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
|
|
||||||
|
|
||||||
- name: build mpy-cross
|
- name: build mpy-cross
|
||||||
run: make -j2 -C mpy-cross
|
run: make -j2 -C mpy-cross
|
||||||
|
23
.github/workflows/pre-commit.yml
vendored
23
.github/workflows/pre-commit.yml
vendored
@ -16,24 +16,23 @@ jobs:
|
|||||||
pre-commit:
|
pre-commit:
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- name: Set up repository
|
||||||
- name: Set up Python 3
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: false
|
||||||
|
fetch-depth: 1
|
||||||
|
- name: Set up python
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: "3.x"
|
python-version: "3.x"
|
||||||
- name: Install deps
|
- name: CircuitPython dependencies
|
||||||
|
run: python tools/ci_fetch_deps.py ${{ github.job }}
|
||||||
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get install -y gettext uncrustify
|
sudo apt-get install -y gettext uncrustify
|
||||||
pip3 install black polib pyyaml
|
pip3 install black polib pyyaml
|
||||||
- name: Populate selected submodules
|
- name: Run pre-commit
|
||||||
run: git submodule update --init extmod/ulab
|
uses: pre-commit/action@v3.0.0
|
||||||
- name: Set PY
|
|
||||||
run: echo >>$GITHUB_ENV PY="$(python -c 'import hashlib, sys;print(hashlib.sha256(sys.version.encode()+sys.executable.encode()).hexdigest())')"
|
|
||||||
- uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: ~/.cache/pre-commit
|
|
||||||
key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
|
|
||||||
- uses: pre-commit/action@v3.0.0
|
|
||||||
- name: Make patch
|
- name: Make patch
|
||||||
if: failure()
|
if: failure()
|
||||||
run: git diff > ~/pre-commit.patch
|
run: git diff > ~/pre-commit.patch
|
||||||
|
@ -14,7 +14,7 @@ build:
|
|||||||
python: "3"
|
python: "3"
|
||||||
jobs:
|
jobs:
|
||||||
post_install:
|
post_install:
|
||||||
- python tools/ci_fetch_deps.py docs HEAD
|
- python tools/ci_fetch_deps.py build-doc
|
||||||
|
|
||||||
formats:
|
formats:
|
||||||
- pdf
|
- pdf
|
||||||
|
@ -267,6 +267,14 @@ After the license comment::
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
Version description
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
After the import statements::
|
||||||
|
|
||||||
|
__version__ = "0.0.0+auto.0"
|
||||||
|
__repo__ = "<repo github link>"
|
||||||
|
|
||||||
|
|
||||||
Class description
|
Class description
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit e68bb707b20ee326d84ab75fc9fb35f2e85b87e3
|
Subproject commit f2dd2230c4fdf1aa5c7a160782efdde18e8204bb
|
@ -1 +1 @@
|
|||||||
Subproject commit ba05423ed9aae09ce293603b519a4ac644ef0dab
|
Subproject commit 9ddd59650598b7a0641d70aabcc8aab71799cb93
|
@ -1 +1 @@
|
|||||||
Subproject commit 4fd499e39720f8ce970cceeb97c2a85c485f7335
|
Subproject commit e07e1853d7e995b9797a064c098bccc5c384632e
|
@ -1 +1 @@
|
|||||||
Subproject commit 4a4619a524918f2705c05ca4959385937afa9a7c
|
Subproject commit ab0ffa938dfa7eb1fd7260353a7a4e28f55e537a
|
@ -1 +1 @@
|
|||||||
Subproject commit 726270f5103d9d94810eb8b52041b7521afafc5c
|
Subproject commit e6a9a0140ed44ef5f15d8040fce35b5319c1f216
|
@ -1 +1 @@
|
|||||||
Subproject commit 656be4d79196b5f25ab9ebca731d448c5b3bdc17
|
Subproject commit cf2b173d0fc3ac2cd961754c6adf8f614a1c7c39
|
@ -1 +1 @@
|
|||||||
Subproject commit 6cf9f3cf32e0c176c861de6356813ea4d08034d6
|
Subproject commit 1590d81f7d1474b25aed6a0cb793c7e6dc7634ec
|
@ -1 +1 @@
|
|||||||
Subproject commit 992b601e2469f30e95ec35c9859b4aa2cd917504
|
Subproject commit 340c62ef6ce867b3924d166afc3d2a171680f799
|
@ -1 +1 @@
|
|||||||
Subproject commit 794488d1de3d17d1a08887c4a651cfac2c5a1524
|
Subproject commit 8e0f081a0fcc94053b8ef480a916b10855a3c0d5
|
@ -1 +1 @@
|
|||||||
Subproject commit 1919916dcf57e0879832b9c274c5fb77712d7775
|
Subproject commit 38bd02f014403954ab52154e3877e502d83862dc
|
@ -1 +1 @@
|
|||||||
Subproject commit 5b4703428fc299ac268d08350c885122b2af1e75
|
Subproject commit 61ca58788aabd53558e10c32064a1304aa7454f2
|
@ -1 +1 @@
|
|||||||
Subproject commit c8e82b96c68041a11a52f3053d0d2733ae2d1a49
|
Subproject commit d689ca77c67806484037e00110c669cf55846b6e
|
@ -1 +1 @@
|
|||||||
Subproject commit b6891e734183f978e7b3d0a363140e98635c0a04
|
Subproject commit e38bf1f9cf1e8faeb7d15a1d10674fb2c0a81e72
|
@ -1 +1 @@
|
|||||||
Subproject commit 31c819f377cf71f61cfb84eae159f1f948980db7
|
Subproject commit f26bead58d3c4036eced586d275396816e92e80a
|
@ -1 +1 @@
|
|||||||
Subproject commit 1064fdee5a1421f528af452be5e45ae95ef2b89a
|
Subproject commit 9516aa97e9216eac2b229fbb7dac34fa60c347c4
|
@ -1 +1 @@
|
|||||||
Subproject commit 7eeea1aaf6bb5fa0deb080a1dc1aa3cd103f9aad
|
Subproject commit 759c5c348878932adc5fcc9e4f3b3f570b43e17f
|
@ -1 +1 @@
|
|||||||
Subproject commit cad34af5267aca3665fdaf1ea5a0eee921d13f06
|
Subproject commit 74a1c261103cda43172053ff2370777255b9bf8d
|
@ -1 +1 @@
|
|||||||
Subproject commit df4c73a5e719f17fae0309e811ff17627cd0f268
|
Subproject commit c46c59e3004817c708c78c59d247b02161c6bf06
|
@ -1 +1 @@
|
|||||||
Subproject commit f611d5e31c9735a3c3ac43185e35dcd5f659e3aa
|
Subproject commit 46a49205f3f14546273dd1267e66cad82f03986c
|
@ -1 +1 @@
|
|||||||
Subproject commit 317f4bdb799afa59b164def4ea0610f57db9922e
|
Subproject commit 203d0b1489cb90a39f8a780570287f1a5bd610a0
|
@ -1 +1 @@
|
|||||||
Subproject commit bb2fc8c157ee44869cde4cbc1ab20e6f31ac727f
|
Subproject commit eb17bffa757dc8c0a53fe9e61c45246c06418099
|
@ -1 +1 @@
|
|||||||
Subproject commit 9ff56ce53f05e23ff678965ba54af89b24b1199a
|
Subproject commit e23c4871456cdf0ef1bfb59d1c2f6e38b7b640ee
|
@ -1 +1 @@
|
|||||||
Subproject commit 0a8fcbfc92060eb298ea52d5e88587b37347a0be
|
Subproject commit eac33b430b0cbe1f6f583000f6b29f75bfe8507e
|
@ -1 +1 @@
|
|||||||
Subproject commit 7832bbb5449d55d8c7b731e4ff7490b801e94a9e
|
Subproject commit 2634ca0163020bebec300fcca6e0b5afcdc655b8
|
@ -1 +1 @@
|
|||||||
Subproject commit 565fed515138f962c4bcce0ee756d32e708a151a
|
Subproject commit b6d9f852f50b489615f3f357f9758d0073335334
|
@ -1 +1 @@
|
|||||||
Subproject commit fbdb77d7127e7d6a8d3574440b0f790c94a28cf8
|
Subproject commit 596cc896e5c8815caa2a6f405560833193848149
|
@ -1 +1 @@
|
|||||||
Subproject commit 6234787515e2f0ece40b6408722ff0b42824038e
|
Subproject commit d4ff0388f3e3af2745864f2c3e5926f500673a40
|
21
locale/ID.po
21
locale/ID.po
@ -671,6 +671,7 @@ msgstr "Pin bus %d sudah digunakan"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2509,6 +2510,10 @@ msgstr ""
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2937,6 +2942,10 @@ msgstr ""
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2978,9 +2987,9 @@ msgstr ""
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr "error = 0x%08lX"
|
msgstr "error = 0x%08lX"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3357,7 +3366,7 @@ msgstr "key tidak valid"
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr "micropython decorator tidak valid"
|
msgstr "micropython decorator tidak valid"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3614,7 +3623,7 @@ msgstr ""
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3751,6 +3760,10 @@ msgstr ""
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -2485,6 +2485,10 @@ msgstr ""
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2913,6 +2917,10 @@ msgstr ""
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2954,9 +2962,9 @@ msgstr ""
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3333,7 +3341,7 @@ msgstr ""
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3590,7 +3598,7 @@ msgstr ""
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3726,6 +3734,10 @@ msgstr ""
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
21
locale/cs.po
21
locale/cs.po
@ -672,6 +672,7 @@ msgstr "Sběrnicový pin %d je již používán"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2496,6 +2497,10 @@ msgstr ""
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2924,6 +2929,10 @@ msgstr ""
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2965,9 +2974,9 @@ msgstr ""
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3344,7 +3353,7 @@ msgstr ""
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3601,7 +3610,7 @@ msgstr ""
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3737,6 +3746,10 @@ msgstr ""
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -675,6 +675,7 @@ msgstr "Bus-Pin %d wird schon benutzt"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr "Beim Starten wurde Taste A gedrückt.\n"
|
msgstr "Beim Starten wurde Taste A gedrückt.\n"
|
||||||
|
|
||||||
@ -2554,6 +2555,10 @@ msgstr "Array- und Indexlänge müssen gleich sein"
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr "Das Array hat zu viele Dimensionen"
|
msgstr "Das Array hat zu viele Dimensionen"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2994,6 +2999,10 @@ msgstr "Abmessungen stimmen nicht überein"
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr "div/mod für uint nicht implementiert"
|
msgstr "div/mod für uint nicht implementiert"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr "durch Null dividieren"
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr "Division durch Null"
|
msgstr "Division durch Null"
|
||||||
@ -3035,13 +3044,11 @@ msgstr "epoch_time wird auf diesem Board nicht unterstützt"
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr "Fehler = 0x%08lX"
|
msgstr "Fehler = 0x%08lX"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"esp32_camera.Camera benötigt reservierten PSRAM um konfiguriert werden zu "
|
|
||||||
"können. Sieh in der Dokumentation für eine Anleitung nach."
|
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "exceptions must derive from BaseException"
|
msgid "exceptions must derive from BaseException"
|
||||||
@ -3418,7 +3425,7 @@ msgstr "ungültiger Schlüssel"
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr "ungültiger micropython decorator"
|
msgstr "ungültiger micropython decorator"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr "Invalide Einstellung"
|
msgstr "Invalide Einstellung"
|
||||||
|
|
||||||
@ -3681,7 +3688,7 @@ msgstr "kein Reset Pin verfügbar"
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr "keine Antwort von der SD-Karte"
|
msgstr "keine Antwort von der SD-Karte"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr "kein solches Attribut"
|
msgstr "kein solches Attribut"
|
||||||
|
|
||||||
@ -3819,6 +3826,10 @@ msgstr "nur eine bit_depth=16 wird unterstützt"
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr "nur Mono wird unterstützt"
|
msgstr "nur Mono wird unterstützt"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -4431,6 +4442,13 @@ msgstr "zi muss eine Gleitkommazahl sein"
|
|||||||
msgid "zi must be of shape (n_section, 2)"
|
msgid "zi must be of shape (n_section, 2)"
|
||||||
msgstr "zi muss die Form (n_section, 2) haben"
|
msgstr "zi muss die Form (n_section, 2) haben"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
|
#~ "documentation for instructions."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "esp32_camera.Camera benötigt reservierten PSRAM um konfiguriert werden zu "
|
||||||
|
#~ "können. Sieh in der Dokumentation für eine Anleitung nach."
|
||||||
|
|
||||||
#~ msgid "%q must be of type %q"
|
#~ msgid "%q must be of type %q"
|
||||||
#~ msgstr "%q muss vom Type %q sein"
|
#~ msgstr "%q muss vom Type %q sein"
|
||||||
|
|
||||||
@ -4499,9 +4517,6 @@ msgstr "zi muss die Form (n_section, 2) haben"
|
|||||||
#~ msgid "complex division by zero"
|
#~ msgid "complex division by zero"
|
||||||
#~ msgstr "Komplexe Division durch null"
|
#~ msgstr "Komplexe Division durch null"
|
||||||
|
|
||||||
#~ msgid "divide by zero"
|
|
||||||
#~ msgstr "durch Null dividieren"
|
|
||||||
|
|
||||||
#~ msgid "int() arg 2 must be >= 2 and <= 36"
|
#~ msgid "int() arg 2 must be >= 2 and <= 36"
|
||||||
#~ msgstr "int() arg 2 muss >= 2 und <= 36 sein"
|
#~ msgstr "int() arg 2 muss >= 2 und <= 36 sein"
|
||||||
|
|
||||||
|
21
locale/el.po
21
locale/el.po
@ -678,6 +678,7 @@ msgstr "Bus pin %d είναι ήδη σε χρήση"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2505,6 +2506,10 @@ msgstr ""
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2933,6 +2938,10 @@ msgstr ""
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2974,9 +2983,9 @@ msgstr ""
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3353,7 +3362,7 @@ msgstr ""
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3610,7 +3619,7 @@ msgstr ""
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3746,6 +3755,10 @@ msgstr ""
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -675,6 +675,7 @@ msgstr "Bus pin %d is already in use"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2512,6 +2513,10 @@ msgstr "array and index length must be equal"
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2943,6 +2948,10 @@ msgstr "dimensions do not match"
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr "div/mod not implemented for uint"
|
msgstr "div/mod not implemented for uint"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr "divide by zero"
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr "division by zero"
|
msgstr "division by zero"
|
||||||
@ -2984,9 +2993,9 @@ msgstr "epoch_time not supported on this board"
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr "error = 0x%08lX"
|
msgstr "error = 0x%08lX"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3363,7 +3372,7 @@ msgstr "invalid key"
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr "invalid micropython decorator"
|
msgstr "invalid micropython decorator"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3620,7 +3629,7 @@ msgstr "no reset pin available"
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr "no response from SD card"
|
msgstr "no response from SD card"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr "no such attribute"
|
msgstr "no such attribute"
|
||||||
|
|
||||||
@ -3756,6 +3765,10 @@ msgstr "only bit_depth=16 is supported"
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -4407,9 +4420,6 @@ msgstr "zi must be of shape (n_section, 2)"
|
|||||||
#~ msgid "complex division by zero"
|
#~ msgid "complex division by zero"
|
||||||
#~ msgstr "complex division by zero"
|
#~ msgstr "complex division by zero"
|
||||||
|
|
||||||
#~ msgid "divide by zero"
|
|
||||||
#~ msgstr "divide by zero"
|
|
||||||
|
|
||||||
#~ msgid "int() arg 2 must be >= 2 and <= 36"
|
#~ msgid "int() arg 2 must be >= 2 and <= 36"
|
||||||
#~ msgstr "int() arg 2 must be >= 2 and <= 36"
|
#~ msgstr "int() arg 2 must be >= 2 and <= 36"
|
||||||
|
|
||||||
|
328
locale/es.po
328
locale/es.po
File diff suppressed because it is too large
Load Diff
@ -668,6 +668,7 @@ msgstr "Ginagamit na ang DAC"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2496,6 +2497,10 @@ msgstr ""
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2935,6 +2940,10 @@ msgstr ""
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr "dibisyon ng zero"
|
msgstr "dibisyon ng zero"
|
||||||
@ -2976,9 +2985,9 @@ msgstr ""
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3356,7 +3365,7 @@ msgstr "mali ang key"
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr "mali ang micropython decorator"
|
msgstr "mali ang micropython decorator"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3617,7 +3626,7 @@ msgstr ""
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr "walang ganoon na attribute"
|
msgstr "walang ganoon na attribute"
|
||||||
|
|
||||||
@ -3754,6 +3763,10 @@ msgstr ""
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
33
locale/fr.po
33
locale/fr.po
@ -681,6 +681,7 @@ msgstr "La broche %d du bus est déjà utilisée"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr "Le bouton A était pressé au démarrage.\n"
|
msgstr "Le bouton A était pressé au démarrage.\n"
|
||||||
|
|
||||||
@ -2580,6 +2581,10 @@ msgstr "la taille de la matrice et de l'index doivent être égaux"
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr "la tableau à trop de dimensions"
|
msgstr "la tableau à trop de dimensions"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -3021,6 +3026,10 @@ msgstr "les dimensions ne correspondent pas"
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr "div/mod ne sont pas implémentés pour uint"
|
msgstr "div/mod ne sont pas implémentés pour uint"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr "division par zéro"
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr "division par zéro"
|
msgstr "division par zéro"
|
||||||
@ -3062,13 +3071,11 @@ msgstr "epoch_time n'est pas supporté sur ce panneau"
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr "erreur = 0x%08lX"
|
msgstr "erreur = 0x%08lX"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"esp32_camera.Camera nécessite la configuration de PSRAM réservée. Se référer "
|
|
||||||
"à la documentation."
|
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "exceptions must derive from BaseException"
|
msgid "exceptions must derive from BaseException"
|
||||||
@ -3445,7 +3452,7 @@ msgstr "clé invalide"
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr "décorateur micropython invalide"
|
msgstr "décorateur micropython invalide"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr "réglage invalide"
|
msgstr "réglage invalide"
|
||||||
|
|
||||||
@ -3707,7 +3714,7 @@ msgstr "pas de broche de réinitialisation disponible"
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr "pas de réponse de la carte SD"
|
msgstr "pas de réponse de la carte SD"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr "pas de tel attribut"
|
msgstr "pas de tel attribut"
|
||||||
|
|
||||||
@ -3846,6 +3853,10 @@ msgstr "seul bit_depth = 16 est pris en charge"
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -4456,6 +4467,13 @@ msgstr "zi doit être de type float"
|
|||||||
msgid "zi must be of shape (n_section, 2)"
|
msgid "zi must be of shape (n_section, 2)"
|
||||||
msgstr "zi doit être de forme (n_section, 2)"
|
msgstr "zi doit être de forme (n_section, 2)"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
|
#~ "documentation for instructions."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "esp32_camera.Camera nécessite la configuration de PSRAM réservée. Se "
|
||||||
|
#~ "référer à la documentation."
|
||||||
|
|
||||||
#~ msgid "%q must be of type %q"
|
#~ msgid "%q must be of type %q"
|
||||||
#~ msgstr "%q doit être du type %q"
|
#~ msgstr "%q doit être du type %q"
|
||||||
|
|
||||||
@ -4521,9 +4539,6 @@ msgstr "zi doit être de forme (n_section, 2)"
|
|||||||
#~ msgid "complex division by zero"
|
#~ msgid "complex division by zero"
|
||||||
#~ msgstr "division complexe par zéro"
|
#~ msgstr "division complexe par zéro"
|
||||||
|
|
||||||
#~ msgid "divide by zero"
|
|
||||||
#~ msgstr "division par zéro"
|
|
||||||
|
|
||||||
#~ msgid "int() arg 2 must be >= 2 and <= 36"
|
#~ msgid "int() arg 2 must be >= 2 and <= 36"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Le deuxième argument de int() doit être compris entre 2 et 36 inclus"
|
#~ "Le deuxième argument de int() doit être compris entre 2 et 36 inclus"
|
||||||
|
21
locale/hi.po
21
locale/hi.po
@ -663,6 +663,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2478,6 +2479,10 @@ msgstr ""
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2906,6 +2911,10 @@ msgstr ""
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2947,9 +2956,9 @@ msgstr ""
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3326,7 +3335,7 @@ msgstr ""
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3583,7 +3592,7 @@ msgstr ""
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3719,6 +3728,10 @@ msgstr ""
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -675,6 +675,7 @@ msgstr "Bus pin %d è già in uso"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2506,6 +2507,10 @@ msgstr ""
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2943,6 +2948,10 @@ msgstr ""
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr "divisione per zero"
|
msgstr "divisione per zero"
|
||||||
@ -2984,9 +2993,9 @@ msgstr ""
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr "errore = 0x%08lX"
|
msgstr "errore = 0x%08lX"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3364,7 +3373,7 @@ msgstr "chiave non valida"
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr "decoratore non valido in micropython"
|
msgstr "decoratore non valido in micropython"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3626,7 +3635,7 @@ msgstr ""
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr "attributo inesistente"
|
msgstr "attributo inesistente"
|
||||||
|
|
||||||
@ -3765,6 +3774,10 @@ msgstr ""
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
21
locale/ja.po
21
locale/ja.po
@ -675,6 +675,7 @@ msgstr "Busピン%dはすでに使用中"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2498,6 +2499,10 @@ msgstr ""
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2930,6 +2935,10 @@ msgstr ""
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr "ゼロ除算 (division by zero)"
|
msgstr "ゼロ除算 (division by zero)"
|
||||||
@ -2971,9 +2980,9 @@ msgstr ""
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr "error = 0x1%08lX"
|
msgstr "error = 0x1%08lX"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3351,7 +3360,7 @@ msgstr "不正な鍵"
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr "不正なmicropythonデコレータ"
|
msgstr "不正なmicropythonデコレータ"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3608,7 +3617,7 @@ msgstr "利用可能なリセットピンがありません"
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr "SDカードからの応答がありません"
|
msgstr "SDカードからの応答がありません"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr "指定の属性はありません"
|
msgstr "指定の属性はありません"
|
||||||
|
|
||||||
@ -3744,6 +3753,10 @@ msgstr "bit_depth=16のみ対応しています"
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
21
locale/ko.po
21
locale/ko.po
@ -666,6 +666,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2482,6 +2483,10 @@ msgstr ""
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2910,6 +2915,10 @@ msgstr ""
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2951,9 +2960,9 @@ msgstr ""
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3330,7 +3339,7 @@ msgstr "키가 유효하지 않습니다"
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3587,7 +3596,7 @@ msgstr ""
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3723,6 +3732,10 @@ msgstr ""
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
21
locale/nl.po
21
locale/nl.po
@ -668,6 +668,7 @@ msgstr "Bus pin %d al in gebruik"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2508,6 +2509,10 @@ msgstr "array en indexlengte moeten gelijk zijn"
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2939,6 +2944,10 @@ msgstr ""
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr "deling door nul"
|
msgstr "deling door nul"
|
||||||
@ -2980,9 +2989,9 @@ msgstr "epoch_time niet ondersteund op dit bord"
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr "fout = 0x%08lX"
|
msgstr "fout = 0x%08lX"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3360,7 +3369,7 @@ msgstr "ongeldige sleutel"
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr "ongeldige micropython decorator"
|
msgstr "ongeldige micropython decorator"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3620,7 +3629,7 @@ msgstr "geen reset pin beschikbaar"
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr "geen antwoord van SD kaart"
|
msgstr "geen antwoord van SD kaart"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr "niet zo'n attribuut"
|
msgstr "niet zo'n attribuut"
|
||||||
|
|
||||||
@ -3756,6 +3765,10 @@ msgstr "alleen bit_depth=16 wordt ondersteund"
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
21
locale/pl.po
21
locale/pl.po
@ -670,6 +670,7 @@ msgstr "Nóżka magistrali %d jest w użyciu"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2489,6 +2490,10 @@ msgstr ""
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2918,6 +2923,10 @@ msgstr ""
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr "dzielenie przez zero"
|
msgstr "dzielenie przez zero"
|
||||||
@ -2959,9 +2968,9 @@ msgstr ""
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr "błąd = 0x%08lX"
|
msgstr "błąd = 0x%08lX"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3338,7 +3347,7 @@ msgstr "zły klucz"
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr "zły dekorator micropythona"
|
msgstr "zły dekorator micropythona"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3595,7 +3604,7 @@ msgstr ""
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr "nie ma takiego atrybutu"
|
msgstr "nie ma takiego atrybutu"
|
||||||
|
|
||||||
@ -3731,6 +3740,10 @@ msgstr "obsługiwane jest tylko bit_depth=16"
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -6,7 +6,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||||
"PO-Revision-Date: 2023-01-13 18:51+0000\n"
|
"PO-Revision-Date: 2023-01-29 16:16+0000\n"
|
||||||
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
|
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: pt_BR\n"
|
"Language: pt_BR\n"
|
||||||
@ -14,7 +14,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||||
"X-Generator: Weblate 4.15.1-dev\n"
|
"X-Generator: Weblate 4.16-dev\n"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -683,6 +683,7 @@ msgstr "O pino bus %d já está em uso"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr "O botão A foi pressionado na inicialização.\n"
|
msgstr "O botão A foi pressionado na inicialização.\n"
|
||||||
|
|
||||||
@ -2561,6 +2562,10 @@ msgstr "a matriz e comprimento do índice devem ser iguais"
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr "a matriz possui muitas dimensões"
|
msgstr "a matriz possui muitas dimensões"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2998,6 +3003,10 @@ msgstr "as dimensões não coincidem"
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr "div/mod não implementado para uint"
|
msgstr "div/mod não implementado para uint"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr "divido por zero"
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr "divisão por zero"
|
msgstr "divisão por zero"
|
||||||
@ -3039,13 +3048,13 @@ msgstr "O epoch_time não é compatível com esta placa"
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr "erro = 0x%08lX"
|
msgstr "erro = 0x%08lX"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"esp32_camera.Camera requer que uma reserva PSRAM seja configurada. Consulte "
|
"O espcamera.Camera requer que o PSRAM seja reservado para que possa ser "
|
||||||
"a documentação para obter mais informações."
|
"configurado. Consulte a documentação para obter mais informações."
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "exceptions must derive from BaseException"
|
msgid "exceptions must derive from BaseException"
|
||||||
@ -3421,7 +3430,7 @@ msgstr "chave inválida"
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr "o decorador micropython é inválido"
|
msgstr "o decorador micropython é inválido"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr "configuração inválida"
|
msgstr "configuração inválida"
|
||||||
|
|
||||||
@ -3683,7 +3692,7 @@ msgstr "nenhum pino de redefinição está disponível"
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr "não houve resposta do cartão SD"
|
msgstr "não houve resposta do cartão SD"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr "não há tal atributo"
|
msgstr "não há tal atributo"
|
||||||
|
|
||||||
@ -3819,6 +3828,10 @@ msgstr "apenas bit_depth = 16 é compatível"
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr "Apenas o mono é compatível"
|
msgstr "Apenas o mono é compatível"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr "apenas oversample=64 é compatível"
|
msgstr "apenas oversample=64 é compatível"
|
||||||
@ -4431,6 +4444,13 @@ msgstr "zi deve ser de um tipo float"
|
|||||||
msgid "zi must be of shape (n_section, 2)"
|
msgid "zi must be of shape (n_section, 2)"
|
||||||
msgstr "zi deve estar na forma (n_section, 2)"
|
msgstr "zi deve estar na forma (n_section, 2)"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
|
#~ "documentation for instructions."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "esp32_camera.Camera requer que uma reserva PSRAM seja configurada. "
|
||||||
|
#~ "Consulte a documentação para obter mais informações."
|
||||||
|
|
||||||
#~ msgid "%q must be of type %q"
|
#~ msgid "%q must be of type %q"
|
||||||
#~ msgstr "%q deve ser do tipo %q"
|
#~ msgstr "%q deve ser do tipo %q"
|
||||||
|
|
||||||
@ -4502,9 +4522,6 @@ msgstr "zi deve estar na forma (n_section, 2)"
|
|||||||
#~ msgid "complex division by zero"
|
#~ msgid "complex division by zero"
|
||||||
#~ msgstr "divisão complexa por zero"
|
#~ msgstr "divisão complexa por zero"
|
||||||
|
|
||||||
#~ msgid "divide by zero"
|
|
||||||
#~ msgstr "divido por zero"
|
|
||||||
|
|
||||||
#~ msgid "int() arg 2 must be >= 2 and <= 36"
|
#~ msgid "int() arg 2 must be >= 2 and <= 36"
|
||||||
#~ msgstr "int() arg 2 deve ser >= 2 e <= 36"
|
#~ msgstr "int() arg 2 deve ser >= 2 e <= 36"
|
||||||
|
|
||||||
|
21
locale/ru.po
21
locale/ru.po
@ -680,6 +680,7 @@ msgstr "Пин шины %d уже используется"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr "Кнопка A была нажата при загрузке\n"
|
msgstr "Кнопка A была нажата при загрузке\n"
|
||||||
|
|
||||||
@ -2546,6 +2547,10 @@ msgstr ""
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2974,6 +2979,10 @@ msgstr ""
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3015,9 +3024,9 @@ msgstr ""
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3394,7 +3403,7 @@ msgstr ""
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3651,7 +3660,7 @@ msgstr "нет доступного контакта сброса"
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3787,6 +3796,10 @@ msgstr ""
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
37
locale/sv.po
37
locale/sv.po
@ -6,7 +6,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||||
"PO-Revision-Date: 2023-01-13 18:51+0000\n"
|
"PO-Revision-Date: 2023-01-29 16:16+0000\n"
|
||||||
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"Language: sv\n"
|
"Language: sv\n"
|
||||||
@ -14,7 +14,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 4.15.1-dev\n"
|
"X-Generator: Weblate 4.16-dev\n"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -675,6 +675,7 @@ msgstr "Busspinne %d används redan"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr "Knapp A trycktes ned vid start.\n"
|
msgstr "Knapp A trycktes ned vid start.\n"
|
||||||
|
|
||||||
@ -2534,6 +2535,10 @@ msgstr "array och indexlängd måste vara lika"
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr "array har för många dimensioner"
|
msgstr "array har för många dimensioner"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2967,6 +2972,10 @@ msgstr "dimensioner matchar inte"
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr "div/mod inte implementerat för uint"
|
msgstr "div/mod inte implementerat för uint"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr "division med noll"
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr "division med noll"
|
msgstr "division med noll"
|
||||||
@ -3008,12 +3017,12 @@ msgstr "epoch_time stöds inte av detta kort"
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr "fel = 0x%08lX"
|
msgstr "fel = 0x%08lX"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"esp32_camera.Camera kräver reserverad PSRAM att konfigureras. Se "
|
"espcamera.Camera kräver reserverat PSRAM att vara konfigurerat. Se "
|
||||||
"dokumentationen för instruktioner."
|
"dokumentationen för instruktioner."
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
@ -3389,7 +3398,7 @@ msgstr "ogiltig nyckel"
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr "ogiltig mikropython-dekorator"
|
msgstr "ogiltig mikropython-dekorator"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr "ogiltig inställning"
|
msgstr "ogiltig inställning"
|
||||||
|
|
||||||
@ -3649,7 +3658,7 @@ msgstr "ingen reset-pinne tillgänglig"
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr "inget svar från SD-kort"
|
msgstr "inget svar från SD-kort"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr "inget sådant attribut"
|
msgstr "inget sådant attribut"
|
||||||
|
|
||||||
@ -3785,6 +3794,10 @@ msgstr "bara bit_depth=16 stöds"
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr "endast mono stöds"
|
msgstr "endast mono stöds"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr "endast oversample=64 stöds"
|
msgstr "endast oversample=64 stöds"
|
||||||
@ -4393,6 +4406,13 @@ msgstr "zi måste vara av typ float"
|
|||||||
msgid "zi must be of shape (n_section, 2)"
|
msgid "zi must be of shape (n_section, 2)"
|
||||||
msgstr "zi måste vara i formen (n_section, 2)"
|
msgstr "zi måste vara i formen (n_section, 2)"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
|
#~ "documentation for instructions."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "esp32_camera.Camera kräver reserverad PSRAM att konfigureras. Se "
|
||||||
|
#~ "dokumentationen för instruktioner."
|
||||||
|
|
||||||
#~ msgid "%q must be of type %q"
|
#~ msgid "%q must be of type %q"
|
||||||
#~ msgstr "%q måste vara av typen %q"
|
#~ msgstr "%q måste vara av typen %q"
|
||||||
|
|
||||||
@ -4464,9 +4484,6 @@ msgstr "zi måste vara i formen (n_section, 2)"
|
|||||||
#~ msgid "complex division by zero"
|
#~ msgid "complex division by zero"
|
||||||
#~ msgstr "komplex division med noll"
|
#~ msgstr "komplex division med noll"
|
||||||
|
|
||||||
#~ msgid "divide by zero"
|
|
||||||
#~ msgstr "division med noll"
|
|
||||||
|
|
||||||
#~ msgid "int() arg 2 must be >= 2 and <= 36"
|
#~ msgid "int() arg 2 must be >= 2 and <= 36"
|
||||||
#~ msgstr "int() arg 2 måste vara >= 2 och <= 36"
|
#~ msgstr "int() arg 2 måste vara >= 2 och <= 36"
|
||||||
|
|
||||||
|
21
locale/tr.po
21
locale/tr.po
@ -678,6 +678,7 @@ msgstr "Veriyolu pini %d kullanımda"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr "Başlatma sırasında A düğmesine basıldı.\n"
|
msgstr "Başlatma sırasında A düğmesine basıldı.\n"
|
||||||
|
|
||||||
@ -2504,6 +2505,10 @@ msgstr ""
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2932,6 +2937,10 @@ msgstr ""
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2973,9 +2982,9 @@ msgstr ""
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3352,7 +3361,7 @@ msgstr ""
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3609,7 +3618,7 @@ msgstr ""
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3745,6 +3754,10 @@ msgstr ""
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -7,7 +7,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: circuitpython-cn\n"
|
"Project-Id-Version: circuitpython-cn\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||||
"PO-Revision-Date: 2022-11-30 16:14+0000\n"
|
"PO-Revision-Date: 2023-01-25 03:47+0000\n"
|
||||||
"Last-Translator: hexthat <hexthat@gmail.com>\n"
|
"Last-Translator: hexthat <hexthat@gmail.com>\n"
|
||||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||||
"Language: zh_Latn_pinyin\n"
|
"Language: zh_Latn_pinyin\n"
|
||||||
@ -15,7 +15,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
"X-Generator: Weblate 4.15-dev\n"
|
"X-Generator: Weblate 4.16-dev\n"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -118,7 +118,7 @@ msgstr "%q Shībài: %d"
|
|||||||
|
|
||||||
#: py/argcheck.c
|
#: py/argcheck.c
|
||||||
msgid "%q in %q must be of type %q, not %q"
|
msgid "%q in %q must be of type %q, not %q"
|
||||||
msgstr ""
|
msgstr "%q zhōng de %q bì xū shì %q lèi xíng, ér bù shì %q"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/espulp/ULP.c
|
#: ports/espressif/common-hal/espulp/ULP.c
|
||||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||||
@ -141,7 +141,7 @@ msgstr "%q shì %q"
|
|||||||
|
|
||||||
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
||||||
msgid "%q is read-only for this board"
|
msgid "%q is read-only for this board"
|
||||||
msgstr ""
|
msgstr "%q duì yú cǐ bǎn shì zhǐ dú de"
|
||||||
|
|
||||||
#: py/argcheck.c shared-bindings/usb_hid/Device.c
|
#: py/argcheck.c shared-bindings/usb_hid/Device.c
|
||||||
msgid "%q length must be %d"
|
msgid "%q length must be %d"
|
||||||
@ -181,7 +181,7 @@ msgstr "%q bìxū >= %d"
|
|||||||
|
|
||||||
#: shared-bindings/analogbufio/BufferedIn.c
|
#: shared-bindings/analogbufio/BufferedIn.c
|
||||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||||
msgstr ""
|
msgstr "%q bì xū shì zì jié shù zǔ huò lèi xíng wéi 'H' huò 'B' de shù zǔ"
|
||||||
|
|
||||||
#: shared-bindings/audiocore/RawSample.c
|
#: shared-bindings/audiocore/RawSample.c
|
||||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||||
@ -191,11 +191,11 @@ msgstr ""
|
|||||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||||
msgid "%q must be of type %q or %q, not %q"
|
msgid "%q must be of type %q or %q, not %q"
|
||||||
msgstr ""
|
msgstr "%q de lèi xíng bì xū shì %q huò %q, ér bù shì %q"
|
||||||
|
|
||||||
#: py/argcheck.c py/obj.c py/objstrunicode.c
|
#: py/argcheck.c py/obj.c py/objstrunicode.c
|
||||||
msgid "%q must be of type %q, not %q"
|
msgid "%q must be of type %q, not %q"
|
||||||
msgstr ""
|
msgstr "%q de lèi xíng bì xū shì %q, ér bù shì %q"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
msgid "%q must be power of 2"
|
msgid "%q must be power of 2"
|
||||||
@ -220,7 +220,7 @@ msgstr "%q yǐn jiǎo wúxiào"
|
|||||||
|
|
||||||
#: py/objrange.c py/objslice.c shared-bindings/random/__init__.c
|
#: py/objrange.c py/objslice.c shared-bindings/random/__init__.c
|
||||||
msgid "%q step cannot be zero"
|
msgid "%q step cannot be zero"
|
||||||
msgstr ""
|
msgstr "%q bù cháng bù néng wéi líng"
|
||||||
|
|
||||||
#: py/bc.c py/objnamedtuple.c
|
#: py/bc.c py/objnamedtuple.c
|
||||||
msgid "%q() takes %d positional arguments but %d were given"
|
msgid "%q() takes %d positional arguments but %d were given"
|
||||||
@ -421,7 +421,7 @@ msgstr "dìzhǐ chángdù bìxū shì %d zìjié"
|
|||||||
|
|
||||||
#: ports/espressif/common-hal/memorymap/AddressRange.c
|
#: ports/espressif/common-hal/memorymap/AddressRange.c
|
||||||
msgid "Address range not allowed"
|
msgid "Address range not allowed"
|
||||||
msgstr ""
|
msgstr "bù yǔn xǔ de dì zhǐ fàn wéi"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/canio/CAN.c
|
#: ports/espressif/common-hal/canio/CAN.c
|
||||||
msgid "All CAN peripherals are in use"
|
msgid "All CAN peripherals are in use"
|
||||||
@ -517,7 +517,7 @@ msgstr "yǐjīng zài sǎomiáo WIFI wǎngluò"
|
|||||||
#: shared-module/os/getenv.c
|
#: shared-module/os/getenv.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "An error occurred while retrieving '%s':\n"
|
msgid "An error occurred while retrieving '%s':\n"
|
||||||
msgstr ""
|
msgstr "jiǎn suǒ '%s' shí chū cuò:\n"
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
msgid "Another PWMAudioOut is already active"
|
msgid "Another PWMAudioOut is already active"
|
||||||
@ -677,6 +677,7 @@ msgstr "Zǒngxiàn yǐnjiǎo %d yǐjīng zài shǐyòng zhōng"
|
|||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "Button A was pressed at start up.\n"
|
msgid "Button A was pressed at start up.\n"
|
||||||
msgstr "qǐ dòng shí àn xià àn niǔ A.\n"
|
msgstr "qǐ dòng shí àn xià àn niǔ A.\n"
|
||||||
|
|
||||||
@ -925,6 +926,7 @@ msgstr "Fāngxiàng shūrù shí qūdòng móshì méiyǒu shǐyòng."
|
|||||||
#: py/obj.c
|
#: py/obj.c
|
||||||
msgid "During handling of the above exception, another exception occurred:"
|
msgid "During handling of the above exception, another exception occurred:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"zài chǔ lǐ shàng shù yì cháng qī jiān, fā shēng le lìng yí gè yì cháng:"
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
msgid "ECB only operates on 16 bytes at a time"
|
msgid "ECB only operates on 16 bytes at a time"
|
||||||
@ -957,7 +959,7 @@ msgstr "cuò wù: bǎng dìng shī bài"
|
|||||||
|
|
||||||
#: shared-bindings/alarm/__init__.c
|
#: shared-bindings/alarm/__init__.c
|
||||||
msgid "Expected a kind of %q"
|
msgid "Expected a kind of %q"
|
||||||
msgstr ""
|
msgstr "yù qī yì zhǒng %q"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
@ -1033,7 +1035,7 @@ msgstr "Wénjiàn cúnzài"
|
|||||||
|
|
||||||
#: shared-module/os/getenv.c
|
#: shared-module/os/getenv.c
|
||||||
msgid "File not found"
|
msgid "File not found"
|
||||||
msgstr ""
|
msgstr "zhǎo bú dào wén jiàn"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
#: ports/espressif/common-hal/canio/Listener.c
|
#: ports/espressif/common-hal/canio/Listener.c
|
||||||
@ -1274,7 +1276,7 @@ msgstr "Měi gè zhí de wèi wúxiào"
|
|||||||
#: shared-module/os/getenv.c
|
#: shared-module/os/getenv.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid byte %.*s"
|
msgid "Invalid byte %.*s"
|
||||||
msgstr ""
|
msgstr "wú xiào zì jié %.*s"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/imagecapture/ParallelImageCapture.c
|
#: ports/atmel-samd/common-hal/imagecapture/ParallelImageCapture.c
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1308,7 +1310,7 @@ msgstr "wú xiào zhuàng tài"
|
|||||||
|
|
||||||
#: shared-module/os/getenv.c
|
#: shared-module/os/getenv.c
|
||||||
msgid "Invalid unicode escape"
|
msgid "Invalid unicode escape"
|
||||||
msgstr ""
|
msgstr "wú xiào de unicode zhuǎn yì"
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
msgid "Key must be 16, 24, or 32 bytes long"
|
msgid "Key must be 16, 24, or 32 bytes long"
|
||||||
@ -1316,7 +1318,7 @@ msgstr "mì yào bì xū wéi 16, 24 huò 32 zì jié cháng"
|
|||||||
|
|
||||||
#: shared-module/os/getenv.c
|
#: shared-module/os/getenv.c
|
||||||
msgid "Key not found"
|
msgid "Key not found"
|
||||||
msgstr ""
|
msgstr "wèi zhǎo dào mì yào"
|
||||||
|
|
||||||
#: shared-module/is31fl3741/FrameBuffer.c
|
#: shared-module/is31fl3741/FrameBuffer.c
|
||||||
msgid "LED mappings must match display size"
|
msgid "LED mappings must match display size"
|
||||||
@ -1427,7 +1429,7 @@ msgstr "NVS cuò wù"
|
|||||||
|
|
||||||
#: shared-bindings/socketpool/SocketPool.c
|
#: shared-bindings/socketpool/SocketPool.c
|
||||||
msgid "Name or service not known"
|
msgid "Name or service not known"
|
||||||
msgstr ""
|
msgstr "míng chēng huò fú wù wèi zhī"
|
||||||
|
|
||||||
#: py/qstr.c
|
#: py/qstr.c
|
||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
@ -1674,7 +1676,7 @@ msgstr "zài shēn dù shuì mián zhōng zhǐ néng shè zhì yí gè %q."
|
|||||||
|
|
||||||
#: ports/espressif/common-hal/espulp/ULPAlarm.c
|
#: ports/espressif/common-hal/espulp/ULPAlarm.c
|
||||||
msgid "Only one %q can be set."
|
msgid "Only one %q can be set."
|
||||||
msgstr ""
|
msgstr "zhǐ néng shè zhì yí gè %q."
|
||||||
|
|
||||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||||
@ -1842,7 +1844,7 @@ msgstr "chéng xù dà xiǎo wú xiào"
|
|||||||
|
|
||||||
#: ports/espressif/common-hal/espulp/ULP.c
|
#: ports/espressif/common-hal/espulp/ULP.c
|
||||||
msgid "Program too long"
|
msgid "Program too long"
|
||||||
msgstr ""
|
msgstr "chéng xù tài cháng"
|
||||||
|
|
||||||
#: shared-bindings/digitalio/DigitalInOut.c
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
msgid "Pull not used when direction is output."
|
msgid "Pull not used when direction is output."
|
||||||
@ -2024,7 +2026,7 @@ msgstr "lì tǐ shēng yòu cè bì xū zài PWM tōng dào B shàng"
|
|||||||
|
|
||||||
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
||||||
msgid "Stopping AP is not supported."
|
msgid "Stopping AP is not supported."
|
||||||
msgstr ""
|
msgstr "bù zhī chí tíng zhǐ AP."
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
@ -2072,7 +2074,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: py/obj.c
|
#: py/obj.c
|
||||||
msgid "The above exception was the direct cause of the following exception:"
|
msgid "The above exception was the direct cause of the following exception:"
|
||||||
msgstr ""
|
msgstr "shàng shù yì cháng shì yǐ xià yì cháng de zhí jiē yuán yīn:"
|
||||||
|
|
||||||
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
|
||||||
@ -2275,7 +2277,7 @@ msgstr "wú fǎ qǐ dòng mDNS chá xún"
|
|||||||
|
|
||||||
#: shared-bindings/memorymap/AddressRange.c
|
#: shared-bindings/memorymap/AddressRange.c
|
||||||
msgid "Unable to write to address."
|
msgid "Unable to write to address."
|
||||||
msgstr ""
|
msgstr "Wú fǎ xiě rù dì zhǐ."
|
||||||
|
|
||||||
#: shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/nvm/ByteArray.c
|
||||||
msgid "Unable to write to nvm."
|
msgid "Unable to write to nvm."
|
||||||
@ -2440,15 +2442,15 @@ msgstr "Wi-Fi: "
|
|||||||
|
|
||||||
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
||||||
msgid "Wifi is in access point mode."
|
msgid "Wifi is in access point mode."
|
||||||
msgstr ""
|
msgstr "Wú xiàn wǎng luò chǔ yú jiē rù diǎn mó shì."
|
||||||
|
|
||||||
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
||||||
msgid "Wifi is in station mode."
|
msgid "Wifi is in station mode."
|
||||||
msgstr ""
|
msgstr "Wú xiàn wǎng luò chǔ yú gōng zuò zhàn mó shì."
|
||||||
|
|
||||||
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
||||||
msgid "Wifi is not enabled"
|
msgid "Wifi is not enabled"
|
||||||
msgstr ""
|
msgstr "wú xiàn wǎng luò wèi qǐ yòng"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid "Woken up by alarm.\n"
|
msgid "Woken up by alarm.\n"
|
||||||
@ -2539,6 +2541,10 @@ msgstr "shù zǔ hé suǒ yǐn cháng dù bì xū xiāng děng"
|
|||||||
msgid "array has too many dimensions"
|
msgid "array has too many dimensions"
|
||||||
msgstr "shùzǔ yǒu tài duō wéidù"
|
msgstr "shùzǔ yǒu tài duō wéidù"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/ndarray.c
|
||||||
|
msgid "array is too big"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
msgid "array/bytes required on right side"
|
msgid "array/bytes required on right side"
|
||||||
@ -2761,7 +2767,7 @@ msgstr "wúfǎ shèzhì shǔxìng"
|
|||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "can't set attribute '%q'"
|
msgid "can't set attribute '%q'"
|
||||||
msgstr ""
|
msgstr "wú fǎ shè zhì shǔ xìng '%q'"
|
||||||
|
|
||||||
#: py/emitnative.c
|
#: py/emitnative.c
|
||||||
msgid "can't store '%q'"
|
msgid "can't store '%q'"
|
||||||
@ -2973,6 +2979,10 @@ msgstr "chǐ cùn bù pǐ pèi"
|
|||||||
msgid "div/mod not implemented for uint"
|
msgid "div/mod not implemented for uint"
|
||||||
msgstr "div/ mó zǔ wèi wéi wèi shí xiàn"
|
msgstr "div/ mó zǔ wèi wéi wèi shí xiàn"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "divide by zero"
|
||||||
|
msgstr "chú yǐ líng"
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "division by zero"
|
msgid "division by zero"
|
||||||
msgstr "bèi líng chú"
|
msgstr "bèi líng chú"
|
||||||
@ -3014,13 +3024,11 @@ msgstr "epoch_time bǎn bù zhī chí cǐ bǎn běn"
|
|||||||
msgid "error = 0x%08lX"
|
msgid "error = 0x%08lX"
|
||||||
msgstr "cuòwù = 0x%08lX"
|
msgstr "cuòwù = 0x%08lX"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"esp32_camera. shè xiàng jī xū yào pèi zhì yù liú de PSRAM. yǒu guān shuō "
|
|
||||||
"míng, qǐng cān yuè wén dàng."
|
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "exceptions must derive from BaseException"
|
msgid "exceptions must derive from BaseException"
|
||||||
@ -3238,7 +3246,7 @@ msgstr "suǒyǐn chāochū fànwéi"
|
|||||||
|
|
||||||
#: shared-bindings/_pixelmap/PixelMap.c
|
#: shared-bindings/_pixelmap/PixelMap.c
|
||||||
msgid "index must be tuple or int"
|
msgid "index must be tuple or int"
|
||||||
msgstr ""
|
msgstr "suǒ yǐn bì xū shì yuán zǔ huò zhěng shù"
|
||||||
|
|
||||||
#: extmod/ulab/code/numpy/numerical.c extmod/ulab/code/ulab_tools.c
|
#: extmod/ulab/code/numpy/numerical.c extmod/ulab/code/ulab_tools.c
|
||||||
#: ports/espressif/common-hal/pulseio/PulseIn.c
|
#: ports/espressif/common-hal/pulseio/PulseIn.c
|
||||||
@ -3395,7 +3403,7 @@ msgstr "wúxiào de mì yào"
|
|||||||
msgid "invalid micropython decorator"
|
msgid "invalid micropython decorator"
|
||||||
msgstr "wúxiào de MicroPython zhuāngshì qì"
|
msgstr "wúxiào de MicroPython zhuāngshì qì"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c
|
#: ports/espressif/common-hal/espcamera/Camera.c
|
||||||
msgid "invalid setting"
|
msgid "invalid setting"
|
||||||
msgstr "shèzhì wúxiào"
|
msgstr "shèzhì wúxiào"
|
||||||
|
|
||||||
@ -3618,7 +3626,7 @@ msgstr "fù zhuǎnyí jìshù"
|
|||||||
|
|
||||||
#: shared-bindings/_pixelmap/PixelMap.c
|
#: shared-bindings/_pixelmap/PixelMap.c
|
||||||
msgid "nested index must be int"
|
msgid "nested index must be int"
|
||||||
msgstr ""
|
msgstr "qiàn tào suǒ yǐn bì xū shì int"
|
||||||
|
|
||||||
#: shared-module/sdcardio/SDCard.c
|
#: shared-module/sdcardio/SDCard.c
|
||||||
msgid "no SD card"
|
msgid "no SD card"
|
||||||
@ -3653,7 +3661,7 @@ msgstr "Méiyǒu kěyòng de fùwèi yǐn jiǎo"
|
|||||||
msgid "no response from SD card"
|
msgid "no response from SD card"
|
||||||
msgstr "SD kǎ wú huíyīng"
|
msgstr "SD kǎ wú huíyīng"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/esp32_camera/Camera.c py/objobject.c py/runtime.c
|
#: ports/espressif/common-hal/espcamera/Camera.c py/objobject.c py/runtime.c
|
||||||
msgid "no such attribute"
|
msgid "no such attribute"
|
||||||
msgstr "méiyǒu cǐ shǔxìng"
|
msgstr "méiyǒu cǐ shǔxìng"
|
||||||
|
|
||||||
@ -3789,6 +3797,10 @@ msgstr "Jǐn zhīchí wèi shēndù = 16"
|
|||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr "jǐn zhī chí dān shēng dào"
|
msgstr "jǐn zhī chí dān shēng dào"
|
||||||
|
|
||||||
|
#: extmod/ulab/code/numpy/create.c
|
||||||
|
msgid "only ndarrays can be concatenated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr "jǐn zhī chí guò cǎi yàng =64"
|
msgstr "jǐn zhī chí guò cǎi yàng =64"
|
||||||
@ -4399,6 +4411,13 @@ msgstr "zi bìxū wèi fú diǎn xíng"
|
|||||||
msgid "zi must be of shape (n_section, 2)"
|
msgid "zi must be of shape (n_section, 2)"
|
||||||
msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
|
msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "esp32_camera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
|
#~ "documentation for instructions."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "esp32_camera. shè xiàng jī xū yào pèi zhì yù liú de PSRAM. yǒu guān shuō "
|
||||||
|
#~ "míng, qǐng cān yuè wén dàng."
|
||||||
|
|
||||||
#~ msgid "%q must be of type %q"
|
#~ msgid "%q must be of type %q"
|
||||||
#~ msgstr "%q bì xū shì %q lèi xíng"
|
#~ msgstr "%q bì xū shì %q lèi xíng"
|
||||||
|
|
||||||
@ -4467,9 +4486,6 @@ msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
|
|||||||
#~ msgid "complex division by zero"
|
#~ msgid "complex division by zero"
|
||||||
#~ msgstr "fùzá de fēngé wèi 0"
|
#~ msgstr "fùzá de fēngé wèi 0"
|
||||||
|
|
||||||
#~ msgid "divide by zero"
|
|
||||||
#~ msgstr "chú yǐ líng"
|
|
||||||
|
|
||||||
#~ msgid "int() arg 2 must be >= 2 and <= 36"
|
#~ msgid "int() arg 2 must be >= 2 and <= 36"
|
||||||
#~ msgstr "zhěngshù() cānshù 2 bìxū > = 2 qiě <= 36"
|
#~ msgstr "zhěngshù() cānshù 2 bìxū > = 2 qiě <= 36"
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@ LONGINT_IMPL = NONE
|
|||||||
|
|
||||||
CIRCUITPY_FULL_BUILD = 0
|
CIRCUITPY_FULL_BUILD = 0
|
||||||
|
|
||||||
|
CIRCUITPY_ANALOGIO = 0
|
||||||
CIRCUITPY_ALARM = 0
|
CIRCUITPY_ALARM = 0
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
CIRCUITPY_AUDIOMP3 = 0
|
CIRCUITPY_AUDIOMP3 = 0
|
||||||
@ -31,14 +32,13 @@ CIRCUITPY_ROTARYIO = 0
|
|||||||
CIRCUITPY_RTC = 0
|
CIRCUITPY_RTC = 0
|
||||||
CIRCUITPY_SAMD = 0
|
CIRCUITPY_SAMD = 0
|
||||||
CIRCUITPY_TOUCHIO = 0
|
CIRCUITPY_TOUCHIO = 0
|
||||||
CIRCUITPY_USB_CDC = 0
|
|
||||||
CIRCUITPY_USB_HID = 0
|
CIRCUITPY_USB_HID = 0
|
||||||
CIRCUITPY_USB_MIDI = 0
|
CIRCUITPY_USB_MIDI = 0
|
||||||
CIRCUITPY_VECTORIO = 0
|
CIRCUITPY_VECTORIO = 0
|
||||||
CIRCUITPY_BUSDEVICE = 0
|
CIRCUITPY_BUSDEVICE = 0
|
||||||
CIRCUITPY_BITMAPTOOLS = 0
|
CIRCUITPY_BITMAPTOOLS = 0
|
||||||
|
CIRCUITPY_WATCHDOG = 0
|
||||||
|
|
||||||
CIRCUITPY_ANALOGIO = 1
|
|
||||||
CIRCUITPY_AUDIOIO = 1
|
CIRCUITPY_AUDIOIO = 1
|
||||||
CIRCUITPY_AUDIOMIXER = 1
|
CIRCUITPY_AUDIOMIXER = 1
|
||||||
CIRCUITPY_DISPLAYIO = 1
|
CIRCUITPY_DISPLAYIO = 1
|
||||||
|
58
ports/broadcom/common-hal/rtc/RTC.c
Normal file
58
ports/broadcom/common-hal/rtc/RTC.c
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019 Nick Moore for Adafruit Industries
|
||||||
|
* Copyright (c) 2019 Artur Pacholec
|
||||||
|
*
|
||||||
|
* 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 <stdlib.h>
|
||||||
|
|
||||||
|
#include "py/obj.h"
|
||||||
|
#include "py/runtime.h"
|
||||||
|
#include "shared/timeutils/timeutils.h"
|
||||||
|
#include "supervisor/port.h"
|
||||||
|
|
||||||
|
// This is the time in seconds since 2000 that the RTC was started.
|
||||||
|
// TODO: Change the offset to ticks so that it can be a subsecond adjustment.
|
||||||
|
static uint32_t rtc_offset = 0;
|
||||||
|
|
||||||
|
void common_hal_rtc_get_time(timeutils_struct_time_t *tm) {
|
||||||
|
uint64_t ticks_s = port_get_raw_ticks(NULL) / 1024;
|
||||||
|
timeutils_seconds_since_2000_to_struct_time(rtc_offset + ticks_s, tm);
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_rtc_set_time(timeutils_struct_time_t *tm) {
|
||||||
|
uint64_t ticks_s = port_get_raw_ticks(NULL) / 1024;
|
||||||
|
uint32_t epoch_s = timeutils_seconds_since_2000(
|
||||||
|
tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec
|
||||||
|
);
|
||||||
|
rtc_offset = epoch_s - ticks_s;
|
||||||
|
}
|
||||||
|
|
||||||
|
int common_hal_rtc_get_calibration(void) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_rtc_set_calibration(int calibration) {
|
||||||
|
mp_raise_NotImplementedError_varg(translate("%q"), MP_QSTR_calibration);
|
||||||
|
}
|
33
ports/broadcom/common-hal/rtc/RTC.h
Normal file
33
ports/broadcom/common-hal/rtc/RTC.h
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2018 Noralf Trønnes
|
||||||
|
* Copyright (c) 2019 Artur Pacholec
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MICROPY_INCLUDED_BROADCOM_COMMON_HAL_RTC_RTC_H
|
||||||
|
#define MICROPY_INCLUDED_BROADCOM_COMMON_HAL_RTC_RTC_H
|
||||||
|
|
||||||
|
extern void rtc_reset(void);
|
||||||
|
|
||||||
|
#endif // MICROPY_INCLUDED_BROADCOM_COMMON_HAL_RTC_RTC_H
|
0
ports/broadcom/common-hal/rtc/__init__.c
Normal file
0
ports/broadcom/common-hal/rtc/__init__.c
Normal file
@ -15,7 +15,6 @@ CIRCUITPY_PARALLELDISPLAY = 0
|
|||||||
CIRCUITPY_PULSEIO = 0
|
CIRCUITPY_PULSEIO = 0
|
||||||
CIRCUITPY_PWMIO = 0
|
CIRCUITPY_PWMIO = 0
|
||||||
CIRCUITPY_ROTARYIO = 0
|
CIRCUITPY_ROTARYIO = 0
|
||||||
CIRCUITPY_RTC = 0
|
|
||||||
|
|
||||||
CIRCUITPY_SDIOIO = 1
|
CIRCUITPY_SDIOIO = 1
|
||||||
CIRCUITPY_VIDEOCORE = 1
|
CIRCUITPY_VIDEOCORE = 1
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
#include "genhdr/mpversion.h"
|
#include "genhdr/mpversion.h"
|
||||||
|
|
||||||
// #include "common-hal/rtc/RTC.h"
|
#include "common-hal/rtc/RTC.h"
|
||||||
#include "common-hal/busio/I2C.h"
|
#include "common-hal/busio/I2C.h"
|
||||||
#include "common-hal/busio/SPI.h"
|
#include "common-hal/busio/SPI.h"
|
||||||
#include "common-hal/busio/UART.h"
|
#include "common-hal/busio/UART.h"
|
||||||
|
@ -8,7 +8,7 @@ set(ENV{IDF_PATH} ${CMAKE_SOURCE_DIR}/esp-idf)
|
|||||||
# can build.
|
# can build.
|
||||||
set(COMPONENTS esptool_py soc driver log main esp-tls mbedtls mdns esp_event esp_adc_cal esp_netif esp_wifi lwip ulp wpa_supplicant freertos bt usb)
|
set(COMPONENTS esptool_py soc driver log main esp-tls mbedtls mdns esp_event esp_adc_cal esp_netif esp_wifi lwip ulp wpa_supplicant freertos bt usb)
|
||||||
|
|
||||||
if("${CIRCUITPY_ESP32_CAMERA}")
|
if("${CIRCUITPY_ESPCAMERA}")
|
||||||
message("Including esp32-camera")
|
message("Including esp32-camera")
|
||||||
set(EXTRA_COMPONENT_DIRS "esp32-camera")
|
set(EXTRA_COMPONENT_DIRS "esp32-camera")
|
||||||
list(APPEND COMPONENTS "esp32-camera")
|
list(APPEND COMPONENTS "esp32-camera")
|
||||||
|
@ -254,10 +254,10 @@ endif
|
|||||||
|
|
||||||
SRC_C += $(wildcard common-hal/espidf/*.c)
|
SRC_C += $(wildcard common-hal/espidf/*.c)
|
||||||
|
|
||||||
ifneq ($(CIRCUITPY_ESP32_CAMERA),0)
|
ifneq ($(CIRCUITPY_ESPCAMERA),0)
|
||||||
SRC_CAMERA := \
|
SRC_CAMERA := \
|
||||||
$(wildcard common-hal/esp32_camera/*.c) \
|
$(wildcard common-hal/espcamera/*.c) \
|
||||||
$(wildcard bindings/esp32_camera/*.c)
|
$(wildcard bindings/espcamera/*.c)
|
||||||
SRC_C += $(SRC_CAMERA)
|
SRC_C += $(SRC_CAMERA)
|
||||||
CFLAGS += -isystem esp32-camera/driver/include
|
CFLAGS += -isystem esp32-camera/driver/include
|
||||||
CFLAGS += -isystem esp32-camera/conversions/include
|
CFLAGS += -isystem esp32-camera/conversions/include
|
||||||
@ -344,7 +344,7 @@ endif
|
|||||||
.PHONY: do-sdkconfig
|
.PHONY: do-sdkconfig
|
||||||
do-sdkconfig: $(BUILD)/esp-idf/config/sdkconfig.h
|
do-sdkconfig: $(BUILD)/esp-idf/config/sdkconfig.h
|
||||||
$(BUILD)/esp-idf/config/sdkconfig.h: boards/$(BOARD)/sdkconfig CMakeLists.txt | $(BUILD)/esp-idf
|
$(BUILD)/esp-idf/config/sdkconfig.h: boards/$(BOARD)/sdkconfig CMakeLists.txt | $(BUILD)/esp-idf
|
||||||
IDF_PATH=$(IDF_PATH) cmake -S . -B $(BUILD)/esp-idf -DSDKCONFIG=$(BUILD)/esp-idf/sdkconfig -DSDKCONFIG_DEFAULTS="$(SDKCONFIGS)" -DCMAKE_TOOLCHAIN_FILE=$(IDF_PATH)/tools/cmake/toolchain-$(IDF_TARGET).cmake -DIDF_TARGET=$(IDF_TARGET) -GNinja -DCIRCUITPY_ESP32_CAMERA=$(CIRCUITPY_ESP32_CAMERA)
|
IDF_PATH=$(IDF_PATH) cmake -S . -B $(BUILD)/esp-idf -DSDKCONFIG=$(BUILD)/esp-idf/sdkconfig -DSDKCONFIG_DEFAULTS="$(SDKCONFIGS)" -DCMAKE_TOOLCHAIN_FILE=$(IDF_PATH)/tools/cmake/toolchain-$(IDF_TARGET).cmake -DIDF_TARGET=$(IDF_TARGET) -GNinja -DCIRCUITPY_ESPCAMERA=$(CIRCUITPY_ESPCAMERA)
|
||||||
|
|
||||||
# build a lib
|
# build a lib
|
||||||
# Adding -d explain -j 1 -v to the ninja line will output debug info
|
# Adding -d explain -j 1 -v to the ninja line will output debug info
|
||||||
@ -396,7 +396,7 @@ BINARY_BLOBS += esp-idf/components/xtensa/$(IDF_TARGET)/libxt_hal.a
|
|||||||
ESP_IDF_COMPONENTS_EXPANDED += esp-idf/components/xtensa/$(IDF_TARGET)/libxt_hal.a
|
ESP_IDF_COMPONENTS_EXPANDED += esp-idf/components/xtensa/$(IDF_TARGET)/libxt_hal.a
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(CIRCUITPY_ESP32_CAMERA),0)
|
ifneq ($(CIRCUITPY_ESPCAMERA),0)
|
||||||
ESP_IDF_COMPONENTS_EXPANDED += $(BUILD)/esp-idf/esp-idf/esp32-camera/libesp32-camera.a
|
ESP_IDF_COMPONENTS_EXPANDED += $(BUILD)/esp-idf/esp-idf/esp32-camera/libesp32-camera.a
|
||||||
#$(error $(ESP_IDF_COMPONENTS_EXPANDED))
|
#$(error $(ESP_IDF_COMPONENTS_EXPANDED))
|
||||||
endif
|
endif
|
||||||
|
File diff suppressed because it is too large
Load Diff
1001
ports/espressif/bindings/espcamera/Camera.c
Normal file
1001
ports/espressif/bindings/espcamera/Camera.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -33,11 +33,11 @@
|
|||||||
|
|
||||||
#include "shared-bindings/busio/I2C.h"
|
#include "shared-bindings/busio/I2C.h"
|
||||||
|
|
||||||
extern const mp_obj_type_t esp32_camera_camera_type;
|
extern const mp_obj_type_t espcamera_camera_type;
|
||||||
typedef struct esp32_camera_camera_obj esp32_camera_camera_obj_t;
|
typedef struct espcamera_camera_obj espcamera_camera_obj_t;
|
||||||
|
|
||||||
extern void common_hal_esp32_camera_camera_construct(
|
extern void common_hal_espcamera_camera_construct(
|
||||||
esp32_camera_camera_obj_t *self,
|
espcamera_camera_obj_t *self,
|
||||||
uint8_t data_pins[8],
|
uint8_t data_pins[8],
|
||||||
const mcu_pin_obj_t *external_clock_pin,
|
const mcu_pin_obj_t *external_clock_pin,
|
||||||
const mcu_pin_obj_t *pixel_clock_pin,
|
const mcu_pin_obj_t *pixel_clock_pin,
|
||||||
@ -53,11 +53,11 @@ extern void common_hal_esp32_camera_camera_construct(
|
|||||||
mp_int_t framebuffer_count,
|
mp_int_t framebuffer_count,
|
||||||
camera_grab_mode_t grab_mode);
|
camera_grab_mode_t grab_mode);
|
||||||
|
|
||||||
extern void common_hal_esp32_camera_camera_deinit(esp32_camera_camera_obj_t *self);
|
extern void common_hal_espcamera_camera_deinit(espcamera_camera_obj_t *self);
|
||||||
extern bool common_hal_esp32_camera_camera_deinited(esp32_camera_camera_obj_t *self);
|
extern bool common_hal_espcamera_camera_deinited(espcamera_camera_obj_t *self);
|
||||||
extern bool common_hal_esp32_camera_camera_available(esp32_camera_camera_obj_t *self);
|
extern bool common_hal_espcamera_camera_available(espcamera_camera_obj_t *self);
|
||||||
extern camera_fb_t *common_hal_esp32_camera_camera_take(esp32_camera_camera_obj_t *self, int timeout_ms);
|
extern camera_fb_t *common_hal_espcamera_camera_take(espcamera_camera_obj_t *self, int timeout_ms);
|
||||||
extern void common_hal_esp32_camera_camera_reconfigure(esp32_camera_camera_obj_t *self, framesize_t frame_size, pixformat_t pixel_format, camera_grab_mode_t grab_mode, mp_int_t framebuffer_count);
|
extern void common_hal_espcamera_camera_reconfigure(espcamera_camera_obj_t *self, framesize_t frame_size, pixformat_t pixel_format, camera_grab_mode_t grab_mode, mp_int_t framebuffer_count);
|
||||||
|
|
||||||
#define DECLARE_SENSOR_GETSET(type, name, field_name, setter_function_name) \
|
#define DECLARE_SENSOR_GETSET(type, name, field_name, setter_function_name) \
|
||||||
DECLARE_SENSOR_GET(type, name, field_name, setter_function_name) \
|
DECLARE_SENSOR_GET(type, name, field_name, setter_function_name) \
|
||||||
@ -70,10 +70,10 @@ extern void common_hal_esp32_camera_camera_reconfigure(esp32_camera_camera_obj_t
|
|||||||
DECLARE_SENSOR_GET(type, name, status.status_field_name, setter_function_name)
|
DECLARE_SENSOR_GET(type, name, status.status_field_name, setter_function_name)
|
||||||
|
|
||||||
#define DECLARE_SENSOR_GET(type, name, status_field_name, setter_function_name) \
|
#define DECLARE_SENSOR_GET(type, name, status_field_name, setter_function_name) \
|
||||||
extern type common_hal_esp32_camera_camera_get_##name(esp32_camera_camera_obj_t * self);
|
extern type common_hal_espcamera_camera_get_##name(espcamera_camera_obj_t * self);
|
||||||
|
|
||||||
#define DECLARE_SENSOR_SET(type, name, setter_function_name) \
|
#define DECLARE_SENSOR_SET(type, name, setter_function_name) \
|
||||||
extern void common_hal_esp32_camera_camera_set_##name(esp32_camera_camera_obj_t * self, type value);
|
extern void common_hal_espcamera_camera_set_##name(espcamera_camera_obj_t * self, type value);
|
||||||
|
|
||||||
DECLARE_SENSOR_GET(pixformat_t, pixel_format, pixformat, set_pixformat)
|
DECLARE_SENSOR_GET(pixformat_t, pixel_format, pixformat, set_pixformat)
|
||||||
DECLARE_SENSOR_STATUS_GET(framesize_t, frame_size, framesize, set_framesize)
|
DECLARE_SENSOR_STATUS_GET(framesize_t, frame_size, framesize, set_framesize)
|
||||||
@ -104,13 +104,13 @@ DECLARE_SENSOR_STATUS_GETSET(bool, raw_gma, raw_gma, set_raw_gma);
|
|||||||
DECLARE_SENSOR_STATUS_GETSET(bool, lenc, lenc, set_lenc);
|
DECLARE_SENSOR_STATUS_GETSET(bool, lenc, lenc, set_lenc);
|
||||||
|
|
||||||
// From settings
|
// From settings
|
||||||
extern camera_grab_mode_t common_hal_esp32_camera_camera_get_grab_mode(esp32_camera_camera_obj_t *self);
|
extern camera_grab_mode_t common_hal_espcamera_camera_get_grab_mode(espcamera_camera_obj_t *self);
|
||||||
extern int common_hal_esp32_camera_camera_get_framebuffer_count(esp32_camera_camera_obj_t *self);
|
extern int common_hal_espcamera_camera_get_framebuffer_count(espcamera_camera_obj_t *self);
|
||||||
|
|
||||||
// From camera_sensor_info_t
|
// From camera_sensor_info_t
|
||||||
extern int common_hal_esp32_camera_camera_get_address(esp32_camera_camera_obj_t *self);
|
extern int common_hal_espcamera_camera_get_address(espcamera_camera_obj_t *self);
|
||||||
extern const char *common_hal_esp32_camera_camera_get_sensor_name(esp32_camera_camera_obj_t *self);
|
extern const char *common_hal_espcamera_camera_get_sensor_name(espcamera_camera_obj_t *self);
|
||||||
extern const bool common_hal_esp32_camera_camera_get_supports_jpeg(esp32_camera_camera_obj_t *self);
|
extern const bool common_hal_espcamera_camera_get_supports_jpeg(espcamera_camera_obj_t *self);
|
||||||
extern framesize_t common_hal_esp32_camera_camera_get_max_frame_size(esp32_camera_camera_obj_t *self);
|
extern framesize_t common_hal_espcamera_camera_get_max_frame_size(espcamera_camera_obj_t *self);
|
||||||
extern int common_hal_esp32_camera_camera_get_width(esp32_camera_camera_obj_t *self);
|
extern int common_hal_espcamera_camera_get_width(espcamera_camera_obj_t *self);
|
||||||
extern int common_hal_esp32_camera_camera_get_height(esp32_camera_camera_obj_t *self);
|
extern int common_hal_espcamera_camera_get_height(espcamera_camera_obj_t *self);
|
@ -29,13 +29,13 @@
|
|||||||
#include "py/mphal.h"
|
#include "py/mphal.h"
|
||||||
|
|
||||||
#include "bindings/espidf/__init__.h"
|
#include "bindings/espidf/__init__.h"
|
||||||
#include "bindings/esp32_camera/__init__.h"
|
#include "bindings/espcamera/__init__.h"
|
||||||
#include "bindings/esp32_camera/Camera.h"
|
#include "bindings/espcamera/Camera.h"
|
||||||
|
|
||||||
#include "esp_camera.h"
|
#include "esp_camera.h"
|
||||||
#include "sensor.h"
|
#include "sensor.h"
|
||||||
|
|
||||||
//| """Wrapper for the esp32_camera library
|
//| """Wrapper for the espcamera library
|
||||||
//|
|
//|
|
||||||
//| This library enables access to any camera sensor supported by the library,
|
//| This library enables access to any camera sensor supported by the library,
|
||||||
//| including OV5640 and OV2640.
|
//| including OV5640 and OV2640.
|
||||||
@ -45,6 +45,7 @@
|
|||||||
//| Non-Espressif microcontrollers use the `imagecapture` module together with wrapper libraries such as `adafruit_ov5640 <https://circuitpython.readthedocs.io/projects/ov5640/en/latest/>`_.
|
//| Non-Espressif microcontrollers use the `imagecapture` module together with wrapper libraries such as `adafruit_ov5640 <https://circuitpython.readthedocs.io/projects/ov5640/en/latest/>`_.
|
||||||
//|
|
//|
|
||||||
//| """
|
//| """
|
||||||
|
//|
|
||||||
|
|
||||||
//| class GrabMode:
|
//| class GrabMode:
|
||||||
//| """Controls when a new frame is grabbed."""
|
//| """Controls when a new frame is grabbed."""
|
||||||
@ -56,20 +57,20 @@
|
|||||||
//| """Except when 1 frame buffer is used, queue will always contain the last ``fb_count`` frames"""
|
//| """Except when 1 frame buffer is used, queue will always contain the last ``fb_count`` frames"""
|
||||||
//|
|
//|
|
||||||
|
|
||||||
MAKE_ENUM_VALUE(esp32_camera_grab_mode_type, grab_mode, WHEN_EMPTY, CAMERA_GRAB_WHEN_EMPTY);
|
MAKE_ENUM_VALUE(espcamera_grab_mode_type, grab_mode, WHEN_EMPTY, CAMERA_GRAB_WHEN_EMPTY);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_grab_mode_type, grab_mode, LATEST, CAMERA_GRAB_LATEST);
|
MAKE_ENUM_VALUE(espcamera_grab_mode_type, grab_mode, LATEST, CAMERA_GRAB_LATEST);
|
||||||
|
|
||||||
MAKE_ENUM_MAP(esp32_camera_grab_mode) {
|
MAKE_ENUM_MAP(espcamera_grab_mode) {
|
||||||
MAKE_ENUM_MAP_ENTRY(grab_mode, WHEN_EMPTY),
|
MAKE_ENUM_MAP_ENTRY(grab_mode, WHEN_EMPTY),
|
||||||
MAKE_ENUM_MAP_ENTRY(grab_mode, LATEST),
|
MAKE_ENUM_MAP_ENTRY(grab_mode, LATEST),
|
||||||
};
|
};
|
||||||
|
|
||||||
STATIC MP_DEFINE_CONST_DICT(esp32_camera_grab_mode_locals_dict, esp32_camera_grab_mode_locals_table);
|
STATIC MP_DEFINE_CONST_DICT(espcamera_grab_mode_locals_dict, espcamera_grab_mode_locals_table);
|
||||||
MAKE_PRINTER(esp32_camera, esp32_camera_grab_mode);
|
MAKE_PRINTER(espcamera, espcamera_grab_mode);
|
||||||
MAKE_ENUM_TYPE(esp32_camera, GrabMode, esp32_camera_grab_mode);
|
MAKE_ENUM_TYPE(espcamera, GrabMode, espcamera_grab_mode);
|
||||||
|
|
||||||
camera_grab_mode_t validate_grab_mode(mp_obj_t obj, qstr arg_name) {
|
camera_grab_mode_t validate_grab_mode(mp_obj_t obj, qstr arg_name) {
|
||||||
return cp_enum_value(&esp32_camera_grab_mode_type, obj, arg_name);
|
return cp_enum_value(&espcamera_grab_mode_type, obj, arg_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
//| class PixelFormat:
|
//| class PixelFormat:
|
||||||
@ -85,22 +86,22 @@ camera_grab_mode_t validate_grab_mode(mp_obj_t obj, qstr arg_name) {
|
|||||||
//| """A compressed format"""
|
//| """A compressed format"""
|
||||||
//|
|
//|
|
||||||
|
|
||||||
MAKE_ENUM_VALUE(esp32_camera_pixel_format_type, pixel_format, RGB565, PIXFORMAT_RGB565);
|
MAKE_ENUM_VALUE(espcamera_pixel_format_type, pixel_format, RGB565, PIXFORMAT_RGB565);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_pixel_format_type, pixel_format, GRAYSCALE, PIXFORMAT_GRAYSCALE);
|
MAKE_ENUM_VALUE(espcamera_pixel_format_type, pixel_format, GRAYSCALE, PIXFORMAT_GRAYSCALE);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_pixel_format_type, pixel_format, JPEG, PIXFORMAT_JPEG);
|
MAKE_ENUM_VALUE(espcamera_pixel_format_type, pixel_format, JPEG, PIXFORMAT_JPEG);
|
||||||
|
|
||||||
MAKE_ENUM_MAP(esp32_camera_pixel_format) {
|
MAKE_ENUM_MAP(espcamera_pixel_format) {
|
||||||
MAKE_ENUM_MAP_ENTRY(pixel_format, RGB565),
|
MAKE_ENUM_MAP_ENTRY(pixel_format, RGB565),
|
||||||
MAKE_ENUM_MAP_ENTRY(pixel_format, GRAYSCALE),
|
MAKE_ENUM_MAP_ENTRY(pixel_format, GRAYSCALE),
|
||||||
MAKE_ENUM_MAP_ENTRY(pixel_format, JPEG),
|
MAKE_ENUM_MAP_ENTRY(pixel_format, JPEG),
|
||||||
};
|
};
|
||||||
|
|
||||||
STATIC MP_DEFINE_CONST_DICT(esp32_camera_pixel_format_locals_dict, esp32_camera_pixel_format_locals_table);
|
STATIC MP_DEFINE_CONST_DICT(espcamera_pixel_format_locals_dict, espcamera_pixel_format_locals_table);
|
||||||
MAKE_PRINTER(esp32_camera, esp32_camera_pixel_format);
|
MAKE_PRINTER(espcamera, espcamera_pixel_format);
|
||||||
MAKE_ENUM_TYPE(esp32_camera, PixelFormat, esp32_camera_pixel_format);
|
MAKE_ENUM_TYPE(espcamera, PixelFormat, espcamera_pixel_format);
|
||||||
|
|
||||||
pixformat_t validate_pixel_format(mp_obj_t obj, qstr arg_name) {
|
pixformat_t validate_pixel_format(mp_obj_t obj, qstr arg_name) {
|
||||||
return cp_enum_value(&esp32_camera_pixel_format_type, obj, arg_name);
|
return cp_enum_value(&espcamera_pixel_format_type, obj, arg_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
//| class FrameSize:
|
//| class FrameSize:
|
||||||
@ -173,29 +174,29 @@ pixformat_t validate_pixel_format(mp_obj_t obj, qstr arg_name) {
|
|||||||
//| """2560x1920"""
|
//| """2560x1920"""
|
||||||
//|
|
//|
|
||||||
|
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, R96X96, FRAMESIZE_96X96);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, R96X96, FRAMESIZE_96X96);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, R240X240, FRAMESIZE_240X240);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, R240X240, FRAMESIZE_240X240);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, QQVGA, FRAMESIZE_QQVGA);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, QQVGA, FRAMESIZE_QQVGA);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, QCIF, FRAMESIZE_QCIF);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, QCIF, FRAMESIZE_QCIF);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, HQVGA, FRAMESIZE_HQVGA);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, HQVGA, FRAMESIZE_HQVGA);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, QVGA, FRAMESIZE_QVGA);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, QVGA, FRAMESIZE_QVGA);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, CIF, FRAMESIZE_CIF);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, CIF, FRAMESIZE_CIF);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, HVGA, FRAMESIZE_HVGA);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, HVGA, FRAMESIZE_HVGA);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, VGA, FRAMESIZE_VGA);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, VGA, FRAMESIZE_VGA);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, SVGA, FRAMESIZE_SVGA);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, SVGA, FRAMESIZE_SVGA);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, XGA, FRAMESIZE_XGA);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, XGA, FRAMESIZE_XGA);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, HD, FRAMESIZE_HD);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, HD, FRAMESIZE_HD);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, SXGA, FRAMESIZE_SXGA);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, SXGA, FRAMESIZE_SXGA);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, UXGA, FRAMESIZE_UXGA);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, UXGA, FRAMESIZE_UXGA);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, FHD, FRAMESIZE_FHD);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, FHD, FRAMESIZE_FHD);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, P_HD, FRAMESIZE_P_HD);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, P_HD, FRAMESIZE_P_HD);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, P_3MP, FRAMESIZE_P_3MP);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, P_3MP, FRAMESIZE_P_3MP);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, QXGA, FRAMESIZE_QXGA);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, QXGA, FRAMESIZE_QXGA);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, QHD, FRAMESIZE_QHD);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, QHD, FRAMESIZE_QHD);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, WQXGA, FRAMESIZE_WQXGA);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, WQXGA, FRAMESIZE_WQXGA);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, P_FHD, FRAMESIZE_P_FHD);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, P_FHD, FRAMESIZE_P_FHD);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, QSXGA, FRAMESIZE_QSXGA);
|
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, QSXGA, FRAMESIZE_QSXGA);
|
||||||
MAKE_ENUM_MAP(esp32_camera_frame_size) {
|
MAKE_ENUM_MAP(espcamera_frame_size) {
|
||||||
MAKE_ENUM_MAP_ENTRY(frame_size, R96X96),
|
MAKE_ENUM_MAP_ENTRY(frame_size, R96X96),
|
||||||
MAKE_ENUM_MAP_ENTRY(frame_size, R240X240),
|
MAKE_ENUM_MAP_ENTRY(frame_size, R240X240),
|
||||||
MAKE_ENUM_MAP_ENTRY(frame_size, QQVGA),
|
MAKE_ENUM_MAP_ENTRY(frame_size, QQVGA),
|
||||||
@ -220,12 +221,12 @@ MAKE_ENUM_MAP(esp32_camera_frame_size) {
|
|||||||
MAKE_ENUM_MAP_ENTRY(frame_size, QSXGA),
|
MAKE_ENUM_MAP_ENTRY(frame_size, QSXGA),
|
||||||
};
|
};
|
||||||
|
|
||||||
STATIC MP_DEFINE_CONST_DICT(esp32_camera_frame_size_locals_dict, esp32_camera_frame_size_locals_table);
|
STATIC MP_DEFINE_CONST_DICT(espcamera_frame_size_locals_dict, espcamera_frame_size_locals_table);
|
||||||
MAKE_PRINTER(esp32_camera, esp32_camera_frame_size);
|
MAKE_PRINTER(espcamera, espcamera_frame_size);
|
||||||
MAKE_ENUM_TYPE(esp32_camera, FrameSize, esp32_camera_frame_size);
|
MAKE_ENUM_TYPE(espcamera, FrameSize, espcamera_frame_size);
|
||||||
|
|
||||||
framesize_t validate_frame_size(mp_obj_t obj, qstr arg_name) {
|
framesize_t validate_frame_size(mp_obj_t obj, qstr arg_name) {
|
||||||
return cp_enum_value(&esp32_camera_frame_size_type, obj, arg_name);
|
return cp_enum_value(&espcamera_frame_size_type, obj, arg_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
//| class GainCeiling:
|
//| class GainCeiling:
|
||||||
@ -242,15 +243,15 @@ framesize_t validate_frame_size(mp_obj_t obj, qstr arg_name) {
|
|||||||
//| GAIN_128X: GainCeiling
|
//| GAIN_128X: GainCeiling
|
||||||
//|
|
//|
|
||||||
|
|
||||||
MAKE_ENUM_VALUE(esp32_camera_gain_ceiling_type, gain_ceiling, GAIN_2X, GAINCEILING_2X);
|
MAKE_ENUM_VALUE(espcamera_gain_ceiling_type, gain_ceiling, GAIN_2X, GAINCEILING_2X);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_gain_ceiling_type, gain_ceiling, GAIN_4X, GAINCEILING_4X);
|
MAKE_ENUM_VALUE(espcamera_gain_ceiling_type, gain_ceiling, GAIN_4X, GAINCEILING_4X);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_gain_ceiling_type, gain_ceiling, GAIN_8X, GAINCEILING_8X);
|
MAKE_ENUM_VALUE(espcamera_gain_ceiling_type, gain_ceiling, GAIN_8X, GAINCEILING_8X);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_gain_ceiling_type, gain_ceiling, GAIN_16X, GAINCEILING_16X);
|
MAKE_ENUM_VALUE(espcamera_gain_ceiling_type, gain_ceiling, GAIN_16X, GAINCEILING_16X);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_gain_ceiling_type, gain_ceiling, GAIN_32X, GAINCEILING_32X);
|
MAKE_ENUM_VALUE(espcamera_gain_ceiling_type, gain_ceiling, GAIN_32X, GAINCEILING_32X);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_gain_ceiling_type, gain_ceiling, GAIN_64X, GAINCEILING_64X);
|
MAKE_ENUM_VALUE(espcamera_gain_ceiling_type, gain_ceiling, GAIN_64X, GAINCEILING_64X);
|
||||||
MAKE_ENUM_VALUE(esp32_camera_gain_ceiling_type, gain_ceiling, GAIN_128X, GAINCEILING_128X);
|
MAKE_ENUM_VALUE(espcamera_gain_ceiling_type, gain_ceiling, GAIN_128X, GAINCEILING_128X);
|
||||||
|
|
||||||
MAKE_ENUM_MAP(esp32_camera_gain_ceiling) {
|
MAKE_ENUM_MAP(espcamera_gain_ceiling) {
|
||||||
MAKE_ENUM_MAP_ENTRY(gain_ceiling, GAIN_2X),
|
MAKE_ENUM_MAP_ENTRY(gain_ceiling, GAIN_2X),
|
||||||
MAKE_ENUM_MAP_ENTRY(gain_ceiling, GAIN_4X),
|
MAKE_ENUM_MAP_ENTRY(gain_ceiling, GAIN_4X),
|
||||||
MAKE_ENUM_MAP_ENTRY(gain_ceiling, GAIN_8X),
|
MAKE_ENUM_MAP_ENTRY(gain_ceiling, GAIN_8X),
|
||||||
@ -260,28 +261,28 @@ MAKE_ENUM_MAP(esp32_camera_gain_ceiling) {
|
|||||||
MAKE_ENUM_MAP_ENTRY(gain_ceiling, GAIN_128X)
|
MAKE_ENUM_MAP_ENTRY(gain_ceiling, GAIN_128X)
|
||||||
};
|
};
|
||||||
|
|
||||||
STATIC MP_DEFINE_CONST_DICT(esp32_camera_gain_ceiling_locals_dict, esp32_camera_gain_ceiling_locals_table);
|
STATIC MP_DEFINE_CONST_DICT(espcamera_gain_ceiling_locals_dict, espcamera_gain_ceiling_locals_table);
|
||||||
MAKE_PRINTER(esp32_camera, esp32_camera_gain_ceiling);
|
MAKE_PRINTER(espcamera, espcamera_gain_ceiling);
|
||||||
MAKE_ENUM_TYPE(esp32_camera, GainCeiling, esp32_camera_gain_ceiling);
|
MAKE_ENUM_TYPE(espcamera, GainCeiling, espcamera_gain_ceiling);
|
||||||
|
|
||||||
gainceiling_t validate_gain_ceiling(mp_obj_t obj, qstr arg_name) {
|
gainceiling_t validate_gain_ceiling(mp_obj_t obj, qstr arg_name) {
|
||||||
return cp_enum_value(&esp32_camera_gain_ceiling_type, obj, arg_name);
|
return cp_enum_value(&espcamera_gain_ceiling_type, obj, arg_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC const mp_rom_map_elem_t esp32_camera_module_globals_table[] = {
|
STATIC const mp_rom_map_elem_t espcamera_module_globals_table[] = {
|
||||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_esp32_camera) },
|
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_espcamera) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_Camera), MP_ROM_PTR(&esp32_camera_camera_type), },
|
{ MP_ROM_QSTR(MP_QSTR_Camera), MP_ROM_PTR(&espcamera_camera_type), },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_FrameSize), &esp32_camera_frame_size_type },
|
{ MP_ROM_QSTR(MP_QSTR_FrameSize), &espcamera_frame_size_type },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_GainCeiling), &esp32_camera_gain_ceiling_type },
|
{ MP_ROM_QSTR(MP_QSTR_GainCeiling), &espcamera_gain_ceiling_type },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_GrabMode), &esp32_camera_grab_mode_type },
|
{ MP_ROM_QSTR(MP_QSTR_GrabMode), &espcamera_grab_mode_type },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_PixelFormat), &esp32_camera_pixel_format_type },
|
{ MP_ROM_QSTR(MP_QSTR_PixelFormat), &espcamera_pixel_format_type },
|
||||||
};
|
};
|
||||||
|
|
||||||
STATIC MP_DEFINE_CONST_DICT(esp32_camera_module_globals, esp32_camera_module_globals_table);
|
STATIC MP_DEFINE_CONST_DICT(espcamera_module_globals, espcamera_module_globals_table);
|
||||||
|
|
||||||
const mp_obj_module_t esp32_camera_module = {
|
const mp_obj_module_t espcamera_module = {
|
||||||
.base = { &mp_type_module },
|
.base = { &mp_type_module },
|
||||||
.globals = (mp_obj_dict_t *)&esp32_camera_module_globals,
|
.globals = (mp_obj_dict_t *)&espcamera_module_globals,
|
||||||
};
|
};
|
||||||
|
|
||||||
MP_REGISTER_MODULE(MP_QSTR_esp32_camera, esp32_camera_module, CIRCUITPY_ESP32_CAMERA);
|
MP_REGISTER_MODULE(MP_QSTR_espcamera, espcamera_module, CIRCUITPY_ESPCAMERA);
|
@ -31,13 +31,13 @@
|
|||||||
|
|
||||||
#include "esp_camera.h"
|
#include "esp_camera.h"
|
||||||
|
|
||||||
extern const mp_obj_type_t esp32_camera_grab_mode_type;
|
extern const mp_obj_type_t espcamera_grab_mode_type;
|
||||||
extern const cp_enum_obj_t grab_mode_WHEN_EMPTY_obj;
|
extern const cp_enum_obj_t grab_mode_WHEN_EMPTY_obj;
|
||||||
extern const mp_obj_type_t esp32_camera_pixel_format_type;
|
extern const mp_obj_type_t espcamera_pixel_format_type;
|
||||||
extern const cp_enum_obj_t pixel_format_RGB565_obj;
|
extern const cp_enum_obj_t pixel_format_RGB565_obj;
|
||||||
extern const mp_obj_type_t esp32_camera_frame_size_type;
|
extern const mp_obj_type_t espcamera_frame_size_type;
|
||||||
extern const cp_enum_obj_t frame_size_QQVGA_obj;
|
extern const cp_enum_obj_t frame_size_QQVGA_obj;
|
||||||
extern const mp_obj_type_t esp32_camera_gain_ceiling_type;
|
extern const mp_obj_type_t espcamera_gain_ceiling_type;
|
||||||
|
|
||||||
extern camera_grab_mode_t validate_grab_mode(mp_obj_t obj, qstr arg_name);
|
extern camera_grab_mode_t validate_grab_mode(mp_obj_t obj, qstr arg_name);
|
||||||
extern pixformat_t validate_pixel_format(mp_obj_t obj, qstr arg_name);
|
extern pixformat_t validate_pixel_format(mp_obj_t obj, qstr arg_name);
|
@ -37,6 +37,7 @@
|
|||||||
//| """Direct access to a few ESP-IDF details. This module *should not* include any functionality
|
//| """Direct access to a few ESP-IDF details. This module *should not* include any functionality
|
||||||
//| that could be implemented by other frameworks. It should only include ESP-IDF specific
|
//| that could be implemented by other frameworks. It should only include ESP-IDF specific
|
||||||
//| things."""
|
//| things."""
|
||||||
|
//|
|
||||||
|
|
||||||
//| def heap_caps_get_total_size() -> int:
|
//| def heap_caps_get_total_size() -> int:
|
||||||
//| """Return the total size of the ESP-IDF, which includes the CircuitPython heap."""
|
//| """Return the total size of the ESP-IDF, which includes the CircuitPython heap."""
|
||||||
@ -72,7 +73,8 @@ MP_DEFINE_CONST_FUN_OBJ_0(espidf_heap_caps_get_largest_free_block_obj, espidf_he
|
|||||||
//| """Erase all data in the non-volatile storage (nvs), including data stored by with `microcontroller.nvm`
|
//| """Erase all data in the non-volatile storage (nvs), including data stored by with `microcontroller.nvm`
|
||||||
//|
|
//|
|
||||||
//| This is necessary when upgrading from CircuitPython 6.3.0 or earlier to CircuitPython 7.0.0, because the
|
//| This is necessary when upgrading from CircuitPython 6.3.0 or earlier to CircuitPython 7.0.0, because the
|
||||||
//| layout of data in nvs has changed. The old data will be lost when you perform this operation."""
|
//| layout of data in nvs has changed. The old data will be lost when you perform this operation.
|
||||||
|
//| """
|
||||||
//|
|
//|
|
||||||
STATIC mp_obj_t espidf_erase_nvs(void) {
|
STATIC mp_obj_t espidf_erase_nvs(void) {
|
||||||
ESP_ERROR_CHECK(nvs_flash_deinit());
|
ESP_ERROR_CHECK(nvs_flash_deinit());
|
||||||
|
51
ports/espressif/bindings/espulp/Architecture.c
Normal file
51
ports/espressif/bindings/espulp/Architecture.c
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2023 MicroDev
|
||||||
|
*
|
||||||
|
* 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 "py/enum.h"
|
||||||
|
|
||||||
|
#include "bindings/espulp/Architecture.h"
|
||||||
|
|
||||||
|
MAKE_ENUM_VALUE(espulp_architecture_type, architecture, FSM, FSM);
|
||||||
|
MAKE_ENUM_VALUE(espulp_architecture_type, architecture, RISCV, RISCV);
|
||||||
|
|
||||||
|
//| class Architecture:
|
||||||
|
//| """The ULP architectures available."""
|
||||||
|
//|
|
||||||
|
//| FSM: Architecture
|
||||||
|
//| """The ULP Finite State Machine."""
|
||||||
|
//|
|
||||||
|
//| RISCV: Architecture
|
||||||
|
//| """The ULP RISC-V Coprocessor."""
|
||||||
|
//|
|
||||||
|
MAKE_ENUM_MAP(espulp_architecture) {
|
||||||
|
MAKE_ENUM_MAP_ENTRY(architecture, FSM),
|
||||||
|
MAKE_ENUM_MAP_ENTRY(architecture, RISCV),
|
||||||
|
};
|
||||||
|
STATIC MP_DEFINE_CONST_DICT(espulp_architecture_locals_dict, espulp_architecture_locals_table);
|
||||||
|
|
||||||
|
MAKE_PRINTER(espulp, espulp_architecture);
|
||||||
|
|
||||||
|
MAKE_ENUM_TYPE(espulp, Architecture, espulp_architecture);
|
40
ports/espressif/bindings/espulp/Architecture.h
Normal file
40
ports/espressif/bindings/espulp/Architecture.h
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2023 MicroDev
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MICROPY_INCLUDED_BINDINGS_ESPULP_ARCHITECTURE_H
|
||||||
|
#define MICROPY_INCLUDED_BINDINGS_ESPULP_ARCHITECTURE_H
|
||||||
|
|
||||||
|
#include "py/enum.h"
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
FSM,
|
||||||
|
RISCV
|
||||||
|
} espulp_architecture_t;
|
||||||
|
|
||||||
|
extern const mp_obj_type_t espulp_architecture_type;
|
||||||
|
extern const cp_enum_obj_t architecture_FSM_obj;
|
||||||
|
|
||||||
|
#endif // MICROPY_INCLUDED_BINDINGS_ESPULP_ARCHITECTURE_H
|
@ -28,19 +28,35 @@
|
|||||||
#include "shared-bindings/util.h"
|
#include "shared-bindings/util.h"
|
||||||
#include "bindings/espulp/ULP.h"
|
#include "bindings/espulp/ULP.h"
|
||||||
|
|
||||||
|
#include "py/enum.h"
|
||||||
#include "py/runtime.h"
|
#include "py/runtime.h"
|
||||||
|
#include "py/objproperty.h"
|
||||||
|
|
||||||
//| class ULP:
|
//| class ULP:
|
||||||
//| def __init__(self):
|
//| def __init__(self, arch: Architecture = Architecture.FSM):
|
||||||
//| """The ultra-low-power processor.
|
//| """The ultra-low-power processor.
|
||||||
//|
|
//|
|
||||||
//| Raises an exception if another ULP has been instantiated. This
|
//| Raises an exception if another ULP has been instantiated. This
|
||||||
//| ensures that is is only used by one piece of code at a time."""
|
//| ensures that is is only used by one piece of code at a time.
|
||||||
|
//|
|
||||||
|
//| :param Architecture arch: The ulp arch"""
|
||||||
//| ...
|
//| ...
|
||||||
STATIC mp_obj_t espulp_ulp_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args) {
|
STATIC mp_obj_t espulp_ulp_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args) {
|
||||||
|
enum { ARG_arch };
|
||||||
|
static const mp_arg_t allowed_args[] = {
|
||||||
|
{ MP_QSTR_arch, MP_ARG_OBJ, {.u_obj = (void *)&architecture_FSM_obj} },
|
||||||
|
};
|
||||||
|
|
||||||
|
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||||
|
mp_arg_parse_all_kw_array(n_args, n_kw, all_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||||
|
|
||||||
|
const espulp_architecture_t arch = cp_enum_value(&espulp_architecture_type, args[ARG_arch].u_obj, MP_QSTR_arch);
|
||||||
|
|
||||||
espulp_ulp_obj_t *self = m_new_obj(espulp_ulp_obj_t);
|
espulp_ulp_obj_t *self = m_new_obj(espulp_ulp_obj_t);
|
||||||
self->base.type = &espulp_ulp_type;
|
self->base.type = &espulp_ulp_type;
|
||||||
common_hal_espulp_ulp_construct(self);
|
|
||||||
|
common_hal_espulp_ulp_construct(self, arch);
|
||||||
|
|
||||||
return MP_OBJ_FROM_PTR(self);
|
return MP_OBJ_FROM_PTR(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -124,7 +140,6 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_KW(espulp_ulp_run_obj, 2, espulp_ulp_run);
|
|||||||
//| def halt(self) -> None:
|
//| def halt(self) -> None:
|
||||||
//| """Halts the running program and releases the pins given in `run()`."""
|
//| """Halts the running program and releases the pins given in `run()`."""
|
||||||
//| ...
|
//| ...
|
||||||
//|
|
|
||||||
STATIC mp_obj_t espulp_ulp_halt(mp_obj_t self_in) {
|
STATIC mp_obj_t espulp_ulp_halt(mp_obj_t self_in) {
|
||||||
espulp_ulp_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
espulp_ulp_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||||
check_for_deinit(self);
|
check_for_deinit(self);
|
||||||
@ -134,12 +149,27 @@ STATIC mp_obj_t espulp_ulp_halt(mp_obj_t self_in) {
|
|||||||
}
|
}
|
||||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(espulp_ulp_halt_obj, espulp_ulp_halt);
|
STATIC MP_DEFINE_CONST_FUN_OBJ_1(espulp_ulp_halt_obj, espulp_ulp_halt);
|
||||||
|
|
||||||
|
//| arch: Architecture
|
||||||
|
//| """The ulp architecture. (read-only)"""
|
||||||
|
//|
|
||||||
|
STATIC mp_obj_t espulp_ulp_get_arch(mp_obj_t self_in) {
|
||||||
|
espulp_ulp_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||||
|
check_for_deinit(self);
|
||||||
|
|
||||||
|
return cp_enum_find(&espulp_architecture_type, self->arch);
|
||||||
|
}
|
||||||
|
MP_DEFINE_CONST_FUN_OBJ_1(espulp_ulp_get_arch_obj, espulp_ulp_get_arch);
|
||||||
|
|
||||||
|
MP_PROPERTY_GETTER(espulp_ulp_arch_obj,
|
||||||
|
(mp_obj_t)&espulp_ulp_get_arch_obj);
|
||||||
|
|
||||||
STATIC const mp_rom_map_elem_t espulp_ulp_locals_table[] = {
|
STATIC const mp_rom_map_elem_t espulp_ulp_locals_table[] = {
|
||||||
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&espulp_ulp_deinit_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&espulp_ulp_deinit_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&mp_identity_obj) },
|
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&mp_identity_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&espulp_ulp___exit___obj) },
|
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&espulp_ulp___exit___obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_run), MP_ROM_PTR(&espulp_ulp_run_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_run), MP_ROM_PTR(&espulp_ulp_run_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_halt), MP_ROM_PTR(&espulp_ulp_halt_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_halt), MP_ROM_PTR(&espulp_ulp_halt_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_arch), MP_ROM_PTR(&espulp_ulp_arch_obj) },
|
||||||
};
|
};
|
||||||
STATIC MP_DEFINE_CONST_DICT(espulp_ulp_locals_dict, espulp_ulp_locals_table);
|
STATIC MP_DEFINE_CONST_DICT(espulp_ulp_locals_dict, espulp_ulp_locals_table);
|
||||||
|
|
||||||
|
@ -29,10 +29,9 @@
|
|||||||
#include "py/obj.h"
|
#include "py/obj.h"
|
||||||
#include "common-hal/espulp/ULP.h"
|
#include "common-hal/espulp/ULP.h"
|
||||||
|
|
||||||
|
|
||||||
extern const mp_obj_type_t espulp_ulp_type;
|
extern const mp_obj_type_t espulp_ulp_type;
|
||||||
|
|
||||||
void common_hal_espulp_ulp_construct(espulp_ulp_obj_t *self);
|
void common_hal_espulp_ulp_construct(espulp_ulp_obj_t *self, espulp_architecture_t arch);
|
||||||
bool common_hal_espulp_ulp_deinited(espulp_ulp_obj_t *self);
|
bool common_hal_espulp_ulp_deinited(espulp_ulp_obj_t *self);
|
||||||
void common_hal_espulp_ulp_deinit(espulp_ulp_obj_t *self);
|
void common_hal_espulp_ulp_deinit(espulp_ulp_obj_t *self);
|
||||||
|
|
||||||
|
@ -27,25 +27,36 @@
|
|||||||
#include "bindings/espulp/ULPAlarm.h"
|
#include "bindings/espulp/ULPAlarm.h"
|
||||||
|
|
||||||
#include "py/runtime.h"
|
#include "py/runtime.h"
|
||||||
|
#include "py/objproperty.h"
|
||||||
|
|
||||||
//| class ULPAlarm:
|
//| class ULPAlarm:
|
||||||
//| """Trigger an alarm when the ULP requests wake-up."""
|
//| """Trigger an alarm when the ULP requests wake-up."""
|
||||||
//|
|
//|
|
||||||
//| def __init__(self) -> None:
|
//| def __init__(self, ulp: ULP) -> None:
|
||||||
//| """Create an alarm that will be triggered when the ULP requests wake-up.
|
//| """Create an alarm that will be triggered when the ULP requests wake-up.
|
||||||
//|
|
//|
|
||||||
//| The alarm is not active until it is passed to an `alarm`-enabling function, such as
|
//| The alarm is not active until it is passed to an `alarm`-enabling function, such as
|
||||||
//| `alarm.light_sleep_until_alarms()` or `alarm.exit_and_deep_sleep_until_alarms()`.
|
//| `alarm.light_sleep_until_alarms()` or `alarm.exit_and_deep_sleep_until_alarms()`.
|
||||||
//|
|
//|
|
||||||
//| """
|
//| :param ULP ulp: The ulp instance"""
|
||||||
//| ...
|
//| ...
|
||||||
//|
|
//|
|
||||||
STATIC mp_obj_t espulp_ulpalarm_make_new(const mp_obj_type_t *type,
|
STATIC mp_obj_t espulp_ulpalarm_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args) {
|
||||||
size_t n_args, size_t n_kw, const mp_obj_t *all_args) {
|
enum { ARG_ulp };
|
||||||
|
static const mp_arg_t allowed_args[] = {
|
||||||
|
{ MP_QSTR_ulp, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||||
|
};
|
||||||
|
|
||||||
|
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||||
|
mp_arg_parse_all_kw_array(n_args, n_kw, all_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||||
|
|
||||||
espulp_ulpalarm_obj_t *self = m_new_obj(espulp_ulpalarm_obj_t);
|
espulp_ulpalarm_obj_t *self = m_new_obj(espulp_ulpalarm_obj_t);
|
||||||
self->base.type = &espulp_ulpalarm_type;
|
self->base.type = &espulp_ulpalarm_type;
|
||||||
common_hal_espulp_ulpalarm_construct(self);
|
|
||||||
|
espulp_ulp_obj_t *ulp = mp_arg_validate_type(args[ARG_ulp].u_obj, &espulp_ulp_type, MP_QSTR_ulp);
|
||||||
|
|
||||||
|
common_hal_espulp_ulpalarm_construct(self, ulp);
|
||||||
|
|
||||||
return MP_OBJ_FROM_PTR(self);
|
return MP_OBJ_FROM_PTR(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,4 +30,4 @@
|
|||||||
|
|
||||||
extern const mp_obj_type_t espulp_ulpalarm_type;
|
extern const mp_obj_type_t espulp_ulpalarm_type;
|
||||||
|
|
||||||
void common_hal_espulp_ulpalarm_construct(espulp_ulpalarm_obj_t *self);
|
void common_hal_espulp_ulpalarm_construct(espulp_ulpalarm_obj_t *self, espulp_ulp_obj_t *ulp);
|
||||||
|
@ -25,9 +25,11 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "shared-bindings/util.h"
|
#include "shared-bindings/util.h"
|
||||||
|
|
||||||
#include "bindings/espulp/__init__.h"
|
#include "bindings/espulp/__init__.h"
|
||||||
#include "bindings/espulp/ULP.h"
|
#include "bindings/espulp/ULP.h"
|
||||||
#include "bindings/espulp/ULPAlarm.h"
|
#include "bindings/espulp/ULPAlarm.h"
|
||||||
|
#include "bindings/espulp/Architecture.h"
|
||||||
|
|
||||||
#include "py/runtime.h"
|
#include "py/runtime.h"
|
||||||
|
|
||||||
@ -80,6 +82,7 @@ STATIC const mp_rom_map_elem_t espulp_module_globals_table[] = {
|
|||||||
// module classes
|
// module classes
|
||||||
{ MP_ROM_QSTR(MP_QSTR_ULP), MP_OBJ_FROM_PTR(&espulp_ulp_type) },
|
{ MP_ROM_QSTR(MP_QSTR_ULP), MP_OBJ_FROM_PTR(&espulp_ulp_type) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_ULPAlarm), MP_OBJ_FROM_PTR(&espulp_ulpalarm_type) },
|
{ MP_ROM_QSTR(MP_QSTR_ULPAlarm), MP_OBJ_FROM_PTR(&espulp_ulpalarm_type) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_Architecture), MP_ROM_PTR(&espulp_architecture_type) },
|
||||||
};
|
};
|
||||||
STATIC MP_DEFINE_CONST_DICT(espulp_module_globals, espulp_module_globals_table);
|
STATIC MP_DEFINE_CONST_DICT(espulp_module_globals, espulp_module_globals_table);
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
USB_VID = 0x239A
|
USB_VID = 0x239A
|
||||||
USB_PID = 0x8128
|
USB_PID = 0x80EE
|
||||||
|
|
||||||
USB_PRODUCT = "Feather ESP32-S2 Reverse TFT"
|
USB_PRODUCT = "Feather ESP32-S2 Reverse TFT"
|
||||||
USB_MANUFACTURER = "Adafruit"
|
USB_MANUFACTURER = "Adafruit"
|
||||||
|
@ -67,6 +67,10 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
|||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
|
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_BOOT0), MP_ROM_PTR(&pin_GPIO0) },
|
{ MP_ROM_QSTR(MP_QSTR_BOOT0), MP_ROM_PTR(&pin_GPIO0) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO0) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO1) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO2) },
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_STEMMA_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_STEMMA_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||||
|
@ -1,108 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the MicroPython project, http://micropython.org/
|
|
||||||
*
|
|
||||||
* The MIT License (MIT)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2020 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 "supervisor/board.h"
|
|
||||||
#include "mpconfigboard.h"
|
|
||||||
#include "shared-bindings/busio/SPI.h"
|
|
||||||
#include "shared-bindings/displayio/FourWire.h"
|
|
||||||
#include "shared-bindings/microcontroller/Pin.h"
|
|
||||||
#include "shared-module/displayio/__init__.h"
|
|
||||||
#include "shared-module/displayio/mipi_constants.h"
|
|
||||||
|
|
||||||
/*
|
|
||||||
displayio_fourwire_obj_t board_display_obj;
|
|
||||||
|
|
||||||
#define DELAY 0x80
|
|
||||||
|
|
||||||
uint8_t display_init_sequence[] = {
|
|
||||||
0x01, 0 | DELAY, 150, // SWRESET
|
|
||||||
0x11, 0 | DELAY, 255, // SLPOUT
|
|
||||||
0x36, 1, 0x00, // _MADCTL bottom to top refresh in vsync aligned order.
|
|
||||||
0x3a, 1, 0x55, // COLMOD - 16bit color
|
|
||||||
0x21, 0 | DELAY, 10, // _INVON
|
|
||||||
0x13, 0 | DELAY, 10, // _NORON
|
|
||||||
0x29, 0 | DELAY, 255, // _DISPON
|
|
||||||
};
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
void board_init(void) {
|
|
||||||
// Debug UART
|
|
||||||
#ifdef DEBUG
|
|
||||||
common_hal_never_reset_pin(&pin_GPIO43);
|
|
||||||
common_hal_never_reset_pin(&pin_GPIO44);
|
|
||||||
#endif /* DEBUG */
|
|
||||||
|
|
||||||
/*
|
|
||||||
busio_spi_obj_t* spi = &displays[0].fourwire_bus.inline_bus;
|
|
||||||
common_hal_busio_spi_construct(spi, &pin_GPIO36, &pin_GPIO35, NULL);
|
|
||||||
common_hal_busio_spi_never_reset(spi);
|
|
||||||
|
|
||||||
displayio_fourwire_obj_t* bus = &displays[0].fourwire_bus;
|
|
||||||
bus->base.type = &displayio_fourwire_type;
|
|
||||||
common_hal_displayio_fourwire_construct(bus,
|
|
||||||
spi,
|
|
||||||
&pin_GPIO40, // TFT_DC Command or data
|
|
||||||
&pin_GPIO42, // TFT_CS Chip select
|
|
||||||
&pin_GPIO41, // TFT_RST Reset
|
|
||||||
4000000, // Baudrate
|
|
||||||
0, // Polarity
|
|
||||||
0); // Phase
|
|
||||||
|
|
||||||
displayio_display_obj_t* display = &displays[0].display;
|
|
||||||
display->base.type = &displayio_display_type;
|
|
||||||
common_hal_displayio_display_construct(display,
|
|
||||||
bus,
|
|
||||||
240, // Width (after rotation)
|
|
||||||
135, // Height (after rotation)
|
|
||||||
0, // column start
|
|
||||||
0, // row start
|
|
||||||
0, // rotation
|
|
||||||
16, // Color depth
|
|
||||||
false, // Grayscale
|
|
||||||
false, // Pixels in a byte share a row. Only used for depth < 8
|
|
||||||
1, // bytes per cell. Only valid for depths < 8
|
|
||||||
false, // reverse_pixels_in_byte. Only valid for depths < 8
|
|
||||||
true, // reverse_pixels_in_word
|
|
||||||
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
|
|
||||||
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
|
|
||||||
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
|
|
||||||
display_init_sequence,
|
|
||||||
sizeof(display_init_sequence),
|
|
||||||
&pin_GPIO7, // backlight pin
|
|
||||||
NO_BRIGHTNESS_COMMAND,
|
|
||||||
1.0f, // brightness
|
|
||||||
false, // single_byte_bounds
|
|
||||||
false, // data_as_commands
|
|
||||||
true, // auto_refresh
|
|
||||||
60, // native_frames_per_second
|
|
||||||
true, // backlight_on_high
|
|
||||||
false, // not SH1107
|
|
||||||
50000); // backlight pwm frequency
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
|
@ -1,15 +0,0 @@
|
|||||||
USB_VID = 0x239A
|
|
||||||
USB_PID = 0x80EE
|
|
||||||
USB_PRODUCT = "Feather ESP32S2 TFT no PSRAM"
|
|
||||||
USB_MANUFACTURER = "Adafruit"
|
|
||||||
|
|
||||||
IDF_TARGET = esp32s2
|
|
||||||
|
|
||||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
|
||||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
|
||||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
|
||||||
|
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
|
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
|
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register
|
|
||||||
CIRCUITPY_ESP32_CAMERA = 0
|
|
@ -1,75 +0,0 @@
|
|||||||
#include "shared-bindings/board/__init__.h"
|
|
||||||
|
|
||||||
#include "shared-module/displayio/__init__.h"
|
|
||||||
|
|
||||||
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
|
||||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO0) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO3) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO3) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO4) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO4) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO5) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO6) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_TFT_BACKLIGHT), MP_ROM_PTR(&pin_GPIO7) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO8) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO8) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO9) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO10) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO11) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO12) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO13) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO13) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_L), MP_ROM_PTR(&pin_GPIO13) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO14) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO14) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO15) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO15) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_GPIO16) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO16) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D17), MP_ROM_PTR(&pin_GPIO17) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO17) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_GPIO18) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO18) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL_POWER), MP_ROM_PTR(&pin_GPIO21) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO33) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D35), MP_ROM_PTR(&pin_GPIO35) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO35) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D36), MP_ROM_PTR(&pin_GPIO36) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO36) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D37), MP_ROM_PTR(&pin_GPIO37) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO37) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D38), MP_ROM_PTR(&pin_GPIO38) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO38) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D39), MP_ROM_PTR(&pin_GPIO39) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO39) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_TFT_DC), MP_ROM_PTR(&pin_GPIO40) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_TFT_RESET), MP_ROM_PTR(&pin_GPIO41) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_TFT_CS), MP_ROM_PTR(&pin_GPIO42) },
|
|
||||||
|
|
||||||
{ 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_DISPLAY), MP_ROM_PTR(&displays[0].display)}
|
|
||||||
};
|
|
||||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
|
@ -1,6 +0,0 @@
|
|||||||
# CONFIG_ESP32S2_SPIRAM_SUPPORT is not set
|
|
||||||
#
|
|
||||||
# LWIP
|
|
||||||
#
|
|
||||||
CONFIG_LWIP_LOCAL_HOSTNAME="espressif"
|
|
||||||
# end of LWIP
|
|
@ -10,4 +10,4 @@ CIRCUITPY_ESP_FLASH_FREQ = 40m
|
|||||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||||
|
|
||||||
OPTIMIZATION_FLAGS = -Os
|
OPTIMIZATION_FLAGS = -Os
|
||||||
CIRCUITPY_ESP32_CAMERA = 0
|
CIRCUITPY_ESPCAMERA = 0
|
||||||
|
@ -8,4 +8,4 @@ IDF_TARGET = esp32s3
|
|||||||
CIRCUITPY_ESP_FLASH_MODE = qio
|
CIRCUITPY_ESP_FLASH_MODE = qio
|
||||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||||
CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
||||||
CIRCUITPY_ESP32_CAMERA = 0
|
CIRCUITPY_ESPCAMERA = 0
|
||||||
|
@ -67,6 +67,10 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
|||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
|
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_BOOT0), MP_ROM_PTR(&pin_GPIO0) },
|
{ MP_ROM_QSTR(MP_QSTR_BOOT0), MP_ROM_PTR(&pin_GPIO0) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO0) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO1) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO2) },
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_STEMMA_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_STEMMA_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||||
|
@ -11,4 +11,4 @@ CIRCUITPY_ESP_FLASH_FREQ = 40m
|
|||||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||||
|
|
||||||
OPTIMIZATION_FLAGS = -Os
|
OPTIMIZATION_FLAGS = -Os
|
||||||
CIRCUITPY_ESP32_CAMERA = 0
|
CIRCUITPY_ESPCAMERA = 0
|
||||||
|
@ -6,4 +6,4 @@ IDF_TARGET = esp32
|
|||||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||||
CIRCUITPY_ESP32_CAMERA = 0
|
CIRCUITPY_ESPCAMERA = 0
|
||||||
|
@ -9,7 +9,7 @@ CIRCUITPY_ESP_FLASH_MODE = dio
|
|||||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||||
|
|
||||||
CIRCUITPY_ESP32_CAMERA = 0
|
CIRCUITPY_ESPCAMERA = 0
|
||||||
|
|
||||||
# Include these Python libraries in firmware.
|
# Include these Python libraries in firmware.
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_PortalBase
|
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_PortalBase
|
||||||
|
@ -9,7 +9,7 @@ CIRCUITPY_ESP_FLASH_MODE = dio
|
|||||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||||
|
|
||||||
CIRCUITPY_ESP32_CAMERA = 0
|
CIRCUITPY_ESPCAMERA = 0
|
||||||
|
|
||||||
# Include these Python libraries in firmware.
|
# Include these Python libraries in firmware.
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_PortalBase
|
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_PortalBase
|
||||||
|
@ -13,4 +13,4 @@ CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
|||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
|
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
|
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register
|
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register
|
||||||
CIRCUITPY_ESP32_CAMERA = 0
|
CIRCUITPY_ESPCAMERA = 0
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#define MICROPY_HW_MCU_NAME "ESP32S2"
|
#define MICROPY_HW_MCU_NAME "ESP32S2"
|
||||||
|
|
||||||
// #define MICROPY_HW_NEOPIXEL (&pin_GPIO18)
|
// #define MICROPY_HW_NEOPIXEL (&pin_GPIO18)
|
||||||
|
#define MICROPY_HW_LED_STATUS (&pin_GPIO0)
|
||||||
|
|
||||||
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO16)
|
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO16)
|
||||||
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO15)
|
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO15)
|
||||||
|
39
ports/espressif/boards/brainboardz_neuron/board.c
Executable file
39
ports/espressif/boards/brainboardz_neuron/board.c
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 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 "supervisor/board.h"
|
||||||
|
#include "mpconfigboard.h"
|
||||||
|
#include "shared-bindings/microcontroller/Pin.h"
|
||||||
|
|
||||||
|
void board_init(void) {
|
||||||
|
// Debug UART
|
||||||
|
#ifdef DEBUG
|
||||||
|
common_hal_never_reset_pin(&pin_GPIO43);
|
||||||
|
common_hal_never_reset_pin(&pin_GPIO44);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
33
ports/espressif/boards/brainboardz_neuron/mpconfigboard.h
Executable file
33
ports/espressif/boards/brainboardz_neuron/mpconfigboard.h
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Micropython setup
|
||||||
|
|
||||||
|
#define MICROPY_HW_BOARD_NAME "Neuron"
|
||||||
|
#define MICROPY_HW_MCU_NAME "ESP32S3"
|
||||||
|
|
||||||
|
#define DEFAULT_UART_BUS_RX (&pin_GPIO44)
|
||||||
|
#define DEFAULT_UART_BUS_TX (&pin_GPIO43)
|
11
ports/espressif/boards/brainboardz_neuron/mpconfigboard.mk
Executable file
11
ports/espressif/boards/brainboardz_neuron/mpconfigboard.mk
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
USB_VID = 0x303A
|
||||||
|
USB_PID = 0x80C8
|
||||||
|
|
||||||
|
USB_PRODUCT = "Neuron"
|
||||||
|
USB_MANUFACTURER = "BrainBoardz"
|
||||||
|
|
||||||
|
IDF_TARGET = esp32s3
|
||||||
|
|
||||||
|
CIRCUITPY_ESP_FLASH_MODE=dio
|
||||||
|
CIRCUITPY_ESP_FLASH_FREQ=80m
|
||||||
|
CIRCUITPY_ESP_FLASH_SIZE=8MB
|
68
ports/espressif/boards/brainboardz_neuron/pins.c
Executable file
68
ports/espressif/boards/brainboardz_neuron/pins.c
Executable file
@ -0,0 +1,68 @@
|
|||||||
|
#include "shared-bindings/board/__init__.h"
|
||||||
|
|
||||||
|
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||||
|
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO0), MP_ROM_PTR(&pin_GPIO0) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_BT), MP_ROM_PTR(&pin_GPIO0) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO1), MP_ROM_PTR(&pin_GPIO1) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO2), MP_ROM_PTR(&pin_GPIO2) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO3), MP_ROM_PTR(&pin_GPIO3) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO5), MP_ROM_PTR(&pin_GPIO5) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO6), MP_ROM_PTR(&pin_GPIO6) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO8), MP_ROM_PTR(&pin_GPIO8) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO8) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO9), MP_ROM_PTR(&pin_GPIO9) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO9) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO10), MP_ROM_PTR(&pin_GPIO10) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO11), MP_ROM_PTR(&pin_GPIO11) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO12), MP_ROM_PTR(&pin_GPIO12) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO13), MP_ROM_PTR(&pin_GPIO13) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SD_MISO), MP_ROM_PTR(&pin_GPIO13) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO14), MP_ROM_PTR(&pin_GPIO14) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SD_CLK), MP_ROM_PTR(&pin_GPIO14) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO15), MP_ROM_PTR(&pin_GPIO15) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SD_MOSI), MP_ROM_PTR(&pin_GPIO15) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO16), MP_ROM_PTR(&pin_GPIO16) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_GPIO16) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO17), MP_ROM_PTR(&pin_GPIO17) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO18), MP_ROM_PTR(&pin_GPIO18) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO19), MP_ROM_PTR(&pin_GPIO19) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO20), MP_ROM_PTR(&pin_GPIO20) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO21) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO35), MP_ROM_PTR(&pin_GPIO35) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO36), MP_ROM_PTR(&pin_GPIO36) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO37), MP_ROM_PTR(&pin_GPIO37) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO38), MP_ROM_PTR(&pin_GPIO38) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO39), MP_ROM_PTR(&pin_GPIO39) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO40), MP_ROM_PTR(&pin_GPIO40) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO41), MP_ROM_PTR(&pin_GPIO41) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO42), MP_ROM_PTR(&pin_GPIO42) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO43), MP_ROM_PTR(&pin_GPIO43) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO43) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO44), MP_ROM_PTR(&pin_GPIO44) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO44) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO45), MP_ROM_PTR(&pin_GPIO45) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO46), MP_ROM_PTR(&pin_GPIO46) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO47), MP_ROM_PTR(&pin_GPIO47) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IO48), MP_ROM_PTR(&pin_GPIO48) },
|
||||||
|
|
||||||
|
};
|
||||||
|
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
34
ports/espressif/boards/brainboardz_neuron/sdkconfig
Executable file
34
ports/espressif/boards/brainboardz_neuron/sdkconfig
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
CONFIG_ESP32S3_SPIRAM_SUPPORT=y
|
||||||
|
#
|
||||||
|
# SPI RAM config
|
||||||
|
#
|
||||||
|
# CONFIG_SPIRAM_MODE_QUAD is not set
|
||||||
|
CONFIG_SPIRAM_MODE_OCT=y
|
||||||
|
# CONFIG_SPIRAM_TYPE_AUTO is not set
|
||||||
|
CONFIG_SPIRAM_TYPE_ESPPSRAM64=y
|
||||||
|
CONFIG_SPIRAM_SIZE=8388608
|
||||||
|
# end of SPI RAM config
|
||||||
|
|
||||||
|
CONFIG_DEFAULT_PSRAM_CLK_IO=30
|
||||||
|
#
|
||||||
|
# PSRAM Clock and CS IO for ESP32S3
|
||||||
|
#
|
||||||
|
CONFIG_DEFAULT_PSRAM_CS_IO=26
|
||||||
|
# end of PSRAM Clock and CS IO for ESP32S3
|
||||||
|
|
||||||
|
# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set
|
||||||
|
# CONFIG_SPIRAM_RODATA is not set
|
||||||
|
CONFIG_SPIRAM_SPEED_80M=y
|
||||||
|
# CONFIG_SPIRAM_SPEED_40M is not set
|
||||||
|
CONFIG_SPIRAM=y
|
||||||
|
CONFIG_SPIRAM_BOOT_INIT=y
|
||||||
|
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
|
||||||
|
CONFIG_SPIRAM_USE_MEMMAP=y
|
||||||
|
# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set
|
||||||
|
# CONFIG_SPIRAM_USE_MALLOC is not set
|
||||||
|
CONFIG_SPIRAM_MEMTEST=y
|
||||||
|
#
|
||||||
|
# LWIP
|
||||||
|
#
|
||||||
|
CONFIG_LWIP_LOCAL_HOSTNAME="BrainBoardzNeuron"
|
||||||
|
# end of LWIP
|
@ -6,7 +6,7 @@ IDF_TARGET = esp32
|
|||||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||||
CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
||||||
CIRCUITPY_ESP32_CAMERA = 0
|
CIRCUITPY_ESPCAMERA = 0
|
||||||
|
|
||||||
# Include these Python libraries in firmware
|
# Include these Python libraries in firmware
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
|
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
|
||||||
|
@ -6,4 +6,4 @@ IDF_TARGET = esp32
|
|||||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||||
CIRCUITPY_ESP32_CAMERA = 0
|
CIRCUITPY_ESPCAMERA = 0
|
||||||
|
@ -10,4 +10,4 @@ CIRCUITPY_NEOPIXEL_WRITE = 0
|
|||||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||||
CIRCUITPY_ESP32_CAMERA = 0
|
CIRCUITPY_ESPCAMERA = 0
|
||||||
|
@ -8,4 +8,4 @@ IDF_TARGET = esp32s2
|
|||||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||||
CIRCUITPY_ESP32_CAMERA = 0
|
CIRCUITPY_ESPCAMERA = 0
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user