Erschließung von I2S-Support und FFT für MicroPython auf Pycom/ESP32

Ging viel einfacher als gedacht,es war nur ein } verschollen.
erstmal für WiPy ohne Ulab Modul.

WiPy-1.20.2.rc10.tar.gz (1,1 MB)

Muß jetzt erstmal nachlesen wie ich das Modul einbaue und Compile dann nochmal.
EDIT:
WiPy-1.20.2.rc10_ulab.tar.gz (1,1 MB)
FiPy-1.20.2.rc10_ulab.tar.gz (1,2 MB)

user@Werkstatt:~/pycom-micropython/esp32$ make BOARD=FIPY USER_C_MODULES=/home/user/micropython-ulab CFLAGS_EXTRA=-ulab_ENABLED=1 all
Use make SECURE=on [optionally SECURE_KEY ?= secure_boot_signing_key.pem] to enable Secure Boot and Flash Encryption mechanisms.
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
Including User C Module from /home/user/micropython-ulab/code
BASE Variant
IDF Version OK! c61fe64
mkdir -p build/FIPY/release/bootloader/
CC bootloader/bootloader.c
CC bootloader/bootmgr.c
CC bootloader/mperror.c
CC bootloader/gpio.c
AR build/FIPY/release/bootloader/bootloader.a
LINK xtensa-esp32-elf-gcc *** -nostdlib -Wl,-Map=build/FIPY/release/bootloader/bootloader.map -Wl,--no-check-sections -u call_user_start_cpu0 -Wl,-static -Wl,--undefined=uxTopUsedPriority -Wl,--gc-sections -T esp32.bootloader.ld -T esp32.rom.ld -T esp32.peripherals.ld -T esp32.bootloader.rom.ld -T esp32.rom.spiram_incompatible_fns.ld *** -Wl,--start-group -Lbootloader/lib -Lbootloader -Lbuild/FIPY/release/bootloader -L/home/user/pycom-esp-idf/components/esp32/ld -L/home/user/pycom-esp-idf/components/esp32/lib -llog -lcore -lbootloader_support -lspi_flash -lsoc -lmicro-ecc -lgcc -lstdc++ -lgcov -lefuse build/FIPY/release/bootloader/bootloader.a -Wl,--end-group -Wl,-EL -o build/FIPY/release/bootloader/bootloader.elf
   text    data     bss     dec     hex filename
  19822    2148      32   22002    55f2 build/FIPY/release/bootloader/bootloader.elf
