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
outputs:
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-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:
- name: Dump GitHub context
run: echo "$GITHUB_CONTEXT"
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
- uses: actions/checkout@v3
- name: Set up repository
uses: actions/checkout@v3
with:
submodules: false
fetch-depth: 1
- name: Set up Python 3
- name: Set up python
uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Get CP deps
run: python tools/ci_fetch_deps.py test ${{ github.sha }}
- name: CircuitPython version
run: |
tools/describe || git log --parents HEAD~4..
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
- name: Duplicate USB VID/PID check
run: python3 -u -m tools.ci_check_duplicate_usb_vid_pid
- name: Set up submodules
id: set-up-submodules
uses: ./.github/actions/fetch_submodules
with:
cache: "cache"
version: true
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y eatmydata
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
run: |
gcc --version
python3 --version
- name: Duplicate USB VID/PID Check
run: python3 -u -m tools.ci_check_duplicate_usb_vid_pid
- name: Build mpy-cross
run: make -C mpy-cross -j2
- name: Build unix port
@ -114,13 +116,16 @@ jobs:
with:
name: mpy-cross.static-x64-windows
path: mpy-cross/mpy-cross.static.exe
- name: Upload mpy-cross builds 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'))
- 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'))
env:
AWS_PAGER: ''
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
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-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
@ -160,29 +165,26 @@ jobs:
mpy-cross-mac:
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:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v3
- name: Set up repository
uses: actions/checkout@v3
with:
submodules: false
fetch-depth: 1
- name: Set up Python 3
- name: Set up python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Get CP deps
run: python tools/ci_fetch_deps.py mpy-cross-mac ${{ github.sha }}
- 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
python-version: "3.x"
- name: Set up submodules
uses: ./.github/actions/fetch_submodules
- name: Versions
run: |
gcc --version
@ -219,30 +221,29 @@ jobs:
build-doc:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
needs: test
if: ${{ needs.test.outputs.build-doc == 'True' }}
env:
CP_VERSION: ${{ needs.test.outputs.cp-version }}
steps:
- uses: actions/checkout@v3
- name: Set up repository
uses: actions/checkout@v3
with:
submodules: false
fetch-depth: 1
- name: Get CP deps
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
- name: Set up python
uses: actions/setup-python@v4
with:
python-version: "3.10"
python-version: "3.x"
- name: Set up submodules
uses: ./.github/actions/fetch_submodules
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y eatmydata
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
run: make check-stubs -j2
- uses: actions/upload-artifact@v3
@ -262,13 +263,16 @@ jobs:
with:
name: docs
path: _build/latex
- name: Upload stubs 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'))
- 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'))
env:
AWS_PAGER: ''
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: |
pip install awscli
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
- name: Upload stubs to PyPi
@ -282,225 +286,33 @@ jobs:
[ -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:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
needs: test
if: ${{ needs.test.outputs.boards-aarch != '[]' }}
env:
CP_VERSION: ${{ needs.test.outputs.cp-version }}
strategy:
fail-fast: false
matrix:
board: ${{ fromJSON(needs.test.outputs.boards-aarch) }}
if: ${{ needs.test.outputs.boards-aarch != '[]' }}
steps:
- name: Set up Python 3
uses: actions/setup-python@v4
with:
python-version: "3.10"
- uses: actions/checkout@v3
- name: Set up repository
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: 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 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
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
@ -522,11 +334,12 @@ jobs:
arm-none-eabi-gcc --version
python3 --version
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
- name: Setup build failure matcher
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
- name: build
- name: Build
run: python3 -u build_release_files.py
working-directory: tools
env:
@ -536,9 +349,231 @@ jobs:
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"
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:
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'))

View File

@ -6,41 +6,38 @@ name: Update CircuitPython.org
on:
release:
types: [published]
types: [published, rerequested]
jobs:
website:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: Dump GitHub context
run: echo "$GITHUB_CONTEXT"
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v3
- name: Set up repository
uses: actions/checkout@v3
with:
submodules: false
fetch-depth: 1
- name: Set up Python 3
- name: Set up python
uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Get CP deps
run: python tools/ci_fetch_deps.py website ${{ github.sha }}
- name: Install deps
run: |
pip install -r requirements-dev.txt
- name: Set up submodules
uses: ./.github/actions/fetch_submodules
with:
version: true
- name: Install dependencies
run: pip install -r requirements-dev.txt
- name: Versions
run: |
gcc --version
python3 --version
- name: CircuitPython version
run: |
tools/describe || git log --parents HEAD~4..
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
- name: Website
run: python3 build_board_info.py
working-directory: tools
env:
RELEASE_TAG: ${{ github.event.release.tag_name }}
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:
notify:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- uses: jenschelkopf/issue-label-notification-action@1.3
- uses: tekktrik/issue-labeled-ping@v1
with:
recipients: |
ulab=@v923z
github-token: ${{ secrets.GITHUB_TOKEN }}
user: v923z
label: ulab
message: Heads up {user} - the "{label}" label was applied to this issue.

View File

@ -4,7 +4,7 @@ on:
push:
pull_request:
paths:
- '.github/workflows/*.yml'
- '.github/workflows/ports_windows.yml'
- 'extmod/**'
- 'lib/**'
- 'mpy-cross/**'
@ -19,8 +19,8 @@ concurrency:
cancel-in-progress: true
jobs:
build:
runs-on: windows-2019
windows:
runs-on: windows-2022
defaults:
run:
# 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
- name: Check python coding (cmd)
run: |
python -c "import sys, locale; print(sys.getdefaultencoding(), locale.getpreferredencoding(False))"
run: python -c "import sys, locale; print(sys.getdefaultencoding(), locale.getpreferredencoding(False))"
shell: cmd
# 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 python3; python3 --version; python3 -c "import cascadetoml"
- uses: actions/checkout@v3
- name: Set up repository
uses: actions/checkout@v3
with:
submodules: false
fetch-depth: 1
- name: Get CP deps
run: python tools/ci_fetch_deps.py windows ${{ github.sha }}
- name: CircuitPython version
run: |
tools/describe || git log --parents HEAD~4..
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
- name: Set up submodules
uses: ./.github/actions/fetch_submodules
with:
version: true
- name: build mpy-cross
run: make -j2 -C mpy-cross

View File

@ -16,24 +16,23 @@ jobs:
pre-commit:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Set up Python 3
- 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: Install deps
- name: CircuitPython dependencies
run: python tools/ci_fetch_deps.py ${{ github.job }}
- name: Install dependencies
run: |
sudo apt-get install -y gettext uncrustify
pip3 install black polib pyyaml
- name: Populate selected submodules
run: git submodule update --init extmod/ulab
- 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: Run pre-commit
uses: pre-commit/action@v3.0.0
- name: Make patch
if: failure()
run: git diff > ~/pre-commit.patch

View File

@ -14,7 +14,7 @@ build:
python: "3"
jobs:
post_install:
- python tools/ci_fetch_deps.py docs HEAD
- python tools/ci_fetch_deps.py build-doc
formats:
- 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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

@ -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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
@ -2509,6 +2510,10 @@ msgstr ""
msgid "array has too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2937,6 +2942,10 @@ msgstr ""
msgid "div/mod not implemented for uint"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "divide by zero"
msgstr ""
#: py/runtime.c
msgid "division by zero"
msgstr ""
@ -2978,9 +2987,9 @@ msgstr ""
msgid "error = 0x%08lX"
msgstr "error = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
@ -3357,7 +3366,7 @@ msgstr "key tidak valid"
msgid "invalid micropython decorator"
msgstr "micropython decorator tidak valid"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr ""
@ -3614,7 +3623,7 @@ msgstr ""
msgid "no response from SD card"
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"
msgstr ""
@ -3751,6 +3760,10 @@ msgstr ""
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
msgstr ""

View File

@ -2485,6 +2485,10 @@ msgstr ""
msgid "array has too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2913,6 +2917,10 @@ msgstr ""
msgid "div/mod not implemented for uint"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "divide by zero"
msgstr ""
#: py/runtime.c
msgid "division by zero"
msgstr ""
@ -2954,9 +2962,9 @@ msgstr ""
msgid "error = 0x%08lX"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
@ -3333,7 +3341,7 @@ msgstr ""
msgid "invalid micropython decorator"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr ""
@ -3590,7 +3598,7 @@ msgstr ""
msgid "no response from SD card"
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"
msgstr ""
@ -3726,6 +3734,10 @@ msgstr ""
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
@ -2496,6 +2497,10 @@ msgstr ""
msgid "array has too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2924,6 +2929,10 @@ msgstr ""
msgid "div/mod not implemented for uint"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "divide by zero"
msgstr ""
#: py/runtime.c
msgid "division by zero"
msgstr ""
@ -2965,9 +2974,9 @@ msgstr ""
msgid "error = 0x%08lX"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
@ -3344,7 +3353,7 @@ msgstr ""
msgid "invalid micropython decorator"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr ""
@ -3601,7 +3610,7 @@ msgstr ""
msgid "no response from SD card"
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"
msgstr ""
@ -3737,6 +3746,10 @@ msgstr ""
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\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"
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
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2994,6 +2999,10 @@ msgstr "Abmessungen stimmen nicht überein"
msgid "div/mod not implemented for uint"
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
msgid "division by zero"
msgstr "Division durch Null"
@ -3035,13 +3044,11 @@ msgstr "epoch_time wird auf diesem Board nicht unterstützt"
msgid "error = 0x%08lX"
msgstr "Fehler = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
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
msgid "exceptions must derive from BaseException"
@ -3418,7 +3425,7 @@ msgstr "ungültiger Schlüssel"
msgid "invalid 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"
msgstr "Invalide Einstellung"
@ -3681,7 +3688,7 @@ msgstr "kein Reset Pin verfügbar"
msgid "no response from SD card"
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"
msgstr "kein solches Attribut"
@ -3819,6 +3826,10 @@ msgstr "nur eine bit_depth=16 wird unterstützt"
msgid "only mono is supported"
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
msgid "only oversample=64 is supported"
msgstr ""
@ -4431,6 +4442,13 @@ msgstr "zi muss eine Gleitkommazahl sein"
msgid "zi must be of shape (n_section, 2)"
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"
#~ 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"
#~ msgstr "Komplexe Division durch null"
#~ msgid "divide by zero"
#~ msgstr "durch Null dividieren"
#~ msgid "int() arg 2 must be >= 2 and <= 36"
#~ 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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
@ -2505,6 +2506,10 @@ msgstr ""
msgid "array has too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2933,6 +2938,10 @@ msgstr ""
msgid "div/mod not implemented for uint"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "divide by zero"
msgstr ""
#: py/runtime.c
msgid "division by zero"
msgstr ""
@ -2974,9 +2983,9 @@ msgstr ""
msgid "error = 0x%08lX"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
@ -3353,7 +3362,7 @@ msgstr ""
msgid "invalid micropython decorator"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr ""
@ -3610,7 +3619,7 @@ msgstr ""
msgid "no response from SD card"
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"
msgstr ""
@ -3746,6 +3755,10 @@ msgstr ""
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
@ -2512,6 +2513,10 @@ msgstr "array and index length must be equal"
msgid "array has too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2943,6 +2948,10 @@ msgstr "dimensions do not match"
msgid "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
msgid "division by zero"
msgstr "division by zero"
@ -2984,9 +2993,9 @@ msgstr "epoch_time not supported on this board"
msgid "error = 0x%08lX"
msgstr "error = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
@ -3363,7 +3372,7 @@ msgstr "invalid key"
msgid "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"
msgstr ""
@ -3620,7 +3629,7 @@ msgstr "no reset pin available"
msgid "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"
msgstr "no such attribute"
@ -3756,6 +3765,10 @@ msgstr "only bit_depth=16 is supported"
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
msgstr ""
@ -4407,9 +4420,6 @@ msgstr "zi must be of shape (n_section, 2)"
#~ msgid "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"
#~ 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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
@ -2496,6 +2497,10 @@ msgstr ""
msgid "array has too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2935,6 +2940,10 @@ msgstr ""
msgid "div/mod not implemented for uint"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "divide by zero"
msgstr ""
#: py/runtime.c
msgid "division by zero"
msgstr "dibisyon ng zero"
@ -2976,9 +2985,9 @@ msgstr ""
msgid "error = 0x%08lX"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
@ -3356,7 +3365,7 @@ msgstr "mali ang key"
msgid "invalid 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"
msgstr ""
@ -3617,7 +3626,7 @@ msgstr ""
msgid "no response from SD card"
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"
msgstr "walang ganoon na attribute"
@ -3754,6 +3763,10 @@ msgstr ""
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\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"
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
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -3021,6 +3026,10 @@ msgstr "les dimensions ne correspondent pas"
msgid "div/mod not implemented for 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
msgid "division by zero"
msgstr "division par zéro"
@ -3062,13 +3071,11 @@ msgstr "epoch_time n'est pas supporté sur ce panneau"
msgid "error = 0x%08lX"
msgstr "erreur = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
"esp32_camera.Camera nécessite la configuration de PSRAM réservée. Se référer "
"à la documentation."
#: py/runtime.c
msgid "exceptions must derive from BaseException"
@ -3445,7 +3452,7 @@ msgstr "clé invalide"
msgid "invalid micropython decorator"
msgstr "décorateur micropython invalide"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr "réglage invalide"
@ -3707,7 +3714,7 @@ msgstr "pas de broche de réinitialisation disponible"
msgid "no response from SD card"
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"
msgstr "pas de tel attribut"
@ -3846,6 +3853,10 @@ msgstr "seul bit_depth = 16 est pris en charge"
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
msgstr ""
@ -4456,6 +4467,13 @@ msgstr "zi doit être de type float"
msgid "zi must be of shape (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"
#~ 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"
#~ msgstr "division complexe par zéro"
#~ msgid "divide by zero"
#~ msgstr "division par zéro"
#~ msgid "int() arg 2 must be >= 2 and <= 36"
#~ msgstr ""
#~ "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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
@ -2478,6 +2479,10 @@ msgstr ""
msgid "array has too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2906,6 +2911,10 @@ msgstr ""
msgid "div/mod not implemented for uint"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "divide by zero"
msgstr ""
#: py/runtime.c
msgid "division by zero"
msgstr ""
@ -2947,9 +2956,9 @@ msgstr ""
msgid "error = 0x%08lX"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
@ -3326,7 +3335,7 @@ msgstr ""
msgid "invalid micropython decorator"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr ""
@ -3583,7 +3592,7 @@ msgstr ""
msgid "no response from SD card"
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"
msgstr ""
@ -3719,6 +3728,10 @@ msgstr ""
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
@ -2506,6 +2507,10 @@ msgstr ""
msgid "array has too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2943,6 +2948,10 @@ msgstr ""
msgid "div/mod not implemented for uint"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "divide by zero"
msgstr ""
#: py/runtime.c
msgid "division by zero"
msgstr "divisione per zero"
@ -2984,9 +2993,9 @@ msgstr ""
msgid "error = 0x%08lX"
msgstr "errore = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
@ -3364,7 +3373,7 @@ msgstr "chiave non valida"
msgid "invalid micropython decorator"
msgstr "decoratore non valido in micropython"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr ""
@ -3626,7 +3635,7 @@ msgstr ""
msgid "no response from SD card"
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"
msgstr "attributo inesistente"
@ -3765,6 +3774,10 @@ msgstr ""
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
msgstr ""

View File

@ -675,6 +675,7 @@ msgstr "Busピン%dはすでに使用中"
#: ports/espressif/boards/m5stack_core_basic/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"
msgstr ""
@ -2498,6 +2499,10 @@ msgstr ""
msgid "array has too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2930,6 +2935,10 @@ msgstr ""
msgid "div/mod not implemented for uint"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "divide by zero"
msgstr ""
#: py/runtime.c
msgid "division by zero"
msgstr "ゼロ除算 (division by zero)"
@ -2971,9 +2980,9 @@ msgstr ""
msgid "error = 0x%08lX"
msgstr "error = 0x1%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
@ -3351,7 +3360,7 @@ msgstr "不正な鍵"
msgid "invalid micropython decorator"
msgstr "不正なmicropythonデコレータ"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr ""
@ -3608,7 +3617,7 @@ msgstr "利用可能なリセットピンがありません"
msgid "no response from SD card"
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"
msgstr "指定の属性はありません"
@ -3744,6 +3753,10 @@ msgstr "bit_depth=16のみ対応しています"
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
msgstr ""

View File

@ -666,6 +666,7 @@ msgstr ""
#: ports/espressif/boards/m5stack_core_basic/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"
msgstr ""
@ -2482,6 +2483,10 @@ msgstr ""
msgid "array has too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2910,6 +2915,10 @@ msgstr ""
msgid "div/mod not implemented for uint"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "divide by zero"
msgstr ""
#: py/runtime.c
msgid "division by zero"
msgstr ""
@ -2951,9 +2960,9 @@ msgstr ""
msgid "error = 0x%08lX"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
@ -3330,7 +3339,7 @@ msgstr "키가 유효하지 않습니다"
msgid "invalid micropython decorator"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr ""
@ -3587,7 +3596,7 @@ msgstr ""
msgid "no response from SD card"
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"
msgstr ""
@ -3723,6 +3732,10 @@ msgstr ""
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
@ -2508,6 +2509,10 @@ msgstr "array en indexlengte moeten gelijk zijn"
msgid "array has too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2939,6 +2944,10 @@ msgstr ""
msgid "div/mod not implemented for uint"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "divide by zero"
msgstr ""
#: py/runtime.c
msgid "division by zero"
msgstr "deling door nul"
@ -2980,9 +2989,9 @@ msgstr "epoch_time niet ondersteund op dit bord"
msgid "error = 0x%08lX"
msgstr "fout = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
@ -3360,7 +3369,7 @@ msgstr "ongeldige sleutel"
msgid "invalid micropython decorator"
msgstr "ongeldige micropython decorator"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr ""
@ -3620,7 +3629,7 @@ msgstr "geen reset pin beschikbaar"
msgid "no response from SD card"
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"
msgstr "niet zo'n attribuut"
@ -3756,6 +3765,10 @@ msgstr "alleen bit_depth=16 wordt ondersteund"
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
@ -2489,6 +2490,10 @@ msgstr ""
msgid "array has too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2918,6 +2923,10 @@ msgstr ""
msgid "div/mod not implemented for uint"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "divide by zero"
msgstr ""
#: py/runtime.c
msgid "division by zero"
msgstr "dzielenie przez zero"
@ -2959,9 +2968,9 @@ msgstr ""
msgid "error = 0x%08lX"
msgstr "błąd = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
@ -3338,7 +3347,7 @@ msgstr "zły klucz"
msgid "invalid micropython decorator"
msgstr "zły dekorator micropythona"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr ""
@ -3595,7 +3604,7 @@ msgstr ""
msgid "no response from SD card"
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"
msgstr "nie ma takiego atrybutu"
@ -3731,6 +3740,10 @@ msgstr "obsługiwane jest tylko bit_depth=16"
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
msgstr ""

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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"
"Language-Team: \n"
"Language: pt_BR\n"
@ -14,7 +14,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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
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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\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"
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
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
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"
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
msgid "division by 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"
msgstr "erro = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
"esp32_camera.Camera requer que uma reserva PSRAM seja configurada. Consulte "
"a documentação para obter mais informações."
"O espcamera.Camera requer que o PSRAM seja reservado para que possa ser "
"configurado. Consulte a documentação para obter mais informações."
#: py/runtime.c
msgid "exceptions must derive from BaseException"
@ -3421,7 +3430,7 @@ msgstr "chave inválida"
msgid "invalid micropython decorator"
msgstr "o decorador micropython é inválido"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr "configuração inválida"
@ -3683,7 +3692,7 @@ msgstr "nenhum pino de redefinição está disponível"
msgid "no response from SD card"
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"
msgstr "não há tal atributo"
@ -3819,6 +3828,10 @@ msgstr "apenas bit_depth = 16 é compatível"
msgid "only mono is supported"
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
msgid "only oversample=64 is supported"
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)"
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"
#~ 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"
#~ msgstr "divisão complexa por zero"
#~ msgid "divide by zero"
#~ msgstr "divido por zero"
#~ msgid "int() arg 2 must be >= 2 and <= 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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr "Кнопка A была нажата при загрузке\n"
@ -2546,6 +2547,10 @@ msgstr ""
msgid "array has too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2974,6 +2979,10 @@ msgstr ""
msgid "div/mod not implemented for uint"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "divide by zero"
msgstr ""
#: py/runtime.c
msgid "division by zero"
msgstr ""
@ -3015,9 +3024,9 @@ msgstr ""
msgid "error = 0x%08lX"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
@ -3394,7 +3403,7 @@ msgstr ""
msgid "invalid micropython decorator"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr ""
@ -3651,7 +3660,7 @@ msgstr "нет доступного контакта сброса"
msgid "no response from SD card"
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"
msgstr ""
@ -3787,6 +3796,10 @@ msgstr ""
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
msgstr ""

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: sv\n"
@ -14,7 +14,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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
msgid ""
@ -675,6 +675,7 @@ msgstr "Busspinne %d används redan"
#: ports/espressif/boards/m5stack_core_basic/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"
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"
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
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2967,6 +2972,10 @@ msgstr "dimensioner matchar inte"
msgid "div/mod not implemented for 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
msgid "division by zero"
msgstr "division med noll"
@ -3008,12 +3017,12 @@ msgstr "epoch_time stöds inte av detta kort"
msgid "error = 0x%08lX"
msgstr "fel = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
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."
#: py/runtime.c
@ -3389,7 +3398,7 @@ msgstr "ogiltig nyckel"
msgid "invalid micropython decorator"
msgstr "ogiltig mikropython-dekorator"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr "ogiltig inställning"
@ -3649,7 +3658,7 @@ msgstr "ingen reset-pinne tillgänglig"
msgid "no response from SD card"
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"
msgstr "inget sådant attribut"
@ -3785,6 +3794,10 @@ msgstr "bara bit_depth=16 stöds"
msgid "only mono is supported"
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
msgid "only oversample=64 is supported"
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)"
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"
#~ 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"
#~ msgstr "komplex division med noll"
#~ msgid "divide by zero"
#~ msgstr "division med noll"
#~ msgid "int() arg 2 must be >= 2 and <= 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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr "Başlatma sırasında A düğmesine basıldı.\n"
@ -2504,6 +2505,10 @@ msgstr ""
msgid "array has too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2932,6 +2937,10 @@ msgstr ""
msgid "div/mod not implemented for uint"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "divide by zero"
msgstr ""
#: py/runtime.c
msgid "division by zero"
msgstr ""
@ -2973,9 +2982,9 @@ msgstr ""
msgid "error = 0x%08lX"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
msgstr ""
@ -3352,7 +3361,7 @@ msgstr ""
msgid "invalid micropython decorator"
msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
msgid "invalid setting"
msgstr ""
@ -3609,7 +3618,7 @@ msgstr ""
msgid "no response from SD card"
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"
msgstr ""
@ -3745,6 +3754,10 @@ msgstr ""
msgid "only mono is supported"
msgstr ""
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
msgstr ""

