Closed rgov closed 9 months ago
MicroPython or Adafruit's fork CircuitPython?
MicroPython has first-party support for the Pico.
CircuitPython has third-party support for the Pico.
CircuitPython documents differences. Some of the key ones for this project are:
Floats (aka decimals) are enabled for all builds. (Ed. note: This means floating point operations are much slower on MicroPython. https://github.com/micropython/micropython/issues/6813) Concurrency within Python is not well supported. Interrupts (Ed: https://github.com/adafruit/circuitpython/issues/4542) and threading (Ed: https://github.com/adafruit/circuitpython/issues/4106) are disabled. async/await keywords are available on some boards for cooperative multitasking. Some concurrency is achieved with native modules for tasks that require it such as audio file playback. Unified hardware APIs.
Floats (aka decimals) are enabled for all builds. (Ed. note: This means floating point operations are much slower on MicroPython. https://github.com/micropython/micropython/issues/6813)
Concurrency within Python is not well supported. Interrupts (Ed: https://github.com/adafruit/circuitpython/issues/4542) and threading (Ed: https://github.com/adafruit/circuitpython/issues/4106) are disabled. async/await keywords are available on some boards for cooperative multitasking. Some concurrency is achieved with native modules for tasks that require it such as audio file playback.
Unified hardware APIs.
PIO programming is supported in both MicroPython (here) and CircuitPython (here).
For timing-critical code (i.e., GPS and RTC PPS) we may need to implement a C extension. (#12)
CircuitPython provides modules out of the box for virtually all of the components on our board, including trickier ones such as the Wi-Fi MCU interface (#8).
I plan to go forward with CircuitPython.
MicroPython or Adafruit's fork CircuitPython?
MicroPython has first-party support for the Pico.
CircuitPython has third-party support for the Pico.
CircuitPython documents differences. Some of the key ones for this project are:
PIO programming is supported in both MicroPython (here) and CircuitPython (here).
For timing-critical code (i.e., GPS and RTC PPS) we may need to implement a C extension. (#12)