IMAGE build/FIPY/release/bootloader/bootloader.bin
esptool.py v2.8
mkdir -p build/FIPY/release/genhdr
Create build/FIPY/release/genhdr/pins.h
GEN build/FIPY/release/genhdr/mpversion.h
GEN build/FIPY/release/genhdr/moduledefs.h
GEN build/FIPY/release/genhdr/qstr.i.last
GEN build/FIPY/release/genhdr/qstr.split
GEN build/FIPY/release/genhdr/qstrdefs.collected.h
QSTR updated
GEN build/FIPY/release/genhdr/qstrdefs.generated.h
mkdir -p build/FIPY/release/build/FIPY/release/
mkdir -p build/FIPY/release/can/
mkdir -p build/FIPY/release/code/
mkdir -p build/FIPY/release/code/approx/
mkdir -p build/FIPY/release/code/compare/
mkdir -p build/FIPY/release/code/fft/
mkdir -p build/FIPY/release/code/filter/
mkdir -p build/FIPY/release/code/linalg/
mkdir -p build/FIPY/release/code/numerical/
mkdir -p build/FIPY/release/code/poly/
mkdir -p build/FIPY/release/code/user/
mkdir -p build/FIPY/release/code/vector/
mkdir -p build/FIPY/release/drivers/sx127x/sx1272/
mkdir -p build/FIPY/release/extmod/
mkdir -p build/FIPY/release/fatfs/src/drivers/
mkdir -p build/FIPY/release/ftp/
mkdir -p build/FIPY/release/hal/
mkdir -p build/FIPY/release/lib/embed/
mkdir -p build/FIPY/release/lib/libm/
mkdir -p build/FIPY/release/lib/lora/mac/
mkdir -p build/FIPY/release/lib/lora/mac/region/
mkdir -p build/FIPY/release/lib/lora/system/
mkdir -p build/FIPY/release/lib/lora/system/crypto/
mkdir -p build/FIPY/release/lib/mp-readline/
mkdir -p build/FIPY/release/lib/netutils/
mkdir -p build/FIPY/release/lib/oofatfs/
mkdir -p build/FIPY/release/lib/timeutils/
mkdir -p build/FIPY/release/lib/utils/
mkdir -p build/FIPY/release/littlefs/
mkdir -p build/FIPY/release/lora/
mkdir -p build/FIPY/release/lte/
mkdir -p build/FIPY/release/mods/
mkdir -p build/FIPY/release/ports/stm32/
mkdir -p build/FIPY/release/py/
mkdir -p build/FIPY/release/telnet/
mkdir -p build/FIPY/release/util/
CC ../py/mpstate.c
CC ../py/nlr.c
CC ../py/nlrx86.c
CC ../py/nlrx64.c
CC ../py/nlrthumb.c
CC ../py/nlrxtensa.c
CC ../py/nlrsetjmp.c
CC ../py/malloc.c
CC ../py/gc.c
CC ../py/pystack.c
CC ../py/qstr.c
CC ../py/vstr.c
CC ../py/mpprint.c
CC ../py/unicode.c
CC ../py/mpz.c
CC ../py/reader.c
CC ../py/lexer.c
CC ../py/parse.c
CC ../py/scope.c
CC ../py/compile.c
CC ../py/emitcommon.c
CC ../py/emitbc.c
CC ../py/asmbase.c
CC ../py/asmx64.c
CC ../py/emitnx64.c
CC ../py/asmx86.c
CC ../py/emitnx86.c
CC ../py/asmthumb.c
CC ../py/emitnthumb.c
CC ../py/emitinlinethumb.c
CC ../py/asmarm.c
CC ../py/emitnarm.c
CC ../py/asmxtensa.c
CC ../py/emitnxtensa.c
CC ../py/emitinlinextensa.c
CC ../py/formatfloat.c
CC ../py/parsenumbase.c
CC ../py/parsenum.c
CC ../py/emitglue.c
CC ../py/persistentcode.c
CC ../py/runtime.c
CC ../py/runtime_utils.c
CC ../py/scheduler.c
CC ../py/nativeglue.c
CC ../py/stackctrl.c
CC ../py/argcheck.c
CC ../py/warning.c
CC ../py/map.c
CC ../py/obj.c
CC ../py/objarray.c
CC ../py/objattrtuple.c
CC ../py/objbool.c
CC ../py/objboundmeth.c
CC ../py/objcell.c
CC ../py/objclosure.c
CC ../py/objcomplex.c
CC ../py/objdeque.c
CC ../py/objdict.c
CC ../py/objenumerate.c
CC ../py/objexcept.c
CC ../py/objfilter.c
CC ../py/objfloat.c
CC ../py/objfun.c
CC ../py/objgenerator.c
CC ../py/objgetitemiter.c
CC ../py/objint.c
CC ../py/objint_longlong.c
CC ../py/objint_mpz.c
CC ../py/objlist.c
CC ../py/objmap.c
CC ../py/objmodule.c
CC ../py/objobject.c
CC ../py/objpolyiter.c
CC ../py/objproperty.c
CC ../py/objnone.c
CC ../py/objnamedtuple.c
CC ../py/objrange.c
CC ../py/objreversed.c
CC ../py/objset.c
CC ../py/objsingleton.c
CC ../py/objslice.c
CC ../py/objstr.c
CC ../py/objstrunicode.c
CC ../py/objstringio.c
CC ../py/objtuple.c
CC ../py/objtype.c
CC ../py/objzip.c
CC ../py/opmethods.c
CC ../py/sequence.c
CC ../py/stream.c
CC ../py/binary.c
CC ../py/builtinimport.c
CC ../py/builtinevex.c
CC ../py/builtinhelp.c
CC ../py/modarray.c
CC ../py/modbuiltins.c
CC ../py/modcollections.c
CC ../py/modgc.c
CC ../py/modio.c
CC ../py/modmath.c
CC ../py/modcmath.c
CC ../py/modmicropython.c
CC ../py/modstruct.c
CC ../py/modsys.c
CC ../py/moduerrno.c
CC ../py/modthread.c
CC ../py/vm.c
CC ../py/bc.c
CC ../py/showbc.c
CC ../py/repl.c
CC ../py/smallint.c
CC ../py/frozenmod.c
CC ../extmod/moductypes.c
CC ../extmod/modujson.c
CC ../extmod/modure.c
CC ../extmod/moduzlib.c
CC ../extmod/moduheapq.c
CC ../extmod/modutimeq.c
CC ../extmod/moduhashlib.c
CC ../extmod/moducryptolib.c
CC ../extmod/modubinascii.c
CC ../extmod/virtpin.c
CC ../extmod/machine_mem.c
CC ../extmod/machine_pinbase.c
CC ../extmod/machine_signal.c
CC ../extmod/machine_pulse.c
CC ../extmod/machine_i2c.c
CC ../extmod/machine_spi.c
CC ../extmod/modussl_axtls.c
CC ../extmod/modussl_mbedtls.c
CC ../extmod/modurandom.c
CC ../extmod/moduselect.c
CC ../extmod/moduwebsocket.c
CC ../extmod/modwebrepl.c
CC ../extmod/modframebuf.c
CC ../extmod/modonewire.c
CC ../extmod/vfs.c
CC ../extmod/vfs_reader.c
CC ../extmod/vfs_posix.c
CC ../extmod/vfs_posix_file.c
CC ../extmod/vfs_fat.c
CC ../extmod/vfs_fat_diskio.c
CC ../extmod/vfs_fat_file.c
CC ../extmod/utime_mphal.c
CC ../extmod/uos_dupterm.c
CC ../lib/embed/abort_.c
CC ../lib/utils/printf.c
MPY frozen/Base/_boot.py
MPY frozen/Base/_main.py
MPY frozen/LTE/sqnsbrz.py
MPY frozen/LTE/sqnscodec.py
MPY frozen/LTE/sqnscrc.py
MPY frozen/LTE/sqnstp.py
MPY frozen/LTE/sqnsupgrade.py
GEN build/FIPY/release/frozen_mpy.c
CC build/FIPY/release/frozen_mpy.c
CC lora/utilities.c
CC lora/timer-board.c
CC lora/gpio-board.c
CC lora/spi-board.c
CC lora/sx1276-board.c
CC lora/sx1272-board.c
CC lora/board.c
CC ../lib/lora/mac/LoRaMac.c
CC ../lib/lora/mac/LoRaMacCrypto.c
CC ../lib/lora/mac/region/Region.c
CC ../lib/lora/mac/region/RegionAS923.c
CC ../lib/lora/mac/region/RegionAU915.c
CC ../lib/lora/mac/region/RegionCommon.c
CC ../lib/lora/mac/region/RegionEU868.c
CC ../lib/lora/mac/region/RegionUS915.c
CC ../lib/lora/mac/region/RegionCN470.c
CC ../lib/lora/mac/region/RegionEU433.c
CC ../lib/lora/mac/region/RegionIN865.c
CC ../lib/lora/system/delay.c
CC ../lib/lora/system/gpio.c
CC ../lib/lora/system/timer.c
CC ../lib/lora/system/crypto/aes.c
CC ../lib/lora/system/crypto/cmac.c
CC ../drivers/sx127x/sx1272/sx1272.c
CC mods/modlora.c
CC mods/modsigfox_api.c
CC lte/lteppp.c
CC mods/modlte.c
CC main.c
CC mptask.c
CC serverstask.c
CC fatfs_port.c
CC pycom_config.c
CC mpthreadport.c
CC hal/esp32_mphal.c
CC ../lib/libm/math.c
CC ../lib/libm/fmodf.c
CC ../lib/libm/roundf.c
CC ../lib/libm/ef_sqrt.c
CC ../lib/libm/kf_rem_pio2.c
CC ../lib/libm/kf_sin.c
CC ../lib/libm/kf_cos.c
CC ../lib/libm/kf_tan.c
CC ../lib/libm/ef_rem_pio2.c
CC ../lib/libm/sf_sin.c
CC ../lib/libm/sf_cos.c
CC ../lib/libm/sf_tan.c
CC ../lib/libm/sf_frexp.c
CC ../lib/libm/sf_modf.c
CC ../lib/libm/sf_ldexp.c
CC ../lib/libm/asinfacosf.c
CC ../lib/libm/atanf.c
CC ../lib/libm/atan2f.c
CC ../lib/mp-readline/readline.c
CC ../lib/netutils/netutils.c
CC ../lib/utils/pyexec.c
CC ../lib/utils/interrupt_char.c
CC ../lib/utils/sys_stdio_mphal.c
CC ../lib/oofatfs/ff.c
CC ../lib/oofatfs/ffunicode.c
CC ../lib/timeutils/timeutils.c
CC mods/machuart.c
CC mods/machpin.c
CC mods/machrtc.c
CC mods/pybflash.c
CC mods/machspi.c
CC mods/machine_i2c.c
CC mods/machine_i2s.c
CC mods/machpwm.c
CC mods/machcan.c
CC mods/modmachine.c
CC mods/moduos.c
CC mods/modusocket.c
CC mods/modnetwork.c
CC mods/network_ppp.c
CC mods/modwlan.c
CC mods/modutime.c
CC mods/modpycom.c
CC mods/moduqueue.c
CC mods/moduhashlib.c
CC mods/moducrypto.c
CC mods/machtimer.c
CC mods/machtimer_alarm.c
CC mods/machtimer_chrono.c
CC mods/analog.c
CC mods/pybadc.c
CC mods/pybdac.c
CC mods/pybsd.c
CC mods/modussl.c
CC mods/modbt.c
CC mods/modled.c
CC mods/machwdt.c
CC mods/machrmt.c
CC mods/lwipsocket.c
CC mods/machtouch.c
CC mods/modcoap.c
CC mods/modmdns.c
CC ../ports/stm32/bufhelper.c
CC /home/user/micropython-ulab/code/ndarray.c
CC /home/user/micropython-ulab/code/ulab_create.c
CC /home/user/micropython-ulab/code/linalg/linalg.c
CC /home/user/micropython-ulab/code/vector/vectorise.c
CC /home/user/micropython-ulab/code/poly/poly.c
CC /home/user/micropython-ulab/code/fft/fft.c
CC /home/user/micropython-ulab/code/numerical/numerical.c
CC /home/user/micropython-ulab/code/filter/filter.c
CC /home/user/micropython-ulab/code/compare/compare.c
CC /home/user/micropython-ulab/code/approx/approx.c
CC /home/user/micropython-ulab/code/user/user.c
CC /home/user/micropython-ulab/code/ulab.c
CC fatfs/src/drivers/sflash_diskio.c
CC fatfs/src/drivers/sd_diskio.c
CC littlefs/lfs.c
CC littlefs/lfs_util.c
CC littlefs/vfs_littlefs.c
CC littlefs/vfs_littlefs_file.c
CC littlefs/sflash_diskio_littlefs.c
CC util/antenna.c
CC util/gccollect.c
CC util/help.c
CC util/mperror.c
CC util/random.c
CC util/mpexception.c
CC util/fifo.c
CC util/socketfifo.c
CC util/mpirq.c
CC util/mpsleep.c
CC util/timeutils.c
CC util/esp32chipinfo.c
CC util/pycom_general_util.c
CC util/str_utils.c
CC telnet/telnet.c
CC ftp/ftp.c
CC ftp/updater.c
CC can/CAN.c
CC build/FIPY/release/pins.c
AR build/FIPY/release/application.a
CPP build/FIPY/release/esp32_out.ld
LINK build/FIPY/release/application.elf
xtensa-esp32-elf-size build/FIPY/release/application.elf
   text    data     bss     dec     hex filename