View File

@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: circuitpython-cn\n"
"Report-Msgid-Bugs-To: \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"
"Language-Team: Chinese Hanyu Pinyin\n"
"Language: zh_Latn_pinyin\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.15-dev\n"
"X-Generator: Weblate 4.16-dev\n"
#: main.c
msgid ""
@ -118,7 +118,7 @@ msgstr "%q Shībài: %d"
#: py/argcheck.c
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/raspberrypi/common-hal/rp2pio/StateMachine.c
@ -141,7 +141,7 @@ msgstr "%q shì %q"
#: ports/raspberrypi/common-hal/wifi/Radio.c
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
msgid "%q length must be %d"
@ -181,7 +181,7 @@ msgstr "%q bìxū >= %d"
#: shared-bindings/analogbufio/BufferedIn.c
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
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
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
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
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
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
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
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
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
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
#, c-format
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
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_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\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
msgid "During handling of the above exception, another exception occurred:"
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
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
msgid "Expected a kind of %q"
msgstr ""
msgstr "yù qī yì zhǒng %q"
#: ports/espressif/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
msgid "File not found"
msgstr ""
msgstr "zhǎo bú dào wén jiàn"
#: ports/atmel-samd/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
#, c-format
msgid "Invalid byte %.*s"
msgstr ""
msgstr "wú xiào zì jié %.*s"
#: ports/atmel-samd/common-hal/imagecapture/ParallelImageCapture.c
#, c-format
@ -1308,7 +1310,7 @@ msgstr "wú xiào zhuàng tài"
#: shared-module/os/getenv.c
msgid "Invalid unicode escape"
msgstr ""
msgstr "wú xiào de unicode zhuǎn yì"
#: shared-bindings/aesio/aes.c
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
msgid "Key not found"
msgstr ""
msgstr "wèi zhǎo dào mì yào"
#: shared-module/is31fl3741/FrameBuffer.c
msgid "LED mappings must match display size"
@ -1427,7 +1429,7 @@ msgstr "NVS cuò wù"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
msgstr "míng chēng huò fú wù wèi zhī"
#: py/qstr.c
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
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/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
msgid "Program too long"
msgstr ""
msgstr "chéng xù tài cháng"
#: shared-bindings/digitalio/DigitalInOut.c
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
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
msgid "Supply at least one UART pin"
@ -2072,7 +2074,7 @@ msgstr ""
#: py/obj.c
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_lite/mpconfigboard.h
@ -2275,7 +2277,7 @@ msgstr "wú fǎ qǐ dòng mDNS chá xún"
#: shared-bindings/memorymap/AddressRange.c
msgid "Unable to write to address."
msgstr ""
msgstr "Wú fǎ xiě rù dì zhǐ."
#: shared-bindings/nvm/ByteArray.c
msgid "Unable to write to nvm."
@ -2440,15 +2442,15 @@ msgstr "Wi-Fi: "
#: ports/raspberrypi/common-hal/wifi/Radio.c
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
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
msgid "Wifi is not enabled"
msgstr ""
msgstr "wú xiàn wǎng luò wèi qǐ yòng"
#: main.c
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"
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
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
@ -2761,7 +2767,7 @@ msgstr "wúfǎ shèzhì shǔxìng"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
msgstr "wú fǎ shè zhì shǔ xìng '%q'"
#: py/emitnative.c
msgid "can't store '%q'"
@ -2973,6 +2979,10 @@ msgstr "chǐ cùn bù pǐ pèi"
msgid "div/mod not implemented for uint"
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
msgid "division by zero"
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"
msgstr "cuòwù = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
#: ports/espressif/common-hal/espcamera/Camera.c
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."
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
msgid "exceptions must derive from BaseException"
@ -3238,7 +3246,7 @@ msgstr "suǒyǐn chāochū fànwéi"
#: shared-bindings/_pixelmap/PixelMap.c
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
#: ports/espressif/common-hal/pulseio/PulseIn.c
@ -3395,7 +3403,7 @@ msgstr "wúxiào de mì yào"
msgid "invalid micropython decorator"
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"
msgstr "shèzhì wúxiào"
@ -3618,7 +3626,7 @@ msgstr "fù zhuǎnyí jìshù"
#: shared-bindings/_pixelmap/PixelMap.c
msgid "nested index must be int"
msgstr ""
msgstr "qiàn tào suǒ yǐn bì xū shì int"
#: shared-module/sdcardio/SDCard.c
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"
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"
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"
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
msgid "only oversample=64 is supported"
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)"
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"
#~ 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"
#~ 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"
#~ 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_ANALOGIO = 0
CIRCUITPY_ALARM = 0
CIRCUITPY_AUDIOBUSIO = 0
CIRCUITPY_AUDIOMP3 = 0
@ -31,14 +32,13 @@ CIRCUITPY_ROTARYIO = 0
CIRCUITPY_RTC = 0
CIRCUITPY_SAMD = 0
CIRCUITPY_TOUCHIO = 0
CIRCUITPY_USB_CDC = 0
CIRCUITPY_USB_HID = 0
CIRCUITPY_USB_MIDI = 0
CIRCUITPY_VECTORIO = 0
CIRCUITPY_BUSDEVICE = 0
CIRCUITPY_BITMAPTOOLS = 0
CIRCUITPY_WATCHDOG = 0
CIRCUITPY_ANALOGIO = 1
CIRCUITPY_AUDIOIO = 1
CIRCUITPY_AUDIOMIXER = 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_PWMIO = 0
CIRCUITPY_ROTARYIO = 0
CIRCUITPY_RTC = 0
CIRCUITPY_SDIOIO = 1
CIRCUITPY_VIDEOCORE = 1

