Compare commits

..

2008 commits

Author SHA1 Message Date
foamyguy
62453248a6
Merge pull request #3114 from FoamyGuy/add_spell_jam
Add Spell Jam project
2025-08-28 15:41:37 -05:00
foamyguy
52c757ac36 remove lamda pylint exception 2025-08-28 15:28:43 -05:00
foamyguy
f5fec0e46b add Spell Jam project 2025-08-28 15:22:28 -05:00
foamyguy
009abaff09 revert accidental commit 2025-08-28 15:18:54 -05:00
foamyguy
f34bab8fd8 add icon and metadata for Fruit Jam OS 2025-08-28 15:01:55 -05:00
foamyguy
02dc51166e Adding Spell Jam 2025-08-28 14:54:34 -05:00
foamyguy
1edc2c70fd
Merge pull request #3113 from FoamyGuy/kittentts_version
update to KittenTTS 0.2 model.
2025-08-22 15:26:06 -05:00
foamyguy
9f9d11ebc9 update to KittenTTS 0.2 model. 2025-08-22 14:53:27 -05:00
foamyguy
4aef934371
Merge pull request #3111 from RetiredWizard/fruitjamminemouse
Add check to skip over keyboard
2025-08-20 15:05:51 -05:00
John Edgar Park
c810b4e2a1
Merge pull request #3112 from jedgarpark/bt-keeb-bridge
Bt keeb bridge
2025-08-20 07:48:04 -07:00
RetiredWizard
8feb030e57 remove CIRCUITPYTHON_TERMINAL display before no mouse error 2025-08-20 10:47:01 -04:00
foamyguy
a48db8f2c2
Merge pull request #3104 from RetiredWizard/fruitjampypaint
Update PyPaint learn guide files for use with Fruit Jam OS
2025-08-20 08:17:14 -05:00
jedgarpark
992f57f2f6 added test files 2025-08-19 19:42:54 -07:00
jedgarpark
18d5dbaf48 first commit BT unified keyboard bridge 2025-08-19 19:37:53 -07:00
RetiredWizard
2fcfe4a686 add mouse sensitivity parameter 2025-08-19 18:43:00 -04:00
RetiredWizard
900e93f146 remove a couple more unneeded class variables 2025-08-19 18:21:31 -04:00
RetiredWizard
f80086a15e don't need structure for mouse buffer anymore 2025-08-19 18:17:05 -04:00
RetiredWizard
5ad0efac9f use adafruit_usb_host_mouse 2025-08-19 18:11:26 -04:00
RetiredWizard
46c942051d replace generated comment with better detail 2025-08-19 16:55:39 -04:00
RetiredWizard
4fcd255f87 Avoids infinite loop if no USB devices are attached 2025-08-19 16:51:46 -04:00
RetiredWizard
5fbb8d9277 cleanup trailing spaces for pylint 2025-08-19 16:37:08 -04:00
RetiredWizard
8f89fe23c1 ignore no endpoint failures from mouse.read 2025-08-19 16:32:30 -04:00
RetiredWizard
59fe2fb599 pylint caught this for me 2025-08-19 15:20:09 -04:00
RetiredWizard
318448cc64 Use find_boot_mouse_endpoint 2025-08-19 15:14:42 -04:00
RetiredWizard
a011ecf509 Add check to skip over keyboard 2025-08-18 21:59:29 -04:00
foamyguy
d0cb33b6fc
Merge pull request #3110 from FoamyGuy/neopot
update NeoPot arduino example for metro328
2025-08-18 15:36:40 -05:00
foamyguy
8a376de77e update arduino example for metro328 2025-08-18 15:16:17 -05:00
Anne Barela
ec8fdd1cf6
Merge pull request #3109 from adafruit/TheKitty-patch-12
Update code.py
2025-08-18 15:53:40 -04:00
Anne Barela
fac7d8155e
Update code.py
Update for either of the accelerometers on the Feather Sense
2025-08-18 15:48:35 -04:00
Anne Barela
77bd7db8fe
Merge pull request #3108 from adafruit/TheKitty-patch-12
Update code.py to support either of the accelerometers on the Adafruit Feather nRF52840 Sense
2025-08-18 15:44:14 -04:00
Anne Barela
92ac6f3aa4
Update code.py
Lint
2025-08-18 15:40:39 -04:00
Anne Barela
708341d067
Update code.py
Use code from https://learn.adafruit.com/adafruit-feather-sense/circuitpython-sense-demo to check between the two IMUs that may be on the Adafruit Feather Sense
2025-08-18 15:31:39 -04:00
foamyguy
015b1f321d
Merge pull request #3107 from FoamyGuy/neopot
NeoPot example code
2025-08-18 11:58:25 -05:00
foamyguy
7057bc7a1f NeoPot example code 2025-08-18 11:41:07 -05:00
RetiredWizard
5ac9e6cd2e soo close, this one should do it 2025-08-15 18:15:52 -04:00
RetiredWizard
4e9c1239de still trying to disable the pylint check 2025-08-15 18:10:59 -04:00
RetiredWizard
d4483b0d1d another try for the last pylint error 2025-08-15 18:03:28 -04:00
RetiredWizard
af83bf3cde last pylint problem 2025-08-15 17:53:48 -04:00
RetiredWizard
0ef12d6fb2 more pylint fixes 2025-08-15 17:45:29 -04:00
RetiredWizard
5a18411aee pylint and associated fixes - removed adafruit_logger 2025-08-15 17:30:06 -04:00
RetiredWizard
3f902f837a move changes to new folder leaving original as it was 2025-08-15 16:34:35 -04:00
foamyguy
3a7683e728
Merge pull request #3102 from RetiredWizard/fruitjammines
Minesweeper Change to relative paths for Fruit Jam OS
2025-08-15 10:45:35 -05:00
RetiredWizard
21ce0d8ae1 change usb mouse debug prints to adafruit_logging msgs 2025-08-12 19:39:10 -04:00
foamyguy
1daa2d72aa
Merge pull request #3105 from FoamyGuy/add_pi_kittentts
Add pi kittentts demo project
2025-08-12 11:08:29 -05:00
foamyguy
2a399b4f0f eof newline 2025-08-12 10:16:22 -05:00
foamyguy
afabe616a2 adding Pi KittenTTS demo code 2025-08-12 10:14:43 -05:00
RetiredWizard
a5a62a1584 minor fill performance improvement 2025-08-11 13:43:38 -04:00
RetiredWizard
4f153b0321 Turn off fill debug prints 2025-08-10 00:46:43 -04:00
RetiredWizard
5b29480e9f Update learn guide files for use with Fruit Jam OS 2025-08-10 00:05:19 -04:00
RetiredWizard
06ccf1cc75 Change to relative paths for bitmap files 2025-08-07 23:06:45 -04:00
foamyguy
e804e240a6
Merge pull request #3100 from FoamyGuy/fruit_jam_examples
fruit jam arduino sd card read write
2025-08-06 14:19:11 -05:00
foamyguy
4cf64fda77 fruit jam arduino sd card read write 2025-08-06 13:44:37 -05:00
Liz
a616a09177
Merge pull request #3099 from adafruit/quad_eink
quad color eInk demos
2025-08-05 21:07:28 -04:00
Liz
fc5f3391cb Merge branch 'main' into quad_eink 2025-08-05 20:19:44 -04:00
Liz
e4690a4bdc
Merge pull request #3098 from adafruit/fruit_jam_factory
add fruit jam full test
2025-08-05 20:14:38 -04:00
Liz
53dce06f35 quad color eInk demos 2025-08-05 19:56:35 -04:00
Liz
8fff1f5508 revert, revert 2025-08-05 17:52:36 -04:00
Liz
006fa45afc testbed now requires tinyusb 2025-08-05 16:33:03 -04:00
Liz
0892b2226f update test 2025-08-05 16:14:37 -04:00
foamyguy
5e539a6626
Merge pull request #3094 from RetiredWizard/chipsfixes
Generalizations on Metro_RP2350_Chips_Challenge  for Fruit Jam
2025-08-05 09:35:13 -05:00
foamyguy
a2a056457a
Merge pull request #3096 from FoamyGuy/fruit_jam_examples
Fruit Jam CircuitPython examples
2025-08-04 15:14:12 -05:00
foamyguy
d655c5892c pylint 2025-08-04 14:50:12 -05:00
Liz
c8273475d2 add fruit jam full test 2025-08-04 15:29:09 -04:00
John Edgar Park
11fb234c19
Merge pull request #3097 from jedgarpark/espnow-basics
fixed status_label looping and error message timing
2025-08-04 12:02:02 -07:00
jedgarpark
667bb38009 fixed status_label looping and error message timing 2025-08-04 11:49:28 -07:00
foamyguy
934ad21830 WIFI example 2025-08-04 11:45:07 -05:00
Melissa LeBlanc-Williams
4919e360c9
Merge pull request #3095 from FoamyGuy/minesweeper_title_icon_fruitjam_os
add metadata file to Minesweeper for fruit jam OS icon and title.
2025-08-02 12:22:17 -07:00
RetiredWizard
0fa89fd711 Fix pylint errors for unspecified try/except blocks 2025-08-02 13:48:58 -04:00
foamyguy
6a8f7a3841 add metadata file to Minesweeper for fruit jam OS icon and title. 2025-08-02 11:13:11 -05:00
foamyguy
6b2c4ee4f2 fruit jam circuitpython examples 2025-08-02 10:43:10 -05:00
RetiredWizard
990b4eee37 Found similar absolute/relative folder issues in Larsio Paint 2025-08-02 01:57:50 -04:00
RetiredWizard
9af149971f Generalizations for Fruit Jam 2025-08-01 19:58:54 -04:00
Liz
1cd99ab0fd
Merge pull request #3093 from adafruit/as5600_encoder
code for AS5600 encoder project
2025-08-01 16:30:15 -04:00
Liz
78373685c1 code for AS5600 encoder project
CircuitPython code to control CC volume with a magnet and AS5600 sensor
2025-08-01 16:21:50 -04:00
Liz
1930a2ff6e
Merge pull request #3092 from adafruit/keyset_midi
adding keyset midi controller code
2025-08-01 13:31:32 -04:00
Dan Halbert
371bd7ba16
Merge pull request #3091 from dhalbert/update-jeplayer
Update JEPlayer for adafruit_progressbar changes; fix background.bmp
2025-08-01 13:11:05 -04:00
Liz
20bcb16713 adding keyset midi controller code 2025-08-01 12:57:32 -04:00
Dan Halbert
83402f3a1f Update JEPlayer for adafruit_progressbar changes; fix background.bmp 2025-08-01 12:30:18 -04:00
John Edgar Park
4a80a4ac71
Merge pull request #3089 from jedgarpark/espnow-basics
first commit esp-now basics
2025-08-01 07:35:20 -07:00
jedgarpark
43d9f48009 fixed error 2025-07-31 20:27:41 -07:00
jedgarpark
1da3c7916a first commit esp-now basics 2025-07-31 20:20:00 -07:00
foamyguy
e44ae3524b
Merge pull request #3088 from FoamyGuy/fruitjam_irc
Fruit Jam IRC app
2025-07-29 11:12:57 -05:00
foamyguy
f8c2b61fea more pylint 2025-07-29 10:30:35 -05:00
foamyguy
f5f0805802 pylint and format 2025-07-29 10:21:40 -05:00
foamyguy
b036cc6252 icon and metadata for FJOS 2025-07-29 10:01:06 -05:00
foamyguy
d22c263f6f fruit jam IRC app 2025-07-29 09:37:52 -05:00
foamyguy
895120fd8c
Merge pull request #3087 from FoamyGuy/magtag_updates
Change deprecated splash usage to root_group
2025-07-28 16:02:31 -05:00
foamyguy
989db55caf change deprecated splash usage to root_group 2025-07-25 16:46:08 -05:00
Liz
c5510041a3
Merge pull request #3086 from ladyada/main
update for magtag with ssd1680z chip
2025-07-21 16:05:26 -04:00
ladyada
5dd86b8c17 Merge branch 'main' of github.com:adafruit/Adafruit_Learning_System_Guides 2025-07-21 15:28:45 -04:00
ladyada
bef5610af2 for new magtag! 2025-07-21 15:28:40 -04:00
foamyguy
97cef46969
Merge pull request #3085 from FoamyGuy/hstx_dvi_cowbell
HXTX DVI CowBell Arduino Examples
2025-07-21 09:14:38 -05:00
foamyguy
44e4cdd4d5 remove 2350 example, update comment in 2040 example 2025-07-21 08:57:57 -05:00
foamyguy
f4eee1ff6a add license info 2025-07-17 17:34:52 -05:00
foamyguy
0ecae41d6f try .pico_rp2350.test.only 2025-07-17 17:29:45 -05:00
foamyguy
8be7f75668 move circuitpython to subdir, add arduino examples 2025-07-17 17:16:08 -05:00
Anne Barela
d628b2fa2d
Merge pull request #3084 from adafruit/TheKitty-patch-12
Create DVI_Framebuffer.py
2025-07-15 18:56:48 -04:00
Anne Barela
fc6bad3636
Update DVI_Framebuffer.py 2025-07-15 18:53:28 -04:00
Anne Barela
99f722ba6b
Create DVI_Framebuffer.py 2025-07-15 18:49:23 -04:00
Anne Barela
be3293915c
Add font files 2025-07-15 18:35:13 -04:00
Anne Barela
2dfcdd5fa2
Create README.md 2025-07-15 18:34:46 -04:00
Anne Barela
475f919788
Merge pull request #3083 from adafruit/TheKitty-patch-12
Update ANSI_color_terminal.py
2025-07-15 18:32:23 -04:00
Anne Barela
06a13af737
Update ANSI_color_terminal.py 2025-07-15 18:27:49 -04:00
Anne Barela
aada1d7b11
Update ANSI_color_terminal.py 2025-07-15 18:19:52 -04:00
Anne Barela
9b3ef79216
Create ANSI_color_terminal.py 2025-07-15 18:18:01 -04:00
Anne Barela
77ca9ce529
Rename SImple_Terminal.py to Simple_Terminal.py 2025-07-15 18:08:33 -04:00
Anne Barela
40573e41a8
Merge pull request #3081 from adafruit/TheKitty-patch-10
Create Simple_Terminal.py
2025-07-15 18:07:02 -04:00
Anne Barela
8c4a1b3307
Merge pull request #3078 from FoamyGuy/hstx_dvi_cowbell
update hstx dvi cowbell example
2025-07-15 18:06:46 -04:00
Anne Barela
ec4ca90328
Merge pull request #3082 from adafruit/TheKitty-patch-11
Create LVGL_Font_Terminal.py
2025-07-15 18:06:36 -04:00
Anne Barela
10b9ab827a
Update LVGL_Font_Terminal.py 2025-07-15 18:02:01 -04:00
Anne Barela
02d7caf6a2
Update SImple_Terminal.py 2025-07-15 18:01:19 -04:00
Anne Barela
dff0bbb611
Create LVGL_Font_Terminal.py
For guide
2025-07-15 17:58:21 -04:00
Anne Barela
3c7e161f93
Create SImple_Terminal.py 2025-07-15 17:53:51 -04:00
Anne Barela
78cc309fdd
Merge pull request #3079 from adafruit/TheKitty-patch-8
Create Display_LVGL_Font.py
2025-07-15 17:43:27 -04:00
Anne Barela
6216a8a69e
Update Display_LVGL_Font.py 2025-07-15 17:40:26 -04:00
Anne Barela
572e952434
Merge pull request #3080 from adafruit/TheKitty-patch-9
Create Display_BDF_PCF_Font.py
2025-07-15 16:57:06 -04:00
Anne Barela
a93818885f
Update Display_LVGL_Font.py 2025-07-15 16:56:00 -04:00
Anne Barela
ea96a5dba3
Update Display_BDF_PCF_Font.py 2025-07-15 16:51:06 -04:00
Anne Barela
aa83302a9b
Update Display_LVGL_Font.py 2025-07-15 16:50:21 -04:00
Anne Barela
f245bf8838
Create Display_BDF_PCF_Font.py
For Guide
2025-07-15 16:47:31 -04:00
Anne Barela
d65ebe2b99
Update Display_LVGL_Font.py 2025-07-15 16:45:00 -04:00
Anne Barela
632b3f5d2c
Create Display_LVGL_Font.py 2025-07-15 16:36:53 -04:00
foamyguy
d1484a30b1 use setup_display.py instead of boot.py for display init 2025-07-15 15:24:11 -05:00
Anne Barela
e579992b2f
Merge pull request #3077 from adafruit/TheKitty-patch-7
Update Find_EDID_Values.py
2025-07-15 16:11:42 -04:00
Anne Barela
574bf886a5
Update Find_EDID_Values.py
whitespace
2025-07-15 16:00:46 -04:00
Anne Barela
00f6b46aa6
Fix lint issues 2025-07-15 15:51:57 -04:00
Anne Barela
7c9ed24d5a
Update Find_EDID_Values.py 2025-07-15 15:37:49 -04:00
Anne Barela
8776b77ed6
Create Find_EDID_Values.py 2025-07-15 15:36:27 -04:00
Anne Barela
064a654ef3
Rename Fruit_Jam/CircuitPython_DVI to Fruit_Jam/CircuitPython_DVI_Video/README.md 2025-07-15 15:32:37 -04:00
Anne Barela
069a27ac4e
Create CircuitPython_DVI 2025-07-15 15:31:30 -04:00
foamyguy
6546f20d1e
Merge pull request #3076 from FoamyGuy/hstx_dvi_cowbell
hstx dvi cowbell example
2025-07-15 13:50:56 -05:00
foamyguy
be14e2cff6 hstx dvi cowbell example 2025-07-15 12:33:09 -05:00
Liz
fd3535b6b1
Merge pull request #3075 from adafruit/ideal_diode
adding ideal diode examples
2025-07-15 09:02:42 -04:00
Liz
cb3a07bb25 adding ideal diode examples 2025-07-15 08:20:39 -04:00
Liz
48a837c8ff
Merge pull request #3074 from adafruit/soil_sensor
additional soil sensor examples
2025-07-14 18:03:23 -04:00
Liz
b74bbaf033 additional soil sensor examples 2025-07-14 17:24:54 -04:00
Liz
e9b900c317
Merge pull request #3073 from adafruit/soil_sensor
simple soil sensor examples
2025-07-10 09:08:02 -04:00
Liz
3efeca69df simple soil sensor examples
adding micropython and arduino examples for simple soil sensor
2025-07-09 19:51:50 -04:00
John Edgar Park
caffaec092
Merge pull request #3072 from jedgarpark/knobby-seq
first commit Knobby Seq
2025-07-09 10:51:35 -07:00
jedgarpark
083883fbac first commit Knobby Seq 2025-07-08 19:08:52 -07:00
Liz
85eb5522a2
Merge pull request #3071 from adafruit/thermal_pi
adding raspberry pi thermal camera code
2025-07-02 22:09:42 -04:00
Liz
31426aeddc adding raspberry pi thermal camera code
Adding raspberry pi thermal camera overlay code. uses pi camera 3 and mlx90640
2025-07-02 20:20:36 -04:00
Limor "Ladyada" Fried
235f0c4938
Merge pull request #3070 from adafruit/dac_volume
change volume parameter
2025-06-30 10:41:41 -04:00
Mikey Sklar
c6f4f3ad91 change volume parameter 2025-06-29 18:33:12 -07:00
foamyguy
31240bf5aa
Merge pull request #3069 from FoamyGuy/odb_api_update
Use new OnDiskBitmap API
2025-06-27 15:24:06 -05:00
foamyguy
0b0c4ebbbd fix variable name 2025-06-27 15:18:24 -05:00
foamyguy
62512cab4a use new OnDiskBitmap API 2025-06-27 15:11:50 -05:00
foamyguy
a254b46192 use new OnDiskBitmap API 2025-06-27 14:41:01 -05:00
Limor "Ladyada" Fried
60d17f12c8
Merge pull request #3068 from FoamyGuy/fix_solder_profile
add missing comma to solder profile in EZMake oven
2025-06-27 11:20:22 -04:00
foamyguy
b263b9684b add missing comma 2025-06-27 09:59:27 -05:00
foamyguy
2b4475bbc7
Merge pull request #3065 from FoamyGuy/cp_logger_fixes
CircuitPython Logger fixes
2025-06-20 10:24:13 -05:00
foamyguy
16145663c1 fix aio handler init. Fix ble handler functionality. Remove go() function from code.pys 2025-06-20 10:07:47 -05:00
foamyguy
463ac6586b fix logger handler classes, remove skip file 2025-06-20 09:22:05 -05:00
foamyguy
82e3a2adca
Merge pull request #3064 from FoamyGuy/adding_icons_and_metadata
adding some icons and metadata for fruitjam os
2025-06-17 16:34:55 -05:00
foamyguy
f57629a8ae pylint fixes, remove unused imports 2025-06-17 15:17:36 -05:00
foamyguy
edfec3d15f Merge branch 'refs/heads/main' into adding_icons_and_metadata
# Conflicts:
#	Metro/Metro_RP2350_CircuitPython_Matrix/code.py
2025-06-17 15:07:31 -05:00
Liz
8dae72946e
Merge pull request #3051 from FoamyGuy/deepsleep_bme280_aio
feather s2 bme280 deepsleep aio example
2025-06-16 14:41:34 -04:00
foamyguy
6994ee09d3 remove magtag reference, update comments 2025-06-16 09:07:06 -05:00
foamyguy
d7cdb81494 additional comments 2025-06-13 14:57:43 -05:00
Liz
043497405a
Merge pull request #3063 from adafruit/typewriter
code for not a typewriter
2025-06-13 15:28:54 -04:00
foamyguy
f393f2762d
Merge pull request #3062 from FoamyGuy/sd_excepts
update sd examples for 10.x behavior
2025-06-13 14:04:43 -05:00
Liz
dbf2a4301e lint 2025-06-13 14:24:50 -04:00
Liz
5b4ba29cc2 code for not a typewriter
both versions of the not a typewriter code. one uses only circuitpython with usb host for a usb keyboard. the second has a desktop python script that communicates with the feather over serial
2025-06-13 14:17:55 -04:00
foamyguy
748f988a52 expand SD comments, remove leftover comment section, remove 10x specific files 2025-06-13 11:54:11 -05:00
foamyguy
d40ddef917 Merge branch 'refs/heads/main' into sd_excepts 2025-06-13 11:46:46 -05:00
Mikey Sklar
736bedf957
Merge pull request #3061 from adafruit/metro-rp2350-CP10x-SD
Metro RP2350 demo code for CircuitPython 10.x SD card list and write. The 9.x examples are not compatible.
2025-06-13 09:34:15 -07:00
foamyguy
3d3d29ccc1 update sd examples for 10.x behavior 2025-06-13 11:28:32 -05:00
Mikey Sklar
112721fecd Metro RP2350 CP 10.x /sd
Demo code for CircuitPython 10.x SD card list and write. The 9.x examples are not compatible.
2025-06-13 09:11:03 -07:00
Tyeth Gundry
57a70ad9e7
Merge pull request #3060 from adafruit/final-template-fixes
Final template fixes
2025-06-13 15:48:45 +01:00
Tyeth Gundry
ebdcc74cf3
Correct Week to Day, and one They're to their 2025-06-13 15:46:34 +01:00
foamyguy
66e82e79d2
Merge pull request #3059 from FoamyGuy/fruitjam_startups
fruitjam startup screens
2025-06-12 15:40:15 -05:00
foamyguy
054e7c443c remove pylint disables, add license comment 2025-06-12 15:23:53 -05:00
foamyguy
4d2c3e147c fruitjam startup screens 2025-06-12 15:05:37 -05:00
Tyeth Gundry
1fb7ac8df2
Accept total_events=0, tighten whitespace, correct "you" to "they" 2025-06-11 14:49:17 +01:00
Tyeth Gundry
cee73a11c7
Merge pull request #3058 from adafruit/capture-to-assign-footer
Update template.liquid - swap capture to assign
2025-06-11 12:27:42 +01:00
Tyeth Gundry
047f53e1ad
Update template.liquid - swap capture to assign 2025-06-11 12:27:09 +01:00
Tyeth Gundry
50fff0047f
Merge pull request #3057 from tyeth/add-potty-training
Add potty training
2025-06-10 23:55:17 +01:00
Tyeth Gundry
15ae874841
Merge branch 'adafruit:main' into add-potty-training 2025-06-10 23:51:24 +01:00
Liz
41de6c47e0
Merge pull request #3056 from adafruit/wiz5500
ethernet breakout examples
2025-06-10 16:24:49 -04:00
Liz
64f2cb5c31 ethernet breakout examples
adding circuitpython and arduino examples for the wiz5500 ethernet breakout
2025-06-10 16:10:31 -04:00
Tyeth Gundry
2c61160dbd
Add email template and WipperSnapper device config 2025-06-10 19:25:44 +01:00
Ha Thach
1be135c607
Merge pull request #3053 from adafruit/fix-sdfat-cardsize
replace cardSize() with sectorCount()
2025-06-09 13:58:56 +07:00
Liz
2b0f7263de
Merge pull request #3054 from adafruit/led_clock
updating matrix clock code
2025-06-06 13:02:55 -04:00
Liz
f3c46a4507 lint 2025-06-06 12:53:17 -04:00
Liz
5a8650418c fix pins for audio bff 2025-06-06 12:40:19 -04:00
Liz
f2ede9c176 adding extra features to matrix clock project
new features for matrix clock project
* "blinking eyes" every 30 seconds
* scrolling text during alarm
* scrolling text to denote if alarm is enabled
2025-06-06 12:39:18 -04:00
hathach
b793776adb
replace cardSize() with sectorCount()
also include SdFat_Adafruit_Fork.h instead of SdFat.h
2025-06-06 11:08:02 +07:00
Melissa LeBlanc-Williams
177ee7a9b8
Merge pull request #3052 from makermelissa/main
Fix many bugs
2025-06-04 15:07:47 -07:00
Melissa LeBlanc-Williams
f476d0a6c6 Fix many bugs 2025-06-04 14:34:54 -07:00
Mikey Sklar
07967a29c7
Merge pull request #3049 from adafruit/pi-hole-stats
Updates for Pi Hole 6.x release
New API from Pi Hole
Dropped API authentication
Mini PiTFT library changes
Pi OLED library changes
2025-06-04 12:10:22 -07:00
Mikey Sklar
5eff1adaa8 Update stats.py 2025-06-04 11:56:01 -07:00
Mikey Sklar
5cd01c6116 linting 2025-06-04 11:37:46 -07:00
Mikey Sklar
e5c40eb8ce Pi OLED updates
confirmed Pi OLED (SSD1306 I2C) works with new Pi Hole 6.x release code.
2025-06-04 11:13:02 -07:00
Mikey Sklar
9bea106029 increase font size 2025-06-04 09:13:46 -07:00
Mikey Sklar
339e0d7780 added extended SPDX 2025-06-04 08:52:11 -07:00
foamyguy
da3b838314 feather s2 bme280 deepsleep aio example 2025-06-03 12:26:46 -05:00
foamyguy
8d0262f1d7
Merge pull request #3050 from FoamyGuy/displayio_api_updates
displayio api updates
2025-06-03 08:41:40 -05:00
foamyguy
ed395b8276 displayio api updates 2025-06-02 16:05:23 -05:00
Mikey Sklar
8937ea355e linting long line. 2025-06-02 12:51:41 -07:00
Mikey Sklar
7a910ab962 pi-hole / bookworm / st7789 changes
A lot has changed since this guide was release.

The Pi Hole 6.x release in early 2025 dramatically changed the API.

Bookworm changes how some of the pins are used.

Even the ST7789 MiniPiTFT chip has some different options.

This code was tested and work with a MiniPiTFt on a Pi 4. I'd like to update the guide to support accommidate the software updates.
2025-06-02 12:43:59 -07:00
Liz
5df1fe038b
Merge pull request #3048 from adafruit/led_clock
update for led matrix clock
2025-06-02 09:56:03 -04:00
Liz
ec541811cc lint 2025-06-02 09:48:04 -04:00
Liz
95dbe2c665 update for led matrix clock
move audio playback call so that it isn't cut off and add a state to turn alarm functionality on/off
2025-06-02 09:43:36 -04:00
Limor "Ladyada" Fried
834f226528
Merge pull request #3047 from ladyada/rp2040_esppassthru
fix functionality for RP2x hosts
2025-06-02 09:22:08 -04:00
Limor "Ladyada" Fried
f3d3405272
Merge pull request #3044 from FoamyGuy/fix_sparkle_mini_warning
fix for sparkle motion mini warning
2025-06-01 15:27:30 -04:00
ladyada
bbd38c439e fix functionality for RP2x hosts 2025-06-01 15:21:50 -04:00
Liz
d2f16f8b7b
Merge pull request #3046 from adafruit/led_clock
adding led matrix clock code
2025-05-30 14:37:33 -04:00
Liz
02768500ad adding led matrix clock code
CircuitPython code and wav files for the led matrix clock project
2025-05-30 14:23:28 -04:00
Melissa LeBlanc-Williams
a87f6abb0b
Merge pull request #3045 from makermelissa/main
Add 3-in-a-row tile matching game
2025-05-29 14:46:54 -07:00
Melissa LeBlanc-Williams
08dc8367c5 Fix pylint issues 2025-05-29 14:43:32 -07:00
Melissa LeBlanc-Williams
d1c09dcd61 Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2025-05-29 14:30:46 -07:00
Melissa LeBlanc-Williams
d70fa56444 Add 3-in-a-row tile matching game 2025-05-29 14:30:36 -07:00
foamyguy
fedcf13bd5 only test sparkle motion multi neopixels on esp32 2025-05-29 08:52:09 -05:00
foamyguy
63f3cc563a fix sparkle motion warning 2025-05-29 08:38:20 -05:00
foamyguy
7dba79be85 fix sparkle motion mini warning 2025-05-29 08:21:31 -05:00
Liz
b94d8a91fb
Merge pull request #3043 from adafruit/fix_wav_name
fix wav file name to match wav included in bundle
2025-05-28 16:23:47 -04:00
Liz
4445aa72a2 fix wav file name to match wav included in bundle 2025-05-28 15:52:22 -04:00
Liz
05c57a9690
Merge pull request #3041 from adafruit/mother_demo
mother of all demos code
2025-05-22 12:27:53 -04:00
Liz
c9f04bd6c5 mother of all demos code
CircuitPython code for the mother of all demos keyset project
2025-05-22 11:26:33 -04:00
Liz
50d5fe5980
Merge pull request #3040 from adafruit/ir_stick
adding ir remote example
2025-05-21 11:07:36 -04:00
BlitzCityDIY
114ab9a304 adding ir remote example
Adding IR remote Arduino example for the Sparkle Motion Stick
2025-05-21 10:51:16 -04:00
Liz
e503ce1e93
Merge pull request #3039 from FoamyGuy/sparklemotion_stick_arduino_i2smic
sparkle motion stick arduino i2s mic example
2025-05-21 10:08:23 -04:00
Liz
f3b75557cf
Merge pull request #3038 from adafruit/sparkle_stick
factory reset for sparkle motion stick
2025-05-21 10:07:57 -04:00
foamyguy
185cad9fad sparkle motion stick arduino i2s mic example 2025-05-20 16:39:09 -05:00
Liz
eb969fab97 factory reset for sparkle motion stick
adding factory reset for sparkle motion stick
2025-05-20 16:43:29 -04:00
foamyguy
0b7aa5dfcb
Merge pull request #3034 from FoamyGuy/tilepalettemapper_api_update
Tilepalettemapper api update
2025-05-20 09:36:49 -05:00
foamyguy
84b025b1e7 remove pylint disables and explcitly re-set hidden prop 2025-05-20 09:29:44 -05:00
foamyguy
7f89d19b5f add support for 9.x and 10.x tilepalettemapper API. 2025-05-20 09:09:52 -05:00
Tyeth Gundry
54ab01fead
Merge pull request #3028 from tyeth/iot-door-sensor-blockly
Add exported Magic config for IOT Door sensor
2025-05-14 22:33:56 +01:00
Tyeth Gundry
b71c26e514
Merge pull request #3037 from adafruit/update-schedules-io-guide
Update code.py
2025-05-14 22:33:06 +01:00
Tyeth Gundry
338447c6e7
Update code.py 2025-05-14 17:28:14 +01:00
Liz
11554113a0
Merge pull request #3036 from adafruit/toy_xylo
adding code and midi files
2025-05-13 16:57:37 -04:00
Liz
531c15cd5f lint 2025-05-13 16:51:19 -04:00
Liz
d1f5eac58e adding code and midi files
Adding code and midi files for the toy robot xylophone project.
2025-05-13 16:47:19 -04:00
Anne Barela
7765812f24
Add files via upload 2025-05-12 15:05:58 -04:00
Liz
2ab43f179b
Merge pull request #3035 from adafruit/motor_slider
add gerber files for camera slider pcb
2025-05-12 12:20:16 -04:00
Liz
f82ee27e21 add gerber files for pcb 2025-05-12 11:11:11 -04:00
Melissa LeBlanc-Williams
508815e216
Merge pull request #3032 from makermelissa/main
Minesweeper improvements
2025-05-11 11:06:19 -07:00
foamyguy
8d7141d02e update mapping after create tilegrid 2025-05-10 09:34:36 -05:00
foamyguy
f56a6fb93f update tilepalettemapper usage for new API 2025-05-10 09:32:34 -05:00
John Edgar Park
f5041994ab
Merge pull request #3033 from jedgarpark/larsio-music
LPM for Fruit Jam and Metro RP2350
2025-05-09 17:09:15 -07:00
jedgarpark
565f1299d6 even more pylint 2025-05-09 15:03:15 -07:00
jedgarpark
5efae78d0c moar pylint 2025-05-09 13:27:56 -07:00
jedgarpark
208b435e98 LPM for Fruit Jam and Metro RP2350 2025-05-09 09:56:34 -07:00
foamyguy
9895057dd5 adding some icons and metadata for fruitjam os, request display size in some metro rp2350/fruitjam apps 2025-05-09 10:16:58 -05:00
Melissa LeBlanc-Williams
a30d244cf1 Remove more debug prints 2025-05-08 13:16:51 -07:00
Melissa LeBlanc-Williams
e467423fac Fix menu color when mouse is over 2025-05-08 13:12:58 -07:00
Melissa LeBlanc-Williams
f295b8b34d Remove debug message 2025-05-08 12:32:32 -07:00
Melissa LeBlanc-Williams
af5efebe65 Remove unused items 2025-05-08 12:18:44 -07:00
Melissa LeBlanc-Williams
afa65ff360 Minesweeper improvements 2025-05-08 12:16:14 -07:00
Anne Barela
c5bec455de
Merge pull request #3031 from adafruit/TheKitty-patch-7
Update code.py
2025-05-06 12:45:52 -04:00
Anne Barela
a9485dfec3
Update code.py 2025-05-06 12:42:50 -04:00
Anne Barela
5ac268249b
Update code.py 2025-05-06 12:38:37 -04:00
Anne Barela
26d640d90e
Create code.py 2025-05-06 12:37:28 -04:00
Anne Barela
65e75e579f
Create README.md 2025-05-06 12:36:43 -04:00
Liz
c65bf173de
Merge pull request #3030 from adafruit/motor_slider
tidy up schematic
2025-05-06 09:53:32 -04:00
Liz
a92dde9884 tidy up schematic
clean up schematic for the motor slider learn guide
2025-05-06 08:42:52 -04:00
Liz
3cba541938
Merge pull request #3029 from adafruit/motor_slider
TMC2209 camera slider project
2025-05-05 16:48:53 -04:00
Liz
e734c9c961 lint lint 2025-05-05 16:15:23 -04:00
Liz
65842cdb9b lint 2025-05-05 16:10:02 -04:00
Liz
a177c59bcc final code and PCM files 2025-05-05 16:05:15 -04:00
Tyeth Gundry
520f77ef0d
Add exported Magic config for IOT Door sensor
https://learn.adafruit.com/iot-open-door-detector-using-notifications-with-adafruit-io
2025-05-02 18:13:34 +01:00
John Edgar Park
74314751a8
Merge pull request #3027 from jedgarpark/computer-space
first commit Computer Space attract
2025-04-30 12:02:25 -07:00
jedgarpark
198469c7f6 added SSD1305 library to library.deps 2025-04-30 10:50:37 -07:00
jedgarpark
d44d654d39 first commit Computer Space attract 2025-04-30 10:21:18 -07:00
Scott Shawcroft
37afebbd3f
Merge pull request #3025 from FoamyGuy/usb_host_mouse
Usb host mouse examples
2025-04-24 11:43:02 -07:00
foamyguy
4b8feb23bc fix some reference to mice in the keyboard example 2025-04-24 13:18:34 -05:00
foamyguy
822de1266e Merge branch 'refs/heads/main' into usb_host_mouse 2025-04-24 13:16:33 -05:00
Liz
f5d4123a0b miso/mosi rev b 2025-04-24 10:36:08 -04:00
foamyguy
7d22755433
Merge pull request #3026 from FoamyGuy/usb_host_keyboard_examples
usb host keyboard examples
2025-04-24 08:07:13 -05:00
foamyguy
7622520b69 pylint disable too-many-function-args 2025-04-23 17:53:47 -05:00
Liz
7ca93c2a8e miso/mosi 2025-04-23 16:01:29 -04:00
foamyguy
b8d94ec2db use tinyusb feather testonly 2025-04-23 15:00:22 -05:00
foamyguy
9010f17295 fix SPDX 2025-04-23 14:50:06 -05:00
foamyguy
c300a38e95 usb host keyboard examples 2025-04-23 14:44:55 -05:00
foamyguy
fb4eee8158 arduino usb host mouse examples 2025-04-22 12:34:43 -05:00
foamyguy
b666b57c4a higher timeout value 2025-04-22 10:23:46 -05:00
foamyguy
024885ed60 displayio cursor mouse circuitpython example 2025-04-22 09:42:11 -05:00
foamyguy
b8f605855c basic mouse circuitpython example 2025-04-21 17:06:53 -05:00
foamyguy
5fe76b9b3a
Merge pull request #3024 from FoamyGuy/usbhost_snespad_arduino_2
add support for Metro rp2350 USB SNES-like controller
2025-04-17 19:55:19 -05:00
foamyguy
c056b4e249 remove references to different cores 2025-04-17 16:13:17 -05:00
foamyguy
74a8f9c1c5 try to fix metro .test.only file 2025-04-17 15:27:54 -05:00
foamyguy
3378ed902d give each device their own .test.only file 2025-04-17 15:06:47 -05:00
Liz
4ffdcba741 minor nudging 2025-04-17 15:54:59 -04:00
foamyguy
74b401d622 add support for Metro rp2350, remove unused usb hid device handling, remove device name from folder. 2025-04-17 14:53:51 -05:00
Liz
9cc428580a move label 2025-04-17 15:47:16 -04:00
Liz
9288b996c4 rev b 2025-04-17 15:46:43 -04:00
foamyguy
3f0ed86c37
Merge pull request #3023 from FoamyGuy/usbhost_snespad_arduino
USB SNES-like controller example for arduino
2025-04-17 13:44:56 -05:00
foamyguy
f91a3e6b52 use usbhost tinyusb config 2025-04-17 12:42:13 -05:00
foamyguy
6a9015c68e remove CPU freq restriction. move into subfolder that arduino ide wants. 2025-04-17 12:30:38 -05:00
foamyguy
da43407a16 fix typo, add test.only file, add device to folder name to prepare for metro version 2025-04-17 12:21:17 -05:00
foamyguy
7edbbf2401 remove dupe file extension 2025-04-17 11:52:48 -05:00
foamyguy
42ecec6928 USB SNES-like controller example for arduino 2025-04-17 11:50:08 -05:00
foamyguy
3eaa064690
Merge pull request #3016 from justmobilize/secrets-cleanup-q-w
Secrets Cleanup Q-W
2025-04-16 12:39:29 -05:00
Melissa LeBlanc-Williams
b415616277
Merge pull request #3022 from makermelissa/main
Adding Minesweeper code for new guide
2025-04-16 10:12:07 -07:00
Melissa LeBlanc-Williams
00d5e27de7 Fix pylint false positive 2025-04-16 00:23:47 -07:00
Melissa LeBlanc-Williams
5cc6a257d3 Remove relative imports 2025-04-16 00:14:40 -07:00
Melissa LeBlanc-Williams
87c04e1c46 Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2025-04-16 00:14:00 -07:00
Melissa LeBlanc-Williams
0cb30f6996 Fix pylint issues 2025-04-16 00:13:05 -07:00
Melissa LeBlanc-Williams
e94ba7e31f Fix bugs introduced by pylint 2025-04-16 00:09:44 -07:00
Melissa LeBlanc-Williams
58e89f5b6e Add minesweeper code 2025-04-16 00:03:32 -07:00
Liz
eca663c40c
Merge pull request #3021 from adafruit/solenoid_i2c
adding 8 channel solenoid driver demos
2025-04-15 16:34:28 -04:00
Liz
f8cb964c21 Create .uno.test.only 2025-04-15 15:24:21 -04:00
Liz
8140f4286e adding 8 channel solenoid driver demos 2025-04-15 15:15:32 -04:00
foamyguy
ef00664e14
Merge pull request #3014 from justmobilize/secrets-cleanup-p-part2
Secrets Cleanup: P Part 2
2025-04-15 10:17:18 -05:00
Brent Rubell
86686fa817
Merge pull request #3020 from brentru/update-ws-offline-config-file
Update - WS Offline Guide
2025-04-14 14:38:39 -04:00
brentru
c64dfdc9c3 update config.json from autoconfig'd board 2025-04-14 14:07:41 -04:00
Liz
6bce301f25
Merge pull request #3018 from casten/patch-2
Detect max quality level dynamically.
2025-04-14 08:55:55 -04:00
Liz
8d0ef9d35a
Merge branch 'main' into patch-2 2025-04-14 08:51:54 -04:00
Liz
c9b7193a22
Merge pull request #3017 from casten/patch-1
fix incompatibility with ov5640 and Pico
2025-04-14 08:46:11 -04:00
Liz
8b940c95db
Merge pull request #3012 from monkz0390/patch-1
Dark Moon support, code.py
2025-04-14 08:43:53 -04:00
Casten Riepling
b49083177b Tighten up allocation excaption catching 2025-04-12 20:52:39 +00:00
Casten Riepling
3357fefbb0 fix lint error 2025-04-11 22:51:53 +00:00
foamyguy
dceed82785
Merge pull request #3019 from FoamyGuy/metro_match3_game
Metro match3 game
2025-04-11 14:23:00 -05:00
foamyguy
0332716490 button bitmaps 2025-04-11 13:50:14 -05:00
foamyguy
f4d0dc75c2 pylint fixes, add title card 2025-04-11 13:42:30 -05:00
foamyguy
f7e6c1fb3e a few more comments 2025-04-11 13:18:15 -05:00
Casten Riepling
6a9407744a
Detect max quality level dynamically.
Detect max quality level dynamically.
This will select 2 for standard Pico 2's and 5 for standard Pico's.
2025-04-10 22:31:49 -07:00
Casten Riepling
70d15e1284
fix incompatibility with ov5640 and Pico
Changes to Adafruit_CircuitPython_OV5640 doubled the memory usage for a given quality setting.  This makes the latest release of in CircuitPython incompatible with the previous quality setting=3
 + colorspace=adafruit_ov5640.OV5640_COLOR_JPEG due to that working out an an allocation size of 204800.  This is too much for the first Pico.
Here is the breaking change:
https://github.com/adafruit/Adafruit_CircuitPython_OV5640/pull/35
Quality 4 is still too large at 153,600 bytes.
Quality 5 using 122,880 works.
2025-04-10 21:17:23 -07:00
foamyguy
166852bff0 match3 game code 2025-04-10 17:13:45 -05:00
foamyguy
b7abaf52ee autosave and resume demo 2025-04-10 15:42:55 -05:00
Justin Myers
2642e48856 Secrets Cleanup Q-W 2025-04-10 10:27:40 -07:00
foamyguy
f94718eb4d
Merge pull request #3015 from FoamyGuy/usb_snespad_circuitpython
adding circuitpython example for USB Host with SNES like gamepad
2025-04-10 11:38:34 -05:00
foamyguy
0ad935f655 remove comment references to non-existent variable. 2025-04-10 10:30:19 -05:00
foamyguy
0f450b0718 remove unused section. Comment out raw data print. 2025-04-10 10:23:35 -05:00
foamyguy
5239baffaf adding circuitpython example for USB Host with SNES like gamepad 2025-04-10 10:16:37 -05:00
foamyguy
ded8d0098e tilepallettemapper demo code 2025-04-10 10:10:45 -05:00
Henry Amador
b2a98fe698
Update code.py
fixing pylint error
inconsistent use of tabs and spaces in indentation
corrected by removing tabs and indenting with spaces
2025-04-09 15:25:01 -07:00
Justin Myers
f9a414ddbc Secrets Cleanup: P Part 2
- fix typos celcius to celsius
2025-04-09 11:14:47 -07:00
Justin Myers
2b5fd71ab0 Secrets Cleanup: P Part 2 2025-04-09 10:16:06 -07:00
foamyguy
071c95b5b7
Merge pull request #3004 from justmobilize/secrets-cleanup-p-part1
Secrets Cleanup: P Part 1
2025-04-09 11:27:13 -05:00
foamyguy
fb932a96ec refactor rsa private key to its own file in gcpiot. add aio name and key to placeholder settings.toml for halloween countdown. 2025-04-09 11:21:53 -05:00
foamyguy
76d2a5ae21 two mice code 2025-04-09 11:17:50 -05:00
Melissa LeBlanc-Williams
389027c9aa
Merge pull request #3011 from makermelissa/main
Bug fixes for Chips Challenge
2025-04-08 16:09:40 -07:00
Melissa LeBlanc-Williams
de887d18ea Last minute bug fixes 2025-04-08 16:06:27 -07:00
Justin Myers
06fcc8e04c Secrets Cleanup: P Part 1
- fix PyPortal_CMA_Art_Frame
2025-04-08 11:13:48 -07:00
Henry Amador
e05e3f928d
Dark Moon support, code.py
Added Dark Moon support when i noticed the moon didn't update on a dark moon night.
Added Red Moon as error indicator if there is another instance of API responding with something unexpected
2025-04-07 21:01:18 -07:00
Melissa LeBlanc-Williams
7c19748b1b Fix dialog bug 2025-04-07 18:12:27 -07:00
Melissa LeBlanc-Williams
2ded43760f Add missing sound file 2025-04-07 16:54:46 -07:00
Melissa LeBlanc-Williams
a5dbc3958d Bug fixes for Chips Challenge 2025-04-07 15:10:09 -07:00
Liz
608253e0c8
Merge pull request #3010 from adafruit/asteroid
adding asteroid code and assets
2025-04-07 15:19:29 -04:00
Liz
a38cbfb13d adding asteroid code and assets 2025-04-07 15:14:31 -04:00
Liz
b2371f2585 switch jst xh connectors 2025-04-03 18:22:22 -04:00
Liz
72517cf5cd Update TMC2209_Camera_Slider_PCB.brd 2025-04-03 17:43:15 -04:00
Liz
564f99c7fb emojis 2025-04-03 17:12:59 -04:00
foamyguy
c16e76efa1
Merge pull request #3009 from FoamyGuy/memory_game
fix typo's and other comment updates memory game
2025-04-03 14:14:12 -05:00
foamyguy
ec671a3ece fix typo's and other comment updates 2025-04-03 14:06:26 -05:00
BlitzCityDIY
0c2b9353a1 silkscreen labels 2025-04-03 11:42:39 -04:00
BlitzCityDIY
05b30667d5 adding eagle files, initial routing 2025-04-03 11:14:30 -04:00
Liz
2f156c65bc
Merge pull request #3003 from adafruit/tlv320
TLV320 arduino and cp examples
2025-04-02 14:45:18 -04:00
Melissa LeBlanc-Williams
94ce0330c9
Merge pull request #3007 from makermelissa/main
Add Chips Challenge for guide
2025-04-02 11:18:32 -07:00
Tyeth Gundry
dc254f08db
Merge pull request #3008 from tyeth/Plotting_Offline_Data
Add assets for Plotting Offline Data guide
2025-04-02 16:17:10 +01:00
Tyeth Gundry
0107361db8
Add assets for Plotting Offline Data guide 2025-04-02 16:13:04 +01:00
Melissa LeBlanc-Williams
1f143abc19 Remove TODO 2025-04-01 18:06:48 -07:00
Melissa LeBlanc-Williams
c604b5d4ee more linting 2025-04-01 17:00:51 -07:00
Melissa LeBlanc-Williams
1e76acf211 linting 2025-04-01 16:54:48 -07:00
Melissa LeBlanc-Williams
b4a7cf88bb Add Chips Challenge for guide 2025-04-01 16:12:51 -07:00
Brent Rubell
d2abcbff2e
Merge pull request #3006 from brentru/fix-stepper-guide
Fix - Adafruit IO Stepper Control Guide
2025-04-01 13:59:11 -04:00
brentru
3548bd13a4 isalive->is_alive 2025-04-01 12:54:45 -04:00
Brent Rubell
83809937b1
Merge pull request #3005 from brentru/update-matrixportal-scroll-guide
Update Matrix Portal New Guide Scroller Code.py
2025-04-01 12:22:07 -04:00
brentru
aeaceaef7c Use new API and key 2025-04-01 12:14:27 -04:00
Justin Myers
f23741077e Secrets Cleanup: P Part 1 2025-04-01 07:07:01 -07:00
Liz
bd8b9de5e6 tinyusb test 2025-04-01 08:34:24 -04:00
Liz
8636c1f1f2 retest 2025-04-01 08:27:04 -04:00
Liz
371f7a40a9 Update TLV320_Tone_Arduino.ino 2025-03-31 16:45:14 -04:00
foamyguy
ef9f2cc230
Merge pull request #3001 from justmobilize/secrets-cleanup-l-o
Secrets Cleanup: L, M and O
2025-03-31 15:42:22 -05:00
Liz
5a20f1cd72 TLV320 arduino and cp examples
Examples for the TLV320DAC3100 breakout guide
2025-03-31 16:41:55 -04:00
Liz
923b6f24ce
Merge pull request #3002 from adafruit/esp32_ci
bring back esp32 test for usb host max breakout
2025-03-26 17:53:48 -04:00
Liz
f037a7b937 bring back esp32 test for usb host max breakout
Adding back the esp32 test for usb host bff code (library was released yesterday). Adding a minor comment to the code to trigger Arduino CI
2025-03-26 16:04:05 -04:00
Liz
65ced5837c
Merge pull request #2977 from Technik-Tueftler/202502_fix_receive_error
When creating feeds, also add the first value
2025-03-26 15:59:13 -04:00
foamyguy
06dded0371
Merge pull request #2994 from FoamyGuy/memory_game
memory game files
2025-03-25 13:32:51 -05:00
Justin Myers
592b33be07 Secrets Cleanup: L, M and O 2025-03-25 07:49:30 -07:00
Liz
53234f9932
Merge pull request #2999 from adafruit/max_usb
remove esp32 test until tinyusb release
2025-03-25 09:54:48 -04:00
foamyguy
bedfa656d8
Merge pull request #2995 from justmobilize/secrets-cleanup-f-i
Secrets Cleanup: F and I
2025-03-25 08:50:01 -05:00
Liz
9859b44e07 remove esp32 test until tinyusb release
swapping esp32 tests for usb host bff arduino examples to none until tinyusb has a new release since it's been causing confusion
2025-03-25 08:37:26 -04:00
Liz
7406a2bb4a
Merge pull request #2978 from jepler/runcpm-metro-rp2350
Port RunCPM to the Metro RP2350 with HSTX
2025-03-25 08:33:24 -04:00
Liz
81fa01f589
Merge pull request #2996 from caternuson/drv8833_examples
Add DRV8833 code examples
2025-03-24 19:46:44 -04:00
Liz
2c78e713b5 Update Feather_RP2040_Adalogger.ino 2025-03-24 19:37:39 -04:00
7f6f1627b8 undo unintended change to original rp2040 sketch 2025-03-24 17:28:52 -05:00
72b8e9743f Merge remote-tracking branch 'origin/main' into runcpm-metro-rp2350 2025-03-24 14:49:32 -05:00
6b9d4d87dc Fix selecting right SPI instance on Metro RP2350
& stop hard-coding the CS pin
2025-03-24 14:04:52 -05:00
Limor "Ladyada" Fried
f327f68eb6
Merge pull request #2998 from jepler/jammy-matrix
into the jammy matrix
2025-03-24 14:40:08 -04:00
foamyguy
6c91cac0aa
Merge pull request #2997 from FoamyGuy/circuitpython_matrix
circuitpython matrix implementation
2025-03-24 13:32:44 -05:00
foamyguy
b38e2c29e3 pylint ignore imports outside top-level to avoid imports in environments that wont need them due to built-in display. 2025-03-24 13:07:14 -05:00
9ebf8bc0e3 only build on metro rp2350 for now 2025-03-24 13:04:20 -05:00
foamyguy
4f9be49545 use built-in display if it exists and is initialized. 2025-03-24 12:55:26 -05:00
cf2f2b01ff into the jammy matrix 2025-03-24 11:23:09 -05:00
foamyguy
c45d70e536 circuitpython matrix implementation 2025-03-23 10:51:16 -05:00
Liz
24261aa88e remove sdfat, use sdfat fork in testbed
importing sdfat along with testbed was causing conflicts since it was importing both sdfat from rp2040 and sdfat - adafruit fork from testbed
2025-03-20 19:14:11 -04:00
Liz
9dce1e3e2b try adding esp32 ble audio libraries 2025-03-20 16:54:51 -04:00
caternuson
75c5023819 uno test only 2025-03-20 10:21:41 -07:00
caternuson
9a5c2e37f4 adding DRV8833 code examples 2025-03-20 10:08:57 -07:00
Justin Myers
906e10e481 Secrets Cleanup: F and I 2025-03-19 16:24:53 -07:00
foamyguy
e4aac8bdbb
Merge pull request #2991 from justmobilize/secrets-cleanup-c-e
Secrets Cleanup: C and E
2025-03-19 10:51:10 -05:00
foamyguy
77710f445d memory game files inital commit 2025-03-18 17:03:43 -05:00
Justin Myers
02d49a92e7 Secrets Cleanup: C and E - change wave updates, remove pylint comment too new 2025-03-14 12:43:20 -07:00
Justin Myers
1082a37124 Secrets Cleanup: C and E - change wave updates 2025-03-14 11:52:49 -07:00
Anne Barela
05ca129522
Merge pull request #2993 from FoamyGuy/metro_rp2350_snakegame
Update snake game key inputs
2025-03-14 10:45:09 -04:00
foamyguy
2baf7aaa86 case-insensitive rest of the keys, and support uppercase binding values 2025-03-14 09:38:15 -05:00
foamyguy
96fa902545 case-insensitive key inputs 2025-03-14 09:25:05 -05:00
foamyguy
1bebd9ad51
Merge pull request #2992 from FoamyGuy/metro_rp2350_snakegame
Metro rp2350 snake game
2025-03-13 14:38:55 -05:00
foamyguy
e346383916 change order of condition. remove init function from custom exception. 2025-03-13 14:29:05 -05:00
foamyguy
a2e7224702 update display init for current released version 2025-03-13 13:53:23 -05:00
foamyguy
2e54a0214d metro rp2350 snake game 2025-03-13 13:46:33 -05:00
Justin Myers
25db1babaa Secrets Cleanup: C and E 2025-03-12 14:58:28 -07:00
foamyguy
c322fbd036
Merge pull request #2989 from justmobilize/secrets-cleanup-a
Secrets Cleanup: A
2025-03-12 15:56:21 -05:00
Anne Barela
f7041992ce
Merge pull request #2990 from adafruit/moon_phase
adding moon phase clock & bluetooth speaker
2025-03-11 16:35:35 -04:00
Liz
a326077b38 Update Bluetooth_Lumon_Speaker.ino 2025-03-11 15:55:22 -04:00
Liz
1e54149f1a adding moon phase clock & bluetooth speaker
CircuitPython code for moon phase clock and arduino code for bluetooth lumon speaker
2025-03-11 15:53:43 -04:00
Justin Myers
76045d0558 Secrets Cleanup: A 2025-03-07 13:19:44 -08:00
foamyguy
a216a61a40
Merge pull request #2988 from FoamyGuy/flappy_nyan_cat
Flappy nyan cat game
2025-03-07 10:19:57 -06:00
foamyguy
0077f024ee top level about game comment & controls. 2025-03-07 10:02:00 -06:00
foamyguy
8f0f5ef420 add gameover and play again functionality. add license. 2025-03-07 09:54:03 -06:00
foamyguy
6f3542c9a3 adding flappy nyan cat game 2025-03-06 20:11:10 -06:00
Liz
1ae1defb25
Merge pull request #2987 from adafruit/pcm510x_examples
PCM510x CP and Arduino examples
2025-03-05 17:31:41 -05:00
Liz
721b62dda9 arduino examples 2025-03-05 16:46:08 -05:00
Liz
636ec27ada circuitpython demos for PCM510x
wav and tone demos for PCM510x I2S DAC
2025-03-05 16:18:50 -05:00
Dan Halbert
a11851d35a
Merge pull request #2986 from adafruit/TheKitty-patch-7
Rename .none.test.only to .metro_rp2350.test.only
2025-03-04 19:47:11 -05:00
Anne Barela
6b4cece80e
Rename .metro_rp2350.test.only to .none.test.only
Still a dependency issue
2025-03-04 18:45:53 -05:00
Anne Barela
549f248817
Update library.deps 2025-03-04 18:34:10 -05:00
Anne Barela
c1b20c7f13
Update README.md 2025-03-04 18:33:07 -05:00
Anne Barela
1b0e08a316
Update Metro_HSTX_Matrix.ino 2025-03-04 18:19:49 -05:00
Anne Barela
82f6997347
Update library.deps
Add new Adafruit DVI HSTX library
2025-03-04 18:16:34 -05:00
Anne Barela
6827024509
Update Metro_HSTX_Matrix.ino
Change from 40% to 65%
2025-03-04 18:06:44 -05:00
Anne Barela
68aec70f4a
Rename .none.test.only to .metro_rp2350.test.only 2025-03-04 18:05:14 -05:00
Anne Barela
15b4cc768b
Tweak label 2025-03-04 12:16:47 -05:00
Anne Barela
9d5ec334d1
Merge pull request #2985 from adafruit/TheKitty-patch-7
Update matrix.ino
2025-03-02 20:34:38 -05:00
Anne Barela
b287f01401
Rename .metro_rp2350.test.only to .none.test.only
The program uses changes to the Adafruit-DVI-HSTX library not yet pushed to Arduino to skip check until that is corrected
2025-03-02 20:02:25 -05:00
Anne Barela
e831125ec9
Rename matrix.ino to Metro_HSTX_Matrix.ino
Satisfy linter
2025-03-02 19:53:41 -05:00
Anne Barela
0d6babcecc
Rename .metrorp2350.test.only to .metro_rp2350.test.only 2025-03-02 19:37:40 -05:00
Anne Barela
cd29c39cf4
Update matrix.ino 2025-03-02 19:30:43 -05:00
Anne Barela
9836040c2b
Add Adafruit Metro RP2350 DVI Matrix code 2025-03-02 19:29:41 -05:00
Anne Barela
86866a45d0
Create .metrorp2350.test.only 2025-03-02 19:28:10 -05:00
Liz
10c616e797
Merge pull request #2984 from adafruit/mdr_terminal
adding severance terminal code
2025-02-28 22:59:33 -05:00
Liz
20ee088f11 rework get_username 2025-02-28 20:01:49 -05:00
Liz
5d759b5fb8 lint 2025-02-28 19:56:02 -05:00
Liz
0ad7f62f82 fix broad except 2025-02-28 19:51:01 -05:00
Liz
9f557683eb adding severance terminal code
main file - lumon.py
subclasses - palette.py, data_bin.py and data.py
images - lumon-logo and lumon-logo-small
mdr.service - systemd file to run on boot
2025-02-28 19:46:51 -05:00
Anne Barela
06d7ef1381
Merge pull request #2983 from adafruit/TheKitty-patch-7
Submit code for Metro RP2350 Breakout
2025-02-28 11:27:58 -05:00
Anne Barela
8e27ae82bd
Judicious pylint statements 2025-02-28 11:24:23 -05:00
Anne Barela
8c7957bc3f
Eliminate white space, scope variables, in 2025-02-28 10:42:21 -05:00
Anne Barela
8327a4e941
Update code.py 2025-02-28 10:24:53 -05:00
Anne Barela
831e2736e4
Submit code for Metro RP2350 Breakout
New Learn guide
2025-02-28 10:11:07 -05:00
55eff111ad follow upstream rename of this class 2025-02-27 14:38:41 -06:00
Liz
82a6e55c06
Merge pull request #2981 from adafruit/sparkle_motion_factory
adding factory reset for sparkle motion
2025-02-27 15:24:05 -05:00
Brent Rubell
69502c1caa
Merge pull request #2982 from brentru/add-ws-offline-guide
Add: WipperSnapper Offline Guide Resources
2025-02-27 14:11:40 -06:00
Liz
af36141979 RDM files required, change import to local instead of /libraries 2025-02-27 15:10:41 -05:00
brentru
ed8ea8d82c Add offline file 2025-02-27 15:04:42 -05:00
Liz
16c13435ec add headers to dmx
each example requires the header files since they are in different directories
2025-02-27 14:49:25 -05:00
Liz
8282ba3d45 adding factory reset for sparkle motion 2025-02-27 14:20:56 -05:00
Liz
7681d5b70a
Merge pull request #2980 from adafruit/dmx_cleanup
removing individual .test.skip files from DMX NeoPixels
2025-02-26 17:32:26 -05:00
Liz
7b2a3ba12a removing individual .test.skip files
chatted with JP - these examples should be tested against the uno. removing all of the individual board test.skip files from each example folder
2025-02-25 18:27:09 -05:00
Anne Barela
67a2acbbcd
Merge pull request #2979 from FoamyGuy/qtpy_rounddisplay_compass
addding qtpy s2 round display compass
2025-02-25 17:21:35 -05:00
foamyguy
f32c65db2c fix imports 2025-02-25 16:12:38 -06:00
foamyguy
069a57e1b4 add qtpy s2 round display compass 2025-02-25 16:06:34 -06:00
Anne Barela
726d0057f9
Update gemma_main.py
Add SPDX
2025-02-25 11:34:18 -05:00
Anne Barela
c77cc96973
Create gemma_main.py 2025-02-25 11:06:28 -05:00
Anne Barela
5a4c1ced91 Remove moved Matrix Portal projects
All these projects were duplicated into the Matrix_Portal subdirectory. The guides were all edited to point to the new code. Removing these gets rid of the duplicates and frees up space in the main repo which is the main goal of this task.
2025-02-24 17:17:48 -06:00
Anne Barela
add7fcd7d2 Rename Directory
The guide editors don't seem to like directories with spaces in them. Change to underline.
2025-02-24 16:32:55 -06:00
Anne Barela
269d72e4b5 Make Matrix Portal Subdirectory
Make a new Matrix Portal subdirectory and copy Matrix Portal guides in. Then guides will be pointed to the new repo copies and the old ones deleted in the main repo to make more room.
2025-02-24 16:21:23 -06:00
Anne Barela
75fe6a4047 Move one more CLUE project
Move one more CLUE project to the new CLUE subdirectory
2025-02-24 14:56:06 -06:00
Anne Barela
fde91334de Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2025-02-24 14:25:12 -06:00
Anne Barela
0a8de560b8 Remove duplicate CLUE Repos
All CLUE repos deleted have been moved to the CLUE subdirectory. The associated guides have been changed to point to the new code.

There may be a  few CLUE projects which still need moving. These are all confirmed.
2025-02-24 14:24:58 -06:00
a5cee34e60 make it start on fruitjam, no usb love 2025-02-24 14:22:01 -06:00
cb76498965 put headers back in required order 2025-02-24 14:21:50 -06:00
Anne Barela
abe0acb3e7
Update README.md 2025-02-24 15:16:50 -05:00
Anne Barela
dc43693f17 Copy CLUE projects to new CLUE subdirectory
To "clean up" the Learn System repo, we need to move groups of guides into subdirectories. This PR duplicates the CLUE guides into the CLUE subdirectory so guides may be changed prior to deleting redundant project repos to make more space.
2025-02-24 11:21:29 -06:00
Anne Barela
0e17763a29
Update README.md
Add README to new CLUE directory
2025-02-24 12:13:29 -05:00
Anne Barela
aa2361d439
Create README.md 2025-02-24 12:12:31 -05:00
5a0e281ade CI the right board 2025-02-24 10:33:16 -06:00
4151751dd7 Port RunCPM to the Metro RP2350 with HSTX
This uses the built in HSTX connector for video out, and the built in SD card for file storage.
It's a 1-board emulator for the 8-bit CP/M operating system!

At this time, unreleased modifications to Adafruit_dvhstx and Pico-PIO-USB are needed. Otherwise,
the code will not work properly.
2025-02-24 10:32:02 -06:00
a6851c595e checkpoint: keyboard copro code works -ish with dvhstx text mode 2025-02-24 09:54:45 -06:00
Technik Tüftler
b35069b3a9 expanding the comments for better understanding 2025-02-19 21:58:23 +01:00
Technik Tüftler
02ccc6c1a2 When creating feeds, also add the first value 2025-02-19 21:43:34 +01:00
Anne Barela
f356fba7d8
Merge pull request #2974 from jedgarpark/midi-host2host
first commit USB MIDI Host2Host
2025-02-19 14:36:49 -05:00
Anne Barela
bbaa4f5fbc
Merge pull request #2975 from adafruit/rp2350_ci
add rp2350 boards to arduino ci
2025-02-19 13:00:09 -05:00
Liz
70a7ca66e1 rename microsd folder 2025-02-19 12:42:13 -05:00
Liz
d9dd6f38d0 adding none.test.only to dmx project 2025-02-19 12:28:52 -05:00
Anne Barela
1554ea417e
Merge pull request #2976 from FoamyGuy/usb_host_gamepad
USB Host gamepad read data example
2025-02-19 10:07:30 -05:00
foamyguy
d8166ffec5 rename inner for loop vars 2025-02-19 08:59:54 -06:00
foamyguy
ced0b7a139 USB Host gamepad read data example 2025-02-19 08:47:15 -06:00
Liz
fc4e738f28 add rp2350 boards to arduino ci 2025-02-19 09:35:35 -05:00
jedgarpark
f521981f48 first commit USB MIDI Host2Host 2025-02-18 20:59:08 -08:00
foamyguy
547a3315e6
Merge pull request #2973 from FoamyGuy/metro2350
Arduino SD Card example
2025-02-18 17:35:28 -06:00
foamyguy
dc7aaf2397 disable test 2025-02-18 16:59:45 -06:00
foamyguy
602ac644c3 Arduino SD Card example 2025-02-18 16:45:58 -06:00
Anne Barela
7cc05f27f4
Merge pull request #2972 from FoamyGuy/metro2350
adding HSTX example for Metro RP2350
2025-02-18 17:10:27 -05:00
foamyguy
8b720619f8 adding HSTX example for Metro RP2350 2025-02-18 16:00:00 -06:00
Liz
1ae44de44f
Merge pull request #2971 from adafruit/pico_w_update
adding error handling for settings.toml
2025-02-18 12:32:59 -05:00
Liz
fc71e49d78 adding error handling for settings.toml
Adding error handling for settings.toml to pico w wifi examples. if a settings.toml entry is not found/incorrect then a type error is raised but it isn't very descriptive, especially for beginners
2025-02-18 12:25:01 -05:00
foamyguy
d110742ba9
Merge pull request #2970 from FoamyGuy/metro2350
CircuitPythonMetro2350 Examples
2025-02-18 10:12:04 -06:00
foamyguy
3e33418828 eol newlines 2025-02-18 09:22:49 -06:00
foamyguy
4135617fea metro rp2350 examples 2025-02-18 09:21:38 -06:00
foamyguy
18a037deef
Merge pull request #2755 from FoamyGuy/displayio_api_9x
Displayio api 9x
2025-02-14 16:14:39 -06:00
foamyguy
52416a25f2 more 9.x displayio changes 2025-02-14 15:49:29 -06:00
foamyguy
f1cf3ce157 Merge branch 'refs/heads/main' into displayio_api_9x 2025-02-14 15:07:28 -06:00
Anne Barela
109eebcb0f
Merge pull request #2969 from jedgarpark/espresso-water
updated espresso code to power down sensor
2025-02-12 16:30:50 -05:00
jedgarpark
d64251b18a pylint fixes 2025-02-12 12:48:06 -08:00
jedgarpark
93c450259a updated espresso code to power down sensor 2025-02-12 12:34:24 -08:00
Anne Barela
e5757ccc0d
Merge pull request #2968 from FoamyGuy/adding_cartoon_clock
adding song files
2025-02-12 12:16:40 -05:00
foamyguy
802e54a0b5 adding song files 2025-02-12 10:08:27 -06:00
foamyguy
ce98c5ee8d
Merge pull request #2967 from FoamyGuy/adding_cartoon_clock
adding cartoon character clock
2025-02-11 15:00:39 -06:00
foamyguy
4eff77cd4e remove pylint configs from newer version 2025-02-11 14:49:38 -06:00
foamyguy
9c845aa13e re-arrange imports. disable pylint configs 2025-02-11 13:45:39 -06:00
foamyguy
3b1855030f adding cartoon character clock 2025-02-11 13:24:59 -06:00
Liz
8dab4866d0
Merge pull request #2965 from adafruit/round_display
demo code for the gc9a01a round display
2025-02-10 18:39:55 -05:00
Liz
c803cfea45 update for sensirion API, add gc9a01a library 2025-02-10 18:02:41 -05:00
Liz
ad73b77f18 dot 2025-02-10 17:32:29 -05:00
Liz
8550345e99 try test only again 2025-02-10 17:32:04 -05:00
Liz
c58af8331c Create .uno.test.only 2025-02-10 17:22:53 -05:00
Liz
795ff05593 arduino and lint 2025-02-10 17:20:54 -05:00
Liz
7779de188f
Update code.py 2025-02-10 14:54:30 -05:00
Liz
108f763d40 adding cp and python demo code 2025-02-10 14:43:49 -05:00
Dan Halbert
c1c2897f2b
Merge pull request #2960 from semininja/main
quick fix broken imports/calls of pcf8523
2025-02-07 13:43:05 -05:00
John Edgar Park
fe9142a19c
Merge pull request #2964 from jedgarpark/breakbeat-breadboard
fixed filename
2025-02-05 18:16:19 -08:00
jedgarpark
c1bbd3597b fixed filename 2025-02-05 18:05:50 -08:00
TrevKnows
f0bf67e879
Merge pull request #2934 from adafruit/ESP32-S2-TFT_AS77341_Color_Detection
Added code.py for AS7341 Color detection
2025-02-05 13:50:39 -05:00
Anne Barela
65e8e79950
Merge pull request #2963 from jedgarpark/espresso-water-meter
first commit water meter code
2025-02-05 11:57:27 -05:00
jedgarpark
15aa60f5a7 removed pylint txt file 2025-02-05 08:50:33 -08:00
jedgarpark
104df9166c fixing pylint errors 2 2025-02-04 18:00:36 -08:00
jedgarpark
ba9099d3a2 fixing pylint errors 2025-02-04 17:51:49 -08:00
jedgarpark
4965a40ef5 first commit water meter code 2025-02-04 17:42:04 -08:00
Dan Halbert
b20191babf
Merge pull request #2956 from vegatripy/patch-1
Update mini_pitft_stats.py to use getbbox() instead of getsize()
2025-02-04 13:42:50 -05:00
Dan Halbert
2909bef561
Merge pull request #2944 from pohlt/patch-2
docs: fix comment when turning off I2C power
2025-02-04 13:40:12 -05:00
Dan Halbert
dc09f0db47
Merge pull request #2962 from edenchiang/patch-1
fixed issue of reading Network object in code.py of example for Arduino Nano …
2025-02-04 13:38:05 -05:00
I-Tang Chiang (Eden)
0b6ed775d5
fixed issue of Network object in code.py of example for Arduino Nano RP2040 Connect
CircuitPython version: 9.2.4
2025-02-04 11:34:52 +01:00
Anne Barela
85c13fcbe3
Merge pull request #2961 from adafruit/toddler_timer
Adding code for Toddler Timer
2025-02-03 16:03:39 -05:00
Liz
37e93d87a6 lint 2025-02-03 15:20:40 -05:00
Noe Ruiz
c0d75b8432 fixing pylint
3rd attempt
2025-02-03 15:15:32 -05:00
Noe Ruiz
c38a83ae3a another pylint fix
2nd attempt to fix pylint
2025-02-03 15:08:59 -05:00
Noe Ruiz
b4601f92aa Fixing pylint
fixing errors from pylint
2025-02-03 15:00:54 -05:00
Noe Ruiz
0c432cb85e Adding code for Toddler Timer
Adding code for Toddler Timer
2025-02-03 14:55:28 -05:00
semininja
3a476d56fb quick fix broken imports/calls of pcf8523 2025-02-02 16:32:05 -05:00
foamyguy
91db2f004c
Merge pull request #2959 from FoamyGuy/sparkle_motion_examples
sparkle motion IR remote corrected neopixel pin & count
2025-01-29 14:40:12 -06:00
foamyguy
6204ca349c corrected neopixel pin & count 2025-01-29 14:23:14 -06:00
foamyguy
eae450908e
Merge pull request #2958 from FoamyGuy/sparkle_motion_examples
sparkle motion IR control neopixels examples
2025-01-29 11:47:23 -06:00
foamyguy
62f367bc1e IR test config file 2025-01-29 10:42:09 -06:00
foamyguy
12bf9f8f6e sparkle motion IR control neopixels examples 2025-01-29 10:35:16 -06:00
foamyguy
7a43be2468
Merge pull request #2957 from FoamyGuy/sparkle_motion_examples
sparkle motion examples
2025-01-28 16:58:14 -06:00
foamyguy
69ff3b8e31 sparkle motion examples 2025-01-28 15:43:03 -06:00
vegatripy
9e1eaba7c8
Update mini_pitft_stats.py to use getbbox() instead of getsize()
A little update to avoid message "DeprecationWarning: getsize is deprecated and will be removed in Pillow 10 (2023-07-01). Use getbbox or getlength instead."
2025-01-28 15:31:12 +01:00
Carter Nelson
c9f2d95e5a
Merge pull request #2955 from caternuson/hallo_jump_update
Update HalloWing jump sound
2025-01-25 09:30:52 -08:00
caternuson
f70eaa5da4 update hallowing jump sound 2025-01-25 08:17:52 -08:00
Brent Rubell
38f661bf64
Merge pull request #2954 from brentru/fix-iot-bird-feeder
Fix: IoT Bird Feeder
2025-01-24 09:28:20 -06:00
brentru
4c92b0400b Fix wrt feedback 2025-01-24 10:09:41 -05:00
foamyguy
8c1f2a5ac1
Merge pull request #2953 from FoamyGuy/custom_led_animation_fixes
fix grid x/y access
2025-01-23 15:35:23 -06:00
foamyguy
bfa39bedcf fix grid x/y access 2025-01-23 15:10:43 -06:00
Liz
027433f781
Merge pull request #2952 from adafruit/sparkle_arduino
sparkle mini factorytest
2025-01-23 11:46:02 -05:00
BlitzCityDIY
88281cf5ee i2s test 2025-01-23 11:21:49 -05:00
BlitzCityDIY
b3ddb74530 sparkle mini factorytest
factory test for the sparkle motion mini
2025-01-23 11:16:57 -05:00
Liz
daa736c921
Merge pull request #2951 from adafruit/sparkle_arduino
adding arduino sparkle motion mini example
2025-01-23 10:11:16 -05:00
Liz
332efcb952 update rp2040 sdfat API 2025-01-22 21:44:32 -05:00
BlitzCityDIY
ff5fff5e38 remove serial
need to test out adalogger
2025-01-22 12:11:35 -05:00
BlitzCityDIY
94ce890eb2 adding arduino sparkle motion mini example 2025-01-22 12:03:30 -05:00
Liz
b4778203df
Merge pull request #2950 from FoamyGuy/sparklemotionmini_examples
sparkle motion mini example
2025-01-21 17:30:02 -05:00
foamyguy
440f24271c sparkle motion mini example 2025-01-21 16:01:23 -06:00
Liz
09a89238cb
Merge pull request #2949 from adafruit/turntable
cp code for motorized turntable
2025-01-17 14:40:33 -05:00
Liz
ec4771b2e4 Update icons.bmp 2025-01-17 12:26:19 -05:00
Liz
d37cdfa503 cp code for motorized turntable
adding icon sprite sheet, font and code file for the tmc2209 cp turntable
2025-01-17 12:19:56 -05:00
Mikey Sklar
5524390a7c linting 2025-01-14 10:22:49 -08:00
Mikey Sklar
99d30da439 multiple button rev tft example
The ESP32-S2 and -S3 Rev TFT have three buttons. This example demonstrates the Pull.UP vs Pull.DOWN configuration across all three as it is non-intuitive. text to serial will also show up on the TFT. Test on both ESP32-S2 and ESP32-S3 Rev TFT boards with CP 9.2.2. Works!
2025-01-14 10:09:07 -08:00
Liz
daa4e427e3
Merge pull request #2947 from adafruit/newxie
psram example
2025-01-14 07:39:24 -05:00
Liz
bde5ed3f2c
Merge pull request #2948 from FoamyGuy/tmc2209_examples
tmc2209 examples
2025-01-13 18:29:51 -05:00
foamyguy
366140c42d tmc2209 examples 2025-01-13 17:10:17 -06:00
Liz
685d549701 psram example
very simple psram example for feather rp2350 guide
2025-01-13 16:21:28 -05:00
Liz
8423dd4698
Merge pull request #2946 from adafruit/newxie
newxie multi display
2025-01-07 16:39:44 -05:00
Liz
a596a555e8 newxie multi display
adding two demos for using four newxie displays together with raspberry pi
2025-01-07 15:51:47 -05:00
Liz
acb4a1dd31
Merge pull request #2945 from adafruit/newxie
newxie examples
2025-01-07 08:06:57 -05:00
Liz
fbf893bdab adding cpython example 2025-01-06 20:04:42 -05:00
Liz
a26563c8d1 use xymap from fl namespace 2025-01-06 18:35:49 -05:00
Liz
1b9f08dad7 Revert "CI extern"
This reverts commit 27427735ee.
2025-01-06 18:26:16 -05:00
Liz
86f10f190f Revert "move defines to ino"
This reverts commit 9b50b43d89.
2025-01-06 18:26:06 -05:00
Liz
9b50b43d89 move defines to ino 2025-01-06 18:10:53 -05:00
Liz
27427735ee CI extern 2025-01-06 18:00:11 -05:00
Liz
30e081c593 Revert "rework xymap"
This reverts commit 091bead2f8.
2025-01-06 17:53:49 -05:00
Liz
091bead2f8 rework xymap 2025-01-06 17:43:36 -05:00
Liz
ce2bff085c fastled CI for DiscoBandCamp 2025-01-06 17:28:21 -05:00
Liz
5730b4f57d newxie examples
adding CP and arduino examples for vertical newxie display
2025-01-06 14:56:47 -05:00
Tom Pohl
24f3c70814
docs: fix comment when turning off I2C power 2025-01-05 11:27:12 +01:00
Anne Barela
b6a7df8c62
Merge pull request #2943 from FoamyGuy/kareltherobot
Fix for Karel
2024-12-18 08:53:17 -05:00
foamyguy
ec6d564fd3 Merge branch 'refs/heads/main' into kareltherobot 2024-12-17 17:18:45 -06:00
foamyguy
a554b04cb0 fix sprite loading location 2024-12-17 17:18:02 -06:00
Liz
c16c5b8590
Merge pull request #2942 from adafruit/xmas_light_button
adding xmas light iot switch
2024-12-17 16:28:20 -05:00
Liz
268d946cb6 adding xmas light iot switch
adding circuitpython code for the xmas light iot switch project
2024-12-17 16:18:59 -05:00
Liz
aa4d2f8649
Merge pull request #2941 from adafruit/a4988
a4988 examples
2024-12-17 11:22:52 -05:00
Liz
4a6ded436c a4988 examples
Example code for the A4988 in CircuitPython and Arduino
2024-12-17 10:53:34 -05:00
foamyguy
22ff05a1c9
Merge pull request #2940 from FoamyGuy/kareltherobot
Karel The Robot
2024-12-17 09:50:12 -06:00
foamyguy
4f2193e3c5 re-arrange condition, add license to __init__ 2024-12-17 09:27:27 -06:00
foamyguy
6e61f0003b cleanup, format, pylint. update spritesheet. add stuff to code.py 2024-12-17 09:16:52 -06:00
foamyguy
89f56289ac karel initial commit 2024-12-16 20:58:52 -06:00
John Edgar Park
4dd60a2ac0
Merge pull request #2939 from jedgarpark/dmx-neopixels
first commit DMX NeoPixel code
2024-12-11 10:19:46 -08:00
jedgarpark
ecc7378b98 library path adjustment 2024-12-11 10:07:48 -08:00
jedgarpark
c3bae1fe39 one more typo, good grief 2024-12-11 10:00:29 -08:00
jedgarpark
1a551101ef fixed library include typo 2024-12-11 09:52:09 -08:00
jedgarpark
ef4c47e59c moved library up one level, wheeeeee 2024-12-11 09:39:52 -08:00
jedgarpark
4e54490e82 made header path local 2024-12-11 09:17:53 -08:00
jedgarpark
0698cfe39d added SPDX and .skip files for library 2024-12-11 09:04:35 -08:00
jedgarpark
f670d957dd added Conceptinetics library 2024-12-11 08:27:24 -08:00
jedgarpark
48f21c6508 fixed platform file 2024-12-10 19:00:29 -08:00
John Park
fb6d389d3c first commit DMX NeoPixel code 2024-12-10 18:06:08 -08:00
Anne Barela
de340e61fa
Merge pull request #2938 from adafruit/motor-pov-display
Motor pov display
2024-12-10 11:58:18 -05:00
Noe Ruiz
e1ad62e874 update blinka image
better blinka image for 32 x 32 pixel
2024-12-10 11:40:08 -05:00
Noe Ruiz
d247e47115 adding sans image
adding sans bitmap image
2024-12-10 10:13:52 -05:00
Anne Barela
fec74ba9be
Merge pull request #2937 from adafruit/motor-pov-display
adding code for motorized pov display project
2024-12-10 09:55:01 -05:00
Noe Ruiz
a27d5f2e5d third pylint fix
third attempt at fixing pylint error
2024-12-10 09:18:24 -05:00
Noe Ruiz
122daa320c second pylint fix
second attempt at fixing pylint error
2024-12-10 09:12:49 -05:00
Noe Ruiz
e4b7ff5e0e code pylint update
attempting to fix the pylint error
2024-12-10 09:08:32 -05:00
Noe Ruiz
100a139d01 adding code for motorized pov display project
adding files for motorized pov display project
2024-12-10 09:00:59 -05:00
TrevKnows
eec86c9a55 Added code.py for AS7341 Color detection 2024-12-02 14:46:04 -05:00
foamyguy
2264eef18a
Merge pull request #2933 from FoamyGuy/pi_bluesky_tft_scroller
Pi bluesky scroller
2024-11-27 10:17:07 -06:00
foamyguy
809475ece0 add gitkeep to imgs folder 2024-11-27 10:07:25 -06:00
foamyguy
6be9a51f5c Use hdmi display for now. Add zip for easy download button in guide 2024-11-27 10:00:04 -06:00
foamyguy
8e045c3340
Merge pull request #2932 from FoamyGuy/pi_bluesky_tft_scroller
adding rpi bluesky tft scroller
2024-11-26 10:31:06 -06:00
foamyguy
41c84a4610 esc key to quit, fullscreen and frameless window. 2024-11-26 10:10:22 -06:00
foamyguy
16f9f0ca71 format and lint 2024-11-25 17:49:29 -06:00
foamyguy
5dc24ad4b3 adding rpi bluesky tft scroller 2024-11-25 16:58:58 -06:00
TrevKnows
46621d01b3
Merge pull request #2931 from adafruit/itsaSNAP-Esp32-S2-tft-color-detection-
ESP32-s2 tft color detection with itsaSNAP
2024-11-25 14:10:16 -05:00
TrevKnows
5532a6e33e Folder name change 2024-11-25 13:50:42 -05:00
TrevKnows
2102b2a608 Color detection project
This is a program for a color detection project using the APD-9960 and Feather ESP32-S2 & S3
2024-11-25 12:28:52 -05:00
foamyguy
4b1479bc17
Merge pull request #2924 from FoamyGuy/remove_actions_from_included_lib
remove actions from embedded library
2024-11-20 16:13:06 -06:00
Liz
9e872fb23b
Merge pull request #2928 from adafruit/rp2350_videosynth
add metro esp32-s2 factory test
2024-11-20 15:20:27 -05:00
Liz
2a2ff87d1d Update code.py 2024-11-20 15:08:18 -05:00
Liz
dc90899afa add metro esp32-s2 factory test 2024-11-20 14:55:55 -05:00
Liz
1e653e3290
Merge pull request #2927 from adafruit/rp2350_videosynth
adding rp2350 video synth code
2024-11-19 09:38:02 -05:00
Liz
e4369d29a0 adding rp2350 video synth code
adding Feather RP2350 with HSTX to DVI video synth code. three modes: bar graph animation, bouncing circles, party parrot synthwave. a rotary encoder changes modes. 3 potentiometers control the animations. pdm mic is used for audio fft visualizations. button on rotary encoder toggles the pots on/off. if off, then default values are used for the animations
2024-11-19 09:10:30 -05:00
Liz
815e584be9
Merge pull request #2926 from adafruit/arduino_vcnl4200
arduino simpletest for the vcnl4200
2024-11-18 13:34:06 -05:00
Liz
76337d24b7 switch pins back to guide pins
change pins that were used for testing back to documented pins
2024-11-18 12:10:19 -05:00
Liz
d9ce978dc7 switch to constructWithUserFunction 2024-11-18 12:06:58 -05:00
Liz
025eace36e Update Arduino_VCNL4200_simpletest.ino 2024-11-18 11:12:23 -05:00
Liz
3caeb03f56 fixes for fastled refactor
TProgmemRGBGradientPalettePtr was replaced with TProgmemRGBGradientPaletteRef
2024-11-18 09:42:55 -05:00
Liz
31ccb26ecc Create .uno.test.only 2024-11-18 09:05:15 -05:00
Liz
3356c6e10d add vcnl4200 to library depends 2024-11-18 08:49:17 -05:00
Liz
85fc938f4a take out interrupts 2024-11-18 08:42:12 -05:00
Liz
7c66c14506 arduino simpletest for the vcnl4200 2024-11-18 08:39:58 -05:00
Liz
b0c1fa194c
Merge pull request #2925 from adafruit/tinypod
adding tinypod code
2024-11-13 16:22:47 -05:00
Liz
694c9a9a9d adding tinypod code
Adding tinypod code. uses esp32-s3 feather for ble and ano seesaw encoder
2024-11-13 16:13:04 -05:00
foamyguy
edd126dcfb remove actions from embedded library 2024-11-07 14:22:13 -06:00
Liz
7b86eec85b
Merge pull request #2923 from adafruit/pumpkin_spelling
fix spelling
2024-11-07 13:37:15 -05:00
Liz
5edc1f0932 fix spelling
fix wav file names and "microcontroller" spelling in code for ikea pumpkin
2024-11-07 10:55:25 -05:00
foamyguy
81ba1ce023
Merge pull request #2922 from FoamyGuy/custom_animations
Custom LED Animations Updates
2024-11-05 07:58:10 -06:00
foamyguy
36785e397c strand sequence, and grid both versions 2024-11-04 16:33:11 -06:00
Liz
ed9f141ca6
Merge pull request #2921 from adafruit/nfc_media
changing m.2 to mnt point
2024-11-04 16:34:14 -05:00
Liz
11449b7aa8 Update nfc_movie_player.py 2024-11-04 16:13:03 -05:00
Liz
3f27ef6ce9 Update nfc_movie_player.py 2024-11-04 16:09:22 -05:00
Liz
54f75d6938
Merge pull request #2920 from adafruit/nfc_media
update username variable for nfc media player
2024-11-04 10:03:30 -05:00
Liz
10b39d0ae8 Update nfc_movie_player.py 2024-11-04 09:41:33 -05:00
Liz
bbee0bec10 Update nfc_movie_player.py 2024-11-04 09:40:45 -05:00
Liz
328a9f9759 update username variable for nfc media player 2024-11-04 09:36:29 -05:00
Mikey Sklar
77e01f089d
Merge pull request #2918 from adafruit/eink-ssd1680z 2024-11-02 17:28:40 -07:00
Liz
9b85a43eec
Merge pull request #2919 from adafruit/nfc_media
code & files for nfc movie player
2024-11-01 21:00:58 -04:00
Liz
60ecc7e56b code & files for nfc movie player
Adding code, image and files for raspberry pi nfc movie player
2024-11-01 16:54:41 -04:00
Mikey Sklar
02dddfd67e adding ssd1680z to Eink Weather Example 2024-11-01 10:33:59 -07:00
foamyguy
57f5b16f61
Merge pull request #2917 from FoamyGuy/custom_animations
Custom LED animations guide code
2024-10-31 19:59:48 -05:00
foamyguy
cf348e0156 more pylint fixes 2024-10-31 15:35:43 -05:00
foamyguy
6cb551cbe0 format conways, remove unused import 2024-10-31 15:32:22 -05:00
foamyguy
4b223c310b pylint fixes 2024-10-31 15:28:02 -05:00
foamyguy
5ca431625d update copyrights and add conways 2024-10-31 15:20:39 -05:00
foamyguy
2e800843d8 custom LED animations code 2024-10-31 15:17:08 -05:00
Liz
c40878161d
Merge pull request #2916 from adafruit/sensor_bat
code and sounds for motion sensor bat
2024-10-28 09:52:35 -04:00
Liz
e4d189b00a code and sounds for motion sensor bat
Adding code and sound effects for the motion sensor bat project
2024-10-28 09:33:44 -04:00
Carter Nelson
d7b50d4a44
Merge pull request #2914 from caternuson/magtag_weather_fixes
MagTag Weather fixes for open-meteo update
2024-10-18 14:52:09 -07:00
caternuson
810c12d8d1 i dunno just use black i guess 2024-10-18 12:52:59 -07:00
caternuson
f6f6d30f24 whatever linter 2024-10-18 12:40:57 -07:00
caternuson
f57cb124b9 lint 2024-10-18 12:14:01 -07:00
caternuson
f7d468c411 fix bmp and updates 2024-10-18 11:57:57 -07:00
Anne Barela
045afc1958
Merge pull request #2912 from FoamyGuy/tft_spirit_board
Spirit Board Improvements
2024-10-17 13:17:25 -04:00
foamyguy
8a7026c5a9 remove usage of keys() 2024-10-17 11:53:05 -05:00
foamyguy
7f0d2e03d9 add example messages file. support uppercase in messages. gracefully handle invalid characters. 2024-10-17 11:45:42 -05:00
Jeff Epler
41f3f0fcef
Merge pull request #2910 from jepler/circuitpython-audiofx-monophonic
Add monophonic Audio FX
2024-10-16 15:19:21 -05:00
foamyguy
1c4b493464
Merge pull request #2911 from FoamyGuy/tft_spirit_board
Spirit Board Tweaks
2024-10-16 14:05:37 -05:00
foamyguy
64a0ba8ba7 pylint fixes 2024-10-16 13:36:51 -05:00
bd80549170 Add monophonic Audio FX 2024-10-16 11:06:24 -05:00
foamyguy
8e74f2a28c
Merge pull request #2908 from FoamyGuy/tft_spirit_board
Spirit Board update
2024-10-16 09:43:59 -05:00
Anne Barela
8cf838f14b
Merge pull request #2909 from jedgarpark/haunt-air-blaster
first commit air blaster code
2024-10-16 08:55:57 -04:00
John Park
8d4a392e90 first commit air blaster code 2024-10-15 16:16:13 -07:00
foamyguy
ebf338ddc7 pylint fixes 2024-10-15 16:01:55 -05:00
foamyguy
b8ae5c3845 add pyportal versions. move helper class from shared to each version dir 2024-10-15 15:44:44 -05:00
Liz
17c63eb4ae
Merge pull request #2907 from adafruit/picodvi_tests
adding back tests for picodvi
2024-10-15 13:51:41 -04:00
Liz
295153b39b adding comment to trigger arduino CI 2024-10-15 13:31:11 -04:00
Liz
f95073ed9a adding back tests for picodvi
PicoDVI library was updated. Testing if that fixed CI
2024-10-15 13:07:04 -04:00
Liz
7818a3ebc5
Merge pull request #2906 from adafruit/ch32_eink
code for ch32v203 eink calendar clock
2024-10-14 15:32:18 -04:00
Liz
60d26f98d3 code for ch32v203 eink calendar clock
Arduino code for the CH32V203 QT Py eInk calendar clock
2024-10-14 14:32:19 -04:00
foamyguy
2ab0856017
Merge pull request #2905 from FoamyGuy/tft_spirit_board
try symlink to file only, not dir.
2024-10-14 09:45:12 -05:00
foamyguy
05581d6fae try symlink to file only, not dir. 2024-10-14 09:07:07 -05:00
Anne Barela
ea2aac8888
Merge pull request #2904 from FoamyGuy/tft_spirit_board
Tft spirit board
2024-10-12 16:31:38 -04:00
foamyguy
de62cdf3eb license declarations 2024-10-11 17:05:52 -05:00
foamyguy
0168375d8b pylint fixes 2024-10-11 17:00:48 -05:00
foamyguy
5f676e6e62 1st version tft spirit board project 2024-10-11 16:36:44 -05:00
Liz
77ce50c320
Merge pull request #2903 from adafruit/usb_host_turbo
easier combo setting
2024-10-10 11:45:58 -04:00
Liz
ca60107d7b easier combo setting
updating code so that it's easier for folks to set custom combos. also improved multi button press detection
2024-10-10 11:27:58 -04:00
Liz
9b3bda1210
Merge pull request #2902 from adafruit/Memento-itsaSNAP-image-capture
Project using the Memento and itsaSNAP
2024-10-10 10:36:14 -04:00
TrevKnows
df884b48a8 Added completed code.py file 2024-10-10 10:25:54 -04:00
Liz
eab4569a32
Merge pull request #2901 from adafruit/usb_host_turbo
gamepad turbo button arduino code
2024-10-08 15:54:03 -04:00
Liz
b2ac355beb gamepad turbo button arduino code
Arduino code for the gamepad turbo button project. also including a gamepad device report example with uf2
2024-10-08 15:13:37 -04:00
Carter Nelson
1eb9dad994
Merge pull request #2900 from caternuson/magtag_weather_update
Update MagTag Weather for Open-Meteo API
2024-10-07 11:05:25 -07:00
caternuson
e5f204213c lint 2024-10-07 10:18:51 -07:00
caternuson
cc5cbcca68 openmeteo magtag weather update 2024-10-07 10:09:57 -07:00
Liz
4d0a7174a3
Merge pull request #2899 from adafruit/hstx_dvi
updates for zelda prop
2024-10-07 11:33:48 -04:00
Liz
e6043f98bb updates for zelda prop
minor updates for zelda prop code
2024-10-07 10:57:52 -04:00
Liz
8311b12e17
Merge pull request #2898 from adafruit/hstx_dvi
hstx to dvi demo
2024-10-07 10:33:05 -04:00
Liz
9405bd254b hstx to dvi demo
Quick demo for the HSTX to DVI breakout. CircuitPython code display the test bitmap image
2024-10-07 10:22:10 -04:00
Jeff Epler
3ec7e08881
Merge pull request #2897 from jepler/mp3-stream-circuitpython
Mp3 stream circuitpython
2024-10-04 08:35:49 -05:00
cd231d5aed resolve pylint diagnostics 2024-10-04 08:01:14 -05:00
Liz
c974936792
Merge pull request #2895 from adafruit/zelda_prop
adding code & sound for zelda prop
2024-10-03 17:37:54 -04:00
Liz
32df9b8813 adding code & sound for zelda prop
Adding CircuitPython code and sound effects for the Zelda Tri Rod prop guide
2024-10-03 14:33:48 -04:00
3c828cb669 initial commit of circuitpython audio fx polyphonic 2024-10-01 10:26:58 -05:00
Liz
9aadd89df9
Merge pull request #2894 from adafruit/matter_display
code for Matter sensor dashboard
2024-09-27 16:06:10 -04:00
Liz
245259ca84 font & background graphic 2024-09-27 15:54:10 -04:00
Liz
1164297323 code for Matter sensor dashboard
CircuitPython code for Matter sensor demo. Displays data from four different sensor feeds and sends data to one feed with the onboard buttons. IO communication is handled with MQTT
2024-09-27 15:53:21 -04:00
Anne Barela
f8e920e451
Merge pull request #2893 from adafruit/Matrix_Portal_itsaSNAP_Apple_Health_Display-project
itsaSNAP Apple Health Learn guide
2024-09-27 13:52:59 -04:00
TrevKnows
9f79661501 Added project 2024-09-27 12:15:08 -04:00
John Edgar Park
eac10af0cf
Merge pull request #2892 from jedgarpark/hid-reporter
Hid reporter
2024-09-25 13:15:02 -07:00
John Park
cc08a5430f moved the test only file to arduino directory 2024-09-25 12:44:44 -07:00
John Park
78cff5e023 added SPDX for helper file, too 2024-09-25 12:28:57 -07:00
John Park
9591fa1da8 added SPDX 2024-09-25 12:27:01 -07:00
John Park
b25a79bb8b first commit HID Reporter code 2024-09-25 12:21:21 -07:00
John Park
8495261c6e first commit HID Reporter code 2024-09-25 12:18:45 -07:00
Liz
bd9285fd34
Merge pull request #2891 from ladyada/main
3.7" 240x960 demo
2024-09-25 09:11:06 -04:00
BlitzCityDIY
e7a994933b Delete ...qtpy_esp32s2.test.only 2024-09-25 08:59:32 -04:00
ladyada
0d75e9c9cc 3.7" 240x960 demo 2024-09-24 21:45:14 -04:00
Anne Barela
4c7517f03d
Merge pull request #2889 from adafruit/LEGO-carousel-propmaker
adding LEGO carousel propmaker project
2024-09-24 16:38:19 -04:00
Noe Ruiz
71cfcedc99 PyLint Fix update
removed unused libraries
2024-09-24 16:32:01 -04:00
Noe Ruiz
a5e63d86ce adding LEGO carousel propmaker project
adding files for LEGO carousel propmaker project
2024-09-24 16:28:11 -04:00
Liz
b59621d297
Merge pull request #2888 from adafruit/qualia_photo
code for Qualia iOS Photo display
2024-09-24 09:52:14 -04:00
Liz
11aace8fc0 Update code.py 2024-09-24 09:23:35 -04:00
Liz
3a93a5e6b8 code for Qualia iOS Photo display
Uses MQTT with Adafruit IO to decode and display base64 encoded photos
2024-09-24 08:47:18 -04:00
Anne Barela
24406bfb99
Merge pull request #2887 from adafruit/pumpkin_update
updates for pumpkin
2024-09-23 14:42:01 -04:00
Liz
35a860806f Update code.py 2024-09-23 14:30:46 -04:00
Liz
99ca7416e0 updates for pumpkin
a few updates for the pumpkin project. now with a switch and more error handling
2024-09-23 13:55:11 -04:00
Anne Barela
d71dd92eb7
Merge pull request #2886 from adafruit/pumpkin_prop
adding code for ikea halloween prop
2024-09-23 11:33:02 -04:00
Liz
7309df1b16 adding code for ikea halloween prop
Code and sound effects for the ikea spinning pumpkin prop
2024-09-23 11:24:02 -04:00
Anne Barela
f9377c671f
Merge pull request #2885 from jedgarpark/doom_keeb
first commit doom keyboard code
2024-09-17 19:19:20 -04:00
John Park
ea006a7801 first commit doom keyboard code 2024-09-17 16:08:19 -07:00
Anne Barela
5d50d6921f
Merge pull request #2884 from adafruit/Matrix_S3_itsaSNAP_Daily_Forecast
Added itsaSNAP project contents
2024-09-16 15:33:01 -04:00
TrevKnows
8aaa60103b Added a new line and removed settings.toml 2024-09-16 14:57:51 -04:00
TrevKnows
9210da3106 Added SPDX Identifier 2024-09-16 12:27:58 -04:00
TrevKnows
6bdc53cf98 Removed Library Files and added SPDX id 2024-09-16 11:59:51 -04:00
TrevKnows
fb0b540278 Added itsaSNAP project contents 2024-09-16 10:54:13 -04:00
Anne Barela
7601d79245
Merge pull request #2881 from adafruit/rp2350_examples
CircuitPython Feather RP2350 examples
2024-09-12 16:33:46 -04:00
Liz
0d7939c401 lint 2024-09-12 15:35:59 -04:00
Liz
906b88a2e4 CircuitPython Feather RP2350 examples
adding examples for the Feather RP2350
2024-09-12 15:34:00 -04:00
foamyguy
344d7f79a2
Merge pull request #2880 from FoamyGuy/blinka_says
Blinka Says Game
2024-09-10 16:30:09 -05:00
foamyguy
40a0ccbdf3 move highscore to GameState object instead of global var 2024-09-10 15:59:53 -05:00
foamyguy
e810d3f23d initial code for Blinka Says game. 2024-09-09 20:38:35 -05:00
Liz
44a599230f
Merge pull request #2879 from adafruit/ci_bandaids
adding test onlys as workarounds
2024-09-09 16:11:21 -04:00
Liz
c181cb221d remove old test onlys 2024-09-09 15:42:21 -04:00
Liz
8bce2e1b5c adding test onlys as workarounds
Adding test onlys as a patch for espressif bsp rc and error from picodvi library
2024-09-09 15:35:47 -04:00
Liz
cc9d8c18c9
Merge pull request #2878 from adafruit/ch32_qtpy
QT Py CH32V203 examples
2024-09-09 12:10:14 -04:00
Liz
881ab47517 Update Feather_DVI_Arduino_Video_Synth.ino 2024-09-09 11:51:42 -04:00
Liz
ccaf807c94 fix ybox3 2024-09-09 11:39:17 -04:00
Liz
f6081e8407 Update PicoW_YBox3.ino 2024-09-09 11:25:28 -04:00
Liz
c5e1f5b11b test onlys 2024-09-09 11:10:44 -04:00
Liz
0170bbcf23 examples for qt py ch32v203
adding examples for LED blink, i2c scan, neopixel rainbow swirl and hid keyboard for the QT Py CH32V203. also including compiled binaries
2024-09-09 11:09:42 -04:00
Anne Barela
9f2f2b9bc6
Merge pull request #2877 from adafruit/rs232_ble
code for BLE RS232 controller
2024-09-06 14:38:43 -04:00
Liz
695724c605 code for BLE RS232 controller
CircuitPython code for the ESP32-S3 BLE RS232 controller
2024-09-06 14:33:07 -04:00
John Edgar Park
171be2c018
Merge pull request #2876 from jedgarpark/power-deliverer
first commit guide code for power deliverer
2024-08-28 17:43:01 -07:00
John Park
60904c301f first commit guide code for power deliverer 2024-08-28 14:25:16 -07:00
Liz
8d7863b718
Merge pull request #2874 from adafruit/usbhost_featherwing
adding usb host featherwing example
2024-08-26 09:19:53 -04:00
Liz
42af17d20a adding usb host featherwing example
Adding device info circuitpython example for usb host featherwing
2024-08-26 08:48:43 -04:00
foamyguy
676ee67803
Merge pull request #2873 from FoamyGuy/fix_1d_chomper_import
fix entity import in 1d chomper
2024-08-23 08:52:32 -05:00
foamyguy
68dc78de19 fix import 2024-08-22 18:31:10 -05:00
Liz
b02cc99d9a
Merge pull request #2872 from adafruit/c6_feather_factory
factory test for C6 feather
2024-08-20 15:38:13 -04:00
Liz
c3a4509bf3 add C6 feather to CI 2024-08-20 14:49:46 -04:00
Liz
8fcd9c06cf factory test for C6 feather 2024-08-20 14:37:19 -04:00
Mikey Sklar
cc19eef888
Merge pull request #2871 from adafruit/azure-ssl-max17048
Azure ESP32-S2 TFT SSL and MAX17048
2024-08-18 09:28:33 -07:00
Mikey Sklar
51ddbd3019 Update code.py 2024-08-18 09:24:45 -07:00
Mikey Sklar
854ee39fa2 Update code.py 2024-08-18 09:18:15 -07:00
Tyeth Gundry
440b1ba294
Merge pull request #2870 from adafruit/temporary-qualia-reset-fix
Use supervisor.reload instead of microcontroller.reset as it's broken for Qualia in 9.1.1 with tinyUF2 0.18.2
2024-08-14 22:38:55 +01:00
Tyeth Gundry
a14e92ba08 Use supervisor.reload instead of microcontroller.reset as it's broken in 9.1.1 with tinyUF2 0.18.2 2024-08-14 19:01:31 +01:00
Liz
4db61f558f
Merge pull request #2868 from adafruit/blinka_countdown
adding Blinka NeoPixel countdown code
2024-08-14 13:58:39 -04:00
Liz
b4aa60735b Update code.py 2024-08-13 21:31:41 -04:00
Liz
d92d3a6630 adding Blinka NeoPixel countdown code
adding Blinka NeoPixel countdown code. time is fetched from IO. when 16 or less days are remaining until the event, the neopixels light up one by one
2024-08-13 21:28:45 -04:00
Liz
75b7348115
Merge pull request #2867 from tyeth/circuitpython_day_countdown_io_timeservice
Circuitpython day countdown using Adafruit IO timeservice
2024-08-12 14:44:02 -04:00
Tyeth Gundry
fd2baf3f99 Add self attribution 2024-08-12 17:44:43 +01:00
Tyeth Gundry
644c91c3e1 Improve comment around timezone and please pylint 2024-08-12 16:48:43 +01:00
Tyeth Gundry
955c655bf2 Set CircuitPython day to 16th at midnight + TimeZone from settings.toml 2024-08-12 16:43:22 +01:00
Tyeth Gundry
9968f6c556 Add copyright and learn guide link for bar display init code 2024-08-12 16:00:43 +01:00
Tyeth Gundry
0217c1b612 Update Countdown Clock to support Qualia + include assets 2024-08-12 15:55:35 +01:00
Tyeth Gundry
24457b8a7b Rename Countdown Clock project for new target (Qualia) 2024-08-12 15:19:36 +01:00
tyeth
071d755f05 Add Pixels output for event - FunHouse board 2024-08-12 15:17:49 +01:00
Liz
2b88f8d8e6
Merge pull request #2866 from adafruit/openai_memento
updating openai memento
2024-08-12 09:42:38 -04:00
Liz
b41b012e13 updating openai memento
API changed, updating model name
2024-08-12 09:08:23 -04:00
tyeth
0071dd569a Set date + Break conditional to please pylint 2024-08-07 17:56:24 +01:00
tyeth
88f2a58e47 Add IO Time Service demo for CircuitPython day 2024-08-06 16:22:10 +01:00
Anne Barela
1d7f02f514
Merge pull request #2865 from brentru/fix-2-wheres-my-friend
Fix Wheres My Friend Project
2024-08-06 10:51:54 -04:00
brentru
96455052dc add wheresmyfriend 2024-08-06 10:45:59 -04:00
Brent Rubell
16c38168e9
Merge pull request #2864 from brentru/fix-wheres-my-friend
Fix: Where's my friend
2024-08-06 08:41:31 -05:00
brentru
94706109e0 fix code.py 2024-08-05 16:42:02 -04:00
Tyeth Gundry
1e62b17ce5
Merge pull request #2863 from adafruit/fix-ADAFRUIT_AIO_USERNAME
Correct field names for Adafruit IO to match website
2024-08-05 21:24:08 +01:00
Tyeth Gundry
eedd124d43
Correct field names for Adafruit IO to match website 2024-08-05 21:18:42 +01:00
Anne Barela
12f449bae4
Merge pull request #2862 from brentru/add-wheres-my-friend
Add files for upcoming guide, "Where's My Friend? Location Display Frame with PyPortal and ItsaSnap"
2024-08-05 15:32:50 -04:00
brentru
db37f2c53d reduce line len 2024-08-05 15:11:44 -04:00
brentru
8593c16d42 enlinten 2024-08-05 15:08:36 -04:00
brentru
df22e21825 linty 2024-08-05 14:55:42 -04:00
brentru
54eb946bdf add new guide contnets 2024-08-05 14:49:23 -04:00
Limor "Ladyada" Fried
0eba9f248a
Merge pull request #2861 from adafruit/tannewt-patch-2
Correct package names in requirements.txt
2024-08-05 14:18:53 -04:00
Scott Shawcroft
c4e22b3be0
Update requirements.txt 2024-08-05 11:14:18 -07:00
Scott Shawcroft
de3e878437
Correct requirements.txt 2024-08-05 11:13:31 -07:00
Mikey Sklar
1831ab7ce9
Merge pull request #2860 from adafruit/soundboard-i2s-fix
Soundboard Speaker I2S fix
2024-08-04 12:08:56 -07:00
Mikey Sklar
d062c103bb Update code.py 2024-08-04 11:57:15 -07:00
Anne Barela
15dbd2fa80
Merge pull request #2859 from adafruit/cp_day
update tft background
2024-08-02 12:51:41 -04:00
Liz
979191aabe update tft background
Update TFT background so that scrolling text is easier to see
2024-08-02 11:46:55 -04:00
Anne Barela
3bfc11d72e
Merge pull request #2858 from adafruit/cp_day
circuitpython day countdowns
2024-08-02 10:27:20 -04:00
Liz
1b3480b2e4 circuitpython day countdowns
Code for the two CP countdown projects. One for Feather DVI and another for ESP32-S3 TFT
2024-08-02 10:07:06 -04:00
Anne Barela
7d8fd34e13
Merge pull request #2857 from adafruit/park_times
adding code, image and font for theme park display
2024-08-01 12:08:52 -04:00
Liz
1c286f4ab9 adding code, image and font for theme park display
Adding CircuitPython code, bitmap and font file for the Qualia S3 Theme Park display
2024-08-01 11:40:13 -04:00
Anne Barela
d013839776
Merge pull request #2854 from adafruit/cnc_update
cnc macropad code update
2024-07-29 10:14:01 -04:00
Liz
a3be3357a6 cnc macropad code update
update shortcuts for cura
2024-07-29 08:07:02 -04:00
Anne Barela
7dbfc24ff1
Merge pull request #2852 from adafruit/rename_cnc
update project name and rotary encoder pins
2024-07-18 15:12:20 -04:00
Liz
d78a6563a5 change to D24, D25 for encoder
rp2040 pins
2024-07-18 15:02:02 -04:00
Liz
eaa554565a rename cnc macropad folder
no longer using an esp32-s3
2024-07-18 14:59:55 -04:00
Liz
dd9f95b3be
Merge pull request #2849 from adafruit/esp32s3_macro
adding code for ESP32-S3 macropad
2024-07-18 10:32:52 -04:00
Liz
9fd7bf6c24 updating to be usb instead of BLE 2024-07-18 10:25:37 -04:00
Anne Barela
52213faa6d
Merge pull request #2851 from adafruit/esp32s3_iosMedia
adding BLE iOS media controller code
2024-07-17 16:02:11 -04:00
Liz
a9952b79a5 adding BLE iOS media controller code 2024-07-17 15:55:38 -04:00
Anne Barela
0f644af801
Merge pull request #2850 from adafruit/TheKitty-patch-2
Issue noted in Learn
2024-07-16 16:18:12 -04:00
Anne Barela
02b3dc8391
Update code.py 2024-07-16 16:15:40 -04:00
Anne Barela
86f66dd251
Update code.py 2024-07-16 16:11:57 -04:00
Anne Barela
ca878d0875
Issue noted in Learn
Add the middle line between the first and last line in the example for setting up an SD Card. The first item is a '?' and the code crashes. On web page:
https://learn.adafruit.com/adafruit-micro-sd-breakout-board-card-tutorial/circuitpython
blakebr
.
.
for file in os.listdir(path):
if file == "?": continue
print(file, path + "/" + file)
2024-07-16 16:02:15 -04:00
Liz
bb759ddae6 adding code for ESP32-S3 macropad 2024-07-15 14:20:46 -04:00
Anne Barela
237cb1a952
Merge pull request #2848 from jedgarpark/grill-dash
grill dashboard code
2024-07-13 09:38:54 -04:00
John Park
81613ea763 grill dashboard code 2024-07-12 13:56:16 -07:00
Liz
879a24557b
Merge pull request #2847 from adafruit/rs-232_pal
rs-232 pal demos
2024-07-11 15:15:19 -04:00
Liz
b5ee85acea update for rpi 2024-07-11 14:53:26 -04:00
Liz
4aa63fd4ec rs-232 pal demos
CircuitPython and Arduino RS-232 Pal demos. uses serial console to send commands
2024-07-11 12:27:11 -04:00
Anne Barela
4df862a98c
Merge pull request #2846 from adafruit/ir_transceiver
adding examples for the stemma ir transceiver
2024-07-09 11:52:52 -04:00
Liz
21f1186eb1 adding examples for the stemma ir transceiver
Adding CP and Arduino examples for the IR transceiver guide
2024-07-09 11:30:35 -04:00
Jeff Epler
cd779f7f80
Merge pull request #2845 from adafruit/mp3-stream-circuitpython
example code for mp3 streaming
2024-07-03 17:44:10 -05:00
30bafae71b example code for mp3 streaming 2024-07-03 17:03:01 -05:00
Liz
dd6e7c2630
Merge pull request #2844 from adafruit/picowbell_timelapse
Adding picowbell timelapse code
2024-07-03 14:02:46 -04:00
BlitzCityDIY
355d9a8819 Adding picowbell timelapse code
Adding CircuitPython code for the picowbell tripler timelapse camera
2024-07-03 11:11:02 -04:00
Anne Barela
a5d6e23668
Merge pull request #2843 from adafruit/magic_band_update
updating neopixel count to fit learn guide build
2024-07-01 13:27:13 -04:00
Noe Ruiz
f6b4b387a4 updating neopixel count to fit learn guide build
updating neopixel count to fit learn guide build
2024-07-01 13:21:58 -04:00
Mikey Sklar
b8e4a6ae02
Merge pull request #2842 from adafruit/clue-light-paintstick-ulab
CLUE Light Painter ::  bmp2led.py
2024-07-01 09:13:27 -07:00
Mikey Sklar
200babd284 Update bmp2led.py 2024-07-01 09:06:44 -07:00
Mikey Sklar
c3e61afd83
Merge pull request #2841 from adafruit/led-bullwhip-lsm6ds-fix
LED Bullwhip update for Feather Sense LSM6DS
2024-07-01 08:40:47 -07:00
Mikey Sklar
032056d78e Update code.py 2024-07-01 08:34:19 -07:00
Anne Barela
b4ed28d1bb
Merge pull request #2840 from adafruit/adalogger_demos
adding sd card demos
2024-07-01 10:12:41 -04:00
Liz
9b92851d3e adding sd card demos
Adding sd card demos for the RP2040 Adalogger
2024-07-01 09:52:49 -04:00
Anne Barela
67eccd1652
Merge pull request #2839 from jedgarpark/servo-commander
first commit servo commander code
2024-06-28 19:53:06 -04:00
John Park
749d43e635 first commit servo commander code 2024-06-28 16:46:25 -07:00
Anne Barela
bc5742ca2f
Merge pull request #2838 from adafruit/adalogger_factory
rp2040 adalogger factory test
2024-06-28 17:37:01 -04:00
Liz
be531417cf rp2040 adalogger factory test
Adding Feather RP2040 Adalogger factory test and rp2040 adalogger to CI
2024-06-28 16:26:22 -04:00
Jeff Epler
c1e1c6cc9d
Merge pull request #2837 from jepler/fix-arduino-cron
Fix arduino_cron to actually build stuff
2024-06-26 21:00:50 -05:00
Liz
474c37b137 remove trrs from CI for now
i reverted the changes we did to the arduino core because it did not solve the issues here and was throwing errors on compiling. i'm thinking that since this is a larger issue and currently there are only two TRRS Trinkey Arduino scripts (basic demo and factory test) that for now we remove it from CI to resolve this PR and continue investigating after a merge so that the CI can be back in action
2024-06-25 19:21:15 -04:00
Liz
51f4a4a148 will trrs pass CI 2024-06-25 18:06:04 -04:00
Liz
e3f43d715f alphabetize the platforms 2024-06-24 17:51:10 -04:00
Liz
2c5f5d7a18 nrf52840 2024-06-24 17:35:06 -04:00
Liz
690f3a01cf esp32 tests 2024-06-24 17:05:53 -04:00
Liz
768256cfe0 remove extra generates 2024-06-24 12:44:33 -04:00
Liz
12205b8b55 microsoft hid errors, remove and try to fix duplicate pycamera warning 2024-06-24 12:28:46 -04:00
Liz
125f760d5c more test onlys 2024-06-24 11:57:52 -04:00
Liz
45e7e8e5b6 picowbell test only 2024-06-24 11:43:47 -04:00
Liz
8f9a1bb02b adding microsoft hid lib and more test onlys 2024-06-24 11:34:59 -04:00
Liz
03bd7c15be some test onlys for IR boards 2024-06-24 11:11:01 -04:00
Liz
537cf66a40 trrs trinkey and pixel trinkey to cron 2024-06-24 09:55:41 -04:00
Liz
c73b419ed0 Merge branch 'fix-arduino-cron' of https://github.com/jepler/Adafruit_Learning_System_Guides into pr/2837 2024-06-21 15:28:44 -04:00
Liz
bdbb93e521 magtag quotes for bsp3 2024-06-21 15:28:29 -04:00
67d74be0e2 fix a test.only filename 2024-06-21 14:06:49 -05:00
aaf08919ce include sht4x library 2024-06-21 14:06:49 -05:00
461a52fadb test only files for USB Host BFF 2024-06-21 14:06:49 -05:00
Liz
fa5d53887f rename cafe lights 2024-06-21 15:05:42 -04:00
827b431bf6 tweak test.only files
as long as ch552 is not a ci-arduino recognized board, it has to be a
"none.test.only" file. Rename these once the related issue is closed
in ci-arduino.
2024-06-21 13:46:17 -05:00
b58ddfe0ad Add Adafruit BNO055 to library.deps 2024-06-21 13:30:39 -05:00
cf9263932a add additional test.only files
These named platforms (ch552, trrstrinkey_m0, shttrinkey_m0,
pixeltrinkey_m0) may not be correct and they need to be listed in
ci-arduino all_platforms.py and arduino_cron.yml to work. The main goal
is to get OTHER microcontroller builds to skip these examples.
2024-06-21 13:28:49 -05:00
3dcb2f28fe add Adafruit ADG72x to library.deps 2024-06-21 13:17:09 -05:00
b7cc998f6b do arduino build in the case that any yml files change 2024-06-21 13:07:26 -05:00
d5b100829a Fix arduino_cron
Apparently since #2497, in which the extra 'checkout' line was lost,
we have not actually been building the arduino artifacts during CI.

The line may have looked like a mistake or duplicate when the CI was
revised.
2024-06-21 13:02:34 -05:00
Anne Barela
f00ff213fd
Merge pull request #2836 from adafruit/BlitzCityDIY-patch-1
Update SHT4x trinkey demo
2024-06-19 15:51:50 -04:00
Liz
bb67c12bde
Update code.py 2024-06-19 15:45:38 -04:00
Anne Barela
53dacbbe9d
Merge pull request #2835 from jedgarpark/usb-midi-host-messenger
first commit usb midi host messenger arduino feather rp2040 usb host
2024-06-17 20:10:01 -04:00
John Park
f831f81834 first commit usb midi host messenger arduino code for feather rp2040 usb host 2024-06-17 16:43:02 -07:00
Anne Barela
2cc9d2afae
Merge pull request #2834 from adafruit/ch9328_cpython
adding CH9328 CPython demo
2024-06-11 21:05:50 -04:00
Liz
72f5880410 adding CH9328 CPython demo 2024-06-11 20:07:28 -04:00
Anne Barela
56ba6b1af9
Merge pull request #2833 from adafruit/soundbox-update
update soundbox code and sounds
2024-06-10 19:15:49 -04:00
Noe Ruiz
8de5b7a9fe update soundbox code and sounds
updating soundbox code and sounds
2024-06-10 15:40:43 -04:00
Anne Barela
ad042d2498
Merge pull request #2832 from jedgarpark/xac-joystick
XAC joysticks first commit
2024-06-07 10:42:41 -04:00
John Park
16e4fc0255 XAC joysticks first commit 2024-06-07 07:34:37 -07:00
Liz
b4d8dd5287
Merge pull request #2831 from adafruit/sound_box
update for sound box
2024-06-05 17:18:44 -04:00
Liz
799581c08d update for sound box
adding ability for multiple "shake" activated sound effects
2024-06-05 15:21:37 -04:00
Anne Barela
8a08dcf862
Merge pull request #2830 from adafruit/sound_box
code and sound files for the sound box
2024-06-05 11:48:20 -04:00
BlitzCityDIY
2a1da0fefd code and sound files for the sound box
Adding code and sound files for the sound box remake project
2024-06-05 11:26:34 -04:00
Anne Barela
825a1039c0
Merge pull request #2829 from adafruit/code_learner
adding demo for the TSMP96000
2024-06-04 17:43:32 -04:00
Liz
ed6aa2b8ea adding demo for the TSMP96000
Demo code for the TSMP96000 code learner ir receiver
2024-06-04 17:16:08 -04:00
Liz
3fcffd1d92
Merge pull request #2828 from adafruit/neo_trinkey
update lamparray UF2
2024-06-03 19:43:12 -04:00
Liz
000d4d18a9 update lamparray UF2
Update UF2 for HID LampArray and RGB NeoPixels
2024-06-03 19:16:17 -04:00
Dan Halbert
e539fcb783
Merge pull request #2813 from bradanlane/bls_cpx_ir_data
IR learning guides have ones and zeros swapped
2024-06-03 09:59:57 -04:00
Bradán Lane
8fec3a5a29 correct copy/paste error 2024-06-03 09:40:46 -04:00
Bradán Lane
22f911ab6e use standard header values (9000,4500) and standard marker value (560); retested 2024-06-03 09:32:59 -04:00
bradanlane
557db82675
Merge branch 'adafruit:main' into bls_cpx_ir_data 2024-06-03 09:11:56 -04:00
Anne Barela
6252a417ea
Merge pull request #2827 from adafruit/dune_thumper
Code for the Dune Thumper project
2024-06-03 08:32:06 -04:00
Liz
71946c4c49 lint 2024-06-03 08:28:47 -04:00
Liz
6bf3658e54 Code for the Dune Thumper project
Adding code and sound effect for the Dune Thumper project
2024-06-03 08:23:44 -04:00
Anne Barela
fcf40b57e7
Merge pull request #2826 from adafruit/neo_trinkey
adding arduino lamparray example
2024-05-31 17:25:09 -04:00
Liz
102ed595e3 adding arduino lamparray example
Adding HID LampArray example for Arduino along with UF2 files. Increasing pixel count to 64 for other Arduino examples
2024-05-31 16:07:27 -04:00
Liz
de1eec5e09
Merge pull request #2825 from adafruit/neo_trinkey
adding python AIO example
2024-05-30 11:52:38 -04:00
Liz
6e7c8d89e1 take out client import 2024-05-30 11:45:06 -04:00
Liz
aabdb4e1ff take out extra aio connection & add uf2 2024-05-30 11:41:03 -04:00
Liz
8dd940da3d adding python AIO example
Adding color picker example for Pixel Trinkey. Trinkey runs an arduino sketch listening for a color value on the COM port. Python desktop sketch listens for a new color from an AIO feed
2024-05-30 11:35:30 -04:00
Liz
024cb0859c
Merge pull request #2824 from adafruit/neo_trinkey
neopixel trinkey examples
2024-05-29 16:14:26 -04:00
Liz
0997d95c9e neopixel trinkey examples
Adding basic examples for NeoPixel Trinkey guide
2024-05-29 16:02:52 -04:00
Anne Barela
3c410fd6ea
Merge pull request #2822 from firepixie/Programmable_12v_Cafe_Lights
Create designer_palettes_sunset.ino
2024-05-29 15:40:14 -04:00
firepixie
1f6540c912 Update designer_palettes_sunset.ino
added SPDX info per Anne
2024-05-29 12:36:10 -07:00
John Edgar Park
21123b6011
Merge pull request #2823 from jedgarpark/drum-track-sequencer
first commit drum track sequencer
2024-05-29 07:00:30 -07:00
John Park
cbed6e3267 first commit drum track sequencer 2024-05-28 19:57:56 -07:00
Anne Barela
583969ffe5
Merge pull request #2821 from adafruit/trrs_atmakers
analog mouse demo
2024-05-28 20:08:50 -04:00
firepixie
b29d422550 Create designer_palettes_sunset.ino 2024-05-28 16:18:32 -07:00
Liz
b3d09e64b4 analog mouse demo
analog mouse demo from ATMakers for TRRS Trinkey
2024-05-28 17:23:09 -04:00
Liz
4c375a1b8e
Merge pull request #2820 from adafruit/trrs_atmakers
adding ATMakers TRRS Trinkey demos
2024-05-28 15:22:46 -04:00
Liz
10311e1b1f Update XACsettings.py 2024-05-28 15:11:03 -04:00
Liz
87d83ca0bf adding ATMakers TRRS Trinkey demos
Adding two demos from ATMakers for the TRRS Trinkey guide
2024-05-28 15:05:36 -04:00
Liz
4b134e0109
Merge pull request #2819 from adafruit/trrs_trinkey_switch
AT switch demos
2024-05-28 11:23:18 -04:00
Liz
f7159b6c23 AT switch demos
Adding AT switch demos for the TRRS Trinkey
2024-05-28 11:06:14 -04:00
Anne Barela
481778c4ee
Merge pull request #2818 from adafruit/pixel_trinkey_factory
adding factory test for pixel trinkey
2024-05-24 10:44:41 -04:00
Liz
a4f069bf1f adding factory test for pixel trinkey 2024-05-24 10:08:08 -04:00
Liz
ec15ff3be0
Merge pull request #2817 from adafruit/ybox3
code and graphics for ybox3 project
2024-05-21 14:09:50 -04:00
Liz
c6e020d0b1 spdx for headers 2024-05-21 11:52:43 -04:00
Liz
c28be073dd code and graphics for ybox3 project
Adding the code and graphics header files for the Pico W YBox3 project
2024-05-21 11:51:04 -04:00
Anne Barela
a27ab4b21a
Merge pull request #2816 from adafruit/tripler
adding font for tripler example
2024-05-20 16:13:23 -04:00
Liz
3becea104b adding font for tripler example
Adding font for CP example.
2024-05-20 15:59:26 -04:00
Liz
9c59573a0c
Merge pull request #2815 from adafruit/tripler
picowbell tripler demos
2024-05-20 15:31:25 -04:00
Liz
163a3a9f4e picowbell tripler demos
CircuitPython and Arduino demos for the PiCowbell Tripler
2024-05-20 14:51:59 -04:00
Liz
0a1fb9e2b2
Merge pull request #2814 from adafruit/dial_update
updating media controller code
2024-05-20 10:13:29 -04:00
Liz
ae9efe71ca updating media controller code
Updating media controller code to use more press options and user definable variables at the top
2024-05-20 09:42:39 -04:00
bradanlane
10583997d0
Merge pull request #1 from adafruit/main
Correct CircuitPython IR ?learning guides to match irremote library example
2024-05-17 11:28:24 -04:00
Liz
6c93e1018b
Merge pull request #2812 from adafruit/trrs_factoryreset
Create TRRS_Trinkey_FactoryTest.ino
2024-05-17 11:24:32 -04:00
Liz
3887691783 Update TRRS_Trinkey_FactoryTest.ino 2024-05-17 11:14:01 -04:00
Liz
d3fb47fb36 take out self test 2024-05-17 11:12:56 -04:00
Liz
51b6510a94 Create TRRS_Trinkey_FactoryTest.ino
Adding factory test for the TRRS Trinkey
2024-05-17 11:08:52 -04:00
Anne Barela
134bb849a0
Merge pull request #2811 from adafruit/halo-energy-sword
Adding files for Halo Energy Sword guide
2024-05-14 08:27:38 -04:00
Noe Ruiz
d24ca791c5 Adding files for Halo Energy Sword guide
adding code.py and sounds for halo energy sword guide
2024-05-14 08:07:34 -04:00
Anne Barela
443285e716
Merge pull request #2810 from adafruit/sen5x
sen5x adapter demos
2024-05-13 14:56:25 -04:00
Liz
f401d4c985 lint 2024-05-13 14:49:25 -04:00
Liz
6afa924815 Delete SEN5x_Example_Arduino.ino 2024-05-13 14:46:36 -04:00
Liz
0cd69abe06 sen5x adapter demos
Adding CPython and Arduino examples for the SEN5x sensor adapter
2024-05-13 14:44:13 -04:00
Dan Halbert
80ed5a352b
Merge pull request #2809 from adafruit/wn-rocket-code-fix
Fix code for white noise rocket guide
2024-05-13 11:02:45 -04:00
Noe Ruiz
5b5a4da45c Fix code for white noise rocket guide
update neopixel count per white noise rocket guide feedback
2024-05-13 10:52:36 -04:00
Anne Barela
02fe2d2b39
Merge pull request #2808 from adafruit/media_dial
Adding code for media controller
2024-05-10 12:55:51 -04:00
Liz
bd50fcc73e Adding code for media controller
Adding code for media controller project using a qt py and stemma rotary encoder to send media consumer control messages
2024-05-10 12:34:47 -04:00
Anne Barela
12b89e7a92
Merge pull request #2807 from adafruit/cpy-slider-name-fix
update bitmap file names to match code.py
2024-05-10 09:24:26 -04:00
Noe Ruiz
1f6c843a94 update bitmap file names to match code.py
updated bitmap file names to match code.py
2024-05-10 09:17:28 -04:00
Anne Barela
a6ff27899e
Merge pull request #2805 from adafruit/ch552_examples
CH552 examples
2024-05-08 10:59:47 -04:00
BlitzCityDIY
b1bc30a6cf CH552 examples
Adding examples for the QT Py CH552 learn guide. examples for led blink, analog in, capacitive touch, i2c with the AHT20 and neopixel swirl
2024-05-08 10:49:37 -04:00
Liz
bc31f2d518
Merge pull request #2804 from adafruit/picow_cam
adding try/except for picowbell camera
2024-05-06 19:48:07 -04:00
Liz
56bf5f6276 adding try/except for picowbell camera
Adding a try/except for picowbell camera demo in case a memory allocation issue occurs with the pico w.
2024-05-06 15:26:51 -04:00
bradanlane
465fe5a399
correct one and zero list values
the list values for ONE and ZERO are swapped from what is described in the Adafruit_irremote.py library. This error causes the receiver to get the one-s compliment of the expected data.
2024-05-05 10:08:18 -04:00
bradanlane
c2c4c9160e
correct one and zero list values
the list values for ONE and ZERO are swapped from what is described in the Adafruit_irremote.py library. This error causes the receiver to get the one-s compliment of the expected data.
2024-05-05 10:05:26 -04:00
bradanlane
f43b59dc42
correct one and zero list values
the list values for ONE and ZERO are swapped from what is described in the Adafruit_irremote.py library. This error causes the receiver to get the one-s compliment of the expected data.
2024-05-05 10:00:19 -04:00
bradanlane
178a1a1b22
correct one and zero list values
the list values for ONE and ZERO are swapped from what is described in the Adafruit_irremote.py library. This error causes the receiver to get the one-s compliment of the expected data.
2024-05-05 09:55:52 -04:00
Liz
a4f549354f
Merge pull request #2803 from adafruit/picowbell_camera
adding PiCowbell Camera examples
2024-05-03 18:04:10 -04:00
Liz
814642e012 add bitmap 2024-05-03 17:36:23 -04:00
Liz
bc2a09c839 add bongo cat demo
bongo cat demo for qt2040
2024-05-03 17:35:42 -04:00
Liz
92729b957b adding PiCowbell Camera examples
Adding a TFT viewer and JPEG capture example for the PiCowbell Camera
2024-05-03 17:00:46 -04:00
Anne Barela
21ca6d820b
Merge pull request #2802 from adafruit/soundboard-scooter-bike-fix
update code.py for correct pins
2024-05-03 15:54:14 -04:00
Noe Ruiz
d082245cf4 update code.py for correct pins
updating pins to fix code
2024-05-03 15:41:12 -04:00
Melissa LeBlanc-Williams
812dbf8d9e
Merge pull request #2800 from caternuson/tl_update
Update Code Comments for Wearable Timelapse Camera Project
2024-05-02 08:09:22 -07:00
caternuson
6bfdbd656d update comments 2024-05-02 08:04:52 -07:00
Liz
ca525c0e34
Merge pull request #2799 from adafruit/usb_bff
usb host bff examples
2024-05-02 09:53:13 -04:00
Liz
c102b1fa54 update print for hid report 2024-05-02 09:49:14 -04:00
Liz
c2888cf63a usb host bff examples
Adding Arduino and CircuitPython USB Host BFF examples for device info and HID report
2024-05-02 09:37:10 -04:00
Anne Barela
5102e9d6d9
Merge pull request #2798 from makermelissa/main
Update Timelapse Camera dest folder and backup original script
2024-05-01 14:30:28 -04:00
Melissa LeBlanc-Williams
32186d192e Update dest folder and add old shell script so it is not last 2024-05-01 11:07:18 -07:00
Melissa LeBlanc-Williams
8f288c4385
Merge pull request #2797 from makermelissa/main
Rewrote Wearable Time Lapse Camera script in python
2024-04-30 13:21:34 -07:00
Melissa LeBlanc-Williams
d09369e1bf disable line too long error 2024-04-30 12:14:49 -07:00
Melissa LeBlanc-Williams
584cc5b123 Add spdx and lint 2024-04-30 12:10:31 -07:00
Melissa LeBlanc-Williams
46550a403d Wrote Wearable Time Lapse Camera script in python 2024-04-30 11:51:05 -07:00
Anne Barela
5c2fcda37e
Merge pull request #2796 from adafruit/dvi_sock
adding dvi sock examples
2024-04-30 11:47:54 -04:00
Liz
d6402b02fc lint 2024-04-30 11:41:35 -04:00
Liz
fd1e1f78a2 adding dvi sock examples
Adding CircuitPython and Arduino examples for the DVI Sock breakout
2024-04-30 11:38:05 -04:00
Anne Barela
fd34db74c6
Merge pull request #2795 from adafruit/ir_demod
Adding IR demodulator examples
2024-04-25 16:04:45 -04:00
Liz
9eca690075 Adding IR demodulator examples
Adding STEMMA IR demodulator examples for CircuitPython and Arduino
2024-04-25 15:12:09 -04:00
Anne Barela
eaa77c85b9
Merge pull request #2794 from adafruit/TheKitty-patch-1
Create adalogger-logging.ino
2024-04-24 10:40:54 -04:00
Anne Barela
bc507a7104
Create adalogger-logging.ino
Per Ladyada
2024-04-24 10:35:01 -04:00
Anne Barela
989cd9ff09
Merge pull request #2793 from jedgarpark/psx-controller
deeper sleep via 'esp_wifi_stop()'
2024-04-23 17:30:06 -04:00
John Park
ea790e9284 deeper sleep via 'esp_wifi_stop()' 2024-04-23 14:02:30 -07:00
Dan Halbert
3970513457
Merge pull request #2790 from ViToni/bugfix/Fix_vertical_alignment_of_app_header
Move app name a few pixel down for better vertical alignment
2024-04-22 17:36:11 -04:00
Victor Toni
463a9b966a
Merge branch 'adafruit:main' into bugfix/Fix_vertical_alignment_of_app_header 2024-04-22 23:18:13 +02:00
Anne Barela
eabee0b457
Merge pull request #2791 from ViToni/bugfix/fix_missing_SPDX_header
Adjust SPDX header for recently merged file
2024-04-22 13:49:29 -04:00
Anne Barela
564c3ad6bb
Merge pull request #2792 from adafruit/add-spdx
add spdx to recently merged file
2024-04-21 12:47:26 -04:00
8248744092 add spdx to recently merged file 2024-04-21 11:37:59 -05:00
Victor Toni
63f023a4e3 Adjust SPDX header 2024-04-20 15:27:27 +02:00
Victor Toni
4fcfeaaedb Move app name a few pixel down for better vertical alignment 2024-04-20 15:14:44 +02:00
Anne Barela
33456edce4
Merge pull request #1930 from ViToni/feature/Add_blank_screen_for_MacroPad
Thank you
2024-04-20 08:52:10 -04:00
Dan Halbert
e88f652a04
Merge pull request #2789 from adafruit/dhalbert-patch-1
Add simple keypad macropad example
2024-04-18 16:09:32 -04:00
Dan Halbert
3aaf91d640
add SPDX 2024-04-18 15:55:24 -04:00
Dan Halbert
2a58a1797a
Add simple keypad macropad example 2024-04-18 15:52:23 -04:00
Anne Barela
b3935350c1
Merge pull request #2752 from Kheirlb/kparks/stm32-can-ack-fix
make feather can ack example work with stm32f405
2024-04-18 07:05:15 -04:00
Anne Barela
8eee1467c3
Merge pull request #2788 from jedgarpark/playstation-controller
added wifi timout
2024-04-18 07:04:15 -04:00
John Park
6c06002b56 added wifi timout 2024-04-17 17:57:03 -07:00
Anne Barela
f3b651ff6c
Merge pull request #2787 from adafruit/bno055_bmp280_bff
add BNO055 and BMP280 BFF examples
2024-04-17 16:58:17 -04:00
Liz
e2b43f353e add BNO055 and BMP280 BFF examples
adding circuitpython and arduino examples for BNO055 BMP280 BFF. also updating adg728 example to flip between two channels
2024-04-17 16:20:11 -04:00
Anne Barela
9fda4e298a
Merge pull request #2786 from jedgarpark/playstation-controller
first commit playstation esp32 controller code
2024-04-17 09:36:23 -04:00
John Park
439c9be319 added SPDX 2024-04-16 18:00:07 -07:00
John Park
5a7bd9dd76 first commit playstation esp32 controller code 2024-04-16 17:39:20 -07:00
Anne Barela
f86824cd24
Merge pull request #2785 from adafruit/gravity_falls
gravity falls prop
2024-04-16 14:45:34 -04:00
Liz
cf4872dd50 lint 2024-04-16 14:38:17 -04:00
Liz
55cf6fc00e gravity falls prop
adding code, sound effects and font file for gravity falls prop learn guide
2024-04-16 14:30:32 -04:00
Liz
15f0e83ca0
Merge pull request #2784 from adafruit/ir_remote_receiver
example code for ir remote receiver
2024-04-16 13:15:10 -04:00
Liz
3d2da42319 example code for ir remote receiver
Adding CP example code, product demo code and Arduino code for the IR remote receiver
2024-04-16 12:09:38 -04:00
Anne Barela
9142c83df3
Merge pull request #2783 from adafruit/adg72x_examples
adding ADG729 examples
2024-04-15 17:53:52 -04:00
Liz
5325095d51 adding ADG729 examples
adding ADG729 examples for Arduino and CircuitPython
2024-04-15 17:45:24 -04:00
Anne Barela
f801e29667
Merge pull request #2782 from adafruit/adg72x_examples
adding Arduino and CP examples for ADG72x
2024-04-15 11:29:29 -04:00
Liz
297910abbf adding Arduino and CP examples for ADG72x 2024-04-15 11:22:00 -04:00
Melissa LeBlanc-Williams
738b887bf8
Merge pull request #2781 from makermelissa/update-chatgptbear
Update Bear for Bookworm
2024-04-15 08:11:49 -07:00
Melissa LeBlanc-Williams
116a41db55 linted 2024-04-12 14:51:24 -07:00
Melissa LeBlanc-Williams
ebfdeb7b8c Update Bear for Bookworm 2024-04-12 14:48:05 -07:00
Limor "Ladyada" Fried
033c5303ac
Merge pull request #2780 from caternuson/ltc4316_examples
Add LTC4316 examples
2024-04-10 13:28:44 -04:00
caternuson
ad46a98c4b fix comment 2024-04-10 10:12:13 -07:00
caternuson
0267a4ec9a add ltc4316 examples 2024-04-10 09:58:10 -07:00
Dan Halbert
b31cb65f4f
Merge pull request #2265 from rdagger/patch-4
Update BLE code for CircuitPython 8 compatibility
2024-04-09 16:20:33 -04:00
Dan Halbert
389d364729
Merge pull request #1048 from ehershey/patch-1
Display CPU temperature in pihole stats script
2024-04-09 16:19:36 -04:00
Dan Halbert
2d34f1205e pylint fixes 2024-04-09 16:17:44 -04:00
Dan Halbert
1a6049f0fb
Merge pull request #2732 from jacobrose/patch-1
Readability improvements
2024-04-09 16:05:14 -04:00
Dan Halbert
cf8764a1d7 black 2024-04-09 16:02:09 -04:00
Dan Halbert
3c2bbe0775
Merge pull request #2701 from nivekmai/patch-1
Explain magic number in BLE advertisement
2024-04-09 15:57:44 -04:00
Dan Halbert
d8361eacf3
Merge pull request #2777 from adafruit/dhalbert-patch-13
PyPortal_Quarantine_Clock: update to settings.toml
2024-04-09 15:57:03 -04:00
Dan Halbert
507000f681
Merge pull request #2771 from adafruit/dhalbert-patch-7
PyPortal_Word_Of_the_Day: update to settings.toml
2024-04-09 15:52:24 -04:00
Liz
d3dd8cdcdc
Merge pull request #2779 from adafruit/picow_and_usb_host
Adding Pico W AIO and USB Host to BLE project code
2024-04-09 15:49:00 -04:00
Dan Halbert
758f916540
Merge pull request #2778 from adafruit/dhalbert-patch-14
Adafruit_IO_Power_Relay: update to settings.toml
2024-04-09 15:47:26 -04:00
Dan Halbert
cb3f0dbabd
Merge pull request #2767 from adafruit/dhalbert-patch-3
PyPortal_LIFX_Controller: get LIFX_TOKEN from settings.toml
2024-04-09 15:44:00 -04:00
Dan Halbert
b6d127c9db black PyPortal/PyPortal_Word_of_the_Day/code.py 2024-04-09 15:43:30 -04:00
Dan Halbert
702166c514
Merge pull request #2775 from adafruit/dhalbert-patch-11
Update TOTP_Friend secrets.py
2024-04-09 15:40:58 -04:00
Dan Halbert
d41a8560af
Merge pull request #2776 from adafruit/dhalbert-patch-12
pyportal_pet_planter: update to settings.toml
2024-04-09 15:40:01 -04:00
Dan Halbert
74968912c3
need a secrets dict for esp32spi_wifimanager 2024-04-09 15:39:19 -04:00
Liz
1629031acf Merge branch 'main' into picow_and_usb_host 2024-04-09 15:34:05 -04:00
Liz
1afc27f9b1 Adding Pico W AIO and USB Host to BLE project code
Adding Arduino code for two projects: Pico W DVI AIO display and the USB host featherwing to BLE
2024-04-09 15:30:28 -04:00
Dan Halbert
79fa13db39
forgot import os
This was supposed to be a PR, but I missed clicking "Create a new branch" earlier.
2024-04-09 15:23:54 -04:00
Dan Halbert
56fd748b19
Merge pull request #2774 from adafruit/dhalbert-patch-10
Update Dashblock_API to settings.toml
2024-04-09 14:12:12 -04:00
Dan Halbert
2d9416bd58
Merge pull request #2773 from adafruit/dhalbert-patch-9
PyPortal_Halloween_Countdown: update to settings.toml
2024-04-09 14:11:55 -04:00
Dan Halbert
f44a0ac095
Merge pull request #2770 from adafruit/dhalbert-patch-6
PyPortal_LeagueLevel: update to settings.toml
2024-04-09 14:11:39 -04:00
Dan Halbert
daaa77345f
Merge pull request #2769 from adafruit/dhalbert-patch-5
PyPortal_Thingiverse: update to settings.toml
2024-04-09 14:11:18 -04:00
Dan Halbert
613895cf3d
Merge pull request #2768 from adafruit/dhalbert-patch-4
Update PyPortal_Philips_Hue_Controller to use settings.toml
2024-04-09 14:10:56 -04:00
Dan Halbert
c6b26959c0
Merge pull request #2766 from adafruit/dhalbert-patch-2
PyPortal_Youtube: get youtube token from settings.toml
2024-04-09 14:09:36 -04:00
Dan Halbert
f92d93dbcb
Merge pull request #2765 from adafruit/dhalbert-patch-1
PyPortal_AirQuality: use settings.toml for AIRNOW_TOKEN
2024-04-09 14:09:10 -04:00
Dan Halbert
75e8cf2995
Merge pull request #2772 from adafruit/dhalbert-patch-8
PyPortal_Google_Calendar: update to settings.toml
2024-04-09 14:08:16 -04:00
Dan Halbert
7f949978a3
Adafruit_IO_Power_Relay: update to settings.toml 2024-04-09 14:03:01 -04:00
Dan Halbert
fc80f36526
PyPortal_Quarantine_Clock: update to settings.toml 2024-04-09 13:52:39 -04:00
Dan Halbert
e96290cd37
pyportal_pet_planter: update to settings.toml 2024-04-09 13:47:30 -04:00
Dan Halbert
d415f03502
Update TOTP_Friend secrets.py 2024-04-09 13:41:38 -04:00
Dan Halbert
cf6ffd5ca0
PyPortal_TOTOP_Friend: update to settings.toml 2024-04-09 13:39:57 -04:00
Dan Halbert
52abcb8702
PyPortal_AWS_IOT_Planter: update to settings.toml 2024-04-09 13:31:20 -04:00
Dan Halbert
e45243f024
Update Dashblock_API to settings.toml 2024-04-09 13:16:12 -04:00
Dan Halbert
7f25c224ed
PyPortal_Halloween_Countdown: update to settings.toml 2024-04-09 13:07:36 -04:00
Dan Halbert
c676edc66b
update code.py to settings.toml also 2024-04-09 13:01:19 -04:00
Dan Halbert
6686a6cddd
PyPortal_Google_Calendar: update to settings.toml 2024-04-09 12:54:08 -04:00
Dan Halbert
88d94c09a7
PyPortal_Word_Of_the_Day: update to settings.toml 2024-04-09 12:41:31 -04:00
Dan Halbert
a9b15cbe69
PyPortal_LeagueLevel: update to settings.toml 2024-04-09 12:31:17 -04:00
Dan Halbert
05b4d3b2cd
PyPortal_Thingiverse: update to settings.toml 2024-04-09 12:27:08 -04:00
Dan Halbert
7f2cceb671
fix quote typo 2024-04-09 12:19:28 -04:00
Dan Halbert
8cf91e6f24
Update PyPortal_Philips_Hue_Controller to use settings.toml 2024-04-09 12:16:54 -04:00
Dan Halbert
7e8150b210
PyPortal_LIFX_Controller: get LIFX_TOKEN from settings.toml 2024-04-09 11:41:41 -04:00
Dan Halbert
34a9f51424
PyPortal_Youtube: get youtube token from settings.toml 2024-04-09 11:31:01 -04:00
Dan Halbert
18a3fc5b1c
PyPortal_AirQuality: use settings.toml for AIRNOW_TOKEN 2024-04-09 11:23:44 -04:00
Anne Barela
76cd05be8f
Merge pull request #2764 from adafruit/tcrt1000
adding example code for TCRT1000
2024-04-05 14:26:38 -04:00
Liz
8f7b5afc54 adding example code for TCRT1000
Adding CP and Arduino examples for the STEMMA Reflective Photo Interrupt Sensor (TCRT1000)
2024-04-05 14:18:01 -04:00
Liz
e1071956eb
Merge pull request #2763 from adafruit/aht20_ltc4316
adding ltc4316 examples with the aht20
2024-04-04 16:11:50 -04:00
Liz
411e256955 adding ltc4316 examples with the aht20
Adding Arduino and CircuitPython examples using two AHT20 sensors with one translated to 0x68 with an LTC4316
2024-04-04 16:04:58 -04:00
Melissa LeBlanc-Williams
9c6f62bae6
Merge pull request #2762 from makermelissa/main
Update Magic AI Storybook for Bookworm and new OpenAI API
2024-03-29 13:30:26 -07:00
Melissa LeBlanc-Williams
d6267a104c Fix issue with pygame updating in a thread 2024-03-29 13:17:16 -07:00
Melissa LeBlanc-Williams
c354179e0c Update Magic AI Storybook for Bookworm and new OpenAI API 2024-03-29 11:19:20 -07:00
Liz
5047c10377
Merge pull request #2761 from adafruit/sht4x_trinkey
adding examples for the SHT4x trinkey
2024-03-28 13:12:32 -04:00
Liz
50ef265651 lint 2024-03-28 12:17:23 -04:00
Liz
5c042d2c94 adding examples for the SHT4x trinkey
adding CircuitPython, Arduino and CPython examples for the SHT4x trinkey
2024-03-28 12:13:22 -04:00
Jeff Epler
99a7ece77f
Merge pull request #2760 from jepler/xerox-dvi
Code for the xerox 820 to digital video project
2024-03-28 10:55:27 -05:00
818abfb42a thanks pylint for catching this problem 2024-03-28 10:51:32 -05:00
f7b72318eb additional comments 2024-03-28 10:47:43 -05:00
ce2461197b Code for the xerox 820 to digital video project 2024-03-28 10:14:29 -05:00
Liz
96ed6bf17e
Merge pull request #2759 from adafruit/sht4x_trinkey
adding SHT4x factory demo
2024-03-26 17:07:46 -04:00
Liz
0437b6b619 adding SHT4x factory demo 2024-03-26 16:32:01 -04:00
Jeff Epler
49ee608e36
Merge pull request #2758 from adafruit/fix-sdcard-examples
User must provide a mount_sd.py script
2024-03-25 11:31:59 -05:00
a1905b5bfc User must provide a mount_sd.py script
this import line was removed without checking, because it caused
a pylint message.
2024-03-25 09:38:59 -05:00
Liz
690447cb1d adding fonts for elgato project 2024-03-25 10:02:02 -04:00
Anne Barela
69c50a5653
Merge pull request #2757 from adafruit/bird_feeder
Code for elgato light controller
2024-03-25 09:46:14 -04:00
Liz
403d536f6a Update code.py 2024-03-25 08:45:08 -04:00
Liz
17ae30608e lint 2024-03-25 08:41:32 -04:00
Karl Parks
8e19b0d229 remove unnecessary else 2024-03-24 15:01:05 -04:00
Dan Halbert
6f5d24630b
Merge pull request #2756 from dhalbert/show-to-root-group
replace .show(x) with .root_group = x
2024-03-24 12:02:24 -04:00
Dan Halbert
24a0bdec05 replace .show(x) with .root_group = x 2024-03-23 13:52:24 -04:00
foamyguy
93d32ea0bb BusDisplay change 2024-03-21 19:33:28 -05:00
foamyguy
03da135cd7 Fourwire change 2024-03-21 19:19:24 -05:00
foamyguy
fe175e7acb ParallelBus change 2024-03-21 18:44:19 -05:00
foamyguy
74eaa1b1d2 i2cdisplaybus change 2024-03-21 18:35:43 -05:00
foamyguy
53f5f23e66 bitmaptools.blit fix 2024-03-21 17:41:49 -05:00
Anne Barela
44a84c575b
Merge pull request #2754 from adafruit/BlitzCityDIY-patch-1
Update picowbell doubler CP example
2024-03-21 16:44:43 -04:00
Liz
440e0198a3
Update picowbell doubler CP example
65535 instead of 65536
2024-03-21 16:42:12 -04:00
Liz
4168e1c766 Create code.py 2024-03-20 14:56:08 -04:00
Anne Barela
f49f34f4b0
Merge pull request #2753 from adafruit/picowbell_doubler
Picowbell doubler battery monitor code
2024-03-20 12:12:01 -04:00
BlitzCityDIY
52b8af140a adding picowbell doubler battery examples 2024-03-20 11:55:32 -04:00
BlitzCityDIY
40d73b21cc Create Arduino_PiCowbell_Doubler_Battery_Monitor.ino 2024-03-20 10:53:41 -04:00
Karl Parks
34466ae7a1 make feather can ack example work with stm32f405 2024-03-16 17:36:33 -04:00
Anne Barela
45500df488
Merge pull request #2751 from adafruit/bird_feeder
adding memento bird feeder code
2024-03-13 16:00:12 -04:00
Liz
acbdd7e8c9 adding memento bird feeder code 2024-03-13 15:08:42 -04:00
Dan Halbert
52dedd759b
Merge pull request #2735 from dhalbert/update-actions
update actions to use node.js 20
2024-03-11 12:32:25 -04:00
foamyguy
1b83a7d2d3
Merge pull request #2747 from adafruit/dvi_supervisor
adding try/except to DVI hello world
2024-03-11 09:57:39 -05:00
Anne Barela
fdc082887e
Merge pull request #2750 from adafruit/feather_tft_example
adding display example for tft feathers
2024-03-11 09:50:58 -04:00
Liz
496185381a adding display example for tft feathers 2024-03-11 09:30:51 -04:00
Anne Barela
b4d59e0c60
Merge pull request #2749 from adafruit/battery_monitor
adding battery monitor project code
2024-03-08 16:57:58 -05:00
Liz
56c9b775fd adding battery monitor project code
Adding code and assets for the Feather battery monitor project guide
2024-03-08 16:47:50 -05:00
Liz
99e514db0f
Merge pull request #2748 from adafruit/analog_switch
example code for STEMMA analog switch
2024-03-05 11:00:34 -05:00
Liz
a80e7db98e uno test only 2024-03-05 10:44:50 -05:00
Liz
f4721fcd25 example code for STEMMA analog switch
CircuitPython and Arduino examples for using the STEMMA analog switch
2024-03-05 10:28:05 -05:00
Carter Nelson
270354bfba
Merge pull request #2738 from mikeysklar/main
CLUE BLE Morse Code : scan_and_connect() changes
2024-03-04 11:49:55 -08:00
Liz
2d4f747dad remove try/except, check for 'DISPLAY' in dir(board) 2024-03-04 10:15:03 -05:00
Liz
6965241cbb adding try/except to DVI hello world
Adding a try/except to workaround a MemoryError in CircuitPython 9 beta2 as noted in https://github.com/adafruit/Adafruit_Learning_System_Guides/issues/2746
2024-03-04 09:45:18 -05:00
Dan Halbert
f46ef2ec65
Merge pull request #2745 from justmobilize/fix-get-radio-ssl-context
Fix get_radio_ssl_context
2024-03-01 14:11:52 -05:00
Justin Myers
78d149d1c5 Fix get_radio_ssl_context 2024-03-01 09:27:31 -08:00
Anne Barela
03b078ba8b
Merge pull request #2744 from adafruit/memento_openai
adding code and prompts for memento openai project
2024-02-29 14:15:27 -05:00
Liz
6564b693c1 adding code and prompts for memento openai project
Adding code.py file and prompts in a text file for the memento OpenAI image descriptor project
2024-02-29 13:55:21 -05:00
Dan Halbert
85e851d86f
Merge pull request #2743 from justmobilize/remove-set-socket
Remove legacy requests.set_socket
2024-02-29 12:00:57 -05:00
Justin Myers
bca3bab5a9 Remove legacy requests.set_socket 2024-02-28 14:14:16 -08:00
Anne Barela
2c3ce0c410
Merge pull request #2741 from adafruit/itsybitsy_cpWifi
adding ItsyBitsy ESP32 CP WiFi test
2024-02-27 11:23:58 -05:00
Liz
adb084d2b5 adding ItsyBitsy ESP32 CP WiFi test 2024-02-27 11:13:46 -05:00
Anne Barela
7b505c04b3
Merge pull request #2739 from brentru/add-shoulder-camera
Add code for Face Tracking Robot with MEMENTO
2024-02-27 10:05:46 -05:00
Anne Barela
a91941e7b7
Merge pull request #2740 from adafruit/itsybitsy_factory
adding itsybitsy esp32 factory test
2024-02-26 17:11:57 -05:00
Liz
351884b01e test only 2024-02-26 16:54:12 -05:00
Liz
aa384f0e39 adding itsybitsy esp32 factory test 2024-02-26 16:53:37 -05:00
brentru
5adbfc424e Merge remote-tracking branch 'adafruit/main' into add-shoulder-camera 2024-02-26 16:44:18 -05:00
Anne Barela
082126a83b
Merge pull request #2729 from brentru/fix-cam-zip
Merge Update MEMENTO Facial Detection/Recognition Files
2024-02-26 16:29:56 -05:00
brentru
e4bec650c9 Add firmware, remove pio build tooling 2024-02-26 15:40:36 -05:00
brentru
35eea9f2e0 add shoulder camera 2024-02-26 15:38:29 -05:00
brentru
6ac92d9379 fix spdx checker 2024-02-26 15:34:48 -05:00
Liz
88027a15dc adding itsybitsy esp32 to low power test 2024-02-26 12:16:07 -05:00
caternuson
959066cc2f updates based on testing 2024-02-22 13:17:43 -08:00
Noe Ruiz
189c23b4cc
Adding 5889 ItsyBitsy ESP32
Adding files for 5889 ItsyBitsy ESP32
2024-02-21 15:20:00 -05:00
Michael Sklar
85c0557821 white space, unused variable 2024-02-21 11:05:20 -08:00
Michael Sklar
238c3f41c6 modified scan_and_connect to limit scanning to the central and advertising to the peripheral 2024-02-21 10:36:16 -08:00
Liz
52a8f2a46a
Merge pull request #2737 from adafruit/kitty_printer
adding cat printer code
2024-02-20 17:10:26 -05:00
Liz
41afe52292 adding cat printer code
Adding cat printer code for the MEMENTO. includes modified CatGFX library files
2024-02-20 15:09:43 -05:00
Liz
d33b157a31
Merge pull request #2734 from adafruit/neorgb
adding examples for the neorgb stemma breakout
2024-02-19 10:20:08 -05:00
Dan Halbert
d00ae450bb update actions to use node.js 20 2024-02-18 18:48:42 -05:00
Liz
a364295859 adding examples for the neorgb stemma breakout
adding arduino and CP examples for the neorgb stemma breakout. CP example checks for raspberry pi
2024-02-16 16:11:17 -05:00
brentru
6267879344 bsd-2 2024-02-14 11:34:42 -05:00
brentru
efdbe9ddd3 match contnets of LICENSES/ 2024-02-14 11:08:36 -05:00
brentru
263c366c72 fix spdx 2024-02-14 11:04:48 -05:00
Anne Barela
e38569759c
Merge pull request #2733 from jedgarpark/memento-focus-stack
first commit MEMENTO focus stacking
2024-02-14 08:42:36 -05:00
John Park
8854568566 first commit MEMENTO focus stacking 2024-02-13 22:24:53 -08:00
Jacob Rose
00e455ff18
Remove trailing whitespace on blank lines
Whoops! Thanks, @TheKitty!
2024-02-13 13:13:29 -05:00
Jacob Rose
3b07ba638d
Readability improvements
The LED is disabled in the main loop, so re-enabling it in the main loop makes more sense; also added some spacing between steps.
2024-02-13 13:00:36 -05:00
Anne Barela
678f47c028
Merge pull request #2731 from adafruit/sushi_uf2
adding sushi UF2 files
2024-02-10 15:11:48 -05:00
Liz
b784306cc9 adding sushi UF2 files
adding UF2 files for the sushi conveyor belt. builds for 320x820 and 240x960 displays
2024-02-09 17:10:52 -05:00
Liz
f0eda69a6c
Merge pull request #2730 from adafruit/rtc_clock
adding clock code
2024-02-09 14:44:06 -05:00
Liz
21c0ae35b2 adding clock code
Adding clock code for the digital clock with circuitpython project
2024-02-09 14:26:53 -05:00
brentru
6f4c208ede spdx 2024-02-09 12:41:22 -05:00
brentru
9d1bec9f23 remove inos 2024-02-09 12:32:36 -05:00
brentru
dc64e09d61 delete shoulder camera zip 2024-02-09 12:20:30 -05:00
Anne Barela
ae08e5704c
Merge pull request #2727 from FoamyGuy/add_text_editor
Adding Text editor project code
2024-02-08 17:33:38 -05:00
foamyguy
f2815d4afe format and pylint 2024-02-08 16:28:47 -06:00
foamyguy
f75851f474 license in __init__ 2024-02-08 16:23:49 -06:00
foamyguy
886cb60c1e license in boot.py 2024-02-08 16:22:14 -06:00
foamyguy
ec23fb301d adding text editor project 2024-02-08 16:21:04 -06:00
Anne Barela
32487e0a9a
Merge pull request #2726 from brentru/face-detect-recognize
Add guide content, Facial Detection and Recognition with MEMENTO
2024-02-08 12:38:11 -05:00
brentru
dfbd56cec8 add pio and firmware 2024-02-08 12:33:41 -05:00
Anne Barela
a29547cc22
Merge pull request #2725 from adafruit/sushi
adding sushi conveyor belt project
2024-02-08 10:23:31 -05:00
Liz
46924af0c8 spdx 2024-02-08 10:02:08 -05:00
Liz
80f5ae293c adding sushi conveyor belt project
Adding code, image header files and platformIO ini file for the sushi conveyor belt project
2024-02-08 09:58:37 -05:00
Jeff Epler
3a28acd2c6
Merge pull request #2708 from jepler/async-event-queue
Update async keyboard code
2024-01-31 06:55:14 -06:00
Anne Barela
f25004c257
Merge pull request #2724 from adafruit/can_bus_bff
adding CAN Bus BFF examples
2024-01-30 19:38:31 -05:00
Liz
17d8ec9437 adding CAN Bus BFF examples
Adding Arduino and CircuitPython CAN Bus BFF examples
2024-01-30 17:09:49 -05:00
Anne Barela
92898c54a0
Merge pull request #2723 from FoamyGuy/add_1d_chomper
adding 1d_chomper game
2024-01-25 16:38:13 -05:00
foamyguy
889647b905 remove trailing whitespaces 2024-01-25 15:29:58 -06:00
foamyguy
2367684583 pylint fixes 2024-01-25 15:26:48 -06:00
foamyguy
e947db6e6b adding 1d_chomper game 2024-01-25 15:09:52 -06:00
Carter Nelson
a51e749227
Merge pull request #2722 from caternuson/picowbell_pcf8523_fix
Update PiCowbell examples for new PCF8523 library layout
2024-01-25 08:57:04 -08:00
caternuson
cc40d4b779 MAKE IT I2C 2024-01-25 08:48:03 -08:00
caternuson
4d3513ace6 fix pcf8523 imports 2024-01-25 08:39:31 -08:00
Anne Barela
a95eee1808
Merge pull request #2721 from jedgarpark/walkmp3rson-fix
fix to mp3 streaming code
2024-01-24 16:23:17 -05:00
John Park
dba919198c fix to mp3 streaming code 2024-01-24 13:15:37 -08:00
Anne Barela
3c7b70735d
Merge pull request #2718 from adafruit/feather_sense_update
updating example code for the new feather sense
2024-01-24 14:40:18 -05:00
Liz
bc7dffd168 Update feather_sense_sensor_demo.ino 2024-01-24 13:57:52 -05:00
Anne Barela
b171407e56
Merge pull request #2719 from jedgarpark/memento-remote
added delay for IP address screen
2024-01-24 13:54:45 -05:00
John Park
50adb94758 added delay for IP address screen 2024-01-24 10:31:34 -08:00
BlitzCityDIY
4e8fff3afe Merge branch 'feather_sense_update' of https://github.com/adafruit/Adafruit_Learning_System_Guides into feather_sense_update 2024-01-24 13:26:20 -05:00
BlitzCityDIY
043aacb985 adding break 2024-01-24 13:26:07 -05:00
Liz
3065a90041
Update Adafruit_Feather_Sense/feather_sense_sensor_demo/feather_sense_sensor_demo.ino
Co-authored-by: Dan Halbert <halbert@adafruit.com>
2024-01-24 13:12:07 -05:00
Liz
dbe4a1960a
Update Adafruit_Feather_Sense/feather_sense_sensor_demo/feather_sense_sensor_demo.ino
Co-authored-by: Dan Halbert <halbert@adafruit.com>
2024-01-24 13:12:00 -05:00
BlitzCityDIY
c28596f344 Update feather_sense_sensor_demo.ino 2024-01-24 13:04:04 -05:00
BlitzCityDIY
fe3963858a updating example code for the new feather sense
updating CP and Arduino examples to check for the LSM6DS33 or the LSM6DS3TR-C
2024-01-24 12:07:16 -05:00
Anne Barela
e2f476f53b
Merge pull request #2717 from adafruit/compass
adding compass project files
2024-01-22 17:09:55 -05:00
Liz
ede1dd8951 adding compass project files 2024-01-22 15:25:37 -05:00
Anne Barela
f08869e235
Merge pull request #2716 from jedgarpark/memento-remote
first commit wireless osc remote for memento
2024-01-22 14:10:22 -05:00
John Park
956adc1a6c fixed unused 'e' error variables 2024-01-22 11:06:29 -08:00
John Park
78dcb6facb first commit wireless osc remote for memento 2024-01-22 10:44:49 -08:00
Jeff Epler
4033e68073
Merge pull request #2336 from adafruit/ulab-spectrogram
fixed ulab spectrogram imports
2024-01-20 15:30:18 -06:00
79a9e0f707
Merge remote-tracking branch 'origin/main' into ulab-spectrogram 2024-01-20 14:51:08 -06:00
Anne Barela
b36c88a9f8
Merge pull request #2712 from firepixie/Rapunzel_Hair
Rapunzel Hair Code
2024-01-19 15:45:30 -05:00
firepixie
1a6de73033 fixed spdx code 2024-01-19 12:42:54 -08:00
firepixie
02314e5642 Update code.py 2024-01-19 12:39:37 -08:00
firepixie
01edce8037 Added SPDX header 2024-01-19 11:56:48 -08:00
firepixie
ff94835bb6 Rapunzel Hair Code
first commit
2024-01-18 13:12:08 -08:00
Brent Rubell
43a842b0eb
Merge pull request #2711 from brentru/add-memento-doorbell-camera
Add Memento IOT Doorbell Camera
2024-01-18 09:56:45 -05:00
brentru
745405b57d lint 2024-01-18 09:52:39 -05:00
brentru
706fbf496a add finalized doorbell camera code from S&T 2024-01-18 09:46:55 -05:00
Liz
21d565396a
Merge pull request #2710 from adafruit/ext_shutter
Adding code for the external shutter button
2024-01-17 15:22:25 -05:00
Liz
0eeaf75fa2 Adding code for the external shutter button
Adding code to adapt the memento camera library fancy example to use an external shutter button
2024-01-17 15:03:05 -05:00
Dan Halbert
8fceaeb757
Merge pull request #2709 from jepler/esp32-camera-renamed
Correct references to "esp32_camera"
2024-01-15 15:46:19 -05:00
d6fafcb2d0
Correct references to "esp32_camera"
This was renamed during the development of 8.x but examples weren't
fixed.
2024-01-15 14:43:18 -06:00
4c2af96047
Update async keyboard code
... per https://github.com/adafruit/circuitpython/issues/8412
Otherwise this is incompatible with both 8.x and 9.
2024-01-15 10:14:52 -06:00
Dan Halbert
831548081b
Merge pull request #2707 from dhalbert/ble-keyboard-pulls
add optional pullup code for BLE HID project
2024-01-13 10:26:16 -05:00
Dan Halbert
0dfa0995db comment out sometimes-unused import 2024-01-12 23:13:32 -05:00
Dan Halbert
ce2a50383d add optional pullup code 2024-01-12 20:22:39 -05:00
Anne Barela
f2f1ced82b
Merge pull request #2706 from caternuson/erin_led_glasses
Add LED Glasses Code
2024-01-12 15:04:17 -05:00
caternuson
697c5b5469 add code 2024-01-12 11:59:49 -08:00
Anne Barela
a55a80296d
Merge pull request #2705 from dhalbert/aero
MatrixPortal_S3_Flight_Proximity_Tracker: fix AERO_API_KEY typo
2024-01-10 16:18:18 -05:00
Dan Halbert
ca95364fff MatrixPortal_S3_Flight_Proximity_Tracker: fix AERO_API_KEY typo 2024-01-10 16:12:04 -05:00
Anne Barela
83e706eaba
Merge pull request #2703 from adafruit/neopixel_fidget
adding neopixel fidget spinner code
2024-01-10 13:17:17 -05:00
BlitzCityDIY
3c63086bcf adding neopixel fidget spinner code 2024-01-10 12:12:35 -05:00
Liz
ac9f36c19d
Merge pull request #2702 from adafruit/guide_feedback
Updating code to CP 8
2024-01-08 09:25:33 -05:00
Liz
6292092bc6 Updating code to CP 8
Updating two project code files from guide feedback
2024-01-08 07:47:36 -05:00
Kevin Christensen
d9bc565990
Explain magic number in BLE advertisement
This code snippet threw me for a loop trying to understand what "961" meant. After a good amount of digging I found the appearance numbers in the bluetooth spec, to see that 961 is 0x03C1 or "keyboard".

Add a comment to hopefully guide future readers.
2024-01-04 22:40:07 -08:00
Anne Barela
cdb71d4ffd
Merge pull request #2699 from adafruit/Matrix-Bluetooth-Controlled-Sign
Adding Bluetooth-Controlled LED Sign code
2024-01-03 15:56:09 -05:00
TrevKnows
0bca8003e3 Adding Bluetooth-Controlled LED Sign code 2024-01-03 15:02:03 -05:00
Liz
f55e7cedd0
Merge pull request #2697 from adafruit/uf2_generate
Adding UF2 generate files for MEMENTO
2023-12-21 14:34:31 -05:00
Liz
f5da0ca0d9 Adding UF2 generate files for MEMENTO 2023-12-21 14:18:57 -05:00
Liz
27cba4514d
Merge pull request #2696 from adafruit/memento_arduino_basic
Adding basic camera example for Arduino
2023-12-20 17:27:59 -05:00
Liz
d7a1005a79 spdx 2023-12-20 17:02:59 -05:00
Liz
9bd795b034 Adding basic camera example for Arduino 2023-12-20 17:01:45 -05:00
Liz
2614d98a67
Merge pull request #2695 from adafruit/usb_host_featherwing_factoryTest
Usb host featherwing factory test
2023-12-20 16:28:28 -05:00
Liz
22a1e03d26 Update library.deps 2023-12-20 16:08:28 -05:00
Liz
c4b6dd62e8 adding pycamera library to dependencies 2023-12-20 16:04:08 -05:00
Liz
e28ec7d683 spdx 2023-12-20 15:48:53 -05:00
Liz
774aa1316c adding usb host featherwing factory test
Adding USB Host FeatherWing factory test and updating memento test only to pycamera_s3
2023-12-20 15:47:16 -05:00
Liz
b9a7ca0f64
Merge pull request #2694 from adafruit/adding_pycamera_s3_CI
adding the pycamera_s3 to CI
2023-12-20 15:44:20 -05:00
Liz
63149d2c86 adding the pycamera_s3 to CI 2023-12-20 15:40:05 -05:00
Anne Barela
b595f4bd12
Merge pull request #2693 from jedgarpark/memento-simplecam
simplified basic camera example
2023-12-20 15:17:11 -05:00
John Park
be00272d41 simplified basic camera example 2023-12-20 11:35:43 -08:00
Anne Barela
fc36f2beee
Update README.md 2023-12-20 13:43:53 -05:00
Anne Barela
9ef3d2830b
Make MEMENTO Subdirectory
Make a new MEMENTO project directory after suggestion by JP
2023-12-20 13:41:38 -05:00
Anne Barela
1cacbf5934
Create README.md 2023-12-20 13:37:22 -05:00
Anne Barela
62d63b4be0
Merge pull request #2692 from adafruit/memento_factory
add memento factory test
2023-12-19 08:51:01 -05:00
Liz
891d085153 spdx 2023-12-19 08:28:30 -05:00
Liz
df67eb6be5 add memento factory test 2023-12-19 08:26:11 -05:00
Dan Halbert
cb55f61505
Merge pull request #2682 from dhalbert/readonly-keyword-arg
add readonly= keyword to storage.remount where not already present
2023-12-18 10:28:12 -05:00
Anne Barela
2e698aadef
Merge pull request #2691 from jedgarpark/faderwave
updated Faderwave code
2023-12-18 09:40:11 -05:00
John Park
458db753e0 updated Faderwave code 2023-12-15 18:31:37 -08:00
Liz
4005e5f2bd
Merge pull request #2690 from adafruit/qualia_ornament
Adding code and UF2 for the qualia ornament
2023-12-15 13:16:15 -05:00
Liz
e7fdf5fe4f Adding code and UF2 for the qualia ornament
Code and files for the Qualia S3 ornament
2023-12-15 11:54:20 -05:00
Anne Barela
c5c550370a
Merge pull request #2689 from TheKitty/pyleap
Directory Move: PyLeap Projects
2023-12-14 10:59:09 -05:00
Anne Barela
69e1b82a69 Directory Move: PyLeap Projects 2023-12-13 11:09:24 -05:00
Anne Barela
2532909072
Update README.md 2023-12-11 12:41:55 -05:00
TrevKnows
3a880dcfcb
Create PyLeap folder 2023-12-11 12:41:21 -05:00
Brent Rubell
1fad27db0a
Merge pull request #2688 from brentru/update-aio-temp-pix
Use Scripting key in Adafruit IO CircuitPython Example
2023-12-11 10:03:47 -05:00
Brent Rubell
c7fcb49e00
Merge branch 'main' into update-aio-temp-pix 2023-12-11 09:56:30 -05:00
Brent Rubell
d811541ea3 address forum feedback 2023-12-11 09:51:23 -05:00
Carter Nelson
56e39c74a6
Merge pull request #2684 from caternuson/cp_i2c_scan_update
I2C Scanner Code Updates
2023-12-08 07:41:45 -08:00
Anne Barela
d041b3a6a2
Merge pull request #2686 from jedgarpark/faderwave
first commit Faderwave synth code
2023-12-06 14:31:47 -05:00
Anne Barela
eaf7ea2f50
Merge pull request #2687 from TheKitty/pyportal
Directory Move Project: PyPortal sweep
2023-12-06 13:55:11 -05:00
Anne Barela
763739c837 Directory Move Project: PyPortal sweep 2023-12-06 13:46:55 -05:00
John Park
82d99d2118 first commit Faderwave synth code 2023-12-06 10:11:45 -08:00
caternuson
bca8bd6ade fix skip 2023-12-05 13:09:06 -08:00
caternuson
ae56f1a498 fix skip 2023-12-05 13:01:25 -08:00
Liz
dad7a33346
Merge pull request #2685 from adafruit/yulelog
Adding Qualia S3 yule log project
2023-12-05 15:55:33 -05:00
Liz
b96dd79725 adding UF2 2023-12-05 15:29:56 -05:00
caternuson
92813152f9 arduino skips and linter shush 2023-12-05 12:26:59 -08:00
Liz
acd781d910 Adding Qualia S3 yule log project 2023-12-05 15:09:45 -05:00
caternuson
dba53b305f add spdx 2023-12-05 12:07:58 -08:00
caternuson
8ea00f2bca i2c scanners updates 2023-12-05 11:54:46 -08:00
Anne Barela
5c7509c2a9
Merge pull request #2683 from TheKitty/pyportal
Directory Move Project: PyPortal
2023-12-05 11:34:09 -05:00
Anne Barela
13dd48bd0c
Merge branch 'main' into pyportal 2023-12-05 11:33:58 -05:00
Anne Barela
4ff18d18d0
Update README.md to add PyPortal subdirectory 2023-12-05 11:32:40 -05:00
Anne Barela
8442538d6c Directory Move Project: PyPortal 2023-12-05 10:58:58 -05:00
Dan Halbert
024d991a24 add readonly= keyword to storage.remount where not already present 2023-12-03 17:44:19 -05:00
Anne Barela
9de211fb39
Merge pull request #2681 from makermelissa/main
Remove inits.h from Qualia Demo
2023-11-29 16:28:01 -05:00
Melissa LeBlanc-Williams
09f76d38cc Remove inits.h from Qualia Demo 2023-11-29 12:59:11 -08:00
Anne Barela
ab6bca7150
Update README.md 2023-11-29 15:42:45 -05:00
Anne Barela
7c9dc3c61a
Merge pull request #2680 from jedgarpark/lego-lighting
added .uf2 version for qt py rp2040
2023-11-29 13:43:54 -05:00
Melissa LeBlanc-Williams
a4d7d0cb72
Merge pull request #2679 from makermelissa/main
Add Qualia S3 Product Demo
2023-11-29 10:38:55 -08:00
John Park
b91cb84e58 added .uf2 version for qt py rp2040 2023-11-29 10:36:02 -08:00
Anne Barela
3d79a5ec81
Merge pull request #2676 from TheKitty/magtag
Directory Move Project: MagTag
2023-11-29 13:32:37 -05:00
Melissa LeBlanc-Williams
bb2b0cae55 Add SPDX headers 2023-11-29 10:27:31 -08:00
Melissa LeBlanc-Williams
ebe3387689 Add Qualia S3 Product Demo 2023-11-29 10:24:10 -08:00
Anne Barela
150c09756e
Merge pull request #2678 from jedgarpark/LEGO-Lighting
first commit LEGO Lighting code
2023-11-29 08:55:43 -05:00
John Park
5b96167ac7 first commit LEGO Lighting code 2023-11-28 19:51:53 -08:00
Limor "Ladyada" Fried
9761f26837
Merge pull request #2677 from caternuson/cp_i2c_scan
Update CircuitPython I2C scanner
2023-11-28 13:43:04 -05:00
caternuson
f9c17fba38 lint shushing 2023-11-28 10:33:02 -08:00
caternuson
9c592cbeec fancier more automagic i2c scan 2023-11-28 10:23:42 -08:00
Anne Barela
8cb888956b
Making a MagTag directory
Documenting that MagTag projects are in directory MagTag
2023-11-28 11:13:44 -05:00
Anne Barela
b8bdd85415 Directory Move Project: MagTag 2023-11-28 11:11:30 -05:00
Anne Barela
941f4228ae
Update README.md 2023-11-27 17:26:59 -05:00
Anne Barela
5351d70c7a
Merge pull request #2675 from TheKitty/neotrellis
Directory Move Project: NeoTrellis
2023-11-27 16:21:10 -05:00
Anne Barela
97480d1f89
Rename Neotrellis_M4_Live_Launcher.ino to NeoTrellis_M4_Live_Launcher.ino
Rename for consistency - will also need to be renamed in pertinent Learn Guide
2023-11-27 15:52:41 -05:00
Anne Barela
084d2ef45d Directory Move Project: NeoTrellis 2023-11-27 15:01:15 -05:00
Anne Barela
130fe89e70
Merge pull request #2674 from adafruit/update_spaceclock
updating space clock code
2023-11-27 10:53:16 -05:00
Liz
8e6490df4a updating space clock code
changing some variable names, adding more comments
2023-11-27 10:42:15 -05:00
Anne Barela
cf20041276
Merge pull request #2673 from adafruit/airline
adding root cert for airline project
2023-11-27 09:02:01 -05:00
Liz
9e6e6371c6 adding root cert for airline project
adding the root certificate to the airline tracker project
2023-11-27 08:44:12 -05:00
Anne Barela
9f74726241
Merge pull request #2672 from adafruit/airline
re-adding airline logos for flight tracker project
2023-11-27 08:28:59 -05:00
Liz
456b6c7dea Revert "Removed airline logos and replace placeholder path"
This reverts commit 8d91dad006.
2023-11-27 08:22:16 -05:00
Liz
712d55969a Revert "Removed Airline logos"
This reverts commit 3fcf8aea08.
2023-11-27 08:21:50 -05:00
Liz
0e45e17fac
Merge pull request #2671 from adafruit/tft_featherwing_35
adding circuitpython example for the tft featherwing 3.5 inch v2
2023-11-21 12:09:46 -05:00
Liz
4078feee94 linting sms project 2023-11-21 12:02:25 -05:00
Liz
92633f7e03 adding circuitpython example for the tft featherwing 3.5 inch v2 2023-11-21 11:53:24 -05:00
firepixie
98f0a2b826 update code.py 2023-11-20 15:34:07 -08:00
firepixie
2b5f016ccb Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2023-11-20 15:30:36 -08:00
firepixie
040a25e016 SMS Scroller Code update
adding Messageboard folder to lib
2023-11-20 15:30:30 -08:00
Liz
09e159bb11
Merge pull request #2670 from adafruit/space_clock
Adding code and files for the space clock project
2023-11-20 10:30:30 -05:00
Liz
88ada9e4ef Adding code and files for the space clock project
Adding code, earth bitmap, mars bitmap and font for the space clock project
2023-11-20 09:34:28 -05:00
Liz
0d13222dad
Merge pull request #2669 from adafruit/MatrixPortalS3_Flight_Proximity_Tracker
adding logo script
2023-11-17 10:08:52 -05:00
Liz
792616e49a lint 2023-11-17 09:51:05 -05:00
Liz
3fb6fd00ea adding logo script 2023-11-17 09:47:23 -05:00
Jeff Epler
2ab4189054
Merge pull request #2593 from jepler/no-workaround-needed
remove unneeded workaround
2023-11-17 06:47:36 -06:00
TrevKnows
8d91dad006 Removed airline logos and replace placeholder path 2023-11-16 17:06:53 -05:00
Liz
abaa5d6d9b
Merge pull request #2659 from adafruit/MatrixPortalS3_Flight_Proximity_Tracker
Adding MatrixPortalS3 Flight Proximity Tracker project
2023-11-16 17:06:53 -05:00
TrevKnows
e64d7ef0de Merge branch 'MatrixPortalS3_Flight_Proximity_Tracker' of https://github.com/adafruit/Adafruit_Learning_System_Guides into MatrixPortalS3_Flight_Proximity_Tracker 2023-11-16 17:02:00 -05:00
TrevKnows
3fcf8aea08 Removed Airline logos 2023-11-16 17:01:10 -05:00
Liz
985b31c55c lint lint 2023-11-16 16:40:30 -05:00
Anne Barela
a842cc3f53
Add files via upload 2023-11-16 15:58:53 -05:00
firepixie
32467f8749 Matrix Portal S3 SMS Scroller
SMS Scroller
2023-11-16 12:26:02 -08:00
Anne Barela
fca97b2439
Update subdirectory list 2023-11-15 16:11:57 -05:00
Anne Barela
5460ea6b67
Merge pull request #2668 from TheKitty/ItsyBitsy
Directory Project - ItsyBitsy Projects
2023-11-15 16:00:01 -05:00
Anne Barela
84644e55ad Directory Project - ItsyBitsy Projects 2023-11-15 15:52:13 -05:00
Anne Barela
bb121a15cb
Merge pull request #2667 from adafruit/ikea_fix
adding suggestions from forum
2023-11-15 15:49:51 -05:00
Liz
705d956521 adding suggestions from forum 2023-11-15 15:41:43 -05:00
Anne Barela
85d1c7d95f
Merge pull request #2554 from dglaude/patch-1
Thank you!
2023-11-15 15:26:50 -05:00
Anne Barela
d91008929e
Update README.md 2023-11-15 15:07:11 -05:00
Anne Barela
6f28675947
Merge pull request #2666 from TheKitty/QT_Py
Make QT_Py directory and move QT_Py Guide DIrectories
2023-11-15 14:08:45 -05:00
Anne Barela
4ddc1f5e8d Make QT_Py directory 2023-11-15 13:45:13 -05:00
TrevKnows
446d00e69a Updated code to pass pylint 2023-11-15 12:08:52 -05:00
Anne Barela
65c0d0ff93
Revamp Learn System README
The README was expanded to link to guide information on contributing, licensing, and Adafruit Playground.
2023-11-15 12:01:18 -05:00
Anne Barela
94a17bc20f
Merge pull request #2664 from TheKitty/flora
Move Flora Guides to Flora Directory
2023-11-15 10:16:21 -05:00
TrevKnows
8d1568fa7f Update fix for pylint 2023-11-14 23:49:10 -05:00
Anne Barela
27fb9008b1
Merge pull request #2665 from makermelissa/main
Add SMS Messsage Scroller Project
2023-11-14 18:43:40 -05:00
Melissa LeBlanc-Williams
9d02f94994 Add SMS Messsage Scroller Project 2023-11-14 15:36:26 -08:00
Anne Barela
16a3d2052b Move Flora Guides to Flora Directory 2023-11-14 16:38:17 -05:00
Anne Barela
1f7367cdf5
Merge pull request #2663 from makermelissa/main
One last Bug fix for messageboard
2023-11-14 14:49:22 -05:00
Melissa LeBlanc-Williams
97aedccaf7 It's bug fixes all the way down 2023-11-14 11:03:12 -08:00
Melissa LeBlanc-Williams
a1f3dba84e Another fix for that bugfix 2023-11-14 10:41:09 -08:00
Melissa LeBlanc-Williams
ccf9c12bc4 One more bug fix for message board 2023-11-14 10:32:07 -08:00
TrevKnows
8c10cf65f8 Code works for a 192 x 128 display 2023-11-13 13:11:12 -05:00
Scott Shawcroft
6e9b42bf65
Merge pull request #2647 from FoamyGuy/new_displayio_api
displayio api updates for 9.x+
2023-11-09 15:22:22 -08:00
TrevKnows
de13b3e91d Added placeholder image for null images 2023-11-09 18:08:02 -05:00
TrevKnows
801b523137 Updated 26x26 icons vertically
Change scrolling text to green
Update bounding box coordinates
The scrolling texts should load behind icons
2023-11-09 18:05:48 -05:00
Anne Barela
5d047d9804
Merge pull request #2662 from makermelissa/main
Fix another messageboard bug revealed by the first fix
2023-11-09 14:09:51 -05:00
Melissa LeBlanc-Williams
9b730902bc Add whitespace back in 2023-11-09 10:34:13 -08:00
Melissa LeBlanc-Williams
5a341a444a Fix another messageboard bug 2023-11-09 10:32:14 -08:00
Anne Barela
9c81e882a5
Merge pull request #2661 from makermelissa/main
Bug fix for messageboard crashing in certain instances
2023-11-09 12:47:31 -05:00
Melissa LeBlanc-Williams
663a94ba36 Add whitespace back in 2023-11-09 09:11:00 -08:00
Melissa LeBlanc-Williams
2dd34aeb56 Undo local changes to rgb666 factory image 2023-11-09 09:09:03 -08:00
Melissa LeBlanc-Williams
2d4ca5515c Bug fix for messageboard crashing in certain instances 2023-11-09 09:02:52 -08:00
foamyguy
79ce736b3e fix CIRCUITPYTHON_TERMINAL usages. 2023-11-09 08:27:52 -06:00
TrevKnows
30e4bf0168 Added scrolling text to JSON requests
Filtered out dupes
Added origin and destination flight properties
Loaded Airline icons
Todo:
Update 26x26 icons vertically
Update bounding box coordinates
The scrolling texts should load behind icons
2023-11-08 22:07:52 -05:00
foamyguy
f770ad0e30 last batch in this pass 2023-11-08 17:01:01 -06:00
TrevKnows
bf30dd6c41 Passes network test - cert issue resolved 2023-11-08 14:50:01 -05:00
Liz
f812548982
Merge pull request #2660 from DJDevon3/DJDevon3_Working_Branch
Add code comment for Accel Range (sensitivity)
2023-11-08 13:40:24 -05:00
TrevKnows
1e3d593937 Removed API information 2023-11-08 12:55:07 -05:00
DJDevon3
41485ea5b6 Add code comment for Accel Range
Accelerometer range is basically hit detection sensitivity.  Had a beginner in Discord that didn't know how to change it because it's not documented in the learn guide.  Need a better way to make this parameter configurable and easy to use. Please also add something into the learn guide about using this for lowering sensitivity.  By default the lightsaber is set to 2G which is its most sensitive setting.
2023-11-08 12:21:55 -05:00
TrevKnows
5e38bc1fd8 Added SPDX FileCopyrightText 2023-11-08 12:03:39 -05:00
TrevKnows
cc424d60d3 Adding MatrixPortalS3 project 2023-11-08 10:52:38 -05:00
foamyguy
d76cd68e00 batch 5 2023-11-06 16:49:19 -06:00
Anne Barela
6cc224429f
Merge pull request #2658 from adafruit/led_noodle_tree
Adding code for LED Noodle Tree learn guide
2023-11-06 13:03:34 -05:00
foamyguy
fde611205f batch 4 2023-11-06 11:55:54 -06:00
foamyguy
3a738907ac fix tilegrids example 2023-11-06 11:04:30 -06:00
foamyguy
26a9795f44 batch 3 2023-11-06 10:35:43 -06:00
Noe Ruiz
86532fa1ce add code for led noodle tree
code for led noodle tree
2023-11-06 08:49:16 -05:00
foamyguy
e6296b12a7 another batch 2023-11-03 17:53:01 -05:00
Melissa LeBlanc-Williams
5352e15cdf
Merge pull request #2657 from makermelissa/main
Update Qualia image to work with both types of touchscreens
2023-11-01 11:35:05 -07:00
Melissa LeBlanc-Williams
ad5c48b57f Update Qualia image to work with both types of touchscreens 2023-11-01 10:00:58 -07:00
Dan Halbert
c1adfab753
Merge pull request #2656 from adafruit/factory_reset
Delete .feather_esp32s3_reversetft.generate
2023-10-31 19:31:12 -04:00
Liz
c6594e58e6 Delete .feather_esp32s3_reversetft.generate 2023-10-31 19:27:53 -04:00
Liz
64dafb0846
Merge pull request #2655 from adafruit/s3_reversetft
Updating s3 reverse tft factory test
2023-10-31 18:44:24 -04:00
Liz
a5316a3637 Updating s3 reverse tft factory test 2023-10-31 18:03:50 -04:00
Anne Barela
05ab1e7c1b
Merge pull request #2653 from jedgarpark/powerwash-controller
first commit powerwasher controller code
2023-10-27 11:33:58 -04:00
John Park
43df6099e2 first commit powerwasher controller code 2023-10-26 17:19:15 -07:00
Anne Barela
93fff1fd5a
Merge pull request #2652 from adafruit/tft_featherwing
Adding example code for TFT FeatherWing V2
2023-10-20 15:28:50 -04:00
Liz
537dd7dd42 Adding example code for TFT FeatherWing V2
arduino and CircuitPython examples for the TFT FeatherWing V2 guide update
2023-10-20 15:01:32 -04:00
Anne Barela
266b80d011
Merge pull request #2651 from jedgarpark/gc-midi
fixed  name to avoid confusion
2023-10-18 16:12:01 -04:00
John Park
448ae58349 fixed name to avoid confusion 2023-10-18 12:41:54 -07:00
Anne Barela
a604216fbb
Merge pull request #2650 from adafruit/TheKitty-patch-9
Files for PCB LCARS Guide
2023-10-18 10:54:55 -04:00
Anne Barela
ff4d7a48be
Add files via upload 2023-10-18 10:51:38 -04:00
Anne Barela
0a5d34d88d
Files for PCB LCARS Panel Guide 2023-10-18 10:48:06 -04:00
Anne Barela
1ebbc3bba2
Merge pull request #2649 from jedgarpark/bricktunes
first commit bricktunes code
2023-10-17 19:55:54 -04:00
John Park
3a650b6d04 first commit bricktunes code 2023-10-17 16:04:43 -07:00
Melissa LeBlanc-Williams
ecc5d4dba7
Merge pull request #2648 from ladyada/main
add touchscreen test for Focaltouch-based touchscreens
2023-10-17 08:46:17 -07:00
ladyada
5914860cba touchscreen addition 2023-10-17 11:39:59 -04:00
ladyada
956fa2c490 Merge branch 'main' of github.com:adafruit/Adafruit_Learning_System_Guides 2023-10-17 11:39:05 -04:00
foamyguy
6cbf7ecce4 first batch of displayio api updates 2023-10-16 16:45:39 -05:00
Anne Barela
3df559ef02
Merge pull request #2646 from adafruit/fraz_wrench
renaming "fraz" to "faz"
2023-10-16 11:59:37 -04:00
Liz
7ac214b86c renaming "fraz" to "faz"
apparently the it is called the "faz wrench" and not "fraz wrench"
2023-10-16 11:36:59 -04:00
Anne Barela
7e3726497d
Merge pull request #2645 from adafruit/fraz_wrench
Adding code and sound effects for fraz wrench
2023-10-16 09:01:34 -04:00
Liz
7e514ac4fa Adding code and sound effects for fraz wrench
Adding code and sound effects for the fraz wrench project learn guide
2023-10-16 08:41:49 -04:00
Melissa LeBlanc-Williams
6a8012ca38
Merge pull request #2639 from ladyada/main
remove test code and add more display options
2023-10-12 11:43:03 -07:00
Melissa LeBlanc-Williams
26ed99bb66 Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2023-10-12 11:23:03 -07:00
Melissa LeBlanc-Williams
033aaf1dc7
Merge pull request #2644 from caternuson/qualia_skip
Add test skip for failing Qualia build
2023-10-12 11:22:40 -07:00
caternuson
2a9653db33 skip qualia for now 2023-10-12 11:10:49 -07:00
Melissa LeBlanc-Williams
e326fda0a1 Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2023-10-12 10:42:23 -07:00
Carter Nelson
e8e837e0bf
Merge pull request #2643 from caternuson/esp32_ledc_updates
Update ESP32 Arduino examples for LEDC usage
2023-10-12 08:46:35 -07:00
caternuson
7e064d5be9 update ESP32 LEDC usage 2023-10-11 15:11:33 -07:00
ladyada
a56d5d5bd7 Merge branch 'main' of github.com:adafruit/Adafruit_Learning_System_Guides 2023-10-11 16:03:51 -04:00
Melissa LeBlanc-Williams
96bc373d5f Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2023-10-11 08:29:40 -07:00
Carter Nelson
89e3823e94
Update secrets.h 2023-10-10 12:54:02 -07:00
Melissa LeBlanc-Williams
cd58ff8dfa
Merge pull request #2641 from adafruit/tannewt-patch-1
Fix for latest 9.x builds
2023-10-10 12:45:36 -07:00
Scott Shawcroft
7fa8cd2759
Fix for latest 9.x builds 2023-10-10 12:25:28 -07:00
Anne Barela
1e0a4fb2a7
Merge pull request #2640 from adafruit/HAL9000_RP2040_PropMaker
Adding files for HAL9000 Propmaker
2023-10-09 15:12:31 -04:00
Noe Ruiz
fb1aa0793b minor typo fix in code
fixed typo on line 7
2023-10-09 14:24:30 -04:00
Noe Ruiz
fbf4c845ae Adding files for HAL9000 Propmaker
Adding files for HAL9000 Propmaker
2023-10-09 13:51:11 -04:00
ladyada
2bae131ed6 more displays! 2023-10-07 17:21:08 -04:00
ladyada
5d40c9d568 generalize for any size display 2023-10-07 17:02:10 -04:00
ladyada
9250270713 remove test code and add more display options 2023-10-07 16:47:38 -04:00
Anne Barela
b3a0746e23
Merge pull request #2638 from RobertDaleSmith/super-nintendo-usb-controller
adds small correction to Super Nintendo USB controller guide
2023-10-06 10:58:51 -04:00
Robert Dale Smith
95254871a5 adds small correction to Super Nintendo USB controller guide 2023-10-05 12:58:00 -05:00
Melissa LeBlanc-Williams
f316859324
Merge pull request #2637 from makermelissa/main
Re-enable test for Qualia Factory Test
2023-10-04 12:19:13 -07:00
Melissa LeBlanc-Williams
00c431d614 Move library install to correct place 2023-10-04 12:04:24 -07:00
Melissa LeBlanc-Williams
df7c0fae67 Remove unused variable 2023-10-04 11:53:59 -07:00
Melissa LeBlanc-Williams
1c627ded6b Modify sketch to trigger arduino tests 2023-10-04 11:44:16 -07:00
Melissa LeBlanc-Williams
e6a246c555 Re-enable test for Qualia Factory Test 2023-10-04 11:35:10 -07:00
Melissa LeBlanc-Williams
b4c3c05a3d
Merge pull request #2635 from makermelissa/main
Add Qualia S3 Factory Reset Source
2023-10-03 17:07:29 -07:00
Melissa LeBlanc-Williams
358039b86c Disable testing for now 2023-10-03 16:50:54 -07:00
Melissa LeBlanc-Williams
5c952b7ad0 Add test only 2023-10-03 15:11:42 -07:00
Melissa LeBlanc-Williams
4c411efe29 Add SPDX header 2023-10-03 14:09:34 -07:00
Melissa LeBlanc-Williams
71bc93722c Add Qualia S3 Factory Reset Source 2023-10-03 14:07:38 -07:00
Anne Barela
23c79df995
Merge pull request #2625 from RobertDaleSmith/super-nintendo-usb-controller
Cool stuff!
2023-09-30 09:36:53 -04:00
Robert Dale Smith
956b146094 resolves linting errors for Super Nintendo USB controller guide code 2023-09-29 22:12:56 -05:00
Anne Barela
5a7d0868af
Merge pull request #2633 from adafruit/RGB_NYT_TypoFix
Typo Fix
2023-09-28 11:38:44 -04:00
TrevKnows
db8387892a Typo Fix 2023-09-28 11:34:25 -04:00
Anne Barela
77c6ad609c
Merge pull request #2632 from adafruit/Adding-RGB-Matrix-NYT-Title-Scroller
Added MIT License
2023-09-28 10:54:48 -04:00
TrevKnows
c78934a160 Added MIT License 2023-09-28 10:43:35 -04:00
Limor "Ladyada" Fried
7259b72db4
Merge pull request #2544 from ladyada/edidtester
Edidtester
2023-09-21 23:49:33 -04:00
ladyada
d1d87e690a remove ruxalizer (we did it better) 2023-09-21 19:22:20 -04:00
ladyada
d8484666a5 update spdx 2023-09-21 19:20:59 -04:00
Dan Halbert
ecd84e28a0
Merge pull request #2571 from elpekenin/fix/adafruit-metro-esp32-s2/circuitpython-internet-test
[Small bugfix] ESP32 WiFi example
2023-09-21 14:20:42 -04:00
Dan Halbert
900b2f0fc5
Merge pull request #2407 from adafruit/anecdata-patch-1
Update CircuitPython Essentials Pin Map Script for Pico W
2023-09-21 11:47:07 -04:00
anecdata
495f80c4df
Merge branch 'main' into anecdata-patch-1 2023-09-21 10:25:21 -05:00
Anne Barela
a980f68b14
Merge pull request #2629 from jedgarpark/synthio-fundamentals
synthio fundamentals example code and wave files
2023-09-20 14:24:40 -04:00
John Park
8732b70333 synthio fundamentals example code and wave files 2023-09-20 11:07:06 -07:00
Anne Barela
c6ddbde458
Merge pull request #2627 from adafruit/espn_update
Adding more error catching
2023-09-19 15:32:11 -04:00
Liz
684bb6d613 Adding more error catching
the soccer feed was demonstrating unsportsmanlike behavior with the json_stream so adding error handling to pull down the json traditionally in case other feeds do that as well. the s3 can handle the full json, it's just slower than the stream
2023-09-19 15:20:25 -04:00
Anne Barela
c2057566cf
Merge pull request #2626 from adafruit/synth_guitar
Adding synth guitar code
2023-09-18 14:14:08 -04:00
Liz
ae5e8c18ff Adding synth guitar code
Adding code for the synth guitar project. Uses synthio
2023-09-18 13:56:56 -04:00
Robert Dale Smith
8834e11d42 first commit for Super Nintendo USB controller guide 2023-09-15 20:07:47 -05:00
Anne Barela
45f170470c
Merge pull request #2624 from adafruit/sportball
minor bug fix
2023-09-15 16:32:50 -04:00
Liz
ca24d8b71d zero padding 2023-09-15 16:04:02 -04:00
Liz
135648b285 minor bug fix
update to add a 0 in front of single digit minute times
2023-09-15 15:50:40 -04:00
Anne Barela
b92b2f4047
Merge pull request #2623 from adafruit/sportball
adding code for the ESPN API project
2023-09-15 15:17:31 -04:00
Liz
3886113390 lint lint 2023-09-15 15:13:56 -04:00
Liz
f3ac025445 adding code for the ESPN API project
Adding CP code and a script for gathering team logos
2023-09-15 15:10:18 -04:00
Anne Barela
74f5d77fa9
Merge pull request #2622 from kattni/metro-rp2040-sd-demo
Adding SD card demo code.
2023-09-15 14:56:05 -04:00
Kattni Rembor
f4defbba14 Add weirdly deleted license line. 2023-09-15 14:50:08 -04:00
Kattni Rembor
e098dfcb4c Adding SD card demo code. 2023-09-15 14:08:30 -04:00
Anne Barela
49d71b7778
Merge pull request #2621 from kattni/m7sd
Adding M7 SD code.
2023-09-14 19:23:20 -04:00
Kattni Rembor
31013d44c2 Adding M7 SD code. 2023-09-14 19:19:47 -04:00
Anne Barela
2ee27f92eb
Merge pull request #2619 from adafruit/tft_shield
adding examples for 2.8 tft update
2023-09-12 14:48:52 -04:00
Liz
182c20f5ca adding test only 2023-09-12 14:17:47 -04:00
Liz
669ee3f8ef Merge branch 'main' into tft_shield 2023-09-12 14:12:05 -04:00
Anne Barela
6f314bccc2
Merge pull request #2620 from adafruit/add_tsc2007_lib
adding TSC2007 arduino lib
2023-09-12 14:11:22 -04:00
Liz
f65afb52ca adding TSC2007 arduino lib
Adding the TSC2007 arduino lib to the library dependencies
2023-09-12 14:05:55 -04:00
Liz
fcb192829e adding examples for 2.8 tft update
Adding CP and Arduino examples for tft shield update
2023-09-12 13:48:39 -04:00
Anne Barela
f3d8cd3e09
Merge pull request #2618 from adafruit/tombstone_prop
Code and sound effects for tombstone project
2023-09-11 11:33:30 -04:00
Liz
9685a374a2 adding SPDX 2023-09-11 11:28:04 -04:00
Liz
f38603c5b1 Code and sound effects for tombstone project
Adding code and sound effects for the tombstone project.
2023-09-11 11:26:12 -04:00
Anne Barela
3d9b38bb6c
Merge pull request #2617 from adafruit/remove_comment
remove comment
2023-09-06 15:27:44 -04:00
Liz
cba57f608e remove comment
removing comment about other boards
2023-09-06 15:15:55 -04:00
Liz
adcfcb5462
Merge pull request #2616 from adafruit/spi_breakout
adding spi flash info example
2023-09-06 15:01:57 -04:00
Liz
d4e301050c adding test only 2023-09-06 14:43:25 -04:00
Liz
0bf8de1dfc adding spi flash info example
Adding spi flash info example to use SPI pins for breakout
2023-09-06 14:37:32 -04:00
Liz
5eaa7a15a4
Merge pull request #2615 from adafruit/piezo_driver
adding examples for piezo driver
2023-09-05 11:36:09 -04:00
Liz
b88c0a9f46 adding test only 2023-09-05 11:20:02 -04:00
Liz
474cb9566a adding examples for piezo driver
Adding Arduino and CircuitPython example for the piezo driver guide
2023-09-05 11:11:49 -04:00
Melissa LeBlanc-Williams
e8a2feeee6
Merge pull request #2614 from makermelissa/main
Update and Lint Home Assistant Sensor code to work with settings.toml
2023-09-01 13:29:14 -07:00
Melissa LeBlanc-Williams
a85a2033de Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2023-09-01 13:25:01 -07:00
Melissa LeBlanc-Williams
af70b110ef Update and Lint Home Assistant Sensor code to work with settings.toml 2023-09-01 13:24:52 -07:00
Melissa LeBlanc-Williams
f821708c92
Merge pull request #2613 from makermelissa/main
Update and Lint MacroPad RPC Home Assistant code to work with settings.toml
2023-09-01 10:20:41 -07:00
Melissa LeBlanc-Williams
d17a78b10f Move MqttError to rpc and import 2023-09-01 10:17:57 -07:00
Melissa LeBlanc-Williams
9ebdad6d68 Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2023-09-01 10:16:26 -07:00
Melissa LeBlanc-Williams
fb083c832e Update and Lint MacroPad RPC Home Assistant code to work with settings.toml 2023-08-31 15:31:27 -07:00
Anne Barela
64d7df9a3f
Merge pull request #2612 from makermelissa/main
Update and Lint FunHouse Pet Bowl Sensor code to work with settings.toml
2023-08-31 13:47:37 -04:00
Melissa LeBlanc-Williams
61c29b5f32 Update and Lint FunHouse Pet Bowl Sensor code to work with settings.toml 2023-08-31 10:28:33 -07:00
Melissa LeBlanc-Williams
4bce9de6dc
Merge pull request #2611 from makermelissa/main
Set Fan Motion Outlet code to use MQTT by default
2023-08-31 09:24:52 -07:00
Melissa LeBlanc-Williams
a170ca7488 Set Fan Motion Outlet code to use MQTT by default 2023-08-31 09:03:38 -07:00
Anne Barela
208176df9d
Merge pull request #2610 from makermelissa/main
Update and Lint FunHouse Motion Outlet code to work with settings.toml
2023-08-30 17:53:16 -04:00
Melissa LeBlanc-Williams
6b400e0b96 Update and Lint FunHouse Motion Outlet code to work with settings.toml 2023-08-30 14:36:28 -07:00
Anne Barela
ffc83152ef
Merge pull request #2608 from makermelissa/main
Update and Lint FunHouse Home Assistant code to work with settings.toml
2023-08-29 19:23:57 -04:00
Melissa LeBlanc-Williams
dd205f6bb3 Update and Lint FunHouse Home Assistant code to work with settings.toml 2023-08-29 15:45:13 -07:00
Kattni
a5c51e8871
Merge pull request #2606 from makermelissa/main
Update settings.toml to use cp expected name
2023-08-29 18:19:33 -04:00
Melissa LeBlanc-Williams
441221704e Update settings.toml to use cp expected name 2023-08-29 15:13:34 -07:00
Paint Your Dragon
64cbe840f5
Merge pull request #2605 from PaintYourDragon/main
Talking D20 projects
2023-08-29 14:52:29 -07:00
Phillip Burgess
e50f69e7c2 CI fixes 2023-08-29 13:24:51 -07:00
Phillip Burgess
3041731457 Fix(?) pylint disparity 2023-08-29 11:25:16 -07:00
Phillip Burgess
1c7e81dc93 Add SPDX header to Arduino code 2023-08-29 11:14:30 -07:00
Phillip Burgess
a589413440 Add Talking_D20 (original and new) 2023-08-29 11:11:25 -07:00
Anne Barela
eee23b6cab
Merge pull request #2604 from makermelissa/main
Final changes to messageboard demo code to make more readable
2023-08-28 13:54:46 -04:00
Melissa LeBlanc-Williams
73a514a175 Final changes to messageboard demo code 2023-08-28 10:34:57 -07:00
Anne Barela
1adf38a2cb
Merge pull request #2602 from makermelissa/main
Remove unused code from message board demo
2023-08-25 20:39:55 -04:00
Anne Barela
72d12ebc09
Merge pull request #2603 from adafruit/TheKitty-patch-8
Create code.py for new guide
2023-08-25 20:38:36 -04:00
Anne Barela
35f1608138
Update code.py 2023-08-25 20:35:58 -04:00
Anne Barela
dd2460c546
Update code.py 2023-08-25 20:32:12 -04:00
Anne Barela
8fdb8fa391
Make linter changes (minor) 2023-08-25 20:25:12 -04:00
Anne Barela
e6091208dd
Create code.py for new guide
Example of accessing the Tiny Code Reader from Useful Sensors on a Trinkey using CircuitPython. Pete Warden
2023-08-25 20:18:37 -04:00
Melissa LeBlanc-Williams
d427d40d3c Remove unused code from message board demo 2023-08-25 16:53:18 -07:00
Kattni
9e339cc1a6
Merge pull request #2601 from adafruit/metro-esp32-s3-wav-file
Add forgotten WAV file.
2023-08-25 17:29:46 -04:00
Kattni
8a4a463dc6
Add forgotten WAV file. 2023-08-25 17:06:47 -04:00
Anne Barela
be7de354e1
Merge pull request #2600 from kattni/metro-esp32-s3
Metro ESP32-S3 guide code.
2023-08-25 16:33:17 -04:00
Kattni Rembor
8d7f385c55 Metro ESP32-S3 guide code. 2023-08-25 16:27:03 -04:00
Anne Barela
6c97f080d1
Merge pull request #2599 from makermelissa/main
Add useful function to message board lib
2023-08-25 14:40:07 -04:00
Melissa LeBlanc-Williams
ca9e1e3d16 Add SPDX header back 2023-08-25 11:31:02 -07:00
Melissa LeBlanc-Williams
faf47c6862 remove accidental files 2023-08-25 11:29:22 -07:00
Melissa LeBlanc-Williams
b5b8810af6 Add useful function to message board lib 2023-08-25 11:28:33 -07:00
Anne Barela
42d6c1f26a
Merge pull request #2598 from adafruit/talking_adabot
fixing 12PM bug
2023-08-25 13:11:10 -04:00
Liz
d3ac7bd3d6 fixing 12PM bug
found bug where it thought 12PM was 12AM
2023-08-25 12:26:42 -04:00
Anne Barela
f68edbaf97
Merge pull request #2597 from adafruit/talking_adabot
Adding code and audio files for talking adabot clock
2023-08-25 11:44:55 -04:00
Liz
e6d6794a38 lint lint 2023-08-25 11:35:43 -04:00
Liz
19b12e9d2f lint 2023-08-25 11:32:10 -04:00
Liz
aa6da23a32 Adding code and audio files for talking adabot clock
Adding code and wave files for Talking Adabot Clock project
2023-08-25 11:30:03 -04:00
Mikey Sklar
70d280aae2
Merge pull request #2596 from adafruit/mikeysklar-rgbmatrix
tile_height error changing from 14 to 12 for font
2023-08-22 11:50:52 -07:00
mikey sklar
46719a6a2e tile_height error changing from 14 to 12 for font 2023-08-22 11:12:42 -07:00
Anne Barela
9af8603dff
Merge pull request #2595 from makermelissa/main
Add CAD Files for Message Board
2023-08-22 11:27:04 -04:00
Melissa LeBlanc-Williams
8c2a578976 Add CAD Files for Message Board 2023-08-22 08:24:18 -07:00
62ab21f4dc
remove unneeded workaround 2023-08-17 11:49:40 -05:00
Anne Barela
0f50d831a9
Merge pull request #2592 from makermelissa/main
Animated Message Board Working
2023-08-14 17:20:35 -04:00
Melissa LeBlanc-Williams
d00b87c851 Remove unused fonts 2023-08-14 14:14:36 -07:00
Melissa LeBlanc-Williams
3ca8f9a715 Animated Message Board Working 2023-08-14 14:05:12 -07:00
Anne Barela
b5eb25620a
Merge pull request #2591 from kattni/propmaker-featherwing-updates
Update PropMaker FeatherWing examples.
2023-08-14 11:24:31 -04:00
Kattni Rembor
2c5449756e Update PropMaker FeatherWing examples. 2023-08-14 11:15:24 -04:00
Anne Barela
d453e1f1e1
Merge pull request #2588 from adafruit/metro_rp2040_sd
Adding arduino Metro RP2040 SD card example
2023-08-14 09:32:06 -04:00
Liz
c8035738b4 updating again 2023-08-14 09:04:32 -04:00
Liz
329a3c9c3f test only 2023-08-14 08:39:16 -04:00
Liz
23a14e88b8 updating example to use sdfat fork 2023-08-14 08:33:12 -04:00
Limor "Ladyada" Fried
726c835078
Merge pull request #2590 from jedgarpark/ambient-machine
adjusted buffers
2023-08-13 19:35:35 -04:00
John Park
f9495e0736 adjusted buffers 2023-08-12 20:58:46 -07:00
Limor "Ladyada" Fried
16497b25c0
Merge pull request #2589 from ladyada/main
dox 4 tux
2023-08-12 20:16:15 -04:00
ladyada
b75b68d8dd dox 4 tux 2023-08-11 20:48:36 -04:00
Liz
bd68c1cd16 adding test only 2023-08-11 15:40:27 -04:00
Liz
90d617f288 Adding arduino Metro RP2040 SD card example
Adding Arduino SD card example for Metro RP2040
2023-08-11 15:33:48 -04:00
Kattni
0206a1b83f
Merge pull request #2587 from kattni/metro-rp2040
Metro RP2040 CircuitPython code.
2023-08-08 13:40:49 -04:00
Kattni Rembor
7b3ee27adf Metro RP2040 CircuitPython code. 2023-08-08 11:11:20 -04:00
Anne Barela
a50e7baa37
Merge pull request #2586 from adafruit/master_sword
Adding master sword code and sounds
2023-08-08 09:42:52 -04:00
Liz
40bd8bc0f2 Adding master sword code and sounds
Adding code for the prop-maker feather master sword project
2023-08-08 09:10:53 -04:00
Anne Barela
e24599c964
Merge pull request #2584 from jedgarpark/ambient-machine
Ambient Machine files and code
2023-08-02 16:52:21 -04:00
John Park
9dd517ee81 Ambient Machine files and code 2023-08-02 13:34:13 -07:00
Kattni
d2e9ff09de
Merge pull request #2580 from kattni/s2-rev-tft-essentials
Add I2S code/audio.
2023-07-28 19:10:31 -04:00
Kattni Rembor
02c3d30da0 Add I2S code/audio. 2023-07-28 18:28:07 -04:00
Kattni
5abe218e82
Merge pull request #2578 from tekktrik/fix/fix-releases
Fix adabot's name in CI
2023-07-26 12:59:46 -04:00
Anne Barela
225fbc302a
Merge pull request #2579 from adafruit/mixer_example
Adding mixer example
2023-07-26 11:56:38 -04:00
BlitzCityDIY
177395b943 Adding mixer example
Adding mixer volume example for the Feather RP2040 Prop-Maker guide
2023-07-26 11:45:16 -04:00
Alec Delaney
81640397c1
Fix adabot's name in CI 2023-07-26 10:21:03 -04:00
Kattni
206efbd42d
Merge pull request #2577 from kattni/i2c-pin-script-update
Add excluded pin names.
2023-07-25 14:39:53 -04:00
Kattni Rembor
d973b71048 Add excluded pin names. 2023-07-25 14:22:59 -04:00
Anne Barela
55dd6382c6
Merge pull request #2576 from kattni/aio-template-update
Update template to use settings.toml
2023-07-25 13:18:26 -04:00
Kattni Rembor
4c85553696 Update template to use settings.toml 2023-07-25 12:27:43 -04:00
Anne Barela
442b4a78ad
Merge pull request #2575 from adafruit/lightsaber_prop-maker
Adding code and audio files for lightsaber
2023-07-25 10:29:01 -04:00
Liz
949e0ba3eb Adding code and audio files for lightsaber
Adding code and folder of audio files for the Feather RP2040 Prop-Maker lightsaber
2023-07-25 10:08:54 -04:00
Anne Barela
8706ad643a
Merge pull request #2574 from adafruit/grand_central_sd_card
Adding arduino micro sd card example
2023-07-25 09:38:41 -04:00
Liz
a74f97394a updating test only 2023-07-25 09:23:25 -04:00
Liz
d2a74dacfe Adding arduino micro sd card example
Adding Arduino micro SD card example for the Grand Central M4
2023-07-25 09:16:56 -04:00
Kattni
436fc7a274
Merge pull request #2573 from kattni/pin-map-script-update
Update pin script.
2023-07-24 17:14:29 -04:00
Kattni Rembor
8975d4b7e6 Update pin script. 2023-07-24 17:10:31 -04:00
Kattni
982075e135
Merge pull request #2572 from tekktrik/fix/fix-releases
Fix check for adabot scheduled release
2023-07-24 12:40:37 -04:00
Tekktrik
736e02e821 Fix check for adabot scheduled release 2023-07-23 16:27:23 -04:00
Liz
3a09f79cf5
Merge pull request #2562 from RobertDaleSmith/fisher-price-usb-foot-pedal
first commit fisher price usb foot controller with keyboard macros
2023-07-21 15:00:03 -04:00
elpekenin
123a190bc1 Initial 2023-07-19 22:37:10 +02:00
Liz
6c65402412
Merge pull request #2570 from adafruit/4x4_update
Updating 4x4 midi code
2023-07-19 16:19:35 -04:00
Liz
dc4d862732 Updating 4x4 midi code
Updating 4x4 MIDI code to include onboard Feather neopixel and move default midi channel to the top
2023-07-19 16:16:27 -04:00
Melissa LeBlanc-Williams
48c40524be
Merge pull request #2569 from makermelissa/main
Added MatrixPortal S3 Factory Test
2023-07-19 08:37:20 -07:00
Melissa LeBlanc-Williams
c858d19154 Added SPDX and fixed name 2023-07-18 20:03:39 -07:00
Melissa LeBlanc-Williams
f29376db16 Added MatrixPortal S3 Factory Test 2023-07-18 19:57:45 -07:00
Liz
76d29b86a3
Merge pull request #2568 from adafruit/audio_bff_examples
Adding CP example code and audio files
2023-07-17 16:29:34 -04:00
Liz
11c5ab903e lint 2023-07-17 16:26:14 -04:00
Liz
a8a4f7537f Adding CP example code and audio files 2023-07-17 16:18:03 -04:00
Kattni
008e4bee53
Merge pull request #2567 from tekktrik/fix/fix-releases
Fix releases
2023-07-17 12:02:49 -04:00
Tekktrik
05248c1bdb Fix releases 2023-07-14 16:04:10 -04:00
Liz
bcea600768
Merge pull request #2566 from adafruit/4x4_edit
fixing typo
2023-07-14 10:16:46 -04:00
Liz
22ea4883fc fixing typo 2023-07-14 10:08:47 -04:00
Liz
15f9eadb07 fixing typo 2023-07-14 10:07:34 -04:00
Liz
6802359f8d
Merge pull request #2563 from adafruit/4x4_midi_project
Adding code for 4x4 encoder midi project
2023-07-13 19:29:22 -04:00
Kattni
c3923f6005
Merge pull request #2565 from kattni/power-management-code-update
Add print to identify monitor type.
2023-07-13 18:18:59 -04:00
Kattni Rembor
3fb85ec726 Add print to identify monitor type. 2023-07-13 18:14:21 -04:00
Kattni
1ef9a97a02
Merge pull request #2564 from kattni/remove-secrets-py-from-wifi-tests
Remove secrets.py
2023-07-13 17:28:05 -04:00
Kattni Rembor
a568043ee6 Remove secrets.py 2023-07-13 17:23:27 -04:00
Kattni
01e76fd3f8
Merge pull request #2561 from kattni/circuitpython-internet-test
Update demo, add settings.toml
2023-07-13 17:14:07 -04:00
Liz
0095402f7e updating index variable 2023-07-13 17:07:24 -04:00
Liz
287fd7ace0 Adding code for 4x4 encoder midi project
Adding code and font file for 4x4 MIDI controller project
2023-07-13 17:03:02 -04:00
Kattni Rembor
96e8b343a0 Update demo, add settings.toml 2023-07-13 13:01:34 -04:00
Robert Dale Smith
91716bf246 first commit fisher price usb foot controller with keyboard macros 2023-07-12 23:32:19 -05:00
Liz
51a15ab3ed
Merge pull request #2560 from jedgarpark/tyrell-synth
first commit Tyrell desktop synth code
2023-07-12 16:28:26 -04:00
John Park
7c1eba4e64 first commit Tyrell desktop synth code 2023-07-12 13:17:41 -07:00
Liz
e8b0cd81d7
Merge pull request #2558 from adafruit/adabot_update
updating adabot project
2023-07-11 09:18:42 -04:00
Liz
7715e7ce0e Update code.py 2023-07-11 09:12:01 -04:00
Liz
44dbda027e larson speed 2023-07-11 09:11:32 -04:00
Liz
b0c5574bd8 lint 2023-07-11 09:06:49 -04:00
Noe Ruiz
27abda1c82 updating adabot project
updated code and adding more audio files
2023-07-11 08:49:18 -04:00
Paint Your Dragon
9da272602e
Merge pull request #2557 from PaintYourDragon/main
Fix crash on days without a moon rise or set
2023-07-10 09:46:40 -07:00
Phillip Burgess
713487baa4 Update code.py 2023-07-10 09:26:44 -07:00
Anne Barela
6d3c540e8e
Merge pull request #2556 from adafruit/adabot_prop-maker
Adding code and audio for adabot
2023-07-06 10:22:57 -04:00
Liz
bf7ad9d266 Update code.py 2023-07-06 10:09:31 -04:00
Liz
053f9c63b8 Adding code and audio for adabot
Adding code and Wav files for the Adabot learn guide
2023-07-06 10:05:38 -04:00
Anne Barela
c37fce14a6
Merge pull request #2555 from kattni/stemma-audio-amp
Add STEMMA amp code.
2023-07-05 17:57:39 -04:00
Kattni Rembor
300b1ebaa8 Add SPDX. 2023-07-05 17:05:12 -04:00
Kattni Rembor
80b3ea3fed Add STEMMA amp code. 2023-07-05 17:00:57 -04:00
Anne Barela
563d2ceae7
Merge pull request #2553 from FoamyGuy/matrixportal_guidecount_text_pos
move the guide count text up slightly
2023-07-05 13:25:22 -04:00
David Glaude
2c63cdcc9a
Slider_Trinked MIDI: Typo for initial 2nd neopixel and show not needed.
There is likely a copy and paste mistake.
It is not visible because in the main loop it is likely overwritten.

There is also a "show" that is not needed as default is auto update.

Not tested because I don't have install midi library, but I saw the problem by copying the initialisation only... and noticing both LED were red despite different hue.
2023-07-04 21:54:58 +02:00
foamyguy
a9b8928a38 move the guide count text up slightly 2023-06-30 16:33:05 -05:00
Anne Barela
88fd01055e
Merge pull request #2552 from adafruit/kamek_wand
Adding code and sound file for Kamek magic wand
2023-06-30 14:55:44 -04:00
Liz
0e7c08a57a Update code.py 2023-06-30 14:47:33 -04:00
Liz
780fabfa39 Adding code and sound file for Kamek magic wand
Adding code and sound effect file for the Kamek Magic Wand guide
2023-06-30 14:42:17 -04:00
Anne Barela
f0c0af9b64
Merge pull request #2551 from PaintYourDragon/main
Ooze Master 3000: add “splat map” for Erin’s project
2023-06-29 19:52:39 -04:00
Phillip Burgess
73d65fd482 Ooze Master 3000: add “splat map” for Erin’s project 2023-06-29 15:18:52 -07:00
Anne Barela
154f01b017
Merge pull request #2550 from PaintYourDragon/main
Matrix Portal Moon Clock update
2023-06-29 13:06:42 -04:00
Phillip Burgess
3d083094fd Fix some comparisons, also do time sync more often 2023-06-28 21:30:59 -07:00
Anne Barela
31a05e1ce7
Merge pull request #2549 from adafruit/ikea_airQuality
Adding code for Ikea air quality monitor
2023-06-28 12:32:55 -04:00
BlitzCityDIY
9eab7c704f Adding code for Ikea air quality monitor
Adding CircuitPython code the Ikea air quality monitor guide
2023-06-28 12:02:42 -04:00
Phillip Burgess
780a6e23d7 Matrix Portal Moon Clock update for MET API 3.0 2023-06-27 12:42:13 -07:00
Jeff Epler
62a5a4de99
Merge pull request #2543 from jepler/unpin-bsec
Update BME680 for latest BSEC release
2023-06-27 13:44:28 -05:00
Anne Barela
5f2ea6233d
Merge pull request #2548 from FoamyGuy/fix_black_color_square
Fix black square in the neopixel remote
2023-06-26 19:31:47 -04:00
Anne Barela
97a3150ca8
Merge pull request #2547 from adafruit/eyespi_bff
Adding examples for the EYESPI BFF
2023-06-26 19:30:58 -04:00
Liz
c04d5b9275 Update EYESPI_Test.ino 2023-06-26 16:50:45 -04:00
foamyguy
6d1293c965 check for None specifically with if statement 2023-06-26 15:47:19 -05:00
Liz
e2101a4d09 Create .none.test.only 2023-06-26 16:45:20 -04:00
Liz
39139752e1 Delete .none.test.only 2023-06-26 16:44:47 -04:00
Liz
f6c533932e updating test only 2023-06-26 16:35:21 -04:00
Liz
108dbea146 adding font and bitmap 2023-06-26 15:55:38 -04:00
Liz
7f1493f854 Adding examples for the EYESPI BFF
Adding CP and Arduino example code for the EYESPI BFF. Both use the 1.54" 240x240 display.
2023-06-26 15:51:34 -04:00
Anne Barela
035a6775de
Merge pull request #2546 from adafruit/cp_dvi_update
Updating CP PicoDVI example
2023-06-26 14:23:12 -04:00
Liz
407c2bb4d1 Updating CP PicoDVI example
Updating CircuitPython PicoDVI example to use new resolution
2023-06-26 14:07:59 -04:00
Anne Barela
8b73118252
Merge pull request #2545 from FoamyGuy/pyportal_thermometer_icons
move things into fonts and icons dirs.
2023-06-26 13:11:07 -04:00
foamyguy
7c4097e81c use circuitpython 7+ compatible by default 2023-06-26 11:50:22 -05:00
foamyguy
13e893a053 move things into fonts and icons dirs. 2023-06-26 11:48:15 -05:00
lady ada
a1a011243e by request 2023-06-25 20:41:50 -04:00
0fa8f9ab4e
Update BME680 for latest BSEC release
compile-tested with 1.8.4192. Not tested on hardware.
2023-06-23 09:01:14 -05:00
Limor "Ladyada" Fried
ee64d15307
Merge branch 'adafruit:main' into main 2023-06-22 23:16:34 -04:00
Anne Barela
ad353524a2
Merge pull request #2542 from adafruit/s2_tft_update
Updating ESP32-S2 TFT Feather Factory Test
2023-06-22 11:29:58 -04:00
Liz
63ef5066fc Updating ESP32-S2 TFT Feather Factory Test
Updating the ESP32-S2 TFT factory test to check for either the LC or MAX battery monitor chip
2023-06-22 11:14:29 -04:00
Anne Barela
f67db29dbd
Merge pull request #2541 from makermelissa/main
Update dreidel game code to work with I2S Audio for MatrixPortal S3
2023-06-21 14:54:42 -04:00
Melissa LeBlanc-Williams
644f4516d9 Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2023-06-21 11:44:20 -07:00
Melissa LeBlanc-Williams
020ddf44b0 Update dreidel game code to work with I2S Audio for MatrixPortal S3 2023-06-21 11:41:00 -07:00
Anne Barela
16c63d9179
Merge pull request #2540 from adafruit/updated_factoryReset_featherEsp32-s2
Adding updated Factory Reset for ESP32-S2 Feather
2023-06-21 14:36:10 -04:00
Liz
39d175cd09 Adding updated Factory Reset for ESP32-S2 Feather
Adding an updated Factory Reset file for the ESP32-S2 Feather that checks for LC vs. MAX battery monitor
2023-06-21 14:22:01 -04:00
Anne Barela
35b11bb6b9
Merge pull request #2538 from jedgarpark/psx-spinner
updated PlayStation spinner code for QT Py
2023-06-20 20:23:03 -04:00
Anne Barela
caa231c9d4
Merge pull request #2539 from kattni/i2s-bff-code
Adding I2S BFF code.
2023-06-20 20:06:39 -04:00
Kattni Rembor
50aa81d1b1 Add SPDX. 2023-06-20 18:36:59 -04:00
Kattni Rembor
ca7e16fcd8 Adding I2S BFF code. 2023-06-20 18:30:50 -04:00
John Park
24a78d63e8 updated PlayStation spinner code for QT Py 2023-06-20 15:23:33 -07:00
Anne Barela
9caf603693
Merge pull request #2537 from adafruit/propmaker_examples
Adding CP and Arduino examples for Prop-Maker Feather
2023-06-20 15:00:23 -04:00
Liz
9bf95115f9 updating test only 2023-06-20 14:33:03 -04:00
Liz
7c5d4f672d updating test only 2023-06-20 14:06:09 -04:00
Liz
f6cda88c6b updating arduino code to use Servo.h 2023-06-20 13:32:41 -04:00
Liz
c91f54051d adding spdx to arduino audio headers 2023-06-20 12:42:20 -04:00
Liz
38e6c13866 adding arduino license 2023-06-20 12:40:32 -04:00
Liz
fb80908daf CP and Arduino Prop-Maker Feather examples
Adding CircuitPython and Arduino examples for the RP2040 Prop-Maker Feather
2023-06-20 12:38:40 -04:00
evaherrada
6ea5c0eedb
Added radio messenger files 2023-06-15 16:48:41 -04:00
Anne Barela
2717b7e5f6
Merge pull request #2535 from makermelissa/purple-air-update
It uses Secrets verses settings.toml which is the new method but as this is an update it should be ok
2023-06-14 17:44:45 -04:00
Melissa LeBlanc-Williams
4a58ad4e03 Update Purple Air Display to use new API 2023-06-14 14:38:50 -07:00
Anne Barela
3250637318
Merge pull request #2532 from makermelissa/2020-shake-update
Update Shake 2020 demo for Matrix Portal S3
2023-06-14 10:19:14 -04:00
Anne Barela
d9680e0686
Merge pull request #2533 from jedgarpark/psx-controller
first commit playstation roulette controller
2023-06-14 10:15:39 -04:00
John Park
326030ffc7 first commit playstation roulette controller 2023-06-13 22:06:39 -07:00
Melissa LeBlanc-Williams
ea7c6337fc Update Shake 2020 demo for Matrix Portal S3 2023-06-13 16:52:54 -07:00
Anne Barela
6a0094f4dd
Merge pull request #2531 from makermelissa/window-skull-update
Update Window Skull code to run on CircuitPython 8
2023-06-13 14:04:01 -04:00
Melissa LeBlanc-Williams
0db85a589b Update to run on CircuitPython 8 2023-06-13 10:54:10 -07:00
Anne Barela
64a03f4950
Merge pull request #2530 from adafruit/neodriver_extendedbus
Updating neodriver extended bus example
2023-06-13 10:40:06 -04:00
Liz
7f9bbaca67 Updating neodriver extended bus example
Updating the neodriver extended bus example for non-Pi single board computers after some additional testing
2023-06-13 10:15:36 -04:00
Anne Barela
e659987db5
Merge pull request #2525 from jepler/runcpm
Updates to the code for the Runcpm-pico guide
2023-06-12 16:17:58 -04:00
Anne Barela
ea66fcb157
Merge pull request #2529 from kattni/neokey-hid-led-fix
Fix key release pixel effect.
2023-06-12 15:54:56 -04:00
Kattni Rembor
e9c4c622cf Fix key release pixel effect. 2023-06-12 15:37:54 -04:00
Anne Barela
5005b1770e
Merge pull request #2528 from kattni/neokey-pi-and-fixes
Add Pi pin options, fixes.
2023-06-12 15:32:22 -04:00
Kattni Rembor
3309034617 Add Pi pin options, fixes. 2023-06-12 15:26:12 -04:00
Anne Barela
5aede71093
Merge pull request #2527 from adafruit/picow_http_server_update
Update Pico W HTTP Server
2023-06-12 11:52:34 -04:00
Liz
cbbd75ec25 Update code.py 2023-06-12 11:00:47 -04:00
Anne Barela
2a688db59d
Merge pull request #2526 from adafruit/code_updates
updating a few learn guides
2023-06-12 10:23:31 -04:00
Liz
4c2bc8ea91 linting 2023-06-12 10:07:38 -04:00
Liz
9cd344a94a updating a few learn guides
Updating the desktop air monitor to use try/except for reading the PM2.5 sensor and updating UART MIDI guides to include a timeout in instantiation based on quirk with Metro M7 found by JP
2023-06-12 10:02:00 -04:00
4de9363e81 make putche echo on hdmi display 2023-06-10 16:36:44 -05:00
b217211737 Enable overvoltage
this improves reliability in my testing.
2023-06-10 16:00:52 -05:00
64a0efdff3 Allow USE_DISPLAY to be set externally 2023-06-10 15:37:09 -05:00
777a840e4b don't include tinyusb here, it's optional now 2023-06-10 15:36:52 -05:00
8ff1fc799e make use of usb mass storage optional, default off
this has proven to be unreliable for me
2023-06-10 15:36:12 -05:00
5e84c3ee99 remove unused code 2023-06-10 15:35:17 -05:00
419565a535 improve startup error messages 2023-06-10 15:35:10 -05:00
b9a7773ea4 Use new 800x240p30, lower overclock 2023-06-10 15:34:45 -05:00
5ea06709df runcpm: fix more bold text 2023-06-10 15:34:07 -05:00
5d13e6f88b runcpm: improve keyboard behavior
* first repeat delay 1/2 second, and then every 1/20s while still held
   (linux default)
 * manually select CPU frequency instead of complaining
2023-06-10 15:33:22 -05:00
00afc4cc05 re-map cursor keys to match what libcuss from cpmish uses 2023-06-10 14:25:13 -05:00
Anne Barela
8719a60b9b
Merge pull request #2524 from kattni/neokey-breakout-code
Add NeoKey breakouts guide code
2023-06-09 17:07:41 -04:00
Kattni Rembor
1081357f8b Add license to .ino file. 2023-06-09 16:51:22 -04:00
Kattni Rembor
73f42d881a Add NeoKey breakouts guide code 2023-06-09 16:40:34 -04:00
Liz
cfdb0e35ea
Merge pull request #2523 from adafruit/updated_s3tft_factoryreset
Updating the Feather ESP32-S3 TFT Factory Reset
2023-06-08 12:55:29 -04:00
Liz
aa40afb03c Updating the Feather ESP32-S3 TFT Factory Reset
Updating the Feather ESP32-S3 TFT Factory Reset to check for either the LC709203F or MAX17048 battery monitors. Tested on both versions of the board.
2023-06-08 12:38:10 -04:00
Anne Barela
e7549f2976
Merge pull request #2522 from adafruit/ESP32_S2_Reverse_TFT_Digital_Clock
New ESP32-S2 Rev TFT Digital clock project
2023-06-08 12:06:35 -04:00
TrevKnows
6312aa5584 New ESP32-S2 Rev TFT Digital clock project 2023-06-08 11:43:45 -04:00
Limor "Ladyada" Fried
1b16ced5af
Merge branch 'adafruit:main' into main 2023-06-08 10:56:50 -04:00
Anne Barela
84a7cedaa2
Merge pull request #2521 from jedgarpark/midi-cat
added UART timeouts
2023-06-07 13:11:16 -04:00
John Park
ddc7333306 added UART timeouts 2023-06-07 10:06:03 -07:00
Anne Barela
2a10dffffc
Merge pull request #2520 from adafruit/neodriver_seesaw
adding NeoDriver seesaw examples
2023-06-05 14:20:45 -04:00
Liz
b5f0d01dfe adding test.only for RP2040 2023-06-05 13:57:57 -04:00
Liz
ff5a172400 adding NeoDriver seesaw examples
Adding CircuitPython, Arduino and CircuitPython with extended bus examples for NeoDriver guide
2023-06-05 13:30:36 -04:00
Anne Barela
2fb8574af7
Merge pull request #2516 from jepler/runcpm
code for the runcpm guide
2023-05-31 16:46:07 -04:00
4dea249f49
format in arduino 2023-05-31 15:12:23 -05:00
759607877b
format in arduino 2023-05-31 15:11:37 -05:00
Anne Barela
f4213db2a5
Merge pull request #2519 from jedgarpark/comp-perf
fixed comments for MODE switch function
2023-05-31 15:31:20 -04:00
John Park
430c918b57 fixed comments for MODE switch function 2023-05-31 12:24:09 -07:00
Anne Barela
e29df3366c
Merge pull request #2518 from adafruit/ano_synth
adding code for rotary encoder synth
2023-05-31 15:16:50 -04:00
Liz
20b3c4a856 adding code for rotary encoder synth
Adding code for ANO rotary encoder synth. Uses synthio, five ANO encoders, five alphanumeric displays and one 8x8 matrix.
2023-05-31 15:13:24 -04:00
Anne Barela
774c940bcf
Merge pull request #2517 from jedgarpark/computer-perfection-synth
first commit computer perfection synth code
2023-05-31 13:13:19 -04:00
3cfe1c3ae2
add test.only files 2023-05-31 11:53:37 -05:00
John Park
f31a8a93a5 first commit computer perfection synth code 2023-05-31 09:52:05 -07:00
652233df4f
code for the runcpm guide 2023-05-31 11:48:35 -05:00
lady ada
102b740932 extract and/or replace eyeball frames 2023-05-25 23:41:31 -04:00
lady ada
eb8e8287e5 verified mark table 2023-05-24 14:10:04 -04:00
Anne Barela
e5a0806a9b
Merge pull request #2515 from makermelissa/main
Magic Storybook: Added stripped out stuff from listener back in
2023-05-23 20:32:08 -04:00
Melissa LeBlanc-Williams
b77743b490 Ran black 2023-05-23 16:19:32 -07:00
Melissa LeBlanc-Williams
d9cf8ee133 Adjusted listener parameters for better results 2023-05-23 16:18:52 -07:00
Melissa LeBlanc-Williams
32cbb2c506 Added stripped out stuff from listener back in 2023-05-23 15:08:19 -07:00
Kattni
17ffff6e64
Merge pull request #2514 from kattni/canary-network-detection-handling
Refactor for better network handling.
2023-05-23 15:55:43 -04:00
Kattni Rembor
aa56f6fa50 Refactor for better network handling. 2023-05-23 15:41:42 -04:00
Anne Barela
c0a94930d3
Merge pull request #2513 from makermelissa/main
Last minute bug fixes for Magic Storybook
2023-05-23 15:41:18 -04:00
Melissa LeBlanc-Williams
b08299b856 Last minute bug fixes for Magic Storybook 2023-05-23 12:35:35 -07:00
Paint Your Dragon
a3f079bd52
Merge pull request #2508 from PaintYourDragon/main
Update Ooze Master 3000 w/HDR and colored drips
2023-05-23 11:24:12 -07:00
lady ada
74699c2387 Merge branch 'main' of github.com:ladyada/Adafruit_Learning_System_Guides 2023-05-23 13:29:23 -04:00
lady ada
2c9341f516 rough analyzer 2023-05-23 13:29:19 -04:00
Phillip Burgess
d9c4351e07 Add “Carrie mode” at Erin’s request :) 2023-05-22 18:05:58 -07:00
Anne Barela
ab72e5d630
Merge pull request #2512 from kattni/canary-use-time-time
Switch type of time used
2023-05-22 18:23:38 -04:00
Kattni Rembor
4362352e4e Improve comment. 2023-05-22 18:00:15 -04:00
Kattni Rembor
3e20735bb1 Switch from .monotonic() to .time() 2023-05-22 17:58:38 -04:00
Phillip Burgess
df49d2561b rfm-poi: rename .test.only file to use tinyusb 2023-05-22 13:24:59 -07:00
Phillip Burgess
eaf839f829 rfm-poi: add SPDX headers, .test.only file 2023-05-22 12:53:28 -07:00
Kattni
3c9ee493b5
Merge pull request #2510 from kattni/canary-code-remove-parens
Remove redundant parens.
2023-05-22 15:36:00 -04:00
Kattni Rembor
560437e92f Remove redundant parens. 2023-05-22 15:32:44 -04:00
Anne Barela
1f658a6d8b
Merge pull request #2509 from makermelissa/main
Magic AI Storybook Improvements
2023-05-20 20:24:22 -04:00
Melissa LeBlanc-Williams
d5230581e0 Remove extra spacing which causes incorrect SPDX detection 2023-05-19 16:09:19 -07:00
Melissa LeBlanc-Williams
51b97d1716 Linted 2023-05-19 15:54:55 -07:00
Melissa LeBlanc-Williams
46e0936dcd Make script to generate icons 2023-05-19 15:52:28 -07:00
Melissa LeBlanc-Williams
2375d4b9e1 Update neopixel behavior 2023-05-19 14:27:47 -07:00
Phillip Burgess
62efc2266a Merge branch 'main' of https://github.com/PaintYourDragon/Adafruit_Learning_System_Guides 2023-05-19 14:27:10 -07:00
Phillip Burgess
005a944259 Update Ooze Master 3000 w/HDR and colored drips 2023-05-19 14:27:07 -07:00
Melissa LeBlanc-Williams
4167c6f371 Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2023-05-19 14:25:37 -07:00
Kattni
d529158862
Merge pull request #2507 from kattni/canary-nightlight
Updated for customisability, readability.
2023-05-19 14:51:29 -04:00
Kattni Rembor
11e3fe87ff Updated for customisability, readability. 2023-05-19 14:43:17 -04:00
Melissa LeBlanc-Williams
494cf6ba37 Rewrote listener for Magic Storybook and added desktop icon 2023-05-19 10:48:56 -07:00
Paint Your Dragon
75afd23d0c
Merge branch 'adafruit:main' into main 2023-05-19 08:43:48 -07:00
Kattni
f7e8bbe6ad
Merge pull request #2497 from tekktrik/dev/arduino-cron
Make Arduino build conditional and scheduled
2023-05-18 13:31:14 -04:00
Tekktrik
3e1a059536 Fix check for output 2023-05-17 19:46:08 -04:00
Carter Nelson
5a15eae7d4
Merge pull request #2503 from caternuson/add_piradio
Add code for rpi pirate radio
2023-05-17 15:07:52 -07:00
Anne Barela
9ccddf574e
Merge pull request #2504 from kattni/canary-nightlight
Canary nightlight code.
2023-05-17 16:06:23 -04:00
Kattni Rembor
ceb3a02473 Canary nightlight code. 2023-05-17 15:54:27 -04:00
caternuson
efaccc8cfe add rds 2023-05-17 12:13:07 -07:00
caternuson
5fd92c01f2 pythonic comments 2023-05-17 10:25:13 -07:00
caternuson
0c51a0ffab spandex and lint 2023-05-17 10:23:35 -07:00
caternuson
794210fea2 add code for rpi pirate radio 2023-05-17 10:14:57 -07:00
Anne Barela
fd4e3444dd
Merge pull request #2502 from adafruit/umbrella_update
Updating umbrella code
2023-05-17 12:23:17 -04:00
BlitzCityDIY
004a4da42a Updating umbrella code 2023-05-17 12:07:45 -04:00
Anne Barela
b15ee3d787
Merge pull request #2501 from adafruit/arduino_picowbellDVI
Adding arduino example for picowbell dvi
2023-05-16 15:29:02 -04:00
Liz
7fe50f8800 Adding arduino example for picowbell dvi
Adding the 16bit hello arduino example with adafruit_dvibell_cfg defined
2023-05-16 14:41:35 -04:00
Anne Barela
597e7dddb1
Merge pull request #2500 from adafruit/dvi_helloworld
Adding DVI hello world example
2023-05-16 11:39:02 -04:00
Liz
1dfd0a6f60 Adding DVI hello world example
Adding DVI output hello world example. Checks for DVI Feather vs Pico for pin defs. Port of Phil B.'s 16bit hello for Arduino
2023-05-16 11:24:58 -04:00
Tekktrik
41f35ec3b1 Make Arduino build conditional and scheduled 2023-05-15 23:49:32 -04:00
Anne Barela
7598f832c4
Merge pull request #2496 from adafruit/feather_can
Adding CAN Bus example
2023-05-15 09:30:51 -04:00
Liz
dc6ce45c81 Adding CAN Bus example
Adding CAN Bus example for the Feather RP2040 CAN Bus guide
2023-05-15 09:18:16 -04:00
Anne Barela
d1488fb7d9
Merge pull request #2495 from makermelissa/main
Fix Magic Storybook issue when ChatGPT uses fancy quotes
2023-05-12 13:58:12 -04:00
Melissa LeBlanc-Williams
8fe1d49f7f Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2023-05-11 17:11:33 -07:00
Melissa LeBlanc-Williams
3802df1eee Fix issue when ChatGPT uses fancy quotes 2023-05-11 17:11:21 -07:00
Carter Nelson
41c8cfe2a1
Merge pull request #2494 from caternuson/update_hourglass
Relocate matrixsand.py for bundlefly
2023-05-10 11:57:02 -07:00
caternuson
e259c609c4 relocate matrixsand.py for bundlefly 2023-05-10 10:54:32 -07:00
Anne Barela
1720def3cf
Merge pull request #2493 from makermelissa/main
Magic AI Storybook requested changes and bug fixes
2023-05-09 21:13:47 -04:00
Melissa LeBlanc-Williams
47da437bce Linted 2023-05-09 16:08:53 -07:00
Melissa LeBlanc-Williams
8d6c5e034e Requested changes and bug fixes 2023-05-09 16:06:36 -07:00
Anne Barela
8a202738e2
Merge pull request #2492 from adafruit/picowbell_canbus
adding CP example for PiCowbell
2023-05-08 16:21:08 -04:00
Liz
2735149eb5 adding CP example for PiCowbell 2023-05-08 16:01:46 -04:00
Anne Barela
fa59f8315f
Merge pull request #2491 from aioue/patch-2
Update code.py - thank you
2023-05-08 08:06:51 -04:00
Tom Paine
d0305f09b4
Update code.py
Use dynamic display sizing so it works on multiple displays.
2023-05-06 22:17:00 +01:00
Anne Barela
bd8bf1a8ab
Merge pull request #2490 from mikeysklar/walkmp3rson-buffer
add buffering for mp3 playback to reduce popping on I2S when I2C or S…
2023-05-05 20:36:29 -04:00
Mikey Sklar
f7f13e3b49 add buffering for mp3 playback to reduce popping on I2S when I2C or SPI is accessed 2023-05-05 14:09:51 -07:00
Anne Barela
19d0978f12
Merge pull request #2488 from jedgarpark/hexboard
fixed held note error in mono note mode
2023-05-05 11:57:06 -04:00
Anne Barela
a2a19ed0ad
Merge pull request #2489 from kattni/rfm95-rp2040-send-receive-demo
RFM95 radio demo code.
2023-05-04 16:31:33 -04:00
Kattni Rembor
41fdec9ad9 RFM95 radio demo code. 2023-05-04 15:38:46 -04:00
John Park
7a3cc031f0 fixed held note error in mono note mode 2023-05-03 20:49:31 -07:00
Anne Barela
9e0eacaaaf
Merge pull request #2487 from jedgarpark/lcars
updated code and sprites
2023-05-03 11:19:08 -04:00
John Park
2e8b236de3 updated code and sprites 2023-05-03 07:38:31 -07:00
Anne Barela
4ae722bca3
Merge pull request #2486 from adafruit/cp_thinkink
Adding CP examples for ThinkInk
2023-05-02 11:42:01 -04:00
Liz
226ec259a9 fix trailing whitespace 2023-05-02 11:27:03 -04:00
Liz
306dfc877a Adding CP examples for ThinkInk
Adding CircuitPython examples for tri-color and ACeP EInk displays
2023-05-02 11:20:20 -04:00
Phillip Burgess
0a1ee78b8e Handle errors with more grace 2023-05-01 20:37:58 -07:00
Phillip Burgess
7c650e0fba TX/RX sync starting to work 2023-04-29 09:44:19 -07:00
Phillip Burgess
08a83c89c9 Add rfm-poi project (wip) 2023-04-28 19:09:16 -07:00
Anne Barela
b3fd880a3f
Merge pull request #2485 from adafruit/TheKitty-patch-7
Start PR for PCB jewelry
2023-04-28 12:26:31 -04:00
Anne Barela
67d18d5300
Add files via upload 2023-04-28 10:47:14 -04:00
Anne Barela
9293dfcf1d
Add files via upload 2023-04-28 10:47:06 -04:00
Anne Barela
98d1cdc04a
Add files via upload 2023-04-28 10:44:25 -04:00
Anne Barela
1be521e0be
Add Affinity Designer file 2023-04-26 13:36:21 -04:00
Anne Barela
90b274a807
STart PR for PCB jewelry 2023-04-26 13:34:29 -04:00
Dan Halbert
da286cebce
Merge pull request #2484 from FoamyGuy/fix_for_new_httpserver
add root_path argument to server init
2023-04-25 19:07:47 -04:00
Brent Rubell
af6e673b43
Merge pull request #2483 from adafruit/add_picodvi
Adding PicoDVI to deps
2023-04-24 15:06:08 -04:00
Liz
1469ec39ed adding code for video synth 2023-04-24 14:37:08 -04:00
foamyguy
6c8497815c add root_path argument to server init 2023-04-24 10:03:39 -05:00
Liz
2220e3d668 updating eyespi test to use const char
Updating EYESPI test to use const char to comply with new release of espressif BSP
2023-04-21 11:42:41 -04:00
Liz
7517167074 Adding PicoDVI to deps
Adding the PicoDVI - Adafruit Fork to the library.deps file
2023-04-20 15:55:23 -04:00
Anne Barela
4a1f32403a
Merge pull request #2479 from makermelissa/main
Magic AI Storybook
2023-04-20 08:28:47 -04:00
Melissa LeBlanc-Williams
8e12d6c721 Remove debug message 2023-04-19 15:42:37 -07:00
Melissa LeBlanc-Williams
f3e1d6b81a Added NeoPixel and Sleep code 2023-04-19 14:43:58 -07:00
Melissa LeBlanc-Williams
23b2a4f779 Multiple stories, sleep/wake, saving/loading, fonts 2023-04-18 16:09:11 -07:00
Melissa LeBlanc-Williams
bd7c3cb8ab Changed to Fading In Text 2023-04-17 13:28:02 -07:00
Melissa LeBlanc-Williams
4f6e4ea25e Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2023-04-17 13:26:47 -07:00
Anne Barela
47c79e8174
Merge pull request #2481 from adafruit/umbrella_update
updating loop
2023-04-17 13:53:00 -04:00
Liz
7697e57136 updating loop
updating loop so that first_run doesn't block turning on the neopixels
2023-04-16 10:37:52 -04:00
Melissa LeBlanc-Williams
1598b52aaa Buttons now functional 2023-04-14 16:32:43 -07:00
Melissa LeBlanc-Williams
69b82645b9 fixed static methods 2023-04-14 14:27:59 -07:00
Melissa LeBlanc-Williams
94511f1276 Cleaned up code 2023-04-14 13:25:33 -07:00
Melissa LeBlanc-Williams
591a209bdb Magic Book Rendering works with various delays 2023-04-14 13:10:47 -07:00
Anne Barela
cbb0b20a44
Merge pull request #2477 from adafruit/umbrella_stand
Adding code for IoT umbrella stand
2023-04-13 09:13:04 -04:00
Liz
1876c00e5c Adding code for IoT umbrella stand
Adding code for the Weather Wise Umbrella Stand guide
2023-04-13 08:59:03 -04:00
Anne Barela
7df93e4d0d
Merge pull request #2476 from kattni/rfm69-radio-demo
Add Feather RP2040 RFM69 send and receive demos.
2023-04-12 16:12:02 -04:00
Kattni Rembor
00e4481e14 Add RFM69 send and receive demos. 2023-04-12 15:56:48 -04:00
Kattni
2fbba95105
Merge pull request #2475 from kattni/cap-touch-script-update
Update cap touch pin script.
2023-04-12 14:16:01 -04:00
Kattni Rembor
5c68552f12 Update cap touch pin script. 2023-04-12 14:02:04 -04:00
Melissa LeBlanc-Williams
025ddf25f4
Merge pull request #2474 from adafruit/TheKitty-patch-6
Change direct write code for Feather to add correct offset
2023-04-11 12:04:21 -07:00
Anne Barela
7915389f10
Add correct code 2023-04-11 14:29:02 -04:00
Anne Barela
708ae2d9ef
Delete code-multi-feather-direct.py 2023-04-11 14:27:12 -04:00
John Edgar Park
d74e01f964
Merge pull request #2473 from kattni/feather-rp2040-rfm-dvi
Adding Templated Essentials code for RP4040 RFM and DVI Feathers.
2023-04-10 16:07:39 -07:00
Kattni Rembor
e6d56151a4 Adding Essentials code for RFM and DVI Feathers. 2023-04-10 18:33:35 -04:00
Kattni
e3d4a7172f
Merge pull request #2472 from ladyada/main
rfm factorytest
2023-04-05 14:39:16 -04:00
Anne Barela
360557a439
Merge pull request #2471 from adafruit/TheKitty-patch-5
Add additional files for Learn Guide
2023-04-05 14:13:33 -04:00
Kattni
d71531e18f
Add SPSX 2023-04-05 13:51:42 -04:00
lady ada
beef3e03ca Merge branch 'main' of github.com:adafruit/Adafruit_Learning_System_Guides 2023-04-05 13:07:16 -04:00
lady ada
0c3a01afeb test neopixel and init radio 2023-04-05 13:02:25 -04:00
Anne Barela
542d546532
Update code-multi-pyportal-direct.py 2023-04-05 12:39:13 -04:00
Anne Barela
35dd446cc1
Update code-multi-pyportal-direct.py 2023-04-05 12:08:28 -04:00
Anne Barela
17f9688420
Update code-single-pyportal-displayio.py 2023-04-05 12:07:28 -04:00
Anne Barela
d4c9d6adb6
Update code-single-displayio-feather.py 2023-04-05 12:06:13 -04:00
Anne Barela
5ace47ad46
Update code-multi-feather-direct.py 2023-04-05 12:05:27 -04:00
Anne Barela
5cabdec926
Add files via upload 2023-04-05 11:45:03 -04:00
Anne Barela
9d57d9112a
Add files via upload 2023-04-05 11:42:13 -04:00
Anne Barela
4d8d7098c3
Update README.md 2023-04-05 11:38:24 -04:00
Anne Barela
52cee1edcc
Merge pull request #2463 from adafruit/TheKitty-patch-4
Start files for new gifio guide
2023-04-05 11:37:13 -04:00
Anne Barela
93f6f8a2f3
Create README.md 2023-04-05 10:29:46 -04:00
Anne Barela
22579f8705
Delete sample-parrot-small.gif 2023-04-05 10:28:56 -04:00
Anne Barela
9769d29ca1
Delete sample-invaders-small.gif 2023-04-05 10:28:41 -04:00
Anne Barela
5a2f223ef4
Delete CircuitPython_gifio/Single directory 2023-04-05 10:28:28 -04:00
Anne Barela
ab1e603c1d
Create README.gif 2023-04-05 10:27:29 -04:00
Anne Barela
03899795f8
Add files via upload 2023-04-05 10:25:23 -04:00
Melissa LeBlanc-Williams
2d124d1582
Merge pull request #2470 from makermelissa/main
Add ability to specify audio output device to ChatGPT Bear
2023-04-04 08:00:13 -07:00
Melissa LeBlanc-Williams
3234a04726 Check for API Keys instead of just crash 2023-04-03 15:46:01 -07:00
Melissa LeBlanc-Williams
f4742cd7c6 Add ability to specify audio output device 2023-04-03 15:37:01 -07:00
Anne Barela
e05bc617d7
Merge pull request #2469 from makermelissa/main
Add a prompt when script first started
2023-04-03 13:11:45 -04:00
Melissa LeBlanc-Williams
a9f82824cf Add a prompt when script first started 2023-04-03 09:50:40 -07:00
Anne Barela
fcff874f53
Merge pull request #2468 from makermelissa/main
Place ChatGPT Bear Enclosure files into zips
2023-04-02 20:08:46 -04:00
Melissa LeBlanc-Williams
fa110ca434 Place ChatGPT Bear Enclosure files into zips 2023-04-02 15:55:37 -07:00
Melissa LeBlanc-Williams
ba5799fce3
Merge pull request #2467 from makermelissa/main
ChatGPT Bear Updated Code and Case Design Files
2023-04-02 15:27:34 -07:00
Melissa LeBlanc-Williams
f14c120d98 Remove some debug messages 2023-03-31 17:34:40 -07:00
Melissa LeBlanc-Williams
2105ebed55 Updated to use Azure Speech Services 2023-03-31 17:24:27 -07:00
Melissa LeBlanc-Williams
c510c6dcd5 Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2023-03-31 17:18:09 -07:00
Anne Barela
34133785e2
Merge pull request #2466 from caternuson/alti_update
Bundlefly CLUE altimeter code
2023-03-31 12:45:45 -04:00
caternuson
9dcb4631a6 bundlefly clue altimeter code 2023-03-31 09:06:17 -07:00
Liz
81345f5590
Merge pull request #2465 from adafruit/pwm_metrom7
Adding PWM audio code
2023-03-30 10:52:02 -04:00
Liz
0b4d0feb4f Adding PWM audio code
Adding PWM audio code for the metro m7 template pages
2023-03-30 10:40:20 -04:00
Liz
6b04b76f73
Merge pull request #2464 from adafruit/pwm_audio_template
Adding PWM audio code
2023-03-30 10:36:07 -04:00
Liz
a70240599e fixing whitespace 2023-03-30 10:07:03 -04:00
Liz
f658ced40f Adding PWM audio code
Adding PWM audio example code for the new PWM audio template page
2023-03-30 09:51:38 -04:00
Anne Barela
863b0f30e6
Update code-fast.py 2023-03-29 17:49:14 -04:00
Anne Barela
f3edbb18d2
Update code-slow.py 2023-03-29 17:48:17 -04:00
Anne Barela
552d0a6582
GIF sample files 2023-03-29 15:48:15 -04:00
Anne Barela
805202de6b
Create code-fast.py 2023-03-29 15:47:34 -04:00
Anne Barela
49fa3c2641
Delete py 2023-03-29 15:47:05 -04:00
Anne Barela
6f3243fe46
Create py 2023-03-29 15:46:45 -04:00
Anne Barela
421c1d77ca
Create code-slow.py 2023-03-29 15:46:09 -04:00
Anne Barela
b1951eb5ce
Create README.md 2023-03-29 15:41:58 -04:00
Anne Barela
789a64903a
Merge pull request #2462 from adafruit/i2s_removeLines
Removing comment lines
2023-03-29 14:45:58 -04:00
Liz
0ecab7b543 Removing comment lines
Forgot to remove comment lines..
2023-03-29 13:29:54 -04:00
Anne Barela
13cc2c7fc2
Merge pull request #2461 from adafruit/m7_i2s
Adding I2S examples
2023-03-29 13:27:14 -04:00
Liz
eb2f428c36 Adding I2S examples
Adding I2S examples for the Metro M7 guide
2023-03-29 13:08:23 -04:00
Melissa LeBlanc-Williams
d8a35f2cba Merge branch 'main' of https://github.com/adafruit/Adafruit_Learning_System_Guides 2023-03-29 08:58:48 -07:00
Anne Barela
eea188dc58
Merge pull request #2460 from jepler/embarassing-typo
chatgpt didn't seem to notice this typo either
2023-03-29 09:21:55 -04:00
d6fbb2ebb4
chatgpt didn't seem to notice this typo either 2023-03-29 08:07:13 -05:00
Anne Barela
c513644921
Merge pull request #2459 from jepler/openai-press-button-v2
improve guide code
2023-03-28 13:56:00 -04:00
72e52b0d7f
make changes for pylint 2023-03-28 11:58:07 -05:00
c2bb89fcb8
improve guide code 2023-03-28 11:55:02 -05:00
Anne Barela
78ba3deecf
Merge pull request #2456 from adafruit/updated_desktop_air
Updating desktop air monitor code
2023-03-27 09:47:20 -04:00
Liz
a783741357 Update code.py 2023-03-27 09:31:09 -04:00
Liz
fb2029472f Updating code
Updating code to not use IO and redo scaling for PM2.5
2023-03-27 09:03:57 -04:00
Anne Barela
1463b64d12
Merge pull request #2454 from jepler/openai-get-superpower
Openai get superpower
2023-03-24 12:03:05 -04:00
037976e191
wrap line for pylint 2023-03-24 10:51:16 -05:00
a6814b9c0e
tweak prompts and restore superpower to being default 2023-03-24 10:46:18 -05:00
b4d30a2fbc
solid background seems a hair faster 2023-03-24 10:03:11 -05:00
952c3345a9
improve the text wrapping speed by avoiding re-doing work 2023-03-24 10:01:01 -05:00
Dan Halbert
cfa4f61604
remove trailing whitespace 2023-03-24 10:48:25 -04:00
Dan Halbert
098fe94205
Merge pull request #2264 from rdagger/patch-1
Update BLE code for CircuitPython 8 compatibility
2023-03-24 10:34:51 -04:00
Dan Halbert
2f401b7b7a
Use parens instead of escaped newline 2023-03-24 10:19:39 -04:00
e1bcf07614
add new project 2023-03-24 09:12:04 -05:00
Melissa LeBlanc-Williams
de54ad562b Updated and simplified for new hw config 2023-03-23 14:42:43 -07:00
Liz
81b2f97cc3
Merge pull request #2453 from adafruit/desktop_air_bitmap
adding font files and bitmap
2023-03-23 16:30:09 -04:00
Liz
e651ff865b adding font files and bitmap
Realized i forgot the fonts and bitmap 😅
2023-03-23 16:12:47 -04:00
Anne Barela
32498fe1ed
Merge pull request #2452 from adafruit/desktop_air
Adding code for the desktop air quality monitor
2023-03-23 15:04:08 -04:00
Liz
476c73896f Adding code for the desktop air quality monitor
Adding code for the desktop air monitor project. Logging data with PM2.5 and SCD40 to a display and IO
2023-03-23 14:44:03 -04:00
Dan Halbert
14d3756fbe
Merge pull request #2451 from adafruit/lyre_update
adding code update
2023-03-22 14:11:31 -04:00
Liz
18792afc8c adding code update
Adding code update to simplify the servo object creation
2023-03-22 13:56:54 -04:00
Liz
a5df1c9656
Merge pull request #2450 from adafruit/octoprint_update
Updating try/except
2023-03-20 16:48:08 -04:00
Liz
fcf8786537 Updating try/except
Updating try/except for io get_feed/create_new_feed based on guide feedback
2023-03-20 16:12:42 -04:00
Anne Barela
d6b6de8f64
Merge pull request #2446 from adafruit/shot-timer
Added shot timer code
2023-03-20 12:50:45 -04:00
evaherrada
75c8c8eef0
Linted + added disables 2023-03-20 12:33:32 -04:00
Liz
31d792a73d
Merge pull request #2449 from adafruit/robot_lyre
adding robot lyre code
2023-03-20 10:05:46 -04:00
Liz
f839b3a43b adding robot lyre code
Adding code for the robot lyre project
2023-03-20 09:25:06 -04:00
Anne Barela
0c6efa2fe7
Merge pull request #2447 from jedgarpark/hexpad
first commit Hexpad code
2023-03-18 09:58:47 -04:00
John Park
9bca118f59 first commit Hexpad code 2023-03-17 21:55:02 -07:00
evaherrada
5d5ac9750a
Added shot timer code 2023-03-17 15:49:28 -04:00
Dan Halbert
30dd7f806c
Merge pull request #2442 from jepler/improve-pylint-script
Specify the right pylintrc file no matter where pylint_check is run
2023-03-16 11:57:09 -04:00
Anne Barela
a2a29163d1
Merge pull request #2443 from makermelissa/main
Added ChatGPT Voice Assistant
2023-03-13 08:43:09 -04:00
Melissa LeBlanc-Williams
62563b02a4 Added ChatGPT Voice Assistant 2023-03-12 17:48:28 -07:00
a10eb63057
Specify the right pylintrc file no matter where pylint_check is run 2023-03-11 08:05:25 -06:00
Jeff Epler
0180bb4672
Merge pull request #2436 from jepler/zorque
update the Zorque game
2023-03-11 08:03:59 -06:00
Anne Barela
b7275d4fc5
Merge pull request #2441 from adafruit/Adding-missing-.bmp-asset
First commit
2023-03-10 17:30:02 -05:00
TrevKnows
1872ce7f21 First commit 2023-03-10 17:00:50 -05:00
Anne Barela
f1bbae39c4
Merge pull request #2440 from adafruit/star_fragment_update
having neopixels turn on on boot
2023-03-10 16:43:29 -05:00
Liz
60431b808c having neopixels turn on on boot
Updating code to have NeoPixels turn on on boot for wiring check
2023-03-10 16:04:37 -05:00
Anne Barela
7b5029c721
Merge pull request #2439 from adafruit/ble_template
adding BLE airlift example for template page
2023-03-10 13:59:15 -05:00
Liz
fbb1cdd58d adding BLE airlift example for template page 2023-03-10 13:40:21 -05:00
Anne Barela
b5f808678c
Merge pull request #2438 from adafruit/metro_m7_examples
adding code examples for Metro M7
2023-03-10 13:30:48 -05:00
Liz
a3fd1012f6 adding code examples for Metro M7 2023-03-10 12:26:59 -05:00
Anne Barela
7c86dc8984
Merge pull request #2437 from adafruit/ESP32-S2-TFT-Mini-Weather-Station
ESP32-S2 Mini Weather Station
2023-03-10 11:36:59 -05:00
TrevKnows
ad59d3f514 First Commit 2023-03-10 10:53:53 -05:00
e804e29cab
remove some trailing space 2023-03-10 07:54:00 -06:00
64a134bb52
fix pylint messages 2023-03-10 07:53:43 -06:00
c3899a01b6
Select font dependng on pyportal model 2023-03-10 07:53:33 -06:00
0a9d2cc8c7
Fix the base prompt
thanks to Melissa for spotting the spelling mistake. Removing redundant
newlines (by escaping them) may also make a small difference to how the
prompt is treated.
2023-03-10 07:43:01 -06:00
413e0da3a4
Add scrolling of over-long text 2023-03-09 19:39:52 -06:00
1c8a86f08f
Switch to a bitmap font
Includes a workaround for https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/issues/183
2023-03-09 19:18:34 -06:00
25953d69f0
Improve error handling, let user restart by touch after error 2023-03-08 14:25:02 -06:00
Anne Barela
f9be51b204
Merge pull request #2435 from jedgarpark/cyber-cat
Cyber cat
2023-03-08 11:10:26 -05:00
John Park
3cf494220a updated to include more button functions, accelerometer cc 2023-03-08 07:38:28 -08:00
Jeff Epler
1eef56a5fb
Merge pull request #2434 from jepler/zorque
code for new guide
2023-03-08 09:33:27 -06:00
John Park
d9af575340 updated to include more button functions, accelerometer cc 2023-03-08 07:33:13 -08:00
f96841c025
code for new guide 2023-03-08 09:08:09 -06:00
Anne Barela
0ba59ff228
Merge pull request #2433 from adafruit/star_fragment_update
star fragment update
2023-03-07 08:59:22 -05:00
Liz
4692dcab12 Update code.py 2023-03-07 07:57:55 -05:00
Liz
d9cb8b2077 Merge branch 'main' into star_fragment_update 2023-03-07 07:47:56 -05:00
Liz
c9b9328008 Update code.py 2023-03-07 07:47:44 -05:00
Anne Barela
db9408c1bf
Merge pull request #2431 from adafruit/picowbell_adalogger
Adding PiCowbell Adalogger Examples
2023-03-06 15:59:13 -05:00
Anne Barela
3a1edef655
Merge pull request #2432 from adafruit/propmaker-tron-disk
Adding code and sounds for Tron Disk
2023-03-06 15:58:34 -05:00
Liz
77212804bc adding SPDX to arduino code
and none since it is for Pico only and not an available platform
2023-03-06 13:03:55 -05:00
Noe Ruiz
b25f7ef3c3 Adding code and sounds for Tron Disk
Adding code and sounds for Tron Disk
2023-03-06 12:51:34 -05:00
Liz
4a06a058a2 Adding PiCowbell Adalogger Examples
Adding CP and Arduino examples for PiCowbell Adalogger product guide
2023-03-06 12:49:06 -05:00
Liz
d9b38346a4 Merge branch 'main' into star_fragment_update 2023-03-06 09:38:56 -05:00
Liz
765d40217b continuing to bug hunt 2023-03-06 09:38:02 -05:00
Anne Barela
fa18a19e98
Merge pull request #2430 from adafruit/TheKitty-patch-4
Update code.py
2023-03-05 13:15:09 -05:00
Anne Barela
3b61545371
Update code.py
In changing the variable filenames to file_names to avoid a scope issue, one wasn't changed. Tested and this works.
2023-03-05 12:51:57 -05:00
Anne Barela
f354a53718
Merge pull request #2426 from caternuson/servo_update
Update analog feedback servo
2023-03-04 12:50:15 -05:00
Liz
8411ba6295 pylint 2023-03-04 11:37:02 -05:00
Liz
368ab7d7c6 adding additional error handling & time math 2023-03-03 21:28:02 -05:00
caternuson
829e027cc4 LINT! 2023-03-03 14:45:52 -08:00
caternuson
6f006a26c7 lint 2023-03-03 14:29:14 -08:00
caternuson
f1758dc56b remove commented out code 2023-03-03 13:01:08 -08:00
Anne Barela
0c4256acc4
Merge pull request #2428 from firepixie/Bubble_Table_IR_Control
Bubble Table Code
2023-03-03 16:00:51 -05:00
firepixie
f3443e70f3 FIrst Commit 2023-03-03 12:48:41 -08:00
Anne Barela
36cc5f4a33
Merge pull request #2427 from adafruit/star_fragment
adding code for star fragment lamp
2023-03-03 13:36:49 -05:00
Liz
f81492395a adding code for star fragment lamp
Adding code for star fragment lamp. essentially a reverse sunrise lamp (turns on at sunset)
2023-03-03 13:23:59 -05:00
caternuson
dcf231f5fc update analog feedback servo 2023-03-02 16:31:12 -08:00
Anne Barela
74cd746b06
Merge pull request #2425 from adafruit/s3_reverse_tft_factory
adding s3 reverse tft factory test
2023-03-02 13:22:47 -05:00
Liz
a6c346fa61 adding s3 reverse tft factory test 2023-03-02 13:05:32 -05:00
Anne Barela
c25124d86f
Merge pull request #2424 from jepler/snes-mouse
Add code for SNES mouse to USB HID with CircuitPython
2023-03-02 11:55:59 -05:00
b587e23ae3
add spdx 2023-03-02 10:33:32 -06:00
Anne Barela
f0771c1f94
Merge pull request #2423 from adafruit/reverseTFT_example
adding touchio example
2023-03-01 14:22:22 -05:00
Liz
ac2641e279 adding touchio example
adding touchio example for s3 reverse tft
2023-03-01 14:09:58 -05:00
dccf6f92f0
Add code for SNES mouse to USB HID with CircuitPython 2023-03-01 10:34:06 -06:00
Anne Barela
498f3f0fb6
Merge pull request #2422 from adafruit/Matrix-Portal-M4-Boxing-Interval-Timer
First commit
2023-02-23 14:25:59 -05:00
TrevKnows
28d500b49b Added missing SPDX info 2023-02-23 13:56:50 -05:00
TrevKnows
9b0d02cd05 First commit 2023-02-23 11:59:53 -05:00
Jeff Epler
be3fc76533
Merge pull request #2421 from adafruit/TheKitty-patch-3
Update code.py
2023-02-22 16:55:03 -06:00
Anne Barela
478ebcca9e
Update code.py 2023-02-22 17:17:16 -05:00
Anne Barela
57fdf5951b
Update code.py 2023-02-22 17:04:26 -05:00
Anne Barela
6172c7a3f4
Update code.py 2023-02-22 16:58:19 -05:00
Anne Barela
c5caa75392
Update code.py 2023-02-22 16:51:14 -05:00
Anne Barela
d262553f9a
Update code.py
Slight changes to make Mu happy, cut out some debug code.
2023-02-22 16:31:06 -05:00
Jeff Epler
a094e80371
Merge pull request #2420 from adafruit/TheKitty-patch-3
PR for the Floppy with Display Learn Project
2023-02-22 14:46:04 -06:00
Anne Barela
c7056f0d88
Update code.py
Changes for lint and remove most debug statements
2023-02-22 14:43:17 -05:00
Anne Barela
0a883974b5
Add files via upload 2023-02-22 13:49:04 -05:00
Anne Barela
31d3b15054
Create README.md 2023-02-22 13:46:04 -05:00
lady ada
c33c478c70 some hardware testing code 2023-02-18 11:32:17 -05:00
Anne Barela
0804d363e5
Merge pull request #2419 from jedgarpark/meowsic-midi
meowsic midi code
2023-02-17 09:03:51 -05:00
John Park
11819ee7c5 meowsic midi code 2023-02-16 17:59:41 -08:00
Anne Barela
fa2633e47e
Merge pull request #2418 from adafruit/magicband_update
updating code for magic band reader
2023-02-16 09:45:22 -05:00
Noe Ruiz
3e8b211afd updating code for magic band reader
updating code for magic band reader
2023-02-16 09:12:32 -05:00
Dan Halbert
d2a630e799
Merge pull request #2417 from adafruit/neokey_update
Adding delay
2023-02-15 14:13:39 -05:00
Anne Barela
b8c1bce065
Merge pull request #2403 from adafruit/pylint-learn-command-name
Use pylint-learn as the pylint version, if installed
2023-02-15 13:10:50 -05:00
BlitzCityDIY
363678d8af fix pylint 2023-02-15 13:06:24 -05:00
Anne Barela
f8bbe6110b
Merge pull request #2416 from adafruit/ov5640-more-demos
Ov5640 more demos
2023-02-15 13:02:46 -05:00
BlitzCityDIY
1fd58d657e adding elif 2023-02-15 13:01:49 -05:00
BlitzCityDIY
4380b22136 Adding delay
Adding delay for debouncing
2023-02-15 12:49:02 -05:00
Jeff Epler
5b534a64a8
Update README.md
fix typo & expand directions
2023-02-15 11:29:42 -06:00
f450e770c9 Fix some pylint messages 2023-02-15 10:55:00 -06:00
a2454f84f8 fix psram setup messages 2023-02-15 10:33:10 -06:00
c4b79a11ae Add jpeg example for ov5640 & kaluga 2023-02-15 10:31:35 -06:00
751422b7fe Update camera demos 2023-02-15 10:31:35 -06:00
Anne Barela
e0a0722e85
Merge pull request #2414 from adafruit/neokey_bff
adding example code for neokey bff
2023-02-15 08:38:07 -05:00
BlitzCityDIY
7f8d65cb63 changing to feather rp2040 test only 2023-02-14 19:12:57 -05:00
BlitzCityDIY
d12f3c6e9a adding different test file
there is no test file for qtpy rp2040 which i should have checked so adding qtpy esp32s2
2023-02-14 17:41:00 -05:00
BlitzCityDIY
db558df584 moving to arduino folder 2023-02-14 16:36:46 -05:00
Jeff Epler
d900c1153c
Update README.md 2023-02-14 15:19:53 -06:00
BlitzCityDIY
96adb6c647 updating test only 2023-02-14 16:16:41 -05:00
BlitzCityDIY
1967623556 updating test only file 2023-02-14 16:16:10 -05:00
BlitzCityDIY
fd05209c1a adding example code for neokey bff
Adding CircuitPython and Arduino examples for NeoKey BFF
2023-02-14 16:03:51 -05:00
Anne Barela
fa4f6b14ac
Merge pull request #2413 from adafruit/microsd_bff_arduino
Adding Arduino code
2023-02-14 11:57:48 -05:00
BlitzCityDIY
183041ff50 Adding Arduino code
Adding an Arduino test for the microsd bff
2023-02-14 10:59:54 -05:00
Anne Barela
8cdfb60805
Merge pull request #2412 from adafruit/microsd_bff
adding examples for microsd bff
2023-02-14 09:55:37 -05:00
BlitzCityDIY
38cb803bc4 adding examples for microsd bff
Adding a read and write example for the microsd bff
2023-02-14 09:44:26 -05:00
Liz
6fc13980e9
Merge pull request #2410 from adafruit/ESP32-S2-TFT-Boxing-Tracker-1
First Commit
2023-02-13 12:34:46 -05:00
TrevKnows
6196472f77 First Commit 2023-02-13 11:13:56 -05:00
Anne Barela
d36bae83d5
Merge pull request #2409 from jepler/ov5640
Add camera code
2023-02-13 10:27:13 -05:00
Anne Barela
e10577866b
Merge pull request #2408 from adafruit/new_battery_test
Adding battery test code
2023-02-13 10:14:59 -05:00
BlitzCityDIY
c18eab1aed Adding battery test code
Adding a new battery monitor test code. Code determines whether or not the board has a MAX17048 or LC709203F chip.
2023-02-13 09:26:44 -05:00
anecdata
436240f539
Update CircuitPython Essentials Pin Map Script for Pico W
Also add a commented line to show `microcontroller` pins.
2023-02-12 11:47:35 -06:00
Liz
39c8bc728d
Merge pull request #2406 from adafruit/TheKitty-patch-3
Fix pylint errors that cropped up
2023-02-10 17:59:37 -05:00
Anne Barela
6239098129
Update code.py 2023-02-10 17:45:16 -05:00
Anne Barela
40abf6569c
Fix pylint errors that cropped up 2023-02-10 17:41:46 -05:00
Anne Barela
a85ac676e3
Merge pull request #2405 from kattni/battery-measurement
Adding LC/MAX measurement code.
2023-02-10 17:08:00 -05:00
Kattni Rembor
b7b3c8ad48 Adding LC/MAX measurement code. 2023-02-10 16:56:52 -05:00
541f533143
Use pylint-learn as the pylint version, if installed
.. this allows a user to install the specific version of pylint
required, under the specific name:
```
pipx install --suffix -learn pylint==2.7.1
```
and run pylint_check more easily locally.
2023-02-09 11:12:51 -06:00
b184fe33f2 Add camera code 2023-02-08 08:43:25 -06:00
dherrada
9aeeef9d24 Made requested changes 2022-11-30 16:21:36 -05:00
evaherrada
f5db43ed6f
fixed ulab spectrogram imports 2022-11-21 14:15:12 -05:00
rdagger
ab621fe74a
Update BLE code for CircuitPython 8 compatibility 2022-09-03 11:51:06 -07:00
rdagger
278a472f30
Update BLE code for CircuitPython 8 compatibility 2022-09-03 11:47:28 -07:00
Victor Toni
ed18ab7908 Add blank screen usable when idle
The MacroPad stays active including screen and lights even when the computer it is attached to, goes to sleep. 
This change provides a blank screen, sets all RGB lights to black and disables the bright background of the title bar when the title is empty (as on the blank screen).
2021-11-25 23:52:06 +01:00
Brent Rubell
ad3a0dabf3
Merge branch 'master' into patch-1 2020-08-03 18:26:44 -04:00
Limor "Ladyada" Fried
c01e78be60
Merge branch 'master' into patch-1 2020-05-17 17:56:49 -04:00
Ernie Hershey
704ed23543
Display CPU temperature
The temperature command was set up but not executed or used for display
2020-03-07 14:34:04 -05:00
3465 changed files with 553749 additions and 9806 deletions

134
.github/workflows/arduino_cron.yml vendored Normal file
View file

@ -0,0 +1,134 @@
name: Arduino Library CI
on:
workflow_dispatch:
pull_request:
push:
jobs:
check-if-needed:
runs-on: ubuntu-latest
outputs:
answer: ${{ steps.is-needed.outputs.answer }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Check if run by adabot
id: check-cron
run: |
iscron=false
[[ "${{ github.event_name }}" == "push" && "${{ github.actor }}" == "adafruit-adabot" ]] && iscron=true
echo "status=$iscron" >> "$GITHUB_OUTPUT"
- name: Check if dispatched
id: check-dispatch
run: |
isdispatch=false
[[ "${{ github.event_name }}" == "workflow_dispatch" ]] && isdispatch=true
echo "status=$isdispatch" >> "$GITHUB_OUTPUT"
- name: Check for Arduino file updates
id: check-updated
if: ${{ steps.check-cron.outputs.status }} == false && ${{ steps.check-dispatch.outputs.status }} == false
run: |
changedfiles=$(git diff --name-only -r HEAD^1 HEAD)
ischanged=false
for changedfile in ${changedfiles[*]}; do
echo $changedfile
if [[ $changedfile == *.c ]] ||
[[ $changedfile == *.cpp ]] ||
[[ $changedfile == *.h ]] ||
[[ $changedfile == *.hpp ]] ||
[[ $changedfile == *.ino ]] ||
[[ $changedfile == *.yml ]]; then
ischanged=true
break
fi
done
echo "status=$ischanged" >> "$GITHUB_OUTPUT"
- name: Output Arduino needed
id: is-needed
run: |
isneeded=false
if [[ ${{ steps.check-cron.outputs.status }} == true ]] ||
[[ ${{ steps.check-dispatch.outputs.status }} == true ]] ||
[[ ${{ steps.check-updated.outputs.status }} == true ]]; then
isneeded=true
fi
echo "answer=$isneeded" >> "$GITHUB_OUTPUT"
arduino:
strategy:
fail-fast: false
matrix:
arduino-platform: ["cpb", "cpc", "cpx_ada", "esp32", "esp8266", "feather32u4", "feather_esp32c6", "feather_m0_express", "feather_m4_express", "feather_rp2040", "feather_rp2040_adalogger", "feather_rp2350", "flora", "fruit_jam_tinyusb", "funhouse", "gemma", "gemma_m0", "hallowing_m0", "hallowing_m4_tinyusb", "ledglasses_nrf52840", "magtag", "metro_m0", "metro_m0_tinyusb", "metro_m4", "metro_m4_tinyusb", "monster_m4sk", "monster_m4sk_tinyusb", "metro_rp2350", "neokeytrinkey_m0", "neotrellis_m4", "nrf52832", "nrf52840", "pixeltrinkey_m0", "protrinket_5v", "proxlighttrinkey_m0", "pybadge", "pycamera_s3", "pygamer", "pyportal", "qualia_s3_rgb666", "qt2040_trinkey", "qtpy_m0", "qtpy_esp32s2", "rotarytrinkey_m0", "sht4xtrinkey_m0", "slidetrinkey_m0", "trinket_5v", "trinket_m0", "uno"]
runs-on: ubuntu-latest
if: needs.check-if-needed.outputs.answer == 'true'
needs: check-if-needed
steps:
- uses: actions/setup-python@v5
with:
python-version: "3.x"
# Checkout the learn repo itself
- uses: actions/checkout@v4
# Checkout the CI scripts
- uses: actions/checkout@v4
with:
repository: adafruit/ci-arduino
path: ci
- name: pre-install
run: bash ci/actions_install.sh
# manually install some libraries
- name: extra libraries
run: |
git clone --quiet https://github.com/adafruit/Cryptosuite.git /home/runner/Arduino/libraries/Cryptosuite
git clone --quiet https://github.com/adafruit/WiFiNINA.git /home/runner/Arduino/libraries/WiFiNINA
git clone --quiet https://github.com/adafruit/Adafruit_LSM303.git /home/runner/Arduino/libraries/Adafruit_LSM303
git clone --quiet https://github.com/moderndevice/CapSense.git /home/runner/Arduino/libraries/CapSense
git clone --quiet https://github.com/PaintYourDragon/ffft.git /home/runner/Arduino/libraries/ffft
git clone --quiet https://github.com/adafruit/RadioHead.git /home/runner/Arduino/libraries/RadioHead
git clone --quiet https://github.com/me-no-dev/ESPAsyncTCP /home/runner/Arduino/libraries/ESPAsyncTCP
git clone --quiet https://github.com/adafruit/Talkie /home/runner/Arduino/libraries/Talkie
git clone --quiet https://github.com/Infineon/arduino-optiga-trust-m /home/runner/Arduino/libraries/arduinoOptigaTrustM
git clone --quiet https://github.com/adafruit/HID /home/runner/Arduino/libraries/HID_Project
rm -rf /home/runner/Arduino/libraries/ArduinoHttpClient
git clone --quiet https://github.com/arduino-libraries/ArduinoHttpClient.git /home/runner/Arduino/libraries/ArduinoHttpClient
git clone --quiet https://github.com/pschatzmann/ESP32-A2DP /home/runner/Arduino/libraries/ESP32-A2DP
git clone --quiet https://github.com/pschatzmann/arduino-audio-tools /home/runner/Arduino/libraries/arduino-audio-tools
- name: test platforms
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }}
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ github.event.repository.name }}.${{ github.sha }}
path: |
build/*.hex
build/*.bin
build/*.uf2
- name: Zip release files
if: startsWith(github.ref, 'refs/tags/')
run: |
if [ -d build ]; then
(
echo "Built from Adafruit Learning System Guides `git describe --tags` for ${{ matrix.arduino-platform }}"
echo "Source code: https://github.com/adafruit/"
echo "Adafruit Learning System: https://learn.adafruit.com/"
) > build/README.txt
cd build && zip -9 -o ${{ matrix.arduino-platform }}.zip *.hex *.bin *.uf2 *.txt
fi
- name: Create release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v1
with:
files: build/${{ matrix.arduino-platform }}.zip
fail_on_unmatched_files: false
body: "Select the zip file corresponding to your board from the list below."

View file

@ -1,4 +1,4 @@
name: Arduino Library CI
name: SPDX and Pylint
on: [pull_request, push, repository_dispatch]
@ -6,89 +6,20 @@ jobs:
spdx:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Checkout Current Repo
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: check SPDX licensing
run: python ./SPDX.py
arduino:
strategy:
fail-fast: false
matrix:
arduino-platform: ["cpb", "cpc", "cpx_ada", "esp32", "esp8266", "feather32u4", "feather_m0_express", "feather_m4_express", "feather_rp2040", "flora", "funhouse", "gemma", "gemma_m0", "hallowing_m0", "hallowing_m4_tinyusb", "magtag", "metro_m0", "metro_m0_tinyusb", "metro_m4", "metro_m4_tinyusb", "monster_m4sk", "monster_m4sk_tinyusb", "neokeytrinkey_m0", "neotrellis_m4", "nrf52832", "nrf52840", "protrinket_5v", "proxlighttrinkey_m0", "pybadge", "pygamer", "pyportal", "qt2040_trinkey", "qtpy_m0", "qtpy_esp32s2", "rotarytrinkey_m0", "slidetrinkey_m0", "trinket_m0", "uno", "trinket_5v", "ledglasses_nrf52840" ]
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- uses: actions/checkout@v3
- uses: actions/checkout@v3
with:
repository: adafruit/ci-arduino
path: ci
- name: pre-install
run: bash ci/actions_install.sh
# manually install some libraries
- name: extra libraries
run: |
git clone --quiet https://github.com/adafruit/Cryptosuite.git /home/runner/Arduino/libraries/Cryptosuite
git clone --quiet https://github.com/adafruit/WiFiNINA.git /home/runner/Arduino/libraries/WiFiNINA
git clone --quiet https://github.com/adafruit/Adafruit_LSM303.git /home/runner/Arduino/libraries/Adafruit_LSM303
git clone --quiet https://github.com/moderndevice/CapSense.git /home/runner/Arduino/libraries/CapSense
git clone --quiet https://github.com/PaintYourDragon/ffft.git /home/runner/Arduino/libraries/ffft
git clone --quiet https://github.com/adafruit/RadioHead.git /home/runner/Arduino/libraries/RadioHead
git clone --quiet https://github.com/me-no-dev/ESPAsyncTCP /home/runner/Arduino/libraries/ESPAsyncTCP
git clone --quiet https://github.com/adafruit/Talkie /home/runner/Arduino/libraries/Talkie
git clone --quiet https://github.com/Infineon/arduino-optiga-trust-m /home/runner/Arduino/libraries/arduinoOptigaTrustM
git clone --quiet https://github.com/adafruit/HID /home/runner/Arduino/libraries/HID_Project
rm -rf /home/runner/Arduino/libraries/ArduinoHttpClient
git clone --quiet https://github.com/arduino-libraries/ArduinoHttpClient.git /home/runner/Arduino/libraries/ArduinoHttpClient
- name: test platforms
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }}
- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ github.event.repository.name }}.${{ github.sha }}
path: |
build/*.hex
build/*.bin
build/*.uf2
- name: Zip release files
if: startsWith(github.ref, 'refs/tags/')
run: |
if [ -d build ]; then
(
echo "Built from Adafruit Learning System Guides `git describe --tags` for ${{ matrix.arduino-platform }}"
echo "Source code: https://github.com/adafruit/"
echo "Adafruit Learning System: https://learn.adafruit.com/"
) > build/README.txt
cd build && zip -9 -o ${{ matrix.arduino-platform }}.zip *.hex *.bin *.uf2 *.txt
fi
- name: Create release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v1
with:
files: build/${{ matrix.arduino-platform }}.zip
fail_on_unmatched_files: false
body: "Select the zip file corresponding to your board from the list below."
pylint:
runs-on: ubuntu-latest
steps:
- name: Set up Python 3.10
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Versions
@ -98,7 +29,7 @@ jobs:
run: |
pip install --force-reinstall pylint==2.7.1
- name: Checkout Current Repo
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: lint
run: ./pylint_check.sh

View file

@ -21,10 +21,10 @@ jobs:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.x
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.x"

View file

@ -0,0 +1,622 @@
// SPDX-FileCopyrightText: 2023 Phil B. for Adafruit Industries
// SPDX-License-Identifier: MIT
// Basic full-color PicoDVI test. Provides a 16-bit color video framebuffer to
// which Adafruit_GFX calls can be made. It's based on the EYESPI_Test.ino sketch.
#include <PicoDVI.h> // Core display & graphics library
#include <Fonts/FreeSansBold18pt7b.h> // A custom font
// Here's how a 320x240 16-bit color framebuffer is declared. Double-buffering
// is not an option in 16-bit color mode, just not enough RAM; all drawing
// operations are shown as they occur. Second argument is a hardware
// configuration -- examples are written for Adafruit Feather RP2040 DVI, but
// that's easily switched out for boards like the Pimoroni Pico DV (use
// 'pimoroni_demo_hdmi_cfg') or Pico DVI Sock ('pico_sock_cfg').
DVIGFX16 display(DVI_RES_320x240p60, adafruit_dvibell_cfg);
// A 400x240 mode is possible but pushes overclocking even higher than
// 320x240 mode. SOME BOARDS MIGHT SIMPLY NOT BE COMPATIBLE WITH THIS.
// May require selecting QSPI div4 clock (Tools menu) to slow down flash
// accesses, may require further over-volting the CPU to 1.25 or 1.3 V.
//DVIGFX16 display(DVI_RES_400x240p60, adafruit_feather_dvi_cfg);
void setup() { // Runs once on startup
if (!display.begin()) { // Blink LED if insufficient RAM
pinMode(LED_BUILTIN, OUTPUT);
for (;;) digitalWrite(LED_BUILTIN, (millis() / 500) & 1);
}
}
#define PAUSE 2000 // Delay (milliseconds) between examples
uint8_t rotate = 0; // Current screen orientation (0-3)
#define CORNER_RADIUS 0
void loop() {
// Each of these functions demonstrates a different Adafruit_GFX concept:
show_shapes();
show_charts();
show_basic_text();
show_char_map();
show_custom_text();
show_bitmap();
show_canvas();
if (++rotate > 3) rotate = 0; // Cycle through screen rotations 0-3
display.setRotation(rotate); // Takes effect on next drawing command
}
// BASIC SHAPES EXAMPLE ----------------------------------------------------
void show_shapes() {
// Draw outlined and filled shapes. This demonstrates:
// - Enclosed shapes supported by GFX (points & lines are shown later).
// - Adapting to different-sized displays, and to rounded corners.
const int16_t cx = display.width() / 2; // Center of screen =
const int16_t cy = display.height() / 2; // half of width, height
int16_t minor = min(cx, cy); // Lesser of half width or height
// Shapes will be drawn in a square region centered on the screen. But one
// particular screen -- rounded 240x280 ST7789 -- has VERY rounded corners
// that would clip a couple of shapes if drawn full size. If using that
// screen type, reduce area by a few pixels to avoid drawing in corners.
if (CORNER_RADIUS > 40) minor -= 4;
const uint8_t pad = 5; // Space between shapes is 2X this
const int16_t size = minor - pad; // Shapes are this width & height
const int16_t half = size / 2; // 1/2 of shape size
display.fillScreen(0); // Start by clearing the screen; color 0 = black
// Draw outline version of basic shapes: rectangle, triangle, circle and
// rounded rectangle in different colors. Rather than hardcoded numbers
// for position and size, some arithmetic helps adapt to screen dimensions.
display.drawRect(cx - minor, cy - minor, size, size, 0xF800);
display.drawTriangle(cx + pad, cy - pad, cx + pad + half, cy - minor,
cx + minor - 1, cy - pad, 0x07E0);
display.drawCircle(cx - pad - half, cy + pad + half, half, 0x001F);
display.drawRoundRect(cx + pad, cy + pad, size, size, size / 5, 0xFFE0);
delay(PAUSE);
// Draw same shapes, same positions, but filled this time.
display.fillRect(cx - minor, cy - minor, size, size, 0xF800);
display.fillTriangle(cx + pad, cy - pad, cx + pad + half, cy - minor,
cx + minor - 1, cy - pad, 0x07E0);
display.fillCircle(cx - pad - half, cy + pad + half, half, 0x001F);
display.fillRoundRect(cx + pad, cy + pad, size, size, size / 5, 0xFFE0);
delay(PAUSE);
} // END SHAPE EXAMPLE
// CHART EXAMPLES ----------------------------------------------------------
void show_charts() {
// Draw some graphs and charts. GFX library doesn't handle these as native
// object types, but it only takes a little code to build them from simple
// shapes. This demonstrates:
// - Drawing points and horizontal, vertical and arbitrary lines.
// - Adapting to different-sized displays.
// - Graphics being clipped off edge.
// - Use of negative values to draw shapes "backward" from an anchor point.
// - C technique for finding array size at runtime (vs hardcoding).
display.fillScreen(0); // Clear screen
const int16_t cx = display.width() / 2; // Center of screen =
const int16_t cy = display.height() / 2; // half of width, height
const int16_t minor = min(cx, cy); // Lesser of half width or height
const int16_t major = max(cx, cy); // Greater of half width or height
// Let's start with a relatively simple sine wave graph with axes.
// Draw graph axes centered on screen. drawFastHLine() and drawFastVLine()
// need fewer arguments than normal 2-point line drawing shown later.
display.drawFastHLine(0, cy, display.width(), 0x0210); // Dark blue
display.drawFastVLine(cx, 0, display.height(), 0x0210);
// Then draw some tick marks along the axes. To keep this code simple,
// these aren't to any particular scale, but a real program may want that.
// The loop here draws them from the center outward and pays no mind
// whether the screen is rectangular; any ticks that go off-screen will
// be clipped by the library.
for (uint8_t i=1; i<=10; i++) {
// The Arduino map() function scales an input value (e.g. "i") from an
// input range (0-10 here) to an output range (0 to major-1 here).
// Very handy for making graphics adjust to different screens!
int16_t n = map(i, 0, 10, 0, major - 1); // Tick offset relative to center point
display.drawFastVLine(cx - n, cy - 5, 11, 0x210);
display.drawFastVLine(cx + n, cy - 5, 11, 0x210);
display.drawFastHLine(cx - 5, cy - n, 11, 0x210);
display.drawFastHLine(cx - 5, cy + n, 11, 0x210);
}
// Then draw sine wave over this using GFX drawPixel() function.
for (int16_t x=0; x<display.width(); x++) { // Each column of screen...
// Note the inverted Y axis here (cy-value rather than cy+value)
// because GFX, like most graphics libraries, has +Y heading down,
// vs. classic Cartesian coords which have +Y heading up.
int16_t y = cy - (int16_t)(sin((x - cx) * 0.05) * (float)minor * 0.5);
display.drawPixel(x, y, 0xFFFF);
}
delay(PAUSE);
// Next, let's draw some charts...
// NOTE: some other examples in this code take extra steps to avoid placing
// anything off in the rounded corners of certain displays. The charts do
// not. It's *possible* but would introduce a lot of complexity into code
// that's trying to show the basics. We'll leave the clipped charts here as
// a teachable moment: not all content suits all displays.
// A list of data to plot. These are Y values only; X assumed equidistant.
const uint8_t data[] = { 31, 42, 36, 58, 67, 88 }; // Percentages, 0-100
const uint8_t num_points = sizeof data / sizeof data[0]; // Length of data[] list
display.fillScreen(0); // Clear screen
display.setFont(); // Use default (built-in) font
display.setTextSize(2); // and 2X size for chart label
// Chart label is centered manually; 144 is the width in pixels of
// "Widget Sales" at 2X scale (12 chars * 6 px * 2 = 144). A later example
// shows automated centering based on string.
display.setCursor((display.width() - 144) / 2, 0);
display.print(F("Widget Sales")); // F("string") is in program memory, not RAM
// The chart-drawing code is then written to skip the top 20 rows where
// this label is located.
// First, a line chart, connecting the values point-to-point:
// Draw a grid of lines to provide scale & an interesting background.
for (uint8_t i=0; i<11; i++) {
int16_t x = map(i, 0, 10, 0, display.width() - 1); // Scale grid X to screen
display.drawFastVLine(x, 20, display.height(), 0x001F);
int16_t y = map(i, 0, 10, 20, display.height() - 1); // Scale grid Y to screen
display.drawFastHLine(0, y, display.width(), 0x001F);
}
// And then draw lines connecting data points. Load up the first point...
int16_t prev_x = 0;
int16_t prev_y = map(data[0], 0, 100, display.height() - 1, 20);
// Then connect lines to each subsequent point...
for (uint8_t i=1; i<num_points; i++) {
int16_t new_x = map(i, 0, num_points - 1, 0, display.width() - 1);
int16_t new_y = map(data[i], 0, 100, display.height() - 1, 20);
display.drawLine(prev_x, prev_y, new_x, new_y, 0x07FF);
prev_x = new_x;
prev_y = new_y;
}
// For visual interest, let's add a circle around each data point. This is
// done in a second pass so the circles are always drawn "on top" of lines.
for (uint8_t i=0; i<num_points; i++) {
int16_t x = map(i, 0, num_points - 1, 0, display.width() - 1);
int16_t y = map(data[i], 0, 100, display.height() - 1, 20);
display.drawCircle(x, y, 5, 0xFFFF);
}
delay(PAUSE);
// Then a bar chart of the same data...
// Erase the old chart but keep the label at top.
display.fillRect(0, 20, display.width(), display.height() - 20, 0);
// Just draw the Y axis lines; bar chart doesn't really need X lines.
for (uint8_t i=0; i<11; i++) {
int16_t y = map(i, 0, 10, 20, display.height() - 1);
display.drawFastHLine(0, y, display.width(), 0x001F);
}
int bar_width = display.width() / num_points - 4; // 2px pad to either side
for (uint8_t i=0; i<num_points; i++) {
int16_t x = map(i, 0, num_points, 0, display.width()) + 2; // Left edge of bar
int16_t height = map(data[i], 0, 100, 0, display.height() - 20);
// Some GFX functions (rects, H/V lines and similar) can accept negative
// width/height values. What this does is anchor the shape at the right or
// bottom coordinate (rather than the usual left/top) and draw back from
// there, hence the -height here (bar is anchored at bottom of screen):
display.fillRect(x, display.height() - 1, bar_width, -height, 0xFFE0);
}
delay(PAUSE);
} // END CHART EXAMPLES
// TEXT ALIGN FUNCTIONS ----------------------------------------------------
// Adafruit_GFX only handles left-aligned text. This is normal and by design;
// it's a rare need that would further strain AVR by incurring a ton of extra
// code to properly handle, and some details would confuse. If needed, these
// functions give a fair approximation, with the "gotchas" that multi-line
// input won't work, and this operates only as a println(), not print()
// (though, unlike println(), cursor X does not reset to column 0, instead
// returning to initial column and downward by font's line spacing). If you
// can work with those constraints, it's a modest amount of code to copy
// into a project. Or, if your project only needs one or two aligned strings,
// simply use getTextBounds() for a bounding box and work from there.
// DO NOT ATTEMPT TO MAKE THIS A GFX-NATIVE FEATURE, EVERYTHING WILL BREAK.
typedef enum { // Alignment options passed to functions below
GFX_ALIGN_LEFT,
GFX_ALIGN_CENTER,
GFX_ALIGN_RIGHT
} GFXalign;
// Draw text aligned relative to current cursor position. Arguments:
// gfx : An Adafruit_GFX-derived type (e.g. display or canvas object).
// str : String to print (as a char *).
// align : One of the GFXalign values declared above.
// GFX_ALIGN_LEFT is normal left-aligned println() behavior.
// GFX_ALIGN_CENTER prints centered on cursor pos.
// GFX_ALIGN_RIGHT prints right-aligned to cursor pos.
// Cursor advances down one line a la println(). Column is unchanged.
void print_aligned(Adafruit_GFX &gfx, const char *str,
GFXalign align = GFX_ALIGN_LEFT) {
uint16_t w, h;
int16_t x, y, cursor_x, cursor_x_save;
cursor_x = cursor_x_save = gfx.getCursorX();
gfx.getTextBounds(str, 0, gfx.getCursorY(), &x, &y, &w, &h);
if (align == GFX_ALIGN_RIGHT) cursor_x -= w;
else if (align == GFX_ALIGN_CENTER) cursor_x -= w / 2;
//gfx.drawRect(cursor_x, y, w, h, 0xF800); // Debug rect
gfx.setCursor(cursor_x - x, gfx.getCursorY()); // Center/right align
gfx.println(str);
gfx.setCursor(cursor_x_save, gfx.getCursorY()); // Restore cursor X
}
// Equivalent function for strings in flash memory (e.g. F("Foo")). Body
// appears identical to above function, but with C++ overloading it it works
// from flash instead of RAM. Any changes should be made in both places.
void print_aligned(Adafruit_GFX &gfx, const __FlashStringHelper *str,
GFXalign align = GFX_ALIGN_LEFT) {
uint16_t w, h;
int16_t x, y, cursor_x, cursor_x_save;
cursor_x = cursor_x_save = gfx.getCursorX();
gfx.getTextBounds(str, 0, gfx.getCursorY(), &x, &y, &w, &h);
if (align == GFX_ALIGN_RIGHT) cursor_x -= w;
else if (align == GFX_ALIGN_CENTER) cursor_x -= w / 2;
//gfx.drawRect(cursor_x, y, w, h, 0xF800); // Debug rect
gfx.setCursor(cursor_x - x, gfx.getCursorY()); // Center/right align
gfx.println(str);
gfx.setCursor(cursor_x_save, gfx.getCursorY()); // Restore cursor X
}
// Equivalent function for Arduino Strings; converts to C string (char *)
// and calls corresponding print_aligned() implementation.
void print_aligned(Adafruit_GFX &gfx, const String &str,
GFXalign align = GFX_ALIGN_LEFT) {
print_aligned(gfx, const_cast<char *>(str.c_str()));
}
// TEXT EXAMPLES -----------------------------------------------------------
// This section demonstrates:
// - Using the default 5x7 built-in font, including scaling in each axis.
// - How to access all characters of this font, including symbols.
// - Using a custom font, including alignment techniques that aren't a normal
// part of the GFX library (uses functions above).
void show_basic_text() {
// Show text scaling with built-in font.
display.fillScreen(0);
display.setFont(); // Use default font
display.setCursor(0, CORNER_RADIUS); // Initial cursor position
display.setTextSize(1); // Default size
display.println(F("Standard built-in font"));
display.setTextSize(2);
display.println(F("BIG TEXT"));
display.setTextSize(3);
// "BIGGER TEXT" won't fit on narrow screens, so abbreviate there.
display.println((display.width() >= 200) ? F("BIGGER TEXT") : F("BIGGER"));
display.setTextSize(2, 4);
display.println(F("TALL and"));
display.setTextSize(4, 2);
display.println(F("WIDE"));
delay(PAUSE);
} // END BASIC TEXT EXAMPLE
void show_char_map() {
// "Code Page 437" is a name given to the original IBM PC character set.
// Despite age and limited language support, still seen in small embedded
// settings as it has some useful symbols and accented characters. The
// default 5x7 pixel font of Adafruit_GFX is modeled after CP437. This
// function draws a table of all the characters & explains some issues.
// There are 256 characters in all. Draw table as 16 rows of 16 columns,
// plus hexadecimal row & column labels. How big can each cell be drawn?
const int cell_size = min(display.width(), display.height()) / 17;
if (cell_size < 8) return; // Screen is too small for table, skip example.
const int total_size = cell_size * 17; // 16 cells + 1 row or column label
// Set up for default 5x7 font at 1:1 scale. Custom fonts are NOT used
// here as most are only 128 characters to save space (the "7b" at the
// end of many GFX font names means "7 bits," i.e. 128 characters).
display.setFont();
display.setTextSize(1);
// Early Adafruit_GFX was missing one symbol, throwing off some indices!
// But fixing the library would break MANY existing sketches that relied
// on the degrees symbol and others. The default behavior is thus "broken"
// to keep older code working. New code can access the CORRECT full CP437
// table by calling this function like so:
display.cp437(true);
display.fillScreen(0);
const int16_t x = (display.width() - total_size) / 2; // Upper left corner of
int16_t y = (display.height() - total_size) / 2; // table centered on screen
if (y >= 4) { // If there's a little extra space above & below, scoot table
y += 4; // down a few pixels and show a message centered at top.
display.setCursor((display.width() - 114) / 2, 0); // 114 = pixel width
display.print(F("CP437 Character Map")); // of this message
}
const int16_t inset_x = (cell_size - 5) / 2; // To center each character within cell,
const int16_t inset_y = (cell_size - 8) / 2; // compute X & Y offset from corner.
for (uint8_t row=0; row<16; row++) { // 16 down...
// Draw row and columm headings as hexadecimal single digits. To get the
// hex value for a specific character, combine the left & top labels,
// e.g. Pi symbol is row E, column 3, thus: display.print((char)0xE3);
display.setCursor(x + (row + 1) * cell_size + inset_x, y + inset_y);
display.print(row, HEX); // This actually draws column labels
display.setCursor(x + inset_x, y + (row + 1) * cell_size + inset_y);
display.print(row, HEX); // and THIS is the row labels
for (uint8_t col=0; col<16; col++) { // 16 across...
if ((row + col) & 1) { // Fill alternating cells w/gray
display.fillRect(x + (col + 1) * cell_size, y + (row + 1) * cell_size,
cell_size, cell_size, 0x630C);
}
// drawChar() bypasses usual cursor positioning to go direct to an X/Y
// location. If foreground & background match, it's drawn transparent.
display.drawChar(x + (col + 1) * cell_size + inset_x,
y + (row + 1) * cell_size + inset_y, row * 16 + col,
0xFFFF, 0xFFFF, 1);
}
}
delay(PAUSE * 2);
} // END CHAR MAP EXAMPLE
void show_custom_text() {
// Show use of custom fonts, plus how to do center or right alignment
// using some additional functions provided earlier.
display.fillScreen(0);
display.setFont(&FreeSansBold18pt7b);
display.setTextSize(1);
display.setTextWrap(false); // Allow text off edges
// Get "M height" of custom font and move initial base line there:
uint16_t w, h;
int16_t x, y;
display.getTextBounds("M", 0, 0, &x, &y, &w, &h);
// On rounded 240x280 display in tall orientation, "Custom Font" gets
// clipped by top corners. Scoot text down a few pixels in that one case.
if (CORNER_RADIUS && (display.height() == 280)) h += 20;
display.setCursor(display.width() / 2, h);
if (display.width() >= 200) {
print_aligned(display, F("Custom Font"), GFX_ALIGN_CENTER);
display.setCursor(0, display.getCursorY() + 10);
print_aligned(display, F("Align Left"), GFX_ALIGN_LEFT);
display.setCursor(display.width() / 2, display.getCursorY());
print_aligned(display, F("Centered"), GFX_ALIGN_CENTER);
// Small rounded screen, when oriented the wide way, "Right" gets
// clipped by bottom right corner. Scoot left to compensate.
int16_t x_offset = (CORNER_RADIUS && (display.height() < 200)) ? 15 : 0;
display.setCursor(display.width() - x_offset, display.getCursorY());
print_aligned(display, F("Align Right"), GFX_ALIGN_RIGHT);
} else {
// On narrow screens, use abbreviated messages
print_aligned(display, F("Font &"), GFX_ALIGN_CENTER);
print_aligned(display, F("Align"), GFX_ALIGN_CENTER);
display.setCursor(0, display.getCursorY() + 10);
print_aligned(display, F("Left"), GFX_ALIGN_LEFT);
display.setCursor(display.width() / 2, display.getCursorY());
print_aligned(display, F("Center"), GFX_ALIGN_CENTER);
display.setCursor(display.width(), display.getCursorY());
print_aligned(display, F("Right"), GFX_ALIGN_RIGHT);
}
delay(PAUSE);
} // END CUSTOM FONT EXAMPLE
// BITMAP EXAMPLE ----------------------------------------------------------
// This section demonstrates:
// - Embedding a small bitmap in the code (flash memory).
// - Drawing that bitmap in various colors, and transparently (only '1' bits
// are drawn; '0' bits are skipped, leaving screen contents in place).
// - Use of the color565() function to decimate 24-bit RGB to 16 bits.
#define HEX_WIDTH 16 // Bitmap width in pixels
#define HEX_HEIGHT 16 // Bitmap height in pixels
// Bitmap data. PROGMEM ensures it's in flash memory (not RAM). And while
// it would be valid to leave the brackets empty here (i.e. hex_bitmap[]),
// having dimensions with a little math makes the compiler verify the
// correct number of bytes are present in the list.
PROGMEM const uint8_t hex_bitmap[(HEX_WIDTH + 7) / 8 * HEX_HEIGHT] = {
0b00000001, 0b10000000,
0b00000111, 0b11100000,
0b00011111, 0b11111000,
0b01111111, 0b11111110,
0b01111111, 0b11111110,
0b01111111, 0b11111110,
0b01111111, 0b11111110,
0b01111111, 0b11111110,
0b01111111, 0b11111110,
0b01111111, 0b11111110,
0b01111111, 0b11111110,
0b01111111, 0b11111110,
0b01111111, 0b11111110,
0b00011111, 0b11111000,
0b00000111, 0b11100000,
0b00000001, 0b10000000,
};
#define Y_SPACING (HEX_HEIGHT - 2) // Used by code below for positioning
void show_bitmap() {
display.fillScreen(0);
// Not screen center, but UL coordinates of center hexagon bitmap
const int16_t center_x = (display.width() - HEX_WIDTH) / 2;
const int16_t center_y = (display.height() - HEX_HEIGHT) / 2;
const uint8_t steps = min((display.height() - HEX_HEIGHT) / Y_SPACING,
display.width() / HEX_WIDTH - 1) / 2;
display.drawBitmap(center_x, center_y, hex_bitmap, HEX_WIDTH, HEX_HEIGHT,
0xFFFF); // Draw center hexagon in white
// Tile the hexagon bitmap repeatedly in a range of hues. Don't mind the
// bit of repetition in the math, the optimizer easily picks this up.
// Also, if math looks odd, keep in mind "PEMDAS" operator precedence;
// multiplication and division occur before addition and subtraction.
for (uint8_t a=0; a<=steps; a++) {
for (uint8_t b=1; b<=steps; b++) {
display.drawBitmap( // Right section centered red: a = green, b = blue
center_x + (a + b) * HEX_WIDTH / 2,
center_y + (a - b) * Y_SPACING,
hex_bitmap, HEX_WIDTH, HEX_HEIGHT,
display.color565(255, 255 - 255 * a / steps, 255 - 255 * b / steps));
display.drawBitmap( // UL section centered green: a = blue, b = red
center_x - b * HEX_WIDTH + a * HEX_WIDTH / 2,
center_y - a * Y_SPACING,
hex_bitmap, HEX_WIDTH, HEX_HEIGHT,
display.color565(255 - 255 * b / steps, 255, 255 - 255 * a / steps));
display.drawBitmap( // LL section centered blue: a = red, b = green
center_x - a * HEX_WIDTH + b * HEX_WIDTH / 2,
center_y + b * Y_SPACING,
hex_bitmap, HEX_WIDTH, HEX_HEIGHT,
display.color565(255 - 255 * a / steps, 255 - 255 * b / steps, 255));
}
}
delay(PAUSE);
} // END BITMAP EXAMPLE
// CANVAS EXAMPLE ----------------------------------------------------------
// This section demonstrates:
// - How to refresh changing values onscreen without erase/redraw flicker.
// - Using an offscreen canvas. It's similar to a bitmap above, but rather
// than a fixed pattern in flash memory, it's drawable like the screen.
// - More tips on text alignment, and adapting to different screen sizes.
#define PADDING 6 // Pixels between axis label and value
void show_canvas() {
// For this example, let's suppose we want to display live readings from a
// sensor such as a three-axis accelerometer, something like:
// X: (number)
// Y: (number)
// Z: (number)
// To look extra classy, we want a custom font, and the labels for each
// axis are right-aligned so the ':' characters line up...
display.setFont(&FreeSansBold18pt7b); // Use a custom font
display.setTextSize(1); // and reset to 1:1 scale
char *label[] = { "X:", "Y:", "Z:" }; // Labels for each axis
const uint16_t color[] = { 0xF800, 0x07E0, 0x001F }; // Colors for each value
// To get the labels right-aligned, one option would be simple trial and
// error to find a column that looks good and doesn't clip anything off.
// Let's do this dynamically though, so it adapts to any font or labels!
// Start by finding the widest of the label strings:
uint16_t w, h, max_w = 0;
int16_t x, y;
for (uint8_t i=0; i<3; i++) { // For each label...
display.getTextBounds(label[i], 0, 0, &x, &y, &w, &h);
if (w > max_w) max_w = w; // Keep track of widest label
}
// Rounded corners throwing us a curve again. If needed, scoot everything
// to the right a bit on wide displays, down a bit on tall ones.
int16_t y_offset = 0;
if (display.width() > display.height()) max_w += CORNER_RADIUS;
else y_offset = CORNER_RADIUS;
// Now we have max_w for right-aligning the labels. Before we draw them
// though...in order to perform flicker-free updates, the numbers we show
// will be rendered in either a GFXcanvas1 or GFXcanvas16 object; a 1-bit
// or 16-bit offscreen bitmap, RAM permitting. The correct size for this
// canvas could also be trial-and-errored, but again let's make this adapt
// automatically. The width of the canvas will span from max_w (plus a few
// pixels for padding) to the right edge. But the height? Looking at an
// uppercase 'M' can work in many situations, but some fonts have ascenders
// and descenders on digits, and in some locales a comma (extending below
// the baseline) is the decimal separator. Feed ALL the numeric chars into
// getTextBounds() for a cumulative height:
display.setTextWrap(false); // Keep on one line
display.getTextBounds(F("0123456789.,-"), 0, 0, &x, &y, &w, &h);
// Now declare a GFXcanvas16 object based on the computed width & height:
GFXcanvas16 canvas16(display.width() - max_w - PADDING, h);
// Small devices (e.g. ATmega328p) will almost certainly lack enough RAM
// for the canvas. Check if canvas buffer exists. If not, fall back on
// using a 1-bit (rather than 16-bit) canvas. Much more RAM friendly, but
// not as fast to draw. If a project doesn't require super interactive
// updates, consider just going straight for the more compact Canvas1.
if (canvas16.getBuffer()) {
// If here, 16-bit canvas allocated successfully! Point of interest,
// only one canvas is needed for this example, we can reuse it for all
// three numbers because the regions are the same size.
// display and canvas are independent drawable objects; must explicitly
// set the same custom font to use on the canvas now:
canvas16.setFont(&FreeSansBold18pt7b);
// Clear display and print labels. Once drawn, these remain untouched.
display.fillScreen(0);
display.setCursor(max_w, -y + y_offset); // Set baseline for first row
for (uint8_t i=0; i<3; i++) print_aligned(display, label[i], GFX_ALIGN_RIGHT);
// Last part now is to print numbers on the canvas and copy the canvas to
// the display, repeating for several seconds...
uint32_t elapsed, startTime = millis();
while ((elapsed = (millis() - startTime)) <= PAUSE * 2) {
for (uint8_t i=0; i<3; i++) { // For each label...
canvas16.fillScreen(0); // fillScreen() in this case clears canvas
canvas16.setCursor(0, -y); // Reset baseline for custom font
canvas16.setTextColor(color[i]);
// These aren't real accelerometer readings, just cool-looking numbers.
// Notice we print to the canvas, NOT the display:
canvas16.print(sin(elapsed / 200.0 + (float)i * M_PI * 2.0 / 3.0), 5);
// And HERE is the secret sauce to flicker-free updates. Canvas details
// can be passed to the drawRGBBitmap() function, which fully overwrites
// prior screen contents in that area. yAdvance is font line spacing.
display.drawRGBBitmap(max_w + PADDING, i * FreeSansBold18pt7b.yAdvance +
y_offset, canvas16.getBuffer(), canvas16.width(),
canvas16.height());
}
}
} else {
// Insufficient RAM for Canvas16. Try declaring a 1-bit canvas instead...
GFXcanvas1 canvas1(display.width() - max_w - PADDING, h);
// If even this smaller object fails, can't proceed, cancel this example.
if (!canvas1.getBuffer()) return;
// Remainder here is nearly identical to the code above, simply using a
// different canvas type. It's stripped of most comments for brevity.
canvas1.setFont(&FreeSansBold18pt7b);
display.fillScreen(0);
display.setCursor(max_w, -y + y_offset);
for (uint8_t i=0; i<3; i++) print_aligned(display, label[i], GFX_ALIGN_RIGHT);
uint32_t elapsed, startTime = millis();
while ((elapsed = (millis() - startTime)) <= PAUSE * 2) {
for (uint8_t i=0; i<3; i++) {
canvas1.fillScreen(0);
canvas1.setCursor(0, -y);
canvas1.print(sin(elapsed / 200.0 + (float)i * M_PI * 2.0 / 3.0), 5);
// Here's the secret sauce to flicker-free updates with GFXcanvas1.
// Canvas details can be passed to the drawBitmap() function, and by
// specifying both a foreground AND BACKGROUND color (0), this will fully
// overwrite/erase prior screen contents in that area (vs transparent).
display.drawBitmap(max_w + PADDING, i * FreeSansBold18pt7b.yAdvance +
y_offset, canvas1.getBuffer(), canvas1.width(),
canvas1.height(), color[i], 0);
}
}
}
// Because canvas object was declared locally to this function, it's freed
// automatically when the function returns; no explicit delete needed.
} // END CANVAS EXAMPLE

View file

@ -27,11 +27,19 @@ bool show_new_year = true;
#define SHAKE_PERIOD 2000 // Period (in ms) when SHAKE_EVENTS must happen
#define SAND_TIME 6000 // Time (in ms) to run simulation before restarting
#if defined(_VARIANT_MATRIXPORTAL_M4_) // MatrixPortal M4
uint8_t rgbPins[] = {7, 8, 9, 10, 11, 12};
uint8_t addrPins[] = {17, 18, 19, 20};
uint8_t addrPins[] = {17, 18, 19, 20, 21};
uint8_t clockPin = 14;
uint8_t latchPin = 15;
uint8_t oePin = 16;
#else // MatrixPortal ESP32-S3
uint8_t rgbPins[] = {42, 41, 40, 38, 39, 37};
uint8_t addrPins[] = {35, 36, 48, 45, 21};
uint8_t clockPin = 2;
uint8_t latchPin = 47;
uint8_t oePin = 14;
#endif
// 64x32 pixel matrix, 6-bit depth
Adafruit_Protomatter matrix(

Binary file not shown.

310
4x4_MIDI_Messenger/code.py Normal file
View file

@ -0,0 +1,310 @@
# SPDX-FileCopyrightText: 2023 Liz Clark for Adafruit Industries
# SPDX-License-Identifier: MIT
import time
import asyncio
import board
import digitalio
from rainbowio import colorwheel
import keypad
import displayio
import i2cdisplaybus
import busio
import adafruit_seesaw.seesaw
import adafruit_seesaw.neopixel
import adafruit_seesaw.rotaryio
import adafruit_seesaw.digitalio
from adafruit_bitmap_font import bitmap_font
from adafruit_display_text import label
import adafruit_displayio_ssd1306
import adafruit_midi
from adafruit_midi.control_change import ControlChange
import neopixel
# default MIDI channel (1-16)
midi_in_channel = 2
midi_out_channel = 2
# MIDI CC messages, values and names assigned to each encoder
cc_values = [
{'cc_val': (0, 127), 'cc_message': (14), 'cc_name': "Volume"},
{'cc_val': (0, 127), 'cc_message': (15), 'cc_name': "Repeats"},
{'cc_val': (0, 127), 'cc_message': (16), 'cc_name': "Size"},
{'cc_val': (0, 127), 'cc_message': (17), 'cc_name': "Mod"},
{'cc_val': (0, 127), 'cc_message': (18), 'cc_name': "Spread"},
{'cc_val': (0, 127), 'cc_message': (19), 'cc_name': "Scan"},
{'cc_val': (0, 127), 'cc_message': (20), 'cc_name': "Ramp"},
{'cc_val': (1, 3), 'cc_message': (21), 'cc_name': "Mod Number"},
{'cc_val': (1, 3), 'cc_message': (22), 'cc_name': "Mod Bank"},
{'cc_val': (1, 3), 'cc_message': (23), 'cc_name': "Mode"},
{'cc_val': (0, 1), 'cc_message': (102), 'cc_name': "Bypass/Engage"},
{'cc_val': (0, 127), 'cc_message': (93), 'cc_name': "Tap Tempo"},
{'cc_val': (0, 1), 'cc_message': (24), 'cc_name': "Loop (R Hold)"},
{'cc_val': (0, 1), 'cc_message': (25), 'cc_name': "Scan (L Hold)"},
{'cc_val': (0, 127), 'cc_message': (26), 'cc_name': "Clear (Both Hold)"},
{'cc_val': (0, 1), 'cc_message': (51), 'cc_name': "MIDI Clock Ignore"}
]
displayio.release_displays()
oled_reset = board.D13
i2c = board.STEMMA_I2C()
# STEMMA OLED setup
display_bus = i2cdisplaybus.I2CDisplayBus(i2c, device_address=0x3D, reset=oled_reset)
display = adafruit_displayio_ssd1306.SSD1306(display_bus, width=128, height=64)
splash = displayio.Group()
display.root_group = splash
font = bitmap_font.load_font('/OCRA_small.pcf')
# main label/MIDI message name text; centered
main_area = label.Label(
font, text="4x4 MIDI Messenger", color=0xFFFFFF)
main_area.anchor_point = (0.5, 0.0)
main_area.anchored_position = (display.width / 2, 0)
# MIDI message number text
msg_area = label.Label(
font, text="CC Msg: 10", color=0xFFFFFF)
msg_area.anchor_point = (0.0, 0.5)
msg_area.anchored_position = (0, display.height / 2)
# MIDI message value text
val_area = label.Label(
font, text="CC Val: 50", color=0xFFFFFF)
val_area.anchor_point = (0.0, 1.0)
val_area.anchored_position = (0, display.height)
# MIDI message status text
status_area = label.Label(
font, text="Sent!", color=0xFFFFFF)
status_area.anchor_point = (1.0, 1.0)
status_area.anchored_position = (display.width, display.height)
splash.append(main_area)
splash.append(msg_area)
splash.append(val_area)
splash.append(status_area)
# MIDI over UART setup for MIDI FeatherWing
uart = busio.UART(board.TX, board.RX, baudrate=31250, timeout=0.001)
midi = adafruit_midi.MIDI(
midi_in=uart,
midi_out=uart,
in_channel=(midi_in_channel - 1),
out_channel=(midi_out_channel - 1),
debug=False,
)
# quad rotary encoder setup
ss0 = adafruit_seesaw.seesaw.Seesaw(i2c, 0x49)
ss1 = adafruit_seesaw.seesaw.Seesaw(i2c, 0x4A)
ss2 = adafruit_seesaw.seesaw.Seesaw(i2c, 0x4B)
ss3 = adafruit_seesaw.seesaw.Seesaw(i2c, 0x4C)
# button pins for the encoders
pins = [12, 14, 17, 9]
# interrupts for the button pins. pins are passed as a bitmask
ss0.set_GPIO_interrupts(1 << pins[0] | 1 << pins[1] | 1 << pins[2] | 1 << pins[3], True)
ss1.set_GPIO_interrupts(1 << pins[0] | 1 << pins[1] | 1 << pins[2] | 1 << pins[3], True)
ss2.set_GPIO_interrupts(1 << pins[0] | 1 << pins[1] | 1 << pins[2] | 1 << pins[3], True)
ss3.set_GPIO_interrupts(1 << pins[0] | 1 << pins[1] | 1 << pins[2] | 1 << pins[3], True)
# arrays for the encoders and switches
enc0 = []
enc1 = []
enc2 = []
enc3 = []
sw0 = []
sw1 = []
sw2 = []
sw3 = []
# creating encoders and switches, enabling interrupts for encoders
for i in range(4):
enc0.append(adafruit_seesaw.rotaryio.IncrementalEncoder(ss0, i))
enc1.append(adafruit_seesaw.rotaryio.IncrementalEncoder(ss1, i))
enc2.append(adafruit_seesaw.rotaryio.IncrementalEncoder(ss2, i))
enc3.append(adafruit_seesaw.rotaryio.IncrementalEncoder(ss3, i))
sw0.append(adafruit_seesaw.digitalio.DigitalIO(ss0, pins[i]))
sw0[i].switch_to_input(digitalio.Pull.UP)
sw1.append(adafruit_seesaw.digitalio.DigitalIO(ss1, pins[i]))
sw1[i].switch_to_input(digitalio.Pull.UP)
sw2.append(adafruit_seesaw.digitalio.DigitalIO(ss2, pins[i]))
sw2[i].switch_to_input(digitalio.Pull.UP)
sw3.append(adafruit_seesaw.digitalio.DigitalIO(ss3, pins[i]))
sw3[i].switch_to_input(digitalio.Pull.UP)
ss0.enable_encoder_interrupt(encoder=i)
ss1.enable_encoder_interrupt(encoder=i)
ss2.enable_encoder_interrupt(encoder=i)
ss3.enable_encoder_interrupt(encoder=i)
# neopixels on each PCB
pix0 = adafruit_seesaw.neopixel.NeoPixel(ss0, 18, 4, auto_write = True)
pix0.brightness = 0.5
pix1 = adafruit_seesaw.neopixel.NeoPixel(ss1, 18, 4, auto_write = True)
pix1.brightness = 0.5
pix2 = adafruit_seesaw.neopixel.NeoPixel(ss2, 18, 4, auto_write = True)
pix2.brightness = 0.5
pix3 = adafruit_seesaw.neopixel.NeoPixel(ss3, 18, 4, auto_write = True)
pix3.brightness = 0.5
# onboard Feather neopixel
pix_feather = neopixel.NeoPixel(board.NEOPIXEL, 1, auto_write = True)
pix_feather.brightness = 0.5
# encoder position arrays
last_pos0 = [60, 60, 60, 60]
last_pos1 = [60, 60, 60, 0]
last_pos2 = [0, 0, 0, 120]
last_pos3 = [0, 0, 0, 0]
pos0 = [60, 60, 60, 60]
pos1 = [60, 60, 60, 0]
pos2 = [0, 0, 0, 120]
pos3 = [0, 0, 0, 0]
# color arrays for the neopixels
c0 = [0, 16, 32, 48]
c1 = [64, 80, 96, 112]
c2 = [128, 144, 160, 176]
c3 = [192, 208, 224, 240]
# setting starting colors for neopixels
for r in range(4):
pix0[r] = colorwheel(c0[r])
pix1[r] = colorwheel(c1[r])
pix2[r] = colorwheel(c2[r])
pix3[r] = colorwheel(c3[r])
# feather neopixel color
c_feather = 0
pix_feather[0] = colorwheel(c_feather)
# array of all 16 encoder positions
encoder_posititions = [60, 60, 60, 60, 60, 60, 60, 60, 0, 0, 0, 120, 0, 0, 0, 0]
class MIDI_Messages:
# tracks sending a message and index 0-15
def __init__(self):
self.send_msg = False
self.midi_index = 0
class NeoPixel_Attributes:
# tracks color, neopixel index and seesaw
def __init__(self):
self.color = c0
self.index = 0
self.strip = pix0
self.feather_color = c_feather
async def send_midi(midi_msg):
# sends MIDI message if send_msg is True/button pressed
while True:
if midi_msg.send_msg is True:
m = midi_msg.midi_index
main_area.text = f"{cc_values[m]['cc_name']}"
msg_area.text = f"CC Msg: {cc_values[m]['cc_message']}"
val_area.text = f"CC Val: {encoder_posititions[m]}"
midi.send(ControlChange(cc_values[m]['cc_message'], encoder_posititions[m]))
status_area.text = "Sent!"
print(f"sending midi: {m}, {encoder_posititions[m]}, {cc_values[m]['cc_message']}")
time.sleep(1)
midi_msg.send_msg = False
else:
status_area.text = " "
await asyncio.sleep(0)
async def rainbows(the_color):
# Updates colors of the neopixels to scroll through rainbow
while True:
the_color.feather_color += 8
the_color.strip[the_color.index] = colorwheel(the_color.color[the_color.index])
pix_feather[0] = colorwheel(the_color.feather_color)
await asyncio.sleep(0)
async def monitor_interrupts(pin0, pin1, pin2, pin3, the_color, midi_msg): #pylint: disable=too-many-statements
# function to keep encoder value pinned between CC value range
def normalize(val, min_v, max_v):
return max(min(max_v, val), min_v)
# read encoder function
def read_encoder(enc_group, pos, last_pos, pix, colors, index_diff):
# check all four encoders if interrupt is detected
for p in range(4):
pos[p] = enc_group[p].position
if pos[p] != last_pos[p]:
main_index = p + index_diff
# update CC value
if pos[p] > last_pos[p]:
colors[p] += 8
encoder_posititions[main_index] = encoder_posititions[main_index] + 1
else:
colors[p] -= 8
encoder_posititions[main_index] = encoder_posititions[main_index] - 1
encoder_posititions[main_index] = normalize(encoder_posititions[main_index],
cc_values[main_index]['cc_val'][0],
cc_values[main_index]['cc_val'][1])
colors[p] = (colors[p] + 256) % 256 # wrap around to 0-256
print(main_index, encoder_posititions[main_index])
main_area.text = f"{cc_values[main_index]['cc_name']}"
msg_area.text = f"CC Msg: {cc_values[main_index]['cc_message']}"
val_area.text = f"CC Val: {encoder_posititions[main_index]}"
last_pos[p] = pos[p]
# update NeoPixel colors
the_color.color = colors
the_color.index = p
the_color.strip = pix
# function to read button press
def press_switches(sw, index):
if not sw[index].value:
# signals that a MIDI message should be sent
midi_msg.send_msg = True
midi_msg.midi_index = index
print(f"button {index} pressed")
# interrupt pins are passed as a keypad
with keypad.Keys(
(pin0, pin1, pin2, pin3,), value_when_pressed=False, pull=True
) as keys:
while True:
key_event = keys.events.get()
if key_event and key_event.pressed:
key_number = key_event.key_number
# seesaw 0
if key_number == 0:
read_encoder(enc0, pos0, last_pos0, pix0, c0, 0)
press_switches(sw0, 0)
press_switches(sw0, 1)
press_switches(sw0, 2)
press_switches(sw0, 3)
# seesaw 1
elif key_number == 1:
read_encoder(enc1, pos1, last_pos1, pix1, c1, 4)
press_switches(sw1, 0)
press_switches(sw1, 1)
press_switches(sw1, 2)
press_switches(sw1, 3)
# update index to 4-7
midi_msg.midi_index = midi_msg.midi_index + 4
# seesaw 2
elif key_number == 2:
read_encoder(enc2, pos2, last_pos2, pix2, c2, 8)
press_switches(sw2, 0)
press_switches(sw2, 1)
press_switches(sw2, 2)
press_switches(sw2, 3)
# update index 8-11
midi_msg.midi_index = midi_msg.midi_index + 8
# seesaw 3
else:
read_encoder(enc3, pos3, last_pos3, pix3, c3, 12)
press_switches(sw3, 0)
press_switches(sw3, 1)
press_switches(sw3, 2)
press_switches(sw3, 3)
# update index 12-15
midi_msg.midi_index = midi_msg.midi_index + 12
# clear interrupt flag to reset interrupt pin
ss0.get_GPIO_interrupt_flag()
ss1.get_GPIO_interrupt_flag()
ss2.get_GPIO_interrupt_flag()
ss3.get_GPIO_interrupt_flag()
await asyncio.sleep(0)
async def main():
the_color = NeoPixel_Attributes()
midi_msg = MIDI_Messages()
# interrupt listener task
interrupt_task = asyncio.create_task(monitor_interrupts(board.D5, board.D6, board.D9,
board.D10, the_color, midi_msg))
# neopixel task
pixels_task = asyncio.create_task(rainbows(the_color))
# midi task
midi_task = asyncio.create_task(send_midi(midi_msg))
await asyncio.gather(interrupt_task, pixels_task, midi_task)
asyncio.run(main())

View file

@ -0,0 +1,47 @@
// SPDX-FileCopyrightText: 2025 Liz Clark for Adafruit Industries
//
// SPDX-License-Identifier: MIT
#include <Adafruit_MCP23X17.h>
#define NOID_1 0 // MCP23XXX pin LED is attached to
#define NOID_2 4 // MCP23XXX pin LED is attached to
Adafruit_MCP23X17 mcp;
void setup() {
Serial.begin(115200);
while (!Serial);
Serial.println("8 Channel Solenoid Driver Demo");
if (!mcp.begin_I2C()) {
Serial.println("Couldn't find MCP23017..");
while (1);
}
mcp.pinMode(NOID_1, OUTPUT);
mcp.pinMode(NOID_2, OUTPUT);
Serial.println("Found MCP23017, looping...");
}
void loop() {
Serial.println("Solenoid 1!");
mcp.digitalWrite(NOID_1, HIGH);
delay(500);
mcp.digitalWrite(NOID_1, LOW);
delay(500);
Serial.println("Solenoid 2!");
mcp.digitalWrite(NOID_2, HIGH);
delay(500);
mcp.digitalWrite(NOID_2, LOW);
delay(500);
Serial.println("Together!");
mcp.digitalWrite(NOID_1, HIGH);
mcp.digitalWrite(NOID_2, HIGH);
delay(1000);
mcp.digitalWrite(NOID_1, LOW);
mcp.digitalWrite(NOID_2, LOW);
delay(2000);
Serial.println("Repeat!");
Serial.println();
delay(500);
}

View file

@ -0,0 +1,38 @@
# SPDX-FileCopyrightText: 2025 Liz Clark for Adafruit Industries
#
# SPDX-License-Identifier: MIT
import time
import board
from adafruit_mcp230xx.mcp23017 import MCP23017
i2c = board.STEMMA_I2C()
mcp = MCP23017(i2c)
noid_1 = mcp.get_pin(0)
noid_2 = mcp.get_pin(4)
noid_1.switch_to_output(value=False)
noid_2.switch_to_output(value=False)
while True:
noid_1.value = True
print(f"Solenoid 1: {noid_1.value}, Solenoid 2: {noid_2.value}")
time.sleep(0.2)
noid_1.value = False
print(f"Solenoid 1: {noid_1.value}, Solenoid 2: {noid_2.value}")
time.sleep(0.2)
noid_2.value = True
print(f"Solenoid 1: {noid_1.value}, Solenoid 2: {noid_2.value}")
time.sleep(0.2)
noid_2.value = False
print(f"Solenoid 1: {noid_1.value}, Solenoid 2: {noid_2.value}")
time.sleep(1)
noid_1.value = True
noid_2.value = True
print(f"Solenoid 1: {noid_1.value}, Solenoid 2: {noid_2.value}")
time.sleep(1)
noid_1.value = False
noid_2.value = False
print(f"Solenoid 1: {noid_1.value}, Solenoid 2: {noid_2.value}")
time.sleep(2)

View file

@ -0,0 +1,31 @@
// SPDX-FileCopyrightText: 2024 Liz Clark for Adafruit Industries
//
// SPDX-License-Identifier: MIT
const int DIR = 5;
const int STEP = 6;
const int microMode = 16; // microstep mode, default is 1/16 so 16; ex: 1/4 would be 4
// full rotation * microstep divider
const int steps = 200 * microMode;
void setup()
{
// setup step and dir pins as outputs
pinMode(STEP, OUTPUT);
pinMode(DIR, OUTPUT);
}
void loop()
{
// change direction every loop
digitalWrite(DIR, !digitalRead(DIR));
// toggle STEP to move
for(int x = 0; x < steps; x++)
{
digitalWrite(STEP, HIGH);
delay(2);
digitalWrite(STEP, LOW);
delay(2);
}
delay(1000); // 1 second delay
}

View file

@ -0,0 +1,32 @@
# SPDX-FileCopyrightText: 2024 Liz Clark for Adafruit Industries
#
# SPDX-License-Identifier: MIT
import time
import board
from digitalio import DigitalInOut, Direction
# direction and step pins as outputs
DIR = DigitalInOut(board.D5)
DIR.direction = Direction.OUTPUT
STEP = DigitalInOut(board.D6)
STEP.direction = Direction.OUTPUT
# microstep mode, default is 1/16 so 16
# another ex: 1/4 microstep would be 4
microMode = 16
# full rotation multiplied by the microstep divider
steps = 200 * microMode
while True:
# change direction every loop
DIR.value = not DIR.value
# toggle STEP pin to move the motor
for i in range(steps):
STEP.value = True
time.sleep(0.001)
STEP.value = False
time.sleep(0.001)
print("rotated! now reverse")
# 1 second delay before starting again
time.sleep(1)

View file

@ -0,0 +1,65 @@
// SPDX-FileCopyrightText: 2024 Liz Clark for Adafruit Industries
//
// SPDX-License-Identifier: MIT
#include <Adafruit_ADG72x.h>
Adafruit_ADG72x adg72x;
bool isADG728 = false; // which chip are we connected to?
int analogIn = A0;
int analogValue = 0;
unsigned long switchTimer = 1000; // 1000 ms = 1 second for channel switch
unsigned long readTimer = 10; // 10 ms for analog read
unsigned long lastSwitchTime = 0; // Last time the channels were switched
unsigned long lastReadTime = 0; // Last time the analog was read
uint8_t currentChannel = 0; // Current channel being selected
void setup() {
Serial.begin(115200);
// Wait for serial port to open
while (!Serial) {
delay(1);
}
// Try with the ADG728 default address first...
if (adg72x.begin(ADG728_DEFAULT_ADDR, &Wire)) {
Serial.println("ADG728 found!");
isADG728 = true;
}
// Maybe they have an ADG729?
else if (adg72x.begin(ADG729_DEFAULT_ADDR, &Wire)) {
Serial.println("ADG729 found!");
isADG728 = false;
}
else {
Serial.println("No ADG device found? Check wiring!");
while (1); // Stop here if no device was found
}
}
void loop() {
unsigned long currentTime = millis();
// read and print analog value every 10ms
if ((currentTime - lastReadTime) >= readTimer) {
analogValue = analogRead(analogIn);
Serial.println(analogValue);
lastReadTime = currentTime;
}
// switch channels every 1 second
if ((currentTime - lastSwitchTime) >= switchTimer) {
uint8_t bits = 1 << currentChannel; // Shift a '1' from LSB to MSB
if (!adg72x.selectChannels(bits)) {
Serial.println("Failed to set channels...");
}
/*Serial.print((currentChannel % 4) + 1);
if (currentChannel < 4) Serial.println("A");
else Serial.println("B");*/
currentChannel = (currentChannel + 1) % 8; // Move to the next channel, wrap around at 8
lastSwitchTime = currentTime;
}
}

View file

@ -0,0 +1,66 @@
// SPDX-FileCopyrightText: 2024 Liz Clark for Adafruit Industries
//
// SPDX-License-Identifier: MIT
#include <Adafruit_ADG72x.h>
Adafruit_ADG72x adg72x;
int analogInA0 = A0;
int analogInA1 = A1;
int analogValueDA = 0;
int analogValueDB = 0;
unsigned long switchTimer = 1000; // 1000 ms = 1 second for channel switch
unsigned long readTimer = 10; // 10 ms for analog read
unsigned long lastSwitchTime = 0; // Last time the channels were switched
unsigned long lastReadTime = 0; // Last time the analog was read
uint8_t currentChannel = 0; // Current channel being selected
void setup() {
Serial.begin(115200);
// Wait for serial port to open
while (!Serial) {
delay(1);
}
// Try with the ADG728 default address first...
if (adg72x.begin(ADG728_DEFAULT_ADDR, &Wire)) {
//Serial.println("ADG728 found!");
}
// Maybe they have an ADG729?
else if (adg72x.begin(ADG729_DEFAULT_ADDR, &Wire)) {
//Serial.println("ADG729 found!");
}
else {
Serial.println("No ADG72x device found? Check wiring!");
while (1); // Stop here if no device was found
}
}
void loop() {
unsigned long currentTime = millis();
// read and print analog value every 10ms
if ((currentTime - lastReadTime) >= readTimer) {
analogValueDA = analogRead(analogInA0);
analogValueDB = analogRead(analogInA1);
Serial.print(analogValueDA);
Serial.print(",");
Serial.println(analogValueDB);
lastReadTime = currentTime;
}
// switch channels every 1 second
if ((currentTime - lastSwitchTime) >= switchTimer) {
uint8_t bits = 1 << currentChannel; // Shift a '1' from LSB to MSB
if (!adg72x.selectChannels(bits)) {
Serial.println("Failed to set channels...");
}
/*Serial.print((currentChannel % 4) + 1);
if (currentChannel < 4) Serial.println("A");
else Serial.println("B");*/
currentChannel = (currentChannel + 1) % 8; // Move to the next channel, wrap around at 8
lastSwitchTime = currentTime;
}
}

View file

@ -0,0 +1,26 @@
# SPDX-FileCopyrightText: Copyright (c) 2024 Liz Clark for Adafruit Industries
#
# SPDX-License-Identifier: MIT
import time
import board
import adafruit_adg72x
from analogio import AnalogIn
analog_in = AnalogIn(board.A0)
i2c = board.I2C()
switch = adafruit_adg72x.ADG72x(i2c)
c = 0
switch_time = 2
channels = [0, 4]
clock = time.monotonic()
while True:
if (time.monotonic() - clock) > switch_time:
print(f"Selecting channel {channels[c] + 1}")
switch.channel = channels[c]
c = (c + 1) % 2
clock = time.monotonic()
print((analog_in.value,))
time.sleep(0.1)

View file

@ -0,0 +1,31 @@
# SPDX-FileCopyrightText: Copyright (c) 2024 Liz Clark for Adafruit Industries
#
# SPDX-License-Identifier: MIT
import time
import board
import adafruit_adg72x
from analogio import AnalogIn
analog_in_DA = AnalogIn(board.A0)
analog_in_DB = AnalogIn(board.A1)
i2c = board.I2C()
switch = adafruit_adg72x.ADG72x(i2c, 0x44)
c = 0
switch_time = 3
clock = time.monotonic()
while True:
if (time.monotonic() - clock) > switch_time:
if c < 4:
channels = "A"
else:
channels = "B"
print(f"Selecting channel {(c % 4) + 1}{channels}")
switch.channel = c
c = (c + 1) % 8
clock = time.monotonic()
print((analog_in_DA.value, analog_in_DB.value,))
time.sleep(0.1)

View file

@ -11,6 +11,7 @@ import adafruit_ahtx0
# OLED
import displayio
import i2cdisplaybus
import terminalio
from adafruit_display_text import label
import adafruit_displayio_ssd1306
@ -25,12 +26,12 @@ aht20 = adafruit_ahtx0.AHTx0(i2c)
#OLED
display_bus = displayio.I2CDisplay(i2c, device_address=0x3C)
display_bus = i2cdisplaybus.I2CDisplayBus(i2c, device_address=0x3C)
display = adafruit_displayio_ssd1306.SSD1306(display_bus, width=128, height=32)
# Make the display context
splash = displayio.Group()
display.show(splash)
display.root_group = splash
text = "hello world"
text_area = label.Label(terminalio.FONT, color=0xFFFF00, x=15, y=0)

View file

@ -0,0 +1,740 @@
# SPDX-FileCopyrightText: 2023 Liz Clark for Adafruit Industries
# SPDX-License-Identifier: MIT
from random import randint
import ulab.numpy as np
import board
import audiobusio
import audiomixer
import synthio
import simpleio
from adafruit_ticks import ticks_ms, ticks_add, ticks_diff
from adafruit_ht16k33 import segments
from adafruit_ht16k33.matrix import Matrix8x8x2
from adafruit_seesaw import seesaw, rotaryio, digitalio
SAMPLE_RATE = 44100
SAMPLE_SIZE = 256
VOLUME = 5000
# waveforms, envelopes and synth setup
square = np.concatenate((np.ones(SAMPLE_SIZE//2, dtype=np.int16)*VOLUME,np.ones(SAMPLE_SIZE//2,
dtype=np.int16)*-VOLUME))
sine = np.array(np.sin(np.linspace(0, 4*np.pi, SAMPLE_SIZE, endpoint=False)) * VOLUME,
dtype=np.int16)
saw = np.linspace(VOLUME, -VOLUME, num=SAMPLE_SIZE, dtype=np.int16)
noise = np.array([randint(-VOLUME, VOLUME) for i in range(SAMPLE_SIZE)], dtype=np.int16)
lfo = synthio.LFO(rate = .5, waveform = sine)
amp_env0 = synthio.Envelope(attack_time=0.1, decay_time = 0.1, release_time=0.1,
attack_level=1, sustain_level=0.05)
amp_env1 = synthio.Envelope(attack_time=0.05, decay_time = 0.1, release_time=0.1,
attack_level=1, sustain_level=0.05)
# synth plays the notes
synth = synthio.Synthesizer(sample_rate=SAMPLE_RATE)
# these are the notes
synth0 = synthio.Note(frequency = 0.0, envelope=amp_env0, waveform=square, ring_frequency = 0,
ring_bend = lfo, ring_waveform = sine)
synth1 = synthio.Note(frequency = 0.0, envelope=amp_env1, waveform=sine, ring_frequency = 0,
ring_bend = lfo, ring_waveform = sine)
synth2 = synthio.Note(frequency = 0.0, envelope=amp_env0, waveform=square, ring_frequency = 0,
ring_bend = lfo, ring_waveform = sine)
synth3 = synthio.Note(frequency = 0.0, envelope=amp_env1, waveform=sine, ring_frequency = 0,
ring_bend = lfo, ring_waveform = sine)
synths = [synth0, synth1, synth2, synth3]
wave_names = ["SQUR", "SINE", "SAW ", "NOIZ"]
waveforms = [square, sine, saw, noise]
synth0_wave = 0
synth1_wave = 1
synth2_wave = 0
synth3_wave = 1
# i2s amp setup
audio = audiobusio.I2SOut(bit_clock=board.D10, word_select=board.D11, data=board.D9)
mixer = audiomixer.Mixer(voice_count=4, sample_rate=SAMPLE_RATE, channel_count=1,
bits_per_sample=16, samples_signed=True, buffer_size=2048 )
audio.play(mixer)
vol_val = 2
mixer.voice[0].play(synth)
mixer.voice[0].level = 0.3
# these are the triads, all major
c_tones = [130.81, 164.81, 196.00]
g_tones = [196.00, 246.94, 293.66]
d_tones = [146.83, 185.00, 220.00]
a_tones = [220.00, 277.18, 329.63]
e_tones = [164.81, 207.65, 246.94]
b_tones = [246.94, 311.13, 369.99]
fsharp_tones = [185.00, 233.08, 277.18]
csharp_tones = [138.59, 174.61, 207.65]
aflat_tones = [207.65, 261.63, 311.13]
eflat_tones = [155.56, 196.00, 233.08]
bflat_tones = [233.08, 293.66, 349.23]
f_tones = [174.61, 220.00, 261.63]
# names for the alphanumeric displays
chord_names = ["Cmaj", "Gmaj", "Dmaj", "Amaj", "Emaj", "Bmaj",
"F#ma", "C#ma", "Abma", "Ebma", "Bbma", "Fmaj"]
chords = [c_tones, g_tones, d_tones, a_tones, e_tones, b_tones, fsharp_tones, csharp_tones,
aflat_tones, eflat_tones, bflat_tones, f_tones]
# i2c setup
i2c = board.I2C()
# the encoders
seesaw0 = seesaw.Seesaw(i2c, addr=0x49)
seesaw1 = seesaw.Seesaw(i2c, addr=0x4A)
seesaw2 = seesaw.Seesaw(i2c, addr=0x4B)
seesaw3 = seesaw.Seesaw(i2c, addr=0x4C)
menu_seesaw = seesaw.Seesaw(i2c, addr=0x4D)
# the alphanumeric displays
display0 = segments.Seg14x4(i2c, address=0x70)
display1 = segments.Seg14x4(i2c, address=0x71)
display2 = segments.Seg14x4(i2c, address=0x72)
display3 = segments.Seg14x4(i2c, address=0x73)
menu_display = segments.Seg14x4(i2c, address=0x74)
# the matrix
matrix0 = Matrix8x8x2(i2c, address=0x75)
seesaws = [seesaw0, seesaw1, seesaw2, seesaw3, menu_seesaw]
buttons0 = []
buttons1 = []
buttons2 = []
buttons3 = []
menu_buttons = []
button0_states = []
button1_states = []
button2_states = []
button3_states = []
menu_states = []
button0_names = ["Select", "Up", "Left", "Down", "Right"]
# setup the buttons on all of the encoders
for i in range(1, 6):
seesaw0.pin_mode(i, seesaw0.INPUT_PULLUP)
seesaw1.pin_mode(i, seesaw1.INPUT_PULLUP)
seesaw2.pin_mode(i, seesaw2.INPUT_PULLUP)
seesaw3.pin_mode(i, seesaw3.INPUT_PULLUP)
menu_seesaw.pin_mode(i, menu_seesaw.INPUT_PULLUP)
buttons0.append(digitalio.DigitalIO(seesaw0, i))
buttons1.append(digitalio.DigitalIO(seesaw1, i))
buttons2.append(digitalio.DigitalIO(seesaw2, i))
buttons3.append(digitalio.DigitalIO(seesaw3, i))
menu_buttons.append(digitalio.DigitalIO(menu_seesaw, i))
button0_states.append(False)
button1_states.append(False)
button2_states.append(False)
button3_states.append(False)
menu_states.append(False)
# make all of the encoders
encoder0 = rotaryio.IncrementalEncoder(seesaw0)
last_position0 = 0
encoder1 = rotaryio.IncrementalEncoder(seesaw1)
last_position1 = 0
encoder2 = rotaryio.IncrementalEncoder(seesaw2)
last_position2 = 0
encoder3 = rotaryio.IncrementalEncoder(seesaw3)
last_position3 = 0
menu_enc = rotaryio.IncrementalEncoder(menu_seesaw)
last_menuPosition = 0
# Python Implementation of Björklund's Algorithm by Brian House
# MIT License 2011
# https://github.com/brianhouse/bjorklund
def bjorklund(steps, pulses):
steps = int(steps)
pulses = int(pulses)
if pulses > steps:
raise ValueError
pattern = []
counts = []
remainders = []
divisor = steps - pulses
remainders.append(pulses)
level = 0
while True:
counts.append(divisor // remainders[level])
remainders.append(divisor % remainders[level])
divisor = remainders[level]
level = level + 1
if remainders[level] <= 1:
break
counts.append(divisor)
def build(level):
if level == -1:
pattern.append(0)
elif level == -2:
pattern.append(1)
else:
for _ in range(0, counts[level]):
build(level - 1)
if remainders[level] != 0:
build(level - 2)
build(level)
p = pattern.index(1)
pattern = pattern[p:] + pattern[0:p]
return pattern
# using ticks for time tracking
clock = ticks_ms()
# default BPM
bpm = 120
# beat divison
beat_div = [15, 30, 60, 120, 240]
beat_index = 2
beat_names = ["1/16", "1/8 ", "1/4 ", "1/2 ", "HOLE"]
delay = int((beat_div[beat_index] / bpm) * 1000)
# variables for euclidean
c0 = 0
c1 = 0
c2 = 0
c3 = 0
r0 = 0
r1 = 0
r2 = 0
r3 = 0
last_r0 = 0
last_r1 = 0
last_r2 = 0
last_r3 = 0
euclid0_steps = 8
euclid0_pulses = 4
euclid1_steps = 8
euclid1_pulses = 4
euclid2_steps = 8
euclid2_pulses = 4
euclid3_steps = 8
euclid3_pulses = 4
rhythm0 = bjorklund(euclid0_steps, euclid0_pulses)
rhythm1 = bjorklund(euclid1_steps, euclid1_pulses)
rhythm2 = bjorklund(euclid2_steps, euclid2_pulses)
rhythm3 = bjorklund(euclid3_steps, euclid3_pulses)
# read buttons to update Euclidean rhythms
# pylint: disable=too-many-branches
def read_buttons(button_array, button_states, euc, e_step, e_pulse, the_step):
for b in range(5):
if not button_array[b].value and button_states[b] is False:
button_states[b] = True
if button0_names[b] == "Select":
e_step = 8
e_pulse = 4
if the_step >= e_step:
the_step = 0
elif button0_names[b] == "Up":
if e_step > 16:
e_step = 16
else:
e_step += 1
elif button0_names[b] == "Down":
if e_step < 1:
e_step = 1
else:
e_step -= 1
if the_step >= e_step:
the_step = 0
elif button0_names[b] == "Left":
e_pulse -= 1
e_pulse = max(e_pulse, 1)
else:
e_pulse += 1
e_pulse = min(e_pulse, e_step)
euc = bjorklund(e_step, e_pulse)
if button_array[b].value and button_states[b] is True:
button_states[b] = False
if button0_names[b] in ("Select", "Up", "Down"):
matrix0.fill(matrix0.LED_OFF)
draw_steps(euclid0_steps, 0)
draw_steps(euclid1_steps, 2)
draw_steps(euclid2_steps, 4)
draw_steps(euclid3_steps, 6)
return euc, e_step, e_pulse, the_step
# play euclidean rhythms and update matrix
def play_euclidean(this_synth, n, the_rhythm, rhythm_count, last_count, c, matrix_slot):
if last_count <= 7:
matrix0[matrix_slot, last_count] = matrix0.LED_GREEN
else:
c -= 1
matrix0[matrix_slot + 1, (last_count - last_count) + c] = matrix0.LED_GREEN
c += 1
if the_rhythm[rhythm_count] == 1:
this_synth.frequency = n[randint(0, 2)]
synth.press(this_synth)
if rhythm_count <= 7:
matrix0[matrix_slot, rhythm_count] = matrix0.LED_RED
else:
matrix0[matrix_slot + 1, (rhythm_count - rhythm_count) + c] = matrix0.LED_RED
c += 1
else:
synth.release(this_synth)
if rhythm_count > 7:
c += 1
last_count = rhythm_count
rhythm_count += 1
if rhythm_count >= len(the_rhythm):
rhythm_count = 0
if rhythm_count == 1:
c = 0
return rhythm_count, last_count, c
# initial matrix draw
def draw_steps(euc_steps, col):
dif = 0
for m in range(euc_steps):
if m <= 7:
matrix0[col, m] = matrix0.LED_GREEN
else:
matrix0[col + 1, (m - m) + dif] = matrix0.LED_GREEN
dif += 1
draw_steps(euclid0_steps, 0)
draw_steps(euclid1_steps, 2)
draw_steps(euclid2_steps, 4)
draw_steps(euclid3_steps, 6)
# clocks for playing euclidean and reading menu encoder
enc_clock = ticks_ms()
menu_clock = ticks_ms()
# the modes menu
modes = ["PLAY", "EUC ", "BPM ", "BEAT", "ADSR", "WAVE", "RING", "LFO ", "VOL "]
mode_index = 0
mode = modes[mode_index]
menu_display.print(f" {mode}")
# default chords
chord0_sel = 0
chord1_sel = 1
chord2_sel = 0
chord3_sel = 1
display0.print(chord_names[chord0_sel])
display1.print(chord_names[chord1_sel])
display2.print(chord_names[chord2_sel])
display3.print(chord_names[chord3_sel])
# arrays of individual buttons
select_buttons = [buttons0[0], buttons1[0], buttons2[0], buttons3[0]]
left_buttons = [buttons0[2], buttons1[2], buttons2[2], buttons3[2]]
right_buttons = [buttons0[4], buttons1[4], buttons2[4], buttons3[4]]
select_states = [button0_states[0], button1_states[0], button2_states[0], button3_states[0]]
left_states = [button0_states[2], button1_states[2], button2_states[2], button3_states[2]]
right_states = [button0_states[4], button1_states[4], button2_states[4], button3_states[4]]
select_index = 0
left_index = 0
right_index = 0
# adsr mode
adsr_names = ["A", "D", "S", "R"]
synth_adsr_indexes = [0, 0, 0, 0]
adsr_properties = [0, 1, 4, 2]
adsr0_values = [amp_env0.attack_time, amp_env0.decay_time,
amp_env0.sustain_level, amp_env0.release_time]
adsr1_values = [amp_env1.attack_time, amp_env1.decay_time,
amp_env1.sustain_level, amp_env1.release_time]
adsr2_values = [amp_env0.attack_time, amp_env0.decay_time,
amp_env0.sustain_level, amp_env0.release_time]
adsr3_values = [amp_env1.attack_time, amp_env1.decay_time,
amp_env1.sustain_level, amp_env1.release_time]
all_adsr_values = [adsr0_values, adsr1_values, adsr2_values, adsr3_values]
adsr0_val = int(simpleio.map_range(amp_env0.attack_time, 0.0, 1.0, 0, 19))
adsr1_val = int(simpleio.map_range(amp_env0.decay_time, 0.0, 1.0, 0, 19))
adsr2_val = int(simpleio.map_range(amp_env0.sustain_level, 0.0, 1.0, 0, 19))
adsr3_val = int(simpleio.map_range(amp_env0.release_time, 0.0, 1.0, 0, 19))
clock_stretch = False
ring0_val = 0
ring1_val = 0
ring2_val = 0
ring3_val = 0
lfo_val = 0
# used to play/pause
play_states = [True, True, True, True]
while True:
# rotary encoder reading
if ticks_diff(ticks_ms(), enc_clock) >= 100:
position0 = encoder0.position
position1 = encoder1.position
position2 = encoder2.position
position3 = encoder3.position
menuPosition = menu_enc.position
# menu changes mode
if menuPosition != last_menuPosition:
if menuPosition > last_menuPosition:
mode_index = (mode_index + 1) % len(modes)
else:
mode_index = (mode_index - 1) % len(modes)
if mode in ("EUC ", "ADSR"):
clock_stretch = True
if mode in ("PLAY", "BPM ", "BEAT", "WAVE") and clock_stretch:
clock = ticks_ms()
clock_stretch = False
mode = modes[mode_index]
menu_display.print(f" {mode}")
last_menuPosition = menuPosition
# encoder functionality depends on mode
# encoder 0 has most functionality
if position0 != last_position0:
if position0 > last_position0:
if mode == "PLAY":
chord0_sel = (chord0_sel + 1) % len(chords)
display0.print(chord_names[chord0_sel])
elif mode == "BEAT":
beat_index = (beat_index + 1) % 5
delay = int((beat_div[beat_index] / bpm) * 1000)
display0.print(f" {beat_names[beat_index]}")
elif mode == "BPM ":
bpm += 1
delay = int((beat_div[beat_index] / bpm) * 1000)
display0.print(f" {bpm}")
elif mode == "ADSR":
adsr0_val = (adsr0_val + 1) % 20
mapped_val = simpleio.map_range(adsr0_val, 0, 19, 0.0, 1.0)
all_adsr_values[0][synth_adsr_indexes[0]] = mapped_val
the_env = synthio.Envelope(attack_time=all_adsr_values[0][0],
decay_time = all_adsr_values[0][1],
release_time=all_adsr_values[0][3],
attack_level=1, sustain_level=all_adsr_values[0][2])
synth0.envelope = the_env
elif mode == "WAVE":
synth0_wave = (synth0_wave + 1) % len(wave_names)
synth0.waveform = waveforms[synth0_wave]
elif mode == "RING":
ring0_val = (ring0_val + 1) % 25
mapped_val = simpleio.map_range(ring0_val, 0, 24, 0.0, 220.0)
synth0.ring_frequency = mapped_val
elif mode == "LFO ":
lfo_val = (lfo_val + 1) % 10
mapped_val = simpleio.map_range(lfo_val, 0, 9, 0.0, 5.0)
lfo.rate = mapped_val
elif mode == "VOL ":
vol_val = (vol_val + 1) % 10
mapped_val = simpleio.map_range(vol_val, 0, 9, 0.0, 1.0)
mixer.voice[0].level = mapped_val
else:
if mode == "PLAY":
chord0_sel = (chord0_sel - 1) % len(chords)
display0.print(chord_names[chord0_sel])
elif mode == "BEAT":
beat_index = (beat_index - 1) % 5
delay = int((beat_div[beat_index] / bpm) * 1000)
display0.print(f" {beat_names[beat_index]}")
elif mode == "BPM ":
bpm -= 1
display0.print(f" {bpm}")
elif mode == "ADSR":
adsr0_val = (adsr0_val - 1) % 20
mapped_val = simpleio.map_range(adsr0_val, 0, 19, 0.0, 1.0)
all_adsr_values[0][synth_adsr_indexes[0]] = mapped_val
the_env = synthio.Envelope(attack_time=all_adsr_values[0][0],
decay_time = all_adsr_values[0][1],
release_time=all_adsr_values[0][3],
attack_level=1, sustain_level=all_adsr_values[0][2])
synth0.envelope = the_env
elif mode == "WAVE":
synth0_wave = (synth0_wave - 1) % len(wave_names)
synth0.waveform = waveforms[synth0_wave]
elif mode == "RING":
ring0_val = (ring0_val - 1) % 25
mapped_val = simpleio.map_range(ring0_val, 0, 24, 0.0, 220.0)
synth0.ring_frequency = mapped_val
elif mode == "LFO ":
lfo_val = (lfo_val - 1) % 10
mapped_val = simpleio.map_range(lfo_val, 0, 9, 0.0, 5.0)
lfo.rate = mapped_val
elif mode == "VOL ":
vol_val = (vol_val - 1) % 10
mapped_val = simpleio.map_range(vol_val, 0, 9, 0.0, 1.0)
mixer.voice[0].level = mapped_val
last_position0 = position0
if position1 != last_position1:
if position1 > last_position1:
if mode == "PLAY":
chord1_sel = (chord1_sel + 1) % len(chords)
display1.print(chord_names[chord1_sel])
elif mode == "ADSR":
adsr1_val = (adsr1_val + 1) % 20
mapped_val = simpleio.map_range(adsr1_val, 0, 19, 0.0, 1.0)
all_adsr_values[1][synth_adsr_indexes[1]] = mapped_val
the_env = synthio.Envelope(attack_time=all_adsr_values[1][0],
decay_time = all_adsr_values[1][1],
release_time=all_adsr_values[1][3],
attack_level=1, sustain_level=all_adsr_values[1][2])
synth1.envelope = the_env
elif mode == "WAVE":
synth1_wave = (synth1_wave + 1) % len(wave_names)
synth1.waveform = waveforms[synth1_wave]
elif mode == "RING":
ring1_val = (ring1_val + 1) % 25
mapped_val = simpleio.map_range(ring1_val, 0, 24, 0.0, 220.0)
synth1.ring_frequency = mapped_val
else:
if mode == "PLAY":
chord1_sel = (chord1_sel - 1) % len(chords)
display1.print(chord_names[chord1_sel])
elif mode == "ADSR":
adsr1_val = (adsr1_val - 1) % 20
mapped_val = simpleio.map_range(adsr1_val, 0, 19, 0.0, 1.0)
all_adsr_values[1][synth_adsr_indexes[1]] = mapped_val
the_env = synthio.Envelope(attack_time=all_adsr_values[1][0],
decay_time = all_adsr_values[1][1],
release_time=all_adsr_values[1][3],
attack_level=1, sustain_level=all_adsr_values[1][2])
synth1.envelope = the_env
elif mode == "WAVE":
synth1_wave = (synth1_wave - 1) % len(wave_names)
synth1.waveform = waveforms[synth1_wave]
elif mode == "RING":
ring1_val = (ring1_val - 1) % 25
mapped_val = simpleio.map_range(ring1_val, 0, 24, 0.0, 220.0)
synth1.ring_frequency = mapped_val
last_position1 = position1
if position2 != last_position2:
if position2 > last_position2:
if mode == "PLAY":
chord2_sel = (chord2_sel + 1) % len(chords)
elif mode == "ADSR":
adsr2_val = (adsr2_val + 1) % 20
mapped_val = simpleio.map_range(adsr2_val, 0, 19, 0.0, 1.0)
all_adsr_values[2][synth_adsr_indexes[2]] = mapped_val
the_env = synthio.Envelope(attack_time=all_adsr_values[2][0],
decay_time = all_adsr_values[2][1],
release_time=all_adsr_values[2][3],
attack_level=1, sustain_level=all_adsr_values[2][2])
synth2.envelope = the_env
elif mode == "WAVE":
synth2_wave = (synth2_wave + 1) % len(wave_names)
synth2.waveform = waveforms[synth2_wave]
elif mode == "RING":
ring2_val = (ring2_val + 1) % 25
mapped_val = simpleio.map_range(ring2_val, 0, 24, 0.0, 220.0)
synth2.ring_frequency = mapped_val
else:
if mode == "PLAY":
chord2_sel = (chord2_sel - 1) % len(chords)
display2.print(chord_names[chord2_sel])
elif mode == "ADSR":
adsr2_val = (adsr2_val - 1) % 20
mapped_val = simpleio.map_range(adsr2_val, 0, 19, 0.0, 1.0)
all_adsr_values[2][synth_adsr_indexes[2]] = mapped_val
the_env = synthio.Envelope(attack_time=all_adsr_values[2][0],
decay_time = all_adsr_values[2][1],
release_time=all_adsr_values[2][3],
attack_level=1, sustain_level=all_adsr_values[2][2])
synth2.envelope = the_env
elif mode == "WAVE":
synth2_wave = (synth2_wave - 1) % len(wave_names)
synth2.waveform = waveforms[synth2_wave]
elif mode == "RING":
ring2_val = (ring2_val - 1) % 25
mapped_val = simpleio.map_range(ring2_val, 0, 24, 0.0, 220.0)
synth2.ring_frequency = mapped_val
last_position2 = position2
if position3 != last_position3:
if position3 > last_position3:
if mode == "PLAY":
chord3_sel = (chord3_sel + 1) % len(chords)
display3.print(chord_names[chord3_sel])
elif mode == "ADSR":
adsr3_val = (adsr3_val + 1) % 20
mapped_val = simpleio.map_range(adsr3_val, 0, 19, 0.0, 1.0)
all_adsr_values[3][synth_adsr_indexes[3]] = mapped_val
the_env = synthio.Envelope(attack_time=all_adsr_values[3][0],
decay_time = all_adsr_values[3][1],
release_time=all_adsr_values[3][3],
attack_level=1, sustain_level=all_adsr_values[3][2])
synth3.envelope = the_env
elif mode == "WAVE":
synth3_wave = (synth3_wave + 1) % len(wave_names)
synth3.waveform = waveforms[synth3_wave]
elif mode == "RING":
ring3_val = (ring3_val + 1) % 25
mapped_val = simpleio.map_range(ring3_val, 0, 24, 0.0, 220.0)
synth3.ring_frequency = mapped_val
else:
if mode == "PLAY":
chord3_sel = (chord3_sel - 1) % len(chords)
display3.print(chord_names[chord3_sel])
elif mode == "ADSR":
adsr3_val = (adsr3_val - 1) % 20
mapped_val = simpleio.map_range(adsr3_val, 0, 19, 0.0, 1.0)
all_adsr_values[3][synth_adsr_indexes[3]] = mapped_val
the_env = synthio.Envelope(attack_time=all_adsr_values[3][0],
decay_time = all_adsr_values[3][1],
release_time=all_adsr_values[3][3],
attack_level=1, sustain_level=all_adsr_values[3][2])
synth3.envelope = the_env
elif mode == "WAVE":
synth3_wave = (synth3_wave - 1) % len(wave_names)
synth3.waveform = waveforms[synth3_wave]
elif mode == "RING":
ring3_val = (ring3_val - 1) % 25
mapped_val = simpleio.map_range(ring3_val, 0, 24, 0.0, 220.0)
synth3.ring_frequency = mapped_val
last_position3 = position3
enc_clock = ticks_add(enc_clock, 100)
# synth plays based on ticks timing
if ticks_diff(ticks_ms(), clock) >= delay:
if play_states[0] is True:
r0, last_r0, c0 = play_euclidean(synth0, chords[chord0_sel],
rhythm0, r0, last_r0, c0, 0)
if play_states[1] is True:
r1, last_r1, c1 = play_euclidean(synth1, chords[chord1_sel],
rhythm1, r1, last_r1, c1, 2)
if play_states[2] is True:
r2, last_r2, c2 = play_euclidean(synth2, chords[chord2_sel],
rhythm2, r2, last_r2, c2, 4)
if play_states[3] is True:
r3, last_r3, c3 = play_euclidean(synth3, chords[chord3_sel],
rhythm3, r3, last_r3, c3, 6)
clock = ticks_add(clock, delay)
# in PLAY select button controls play/pause
if mode == "PLAY":
for i in range(4):
if not select_buttons[i].value and select_states[i] is False:
select_states[i] = True
if play_states[i] is True:
synth.release(synths[i])
play_states[i] = False
else:
play_states[i] = True
if select_buttons[i].value and select_states[i] is True:
select_states[i] = False
display0.print(chord_names[chord0_sel])
display1.print(chord_names[chord1_sel])
display2.print(chord_names[chord2_sel])
display3.print(chord_names[chord3_sel])
# EUC menu select resets cycle count
elif mode == "EUC ":
if not menu_buttons[0].value and menu_states[0] is False:
r0 = 0
r1 = 0
r2 = 0
r3 = 0
menu_states[0] = True
if menu_buttons[0].value and menu_states[0] is True:
menu_states[0] = False
rhythm0, euclid0_steps, euclid0_pulses, r0 = read_buttons(buttons0, button0_states,
rhythm0, euclid0_steps,
euclid0_pulses, r0)
rhythm1, euclid1_steps, euclid1_pulses, r1 = read_buttons(buttons1, button1_states,
rhythm1, euclid1_steps,
euclid1_pulses, r1)
rhythm2, euclid2_steps, euclid2_pulses, r2 = read_buttons(buttons2, button2_states,
rhythm2, euclid2_steps,
euclid2_pulses, r2)
rhythm3, euclid3_steps, euclid3_pulses, r3 = read_buttons(buttons3, button3_states,
rhythm3, euclid3_steps,
euclid3_pulses, r3)
display0.print(f" {euclid0_pulses}")
display1.print(f" {euclid1_pulses}")
display2.print(f" {euclid2_pulses}")
display3.print(f" {euclid3_pulses}")
# BPM is adjusted
elif mode == "BPM ":
if not select_buttons[0].value and select_states[0] is False:
bpm = 120
select_states[0] = True
if select_buttons[0].value and select_states[0] is True:
select_states[0] = False
display0.print(f" {bpm}")
display1.print(" ")
display2.print(" ")
display3.print(" ")
# beat division is changed
elif mode == "BEAT":
if not select_buttons[0].value and select_states[0] is False:
beat_names[beat_index] = 2
select_states[0] = True
if select_buttons[0].value and select_states[0] is True:
select_states[0] = False
display0.print(f" {beat_names[beat_index]}")
display1.print(" ")
display2.print(" ")
display3.print(" ")
# adsr for each voice
elif mode == "ADSR":
for i in range(4):
if not left_buttons[i].value and left_states[i] is False:
synth_adsr_indexes[i] = (synth_adsr_indexes[i] - 1) % 4
left_states[i] = True
the_synth = synths[i]
if left_buttons[i].value and left_states[i] is True:
left_states[i] = False
if not right_buttons[i].value and right_states[i] is False:
synth_adsr_indexes[i] = (synth_adsr_indexes[i] + 1) % 4
right_states[i] = True
if right_buttons[i].value and right_states[i] is True:
right_states[i] = False
if not select_buttons[i].value and select_states[i] is False:
the_synth = synths[i]
all_adsr_values[i][0] = 0.1
all_adsr_values[i][1] = 0.1
all_adsr_values[i][3] = 0.1
all_adsr_values[i][2] = 0.05
the_env = synthio.Envelope(attack_time=all_adsr_values[i][0],
decay_time = all_adsr_values[i][1],
release_time=all_adsr_values[i][3],
attack_level=1, sustain_level=all_adsr_values[i][2])
the_synth.envelope = the_env
select_states[i] = True
if select_buttons[i].value and select_states[i] is True:
select_states[i] = False
# pylint: disable=line-too-long
display0.print(f"{adsr_names[synth_adsr_indexes[0]]}{synth0.envelope[adsr_properties[synth_adsr_indexes[0]]]:.2f}")
display1.print(f"{adsr_names[synth_adsr_indexes[1]]}{synth1.envelope[adsr_properties[synth_adsr_indexes[1]]]:.2f}")
display2.print(f"{adsr_names[synth_adsr_indexes[2]]}{synth2.envelope[adsr_properties[synth_adsr_indexes[2]]]:.2f}")
display3.print(f"{adsr_names[synth_adsr_indexes[3]]}{synth3.envelope[adsr_properties[synth_adsr_indexes[3]]]:.2f}")
# change waveform
elif mode == "WAVE":
display0.print(f" {wave_names[synth0_wave]}")
display1.print(f" {wave_names[synth1_wave]}")
display2.print(f" {wave_names[synth2_wave]}")
display3.print(f" {wave_names[synth3_wave]}")
# adjust ring modulation
elif mode == "RING":
display0.print(f" {synth0.ring_frequency:.1f}")
display1.print(f" {synth1.ring_frequency:.1f}")
display2.print(f" {synth2.ring_frequency:.1f}")
display3.print(f" {synth3.ring_frequency:.1f}")
# adjust lfo rate used for ring modulation
elif mode == "LFO ":
display0.print("RATE")
display1.print(f" {lfo.rate:.1f}")
display2.print(" ")
display3.print(" ")
# overall volume 0.0 - 1.0
elif mode == "VOL ":
display0.print(f" {mixer.voice[0].level:.1f}")
display1.print(" ")
display2.print(" ")
display3.print(" ")

View file

@ -0,0 +1,43 @@
# SPDX-FileCopyrightText: Copyright (c) 2025 Liz Clark for Adafruit Industries
#
# SPDX-License-Identifier: MIT
"""AS5600 Encoder"""
import usb_hid
import board
from adafruit_hid.consumer_control import ConsumerControl
from adafruit_hid.consumer_control_code import ConsumerControlCode
import adafruit_as5600
i2c = board.STEMMA_I2C()
sensor = adafruit_as5600.AS5600(i2c)
enc_inc = ConsumerControlCode.VOLUME_INCREMENT
enc_dec = ConsumerControlCode.VOLUME_DECREMENT
cc = ConsumerControl(usb_hid.devices)
last_val = sensor.angle
THRESHOLD = sensor.max_angle // 2 # default max_angle is 4095
# you can change the max_angle. ex: sensor.max_angle = 1000
MIN_CHANGE = 25 # minimum change to register as movement
# increase to make less sensitive, decrease to make more sensitive
while True:
enc_val = sensor.angle
if abs(enc_val - last_val) >= MIN_CHANGE or abs(enc_val - last_val) > THRESHOLD:
# Calculate the difference
diff = enc_val - last_val
# Check for wraparound
if diff > THRESHOLD:
# Wrapped from ~4095 to ~0 (actually turning backwards)
cc.send(enc_dec)
elif diff < -THRESHOLD:
# Wrapped from ~0 to ~4095 (actually turning forwards)
cc.send(enc_inc)
elif diff > 0:
# Normal forward rotation
cc.send(enc_inc)
else:
# Normal backward rotation (diff < 0)
cc.send(enc_dec)
last_val = enc_val

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,149 @@
# SPDX-FileCopyrightText: 2023 Liz Clark for Adafruit Industries
#
# SPDX-License-Identifier: MIT
import os
import random
import board
import audiocore
import audiobusio
import audiomixer
import pwmio
import neopixel
import adafruit_lis3dh
from adafruit_ticks import ticks_ms, ticks_add, ticks_diff
from digitalio import DigitalInOut, Direction, Pull
from adafruit_motor import servo
from adafruit_led_animation.animation.comet import Comet
from adafruit_led_animation.animation.pulse import Pulse
from adafruit_led_animation.animation.sparkle import Sparkle
from adafruit_led_animation.color import RED, BLUE, BLACK
# enable external power pin
# provides power to the external components
external_power = DigitalInOut(board.EXTERNAL_POWER)
external_power.direction = Direction.OUTPUT
external_power.value = True
i2c = board.I2C()
int1 = DigitalInOut(board.ACCELEROMETER_INTERRUPT)
lis3dh = adafruit_lis3dh.LIS3DH_I2C(i2c, int1=int1)
lis3dh.range = adafruit_lis3dh.RANGE_2_G
switch = DigitalInOut(board.EXTERNAL_BUTTON)
switch.direction = Direction.INPUT
switch.pull = Pull.UP
switch_state = False
wavs = []
for filename in os.listdir('/WAVs'):
if filename.lower().endswith('.wav') and not filename.startswith('.'):
wavs.append("/WAVs/"+filename)
audio = audiobusio.I2SOut(board.I2S_BIT_CLOCK, board.I2S_WORD_SELECT, board.I2S_DATA)
mixer = audiomixer.Mixer(voice_count=1, sample_rate=22050, channel_count=1,
bits_per_sample=16, samples_signed=True, buffer_size=32768)
mixer.voice[0].level = 1
track_number = 0
wav_filename = wavs[track_number]
wav_file = open(wav_filename, "rb")
wave = audiocore.WaveFile(wav_file)
audio.play(mixer)
mixer.voice[0].play(wave)
def open_audio(num):
n = wavs[num]
f = open(n, "rb")
w = audiocore.WaveFile(f)
return w
PIXEL_PIN = board.EXTERNAL_NEOPIXELS
SERVO_PIN = board.EXTERNAL_SERVO
NUM_PIXELS = 8
ORDER = neopixel.GRB
BRIGHTNESS = 0.3
PWM = pwmio.PWMOut(SERVO_PIN, duty_cycle=2 ** 15, frequency=50)
SERVO = servo.Servo(PWM)
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)
pixel.brightness = 1
PIXELS = neopixel.NeoPixel(PIXEL_PIN, NUM_PIXELS, auto_write=False,
pixel_order=ORDER)
LARSON = Comet(PIXELS, bounce=True, speed=0.07,
tail_length=NUM_PIXELS//2,
color=(BLUE[0] * BRIGHTNESS,
BLUE[1] * BRIGHTNESS,
BLUE[2] * BRIGHTNESS))
pulse = Pulse(PIXELS, speed=0.05,
color=(BLUE[0] * BRIGHTNESS,
BLUE[1] * BRIGHTNESS,
BLUE[2] * BRIGHTNESS), period=3)
sparkle = Sparkle(PIXELS, speed=0.2,
color=(RED[0] * BRIGHTNESS,
RED[1] * BRIGHTNESS,
RED[2] * BRIGHTNESS), num_sparkles=10)
SERVO.angle = POSITION = NEXT_POSITION = 90
MOVING = False
START_TIME = ticks_ms()
DURATION = 1000
adabot_talk = False
clock = ticks_ms()
prop_time = 1000
adabot_nap = False
mixer.voice[0].play(wave)
while mixer.playing:
LARSON.animate()
while True:
if ticks_diff(ticks_ms(), clock) >= prop_time:
x, y, z = [
value / adafruit_lis3dh.STANDARD_GRAVITY for value in lis3dh.acceleration
]
if z > 0.9:
adabot_nap = True
SERVO.angle = POSITION = NEXT_POSITION = 90
else:
adabot_nap = False
if not adabot_nap:
MOVING = not MOVING
if MOVING:
POSITION = NEXT_POSITION
while abs(POSITION - NEXT_POSITION) < 10:
NEXT_POSITION = random.uniform(0, 180)
DURATION = 0.2 + 0.6 * abs(POSITION - NEXT_POSITION) / 180
else:
SERVO.angle = NEXT_POSITION
DURATION = random.uniform(0.5, 2.5)
clock = ticks_add(clock, prop_time)
if MOVING:
FRACTION = 0.0 / DURATION
FRACTION = (3 * FRACTION ** 2) - (2 * FRACTION ** 3)
SERVO.angle = POSITION + (NEXT_POSITION - POSITION) * FRACTION
if adabot_talk:
wave = open_audio(random.randint(1, 17))
mixer.voice[0].play(wave)
while mixer.playing:
sparkle.animate()
if not mixer.playing:
adabot_talk = False
PIXELS.fill(BLACK)
PIXELS.show()
elif adabot_nap:
pulse.animate()
else:
LARSON.animate()
if not switch.value and switch_state is False:
PIXELS.fill(BLACK)
PIXELS.show()
adabot_talk = True
switch_state = True
if switch.value and switch_state is True:
switch_state = False

View file

@ -0,0 +1,40 @@
// SPDX-FileCopyrightText: 2025 Carter Nelson for Adafruit Industries
//
// SPDX-License-Identifier: MIT
// Basic ON/OFF control of DC motor via DRV8833
#define AIN1 5
#define AIN2 6
#define SLP 7
void setup() {
Serial.begin(115200);
Serial.println("Adafruit DRV8833 DC Motor Example - ON/OFF");
// configure pins
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(SLP, OUTPUT);
// enable DRV8833
digitalWrite(SLP, HIGH);
}
void loop() {
//
// FORWARD
//
Serial.println("Forward");
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
delay(1000);
//
// REVERSE
//
Serial.println("Reverse");
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
delay(1000);
}

View file

@ -0,0 +1,60 @@
// SPDX-FileCopyrightText: 2025 Carter Nelson for Adafruit Industries
//
// SPDX-License-Identifier: MIT
// PWM speed control of DC motor via DRV8833
#define AIN1 5
#define AIN2 6
#define SLP 7
void setup() {
Serial.begin(115200);
Serial.println("Adafruit DRV8833 DC Motor Example - PWM");
// configure pins
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(SLP, OUTPUT);
// enable DRV8833
digitalWrite(SLP, HIGH);
}
void loop() {
//
// FORWARD
//
Serial.println("Forward");
digitalWrite(AIN2, LOW);
// ramp speed up
Serial.println(" ramping up");
for (int duty_cycle=0; duty_cycle<256; duty_cycle++) {
analogWrite(AIN1, duty_cycle);
delay(10);
}
// ramp speed down
Serial.println(" ramping down");
for (int duty_cycle=255; duty_cycle>=0; duty_cycle--) {
analogWrite(AIN1, duty_cycle);
delay(10);
}
//
// REVERSE
//
Serial.println("Reverse");
digitalWrite(AIN1, LOW);
// ramp speed up
Serial.println(" ramping up");
for (int duty_cycle=0; duty_cycle<256; duty_cycle++) {
analogWrite(AIN2, duty_cycle);
delay(10);
}
// ramp speed down
Serial.println(" ramping down");
for (int duty_cycle=255; duty_cycle>=0; duty_cycle--) {
analogWrite(AIN2, duty_cycle);
delay(10);
}
}

View file

@ -0,0 +1,30 @@
// SPDX-FileCopyrightText: 2025 lady ada for Adafruit Industries
//
// SPDX-License-Identifier: MIT
#include <Stepper.h>
// change this to the number of steps on your motor
#define STEPS 200
// create an instance of the stepper class, specifying
// the number of steps of the motor and the pins it's
// attached to
Stepper stepper(STEPS, 4, 5, 6, 7);
void setup()
{
Serial.begin(9600);
Serial.println("Stepper test!");
// set the speed of the motor to 30 RPMs
stepper.setSpeed(60);
}
void loop()
{
Serial.println("Forward");
stepper.step(STEPS);
Serial.println("Backward");
stepper.step(-STEPS);
}

View file

@ -0,0 +1,37 @@
# SPDX-FileCopyrightText: 2025 Carter Nelson for Adafruit Industries
#
# SPDX-License-Identifier: MIT
import time
import board
import digitalio
# Configure pins
AIN1 = digitalio.DigitalInOut(board.D5)
AIN2 = digitalio.DigitalInOut(board.D6)
SLP = digitalio.DigitalInOut(board.D7)
AIN1.switch_to_output()
AIN2.switch_to_output()
SLP.switch_to_output()
# Enable DRV8833
SLP.value = True
# Loop forever
while True:
#
# FORWARD
#
print("Forward")
AIN1.value = True
AIN2.value = False
time.sleep(1)
#
# REVERSE
#
print("Reverse")
AIN1.value = False
AIN2.value = True
time.sleep(1)

View file

@ -0,0 +1,48 @@
# SPDX-FileCopyrightText: 2025 Carter Nelson for Adafruit Industries
#
# SPDX-License-Identifier: MIT
import time
import board
import digitalio
import pwmio
# Configure pins
AIN1 = pwmio.PWMOut(board.D5, frequency=2000)
AIN2 = pwmio.PWMOut(board.D6, frequency=2000)
SLP = digitalio.DigitalInOut(board.D7)
SLP.switch_to_output()
# Enable DRV8833
SLP.value = True
# Loop forever
while True:
#
# FORWARD
#
print("Forward")
AIN2.duty_cycle = 0
print(" ramping up")
for duty_cycle in range(0, 65536, 100):
AIN1.duty_cycle = duty_cycle
time.sleep(0.01)
print(" ramping down")
for duty_cycle in range(65535, -1, -100):
AIN1.duty_cycle = duty_cycle
time.sleep(0.01)
#
# REVERSE
#
print("Reverse")
AIN1.duty_cycle = 0
print(" ramping up")
for duty_cycle in range(0, 65536, 100):
AIN2.duty_cycle = duty_cycle
time.sleep(0.01)
print(" ramping down")
for duty_cycle in range(65535, -1, -100):
AIN2.duty_cycle = duty_cycle
time.sleep(0.01)

View file

@ -9,7 +9,7 @@
//#define ADAFRUIT_FEATHER_ESP32_V2
// then these pins will be defined for us
#if defined(ADAFRUIT_FEATHER_ESP32_V2)
#if defined(ADAFRUIT_FEATHER_ESP32_V2) or defined(ARDUINO_ADAFRUIT_ITSYBITSY_ESP32)
#define PIN_NEOPIXEL 0
#define NEOPIXEL_I2C_POWER 2
#endif
@ -93,7 +93,7 @@ void disableInternalPower() {
#endif
#if defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2)
// turn on the I2C power by setting pin to rest state (off)
// turn off the I2C power by setting pin to rest state (off)
pinMode(PIN_I2C_POWER, INPUT);
pinMode(NEOPIXEL_POWER, OUTPUT);
digitalWrite(NEOPIXEL_POWER, LOW);

View file

@ -109,16 +109,32 @@ void setup() {
digitalWrite(ESP32_RESETN, HIGH);
pixel.setPixelColor(0, 20, 20, 0); pixel.show();
delay(100);
#if defined(LED_BUILTIN)
pinMode(LED_BUILTIN, OUTPUT);
#endif
}
void loop() {
while (Serial.available()) {
#if defined(ARDUINO_ARCH_RP2040) // Neopixel is blocking and this annoys esptool
#if defined(LED_BUILTIN)
digitalWrite(LED_BUILTIN, HIGH);
#endif
#else
pixel.setPixelColor(0, 10, 0, 0); pixel.show();
#endif
SerialESP32.write(Serial.read());
}
while (SerialESP32.available()) {
#if defined(ARDUINO_ARCH_RP2040) // Neopixel is blocking and this annoys esptool
#if defined(LED_BUILTIN)
digitalWrite(LED_BUILTIN, LOW);
#endif
#else
pixel.setPixelColor(0, 0, 0, 10); pixel.show();
#endif
Serial.write(SerialESP32.read());
}
}

View file

@ -0,0 +1,105 @@
// SPDX-FileCopyrightText: 2025 Limor Fried for Adafruit Industries
//
// SPDX-License-Identifier: MIT
#include "config.h"
#include <Adafruit_BME280.h>
#include <Adafruit_NeoPixel.h>
Adafruit_BME280 bme; // I2C
AdafruitIO_Feed *temperature = io.feed("temperature");
AdafruitIO_Feed *humidity = io.feed("humidity");
AdafruitIO_Feed *pressure = io.feed("pressure");
float temp, humid, pres;
Adafruit_NeoPixel pixel(1, PIN_NEOPIXEL, NEO_GRB + NEO_KHZ800);
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
// wait for serial monitor to open
//while(! Serial);
// turn on neopixel
pinMode(NEOPIXEL_POWER, OUTPUT);
digitalWrite(NEOPIXEL_POWER, HIGH);
pixel.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
pixel.setBrightness(10); // not so bright
pixel.setPixelColor(0, 0xFF0000); // red
pixel.show();
if (! bme.begin()) {
Serial.println("Could not find a valid BME280 sensor, check wiring, address, sensor ID!");
deepSleep();
}
Serial.println("Found BME280");
float temp = bme.readTemperature();
float pres = bme.readPressure() / 100.0F;
float hum = bme.readHumidity();
// shhh time to close your eyes
bme.setSampling(Adafruit_BME280::MODE_SLEEP,
Adafruit_BME280::SAMPLING_X16, Adafruit_BME280::SAMPLING_X16, Adafruit_BME280::SAMPLING_X16,
Adafruit_BME280::FILTER_OFF,
Adafruit_BME280::STANDBY_MS_1000);
Serial.print("Connecting to Adafruit IO");
pixel.setPixelColor(0, 0xFFFF00); // yellow
pixel.show();
// connect to io.adafruit.com
io.connect();
// wait for a connection
while(io.status() < AIO_CONNECTED) {
Serial.print(".");
delay(100);
}
// we are connected
pixel.setPixelColor(0, 0x00FF00); // green
pixel.show();
Serial.println();
Serial.println(io.statusText());
io.run();
temp = temp * 9.0 / 5.0 + 32;
Serial.print("Temperature = ");
Serial.print(temp);
Serial.println(" *F");
temperature->save(temp);
Serial.print("Pressure = ");
Serial.print(pres);
Serial.println(" hPa");
pressure->save(pres);
Serial.print("Humidity = ");
Serial.print(hum);
Serial.println(" %");
humidity->save(hum);
Serial.println();
deepSleep();
}
void loop() {
// we never get here!
}
void deepSleep() {
pinMode(NEOPIXEL_POWER, OUTPUT);
digitalWrite(NEOPIXEL_POWER, LOW); // off
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
esp_sleep_enable_timer_wakeup(300000000); // 5 minutes
esp_deep_sleep_start();
}

View file

@ -0,0 +1,10 @@
// SPDX-FileCopyrightText: 2025 Limor Fried for Adafruit Industries
//
// SPDX-License-Identifier: MIT
#define IO_USERNAME "your-aio-username"
#define IO_KEY "your-aio-token"
#define WIFI_SSID "your-wifi-ssid"
#define WIFI_PASS "your-wifi-pass"
#include "AdafruitIO_WiFi.h"
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);

View file

@ -3,6 +3,8 @@
"""
CircuitPython Adafruit IO Example for BME280 and LC709203 Sensors
"""
from os import getenv
import time
import ssl
import alarm
@ -14,11 +16,21 @@ import adafruit_requests
from adafruit_io.adafruit_io import IO_HTTP, AdafruitIO_RequestError
from adafruit_lc709203f import LC709203F, PackSize
from adafruit_bme280 import basic as adafruit_bme280
try:
from secrets import secrets
except ImportError:
print("WiFi and Adafruit IO credentials are kept in secrets.py, please add them there!")
raise
# Get WiFi details and Adafruit IO keys, ensure these are setup in settings.toml
# (visit io.adafruit.com if you need to create an account, or if you need your Adafruit IO key.)
ssid = getenv("CIRCUITPY_WIFI_SSID")
password = getenv("CIRCUITPY_WIFI_PASSWORD")
aio_username = getenv("ADAFRUIT_AIO_USERNAME")
aio_key = getenv("ADAFRUIT_AIO_KEY")
if None in [ssid, password, aio_username, aio_key]:
raise RuntimeError(
"WiFi and Adafruit IO settings are kept in settings.toml, "
"please add them there. The settings file must contain "
"'CIRCUITPY_WIFI_SSID', 'CIRCUITPY_WIFI_PASSWORD', "
"'ADAFRUIT_AIO_USERNAME' and 'ADAFRUIT_AIO_KEY' at a minimum."
)
# Duration of sleep in seconds. Default is 600 seconds (10 minutes).
# Feather will sleep for this duration between sensor readings / sending data to AdafruitIO
@ -78,9 +90,9 @@ def send_io_data(feed, value):
# Wi-Fi connections can have issues! This ensures the code will continue to run.
try:
# Connect to Wi-Fi
wifi.radio.connect(secrets["ssid"], secrets["password"])
print("Connected to {}!".format(secrets["ssid"]))
print("IP:", wifi.radio.ipv4_address)
wifi.radio.connect(ssid, password)
print(f"Connected to {ssid}!")
print(f"IP: {wifi.radio.ipv4_address}")
pool = socketpool.SocketPool(wifi.radio)
requests = adafruit_requests.Session(pool, ssl.create_default_context())
@ -90,12 +102,6 @@ except Exception as e: # pylint: disable=broad-except
print(e)
go_to_sleep(60)
# Set your Adafruit IO Username and Key in secrets.py
# (visit io.adafruit.com if you need to create an account,
# or if you need your Adafruit IO key.)
aio_username = secrets["aio_username"]
aio_key = secrets["aio_key"]
# Initialize an Adafruit IO HTTP API object
io = IO_HTTP(aio_username, aio_key, requests)

View file

@ -5,8 +5,8 @@ CircuitPython Simple Example for BME280 and LC709203 Sensors
"""
import time
import board
from adafruit_bme280 import basic as adafruit_bme280
from adafruit_lc709203f import LC709203F, PackSize
from adafruit_bme280 import basic as adafruit_bme280
# Create sensor objects, using the board's default I2C bus.
i2c = board.I2C() # uses board.SCL and board.SDA

View file

@ -0,0 +1,110 @@
# SPDX-FileCopyrightText: Copyright (c) 2025 Tim Cocks for Adafruit Industries
#
# SPDX-License-Identifier: MIT
"""
CircuitPython example for deep sleep and BME280 sensor sending data
to Adafruit IO.
"""
from os import getenv
import time
import alarm
import board
import digitalio
import neopixel
import wifi
from adafruit_bme280 import advanced as adafruit_bme280
import adafruit_connection_manager
import adafruit_requests
from adafruit_io.adafruit_io import IO_HTTP, AdafruitIO_RequestError
# enable power to NeoPixels.
np_power = digitalio.DigitalInOut(board.NEOPIXEL_POWER)
np_power.switch_to_output(value=True)
# standard LED
builtin_led = digitalio.DigitalInOut(board.LED)
builtin_led.switch_to_output(value=True)
# neopixel to use for status
status_pixel = neopixel.NeoPixel(
board.NEOPIXEL, 1, brightness=0.1, pixel_order=neopixel.GRB, auto_write=True
)
status_pixel[0] = 0xFF0000
# Create sensor object, using the board's default I2C bus.
i2c = board.I2C() # uses board.SCL and board.SDA
bme280 = adafruit_bme280.Adafruit_BME280_I2C(i2c)
print("Found BME280")
# change this to match the location's pressure (hPa) at sea level
bme280.sea_level_pressure = 1013.25
# temperature converted to F
temperature = bme280.temperature * 9 / 5 + 32
humidity = bme280.relative_humidity
pressure = bme280.pressure
print("\nTemperature: %0.1f F" % temperature)
print("Humidity: %0.1f %%" % humidity)
print("Pressure: %0.1f hPa" % pressure)
bme280.mode = adafruit_bme280.MODE_SLEEP
bme280.overscan_temperature = adafruit_bme280.OVERSCAN_X16
bme280.overscan_humidity = adafruit_bme280.OVERSCAN_X16
bme280.overscan_pressure = adafruit_bme280.OVERSCAN_X16
bme280.iir_filter = adafruit_bme280.IIR_FILTER_DISABLE
bme280.standby_period = adafruit_bme280.STANDBY_TC_1000
# set status pixel to yellow
status_pixel[0] = 0xFFFF00
print("Connecting to AdafruitIO")
# Get WiFi details and Adafruit IO keys, ensure these are setup in settings.toml
# (visit io.adafruit.com if you need to create an account, or if you need your Adafruit IO key.)
ssid = getenv("WIFI_SSID")
password = getenv("WIFI_PASSWORD")
aio_username = getenv("ADAFRUIT_AIO_USERNAME")
aio_key = getenv("ADAFRUIT_AIO_KEY")
print("Connecting to %s" % ssid)
wifi.radio.connect(ssid, password)
print("Connected to %s!" % ssid)
# setup socket pool and requests session
pool = adafruit_connection_manager.get_radio_socketpool(wifi.radio)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(wifi.radio)
requests = adafruit_requests.Session(pool, ssl_context)
# Initialize an Adafruit IO HTTP API object
io = IO_HTTP(aio_username, aio_key, requests)
# set status pixel to green
status_pixel[0] = 0x00FF00
try:
# Get the feeds from Adafruit IO
temperature_feed = io.get_feed("temperature")
humidity_feed = io.get_feed("humidity")
pressure_feed = io.get_feed("pressure")
# send data to the feeds
io.send_data(temperature_feed["key"], temperature)
io.send_data(humidity_feed["key"], humidity)
io.send_data(pressure_feed["key"], pressure)
except AdafruitIO_RequestError as e:
print(e)
print(
"You must create feeds on AdafruitIO for: temperature, humidity, and pressure"
)
# turn off the neopixel and builtin LED
np_power.value = False
builtin_led.value = False
# Create an alarm that will trigger 5 minutes from now.
time_alarm = alarm.time.TimeAlarm(monotonic_time=time.monotonic() + (5 * 60))
# Exit the program, and then deep sleep until the alarm wakes us.
alarm.exit_and_deep_sleep_until_alarms(time_alarm)
# Does not return, so we never get here.

View file

@ -0,0 +1,57 @@
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
This test will initialize the display using displayio and draw a solid green
background, a smaller purple rectangle, and some yellow text.
"""
import board
import terminalio
import displayio
from adafruit_display_text import label
# First set some parameters used for shapes and text
BORDER = 20
FONTSCALE = 2
BACKGROUND_COLOR = 0x00FF00 # Bright Green
FOREGROUND_COLOR = 0xAA0088 # Purple
TEXT_COLOR = 0xFFFF00
display = board.DISPLAY
# Make the display context
splash = displayio.Group()
display.root_group = splash
color_bitmap = displayio.Bitmap(display.width, display.height, 1)
color_palette = displayio.Palette(1)
color_palette[0] = BACKGROUND_COLOR
bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=0, y=0)
splash.append(bg_sprite)
# Draw a smaller inner rectangle
inner_bitmap = displayio.Bitmap(
display.width - BORDER * 2, display.height - BORDER * 2, 1
)
inner_palette = displayio.Palette(1)
inner_palette[0] = FOREGROUND_COLOR
inner_sprite = displayio.TileGrid(
inner_bitmap, pixel_shader=inner_palette, x=BORDER, y=BORDER
)
splash.append(inner_sprite)
# Draw a label
text = "Hello World!"
text_area = label.Label(terminalio.FONT, text=text, color=TEXT_COLOR)
text_width = text_area.bounding_box[2] * FONTSCALE
text_group = displayio.Group(
scale=FONTSCALE,
x=display.width // 2 - text_width // 2,
y=display.height // 2,
)
text_group.append(text_area) # Subgroup for text scaling
splash.append(text_group)
while True:
pass

View file

@ -0,0 +1,29 @@
# SPDX-FileCopyrightText: 2021 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython I2S Tone playback example.
Plays a tone for one second on, one
second off, in a loop.
"""
import time
import array
import math
import audiocore
import board
import audiobusio
audio = audiobusio.I2SOut(board.A0, board.A1, board.A2)
tone_volume = 0.1 # Increase this to increase the volume of the tone.
frequency = 440 # Set this to the Hz of the tone you want to generate.
length = 8000 // frequency
sine_wave = array.array("h", [0] * length)
for i in range(length):
sine_wave[i] = int((math.sin(math.pi * 2 * i / length)) * tone_volume * (2 ** 15 - 1))
sine_wave_sample = audiocore.RawSample(sine_wave)
while True:
audio.play(sine_wave_sample, loop=True)
time.sleep(1)
audio.stop()
time.sleep(1)

View file

@ -0,0 +1,21 @@
# SPDX-FileCopyrightText: 2021 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython I2S WAV file playback.
Plays a WAV file once.
"""
import audiocore
import board
import audiobusio
audio = audiobusio.I2SOut(board.A0, board.A1, board.A2)
with open("StreetChicken.wav", "rb") as wave_file:
wav = audiocore.WaveFile(wave_file)
print("Playing wav file!")
audio.play(wav)
while audio.playing:
pass
print("Done!")

View file

@ -0,0 +1,28 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython I2S Tone playback example.
Plays a tone for one second on, one second off, in a loop.
"""
import time
import array
import math
import audiocore
import board
import audiobusio
audio = audiobusio.I2SOut(board.A0, board.A1, board.A2)
tone_volume = 0.1 # Increase this to increase the volume of the tone.
frequency = 440 # Set this to the Hz of the tone you want to generate.
length = 8000 // frequency
sine_wave = array.array("h", [0] * length)
for i in range(length):
sine_wave[i] = int((math.sin(math.pi * 2 * i / length)) * tone_volume * (2 ** 15 - 1))
sine_wave_sample = audiocore.RawSample(sine_wave)
while True:
audio.play(sine_wave_sample, loop=True)
time.sleep(1)
audio.stop()
time.sleep(1)

Binary file not shown.

View file

@ -0,0 +1,21 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython I2S WAV file playback.
Plays a WAV file once.
"""
import audiocore
import board
import audiobusio
audio = audiobusio.I2SOut(board.A0, board.A1, board.A2)
with open("StreetChicken.wav", "rb") as wave_file:
wav = audiocore.WaveFile(wave_file)
print("Playing wav file!")
audio.play(wav)
while audio.playing:
pass
print("Done!")

View file

@ -0,0 +1,14 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython Essentials Storage CP Filesystem boot.py file
"""
import board
import digitalio
import storage
button = digitalio.DigitalInOut(board.BUTTON)
button.switch_to_input(pull=digitalio.Pull.UP)
# If the button is connected to ground, the filesystem is writable by CircuitPython
storage.remount("/", readonly=button.value)

View file

@ -0,0 +1,80 @@
# SPDX-FileCopyrightText: Copyright (c) 2022 Dan Halbert for Adafruit Industries
# SPDX-FileCopyrightText: Copyright (c) 2023 Kattni Rembor for Adafruit Industries
#
# SPDX-License-Identifier: MIT
"""
CircuitPython asyncio example for two NeoPixel rings and one button.
"""
import asyncio
import board
import neopixel
import keypad
from rainbowio import colorwheel
button_pin = board.BUTTON # The pin the button is connected to.
num_pixels = 16 # The number of NeoPixels on a single ring.
brightness = 0.2 # The LED brightness.
# Set up NeoPixel rings.
ring_one = neopixel.NeoPixel(board.A1, num_pixels, brightness=brightness, auto_write=False)
ring_two = neopixel.NeoPixel(board.A2, num_pixels, brightness=brightness, auto_write=False)
class AnimationControls:
"""The controls to allow you to vary the rainbow and blink animations."""
def __init__(self):
self.reverse = False
self.wait = 0.0
self.delay = 0.5
async def rainbow_cycle(controls):
"""Rainbow cycle animation on ring one."""
while True:
for j in range(255, -1, -1) if controls.reverse else range(0, 256, 1):
for i in range(num_pixels):
rc_index = (i * 256 // num_pixels) + j
ring_one[i] = colorwheel(rc_index & 255)
ring_one.show()
await asyncio.sleep(controls.wait)
async def blink(controls):
"""Blink animation on ring two."""
while True:
ring_two.fill((0, 0, 255))
ring_two.show()
await asyncio.sleep(controls.delay)
ring_two.fill((0, 0, 0))
ring_two.show()
await asyncio.sleep(controls.delay)
await asyncio.sleep(controls.wait)
async def monitor_button(button, controls):
"""Monitor button that reverses rainbow direction and changes blink speed.
Assume button is active low.
"""
with keypad.Keys((button,), value_when_pressed=False, pull=True) as key:
while True:
key_event = key.events.get()
if key_event:
if key_event.pressed:
controls.reverse = True
controls.delay = 0.1
elif key_event.released:
controls.reverse = False
controls.delay = 0.5
await asyncio.sleep(0)
async def main():
animation_controls = AnimationControls()
button_task = asyncio.create_task(monitor_button(button_pin, animation_controls))
animation_task = asyncio.create_task(rainbow_cycle(animation_controls))
blink_task = asyncio.create_task(blink(animation_controls))
# This will run forever, because no tasks ever finish.
await asyncio.gather(button_task, animation_task, blink_task)
asyncio.run(main())

View file

@ -0,0 +1,15 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython Capacitive Touch Pin Example - Print to the serial console when one pin is touched.
"""
import time
import board
import touchio
touch = touchio.TouchIn(board.A3)
while True:
if touch.value:
print("Pin touched!")
time.sleep(0.1)

View file

@ -0,0 +1,18 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython Capacitive Two Touch Pin Example - Print to the serial console when a pin is touched.
"""
import time
import board
import touchio
touch_one = touchio.TouchIn(board.A3)
touch_two = touchio.TouchIn(board.D24)
while True:
if touch_one.value:
print("Pin one touched!")
if touch_two.value:
print("Pin two touched!")
time.sleep(0.1)

View file

@ -0,0 +1,29 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython I2S Tone playback example.
Plays a tone for one second on, one
second off, in a loop.
"""
import time
import array
import math
import audiocore
import board
import audiobusio
audio = audiobusio.I2SOut(board.A0, board.A1, board.A2)
tone_volume = 0.1 # Increase this to increase the volume of the tone.
frequency = 440 # Set this to the Hz of the tone you want to generate.
length = 8000 // frequency
sine_wave = array.array("h", [0] * length)
for i in range(length):
sine_wave[i] = int((math.sin(math.pi * 2 * i / length)) * tone_volume * (2 ** 15 - 1))
sine_wave_sample = audiocore.RawSample(sine_wave)
while True:
audio.play(sine_wave_sample, loop=True)
time.sleep(1)
audio.stop()
time.sleep(1)

View file

@ -0,0 +1,21 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython I2S WAV file playback.
Plays a WAV file once.
"""
import audiocore
import board
import audiobusio
audio = audiobusio.I2SOut(board.A0, board.A1, board.A2)
with open("StreetChicken.wav", "rb") as wave_file:
wav = audiocore.WaveFile(wave_file)
print("Playing wav file!")
audio.play(wav)
while audio.playing:
pass
print("Done!")

View file

@ -0,0 +1,56 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython Feather RP2040 RFM69 Packet Receive Demo
This demo waits for a "button" packet. When the first packet is received, the NeoPixel LED
lights up red. The next packet changes it to green. The next packet changes it to blue.
Subsequent button packets cycle through the same colors in the same order.
This example is meant to be paired with the Packet Send Demo code running
on a second Feather RP2040 RFM69 board.
"""
import board
import digitalio
import neopixel
import adafruit_rfm69
# Set up NeoPixel.
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)
pixel.brightness = 0.5
# Define the possible NeoPixel colors. You can add as many colors to this list as you like!
# Simply follow the format shown below. Make sure you include the comma after the color tuple!
color_values = [
(255, 0, 0),
(0, 255, 0),
(0, 0, 255),
]
# Define radio frequency in MHz. Must match your
# module. Can be a value like 915.0, 433.0, etc.
RADIO_FREQ_MHZ = 915.0
# Define Chip Select and Reset pins for the radio module.
CS = digitalio.DigitalInOut(board.RFM_CS)
RESET = digitalio.DigitalInOut(board.RFM_RST)
# Initialise RFM69 radio
rfm69 = adafruit_rfm69.RFM69(board.SPI(), CS, RESET, RADIO_FREQ_MHZ)
color_index = 0
# Wait to receive packets.
print("Waiting for packets...")
while True:
# Look for a new packet - wait up to 5 seconds:
packet = rfm69.receive(timeout=5.0)
# If no packet was received during the timeout then None is returned.
if packet is not None:
print("Received a packet!")
# If the received packet is b'button'...
if packet == b'button':
# ...cycle the NeoPixel LED color through the color_values list.
pixel.fill(color_values[color_index])
color_index = (color_index + 1) % len(color_values)

View file

@ -0,0 +1,36 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython Feather RP2040 RFM69 Packet Send Demo
This demo sends a "button" packet when the Boot button is pressed.
This example is meant to be paired with the Packet Receive Demo code running
on a second Feather RP2040 RFM69 board.
"""
import board
import digitalio
import keypad
import adafruit_rfm69
# Set up button using keypad module.
button = keypad.Keys((board.BUTTON,), value_when_pressed=False)
# Define radio frequency in MHz. Must match your
# module. Can be a value like 915.0, 433.0, etc.
RADIO_FREQ_MHZ = 915.0
# Define Chip Select and Reset pins for the radio module.
CS = digitalio.DigitalInOut(board.RFM_CS)
RESET = digitalio.DigitalInOut(board.RFM_RST)
# Initialise RFM69 radio
rfm69 = adafruit_rfm69.RFM69(board.SPI(), CS, RESET, RADIO_FREQ_MHZ)
while True:
button_press = button.events.get()
if button_press:
if button_press.pressed:
rfm69.send(bytes("button", "UTF-8"))

View file

@ -0,0 +1,14 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython Essentials Storage CP Filesystem boot.py file
"""
import board
import digitalio
import storage
button = digitalio.DigitalInOut(board.BUTTON)
button.switch_to_input(pull=digitalio.Pull.UP)
# If the OBJECT_NAME is connected to ground, the filesystem is writable by CircuitPython
storage.remount("/", readonly=button.value)

View file

@ -0,0 +1,37 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython Essentials Storage CP Filesystem code.py file
"""
import time
import board
import digitalio
import microcontroller
led = digitalio.DigitalInOut(board.LED)
led.switch_to_output()
try:
with open("/temperature.txt", "a") as temp_log:
while True:
# The microcontroller temperature in Celsius. Include the
# math to do the C to F conversion here, if desired.
temperature = microcontroller.cpu.temperature
# Write the temperature to the temperature.txt file every 10 seconds.
temp_log.write('{0:.2f}\n'.format(temperature))
temp_log.flush()
# Blink the LED on every write...
led.value = True
time.sleep(1) # ...for one second.
led.value = False # Then turn it off...
time.sleep(9) # ...for the other 9 seconds.
except OSError as e: # When the filesystem is NOT writable by CircuitPython...
delay = 0.5 # ...blink the LED every half second.
if e.args[0] == 28: # If the file system is full...
delay = 0.15 # ...blink the LED every 0.15 seconds!
while True:
led.value = not led.value
time.sleep(delay)

View file

@ -0,0 +1,80 @@
# SPDX-FileCopyrightText: Copyright (c) 2022 Dan Halbert for Adafruit Industries
# SPDX-FileCopyrightText: Copyright (c) 2023 Kattni Rembor for Adafruit Industries
#
# SPDX-License-Identifier: MIT
"""
CircuitPython asyncio example for two NeoPixel rings and one button.
"""
import asyncio
import board
import neopixel
import keypad
from rainbowio import colorwheel
button_pin = board.BUTTON # The pin the button is connected to.
num_pixels = 16 # The number of NeoPixels on a single ring.
brightness = 0.2 # The LED brightness.
# Set up NeoPixel rings.
ring_one = neopixel.NeoPixel(board.A1, num_pixels, brightness=brightness, auto_write=False)
ring_two = neopixel.NeoPixel(board.A2, num_pixels, brightness=brightness, auto_write=False)
class AnimationControls:
"""The controls to allow you to vary the rainbow and blink animations."""
def __init__(self):
self.reverse = False
self.wait = 0.0
self.delay = 0.5
async def rainbow_cycle(controls):
"""Rainbow cycle animation on ring one."""
while True:
for j in range(255, -1, -1) if controls.reverse else range(0, 256, 1):
for i in range(num_pixels):
rc_index = (i * 256 // num_pixels) + j
ring_one[i] = colorwheel(rc_index & 255)
ring_one.show()
await asyncio.sleep(controls.wait)
async def blink(controls):
"""Blink animation on ring two."""
while True:
ring_two.fill((0, 0, 255))
ring_two.show()
await asyncio.sleep(controls.delay)
ring_two.fill((0, 0, 0))
ring_two.show()
await asyncio.sleep(controls.delay)
await asyncio.sleep(controls.wait)
async def monitor_button(button, controls):
"""Monitor button that reverses rainbow direction and changes blink speed.
Assume button is active low.
"""
with keypad.Keys((button,), value_when_pressed=False, pull=True) as key:
while True:
key_event = key.events.get()
if key_event:
if key_event.pressed:
controls.reverse = True
controls.delay = 0.1
elif key_event.released:
controls.reverse = False
controls.delay = 0.5
await asyncio.sleep(0)
async def main():
animation_controls = AnimationControls()
button_task = asyncio.create_task(monitor_button(button_pin, animation_controls))
animation_task = asyncio.create_task(rainbow_cycle(animation_controls))
blink_task = asyncio.create_task(blink(animation_controls))
# This will run forever, because no tasks ever finish.
await asyncio.gather(button_task, animation_task, blink_task)
asyncio.run(main())

View file

@ -0,0 +1,56 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython Feather RP2040 RFM95 Packet Receive Demo
This demo waits for a "button" packet. When the first packet is received, the NeoPixel LED
lights up red. The next packet changes it to green. The next packet changes it to blue.
Subsequent button packets cycle through the same colors in the same order.
This example is meant to be paired with the Packet Send Demo code running
on a second Feather RP2040 RFM95 board.
"""
import board
import digitalio
import neopixel
import adafruit_rfm9x
# Set up NeoPixel.
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)
pixel.brightness = 0.5
# Define the possible NeoPixel colors. You can add as many colors to this list as you like!
# Simply follow the format shown below. Make sure you include the comma after the color tuple!
color_values = [
(255, 0, 0),
(0, 255, 0),
(0, 0, 255),
]
# Define radio frequency in MHz. Must match your
# module. Can be a value like 915.0, 433.0, etc.
RADIO_FREQ_MHZ = 915.0
# Define Chip Select and Reset pins for the radio module.
CS = digitalio.DigitalInOut(board.RFM_CS)
RESET = digitalio.DigitalInOut(board.RFM_RST)
# Initialise RFM95 radio
rfm95 = adafruit_rfm9x.RFM9x(board.SPI(), CS, RESET, RADIO_FREQ_MHZ)
color_index = 0
# Wait to receive packets.
print("Waiting for packets...")
while True:
# Look for a new packet - wait up to 5 seconds:
packet = rfm95.receive(timeout=5.0)
# If no packet was received during the timeout then None is returned.
if packet is not None:
print("Received a packet!")
# If the received packet is b'button'...
if packet == b'button':
# ...cycle the NeoPixel LED color through the color_values list.
pixel.fill(color_values[color_index])
color_index = (color_index + 1) % len(color_values)

View file

@ -0,0 +1,36 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython Feather RP2040 RFM95 Packet Send Demo
This demo sends a "button" packet when the Boot button is pressed.
This example is meant to be paired with the Packet Receive Demo code running
on a second Feather RP2040 RFM95 board.
"""
import board
import digitalio
import keypad
import adafruit_rfm9x
# Set up button using keypad module.
button = keypad.Keys((board.BUTTON,), value_when_pressed=False)
# Define radio frequency in MHz. Must match your
# module. Can be a value like 915.0, 433.0, etc.
RADIO_FREQ_MHZ = 915.0
# Define Chip Select and Reset pins for the radio module.
CS = digitalio.DigitalInOut(board.RFM_CS)
RESET = digitalio.DigitalInOut(board.RFM_RST)
# Initialise RFM95 radio
rfm95 = adafruit_rfm9x.RFM9x(board.SPI(), CS, RESET, RADIO_FREQ_MHZ)
while True:
button_press = button.events.get()
if button_press:
if button_press.pressed:
rfm95.send(bytes("button", "UTF-8"))

View file

@ -8,20 +8,26 @@ import array
import math
import board
import audiobusio
import adafruit_apds9960.apds9960
import adafruit_bmp280
import adafruit_lis3mdl
import adafruit_lsm6ds.lsm6ds33
import adafruit_sht31d
from adafruit_apds9960.apds9960 import APDS9960
from adafruit_bmp280 import Adafruit_BMP280_I2C
from adafruit_lis3mdl import LIS3MDL
from adafruit_sht31d import SHT31D
i2c = board.I2C() # uses board.SCL and board.SDA
# i2c = board.STEMMA_I2C() # For using the built-in STEMMA QT connector on a microcontroller
apds9960 = adafruit_apds9960.apds9960.APDS9960(i2c)
bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c)
lis3mdl = adafruit_lis3mdl.LIS3MDL(i2c)
lsm6ds33 = adafruit_lsm6ds.lsm6ds33.LSM6DS33(i2c)
sht31d = adafruit_sht31d.SHT31D(i2c)
# check for LSM6DS33 or LSM6DS3TR-C
try:
from adafruit_lsm6ds.lsm6ds33 import LSM6DS33 as LSM6DS
lsm6ds = LSM6DS(i2c)
except RuntimeError:
from adafruit_lsm6ds.lsm6ds3 import LSM6DS3 as LSM6DS
lsm6ds = LSM6DS(i2c)
apds9960 = APDS9960(i2c)
bmp280 = Adafruit_BMP280_I2C(i2c)
lis3mdl = LIS3MDL(i2c)
sht31d = SHT31D(i2c)
microphone = audiobusio.PDMIn(board.MICROPHONE_CLOCK, board.MICROPHONE_DATA,
sample_rate=16000, bit_depth=16)
@ -42,14 +48,17 @@ while True:
print("\nFeather Sense Sensor Demo")
print("---------------------------------------------")
print("Proximity:", apds9960.proximity)
print("Red: {}, Green: {}, Blue: {}, Clear: {}".format(*apds9960.color_data))
print("Temperature: {:.1f} C".format(bmp280.temperature))
print("Barometric pressure:", bmp280.pressure)
print("Altitude: {:.1f} m".format(bmp280.altitude))
print("Magnetic: {:.3f} {:.3f} {:.3f} uTesla".format(*lis3mdl.magnetic))
print("Acceleration: {:.2f} {:.2f} {:.2f} m/s^2".format(*lsm6ds33.acceleration))
print("Gyro: {:.2f} {:.2f} {:.2f} dps".format(*lsm6ds33.gyro))
print("Humidity: {:.1f} %".format(sht31d.relative_humidity))
print("Sound level:", normalized_rms(samples))
print(f"Proximity: {apds9960.proximity}")
print(f"Red: {apds9960.color_data[0]}, Green: {apds9960.color_data[1]}, " +
f"Blue: {apds9960.color_data[2]}, Clear: {apds9960.color_data[3]}")
print(f"Temperature: {bmp280.temperature:.1f} C")
print(f"Barometric pressure: {bmp280.pressure}")
print(f"Altitude: {bmp280.altitude:.1f} m")
print(f"Magnetic: {lis3mdl.magnetic[0]:.3f} {lis3mdl.magnetic[1]:.3f} " +
f"{lis3mdl.magnetic[2]:.3f} uTesla")
print(f"Acceleration: {lsm6ds.acceleration[0]:.2f} " +
f"{lsm6ds.acceleration[1]:.2f} {lsm6ds.acceleration[2]:.2f} m/s^2")
print(f"Gyro: {lsm6ds.gyro[0]:.2f} {lsm6ds.gyro[1]:.2f} {lsm6ds.gyro[2]:.2f} dps")
print(f"Humidity: {sht31d.relative_humidity:.1f} %")
print(f"Sound level: {normalized_rms(samples)}")
time.sleep(0.3)

View file

@ -6,6 +6,7 @@
#include <Adafruit_BMP280.h>
#include <Adafruit_LIS3MDL.h>
#include <Adafruit_LSM6DS33.h>
#include <Adafruit_LSM6DS3TRC.h>
#include <Adafruit_SHT31.h>
#include <Adafruit_Sensor.h>
#include <PDM.h>
@ -13,7 +14,8 @@
Adafruit_APDS9960 apds9960; // proximity, light, color, gesture
Adafruit_BMP280 bmp280; // temperautre, barometric pressure
Adafruit_LIS3MDL lis3mdl; // magnetometer
Adafruit_LSM6DS33 lsm6ds33; // accelerometer, gyroscope
Adafruit_LSM6DS3TRC lsm6ds3trc; // accelerometer, gyroscope
Adafruit_LSM6DS33 lsm6ds33;
Adafruit_SHT31 sht30; // humidity
uint8_t proximity;
@ -24,11 +26,15 @@ float accel_x, accel_y, accel_z;
float gyro_x, gyro_y, gyro_z;
float humidity;
int32_t mic;
long int accel_array[6];
long int check_array[6]={0.00, 0.00, 0.00, 0.00, 0.00, 0.00};
extern PDMClass PDM;
short sampleBuffer[256]; // buffer to read samples into, each sample is 16-bits
volatile int samplesRead; // number of samples read
bool new_rev = true;
void setup(void) {
Serial.begin(115200);
// while (!Serial) delay(10);
@ -41,6 +47,28 @@ void setup(void) {
bmp280.begin();
lis3mdl.begin_I2C();
lsm6ds33.begin_I2C();
// check for readings from LSM6DS33
sensors_event_t accel;
sensors_event_t gyro;
sensors_event_t temp;
lsm6ds33.getEvent(&accel, &gyro, &temp);
accel_array[0] = accel.acceleration.x;
accel_array[1] = accel.acceleration.y;
accel_array[2] = accel.acceleration.z;
accel_array[3] = gyro.gyro.x;
accel_array[4] = gyro.gyro.y;
accel_array[5] = gyro.gyro.z;
// if all readings are empty, then new rev
for (int i =0; i < 5; i++) {
if (accel_array[i] != check_array[i]) {
new_rev = false;
break;
}
}
// and we need to instantiate the LSM6DS3TRC
if (new_rev) {
lsm6ds3trc.begin_I2C();
}
sht30.begin();
PDM.onReceive(onPDMdata);
PDM.begin(1, 16000);
@ -65,7 +93,12 @@ void loop(void) {
sensors_event_t accel;
sensors_event_t gyro;
sensors_event_t temp;
lsm6ds33.getEvent(&accel, &gyro, &temp);
if (new_rev) {
lsm6ds3trc.getEvent(&accel, &gyro, &temp);
}
else {
lsm6ds33.getEvent(&accel, &gyro, &temp);
}
accel_x = accel.acceleration.x;
accel_y = accel.acceleration.y;
accel_z = accel.acceleration.z;
@ -77,7 +110,7 @@ void loop(void) {
samplesRead = 0;
mic = getPDMwave(4000);
Serial.println("\nFeather Sense Sensor Demo");
Serial.println("---------------------------------------------");
Serial.print("Proximity: ");
@ -157,4 +190,4 @@ void onPDMdata() {
// 16-bit, 2 bytes per sample
samplesRead = bytesAvailable / 2;
}
}

View file

@ -3,6 +3,8 @@
"""
CircuitPython Adafruit IO Example for LC709203 Sensor
"""
from os import getenv
import time
import ssl
import alarm
@ -13,11 +15,21 @@ import socketpool
import adafruit_requests
from adafruit_io.adafruit_io import IO_HTTP
from adafruit_lc709203f import LC709203F, PackSize
try:
from secrets import secrets
except ImportError:
print("WiFi and Adafruit IO credentials are kept in secrets.py, please add them there!")
raise
# Get WiFi details and Adafruit IO keys, ensure these are setup in settings.toml
# (visit io.adafruit.com if you need to create an account, or if you need your Adafruit IO key.)
ssid = getenv("CIRCUITPY_WIFI_SSID")
password = getenv("CIRCUITPY_WIFI_PASSWORD")
aio_username = getenv("ADAFRUIT_AIO_USERNAME")
aio_key = getenv("ADAFRUIT_AIO_KEY")
if None in [ssid, password, aio_username, aio_key]:
raise RuntimeError(
"WiFi and Adafruit IO settings are kept in settings.toml, "
"please add them there. The settings file must contain "
"'CIRCUITPY_WIFI_SSID', 'CIRCUITPY_WIFI_PASSWORD', "
"'ADAFRUIT_AIO_USERNAME' and 'ADAFRUIT_AIO_KEY' at a minimum."
)
# Duration of sleep in seconds. Default is 600 seconds (10 minutes).
# Feather will sleep for this duration between sensor readings / sending data to AdafruitIO
@ -58,9 +70,9 @@ def send_io_data(feed, value):
# Wi-Fi connections can have issues! This ensures the code will continue to run.
try:
# Connect to Wi-Fi
wifi.radio.connect(secrets["ssid"], secrets["password"])
print("Connected to {}!".format(secrets["ssid"]))
print("IP:", wifi.radio.ipv4_address)
wifi.radio.connect(ssid, password)
print(f"Connected to {ssid}!")
print(f"IP: {wifi.radio.ipv4_address}")
pool = socketpool.SocketPool(wifi.radio)
requests = adafruit_requests.Session(pool, ssl.create_default_context())
@ -70,12 +82,6 @@ except Exception as e: # pylint: disable=broad-except
print(e)
go_to_sleep(60)
# Set your Adafruit IO Username and Key in secrets.py
# (visit io.adafruit.com if you need to create an account,
# or if you need your Adafruit IO key.)
aio_username = secrets["aio_username"]
aio_key = secrets["aio_key"]
# Initialize an Adafruit IO HTTP API object
io = IO_HTTP(aio_username, aio_key, requests)

View file

@ -3,6 +3,8 @@
"""
CircuitPython GitHub Stars viewer
"""
from os import getenv
import time
import ssl
import wifi
@ -13,12 +15,17 @@ from adafruit_display_text import bitmap_label
from adafruit_bitmap_font import bitmap_font
import adafruit_requests
# Get WiFi details secrets.py file
try:
from secrets import secrets
except ImportError:
print("WiFi secrets are kept in secrets.py, please add them there!")
raise
# Get WiFi details, ensure these are setup in settings.toml
ssid = getenv("CIRCUITPY_WIFI_SSID")
password = getenv("CIRCUITPY_WIFI_PASSWORD")
if None in [ssid, password]:
raise RuntimeError(
"WiFi settings are kept in settings.toml, "
"please add them there. The settings file must contain "
"'CIRCUITPY_WIFI_SSID', 'CIRCUITPY_WIFI_PASSWORD', "
"at a minimum."
)
display = board.DISPLAY
@ -35,13 +42,13 @@ text_area = bitmap_label.Label(font, text="----", color=0xFFFFFF)
text_area.x = 135
text_area.y = 90
group.append(text_area)
display.show(group)
display.root_group = group
# Connect to WiFi
print("Connecting to %s"%secrets["ssid"])
wifi.radio.connect(secrets["ssid"], secrets["password"])
print("Connected to %s!"%secrets["ssid"])
print("My IP address is", wifi.radio.ipv4_address)
print(f"Connecting to {ssid}")
wifi.radio.connect(ssid, password)
print(f"Connected to {ssid}!")
print(f"My IP address is {wifi.radio.ipv4_address}")
pool = socketpool.SocketPool(wifi.radio)
requests = adafruit_requests.Session(pool, ssl.create_default_context())

View file

@ -15,7 +15,7 @@ scale = 3
text_area = bitmap_label.Label(terminalio.FONT, text=text, scale=scale)
text_area.x = 10
text_area.y = 10
board.DISPLAY.show(text_area)
board.DISPLAY.root_group = text_area
while True:
pass

View file

@ -12,7 +12,7 @@ blinka_img = OnDiskBitmap("images/adafruit_blinka.bmp")
tile_grid = TileGrid(bitmap=blinka_img, pixel_shader=blinka_img.pixel_shader)
main_group.append(tile_grid)
board.DISPLAY.show(main_group)
board.DISPLAY.root_group = main_group
tile_grid.x = board.DISPLAY.width // 2 - blinka_img.width // 2

View file

@ -27,7 +27,7 @@ sensor = LC709203F(i2c)
print("IC version:", hex(sensor.ic_version))
board.DISPLAY.show(main_group)
board.DISPLAY.root_group = main_group
while True:
text_area.text = "Battery:\n{:.1f} Volts \n{}%".format(sensor.cell_voltage, sensor.cell_percent)

View file

@ -0,0 +1,72 @@
// SPDX-FileCopyrightText: 2023 Ladyada for Adafruit Industries
//
// SPDX-License-Identifier: MIT
/*
This example plays a 'raw' PCM file from memory to I2S
*/
#include <I2S.h>
#include "startup.h" // audio file in flash
// Create the I2S port using a PIO state machine
I2S i2s(OUTPUT);
// GPIO pin numbers
#define pBCLK A2 // QT Py BFF default BITCLOCK
#define pWS A1 // QT Py BFF default LRCLOCK
#define pDOUT A0 // QT Py BFF default DATA
#define USERBUTTON 21 // QT Py RP2040 built in button
// variable shared between cores
volatile bool playaudio = false;
void setup() {
Serial.begin(115200);
//while (!Serial) delay(10);
Serial.println("I2S playback demo");
pinMode(USERBUTTON, INPUT_PULLUP);
}
void loop() {
// on button press tell the other core to play audio clip!
if (!digitalRead(USERBUTTON)) {
playaudio = true;
} else {
playaudio = false;
}
}
void setup1() {
i2s.setBCLK(pBCLK);
i2s.setDATA(pDOUT);
i2s.setBitsPerSample(16);
}
void loop1() {
// the main loop will tell us when it wants us to play!
if (playaudio) {
play_i2s(startupAudioData, sizeof(startupAudioData), startupSampleRate);
}
}
void play_i2s(const uint8_t *data, uint32_t len, uint32_t rate) {
// start I2S at the sample rate with 16-bits per sample
if (!i2s.begin(rate)) {
Serial.println("Failed to initialize I2S!");
delay(500);
i2s.end();
return;
}
for(uint32_t i=0; i<len; i++) {
uint16_t sample = (uint16_t)data[i] << 6; // our data is 10 bit but we want 16 bit so we add some gain
// write the same sample twice, once for left and once for the right channel
i2s.write(sample);
i2s.write(sample);
}
i2s.end();
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,74 @@
// SPDX-FileCopyrightText: 2016 Sandeep Mistry
// SPDX-FileCopyrightText: 2022 Earle F. Philhower, III
// SPDX-FileCopyrightText: 2023 Ladyada for Adafruit Industries
//
// SPDX-License-Identifier: MIT
/*
This example generates a square wave based tone at a specified frequency
and sample rate. Then outputs the data using the I2S interface to a
MAX08357 I2S Amp Breakout board.
created 17 November 2016
by Sandeep Mistry
modified for RP2040 by Earle F. Philhower, III <earlephilhower@yahoo.com>
bool setBCLK(pin_size_t pin);
- This assigns two adjacent pins - the pin after this one (one greater)
is the WS (word select) signal, which toggles before the sample for
each channel is sent
bool setDATA(pin_size_t pin);
- Sets the DOUT pin, can be any valid GPIO pin
*/
#include <I2S.h>
// Create the I2S port using a PIO state machine
I2S i2s(OUTPUT);
// GPIO pin numbers
#define pBCLK A2 // QT Py BFF default BITCLOCK
#define pWS A1 // QT Py BFF default LRCLOCK
#define pDOUT A0 // QT Py BFF default DATA
const int frequency = 440; // frequency of square wave in Hz
const int amplitude = 500; // amplitude of square wave
const int sampleRate = 16000; // 16 KHz is a good quality
const int halfWavelength = (sampleRate / frequency); // half wavelength of square wave
int16_t sample = amplitude; // current sample value
int count = 0;
void setup() {
Serial.begin(115200);
while (!Serial) delay(10);
Serial.println("I2S simple tone");
i2s.setBCLK(pBCLK);
i2s.setDATA(pDOUT);
i2s.setBitsPerSample(16);
// start I2S at the sample rate with 16-bits per sample
if (!i2s.begin(sampleRate)) {
Serial.println("Failed to initialize I2S!");
while (1); // do nothing
}
}
void loop() {
if (count % halfWavelength == 0) {
// invert the sample every half wavelength count multiple to generate square wave
sample = -1 * sample;
}
// write the same sample twice, once for left and once for the right channel
i2s.write(sample);
i2s.write(sample);
// increment the counter for the next sample
count++;
}

View file

@ -0,0 +1,28 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython I2S Tone playback example.
"""
import time
import array
import math
import audiocore
import board
import audiobusio
TONE_VOLUME = 0.1 # Increase this to increase the volume of the tone.
FREQUENCY = 440 # Set this to the Hz of the tone you want to generate.
audio = audiobusio.I2SOut(board.A2, board.A1, board.A0)
length = 8000 // FREQUENCY
sine_wave = array.array("h", [0] * length)
for i in range(length):
sine_wave[i] = int((math.sin(math.pi * 2 * i / length)) * TONE_VOLUME * (2 ** 15 - 1))
sine_wave_sample = audiocore.RawSample(sine_wave)
while True:
audio.play(sine_wave_sample, loop=True)
time.sleep(1)
audio.stop()
time.sleep(1)

Binary file not shown.

View file

@ -0,0 +1,22 @@
# SPDX-FileCopyrightText: 2023 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
CircuitPython I2S WAV file playback.
"""
import audiocore
import board
import audiobusio
LOOP = False # Update to True loop WAV playback. False plays once.
audio = audiobusio.I2SOut(board.A2, board.A1, board.A0)
with open("booploop.wav", "rb") as wave_file:
wav = audiocore.WaveFile(wave_file)
print("Playing wav file!")
audio.play(wav, loop=LOOP)
while audio.playing:
pass
print("Done!")

View file

@ -2,6 +2,7 @@
#
# SPDX-License-Identifier: MIT
from os import getenv
import time
import board
import busio
@ -22,14 +23,22 @@ USE_CELSIUS = False
# Interval the sensor publishes to Adafruit IO, in minutes
PUBLISH_INTERVAL = 10
### WiFi ###
# Get WiFi details and Adafruit IO keys, ensure these are setup in settings.toml
# (visit io.adafruit.com if you need to create an account, or if you need your Adafruit IO key.)
ssid = getenv("CIRCUITPY_WIFI_SSID")
password = getenv("CIRCUITPY_WIFI_PASSWORD")
aio_username = getenv("ADAFRUIT_AIO_USERNAME")
aio_key = getenv("ADAFRUIT_AIO_KEY")
# Get wifi details and more from a secrets.py file
try:
from secrets import secrets
except ImportError:
print("WiFi secrets are kept in secrets.py, please add them there!")
raise
if None in [ssid, password, aio_username, aio_key]:
raise RuntimeError(
"WiFi and Adafruit IO settings are kept in settings.toml, "
"please add them there. The settings file must contain "
"'CIRCUITPY_WIFI_SSID', 'CIRCUITPY_WIFI_PASSWORD', "
"'ADAFRUIT_AIO_USERNAME' and 'ADAFRUIT_AIO_KEY' at a minimum."
)
### WiFi ###
# AirLift FeatherWing
esp32_cs = DigitalInOut(board.D13)
@ -38,8 +47,8 @@ esp32_ready = DigitalInOut(board.D11)
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)
status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2)
wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager(esp, secrets, status_light)
status_pixel = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2)
wifi = adafruit_esp32spi_wifimanager.WiFiManager(esp, ssid, password, status_pixel=status_pixel)
# Connect to a PM2.5 sensor over UART
reset_pin = None
@ -142,7 +151,7 @@ def read_bme(is_celsius=False):
# Create an instance of the Adafruit IO HTTP client
io = IO_HTTP(secrets["aio_user"], secrets["aio_key"], wifi)
io = IO_HTTP(aio_username, aio_key, wifi)
# Describes feeds used to hold Adafruit IO data
feed_aqi = io.get_feed("air-quality-sensor.aqi")
@ -150,11 +159,11 @@ feed_aqi_category = io.get_feed("air-quality-sensor.category")
feed_humidity = io.get_feed("air-quality-sensor.humidity")
feed_temperature = io.get_feed("air-quality-sensor.temperature")
# Set up location metadata from secrets.py file
# Set up location metadata from settings.toml file
location_metadata = {
"lat": secrets["latitude"],
"lon": secrets["longitude"],
"ele": secrets["elevation"],
"lat": getenv("latitude"),
"lon": getenv("longitude"),
"ele": getenv("elevation"),
}
elapsed_minutes = 0

View file

@ -2,25 +2,31 @@
#
# SPDX-License-Identifier: MIT
import os
import time
import board
import busio
from digitalio import DigitalInOut
import neopixel
import adafruit_connection_manager
from adafruit_esp32spi import adafruit_esp32spi
from adafruit_esp32spi import adafruit_esp32spi_wifimanager
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
import adafruit_minimqtt.adafruit_minimqtt as MQTT
### WiFi ###
# Get WiFi details, ensure these are setup in settings.toml
ssid = os.getenv("CIRCUITPY_WIFI_SSID")
password = os.getenv("CIRCUITPY_WIFI_PASSWORD")
# Get wifi details and more from a secrets.py file
try:
from secrets import secrets
except ImportError:
print("WiFi secrets are kept in secrets.py, please add them there!")
raise
if None in [ssid, password]:
raise RuntimeError(
"WiFi settings are kept in settings.toml, "
"please add them there. The settings file must contain "
"'CIRCUITPY_WIFI_SSID', 'CIRCUITPY_WIFI_PASSWORD', "
"at a minimum."
)
### WiFi ###
# If you are using a board with pre-defined ESP32 Pins:
esp32_cs = DigitalInOut(board.ESP_CS)
@ -35,19 +41,19 @@ esp32_reset = DigitalInOut(board.ESP_RESET)
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)
"""Use below for Most Boards"""
status_light = neopixel.NeoPixel(
status_pixel = neopixel.NeoPixel(
board.NEOPIXEL, 1, brightness=0.2
) # Uncomment for Most Boards
"""Uncomment below for ItsyBitsy M4"""
# status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2)
# status_pixel = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2)
# Uncomment below for an externally defined RGB LED
# import adafruit_rgbled
# from adafruit_esp32spi import PWMOut
# RED_LED = PWMOut.PWMOut(esp, 26)
# GREEN_LED = PWMOut.PWMOut(esp, 27)
# BLUE_LED = PWMOut.PWMOut(esp, 25)
# status_light = adafruit_rgbled.RGBLED(RED_LED, BLUE_LED, GREEN_LED)
wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager(esp, secrets, status_light)
# status_pixel = adafruit_rgbled.RGBLED(RED_LED, BLUE_LED, GREEN_LED)
wifi = adafruit_esp32spi_wifimanager.WiFiManager(esp, ssid, password, status_pixel=status_pixel)
# Set up a pin for controlling the relay
power_pin = DigitalInOut(board.D3)
@ -55,7 +61,7 @@ power_pin.switch_to_output()
### Feeds ###
# Set up a feed named Relay for subscribing to the relay feed on Adafruit IO
feed_relay = secrets["aio_username"] + "/feeds/relay"
feed_relay = os.getenv("AIO_USERNAME") + "/feeds/relay"
### Code ###
@ -101,13 +107,16 @@ print("Connecting to WiFi...")
wifi.connect()
print("Connected!")
MQTT.set_socket(socket, esp)
pool = adafruit_connection_manager.get_radio_socketpool(esp)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
# Set up a MiniMQTT Client
client = MQTT.MQTT(
broker="io.adafruit.com",
username=secrets["aio_username"],
password=secrets["aio_key"],
username=os.getenv("AIO_USERNAME"),
password=os.getenv("AIO_KEY"),
socket_pool=pool,
ssl_context=ssl_context,
)
# Setup the callback methods above

View file

@ -2,18 +2,34 @@
#
# SPDX-License-Identifier: MIT
from os import getenv
import time
import board
import busio
from digitalio import DigitalInOut
import neopixel
import adafruit_bh1750
import adafruit_connection_manager
from adafruit_esp32spi import adafruit_esp32spi
from adafruit_esp32spi import adafruit_esp32spi_wifimanager
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
import adafruit_minimqtt.adafruit_minimqtt as MQTT
# Get WiFi details and Adafruit IO keys, ensure these are setup in settings.toml
# (visit io.adafruit.com if you need to create an account, or if you need your Adafruit IO key.)
ssid = getenv("CIRCUITPY_WIFI_SSID")
password = getenv("CIRCUITPY_WIFI_PASSWORD")
aio_username = getenv("ADAFRUIT_AIO_USERNAME")
aio_key = getenv("ADAFRUIT_AIO_KEY")
if None in [ssid, password, aio_username, aio_key]:
raise RuntimeError(
"WiFi and Adafruit IO settings are kept in settings.toml, "
"please add them there. The settings file must contain "
"'CIRCUITPY_WIFI_SSID', 'CIRCUITPY_WIFI_PASSWORD', "
"'ADAFRUIT_AIO_USERNAME' and 'ADAFRUIT_AIO_KEY' at a minimum."
)
### Sensor Calibration ###
# Appliance power LED's light level, in Lux
APPLIANCE_ON_LUX = 30.0
@ -22,13 +38,6 @@ SENSOR_READ_TIME = 10.0
### WiFi ###
# Get wifi details and more from a secrets.py file
try:
from secrets import secrets
except ImportError:
print("WiFi secrets are kept in secrets.py, please add them there!")
raise
# If you are using a board with pre-defined ESP32 Pins:
esp32_cs = DigitalInOut(board.ESP_CS)
esp32_ready = DigitalInOut(board.ESP_BUSY)
@ -42,19 +51,19 @@ esp32_reset = DigitalInOut(board.ESP_RESET)
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)
"""Use below for Most Boards"""
status_light = neopixel.NeoPixel(
status_pixel = neopixel.NeoPixel(
board.NEOPIXEL, 1, brightness=0.2
) # Uncomment for Most Boards
"""Uncomment below for ItsyBitsy M4"""
# status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2)
# status_pixel = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2)
# Uncomment below for an externally defined RGB LED
# import adafruit_rgbled
# from adafruit_esp32spi import PWMOut
# RED_LED = PWMOut.PWMOut(esp, 26)
# GREEN_LED = PWMOut.PWMOut(esp, 27)
# BLUE_LED = PWMOut.PWMOut(esp, 25)
# status_light = adafruit_rgbled.RGBLED(RED_LED, BLUE_LED, GREEN_LED)
wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager(esp, secrets, status_light)
# status_pixel = adafruit_rgbled.RGBLED(RED_LED, BLUE_LED, GREEN_LED)
wifi = adafruit_esp32spi_wifimanager.WiFiManager(esp, ssid, password, status_pixel=status_pixel)
# Set up a pin for controlling the relay
power_pin = DigitalInOut(board.D3)
@ -67,10 +76,10 @@ sensor = adafruit_bh1750.BH1750(i2c)
### Feeds ###
# Set up a feed named Relay for subscribing to the relay feed on Adafruit IO
feed_relay = secrets["aio_username"] + "/feeds/relay"
feed_relay = f"{aio_username}/feeds/relay"
# Set up a feed named status for subscribing to the status feed on Adafruit IO
feed_status = secrets["aio_username"] + "/feeds/status"
feed_status = f"{aio_username}/feeds/status"
### Code ###
@ -116,13 +125,16 @@ print("Connecting to WiFi...")
wifi.connect()
print("Connected!")
MQTT.set_socket(socket, esp)
pool = adafruit_connection_manager.get_radio_socketpool(esp)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
# Set up a MiniMQTT Client
client = MQTT.MQTT(
broker="io.adafruit.com",
username=secrets["aio_username"],
password=secrets["aio_key"],
username=aio_username,
password=aio_key,
socket_pool=pool,
ssl_context=ssl_context,
)
# Setup the callback methods above

View file

@ -0,0 +1,27 @@
{
"exportVersion": "1.0.0",
"exportedBy": "tyeth_demo",
"exportedAt": "2025-05-02T17:08:03.857Z",
"exportedFromDevice": {
"board": "rpi-pico-w",
"firmwareVersion": "1.0.0-beta.100"
},
"components": [
{
"name": "Reed Switch",
"pinName": "D13",
"type": "reed_switch",
"mode": "DIGITAL",
"direction": "INPUT",
"period": 0,
"pull": "UP",
"isPin": true,
"visualization": {
"offLabel": "Open",
"offIcon": "fa6:solid:door-open",
"onLabel": "Closed",
"onIcon": "fa6:regular:door-closed"
}
}
]
}

View file

@ -2,25 +2,34 @@
#
# SPDX-License-Identifier: MIT
from os import getenv
import time
import board
import busio
from digitalio import DigitalInOut
import adafruit_connection_manager
from adafruit_esp32spi import adafruit_esp32spi
from adafruit_esp32spi import adafruit_esp32spi_wifimanager
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
import neopixel
import adafruit_minimqtt.adafruit_minimqtt as MQTT
from adafruit_io.adafruit_io import IO_MQTT
### WiFi ###
# Get WiFi details and Adafruit IO keys, ensure these are setup in settings.toml
# (visit io.adafruit.com if you need to create an account, or if you need your Adafruit IO key.)
ssid = getenv("CIRCUITPY_WIFI_SSID")
password = getenv("CIRCUITPY_WIFI_PASSWORD")
aio_username = getenv("ADAFRUIT_AIO_USERNAME")
aio_key = getenv("ADAFRUIT_AIO_KEY")
# Get wifi details and more from a secrets.py file
try:
from secrets import secrets
except ImportError:
print("WiFi secrets are kept in secrets.py, please add them there!")
raise
if None in [ssid, password, aio_username, aio_key]:
raise RuntimeError(
"WiFi and Adafruit IO settings are kept in settings.toml, "
"please add them there. The settings file must contain "
"'CIRCUITPY_WIFI_SSID', 'CIRCUITPY_WIFI_PASSWORD', "
"'ADAFRUIT_AIO_USERNAME' and 'ADAFRUIT_AIO_KEY' at a minimum."
)
### WiFi ###
# If you are using a board with pre-defined ESP32 Pins:
esp32_cs = DigitalInOut(board.ESP_CS)
@ -35,19 +44,19 @@ esp32_reset = DigitalInOut(board.ESP_RESET)
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)
"""Use below for Most Boards"""
status_light = neopixel.NeoPixel(
status_pixel = neopixel.NeoPixel(
board.NEOPIXEL, 1, brightness=0.2
) # Uncomment for Most Boards
"""Uncomment below for ItsyBitsy M4"""
# status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2)
# status_pixel = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2)
# Uncomment below for an externally defined RGB LED
# import adafruit_rgbled
# from adafruit_esp32spi import PWMOut
# RED_LED = PWMOut.PWMOut(esp, 26)
# GREEN_LED = PWMOut.PWMOut(esp, 27)
# BLUE_LED = PWMOut.PWMOut(esp, 25)
# status_light = adafruit_rgbled.RGBLED(RED_LED, BLUE_LED, GREEN_LED)
wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager(esp, secrets, status_light)
# status_pixel = adafruit_rgbled.RGBLED(RED_LED, BLUE_LED, GREEN_LED)
wifi = adafruit_esp32spi_wifimanager.WiFiManager(esp, ssid, password, status_pixel=status_pixel)
# Set up a pin for controlling the relay
power_pin = DigitalInOut(board.D3)
@ -89,11 +98,11 @@ def on_message(client, feed_id, payload):
def on_relay_msg(client, topic, message):
# Method called whenever user/feeds/relay has a new value
if message == "morning":
print("Morning - turning outlet ON")
if message == "1":
print("Received 1 - turning outlet ON")
power_pin.value = True
elif message == "night":
print("Night - turning outlet OFF")
elif message == "0":
print("Received 0 - turning outlet OFF")
power_pin.value = False
else:
print("Unexpected value received on relay feed.")
@ -104,14 +113,16 @@ print("Connecting to WiFi...")
wifi.connect()
print("Connected!")
# Initialize MQTT interface with the esp interface
MQTT.set_socket(socket, esp)
pool = adafruit_connection_manager.get_radio_socketpool(esp)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
# Initialize a new MQTT Client object
mqtt_client = MQTT.MQTT(
broker="io.adafruit.com",
username=secrets["aio_username"],
password=secrets["aio_key"],
username=aio_username,
password=aio_key,
socket_pool=pool,
ssl_context=ssl_context,
)
# Initialize an Adafruit IO MQTT Client

Some files were not shown because too many files have changed in this diff Show more