Merge branch 'main' into espnow

This commit is contained in:
MicroDev 2023-02-03 01:37:07 +05:30
commit 14c3b52b8d
No known key found for this signature in database
GPG Key ID: 2C0867BE60967730
283 changed files with 3434 additions and 2328 deletions

View 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

View File

@ -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
needs: test
if: >-
needs.test.outputs.boards-aarch != '[]' ||
needs.test.outputs.boards-arm != '[]' ||
needs.test.outputs.boards-espressif != '[]' ||
needs.test.outputs.boards-riscv != '[]'
env:
CP_VERSION: ${{ needs.test.outputs.cp-version }}
steps: steps:
- name: Dump GitHub context - name: Set up repository
env: uses: actions/checkout@v3
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- 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'))

View File

@ -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')

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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"

View File

@ -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 ""

View File

@ -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"

File diff suppressed because it is too large Load Diff

View File

@ -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 ""

View File

@ -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"

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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"

View File

@ -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 ""

View File

@ -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"

View File

@ -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 ""

View File

@ -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"

View File

@ -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

View 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);
}

View 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

View File

View 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

View File

@ -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"

View File

@ -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")

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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());

View 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);

View 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

View File

@ -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);

View File

@ -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);

View File

@ -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);
} }

View File

@ -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);

View File

@ -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);

View File

@ -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"

View File

@ -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) },

View File

@ -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.

View File

@ -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

View File

@ -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);

View File

@ -1,6 +0,0 @@
# CONFIG_ESP32S2_SPIRAM_SUPPORT is not set
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="espressif"
# end of LWIP

View File

@ -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

View File

@ -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

View File

@ -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) },

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View 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.

View 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)

View 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

View 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);

View 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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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