1557572  329888   68844 1956304  1dd9d0 build/FIPY/release/application.elf
Building partitions from lib/partitions_4MB.csv...
Building partitions from lib/partitions_8MB.csv...
IMAGE build/FIPY/release/fipy.bin
esptool.py v2.8
user@Werkstatt:~/pycom-micropython/esp32$ make BOARD=FIPY release
Use make SECURE=on [optionally SECURE_KEY ?= secure_boot_signing_key.pem] to enable Secure Boot and Flash Encryption mechanisms.
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
BASE Variant
IDF Version OK! c61fe64
checking size of image
1909664 bytes => Size OK
Creating release package in /home/user/pycom-micropython/esp32/build
Release package FiPy-1.20.2.rc10.tar.gz created successfully.
user@Werkstatt:~/pycom-micropython/esp32$ 

bin jetzt nur noch nicht sicher ob pycom pybytes drin ist oder wie bei @Andreas Firmware raus ist.

@clemens fehlt noch ein freiwilliger Tester und ein Name :wink:

Anleitung und Beispielcodes fürs Ulab Modul gibt es hier:
https://micropython-ulab.readthedocs.io/en/latest/
das I2S mit Pycom grundsätzlich funktioniert hat Clemens ja hier in Thread ja schon gezeigt.

Upload klappt auch.
image

und der Terkin-firmware läst sich auch aufspielen weiter schaffe ich es aktuell nicht zu testen. Verbindungen und Sensoren sind nicht überprüft.

In der Repl läßt sich ulab und I2S auch schon mal importieren.

2 Likes