CircuitPython is a version of the Python language that runs on a number of popular microcontroller boards.
If you are new to CircuitPython, see Welcome to CircuitPython!
Adafruit suggests using the Mu editor to edit your code and have an interactive REPL in CircuitPython. You can learn about Mu and its installation in this tutorial.
This project does not require any libraries from the CircuitPython library bundle as the libraries used are built-in.
The audioio library has two useful characteristics/features:
- sends data to the DAC(s) at a constant, controllable rate,
- uses direct memory access (DMA) hardware feature of the SAMD system on a chip (SoC) which transfers data to the DAC(s), leaving the CPU free to do other things.
The DMA feature allows the CircuitPython program to run at the same time as transferring data (prepared in advance) to the DAC(s).
This code has been tested on CircuitPython 4.1.0 Release Candidate 0. It should run on versions of CircuitPython higher than this when they are available.