View File

@ -32,7 +32,7 @@
#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/SPI.h"
#include "common-hal/busio/UART.h"

View File

@ -8,7 +8,7 @@ set(ENV{IDF_PATH} ${CMAKE_SOURCE_DIR}/esp-idf)
# 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)
if("${CIRCUITPY_ESP32_CAMERA}")
if("${CIRCUITPY_ESPCAMERA}")
message("Including esp32-camera")
set(EXTRA_COMPONENT_DIRS "esp32-camera")
list(APPEND COMPONENTS "esp32-camera")

View File

@ -254,10 +254,10 @@ endif
SRC_C += $(wildcard common-hal/espidf/*.c)
ifneq ($(CIRCUITPY_ESP32_CAMERA),0)
ifneq ($(CIRCUITPY_ESPCAMERA),0)
SRC_CAMERA := \
$(wildcard common-hal/esp32_camera/*.c) \
$(wildcard bindings/esp32_camera/*.c)
$(wildcard common-hal/espcamera/*.c) \
$(wildcard bindings/espcamera/*.c)
SRC_C += $(SRC_CAMERA)
CFLAGS += -isystem esp32-camera/driver/include
CFLAGS += -isystem esp32-camera/conversions/include
@ -344,7 +344,7 @@ endif
.PHONY: do-sdkconfig
do-sdkconfig: $(BUILD)/esp-idf/config/sdkconfig.h
$(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
# 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
endif
ifneq ($(CIRCUITPY_ESP32_CAMERA),0)
ifneq ($(CIRCUITPY_ESPCAMERA),0)
ESP_IDF_COMPONENTS_EXPANDED += $(BUILD)/esp-idf/esp-idf/esp32-camera/libesp32-camera.a
#$(error $(ESP_IDF_COMPONENTS_EXPANDED))
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"
extern const mp_obj_type_t esp32_camera_camera_type;
typedef struct esp32_camera_camera_obj esp32_camera_camera_obj_t;
extern const mp_obj_type_t espcamera_camera_type;
typedef struct espcamera_camera_obj espcamera_camera_obj_t;
extern void common_hal_esp32_camera_camera_construct(
esp32_camera_camera_obj_t *self,
extern void common_hal_espcamera_camera_construct(
espcamera_camera_obj_t *self,
uint8_t data_pins[8],
const mcu_pin_obj_t *external_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,
camera_grab_mode_t grab_mode);
extern void common_hal_esp32_camera_camera_deinit(esp32_camera_camera_obj_t *self);
extern bool common_hal_esp32_camera_camera_deinited(esp32_camera_camera_obj_t *self);
extern bool common_hal_esp32_camera_camera_available(esp32_camera_camera_obj_t *self);
extern camera_fb_t *common_hal_esp32_camera_camera_take(esp32_camera_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_deinit(espcamera_camera_obj_t *self);
extern bool common_hal_espcamera_camera_deinited(espcamera_camera_obj_t *self);
extern bool common_hal_espcamera_camera_available(espcamera_camera_obj_t *self);
extern camera_fb_t *common_hal_espcamera_camera_take(espcamera_camera_obj_t *self, int timeout_ms);
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) \
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)
#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) \
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_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);
// From settings
extern camera_grab_mode_t common_hal_esp32_camera_camera_get_grab_mode(esp32_camera_camera_obj_t *self);
extern int common_hal_esp32_camera_camera_get_framebuffer_count(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_espcamera_camera_get_framebuffer_count(espcamera_camera_obj_t *self);
// From camera_sensor_info_t
extern int common_hal_esp32_camera_camera_get_address(esp32_camera_camera_obj_t *self);
extern const char *common_hal_esp32_camera_camera_get_sensor_name(esp32_camera_camera_obj_t *self);
extern const bool common_hal_esp32_camera_camera_get_supports_jpeg(esp32_camera_camera_obj_t *self);
extern framesize_t common_hal_esp32_camera_camera_get_max_frame_size(esp32_camera_camera_obj_t *self);
extern int common_hal_esp32_camera_camera_get_width(esp32_camera_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_address(espcamera_camera_obj_t *self);
extern const char *common_hal_espcamera_camera_get_sensor_name(espcamera_camera_obj_t *self);
extern const bool common_hal_espcamera_camera_get_supports_jpeg(espcamera_camera_obj_t *self);
extern framesize_t common_hal_espcamera_camera_get_max_frame_size(espcamera_camera_obj_t *self);
extern int common_hal_espcamera_camera_get_width(espcamera_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 "bindings/espidf/__init__.h"
#include "bindings/esp32_camera/__init__.h"
#include "bindings/esp32_camera/Camera.h"
#include "bindings/espcamera/__init__.h"
#include "bindings/espcamera/Camera.h"
#include "esp_camera.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,
//| 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/>`_.
//|
//| """
//|
//| class GrabMode:
//| """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"""
//|
MAKE_ENUM_VALUE(esp32_camera_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, WHEN_EMPTY, CAMERA_GRAB_WHEN_EMPTY);
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, LATEST),
};
STATIC MP_DEFINE_CONST_DICT(esp32_camera_grab_mode_locals_dict, esp32_camera_grab_mode_locals_table);
MAKE_PRINTER(esp32_camera, esp32_camera_grab_mode);
MAKE_ENUM_TYPE(esp32_camera, GrabMode, esp32_camera_grab_mode);
STATIC MP_DEFINE_CONST_DICT(espcamera_grab_mode_locals_dict, espcamera_grab_mode_locals_table);
MAKE_PRINTER(espcamera, espcamera_grab_mode);
MAKE_ENUM_TYPE(espcamera, GrabMode, espcamera_grab_mode);
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:
@ -85,22 +86,22 @@ camera_grab_mode_t validate_grab_mode(mp_obj_t obj, qstr arg_name) {
//| """A compressed format"""
//|
MAKE_ENUM_VALUE(esp32_camera_pixel_format_type, pixel_format, RGB565, PIXFORMAT_RGB565);
MAKE_ENUM_VALUE(esp32_camera_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, RGB565, PIXFORMAT_RGB565);
MAKE_ENUM_VALUE(espcamera_pixel_format_type, pixel_format, GRAYSCALE, PIXFORMAT_GRAYSCALE);
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, GRAYSCALE),
MAKE_ENUM_MAP_ENTRY(pixel_format, JPEG),
};
STATIC MP_DEFINE_CONST_DICT(esp32_camera_pixel_format_locals_dict, esp32_camera_pixel_format_locals_table);
MAKE_PRINTER(esp32_camera, esp32_camera_pixel_format);
MAKE_ENUM_TYPE(esp32_camera, PixelFormat, esp32_camera_pixel_format);
STATIC MP_DEFINE_CONST_DICT(espcamera_pixel_format_locals_dict, espcamera_pixel_format_locals_table);
MAKE_PRINTER(espcamera, espcamera_pixel_format);
MAKE_ENUM_TYPE(espcamera, PixelFormat, espcamera_pixel_format);
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:
@ -173,29 +174,29 @@ pixformat_t validate_pixel_format(mp_obj_t obj, qstr arg_name) {
//| """2560x1920"""
//|
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, R96X96, FRAMESIZE_96X96);
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, R240X240, FRAMESIZE_240X240);
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, QQVGA, FRAMESIZE_QQVGA);
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, QCIF, FRAMESIZE_QCIF);
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, HQVGA, FRAMESIZE_HQVGA);
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, QVGA, FRAMESIZE_QVGA);
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, CIF, FRAMESIZE_CIF);
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, HVGA, FRAMESIZE_HVGA);
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, VGA, FRAMESIZE_VGA);
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, SVGA, FRAMESIZE_SVGA);
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, XGA, FRAMESIZE_XGA);
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, HD, FRAMESIZE_HD);
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, SXGA, FRAMESIZE_SXGA);
MAKE_ENUM_VALUE(esp32_camera_frame_size_type, frame_size, UXGA, FRAMESIZE_UXGA);
MAKE_ENUM_VALUE(esp32_camera_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(esp32_camera_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(esp32_camera_frame_size_type, frame_size, QHD, FRAMESIZE_QHD);
MAKE_ENUM_VALUE(esp32_camera_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(esp32_camera_frame_size_type, frame_size, QSXGA, FRAMESIZE_QSXGA);
MAKE_ENUM_MAP(esp32_camera_frame_size) {
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, R96X96, FRAMESIZE_96X96);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, R240X240, FRAMESIZE_240X240);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, QQVGA, FRAMESIZE_QQVGA);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, QCIF, FRAMESIZE_QCIF);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, HQVGA, FRAMESIZE_HQVGA);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, QVGA, FRAMESIZE_QVGA);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, CIF, FRAMESIZE_CIF);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, HVGA, FRAMESIZE_HVGA);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, VGA, FRAMESIZE_VGA);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, SVGA, FRAMESIZE_SVGA);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, XGA, FRAMESIZE_XGA);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, HD, FRAMESIZE_HD);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, SXGA, FRAMESIZE_SXGA);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, UXGA, FRAMESIZE_UXGA);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, FHD, FRAMESIZE_FHD);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, P_HD, FRAMESIZE_P_HD);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, P_3MP, FRAMESIZE_P_3MP);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, QXGA, FRAMESIZE_QXGA);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, QHD, FRAMESIZE_QHD);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, WQXGA, FRAMESIZE_WQXGA);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, P_FHD, FRAMESIZE_P_FHD);
MAKE_ENUM_VALUE(espcamera_frame_size_type, frame_size, QSXGA, FRAMESIZE_QSXGA);
MAKE_ENUM_MAP(espcamera_frame_size) {
MAKE_ENUM_MAP_ENTRY(frame_size, R96X96),
MAKE_ENUM_MAP_ENTRY(frame_size, R240X240),
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),
};
STATIC MP_DEFINE_CONST_DICT(esp32_camera_frame_size_locals_dict, esp32_camera_frame_size_locals_table);
MAKE_PRINTER(esp32_camera, esp32_camera_frame_size);
MAKE_ENUM_TYPE(esp32_camera, FrameSize, esp32_camera_frame_size);
STATIC MP_DEFINE_CONST_DICT(espcamera_frame_size_locals_dict, espcamera_frame_size_locals_table);
MAKE_PRINTER(espcamera, espcamera_frame_size);
MAKE_ENUM_TYPE(espcamera, FrameSize, espcamera_frame_size);
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:
@ -242,15 +243,15 @@ framesize_t validate_frame_size(mp_obj_t obj, qstr arg_name) {
//| GAIN_128X: GainCeiling
//|
MAKE_ENUM_VALUE(esp32_camera_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(esp32_camera_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(esp32_camera_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(esp32_camera_gain_ceiling_type, gain_ceiling, GAIN_128X, GAINCEILING_128X);
MAKE_ENUM_VALUE(espcamera_gain_ceiling_type, gain_ceiling, GAIN_2X, GAINCEILING_2X);
MAKE_ENUM_VALUE(espcamera_gain_ceiling_type, gain_ceiling, GAIN_4X, GAINCEILING_4X);
MAKE_ENUM_VALUE(espcamera_gain_ceiling_type, gain_ceiling, GAIN_8X, GAINCEILING_8X);
MAKE_ENUM_VALUE(espcamera_gain_ceiling_type, gain_ceiling, GAIN_16X, GAINCEILING_16X);
MAKE_ENUM_VALUE(espcamera_gain_ceiling_type, gain_ceiling, GAIN_32X, GAINCEILING_32X);
MAKE_ENUM_VALUE(espcamera_gain_ceiling_type, gain_ceiling, GAIN_64X, GAINCEILING_64X);
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_4X),
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)
};
STATIC MP_DEFINE_CONST_DICT(esp32_camera_gain_ceiling_locals_dict, esp32_camera_gain_ceiling_locals_table);
MAKE_PRINTER(esp32_camera, esp32_camera_gain_ceiling);
MAKE_ENUM_TYPE(esp32_camera, GainCeiling, esp32_camera_gain_ceiling);
STATIC MP_DEFINE_CONST_DICT(espcamera_gain_ceiling_locals_dict, espcamera_gain_ceiling_locals_table);
MAKE_PRINTER(espcamera, espcamera_gain_ceiling);
MAKE_ENUM_TYPE(espcamera, GainCeiling, espcamera_gain_ceiling);
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[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_esp32_camera) },
{ MP_ROM_QSTR(MP_QSTR_Camera), MP_ROM_PTR(&esp32_camera_camera_type), },
{ MP_ROM_QSTR(MP_QSTR_FrameSize), &esp32_camera_frame_size_type },
{ MP_ROM_QSTR(MP_QSTR_GainCeiling), &esp32_camera_gain_ceiling_type },
{ MP_ROM_QSTR(MP_QSTR_GrabMode), &esp32_camera_grab_mode_type },
{ MP_ROM_QSTR(MP_QSTR_PixelFormat), &esp32_camera_pixel_format_type },
STATIC const mp_rom_map_elem_t espcamera_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_espcamera) },
{ MP_ROM_QSTR(MP_QSTR_Camera), MP_ROM_PTR(&espcamera_camera_type), },
{ MP_ROM_QSTR(MP_QSTR_FrameSize), &espcamera_frame_size_type },
{ MP_ROM_QSTR(MP_QSTR_GainCeiling), &espcamera_gain_ceiling_type },
{ MP_ROM_QSTR(MP_QSTR_GrabMode), &espcamera_grab_mode_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 },
.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"
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 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 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 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 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
//| that could be implemented by other frameworks. It should only include ESP-IDF specific
//| things."""
//|
//| def heap_caps_get_total_size() -> int:
//| """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`
//|
//| 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) {
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 "bindings/espulp/ULP.h"
#include "py/enum.h"
#include "py/runtime.h"
#include "py/objproperty.h"
//| class ULP:
//| def __init__(self):
//| def __init__(self, arch: Architecture = Architecture.FSM):
//| """The ultra-low-power processor.
//|
//| 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) {
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);
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);
}
@ -124,7 +140,6 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_KW(espulp_ulp_run_obj, 2, espulp_ulp_run);
//| def halt(self) -> None:
//| """Halts the running program and releases the pins given in `run()`."""
//| ...
//|
STATIC mp_obj_t espulp_ulp_halt(mp_obj_t self_in) {
espulp_ulp_obj_t *self = MP_OBJ_TO_PTR(self_in);
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);
//| 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[] = {
{ 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___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_halt), MP_ROM_PTR(&espulp_ulp_halt_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___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_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);

View File

@ -29,10 +29,9 @@
#include "py/obj.h"
#include "common-hal/espulp/ULP.h"
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);
void common_hal_espulp_ulp_deinit(espulp_ulp_obj_t *self);

View File

@ -27,25 +27,36 @@
#include "bindings/espulp/ULPAlarm.h"
#include "py/runtime.h"
#include "py/objproperty.h"
//| class ULPAlarm:
//| """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.
//|
//| 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()`.
//|
//| """
//| :param ULP ulp: The ulp instance"""
//| ...
//|
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) {
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) {
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);
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);
}

View File

@ -30,4 +30,4 @@
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 "bindings/espulp/__init__.h"
#include "bindings/espulp/ULP.h"
#include "bindings/espulp/ULPAlarm.h"
#include "bindings/espulp/Architecture.h"
#include "py/runtime.h"
@ -80,6 +82,7 @@ STATIC const mp_rom_map_elem_t espulp_module_globals_table[] = {
// module classes
{ 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_Architecture), MP_ROM_PTR(&espulp_architecture_type) },
};
STATIC MP_DEFINE_CONST_DICT(espulp_module_globals, espulp_module_globals_table);

View File

@ -1,5 +1,5 @@
USB_VID = 0x239A
USB_PID = 0x8128
USB_PID = 0x80EE
USB_PRODUCT = "Feather ESP32-S2 Reverse TFT"
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_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_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
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_FREQ = 80m
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_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_STEMMA_I2C), MP_ROM_PTR(&board_i2c_obj) },

View File

@ -11,4 +11,4 @@ CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB
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_FREQ = 40m
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_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0
CIRCUITPY_ESPCAMERA = 0
# Include these Python libraries in firmware.
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_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0
CIRCUITPY_ESPCAMERA = 0
# Include these Python libraries in firmware.
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_NeoPixel
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_NEOPIXEL (&pin_GPIO18)
#define MICROPY_HW_LED_STATUS (&pin_GPIO0)
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO16)
#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_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 8MB
CIRCUITPY_ESP32_CAMERA = 0
CIRCUITPY_ESPCAMERA = 0
# Include these Python libraries in firmware
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_FREQ = 40m
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_FREQ = 40m
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_FREQ = 40m
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