This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# qteye_picodvi.py - qteye.py but on a PicoDVI RP2040 board | |
# 19 May 2024 - @todbot, on a DJDevon3 suggestion in Discord | |
# 23 Oct 2022 - @todbot / Tod Kurt | |
# Part of https://github.com/todbot/CircuitPython_GC9A01_demos | |
# also see: https://twitter.com/todbot/status/1584309133263532033 | |
# and: https://twitter.com/todbot/status/1584309133263532033 | |
# Copy this file as "code.py" and the two eyeball BMP files to CIRCUITPY drive | |
# To install needed libraries: "circup install adafruit_imageload" | |
# | |
# Video demo below as a comment to this gist |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// esp32s3_i2s_simple_sine.ino | |
// demonstrate I2S on ESP32S3 | |
// origally from guiguig on Discord: https://discord.com/channels/327254708534116352/422210663507558401/1240067408660795424 | |
// video demo below in comment | |
#include <I2S.h> | |
#define BCK 16 // feather esp32s3 A2 | |
#define DOUT 17 // feather esp32s3 A1 | |
#define LCK 18 // feather esp32s3 A0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# raise_vs_return_code.py -- Attempt to estimate cost of exception raise vs return in CircuitPython | |
# 14 May 2024 - @todbot | |
import time | |
import random | |
import gc | |
num_runs = 50000 | |
# functions that do a small amount of something but really nothing |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# demonstrate odd usb.core.USBError with max3421e | |
# requires "adafruit_usb_host_midi_todbot" below, which adds timeout on read()s | |
# 12 May 2024 - @todbot | |
import displayio | |
displayio.release_displays() | |
import time | |
import board | |
import usb | |
import max3421e |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Demonstrate trying to use the USBError of usb.core.Device.read() as a | |
# "no bytes available" indicator. Unfortuately, it's VERY slow. | |
# Or more likely, it's missing messages mid-parse. | |
# 8 May 2024 - @todbot | |
# | |
# note, this requires two special libraries: | |
# - adafruit_usb_host_midi_hostreadhack | |
# - winterbloom_smolmidi_hostreadhack | |
import time |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# waiting_for_midi_code.py -- I'm always blocking for midi | |
# 6 May 2024 - @todbot | |
# works on PicoDVI RP2040 Feather / DVI Cowbell / etc. | |
import time, math, random | |
import board | |
import displayio | |
import bitmaptools | |
from adafruit_display_text import bitmap_label as label | |
num_colors = 16 # how many colors for our bitmap, can't be over 16 for DVI |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# demonstrate blocking of usb.core.Device.read() | |
# 4 May 2024 - @todbot and @jedgarpark | |
""" | |
This sketch demonstrates how `device.read()` blocks infinitely, which is different from established behavior. | |
The normal semantics of `device.read()` when using either `busio.UART` or `usb_midi.PortIn` | |
is that the read() does not noticably block if a `timeout` is given. | |
(Explicitly in the constructor of `busio.UART` and apparently implicitly in just how `usb_midi` works) | |
But for the `usb.core.Device` that is returned (as demo'd below), the `device.read()` blocks forever. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# SPDX-FileCopyrightText: Copyright (c) 2023 Scott Shawcroft for Adafruit Industries | |
# SPDX-FileCopyrightText: Copyright (c) 2024 Tod Kurt | |
# | |
# SPDX-License-Identifier: Unlicense | |
# | |
# Forward MIDI from device on USB Host port to computer via USB MIDI | |
# and 5-pin serial MIDI via MIDI Feather Wing or similar MIDI output. | |
# Suppots hot-plug of the device on the USB Host port. | |
# | |
# adapted from https://github.com/adafruit/Adafruit_CircuitPython_USB_Host_MIDI/blob/main/examples/usb_host_midi_simpletest.py |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# quick-n-dirty MIDI controller with Circuit Playground Express | |
# 30 Apr 2024 - @todbot / Tod Kurt | |
# Works on Circuit Playground Express in CircuitPython 9, | |
# but will also work on also any board with touchio, like Trinket M0 or QTPy M0 | |
# Uses the minimal number of libraries to save RAM on the tiny M0 in the CPX | |
# (e.g. cannot load `adafruit_circuitpython`, `adafruit_midi`, and `adafruit_debouncer` on CPX) | |
import board | |
import touchio | |
import usb_midi |
NewerOlder