Merge pull request #2065 from adafruit/spdx-43
Added SPDX to 30 more files - spdx-43
This commit is contained in:
commit
a092370c64
30 changed files with 212 additions and 92 deletions
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Liz Clark for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import time
|
||||
import board
|
||||
from digitalio import DigitalInOut, Direction
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Liz Clark for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import time
|
||||
import board
|
||||
from digitalio import DigitalInOut, Direction, Pull
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Liz Clark for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
'''Adapted from the example code DM_Mic_Sound_Level_Plot.py
|
||||
https://github.com/adafruit/Adafruit_Learning_System_Guides/
|
||||
blob/master/PDM_Microphone/PDM_Mic_Sound_Level_Plot.py '''
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Liz Clark for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
'''Adapted from the Adafruit_CircuitPython_ESP32SPI
|
||||
library example esp32spi_simpletest.py:
|
||||
https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: 2017 John Edgar Park for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
/*********************************************************************
|
||||
AtariFruit 2600 Joystick
|
||||
by John Park for Adafruit
|
||||
|
|
@ -12,10 +16,10 @@ by Allen C. Huffman (alsplace@pobox.com)
|
|||
http://subethasoftware.com/2013/01/04/teensy-2-0-icade-source-code/
|
||||
|
||||
*********************************************************************/
|
||||
#include <bluefruit.h>
|
||||
#include <bluefruit.h>
|
||||
|
||||
BLEDis bledis;
|
||||
BLEHidAdafruit blehid;
|
||||
BLEDis bledis;
|
||||
BLEHidAdafruit blehid;
|
||||
|
||||
#define VERSION "0.1"
|
||||
#define LED_ON
|
||||
|
|
@ -73,15 +77,15 @@ See: http://old.pinouts.ru/Inputs/JoystickAtari2600_pinout.shtml
|
|||
// #define DI_PIN_START 1 // First I/O pin.
|
||||
// #define DI_PIN_END 20 // Last I/O pin.
|
||||
|
||||
byte myPins[DI_PIN_COUNT] = {UP_PIN, DOWN_PIN, LEFT_PIN, RIGHT_PIN, BTN1_PIN,
|
||||
byte myPins[DI_PIN_COUNT] = {UP_PIN, DOWN_PIN, LEFT_PIN, RIGHT_PIN, BTN1_PIN,
|
||||
BTN2_PIN, BTN3_PIN, BTN4_PIN,
|
||||
BTN5_PIN, BTN6_PIN, BTN7_PIN, BTN8_PIN};
|
||||
|
||||
char iCadeKeymap[][DI_PIN_COUNT] = {UP_KEYS, DOWN_KEYS, LEFT_KEYS, RIGHT_KEYS,
|
||||
char iCadeKeymap[][DI_PIN_COUNT] = {UP_KEYS, DOWN_KEYS, LEFT_KEYS, RIGHT_KEYS,
|
||||
BTN1_KEYS, BTN2_KEYS, BTN3_KEYS, BTN4_KEYS,
|
||||
BTN5_KEYS, BTN6_KEYS, BTN7_KEYS, BTN8_KEYS};
|
||||
|
||||
char iCadeDesc[][DI_PIN_COUNT] = {"Up", "Down", "Left", "Right", "Btn1",
|
||||
char iCadeDesc[][DI_PIN_COUNT] = {"Up", "Down", "Left", "Right", "Btn1",
|
||||
"Btn2", "Btn3", "Btn4",
|
||||
"Btn5", "Btn6", "Btn7", "Btn8"};
|
||||
|
||||
|
|
@ -114,36 +118,36 @@ void setup()
|
|||
|
||||
// Initialize the serial port.
|
||||
Serial.begin(115200);
|
||||
Serial.println();
|
||||
Serial.println("Go to your phone's Bluetooth settings to pair your device");
|
||||
Serial.println("then open an application that accepts keyboard input");
|
||||
Bluefruit.begin();
|
||||
// Set max power. Accepted values are: -40, -30, -20, -16, -12, -8, -4, 0, 4
|
||||
Bluefruit.setTxPower(4);
|
||||
Bluefruit.setName("AtariFruitJoystick");
|
||||
|
||||
// Configure and Start Device Information Service
|
||||
bledis.setManufacturer("Adafruit Industries");
|
||||
bledis.setModel("Atari Fruit Joystick 52");
|
||||
bledis.begin();
|
||||
|
||||
/* Start BLE HID
|
||||
* Note: Apple requires BLE device must have min connection interval >= 20m
|
||||
* ( The smaller the connection interval the faster we could send data).
|
||||
* However for HID and MIDI device, Apple could accept min connection interval
|
||||
* up to 11.25 ms. Therefore BLEHidAdafruit::begin() will try to set the min and max
|
||||
* connection interval to 11.25 ms and 15 ms respectively for best performance.
|
||||
*/
|
||||
blehid.begin();
|
||||
|
||||
/* Set connection interval (min, max) to your perferred value.
|
||||
* Note: It is already set by BLEHidAdafruit::begin() to 11.25ms - 15ms
|
||||
* min = 9*1.25=11.25 ms, max = 12*1.25= 15 ms
|
||||
*/
|
||||
/* Bluefruit.setConnInterval(9, 12); */
|
||||
|
||||
// Set up and start advertising
|
||||
startAdv();
|
||||
Serial.println();
|
||||
Serial.println("Go to your phone's Bluetooth settings to pair your device");
|
||||
Serial.println("then open an application that accepts keyboard input");
|
||||
Bluefruit.begin();
|
||||
// Set max power. Accepted values are: -40, -30, -20, -16, -12, -8, -4, 0, 4
|
||||
Bluefruit.setTxPower(4);
|
||||
Bluefruit.setName("AtariFruitJoystick");
|
||||
|
||||
// Configure and Start Device Information Service
|
||||
bledis.setManufacturer("Adafruit Industries");
|
||||
bledis.setModel("Atari Fruit Joystick 52");
|
||||
bledis.begin();
|
||||
|
||||
/* Start BLE HID
|
||||
* Note: Apple requires BLE device must have min connection interval >= 20m
|
||||
* ( The smaller the connection interval the faster we could send data).
|
||||
* However for HID and MIDI device, Apple could accept min connection interval
|
||||
* up to 11.25 ms. Therefore BLEHidAdafruit::begin() will try to set the min and max
|
||||
* connection interval to 11.25 ms and 15 ms respectively for best performance.
|
||||
*/
|
||||
blehid.begin();
|
||||
|
||||
/* Set connection interval (min, max) to your perferred value.
|
||||
* Note: It is already set by BLEHidAdafruit::begin() to 11.25ms - 15ms
|
||||
* min = 9*1.25=11.25 ms, max = 12*1.25= 15 ms
|
||||
*/
|
||||
/* Bluefruit.setConnInterval(9, 12); */
|
||||
|
||||
// Set up and start advertising
|
||||
startAdv();
|
||||
|
||||
// Docs say this isn't necessary for Uno.
|
||||
//while(!Serial) { }
|
||||
|
|
@ -184,37 +188,37 @@ void setup()
|
|||
|
||||
Serial.println("Ready.");
|
||||
|
||||
}
|
||||
|
||||
|
||||
void startAdv(void)
|
||||
{
|
||||
// Advertising packet
|
||||
Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
|
||||
Bluefruit.Advertising.addTxPower();
|
||||
Bluefruit.Advertising.addAppearance(BLE_APPEARANCE_HID_KEYBOARD);
|
||||
|
||||
// Include BLE HID service
|
||||
Bluefruit.Advertising.addService(blehid);
|
||||
|
||||
// There is enough room for the dev name in the advertising packet
|
||||
Bluefruit.Advertising.addName();
|
||||
|
||||
/* Start Advertising
|
||||
* - Enable auto advertising if disconnected
|
||||
* - Interval: fast mode = 20 ms, slow mode = 152.5 ms
|
||||
* - Timeout for fast mode is 30 seconds
|
||||
* - Start(timeout) with timeout = 0 will advertise forever (until connected)
|
||||
*
|
||||
* For recommended advertising interval
|
||||
* https://developer.apple.com/library/content/qa/qa1931/_index.html
|
||||
*/
|
||||
Bluefruit.Advertising.restartOnDisconnect(true);
|
||||
Bluefruit.Advertising.setInterval(32, 244); // in unit of 0.625 ms
|
||||
Bluefruit.Advertising.setFastTimeout(30); // number of seconds in fast mode
|
||||
Bluefruit.Advertising.start(0); // 0 = Don't stop advertising after n seconds
|
||||
}
|
||||
|
||||
|
||||
|
||||
void startAdv(void)
|
||||
{
|
||||
// Advertising packet
|
||||
Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
|
||||
Bluefruit.Advertising.addTxPower();
|
||||
Bluefruit.Advertising.addAppearance(BLE_APPEARANCE_HID_KEYBOARD);
|
||||
|
||||
// Include BLE HID service
|
||||
Bluefruit.Advertising.addService(blehid);
|
||||
|
||||
// There is enough room for the dev name in the advertising packet
|
||||
Bluefruit.Advertising.addName();
|
||||
|
||||
/* Start Advertising
|
||||
* - Enable auto advertising if disconnected
|
||||
* - Interval: fast mode = 20 ms, slow mode = 152.5 ms
|
||||
* - Timeout for fast mode is 30 seconds
|
||||
* - Start(timeout) with timeout = 0 will advertise forever (until connected)
|
||||
*
|
||||
* For recommended advertising interval
|
||||
* https://developer.apple.com/library/content/qa/qa1931/_index.html
|
||||
*/
|
||||
Bluefruit.Advertising.restartOnDisconnect(true);
|
||||
Bluefruit.Advertising.setInterval(32, 244); // in unit of 0.625 ms
|
||||
Bluefruit.Advertising.setFastTimeout(30); // number of seconds in fast mode
|
||||
Bluefruit.Advertising.start(0); // 0 = Don't stop advertising after n seconds
|
||||
}
|
||||
|
||||
|
||||
void loop()
|
||||
{
|
||||
|
|
@ -263,7 +267,7 @@ void loop()
|
|||
|
||||
// In pin status has changed from our last toggle...
|
||||
if (status != digitalStatus[thisPin])
|
||||
{
|
||||
{
|
||||
blehid.keyRelease();
|
||||
// Remember when it changed, starting debounce mode.
|
||||
// If not currently in debounce mode,
|
||||
|
|
@ -288,7 +292,7 @@ void loop()
|
|||
Serial.print(iCadeDesc[thisPin]);
|
||||
Serial.print(" pressed (sending ");
|
||||
Serial.print(iCadeKeymap[thisPin][0]);
|
||||
Serial.println(" to iCade).");
|
||||
Serial.println(" to iCade).");
|
||||
blehid.keyPress(iCadeKeymap[thisPin][0]);
|
||||
//Keyboard.print(iCadeKeymap[thisPin][0]);
|
||||
//digitalCounter[thisPin]++;
|
||||
|
|
@ -301,7 +305,7 @@ void loop()
|
|||
Serial.print(iCadeDesc[thisPin]);
|
||||
Serial.print(" released (sending ");
|
||||
Serial.print(iCadeKeymap[thisPin][1]);
|
||||
Serial.println(" to iCade).");
|
||||
Serial.println(" to iCade).");
|
||||
blehid.keyPress(iCadeKeymap[thisPin][1]);
|
||||
//Keyboard.print(iCadeKeymap[thisPin][1]);
|
||||
if (pinsOn>0) pinsOn--;
|
||||
|
|
@ -320,9 +324,9 @@ void loop()
|
|||
// If we were debouncing, we are no longer debouncing.
|
||||
digitalDebounceTime[thisPin] = 0;
|
||||
}
|
||||
} // End of (int thisPin=0; thisPin < DI_PIN_COUNT; thisPin++ )
|
||||
|
||||
// Request CPU to enter low-power mode until an event/interrupt occurs
|
||||
} // End of (int thisPin=0; thisPin < DI_PIN_COUNT; thisPin++ )
|
||||
|
||||
// Request CPU to enter low-power mode until an event/interrupt occurs
|
||||
waitForEvent();
|
||||
}
|
||||
|
||||
|
|
@ -373,24 +377,24 @@ void showDigitalInputStatus()
|
|||
Serial.println("");
|
||||
}
|
||||
|
||||
/**
|
||||
* RTOS Idle callback is automatically invoked by FreeRTOS
|
||||
* when there are no active threads. E.g when loop() calls delay() and
|
||||
* there is no bluetooth or hw event. This is the ideal place to handle
|
||||
* background data.
|
||||
*
|
||||
* NOTE: FreeRTOS is configured as tickless idle mode. After this callback
|
||||
* is executed, if there is time, freeRTOS kernel will go into low power mode.
|
||||
* Therefore waitForEvent() should not be called in this callback.
|
||||
* http://www.freertos.org/low-power-tickless-rtos.html
|
||||
*
|
||||
* WARNING: This function MUST NOT call any blocking FreeRTOS API
|
||||
* such as delay(), xSemaphoreTake() etc ... for more information
|
||||
* http://www.freertos.org/a00016.html
|
||||
*/
|
||||
void rtos_idle_callback(void)
|
||||
{
|
||||
// Don't call any other FreeRTOS blocking API()
|
||||
// Perform background task(s) here
|
||||
/**
|
||||
* RTOS Idle callback is automatically invoked by FreeRTOS
|
||||
* when there are no active threads. E.g when loop() calls delay() and
|
||||
* there is no bluetooth or hw event. This is the ideal place to handle
|
||||
* background data.
|
||||
*
|
||||
* NOTE: FreeRTOS is configured as tickless idle mode. After this callback
|
||||
* is executed, if there is time, freeRTOS kernel will go into low power mode.
|
||||
* Therefore waitForEvent() should not be called in this callback.
|
||||
* http://www.freertos.org/low-power-tickless-rtos.html
|
||||
*
|
||||
* WARNING: This function MUST NOT call any blocking FreeRTOS API
|
||||
* such as delay(), xSemaphoreTake() etc ... for more information
|
||||
* http://www.freertos.org/a00016.html
|
||||
*/
|
||||
void rtos_idle_callback(void)
|
||||
{
|
||||
// Don't call any other FreeRTOS blocking API()
|
||||
// Perform background task(s) here
|
||||
}
|
||||
// End of file.
|
||||
// End of file.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2019 Anne Barela for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# Talking Cane
|
||||
# for Adafruit Circuit Playground Express with CircuitPython
|
||||
from adafruit_circuitplayground.express import cpx
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2019 Dave Astels for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
"""
|
||||
Continuously scroll randomly generated After Dark style toasters.
|
||||
Designed for an ItsyBitsy M4 Express and a 1.3" 240x240 TFT
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2018 Limor Fried for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import array
|
||||
import time
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2018 John Edgar Park for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# Gemma M0 version of TVBgone!
|
||||
import array
|
||||
import time
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2019 Dano Wall for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
"""
|
||||
Crickit Exhibit
|
||||
Project by Dano Wall and Isaac Wellish
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2019 Anne Barela for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import time
|
||||
import os
|
||||
import digitalio
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2020 John Park for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# Lucio 2020
|
||||
# Feather M4 + Propmaker + amps + lots of neopixels
|
||||
import board
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Emma Humphries for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Firefox web browser for Linux
|
||||
|
||||
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Phillip Burgess for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Adobe Illustrator for Mac
|
||||
|
||||
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Phillip Burgess for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Adobe Photoshop for Mac
|
||||
|
||||
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Phillip Burgess for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys: Evernote web application for Mac
|
||||
# Contributed by Redditor s010sdc
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Phillip Burgess for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Safari web browser for Mac
|
||||
|
||||
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Phillip Burgess for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Consumer Control codes (media keys)
|
||||
|
||||
# The syntax for Consumer Control macros is a little peculiar, in order to
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Emma Humphries for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Minecraft hotbar (inventory)
|
||||
|
||||
# Note: Must enable "full keyboad gameplay" for Prev/Next buttons to work.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Henry Gabryjelski for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Minecraft Messaging
|
||||
|
||||
# NOTE: There appears to be a line length limit. Exceeding that limit appears
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Henry Gabryjelski for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Minecraft Effects (Creative) for Bedrock Edition
|
||||
|
||||
# NOTE: There appears to be a line length limit. Exceeding that limit appears
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Henry Gabryjelski for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Minecraft Effects (Creative) for Bedrock Edition
|
||||
|
||||
# Note: Must enable "full keyboad gameplay" to equip armor automatically.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Phillip Burgess for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Mouse control
|
||||
|
||||
# The syntax for Mouse macros is highly peculiar, in order to maintain
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Emma Humphries for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Universal Numpad
|
||||
|
||||
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Phillip Burgess for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Tones
|
||||
|
||||
# The syntax for Tones in macros is highly peculiar, in order to maintain
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Phillip Burgess for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Adobe Illustrator for Windows
|
||||
|
||||
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Phillip Burgess for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Adobe Photoshop for Windows
|
||||
|
||||
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Phillip Burgess for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MACROPAD Hotkeys example: Microsoft Edge web browser for Windows
|
||||
|
||||
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2019 Erin St Blaine for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import time
|
||||
import board
|
||||
from rainbowio import colorwheel
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2017 John Edgar Park for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# Screaming Cauldron
|
||||
# for Adafruit Industries Learning Guide
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue