├── .gitattributes ├── 3D print ├── grid1-fixed.stl └── grid2-fixed.stl ├── Android ├── GyverString.aia └── GyverString.apk ├── LICENSE ├── README.md ├── firmware ├── GyverMatrixOS_v1.12 │ ├── GyverMatrixOS_v1.12.ino │ ├── Sprites │ │ └── 8x8 │ │ │ ├── Superheroes │ │ │ ├── Cut │ │ │ │ ├── tile000.png │ │ │ │ ├── tile001.png │ │ │ │ ├── tile002.png │ │ │ │ ├── tile003.png │ │ │ │ ├── tile004.png │ │ │ │ ├── tile005.png │ │ │ │ ├── tile006.png │ │ │ │ ├── tile007.png │ │ │ │ ├── tile008.png │ │ │ │ ├── tile009.png │ │ │ │ ├── tile010.png │ │ │ │ ├── tile011.png │ │ │ │ ├── tile012.png │ │ │ │ ├── tile013.png │ │ │ │ ├── tile014.png │ │ │ │ ├── tile015.png │ │ │ │ ├── tile016.png │ │ │ │ ├── tile017.png │ │ │ │ ├── tile018.png │ │ │ │ ├── tile019.png │ │ │ │ ├── tile020.png │ │ │ │ ├── tile021.png │ │ │ │ ├── tile022.png │ │ │ │ ├── tile023.png │ │ │ │ ├── tile024.png │ │ │ │ ├── tile025.png │ │ │ │ ├── tile026.png │ │ │ │ ├── tile027.png │ │ │ │ ├── tile028.png │ │ │ │ ├── tile029.png │ │ │ │ ├── tile030.png │ │ │ │ ├── tile031.png │ │ │ │ ├── tile032.png │ │ │ │ ├── tile033.png │ │ │ │ ├── tile034.png │ │ │ │ ├── tile035.png │ │ │ │ ├── tile036.png │ │ │ │ ├── tile037.png │ │ │ │ ├── tile038.png │ │ │ │ ├── tile039.png │ │ │ │ ├── tile040.png │ │ │ │ ├── tile041.png │ │ │ │ ├── tile042.png │ │ │ │ ├── tile043.png │ │ │ │ ├── tile044.png │ │ │ │ ├── tile045.png │ │ │ │ ├── tile046.png │ │ │ │ ├── tile047.png │ │ │ │ ├── tile048.png │ │ │ │ ├── tile049.png │ │ │ │ ├── tile050.png │ │ │ │ ├── tile051.png │ │ │ │ ├── tile052.png │ │ │ │ ├── tile053.png │ │ │ │ ├── tile054.png │ │ │ │ ├── tile055.png │ │ │ │ ├── tile056.png │ │ │ │ ├── tile057.png │ │ │ │ ├── tile058.png │ │ │ │ ├── tile059.png │ │ │ │ ├── tile060.png │ │ │ │ ├── tile061.png │ │ │ │ ├── tile062.png │ │ │ │ ├── tile063.png │ │ │ │ ├── tile064.png │ │ │ │ ├── tile065.png │ │ │ │ ├── tile066.png │ │ │ │ ├── tile067.png │ │ │ │ ├── tile068.png │ │ │ │ ├── tile069.png │ │ │ │ ├── tile070.png │ │ │ │ ├── tile071.png │ │ │ │ ├── tile072.png │ │ │ │ ├── tile073.png │ │ │ │ ├── tile074.png │ │ │ │ ├── tile075.png │ │ │ │ ├── tile076.png │ │ │ │ ├── tile077.png │ │ │ │ ├── tile078.png │ │ │ │ ├── tile079.png │ │ │ │ ├── tile080.png │ │ │ │ ├── tile081.png │ │ │ │ ├── tile082.png │ │ │ │ ├── tile083.png │ │ │ │ ├── tile084.png │ │ │ │ ├── tile085.png │ │ │ │ ├── tile086.png │ │ │ │ ├── tile087.png │ │ │ │ ├── tile088.png │ │ │ │ ├── tile089.png │ │ │ │ ├── tile090.png │ │ │ │ ├── tile091.png │ │ │ │ ├── tile092.png │ │ │ │ ├── tile093.png │ │ │ │ ├── tile094.png │ │ │ │ ├── tile095.png │ │ │ │ ├── tile096.png │ │ │ │ ├── tile097.png │ │ │ │ ├── tile098.png │ │ │ │ └── tile099.png │ │ │ ├── Superheroes.png │ │ │ └── superheroes.h │ │ │ └── VideogameCharacters │ │ │ ├── Cut │ │ │ ├── tile000.png │ │ │ ├── tile001.png │ │ │ ├── tile002.png │ │ │ ├── tile003.png │ │ │ ├── tile004.png │ │ │ ├── tile005.png │ │ │ ├── tile006.png │ │ │ ├── tile007.png │ │ │ ├── tile008.png │ │ │ ├── tile009.png │ │ │ ├── tile011.png │ │ │ ├── tile012.png │ │ │ ├── tile013.png │ │ │ ├── tile014.png │ │ │ ├── tile015.png │ │ │ ├── tile016.png │ │ │ ├── tile017.png │ │ │ ├── tile018.png │ │ │ ├── tile019.png │ │ │ ├── tile020.png │ │ │ ├── tile022.png │ │ │ ├── tile023.png │ │ │ ├── tile024.png │ │ │ ├── tile025.png │ │ │ ├── tile026.png │ │ │ ├── tile027.png │ │ │ ├── tile028.png │ │ │ ├── tile029.png │ │ │ ├── tile030.png │ │ │ ├── tile031.png │ │ │ ├── tile033.png │ │ │ ├── tile034.png │ │ │ ├── tile035.png │ │ │ ├── tile036.png │ │ │ ├── tile037.png │ │ │ ├── tile038.png │ │ │ ├── tile039.png │ │ │ ├── tile040.png │ │ │ ├── tile041.png │ │ │ ├── tile042.png │ │ │ ├── tile044.png │ │ │ ├── tile045.png │ │ │ ├── tile046.png │ │ │ ├── tile047.png │ │ │ ├── tile048.png │ │ │ ├── tile049.png │ │ │ ├── tile050.png │ │ │ ├── tile051.png │ │ │ ├── tile052.png │ │ │ ├── tile053.png │ │ │ ├── tile055.png │ │ │ ├── tile056.png │ │ │ ├── tile057.png │ │ │ ├── tile058.png │ │ │ ├── tile059.png │ │ │ ├── tile060.png │ │ │ ├── tile061.png │ │ │ ├── tile062.png │ │ │ ├── tile063.png │ │ │ ├── tile064.png │ │ │ ├── tile066.png │ │ │ ├── tile067.png │ │ │ ├── tile068.png │ │ │ ├── tile069.png │ │ │ ├── tile070.png │ │ │ ├── tile071.png │ │ │ ├── tile072.png │ │ │ ├── tile073.png │ │ │ ├── tile074.png │ │ │ ├── tile075.png │ │ │ ├── tile077.png │ │ │ ├── tile078.png │ │ │ ├── tile079.png │ │ │ ├── tile080.png │ │ │ ├── tile081.png │ │ │ ├── tile082.png │ │ │ ├── tile083.png │ │ │ ├── tile084.png │ │ │ ├── tile085.png │ │ │ ├── tile086.png │ │ │ ├── tile088.png │ │ │ ├── tile089.png │ │ │ ├── tile090.png │ │ │ ├── tile091.png │ │ │ ├── tile092.png │ │ │ ├── tile093.png │ │ │ ├── tile094.png │ │ │ ├── tile095.png │ │ │ ├── tile096.png │ │ │ ├── tile097.png │ │ │ ├── tile099.png │ │ │ ├── tile100.png │ │ │ ├── tile101.png │ │ │ ├── tile102.png │ │ │ ├── tile103.png │ │ │ ├── tile104.png │ │ │ ├── tile105.png │ │ │ ├── tile106.png │ │ │ ├── tile107.png │ │ │ └── tile108.png │ │ │ ├── VideogameCharacters.png │ │ │ └── vgChars.h │ ├── bitmap2.h │ ├── bluetooth.ino │ ├── buttonMinim.h │ ├── buttons.ino │ ├── clock.ino │ ├── custom.ino │ ├── effects.ino │ ├── fonts.h │ ├── g_arkanoid.ino │ ├── g_flappy.ino │ ├── g_maze.ino │ ├── g_runner.ino │ ├── g_snake.ino │ ├── g_tetris.ino │ ├── noise_effects.ino │ ├── runningText.ino │ ├── timerMinim.h │ └── utility.ino ├── GyverStringDotmatrix_v1.3 │ ├── GyverStringDotmatrix_v1.3.ino │ ├── bluetooth.ino │ ├── eeprom.ino │ ├── fonts.h │ ├── runningText.ino │ └── timerMinim.h ├── GyverStringOffline_v1.3 │ ├── GyverStringOffline_v1.3.ino │ ├── fonts.h │ ├── microLED.h │ ├── runningText.ino │ ├── timerMinim.h │ ├── utility.ino │ └── ws2812_send.h ├── GyverString_v1.2 │ ├── GyverString_v1.2.ino │ ├── bluetooth.ino │ ├── eeprom.ino │ ├── fonts.h │ ├── microLED.h │ ├── runningText.ino │ ├── timerMinim.h │ ├── utility.ino │ └── ws2812_send.h └── старые │ ├── GyverString │ ├── GyverString.ino │ ├── bluetooth.ino │ ├── eeprom.ino │ ├── fonts.h │ ├── runningText.ino │ ├── timerMinim.h │ └── utility.ino │ ├── GyverStringOffline │ ├── GyverStringOffline.ino │ ├── fonts.h │ ├── runningText.ino │ ├── timerMinim.h │ └── utility.ino │ ├── GyverStringOffline_v1.1 │ ├── GyverStringOffline_v1.1.ino │ ├── fonts.h │ ├── microLED.h │ ├── runningText.ino │ ├── timerMinim.h │ └── utility.ino │ ├── GyverStringOffline_v1.2 │ ├── GyverStringOffline_v1.2.ino │ ├── fonts.h │ ├── microLED.h │ ├── runningText.ino │ ├── timerMinim.h │ ├── utility.ino │ └── ws2812_send.h │ └── GyverString_v1.1 │ ├── GyverString_v1.1.ino │ ├── bluetooth.ino │ ├── eeprom.ino │ ├── fonts.h │ ├── microLED.h │ ├── runningText.ino │ ├── timerMinim.h │ └── utility.ino ├── libraries ├── Adafruit-GFX-Library │ ├── .gitignore │ ├── Adafruit_GFX.cpp │ ├── Adafruit_GFX.h │ ├── Adafruit_SPITFT.cpp │ ├── Adafruit_SPITFT.h │ ├── Adafruit_SPITFT_Macros.h │ ├── Fonts │ │ ├── FreeMono12pt7b.h │ │ ├── FreeMono18pt7b.h │ │ ├── FreeMono24pt7b.h │ │ ├── FreeMono9pt7b.h │ │ ├── FreeMonoBold12pt7b.h │ │ ├── FreeMonoBold18pt7b.h │ │ ├── FreeMonoBold24pt7b.h │ │ ├── FreeMonoBold9pt7b.h │ │ ├── FreeMonoBoldOblique12pt7b.h │ │ ├── FreeMonoBoldOblique18pt7b.h │ │ ├── FreeMonoBoldOblique24pt7b.h │ │ ├── FreeMonoBoldOblique9pt7b.h │ │ ├── FreeMonoOblique12pt7b.h │ │ ├── FreeMonoOblique18pt7b.h │ │ ├── FreeMonoOblique24pt7b.h │ │ ├── FreeMonoOblique9pt7b.h │ │ ├── FreeSans12pt7b.h │ │ ├── FreeSans18pt7b.h │ │ ├── FreeSans24pt7b.h │ │ ├── FreeSans9pt7b.h │ │ ├── FreeSansBold12pt7b.h │ │ ├── FreeSansBold18pt7b.h │ │ ├── FreeSansBold24pt7b.h │ │ ├── FreeSansBold9pt7b.h │ │ ├── FreeSansBoldOblique12pt7b.h │ │ ├── FreeSansBoldOblique18pt7b.h │ │ ├── FreeSansBoldOblique24pt7b.h │ │ ├── FreeSansBoldOblique9pt7b.h │ │ ├── FreeSansOblique12pt7b.h │ │ ├── FreeSansOblique18pt7b.h │ │ ├── FreeSansOblique24pt7b.h │ │ ├── FreeSansOblique9pt7b.h │ │ ├── FreeSerif12pt7b.h │ │ ├── FreeSerif18pt7b.h │ │ ├── FreeSerif24pt7b.h │ │ ├── FreeSerif9pt7b.h │ │ ├── FreeSerifBold12pt7b.h │ │ ├── FreeSerifBold18pt7b.h │ │ ├── FreeSerifBold24pt7b.h │ │ ├── FreeSerifBold9pt7b.h │ │ ├── FreeSerifBoldItalic12pt7b.h │ │ ├── FreeSerifBoldItalic18pt7b.h │ │ ├── FreeSerifBoldItalic24pt7b.h │ │ ├── FreeSerifBoldItalic9pt7b.h │ │ ├── FreeSerifItalic12pt7b.h │ │ ├── FreeSerifItalic18pt7b.h │ │ ├── FreeSerifItalic24pt7b.h │ │ ├── FreeSerifItalic9pt7b.h │ │ ├── Org_01.h │ │ ├── Picopixel.h │ │ ├── Tiny3x3a2pt7b │ │ └── TomThumb.h │ ├── Img2Code │ │ ├── .gitignore │ │ ├── README.md │ │ ├── build.gradle │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── settings.gradle │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── Image2Code.java │ │ │ └── resources │ │ │ └── Adafruit.png │ ├── README.md │ ├── fontconvert │ │ ├── Makefile │ │ ├── fontconvert.c │ │ ├── fontconvert_win.md │ │ └── makefonts.sh │ ├── gfxfont.h │ ├── glcdfont.c │ ├── library.properties │ └── license.txt ├── FastLED-3.2.9 │ ├── FastLED.cpp │ ├── FastLED.h │ ├── LICENSE │ ├── PORTING.md │ ├── README.md │ ├── bitswap.cpp │ ├── bitswap.h │ ├── chipsets.h │ ├── color.h │ ├── colorpalettes.cpp │ ├── colorpalettes.h │ ├── colorutils.cpp │ ├── colorutils.h │ ├── component.mk │ ├── controller.h │ ├── cpp_compat.h │ ├── dmx.h │ ├── docs │ │ ├── Doxyfile │ │ └── mainpage.dox │ ├── examples │ │ ├── AnalogOutput │ │ │ └── AnalogOutput.ino │ │ ├── Blink │ │ │ └── Blink.ino │ │ ├── ColorPalette │ │ │ └── ColorPalette.ino │ │ ├── ColorTemperature │ │ │ └── ColorTemperature.ino │ │ ├── Cylon │ │ │ └── Cylon.ino │ │ ├── DemoReel100 │ │ │ └── DemoReel100.ino │ │ ├── Fire2012 │ │ │ └── Fire2012.ino │ │ ├── Fire2012WithPalette │ │ │ └── Fire2012WithPalette.ino │ │ ├── FirstLight │ │ │ └── FirstLight.ino │ │ ├── Multiple │ │ │ ├── ArrayOfLedArrays │ │ │ │ └── ArrayOfLedArrays.ino │ │ │ ├── MirroringSample │ │ │ │ └── MirroringSample.ino │ │ │ ├── MultiArrays │ │ │ │ └── MultiArrays.ino │ │ │ ├── MultipleStripsInOneArray │ │ │ │ └── MultipleStripsInOneArray.ino │ │ │ ├── OctoWS2811Demo │ │ │ │ └── OctoWS2811Demo.ino │ │ │ └── ParallelOutputDemo │ │ │ │ └── ParallelOutputDemo.ino │ │ ├── Noise │ │ │ └── Noise.ino │ │ ├── NoisePlayground │ │ │ └── NoisePlayground.ino │ │ ├── NoisePlusPalette │ │ │ └── NoisePlusPalette.ino │ │ ├── Pintest │ │ │ └── Pintest.ino │ │ ├── Ports │ │ │ └── PJRCSpectrumAnalyzer │ │ │ │ └── PJRCSpectrumAnalyzer.ino │ │ ├── RGBCalibrate │ │ │ └── RGBCalibrate.ino │ │ ├── RGBSetDemo │ │ │ └── RGBSetDemo.ino │ │ ├── SmartMatrix │ │ │ └── SmartMatrix.ino │ │ └── XYMatrix │ │ │ └── XYMatrix.ino │ ├── extras │ │ ├── AppleII.s65 │ │ ├── FastLED6502.s65 │ │ ├── RainbowDemo.bin.zip │ │ └── RainbowDemo.s65 │ ├── fastled_config.h │ ├── fastled_delay.h │ ├── fastled_progmem.h │ ├── fastpin.h │ ├── fastspi.h │ ├── fastspi_bitbang.h │ ├── fastspi_dma.h │ ├── fastspi_nop.h │ ├── fastspi_ref.h │ ├── fastspi_types.h │ ├── hsv2rgb.cpp │ ├── hsv2rgb.h │ ├── keywords.txt │ ├── led_sysdefs.h │ ├── lib8tion.cpp │ ├── lib8tion.h │ ├── lib8tion │ │ ├── math8.h │ │ ├── random8.h │ │ ├── scale8.h │ │ └── trig8.h │ ├── library.json │ ├── library.properties │ ├── noise.cpp │ ├── noise.h │ ├── pixelset.h │ ├── pixeltypes.h │ ├── platforms.cpp │ ├── platforms.h │ ├── platforms │ │ ├── arm │ │ │ ├── common │ │ │ │ └── m0clockless.h │ │ │ ├── d21 │ │ │ │ ├── clockless_arm_d21.h │ │ │ │ ├── fastled_arm_d21.h │ │ │ │ ├── fastpin_arm_d21.h │ │ │ │ └── led_sysdefs_arm_d21.h │ │ │ ├── d51 │ │ │ │ ├── README.txt │ │ │ │ ├── clockless_arm_d51.h │ │ │ │ ├── fastled_arm_d51.h │ │ │ │ ├── fastpin_arm_d51.h │ │ │ │ └── led_sysdefs_arm_d51.h │ │ │ ├── k20 │ │ │ │ ├── clockless_arm_k20.h │ │ │ │ ├── clockless_block_arm_k20.h │ │ │ │ ├── fastled_arm_k20.h │ │ │ │ ├── fastpin_arm_k20.h │ │ │ │ ├── fastspi_arm_k20.h │ │ │ │ ├── led_sysdefs_arm_k20.h │ │ │ │ ├── octows2811_controller.h │ │ │ │ ├── smartmatrix_t3.h │ │ │ │ └── ws2812serial_controller.h │ │ │ ├── k66 │ │ │ │ ├── clockless_arm_k66.h │ │ │ │ ├── clockless_block_arm_k66.h │ │ │ │ ├── fastled_arm_k66.h │ │ │ │ ├── fastpin_arm_k66.h │ │ │ │ ├── fastspi_arm_k66.h │ │ │ │ └── led_sysdefs_arm_k66.h │ │ │ ├── kl26 │ │ │ │ ├── clockless_arm_kl26.h │ │ │ │ ├── fastled_arm_kl26.h │ │ │ │ ├── fastpin_arm_kl26.h │ │ │ │ ├── fastspi_arm_kl26.h │ │ │ │ └── led_sysdefs_arm_kl26.h │ │ │ ├── nrf51 │ │ │ │ ├── clockless_arm_nrf51.h │ │ │ │ ├── fastled_arm_nrf51.h │ │ │ │ ├── fastpin_arm_nrf51.h │ │ │ │ ├── fastspi_arm_nrf51.h │ │ │ │ └── led_sysdefs_arm_nrf51.h │ │ │ ├── nrf52 │ │ │ │ ├── arbiter_nrf52.h │ │ │ │ ├── clockless_arm_nrf52.h │ │ │ │ ├── fastled_arm_nrf52.h │ │ │ │ ├── fastpin_arm_nrf52.h │ │ │ │ ├── fastpin_arm_nrf52_variants.h │ │ │ │ ├── fastspi_arm_nrf52.h │ │ │ │ └── led_sysdefs_arm_nrf52.h │ │ │ ├── sam │ │ │ │ ├── clockless_arm_sam.h │ │ │ │ ├── clockless_block_arm_sam.h │ │ │ │ ├── fastled_arm_sam.h │ │ │ │ ├── fastpin_arm_sam.h │ │ │ │ ├── fastspi_arm_sam.h │ │ │ │ └── led_sysdefs_arm_sam.h │ │ │ └── stm32 │ │ │ │ ├── clockless_arm_stm32.h │ │ │ │ ├── cm3_regs.h │ │ │ │ ├── fastled_arm_stm32.h │ │ │ │ ├── fastpin_arm_stm32.h │ │ │ │ └── led_sysdefs_arm_stm32.h │ │ ├── avr │ │ │ ├── clockless_trinket.h │ │ │ ├── fastled_avr.h │ │ │ ├── fastpin_avr.h │ │ │ ├── fastspi_avr.h │ │ │ └── led_sysdefs_avr.h │ │ └── esp │ │ │ ├── 32 │ │ │ ├── clockless_block_esp32.h │ │ │ ├── clockless_esp32.h.orig │ │ │ ├── clockless_i2s_esp32.h │ │ │ ├── clockless_rmt_esp32.h │ │ │ ├── fastled_esp32.h │ │ │ ├── fastpin_esp32.h │ │ │ └── led_sysdefs_esp32.h │ │ │ └── 8266 │ │ │ ├── clockless_block_esp8266.h │ │ │ ├── clockless_esp8266.h │ │ │ ├── fastled_esp8266.h │ │ │ ├── fastpin_esp8266.h │ │ │ └── led_sysdefs_esp8266.h │ ├── power_mgt.cpp │ ├── power_mgt.h │ ├── preview_changes.txt │ ├── release_notes.md │ └── wiring.cpp ├── RTClib │ ├── README.md │ ├── RTClib.cpp │ ├── RTClib.h │ ├── examples │ │ ├── datecalc │ │ │ └── datecalc.ino │ │ ├── ds1307 │ │ │ └── ds1307.ino │ │ ├── ds1307SqwPin │ │ │ └── ds1307SqwPin.ino │ │ ├── ds1307nvram │ │ │ └── ds1307nvram.ino │ │ ├── ds3231 │ │ │ └── ds3231.ino │ │ ├── pcf8523 │ │ │ └── pcf8523.ino │ │ └── softrtc │ │ │ └── softrtc.ino │ ├── keywords.txt │ └── library.properties └── arduino-Max72xxPanel │ ├── Max72xxPanel.cpp │ ├── Max72xxPanel.h │ ├── README.md │ ├── README.pdf │ ├── examples │ ├── MadFly │ │ └── MadFly.pde │ ├── Snake │ │ └── Snake.pde │ ├── Spin │ │ └── Spin.pde │ └── Ticker │ │ └── Ticker.pde │ ├── keywords.txt │ └── license.txt ├── proj_img.jpg └── schemes ├── scheme0.jpg ├── scheme1.jpg └── scheme2.jpg /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /3D print/grid1-fixed.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/3D print/grid1-fixed.stl -------------------------------------------------------------------------------- /3D print/grid2-fixed.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/3D print/grid2-fixed.stl -------------------------------------------------------------------------------- /Android/GyverString.aia: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/Android/GyverString.aia -------------------------------------------------------------------------------- /Android/GyverString.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/Android/GyverString.apk -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 AlexGyver 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile000.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile001.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile002.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile003.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile004.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile005.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile006.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile007.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile008.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile009.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile010.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile011.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile011.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile012.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile013.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile013.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile014.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile014.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile015.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile016.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile016.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile017.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile017.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile018.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile018.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile019.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile019.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile020.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile021.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile021.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile022.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile022.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile023.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile023.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile024.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile025.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile025.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile026.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile026.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile027.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile027.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile028.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile028.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile029.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile029.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile030.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile030.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile031.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile031.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile032.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile032.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile033.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile033.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile034.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile034.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile035.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile035.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile036.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile036.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile037.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile037.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile038.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile038.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile039.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile039.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile040.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile040.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile041.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile041.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile042.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile042.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile043.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile043.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile044.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile044.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile045.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile045.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile046.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile046.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile047.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile047.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile048.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile048.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile049.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile049.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile050.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile050.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile051.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile051.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile052.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile052.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile053.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile053.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile054.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile054.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile055.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile055.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile056.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile056.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile057.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile057.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile058.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile058.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile059.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile059.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile060.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile060.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile061.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile061.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile062.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile062.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile063.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile063.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile064.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile064.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile065.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile065.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile066.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile066.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile067.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile067.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile068.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile068.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile069.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile069.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile070.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile070.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile071.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile071.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile072.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile072.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile073.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile073.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile074.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile074.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile075.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile075.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile076.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile076.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile077.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile077.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile078.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile078.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile079.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile079.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile080.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile080.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile081.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile081.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile082.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile082.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile083.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile083.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile084.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile084.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile085.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile085.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile086.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile086.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile087.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile087.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile088.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile088.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile089.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile089.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile090.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile090.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile091.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile091.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile092.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile092.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile093.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile093.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile094.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile094.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile095.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile095.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile096.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile096.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile097.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile097.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile098.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile098.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile099.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Cut/tile099.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Superheroes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/Superheroes/Superheroes.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile000.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile001.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile002.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile003.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile004.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile005.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile006.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile007.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile008.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile009.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile011.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile011.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile012.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile013.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile013.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile014.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile014.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile015.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile016.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile016.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile017.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile017.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile018.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile018.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile019.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile019.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile020.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile022.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile022.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile023.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile023.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile024.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile025.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile025.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile026.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile026.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile027.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile027.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile028.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile028.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile029.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile029.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile030.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile030.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile031.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile031.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile033.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile033.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile034.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile034.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile035.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile035.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile036.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile036.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile037.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile037.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile038.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile038.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile039.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile039.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile040.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile040.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile041.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile041.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile042.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile042.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile044.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile044.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile045.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile045.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile046.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile046.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile047.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile047.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile048.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile048.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile049.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile049.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile050.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile050.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile051.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile051.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile052.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile052.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile053.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile053.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile055.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile055.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile056.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile056.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile057.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile057.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile058.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile058.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile059.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile059.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile060.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile060.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile061.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile061.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile062.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile062.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile063.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile063.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile064.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile064.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile066.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile066.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile067.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile067.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile068.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile068.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile069.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile069.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile070.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile070.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile071.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile071.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile072.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile072.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile073.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile073.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile074.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile074.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile075.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile075.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile077.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile077.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile078.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile078.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile079.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile079.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile080.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile080.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile081.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile081.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile082.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile082.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile083.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile083.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile084.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile084.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile085.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile085.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile086.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile086.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile088.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile088.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile089.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile089.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile090.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile090.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile091.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile091.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile092.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile092.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile093.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile093.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile094.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile094.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile095.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile095.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile096.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile096.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile097.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile097.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile099.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile099.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile100.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile101.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile102.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile102.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile103.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile103.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile104.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile104.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile105.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile105.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile106.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile106.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile107.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile107.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/Cut/tile108.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/VideogameCharacters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/firmware/GyverMatrixOS_v1.12/Sprites/8x8/VideogameCharacters/VideogameCharacters.png -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/buttonMinim.h: -------------------------------------------------------------------------------- 1 | #pragma pack(push,1) 2 | typedef struct { 3 | bool holdedFlag: 1; 4 | bool btnFlag: 1; 5 | bool pressF: 1; 6 | bool clickF: 1; 7 | bool holdF: 1; 8 | } buttonMinimFlags; 9 | #pragma pack(pop) 10 | 11 | class buttonMinim { 12 | public: 13 | buttonMinim(uint8_t pin, boolean type); // type true - pullDOWN, false - input pullUP 14 | boolean pressed(); 15 | boolean clicked(); 16 | boolean holding(); 17 | boolean holded(); 18 | private: 19 | buttonMinimFlags flags; 20 | void tick(); 21 | uint32_t _btnTimer; 22 | byte _pin; 23 | boolean _type; 24 | }; 25 | 26 | buttonMinim::buttonMinim(uint8_t pin, boolean type) { 27 | _pin = pin; 28 | _type = type; 29 | if (!_type) pinMode(_pin, INPUT_PULLUP); 30 | else pinMode(_pin, INPUT); 31 | } 32 | 33 | void buttonMinim::tick() { 34 | boolean btnState = digitalRead(_pin) ^ _type; 35 | 36 | if (!btnState && !flags.btnFlag && ((uint32_t)millis() - _btnTimer > 90)) { 37 | flags.btnFlag = true; 38 | _btnTimer = millis(); 39 | flags.pressF = true; 40 | flags.holdedFlag = true; 41 | } 42 | if (btnState && flags.btnFlag && ((uint32_t)millis() - _btnTimer < 350)) { 43 | flags.btnFlag = false; 44 | _btnTimer = millis(); 45 | flags.clickF = true; 46 | flags.holdF = false; 47 | } 48 | if (flags.btnFlag && ((uint32_t)millis() - _btnTimer > 600)) { 49 | if (!btnState) { 50 | flags.holdF = true; 51 | } else { 52 | flags.btnFlag = false; 53 | flags.holdF = false; 54 | _btnTimer = millis(); 55 | } 56 | } 57 | } 58 | 59 | boolean buttonMinim::pressed() { 60 | buttonMinim::tick(); 61 | if (flags.pressF) { 62 | flags.pressF = false; 63 | return true; 64 | } 65 | else return false; 66 | } 67 | 68 | boolean buttonMinim::clicked() { 69 | buttonMinim::tick(); 70 | if (flags.clickF) { 71 | flags.clickF = false; 72 | return true; 73 | } 74 | else return false; 75 | } 76 | 77 | boolean buttonMinim::holding() { 78 | buttonMinim::tick(); 79 | if (flags.holdF) { 80 | return true; 81 | } 82 | else return false; 83 | } 84 | 85 | boolean buttonMinim::holded() { 86 | buttonMinim::tick(); 87 | if (flags.holdF && flags.holdedFlag) { 88 | flags.holdedFlag = false; 89 | return true; 90 | } 91 | else return false; 92 | } 93 | -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/buttons.ino: -------------------------------------------------------------------------------- 1 | 2 | #if (USE_BUTTONS == 1) 3 | #include "buttonMinim.h" 4 | 5 | buttonMinim bt_left(BUTT_LEFT, false); 6 | buttonMinim bt_right(BUTT_RIGHT, false); 7 | buttonMinim bt_up(BUTT_UP, false); 8 | buttonMinim bt_down(BUTT_DOWN, false); 9 | 10 | #if (MCU_TYPE == 1) // у esp8266 пин 8 подтянут к земле 11 | buttonMinim bt_set(BUTT_SET, true); 12 | #else 13 | buttonMinim bt_set(BUTT_SET, false); 14 | #endif 15 | 16 | 17 | timerMinim stepTimer(100); 18 | #endif 19 | 20 | boolean checkButtons() { 21 | #if (USE_BUTTONS == 1) 22 | if (!gameDemo) { 23 | if (bt_left.pressed()) { 24 | buttons = 3; 25 | controlFlag = true; 26 | } 27 | if (bt_right.pressed()) { 28 | buttons = 1; 29 | controlFlag = true; 30 | } 31 | if (bt_up.pressed()) { 32 | buttons = 0; 33 | controlFlag = true; 34 | } 35 | if (bt_down.pressed()) { 36 | if (stepTimer.isReady()) 37 | buttons = 2; 38 | } 39 | 40 | if (bt_left.holding()) { 41 | if (stepTimer.isReady()) 42 | buttons = 3; 43 | } 44 | if (bt_right.holding()) { 45 | if (stepTimer.isReady()) 46 | buttons = 1; 47 | } 48 | if (bt_up.holding()) { 49 | if (stepTimer.isReady()) 50 | buttons = 0; 51 | } 52 | if (bt_down.holding()) { 53 | if (stepTimer.isReady()) 54 | buttons = 2; 55 | } 56 | } 57 | #endif 58 | 59 | // если нажали кнопку, возврат к обычному режиму 60 | if (controlFlag) { 61 | idleTimer.reset(); 62 | controlFlag = false; 63 | idleState = false; 64 | gameDemo = false; 65 | return true; 66 | } 67 | 68 | if (buttons != 4) return true; 69 | return false; 70 | } 71 | -------------------------------------------------------------------------------- /firmware/GyverMatrixOS_v1.12/timerMinim.h: -------------------------------------------------------------------------------- 1 | class timerMinim 2 | { 3 | public: 4 | timerMinim(uint32_t interval); // объявление таймера с указанием интервала 5 | void setInterval(uint32_t interval); // установка интервала работы таймера 6 | boolean isReady(); // возвращает true, когда пришло время. Сбрасывается в false сам (AUTO) или вручную (MANUAL) 7 | void reset(); // ручной сброс таймера на установленный интервал 8 | 9 | private: 10 | uint32_t _timer = 0; 11 | uint32_t _interval = 0; 12 | }; 13 | 14 | timerMinim::timerMinim(uint32_t interval) { 15 | _interval = interval; 16 | _timer = millis(); 17 | } 18 | 19 | void timerMinim::setInterval(uint32_t interval) { 20 | _interval = interval; 21 | } 22 | 23 | boolean timerMinim::isReady() { 24 | if ((long)millis() - _timer >= _interval) { 25 | _timer = millis(); 26 | return true; 27 | } else { 28 | return false; 29 | } 30 | } 31 | 32 | void timerMinim::reset() { 33 | _timer = millis(); 34 | } 35 | -------------------------------------------------------------------------------- /firmware/GyverStringDotmatrix_v1.3/eeprom.ino: -------------------------------------------------------------------------------- 1 | // --------------- РАБОТА С EEPROM -------------- 2 | // EEPROM MAP 3 | // 0 - скорость 4 | // 1 - яркость 5 | // 2 - режим 6 | // 3 - цвет 7 | // 4 - длина строки 8 | // 10-300 - строка 9 | 10 | 11 | void eeprom_update_byte(int addr, byte value) { 12 | byte buf = eeprom_read_byte((uint8_t*)addr); 13 | if (value != buf) eeprom_write_byte((uint8_t*)addr, value); 14 | } 15 | 16 | void updateSettings() { 17 | eepromFlag = true; // ставим галочку, что данные изменились 18 | eepromTimer.reset(); 19 | } 20 | 21 | void eepromTick() { 22 | eepromFlag = false; 23 | eeprom_update_byte(0, thisSpeed); 24 | eeprom_update_byte(1, thisBright); 25 | eeprom_update_byte(2, thisMode); 26 | eeprom_update_byte(3, thisColor); 27 | eeprom_update_byte(4, thisLength); 28 | 29 | for (byte i = 10; i < thisLength + 10; i++) { 30 | eeprom_update_byte(i, runningText[i - 10]); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /firmware/GyverStringDotmatrix_v1.3/timerMinim.h: -------------------------------------------------------------------------------- 1 | // мини-класс таймера, версия 1.0 2 | 3 | class timerMinim 4 | { 5 | public: 6 | timerMinim(uint32_t interval); // объявление таймера с указанием интервала 7 | void setInterval(uint32_t interval); // установка интервала работы таймера 8 | boolean isReady(); // возвращает true, когда пришло время. Сбрасывается в false сам (AUTO) или вручную (MANUAL) 9 | void reset(); // ручной сброс таймера на установленный интервал 10 | 11 | private: 12 | uint32_t _timer = 0; 13 | uint32_t _interval = 0; 14 | }; 15 | 16 | timerMinim::timerMinim(uint32_t interval) { 17 | _interval = interval; 18 | _timer = millis(); 19 | } 20 | 21 | void timerMinim::setInterval(uint32_t interval) { 22 | _interval = interval; 23 | } 24 | 25 | boolean timerMinim::isReady() { 26 | if ((long)millis() - _timer >= _interval) { 27 | _timer = millis(); 28 | return true; 29 | } else { 30 | return false; 31 | } 32 | } 33 | 34 | void timerMinim::reset() { 35 | _timer = millis(); 36 | } 37 | -------------------------------------------------------------------------------- /firmware/GyverStringOffline_v1.3/timerMinim.h: -------------------------------------------------------------------------------- 1 | // мини-класс таймера, версия 1.0 2 | 3 | class timerMinim 4 | { 5 | public: 6 | timerMinim(uint32_t interval); // объявление таймера с указанием интервала 7 | void setInterval(uint32_t interval); // установка интервала работы таймера 8 | boolean isReady(); // возвращает true, когда пришло время. Сбрасывается в false сам (AUTO) или вручную (MANUAL) 9 | void reset(); // ручной сброс таймера на установленный интервал 10 | 11 | private: 12 | uint32_t _timer = 0; 13 | uint32_t _interval = 0; 14 | }; 15 | 16 | timerMinim::timerMinim(uint32_t interval) { 17 | _interval = interval; 18 | _timer = millis(); 19 | } 20 | 21 | void timerMinim::setInterval(uint32_t interval) { 22 | _interval = interval; 23 | } 24 | 25 | boolean timerMinim::isReady() { 26 | if ((long)millis() - _timer >= _interval) { 27 | _timer = millis(); 28 | return true; 29 | } else { 30 | return false; 31 | } 32 | } 33 | 34 | void timerMinim::reset() { 35 | _timer = millis(); 36 | } 37 | -------------------------------------------------------------------------------- /firmware/GyverStringOffline_v1.3/utility.ino: -------------------------------------------------------------------------------- 1 | // служебные функции 2 | 3 | // функция отрисовки точки по координатам X Y 4 | void drawPixelXY(int x, int y, uint32_t color) { 5 | //if (x < 0 || x > WIDTH - 1 || y < 0 || y > HEIGHT - 1) return; 6 | leds[getPixelNumber(x, y)] = mHEX(color); 7 | } 8 | 9 | // **************** НАСТРОЙКА МАТРИЦЫ **************** 10 | #if (CONNECTION_ANGLE == 0 && STRIP_DIRECTION == 0) 11 | #define _WIDTH WIDTH 12 | #define THIS_X x 13 | #define THIS_Y y 14 | 15 | #elif (CONNECTION_ANGLE == 0 && STRIP_DIRECTION == 1) 16 | #define _WIDTH HEIGHT 17 | #define THIS_X y 18 | #define THIS_Y x 19 | 20 | #elif (CONNECTION_ANGLE == 1 && STRIP_DIRECTION == 0) 21 | #define _WIDTH WIDTH 22 | #define THIS_X x 23 | #define THIS_Y (HEIGHT - y - 1) 24 | 25 | #elif (CONNECTION_ANGLE == 1 && STRIP_DIRECTION == 3) 26 | #define _WIDTH HEIGHT 27 | #define THIS_X (HEIGHT - y - 1) 28 | #define THIS_Y x 29 | 30 | #elif (CONNECTION_ANGLE == 2 && STRIP_DIRECTION == 2) 31 | #define _WIDTH WIDTH 32 | #define THIS_X (WIDTH - x - 1) 33 | #define THIS_Y (HEIGHT - y - 1) 34 | 35 | #elif (CONNECTION_ANGLE == 2 && STRIP_DIRECTION == 3) 36 | #define _WIDTH HEIGHT 37 | #define THIS_X (HEIGHT - y - 1) 38 | #define THIS_Y (WIDTH - x - 1) 39 | 40 | #elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 2) 41 | #define _WIDTH WIDTH 42 | #define THIS_X (WIDTH - x - 1) 43 | #define THIS_Y y 44 | 45 | #elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 1) 46 | #define _WIDTH HEIGHT 47 | #define THIS_X y 48 | #define THIS_Y (WIDTH - x - 1) 49 | 50 | #else 51 | #define _WIDTH WIDTH 52 | #define THIS_X x 53 | #define THIS_Y y 54 | #pragma message "Wrong matrix parameters! Set to default" 55 | 56 | #endif 57 | 58 | // получить номер пикселя в ленте по координатам 59 | uint16_t getPixelNumber(int x, int y) { 60 | if ((THIS_Y % 2 == 0) || MATRIX_TYPE) { // если чётная строка 61 | return (THIS_Y * _WIDTH + THIS_X); 62 | } else { // если нечётная строка 63 | return (THIS_Y * _WIDTH + _WIDTH - THIS_X - 1); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /firmware/GyverString_v1.2/eeprom.ino: -------------------------------------------------------------------------------- 1 | // --------------- РАБОТА С EEPROM -------------- 2 | // EEPROM MAP 3 | // 0 - скорость 4 | // 1 - яркость 5 | // 2 - режим 6 | // 3 - цвет 7 | // 4 - длина строки 8 | // 10-300 - строка 9 | 10 | 11 | void eeprom_update_byte(int addr, byte value) { 12 | byte buf = eeprom_read_byte((uint8_t*)addr); 13 | if (value != buf) eeprom_write_byte((uint8_t*)addr, value); 14 | } 15 | 16 | void updateSettings() { 17 | eepromFlag = true; // ставим галочку, что данные изменились 18 | eepromTimer.reset(); 19 | } 20 | 21 | void eepromTick() { 22 | eepromFlag = false; 23 | eeprom_update_byte(0, thisSpeed); 24 | eeprom_update_byte(1, thisBright); 25 | eeprom_update_byte(2, thisMode); 26 | eeprom_update_byte(3, thisColor); 27 | eeprom_update_byte(4, thisLength); 28 | 29 | for (byte i = 10; i < thisLength + 10; i++) { 30 | eeprom_update_byte(i, runningText[i - 10]); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /firmware/GyverString_v1.2/timerMinim.h: -------------------------------------------------------------------------------- 1 | // мини-класс таймера, версия 1.0 2 | 3 | class timerMinim 4 | { 5 | public: 6 | timerMinim(uint32_t interval); // объявление таймера с указанием интервала 7 | void setInterval(uint32_t interval); // установка интервала работы таймера 8 | boolean isReady(); // возвращает true, когда пришло время. Сбрасывается в false сам (AUTO) или вручную (MANUAL) 9 | void reset(); // ручной сброс таймера на установленный интервал 10 | 11 | private: 12 | uint32_t _timer = 0; 13 | uint32_t _interval = 0; 14 | }; 15 | 16 | timerMinim::timerMinim(uint32_t interval) { 17 | _interval = interval; 18 | _timer = millis(); 19 | } 20 | 21 | void timerMinim::setInterval(uint32_t interval) { 22 | _interval = interval; 23 | } 24 | 25 | boolean timerMinim::isReady() { 26 | if ((long)millis() - _timer >= _interval) { 27 | _timer = millis(); 28 | return true; 29 | } else { 30 | return false; 31 | } 32 | } 33 | 34 | void timerMinim::reset() { 35 | _timer = millis(); 36 | } 37 | -------------------------------------------------------------------------------- /firmware/GyverString_v1.2/utility.ino: -------------------------------------------------------------------------------- 1 | // служебные функции 2 | 3 | // функция отрисовки точки по координатам X Y 4 | void drawPixelXY(int x, int y, uint32_t color) { 5 | //if (x < 0 || x > WIDTH - 1 || y < 0 || y > HEIGHT - 1) return; 6 | leds[getPixelNumber(x, y)] = mHEX(color); 7 | } 8 | 9 | // **************** НАСТРОЙКА МАТРИЦЫ **************** 10 | #if (CONNECTION_ANGLE == 0 && STRIP_DIRECTION == 0) 11 | #define _WIDTH WIDTH 12 | #define THIS_X x 13 | #define THIS_Y y 14 | 15 | #elif (CONNECTION_ANGLE == 0 && STRIP_DIRECTION == 1) 16 | #define _WIDTH HEIGHT 17 | #define THIS_X y 18 | #define THIS_Y x 19 | 20 | #elif (CONNECTION_ANGLE == 1 && STRIP_DIRECTION == 0) 21 | #define _WIDTH WIDTH 22 | #define THIS_X x 23 | #define THIS_Y (HEIGHT - y - 1) 24 | 25 | #elif (CONNECTION_ANGLE == 1 && STRIP_DIRECTION == 3) 26 | #define _WIDTH HEIGHT 27 | #define THIS_X (HEIGHT - y - 1) 28 | #define THIS_Y x 29 | 30 | #elif (CONNECTION_ANGLE == 2 && STRIP_DIRECTION == 2) 31 | #define _WIDTH WIDTH 32 | #define THIS_X (WIDTH - x - 1) 33 | #define THIS_Y (HEIGHT - y - 1) 34 | 35 | #elif (CONNECTION_ANGLE == 2 && STRIP_DIRECTION == 3) 36 | #define _WIDTH HEIGHT 37 | #define THIS_X (HEIGHT - y - 1) 38 | #define THIS_Y (WIDTH - x - 1) 39 | 40 | #elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 2) 41 | #define _WIDTH WIDTH 42 | #define THIS_X (WIDTH - x - 1) 43 | #define THIS_Y y 44 | 45 | #elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 1) 46 | #define _WIDTH HEIGHT 47 | #define THIS_X y 48 | #define THIS_Y (WIDTH - x - 1) 49 | 50 | #else 51 | #define _WIDTH WIDTH 52 | #define THIS_X x 53 | #define THIS_Y y 54 | #pragma message "Wrong matrix parameters! Set to default" 55 | 56 | #endif 57 | 58 | // получить номер пикселя в ленте по координатам 59 | uint16_t getPixelNumber(int x, int y) { 60 | if ((THIS_Y % 2 == 0) || MATRIX_TYPE) { // если чётная строка 61 | return (THIS_Y * _WIDTH + THIS_X); 62 | } else { // если нечётная строка 63 | return (THIS_Y * _WIDTH + _WIDTH - THIS_X - 1); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /firmware/старые/GyverString/eeprom.ino: -------------------------------------------------------------------------------- 1 | // --------------- РАБОТА С EEPROM -------------- 2 | // EEPROM MAP 3 | // 0 - скорость 4 | // 1 - яркость 5 | // 2 - режим 6 | // 3 - цвет 7 | // 4 - длина строки 8 | // 10-300 - строка 9 | 10 | 11 | void eeprom_update_byte(int addr, byte value) { 12 | byte buf = eeprom_read_byte((uint8_t*)addr); 13 | if (value != buf) eeprom_write_byte((uint8_t*)addr, value); 14 | } 15 | 16 | void updateSettings() { 17 | eepromFlag = true; // ставим галочку, что данные изменились 18 | eepromTimer.reset(); 19 | } 20 | 21 | void eepromTick() { 22 | eepromFlag = false; 23 | eeprom_update_byte(0, thisSpeed); 24 | eeprom_update_byte(1, thisBright); 25 | eeprom_update_byte(2, thisMode); 26 | eeprom_update_byte(3, thisColor); 27 | eeprom_update_byte(4, thisLength); 28 | 29 | for (byte i = 10; i < thisLength + 10; i++) { 30 | eeprom_update_byte(i, runningText[i - 10]); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /firmware/старые/GyverString/timerMinim.h: -------------------------------------------------------------------------------- 1 | // мини-класс таймера, версия 1.0 2 | 3 | class timerMinim 4 | { 5 | public: 6 | timerMinim(uint32_t interval); // объявление таймера с указанием интервала 7 | void setInterval(uint32_t interval); // установка интервала работы таймера 8 | boolean isReady(); // возвращает true, когда пришло время. Сбрасывается в false сам (AUTO) или вручную (MANUAL) 9 | void reset(); // ручной сброс таймера на установленный интервал 10 | 11 | private: 12 | uint32_t _timer = 0; 13 | uint32_t _interval = 0; 14 | }; 15 | 16 | timerMinim::timerMinim(uint32_t interval) { 17 | _interval = interval; 18 | _timer = millis(); 19 | } 20 | 21 | void timerMinim::setInterval(uint32_t interval) { 22 | _interval = interval; 23 | } 24 | 25 | boolean timerMinim::isReady() { 26 | if ((long)millis() - _timer >= _interval) { 27 | _timer = millis(); 28 | return true; 29 | } else { 30 | return false; 31 | } 32 | } 33 | 34 | void timerMinim::reset() { 35 | _timer = millis(); 36 | } 37 | -------------------------------------------------------------------------------- /firmware/старые/GyverStringOffline/timerMinim.h: -------------------------------------------------------------------------------- 1 | // мини-класс таймера, версия 1.0 2 | 3 | class timerMinim 4 | { 5 | public: 6 | timerMinim(uint32_t interval); // объявление таймера с указанием интервала 7 | void setInterval(uint32_t interval); // установка интервала работы таймера 8 | boolean isReady(); // возвращает true, когда пришло время. Сбрасывается в false сам (AUTO) или вручную (MANUAL) 9 | void reset(); // ручной сброс таймера на установленный интервал 10 | 11 | private: 12 | uint32_t _timer = 0; 13 | uint32_t _interval = 0; 14 | }; 15 | 16 | timerMinim::timerMinim(uint32_t interval) { 17 | _interval = interval; 18 | _timer = millis(); 19 | } 20 | 21 | void timerMinim::setInterval(uint32_t interval) { 22 | _interval = interval; 23 | } 24 | 25 | boolean timerMinim::isReady() { 26 | if ((long)millis() - _timer >= _interval) { 27 | _timer = millis(); 28 | return true; 29 | } else { 30 | return false; 31 | } 32 | } 33 | 34 | void timerMinim::reset() { 35 | _timer = millis(); 36 | } 37 | -------------------------------------------------------------------------------- /firmware/старые/GyverStringOffline/utility.ino: -------------------------------------------------------------------------------- 1 | // служебные функции 2 | 3 | // функция отрисовки точки по координатам X Y 4 | void drawPixelXY(int8_t x, int8_t y, CRGB color) { 5 | if (x < 0 || x > WIDTH - 1 || y < 0 || y > HEIGHT - 1) return; 6 | int thisPixel = getPixelNumber(x, y) * SEGMENTS; 7 | for (byte i = 0; i < SEGMENTS; i++) { 8 | leds[thisPixel + i] = color; 9 | } 10 | } 11 | 12 | // **************** НАСТРОЙКА МАТРИЦЫ **************** 13 | #if (CONNECTION_ANGLE == 0 && STRIP_DIRECTION == 0) 14 | #define _WIDTH WIDTH 15 | #define THIS_X x 16 | #define THIS_Y y 17 | 18 | #elif (CONNECTION_ANGLE == 0 && STRIP_DIRECTION == 1) 19 | #define _WIDTH HEIGHT 20 | #define THIS_X y 21 | #define THIS_Y x 22 | 23 | #elif (CONNECTION_ANGLE == 1 && STRIP_DIRECTION == 0) 24 | #define _WIDTH WIDTH 25 | #define THIS_X x 26 | #define THIS_Y (HEIGHT - y - 1) 27 | 28 | #elif (CONNECTION_ANGLE == 1 && STRIP_DIRECTION == 3) 29 | #define _WIDTH HEIGHT 30 | #define THIS_X (HEIGHT - y - 1) 31 | #define THIS_Y x 32 | 33 | #elif (CONNECTION_ANGLE == 2 && STRIP_DIRECTION == 2) 34 | #define _WIDTH WIDTH 35 | #define THIS_X (WIDTH - x - 1) 36 | #define THIS_Y (HEIGHT - y - 1) 37 | 38 | #elif (CONNECTION_ANGLE == 2 && STRIP_DIRECTION == 3) 39 | #define _WIDTH HEIGHT 40 | #define THIS_X (HEIGHT - y - 1) 41 | #define THIS_Y (WIDTH - x - 1) 42 | 43 | #elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 2) 44 | #define _WIDTH WIDTH 45 | #define THIS_X (WIDTH - x - 1) 46 | #define THIS_Y y 47 | 48 | #elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 1) 49 | #define _WIDTH HEIGHT 50 | #define THIS_X y 51 | #define THIS_Y (WIDTH - x - 1) 52 | 53 | #else 54 | #define _WIDTH WIDTH 55 | #define THIS_X x 56 | #define THIS_Y y 57 | #pragma message "Wrong matrix parameters! Set to default" 58 | 59 | #endif 60 | 61 | // получить номер пикселя в ленте по координатам 62 | uint16_t getPixelNumber(int8_t x, int8_t y) { 63 | if ((THIS_Y % 2 == 0) || MATRIX_TYPE) { // если чётная строка 64 | return (THIS_Y * _WIDTH + THIS_X); 65 | } else { // если нечётная строка 66 | return (THIS_Y * _WIDTH + _WIDTH - THIS_X - 1); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /firmware/старые/GyverStringOffline_v1.1/timerMinim.h: -------------------------------------------------------------------------------- 1 | // мини-класс таймера, версия 1.0 2 | 3 | class timerMinim 4 | { 5 | public: 6 | timerMinim(uint32_t interval); // объявление таймера с указанием интервала 7 | void setInterval(uint32_t interval); // установка интервала работы таймера 8 | boolean isReady(); // возвращает true, когда пришло время. Сбрасывается в false сам (AUTO) или вручную (MANUAL) 9 | void reset(); // ручной сброс таймера на установленный интервал 10 | 11 | private: 12 | uint32_t _timer = 0; 13 | uint32_t _interval = 0; 14 | }; 15 | 16 | timerMinim::timerMinim(uint32_t interval) { 17 | _interval = interval; 18 | _timer = millis(); 19 | } 20 | 21 | void timerMinim::setInterval(uint32_t interval) { 22 | _interval = interval; 23 | } 24 | 25 | boolean timerMinim::isReady() { 26 | if ((long)millis() - _timer >= _interval) { 27 | _timer = millis(); 28 | return true; 29 | } else { 30 | return false; 31 | } 32 | } 33 | 34 | void timerMinim::reset() { 35 | _timer = millis(); 36 | } 37 | -------------------------------------------------------------------------------- /firmware/старые/GyverStringOffline_v1.1/utility.ino: -------------------------------------------------------------------------------- 1 | // служебные функции 2 | 3 | // функция отрисовки точки по координатам X Y 4 | void drawPixelXY(int x, int y, uint32_t color) { 5 | //if (x < 0 || x > WIDTH - 1 || y < 0 || y > HEIGHT - 1) return; 6 | leds[getPixelNumber(x, y)] = mHEX(color); 7 | } 8 | 9 | // **************** НАСТРОЙКА МАТРИЦЫ **************** 10 | #if (CONNECTION_ANGLE == 0 && STRIP_DIRECTION == 0) 11 | #define _WIDTH WIDTH 12 | #define THIS_X x 13 | #define THIS_Y y 14 | 15 | #elif (CONNECTION_ANGLE == 0 && STRIP_DIRECTION == 1) 16 | #define _WIDTH HEIGHT 17 | #define THIS_X y 18 | #define THIS_Y x 19 | 20 | #elif (CONNECTION_ANGLE == 1 && STRIP_DIRECTION == 0) 21 | #define _WIDTH WIDTH 22 | #define THIS_X x 23 | #define THIS_Y (HEIGHT - y - 1) 24 | 25 | #elif (CONNECTION_ANGLE == 1 && STRIP_DIRECTION == 3) 26 | #define _WIDTH HEIGHT 27 | #define THIS_X (HEIGHT - y - 1) 28 | #define THIS_Y x 29 | 30 | #elif (CONNECTION_ANGLE == 2 && STRIP_DIRECTION == 2) 31 | #define _WIDTH WIDTH 32 | #define THIS_X (WIDTH - x - 1) 33 | #define THIS_Y (HEIGHT - y - 1) 34 | 35 | #elif (CONNECTION_ANGLE == 2 && STRIP_DIRECTION == 3) 36 | #define _WIDTH HEIGHT 37 | #define THIS_X (HEIGHT - y - 1) 38 | #define THIS_Y (WIDTH - x - 1) 39 | 40 | #elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 2) 41 | #define _WIDTH WIDTH 42 | #define THIS_X (WIDTH - x - 1) 43 | #define THIS_Y y 44 | 45 | #elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 1) 46 | #define _WIDTH HEIGHT 47 | #define THIS_X y 48 | #define THIS_Y (WIDTH - x - 1) 49 | 50 | #else 51 | #define _WIDTH WIDTH 52 | #define THIS_X x 53 | #define THIS_Y y 54 | #pragma message "Wrong matrix parameters! Set to default" 55 | 56 | #endif 57 | 58 | // получить номер пикселя в ленте по координатам 59 | uint16_t getPixelNumber(int x, int y) { 60 | if ((THIS_Y % 2 == 0) || MATRIX_TYPE) { // если чётная строка 61 | return (THIS_Y * _WIDTH + THIS_X); 62 | } else { // если нечётная строка 63 | return (THIS_Y * _WIDTH + _WIDTH - THIS_X - 1); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /firmware/старые/GyverStringOffline_v1.2/timerMinim.h: -------------------------------------------------------------------------------- 1 | // мини-класс таймера, версия 1.0 2 | 3 | class timerMinim 4 | { 5 | public: 6 | timerMinim(uint32_t interval); // объявление таймера с указанием интервала 7 | void setInterval(uint32_t interval); // установка интервала работы таймера 8 | boolean isReady(); // возвращает true, когда пришло время. Сбрасывается в false сам (AUTO) или вручную (MANUAL) 9 | void reset(); // ручной сброс таймера на установленный интервал 10 | 11 | private: 12 | uint32_t _timer = 0; 13 | uint32_t _interval = 0; 14 | }; 15 | 16 | timerMinim::timerMinim(uint32_t interval) { 17 | _interval = interval; 18 | _timer = millis(); 19 | } 20 | 21 | void timerMinim::setInterval(uint32_t interval) { 22 | _interval = interval; 23 | } 24 | 25 | boolean timerMinim::isReady() { 26 | if ((long)millis() - _timer >= _interval) { 27 | _timer = millis(); 28 | return true; 29 | } else { 30 | return false; 31 | } 32 | } 33 | 34 | void timerMinim::reset() { 35 | _timer = millis(); 36 | } 37 | -------------------------------------------------------------------------------- /firmware/старые/GyverStringOffline_v1.2/utility.ino: -------------------------------------------------------------------------------- 1 | // служебные функции 2 | 3 | // функция отрисовки точки по координатам X Y 4 | void drawPixelXY(int x, int y, uint32_t color) { 5 | //if (x < 0 || x > WIDTH - 1 || y < 0 || y > HEIGHT - 1) return; 6 | leds[getPixelNumber(x, y)] = mHEX(color); 7 | } 8 | 9 | // **************** НАСТРОЙКА МАТРИЦЫ **************** 10 | #if (CONNECTION_ANGLE == 0 && STRIP_DIRECTION == 0) 11 | #define _WIDTH WIDTH 12 | #define THIS_X x 13 | #define THIS_Y y 14 | 15 | #elif (CONNECTION_ANGLE == 0 && STRIP_DIRECTION == 1) 16 | #define _WIDTH HEIGHT 17 | #define THIS_X y 18 | #define THIS_Y x 19 | 20 | #elif (CONNECTION_ANGLE == 1 && STRIP_DIRECTION == 0) 21 | #define _WIDTH WIDTH 22 | #define THIS_X x 23 | #define THIS_Y (HEIGHT - y - 1) 24 | 25 | #elif (CONNECTION_ANGLE == 1 && STRIP_DIRECTION == 3) 26 | #define _WIDTH HEIGHT 27 | #define THIS_X (HEIGHT - y - 1) 28 | #define THIS_Y x 29 | 30 | #elif (CONNECTION_ANGLE == 2 && STRIP_DIRECTION == 2) 31 | #define _WIDTH WIDTH 32 | #define THIS_X (WIDTH - x - 1) 33 | #define THIS_Y (HEIGHT - y - 1) 34 | 35 | #elif (CONNECTION_ANGLE == 2 && STRIP_DIRECTION == 3) 36 | #define _WIDTH HEIGHT 37 | #define THIS_X (HEIGHT - y - 1) 38 | #define THIS_Y (WIDTH - x - 1) 39 | 40 | #elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 2) 41 | #define _WIDTH WIDTH 42 | #define THIS_X (WIDTH - x - 1) 43 | #define THIS_Y y 44 | 45 | #elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 1) 46 | #define _WIDTH HEIGHT 47 | #define THIS_X y 48 | #define THIS_Y (WIDTH - x - 1) 49 | 50 | #else 51 | #define _WIDTH WIDTH 52 | #define THIS_X x 53 | #define THIS_Y y 54 | #pragma message "Wrong matrix parameters! Set to default" 55 | 56 | #endif 57 | 58 | // получить номер пикселя в ленте по координатам 59 | uint16_t getPixelNumber(int x, int y) { 60 | if ((THIS_Y % 2 == 0) || MATRIX_TYPE) { // если чётная строка 61 | return (THIS_Y * _WIDTH + THIS_X); 62 | } else { // если нечётная строка 63 | return (THIS_Y * _WIDTH + _WIDTH - THIS_X - 1); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /firmware/старые/GyverString_v1.1/eeprom.ino: -------------------------------------------------------------------------------- 1 | // --------------- РАБОТА С EEPROM -------------- 2 | // EEPROM MAP 3 | // 0 - скорость 4 | // 1 - яркость 5 | // 2 - режим 6 | // 3 - цвет 7 | // 4 - длина строки 8 | // 10-300 - строка 9 | 10 | 11 | void eeprom_update_byte(int addr, byte value) { 12 | byte buf = eeprom_read_byte((uint8_t*)addr); 13 | if (value != buf) eeprom_write_byte((uint8_t*)addr, value); 14 | } 15 | 16 | void updateSettings() { 17 | eepromFlag = true; // ставим галочку, что данные изменились 18 | eepromTimer.reset(); 19 | } 20 | 21 | void eepromTick() { 22 | eepromFlag = false; 23 | eeprom_update_byte(0, thisSpeed); 24 | eeprom_update_byte(1, thisBright); 25 | eeprom_update_byte(2, thisMode); 26 | eeprom_update_byte(3, thisColor); 27 | eeprom_update_byte(4, thisLength); 28 | 29 | for (byte i = 10; i < thisLength + 10; i++) { 30 | eeprom_update_byte(i, runningText[i - 10]); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /firmware/старые/GyverString_v1.1/timerMinim.h: -------------------------------------------------------------------------------- 1 | // мини-класс таймера, версия 1.0 2 | 3 | class timerMinim 4 | { 5 | public: 6 | timerMinim(uint32_t interval); // объявление таймера с указанием интервала 7 | void setInterval(uint32_t interval); // установка интервала работы таймера 8 | boolean isReady(); // возвращает true, когда пришло время. Сбрасывается в false сам (AUTO) или вручную (MANUAL) 9 | void reset(); // ручной сброс таймера на установленный интервал 10 | 11 | private: 12 | uint32_t _timer = 0; 13 | uint32_t _interval = 0; 14 | }; 15 | 16 | timerMinim::timerMinim(uint32_t interval) { 17 | _interval = interval; 18 | _timer = millis(); 19 | } 20 | 21 | void timerMinim::setInterval(uint32_t interval) { 22 | _interval = interval; 23 | } 24 | 25 | boolean timerMinim::isReady() { 26 | if ((long)millis() - _timer >= _interval) { 27 | _timer = millis(); 28 | return true; 29 | } else { 30 | return false; 31 | } 32 | } 33 | 34 | void timerMinim::reset() { 35 | _timer = millis(); 36 | } 37 | -------------------------------------------------------------------------------- /firmware/старые/GyverString_v1.1/utility.ino: -------------------------------------------------------------------------------- 1 | // служебные функции 2 | 3 | // функция отрисовки точки по координатам X Y 4 | void drawPixelXY(int x, int y, uint32_t color) { 5 | //if (x < 0 || x > WIDTH - 1 || y < 0 || y > HEIGHT - 1) return; 6 | leds[getPixelNumber(x, y)] = mHEX(color); 7 | } 8 | 9 | // **************** НАСТРОЙКА МАТРИЦЫ **************** 10 | #if (CONNECTION_ANGLE == 0 && STRIP_DIRECTION == 0) 11 | #define _WIDTH WIDTH 12 | #define THIS_X x 13 | #define THIS_Y y 14 | 15 | #elif (CONNECTION_ANGLE == 0 && STRIP_DIRECTION == 1) 16 | #define _WIDTH HEIGHT 17 | #define THIS_X y 18 | #define THIS_Y x 19 | 20 | #elif (CONNECTION_ANGLE == 1 && STRIP_DIRECTION == 0) 21 | #define _WIDTH WIDTH 22 | #define THIS_X x 23 | #define THIS_Y (HEIGHT - y - 1) 24 | 25 | #elif (CONNECTION_ANGLE == 1 && STRIP_DIRECTION == 3) 26 | #define _WIDTH HEIGHT 27 | #define THIS_X (HEIGHT - y - 1) 28 | #define THIS_Y x 29 | 30 | #elif (CONNECTION_ANGLE == 2 && STRIP_DIRECTION == 2) 31 | #define _WIDTH WIDTH 32 | #define THIS_X (WIDTH - x - 1) 33 | #define THIS_Y (HEIGHT - y - 1) 34 | 35 | #elif (CONNECTION_ANGLE == 2 && STRIP_DIRECTION == 3) 36 | #define _WIDTH HEIGHT 37 | #define THIS_X (HEIGHT - y - 1) 38 | #define THIS_Y (WIDTH - x - 1) 39 | 40 | #elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 2) 41 | #define _WIDTH WIDTH 42 | #define THIS_X (WIDTH - x - 1) 43 | #define THIS_Y y 44 | 45 | #elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 1) 46 | #define _WIDTH HEIGHT 47 | #define THIS_X y 48 | #define THIS_Y (WIDTH - x - 1) 49 | 50 | #else 51 | #define _WIDTH WIDTH 52 | #define THIS_X x 53 | #define THIS_Y y 54 | #pragma message "Wrong matrix parameters! Set to default" 55 | 56 | #endif 57 | 58 | // получить номер пикселя в ленте по координатам 59 | uint16_t getPixelNumber(int x, int y) { 60 | if ((THIS_Y % 2 == 0) || MATRIX_TYPE) { // если чётная строка 61 | return (THIS_Y * _WIDTH + THIS_X); 62 | } else { // если нечётная строка 63 | return (THIS_Y * _WIDTH + _WIDTH - THIS_X - 1); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /libraries/Adafruit-GFX-Library/.gitignore: -------------------------------------------------------------------------------- 1 | default.vim 2 | fontconvert/fontconvert 3 | -------------------------------------------------------------------------------- /libraries/Adafruit-GFX-Library/Img2Code/.gitignore: -------------------------------------------------------------------------------- 1 | build/** 2 | .gradle/** 3 | -------------------------------------------------------------------------------- /libraries/Adafruit-GFX-Library/Img2Code/README.md: -------------------------------------------------------------------------------- 1 | Image2Code is a small java utility to convert images into a byte array that can be used as a bitmap in the Adafruit-GFX-library 2 | 3 | # USER Guide 4 | 5 | ## To Run 6 | Run the command: ./gradlew run to launch the application. 7 | 8 | ## Using the Application 9 | 1. Click "choose file" button. 10 | 2. Then copy paste the generated code in your arduino sketch. 11 | 12 | ## Dependencies: 13 | 1. Java: If you do not have this installed, it can be found at: http://www.java.com/en/download/ if you havn't already done so. 14 | 2. Gradle: The gradlew will take care of this dependency. Just running any gradlew command will pull down the dependency 15 | 16 | #DEV guide: 17 | This sub-project using Gradle to build. To build a runnable jar: ./gradlew jar 18 | -------------------------------------------------------------------------------- /libraries/Adafruit-GFX-Library/Img2Code/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java' 2 | apply plugin: 'eclipse' 3 | apply plugin: 'application' 4 | 5 | mainClassName = "Image2Code" 6 | 7 | jar { 8 | manifest { 9 | attributes 'Main-Class': 'Image2Code' 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /libraries/Adafruit-GFX-Library/Img2Code/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/libraries/Adafruit-GFX-Library/Img2Code/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /libraries/Adafruit-GFX-Library/Img2Code/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Sep 05 10:24:57 EDT 2016 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14-bin.zip 7 | -------------------------------------------------------------------------------- /libraries/Adafruit-GFX-Library/Img2Code/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | set DIRNAME=%~dp0 12 | if "%DIRNAME%" == "" set DIRNAME=. 13 | set APP_BASE_NAME=%~n0 14 | set APP_HOME=%DIRNAME% 15 | 16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 17 | set DEFAULT_JVM_OPTS= 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windows variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /libraries/Adafruit-GFX-Library/Img2Code/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'Img2Code' 2 | -------------------------------------------------------------------------------- /libraries/Adafruit-GFX-Library/Img2Code/src/main/resources/Adafruit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/libraries/Adafruit-GFX-Library/Img2Code/src/main/resources/Adafruit.png -------------------------------------------------------------------------------- /libraries/Adafruit-GFX-Library/fontconvert/Makefile: -------------------------------------------------------------------------------- 1 | all: fontconvert 2 | 3 | CC = gcc 4 | CFLAGS = -Wall -I/usr/local/include/freetype2 -I/usr/include/freetype2 -I/usr/include 5 | LIBS = -lfreetype 6 | 7 | fontconvert: fontconvert.c 8 | $(CC) $(CFLAGS) $< $(LIBS) -o $@ 9 | strip $@ 10 | 11 | clean: 12 | rm -f fontconvert 13 | -------------------------------------------------------------------------------- /libraries/Adafruit-GFX-Library/fontconvert/makefonts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Ugly little Bash script, generates a set of .h files for GFX using 4 | # GNU FreeFont sources. There are three fonts: 'Mono' (Courier-like), 5 | # 'Sans' (Helvetica-like) and 'Serif' (Times-like); four styles: regular, 6 | # bold, oblique or italic, and bold+oblique or bold+italic; and four 7 | # sizes: 9, 12, 18 and 24 point. No real error checking or anything, 8 | # this just powers through all the combinations, calling the fontconvert 9 | # utility and redirecting the output to a .h file for each combo. 10 | 11 | # Adafruit_GFX repository does not include the source outline fonts 12 | # (huge zipfile, different license) but they're easily acquired: 13 | # http://savannah.gnu.org/projects/freefont/ 14 | 15 | convert=./fontconvert 16 | inpath=~/Desktop/freefont/ 17 | outpath=../Fonts/ 18 | fonts=(FreeMono FreeSans FreeSerif) 19 | styles=("" Bold Italic BoldItalic Oblique BoldOblique) 20 | sizes=(9 12 18 24) 21 | 22 | for f in ${fonts[*]} 23 | do 24 | for index in ${!styles[*]} 25 | do 26 | st=${styles[$index]} 27 | for si in ${sizes[*]} 28 | do 29 | infile=$inpath$f$st".ttf" 30 | if [ -f $infile ] # Does source combination exist? 31 | then 32 | outfile=$outpath$f$st$si"pt7b.h" 33 | # printf "%s %s %s > %s\n" $convert $infile $si $outfile 34 | $convert $infile $si > $outfile 35 | fi 36 | done 37 | done 38 | done 39 | -------------------------------------------------------------------------------- /libraries/Adafruit-GFX-Library/gfxfont.h: -------------------------------------------------------------------------------- 1 | // Font structures for newer Adafruit_GFX (1.1 and later). 2 | // Example fonts are included in 'Fonts' directory. 3 | // To use a font in your Arduino sketch, #include the corresponding .h 4 | // file and pass address of GFXfont struct to setFont(). Pass NULL to 5 | // revert to 'classic' fixed-space bitmap font. 6 | 7 | #ifndef _GFXFONT_H_ 8 | #define _GFXFONT_H_ 9 | 10 | typedef struct { // Data stored PER GLYPH 11 | uint16_t bitmapOffset; // Pointer into GFXfont->bitmap 12 | uint8_t width, height; // Bitmap dimensions in pixels 13 | uint8_t xAdvance; // Distance to advance cursor (x axis) 14 | int8_t xOffset, yOffset; // Dist from cursor pos to UL corner 15 | } GFXglyph; 16 | 17 | typedef struct { // Data stored for FONT AS A WHOLE: 18 | uint8_t *bitmap; // Glyph bitmaps, concatenated 19 | GFXglyph *glyph; // Glyph array 20 | uint8_t first, last; // ASCII extents 21 | uint8_t yAdvance; // Newline distance (y axis) 22 | } GFXfont; 23 | 24 | #endif // _GFXFONT_H_ 25 | -------------------------------------------------------------------------------- /libraries/Adafruit-GFX-Library/library.properties: -------------------------------------------------------------------------------- 1 | name=Adafruit GFX Library 2 | version=1.2.2 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=Adafruit GFX graphics core library, this is the 'core' class that all our other graphics libraries derive from. 6 | paragraph=Install this library in addition to the display library for your hardware. 7 | category=Display 8 | url=https://github.com/adafruit/Adafruit-GFX-Library 9 | architectures=* 10 | -------------------------------------------------------------------------------- /libraries/Adafruit-GFX-Library/license.txt: -------------------------------------------------------------------------------- 1 | Software License Agreement (BSD License) 2 | 3 | Copyright (c) 2012 Adafruit Industries. All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | - Redistributions of source code must retain the above copyright notice, 9 | this list of conditions and the following disclaimer. 10 | - Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 18 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 22 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24 | POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 FastLED 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/PORTING.md: -------------------------------------------------------------------------------- 1 | =New platform porting guide= 2 | 3 | == Setting up the basic files/folders == 4 | 5 | * Create platform directory (e.g. platforms/arm/kl26) 6 | * Create configuration header led_sysdefs_arm_kl26.h: 7 | * Define platform flags (like FASTLED_ARM/FASTLED_TEENSY) 8 | * Define configuration parameters re: interrupts, or clock doubling 9 | * Include extar system header files if needed 10 | * Create main platform include, fastled_arm_kl26.h 11 | * Include the various other header files as needed 12 | * Modify led_sysdefs.h to conditionally include platform sysdefs header file 13 | * Modify platforms.h to conditionally include platform fastled header 14 | 15 | == Porting fastpin.h == 16 | 17 | The heart of the FastLED library is the fast pin accesss. This is a templated class that provides 1-2 cycle pin access, bypassing digital write and other such things. As such, this will usually be the first bit of the library that you will want to port when moving to a new platform. Once you have FastPIN up and running then you can do some basic work like testing toggles or running bit-bang'd SPI output. 18 | 19 | There's two low level FastPin classes. There's the base FastPIN template class, and then there is FastPinBB which is for bit-banded access on those MCUs that support bitbanding. Note that the bitband class is optional and primarily useful in the implementation of other functionality internal to the platform. This file is also where you would do the pin to port/bit mapping defines. 20 | 21 | Explaining how the macros work and should be used is currently beyond the scope of this document. 22 | 23 | == Porting fastspi.h == 24 | 25 | This is where you define the low level interface to the hardware SPI system (including a writePixels method that does a bunch of housekeeping for writing led data). Use the fastspi_nop.h file as a reference for the methods that need to be implemented. There are ofteh other useful methods that can help with the internals of the SPI code, I recommend taking a look at how the various platforms implement their SPI classes. 26 | 27 | == Porting clockless.h == 28 | 29 | This is where you define the code for the clockless controllers. Across ARM platforms this will usually be fairly similar - though different arm platforms will have different clock sources that you can/should use. 30 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/bitswap.cpp: -------------------------------------------------------------------------------- 1 | #define FASTLED_INTERNAL 2 | #include "FastLED.h" 3 | 4 | /// Simplified form of bits rotating function. Based on code found here - http://www.hackersdelight.org/hdcodetxt/transpose8.c.txt - rotating 5 | /// data into LSB for a faster write (the code using this data can happily walk the array backwards) 6 | void transpose8x1_noinline(unsigned char *A, unsigned char *B) { 7 | uint32_t x, y, t; 8 | 9 | // Load the array and pack it into x and y. 10 | y = *(unsigned int*)(A); 11 | x = *(unsigned int*)(A+4); 12 | 13 | // pre-transform x 14 | t = (x ^ (x >> 7)) & 0x00AA00AA; x = x ^ t ^ (t << 7); 15 | t = (x ^ (x >>14)) & 0x0000CCCC; x = x ^ t ^ (t <<14); 16 | 17 | // pre-transform y 18 | t = (y ^ (y >> 7)) & 0x00AA00AA; y = y ^ t ^ (t << 7); 19 | t = (y ^ (y >>14)) & 0x0000CCCC; y = y ^ t ^ (t <<14); 20 | 21 | // final transform 22 | t = (x & 0xF0F0F0F0) | ((y >> 4) & 0x0F0F0F0F); 23 | y = ((x << 4) & 0xF0F0F0F0) | (y & 0x0F0F0F0F); 24 | x = t; 25 | 26 | *((uint32_t*)B) = y; 27 | *((uint32_t*)(B+4)) = x; 28 | } 29 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/colorpalettes.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_COLORPALETTES_H 2 | #define __INC_COLORPALETTES_H 3 | 4 | #include "FastLED.h" 5 | #include "colorutils.h" 6 | 7 | ///@file colorpalettes.h 8 | /// contains definitions for the predefined color palettes supplied by FastLED. 9 | 10 | FASTLED_NAMESPACE_BEGIN 11 | 12 | ///@defgroup Colorpalletes Pre-defined color palletes 13 | /// These schemes are all declared as "PROGMEM", meaning 14 | /// that they won't take up SRAM on AVR chips until used. 15 | /// Furthermore, the compiler won't even include these 16 | /// in your PROGMEM (flash) storage unless you specifically 17 | /// use each one, so you only 'pay for' those you actually use. 18 | 19 | ///@{ 20 | 21 | /// Cloudy color pallete 22 | extern const TProgmemRGBPalette16 CloudColors_p FL_PROGMEM; 23 | /// Lava colors 24 | extern const TProgmemRGBPalette16 LavaColors_p FL_PROGMEM; 25 | /// Ocean colors, blues and whites 26 | extern const TProgmemRGBPalette16 OceanColors_p FL_PROGMEM; 27 | /// Forest colors, greens 28 | extern const TProgmemRGBPalette16 ForestColors_p FL_PROGMEM; 29 | 30 | /// HSV Rainbow 31 | extern const TProgmemRGBPalette16 RainbowColors_p FL_PROGMEM; 32 | 33 | #define RainbowStripesColors_p RainbowStripeColors_p 34 | /// HSV Rainbow colors with alternatating stripes of black 35 | extern const TProgmemRGBPalette16 RainbowStripeColors_p FL_PROGMEM; 36 | 37 | /// HSV color ramp: blue purple ping red orange yellow (and back) 38 | /// Basically, everything but the greens, which tend to make 39 | /// people's skin look unhealthy. This palette is good for 40 | /// lighting at a club or party, where it'll be shining on people. 41 | extern const TProgmemRGBPalette16 PartyColors_p FL_PROGMEM; 42 | 43 | /// Approximate "black body radiation" palette, akin to 44 | /// the FastLED 'HeatColor' function. 45 | /// Recommend that you use values 0-240 rather than 46 | /// the usual 0-255, as the last 15 colors will be 47 | /// 'wrapping around' from the hot end to the cold end, 48 | /// which looks wrong. 49 | extern const TProgmemRGBPalette16 HeatColors_p FL_PROGMEM; 50 | 51 | 52 | DECLARE_GRADIENT_PALETTE( Rainbow_gp); 53 | 54 | FASTLED_NAMESPACE_END 55 | 56 | ///@} 57 | #endif 58 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/component.mk: -------------------------------------------------------------------------------- 1 | COMPONENT_ADD_INCLUDEDIRS := . 2 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/cpp_compat.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_CPP_COMPAT_H 2 | #define __INC_CPP_COMPAT_H 3 | 4 | #include "FastLED.h" 5 | 6 | #if __cplusplus <= 199711L 7 | 8 | #define static_assert(expression, message) 9 | #define constexpr const 10 | 11 | #else 12 | 13 | // things that we can turn on if we're in a C++11 environment 14 | #endif 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/dmx.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_DMX_H 2 | #define __INC_DMX_H 3 | 4 | #include "FastLED.h" 5 | 6 | #ifdef DmxSimple_h 7 | #include 8 | #define HAS_DMX_SIMPLE 9 | 10 | ///@ingroup chipsets 11 | ///@{ 12 | FASTLED_NAMESPACE_BEGIN 13 | 14 | // note - dmx simple must be included before FastSPI for this code to be enabled 15 | template class DMXSimpleController : public CPixelLEDController { 16 | public: 17 | // initialize the LED controller 18 | virtual void init() { DmxSimple.usePin(DATA_PIN); } 19 | 20 | protected: 21 | virtual void showPixels(PixelController & pixels) { 22 | int iChannel = 1; 23 | while(pixels.has(1)) { 24 | DmxSimple.write(iChannel++, pixels.loadAndScale0()); 25 | DmxSimple.write(iChannel++, pixels.loadAndScale1()); 26 | DmxSimple.write(iChannel++, pixels.loadAndScale2()); 27 | pixels.advanceData(); 28 | pixels.stepDithering(); 29 | } 30 | } 31 | }; 32 | 33 | FASTLED_NAMESPACE_END 34 | 35 | #endif 36 | 37 | #ifdef DmxSerial_h 38 | #include 39 | 40 | FASTLED_NAMESPACE_BEGIN 41 | 42 | template class DMXSerialController : public CPixelLEDController { 43 | public: 44 | // initialize the LED controller 45 | virtual void init() { DMXSerial.init(DMXController); } 46 | 47 | virtual void showPixels(PixelController & pixels) { 48 | int iChannel = 1; 49 | while(pixels.has(1)) { 50 | DMXSerial.write(iChannel++, pixels.loadAndScale0()); 51 | DMXSerial.write(iChannel++, pixels.loadAndScale1()); 52 | DMXSerial.write(iChannel++, pixels.loadAndScale2()); 53 | pixels.advanceData(); 54 | pixels.stepDithering(); 55 | } 56 | } 57 | }; 58 | 59 | FASTLED_NAMESPACE_END 60 | ///@} 61 | 62 | #define HAS_DMX_SERIAL 63 | #endif 64 | 65 | #endif 66 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/docs/mainpage.dox: -------------------------------------------------------------------------------- 1 | /** 2 | @brief Documentation file for FastLED 3 | @author dgarcia at fastled dot io 4 | @file 5 | */ 6 | /** @defgroup FastLED Sources */ 7 | /** 8 | @mainpage FastLED - let there be light! 9 | */ 10 | EOF 11 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/examples/AnalogOutput/AnalogOutput.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // Example showing how to use FastLED color functions 4 | // even when you're NOT using a "pixel-addressible" smart LED strip. 5 | // 6 | // This example is designed to control an "analog" RGB LED strip 7 | // (or a single RGB LED) being driven by Arduino PWM output pins. 8 | // So this code never calls FastLED.addLEDs() or FastLED.show(). 9 | // 10 | // This example illustrates one way you can use just the portions 11 | // of FastLED that you need. In this case, this code uses just the 12 | // fast HSV color conversion code. 13 | // 14 | // In this example, the RGB values are output on three separate 15 | // 'analog' PWM pins, one for red, one for green, and one for blue. 16 | 17 | #define REDPIN 5 18 | #define GREENPIN 6 19 | #define BLUEPIN 3 20 | 21 | // showAnalogRGB: this is like FastLED.show(), but outputs on 22 | // analog PWM output pins instead of sending data to an intelligent, 23 | // pixel-addressable LED strip. 24 | // 25 | // This function takes the incoming RGB values and outputs the values 26 | // on three analog PWM output pins to the r, g, and b values respectively. 27 | void showAnalogRGB( const CRGB& rgb) 28 | { 29 | analogWrite(REDPIN, rgb.r ); 30 | analogWrite(GREENPIN, rgb.g ); 31 | analogWrite(BLUEPIN, rgb.b ); 32 | } 33 | 34 | 35 | 36 | // colorBars: flashes Red, then Green, then Blue, then Black. 37 | // Helpful for diagnosing if you've mis-wired which is which. 38 | void colorBars() 39 | { 40 | showAnalogRGB( CRGB::Red ); delay(500); 41 | showAnalogRGB( CRGB::Green ); delay(500); 42 | showAnalogRGB( CRGB::Blue ); delay(500); 43 | showAnalogRGB( CRGB::Black ); delay(500); 44 | } 45 | 46 | void loop() 47 | { 48 | static uint8_t hue; 49 | hue = hue + 1; 50 | // Use FastLED automatic HSV->RGB conversion 51 | showAnalogRGB( CHSV( hue, 255, 255) ); 52 | 53 | delay(20); 54 | } 55 | 56 | 57 | void setup() { 58 | pinMode(REDPIN, OUTPUT); 59 | pinMode(GREENPIN, OUTPUT); 60 | pinMode(BLUEPIN, OUTPUT); 61 | 62 | // Flash the "hello" color sequence: R, G, B, black. 63 | colorBars(); 64 | } 65 | 66 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/examples/Blink/Blink.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // How many leds in your strip? 4 | #define NUM_LEDS 1 5 | 6 | // For led chips like Neopixels, which have a data line, ground, and power, you just 7 | // need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock, 8 | // ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN 9 | #define DATA_PIN 3 10 | #define CLOCK_PIN 13 11 | 12 | // Define the array of leds 13 | CRGB leds[NUM_LEDS]; 14 | 15 | void setup() { 16 | // Uncomment/edit one of the following lines for your leds arrangement. 17 | // FastLED.addLeds(leds, NUM_LEDS); 18 | // FastLED.addLeds(leds, NUM_LEDS); 19 | // FastLED.addLeds(leds, NUM_LEDS); 20 | // FastLED.addLeds(leds, NUM_LEDS); 21 | // FastLED.addLeds(leds, NUM_LEDS); 22 | // FastLED.addLeds(leds, NUM_LEDS); 23 | FastLED.addLeds(leds, NUM_LEDS); 24 | // FastLED.addLeds(leds, NUM_LEDS); 25 | // FastLED.addLeds(leds, NUM_LEDS); 26 | // FastLED.addLeds(leds, NUM_LEDS); 27 | // FastLED.addLeds(leds, NUM_LEDS); 28 | // FastLED.addLeds(leds, NUM_LEDS); 29 | 30 | // FastLED.addLeds(leds, NUM_LEDS); 31 | // FastLED.addLeds(leds, NUM_LEDS); 32 | // FastLED.addLeds(leds, NUM_LEDS); 33 | // FastLED.addLeds(leds, NUM_LEDS); 34 | // FastLED.addLeds(leds, NUM_LEDS); 35 | // FastLED.addLeds(leds, NUM_LEDS); 36 | 37 | // FastLED.addLeds(leds, NUM_LEDS); 38 | // FastLED.addLeds(leds, NUM_LEDS); 39 | // FastLED.addLeds(leds, NUM_LEDS); 40 | // FastLED.addLeds(leds, NUM_LEDS); 41 | // FastLED.addLeds(leds, NUM_LEDS); 42 | // FastLED.addLeds(leds, NUM_LEDS); 43 | } 44 | 45 | void loop() { 46 | // Turn the LED on, then pause 47 | leds[0] = CRGB::Red; 48 | FastLED.show(); 49 | delay(500); 50 | // Now turn the LED off, then pause 51 | leds[0] = CRGB::Black; 52 | FastLED.show(); 53 | delay(500); 54 | } 55 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/examples/Cylon/Cylon.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // How many leds in your strip? 4 | #define NUM_LEDS 64 5 | 6 | // For led chips like Neopixels, which have a data line, ground, and power, you just 7 | // need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock, 8 | // ground, and power), like the LPD8806, define both DATA_PIN and CLOCK_PIN 9 | #define DATA_PIN 7 10 | #define CLOCK_PIN 13 11 | 12 | // Define the array of leds 13 | CRGB leds[NUM_LEDS]; 14 | 15 | void setup() { 16 | Serial.begin(57600); 17 | Serial.println("resetting"); 18 | LEDS.addLeds(leds,NUM_LEDS); 19 | LEDS.setBrightness(84); 20 | } 21 | 22 | void fadeall() { for(int i = 0; i < NUM_LEDS; i++) { leds[i].nscale8(250); } } 23 | 24 | void loop() { 25 | static uint8_t hue = 0; 26 | Serial.print("x"); 27 | // First slide the led in one direction 28 | for(int i = 0; i < NUM_LEDS; i++) { 29 | // Set the i'th led to red 30 | leds[i] = CHSV(hue++, 255, 255); 31 | // Show the leds 32 | FastLED.show(); 33 | // now that we've shown the leds, reset the i'th led to black 34 | // leds[i] = CRGB::Black; 35 | fadeall(); 36 | // Wait a little bit before we loop around and do it again 37 | delay(10); 38 | } 39 | Serial.print("x"); 40 | 41 | // Now go in the other direction. 42 | for(int i = (NUM_LEDS)-1; i >= 0; i--) { 43 | // Set the i'th led to red 44 | leds[i] = CHSV(hue++, 255, 255); 45 | // Show the leds 46 | FastLED.show(); 47 | // now that we've shown the leds, reset the i'th led to black 48 | // leds[i] = CRGB::Black; 49 | fadeall(); 50 | // Wait a little bit before we loop around and do it again 51 | delay(10); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/examples/Multiple/ArrayOfLedArrays/ArrayOfLedArrays.ino: -------------------------------------------------------------------------------- 1 | // ArrayOfLedArrays - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on 2 | // using multiple controllers. In this example, we're going to set up three NEOPIXEL strips on three 3 | // different pins, each strip getting its own CRGB array to be played with, only this time they're going 4 | // to be all parts of an array of arrays. 5 | 6 | #include 7 | 8 | #define NUM_STRIPS 3 9 | #define NUM_LEDS_PER_STRIP 60 10 | CRGB leds[NUM_STRIPS][NUM_LEDS_PER_STRIP]; 11 | 12 | // For mirroring strips, all the "special" stuff happens just in setup. We 13 | // just addLeds multiple times, once for each strip 14 | void setup() { 15 | // tell FastLED there's 60 NEOPIXEL leds on pin 10 16 | FastLED.addLeds(leds[0], NUM_LEDS_PER_STRIP); 17 | 18 | // tell FastLED there's 60 NEOPIXEL leds on pin 11 19 | FastLED.addLeds(leds[1], NUM_LEDS_PER_STRIP); 20 | 21 | // tell FastLED there's 60 NEOPIXEL leds on pin 12 22 | FastLED.addLeds(leds[2], NUM_LEDS_PER_STRIP); 23 | 24 | } 25 | 26 | void loop() { 27 | // This outer loop will go over each strip, one at a time 28 | for(int x = 0; x < NUM_STRIPS; x++) { 29 | // This inner loop will go over each led in the current strip, one at a time 30 | for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) { 31 | leds[x][i] = CRGB::Red; 32 | FastLED.show(); 33 | leds[x][i] = CRGB::Black; 34 | delay(100); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/examples/Multiple/MirroringSample/MirroringSample.ino: -------------------------------------------------------------------------------- 1 | // MirroringSample - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on 2 | // using multiple controllers. In this example, we're going to set up four NEOPIXEL strips on four 3 | // different pins, and show the same thing on all four of them, a simple bouncing dot/cyclon type pattern 4 | 5 | #include 6 | 7 | #define NUM_LEDS_PER_STRIP 60 8 | CRGB leds[NUM_LEDS_PER_STRIP]; 9 | 10 | // For mirroring strips, all the "special" stuff happens just in setup. We 11 | // just addLeds multiple times, once for each strip 12 | void setup() { 13 | // tell FastLED there's 60 NEOPIXEL leds on pin 4 14 | FastLED.addLeds(leds, NUM_LEDS_PER_STRIP); 15 | 16 | // tell FastLED there's 60 NEOPIXEL leds on pin 5 17 | FastLED.addLeds(leds, NUM_LEDS_PER_STRIP); 18 | 19 | // tell FastLED there's 60 NEOPIXEL leds on pin 6 20 | FastLED.addLeds(leds, NUM_LEDS_PER_STRIP); 21 | 22 | // tell FastLED there's 60 NEOPIXEL leds on pin 7 23 | FastLED.addLeds(leds, NUM_LEDS_PER_STRIP); 24 | } 25 | 26 | void loop() { 27 | for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) { 28 | // set our current dot to red 29 | leds[i] = CRGB::Red; 30 | FastLED.show(); 31 | // clear our current dot before we move on 32 | leds[i] = CRGB::Black; 33 | delay(100); 34 | } 35 | 36 | for(int i = NUM_LEDS_PER_STRIP-1; i >= 0; i--) { 37 | // set our current dot to red 38 | leds[i] = CRGB::Red; 39 | FastLED.show(); 40 | // clear our current dot before we move on 41 | leds[i] = CRGB::Black; 42 | delay(100); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/examples/Multiple/MultiArrays/MultiArrays.ino: -------------------------------------------------------------------------------- 1 | // MultiArrays - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on 2 | // using multiple controllers. In this example, we're going to set up three NEOPIXEL strips on three 3 | // different pins, each strip getting its own CRGB array to be played with 4 | 5 | #include 6 | 7 | #define NUM_LEDS_PER_STRIP 60 8 | CRGB redLeds[NUM_LEDS_PER_STRIP]; 9 | CRGB greenLeds[NUM_LEDS_PER_STRIP]; 10 | CRGB blueLeds[NUM_LEDS_PER_STRIP]; 11 | 12 | // For mirroring strips, all the "special" stuff happens just in setup. We 13 | // just addLeds multiple times, once for each strip 14 | void setup() { 15 | // tell FastLED there's 60 NEOPIXEL leds on pin 10 16 | FastLED.addLeds(redLeds, NUM_LEDS_PER_STRIP); 17 | 18 | // tell FastLED there's 60 NEOPIXEL leds on pin 11 19 | FastLED.addLeds(greenLeds, NUM_LEDS_PER_STRIP); 20 | 21 | // tell FastLED there's 60 NEOPIXEL leds on pin 12 22 | FastLED.addLeds(blueLeds, NUM_LEDS_PER_STRIP); 23 | 24 | } 25 | 26 | void loop() { 27 | for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) { 28 | // set our current dot to red, green, and blue 29 | redLeds[i] = CRGB::Red; 30 | greenLeds[i] = CRGB::Green; 31 | blueLeds[i] = CRGB::Blue; 32 | FastLED.show(); 33 | // clear our current dot before we move on 34 | redLeds[i] = CRGB::Black; 35 | greenLeds[i] = CRGB::Black; 36 | blueLeds[i] = CRGB::Blue; 37 | delay(100); 38 | } 39 | 40 | for(int i = NUM_LEDS_PER_STRIP-1; i >= 0; i--) { 41 | // set our current dot to red, green, and blue 42 | redLeds[i] = CRGB::Red; 43 | greenLeds[i] = CRGB::Green; 44 | blueLeds[i] = CRGB::Blue; 45 | FastLED.show(); 46 | // clear our current dot before we move on 47 | redLeds[i] = CRGB::Black; 48 | greenLeds[i] = CRGB::Black; 49 | blueLeds[i] = CRGB::Blue; 50 | delay(100); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/examples/Multiple/MultipleStripsInOneArray/MultipleStripsInOneArray.ino: -------------------------------------------------------------------------------- 1 | // MultipleStripsInOneArray - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on 2 | // using multiple controllers. In this example, we're going to set up four NEOPIXEL strips on three 3 | // different pins, each strip will be referring to a different part of the single led array 4 | 5 | #include 6 | 7 | #define NUM_STRIPS 3 8 | #define NUM_LEDS_PER_STRIP 60 9 | #define NUM_LEDS NUM_LEDS_PER_STRIP * NUM_STRIPS 10 | 11 | CRGB leds[NUM_STRIPS * NUM_LEDS_PER_STRIP]; 12 | 13 | // For mirroring strips, all the "special" stuff happens just in setup. We 14 | // just addLeds multiple times, once for each strip 15 | void setup() { 16 | // tell FastLED there's 60 NEOPIXEL leds on pin 10, starting at index 0 in the led array 17 | FastLED.addLeds(leds, 0, NUM_LEDS_PER_STRIP); 18 | 19 | // tell FastLED there's 60 NEOPIXEL leds on pin 11, starting at index 60 in the led array 20 | FastLED.addLeds(leds, NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP); 21 | 22 | // tell FastLED there's 60 NEOPIXEL leds on pin 12, starting at index 120 in the led array 23 | FastLED.addLeds(leds, 2 * NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP); 24 | 25 | } 26 | 27 | void loop() { 28 | for(int i = 0; i < NUM_LEDS; i++) { 29 | leds[i] = CRGB::Red; 30 | FastLED.show(); 31 | leds[i] = CRGB::Black; 32 | delay(100); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/examples/Multiple/OctoWS2811Demo/OctoWS2811Demo.ino: -------------------------------------------------------------------------------- 1 | #define USE_OCTOWS2811 2 | #include 3 | #include 4 | 5 | #define NUM_LEDS_PER_STRIP 64 6 | #define NUM_STRIPS 8 7 | 8 | CRGB leds[NUM_STRIPS * NUM_LEDS_PER_STRIP]; 9 | 10 | // Pin layouts on the teensy 3: 11 | // OctoWS2811: 2,14,7,8,6,20,21,5 12 | 13 | void setup() { 14 | LEDS.addLeds(leds, NUM_LEDS_PER_STRIP); 15 | LEDS.setBrightness(32); 16 | } 17 | 18 | void loop() { 19 | static uint8_t hue = 0; 20 | for(int i = 0; i < NUM_STRIPS; i++) { 21 | for(int j = 0; j < NUM_LEDS_PER_STRIP; j++) { 22 | leds[(i*NUM_LEDS_PER_STRIP) + j] = CHSV((32*i) + hue+j,192,255); 23 | } 24 | } 25 | 26 | // Set the first n leds on each strip to show which strip it is 27 | for(int i = 0; i < NUM_STRIPS; i++) { 28 | for(int j = 0; j <= i; j++) { 29 | leds[(i*NUM_LEDS_PER_STRIP) + j] = CRGB::Red; 30 | } 31 | } 32 | 33 | hue++; 34 | 35 | LEDS.show(); 36 | LEDS.delay(10); 37 | } 38 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/examples/Multiple/ParallelOutputDemo/ParallelOutputDemo.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define NUM_LEDS_PER_STRIP 64 4 | // Note: this can be 12 if you're using a teensy 3 and don't mind soldering the pads on the back 5 | #define NUM_STRIPS 16 6 | 7 | CRGB leds[NUM_STRIPS * NUM_LEDS_PER_STRIP]; 8 | 9 | // Pin layouts on the teensy 3/3.1: 10 | // WS2811_PORTD: 2,14,7,8,6,20,21,5 11 | // WS2811_PORTC: 15,22,23,9,10,13,11,12,28,27,29,30 (these last 4 are pads on the bottom of the teensy) 12 | // WS2811_PORTDC: 2,14,7,8,6,20,21,5,15,22,23,9,10,13,11,12 - 16 way parallel 13 | // 14 | // Pin layouts on the due 15 | // WS2811_PORTA: 69,68,61,60,59,100,58,31 (note: pin 100 only available on the digix) 16 | // WS2811_PORTB: 90,91,92,93,94,95,96,97 (note: only available on the digix) 17 | // WS2811_PORTD: 25,26,27,28,14,15,29,11 18 | // 19 | 20 | void setup() { 21 | // LEDS.addLeds(leds, NUM_LEDS_PER_STRIP); 22 | // LEDS.addLeds(leds, NUM_LEDS_PER_STRIP); 23 | // LEDS.addLeds(leds, NUM_LEDS_PER_STRIP).setCorrection(TypicalLEDStrip); 24 | LEDS.addLeds(leds, NUM_LEDS_PER_STRIP); 25 | LEDS.setBrightness(32); 26 | } 27 | 28 | void loop() { 29 | static uint8_t hue = 0; 30 | for(int i = 0; i < NUM_STRIPS; i++) { 31 | for(int j = 0; j < NUM_LEDS_PER_STRIP; j++) { 32 | leds[(i*NUM_LEDS_PER_STRIP) + j] = CHSV((32*i) + hue+j,192,255); 33 | } 34 | } 35 | 36 | // Set the first n leds on each strip to show which strip it is 37 | for(int i = 0; i < NUM_STRIPS; i++) { 38 | for(int j = 0; j <= i; j++) { 39 | leds[(i*NUM_LEDS_PER_STRIP) + j] = CRGB::Red; 40 | } 41 | } 42 | 43 | hue++; 44 | 45 | LEDS.show(); 46 | LEDS.delay(10); 47 | } 48 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/examples/NoisePlayground/NoisePlayground.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define kMatrixWidth 16 4 | #define kMatrixHeight 16 5 | 6 | #define NUM_LEDS (kMatrixWidth * kMatrixHeight) 7 | // Param for different pixel layouts 8 | #define kMatrixSerpentineLayout true 9 | 10 | // led array 11 | CRGB leds[kMatrixWidth * kMatrixHeight]; 12 | 13 | // x,y, & time values 14 | uint32_t x,y,v_time,hue_time,hxy; 15 | 16 | // Play with the values of the variables below and see what kinds of effects they 17 | // have! More octaves will make things slower. 18 | 19 | // how many octaves to use for the brightness and hue functions 20 | uint8_t octaves=1; 21 | uint8_t hue_octaves=3; 22 | 23 | // the 'distance' between points on the x and y axis 24 | int xscale=57771; 25 | int yscale=57771; 26 | 27 | // the 'distance' between x/y points for the hue noise 28 | int hue_scale=1; 29 | 30 | // how fast we move through time & hue noise 31 | int time_speed=1111; 32 | int hue_speed=31; 33 | 34 | // adjust these values to move along the x or y axis between frames 35 | int x_speed=331; 36 | int y_speed=1111; 37 | 38 | void loop() { 39 | // fill the led array 2/16-bit noise values 40 | fill_2dnoise16(LEDS.leds(), kMatrixWidth, kMatrixHeight, kMatrixSerpentineLayout, 41 | octaves,x,xscale,y,yscale,v_time, 42 | hue_octaves,hxy,hue_scale,hxy,hue_scale,hue_time, false); 43 | 44 | LEDS.show(); 45 | 46 | // adjust the intra-frame time values 47 | x += x_speed; 48 | y += y_speed; 49 | v_time += time_speed; 50 | hue_time += hue_speed; 51 | // delay(50); 52 | } 53 | 54 | 55 | void setup() { 56 | // initialize the x/y and time values 57 | random16_set_seed(8934); 58 | random16_add_entropy(analogRead(3)); 59 | 60 | Serial.begin(57600); 61 | Serial.println("resetting!"); 62 | 63 | delay(3000); 64 | LEDS.addLeds(leds,NUM_LEDS); 65 | LEDS.setBrightness(96); 66 | 67 | hxy = (uint32_t)((uint32_t)random16() << 16) + (uint32_t)random16(); 68 | x = (uint32_t)((uint32_t)random16() << 16) + (uint32_t)random16(); 69 | y = (uint32_t)((uint32_t)random16() << 16) + (uint32_t)random16(); 70 | v_time = (uint32_t)((uint32_t)random16() << 16) + (uint32_t)random16(); 71 | hue_time = (uint32_t)((uint32_t)random16() << 16) + (uint32_t)random16(); 72 | 73 | } 74 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/examples/RGBSetDemo/RGBSetDemo.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #define NUM_LEDS 40 3 | 4 | CRGBArray leds; 5 | 6 | void setup() { FastLED.addLeds(leds, NUM_LEDS); } 7 | 8 | void loop(){ 9 | static uint8_t hue; 10 | for(int i = 0; i < NUM_LEDS/2; i++) { 11 | // fade everything out 12 | leds.fadeToBlackBy(40); 13 | 14 | // let's set an led value 15 | leds[i] = CHSV(hue++,255,255); 16 | 17 | // now, let's first 20 leds to the top 20 leds, 18 | leds(NUM_LEDS/2,NUM_LEDS-1) = leds(NUM_LEDS/2 - 1 ,0); 19 | FastLED.delay(33); 20 | } 21 | } 22 | 23 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/extras/AppleII.s65: -------------------------------------------------------------------------------- 1 | KBD = $C000 ;Read keydown 2 | KBDSTRB = $C010 ;Reset keybd 3 | 4 | SPKR = $C030 ;Toggle speaker 5 | 6 | ; TTL digital output pins on 7 | ; 16-pin DIP game connector 8 | SETAN0 = $C058 9 | CLRAN0 = $C059 10 | SETAN1 = $C05A 11 | CLRAN1 = $C05B 12 | SETAN2 = $C05C 13 | CLRAN2 = $C05D 14 | SETAN3 = $C05E 15 | CLRAN3 = $C05F 16 | 17 | PIN12ON = CLRAN3 18 | PIN12OFF= SETAN3 19 | PIN13ON = CLRAN2 20 | PIN13OFF= SETAN2 21 | PIN14ON = CLRAN1 22 | PIN14OFF= SETAN1 23 | PIN15ON = CLRAN0 24 | PIN15OFF= SETAN0 25 | 26 | ;Special for pin 5, except on //gs 27 | C040STROBE = $C040 28 | PIN5STROBE = C040STROBE 29 | 30 | SolidApple = $C062 ; read SW1 or SA 31 | OpenApple = $C061 ; read SW0 or OA 32 | 33 | VBL = $C019 ; vertical blanking 34 | 35 | WAIT = $FCA8 ; wait a little while 36 | 37 | CROUT = $FD8E ; print a CR 38 | PRBYTE = $FDDA ; print a hex byte 39 | 40 | 41 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/extras/RainbowDemo.bin.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/libraries/FastLED-3.2.9/extras/RainbowDemo.bin.zip -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/extras/RainbowDemo.s65: -------------------------------------------------------------------------------- 1 | ; "Rainbow with glitter" demo 2 | ; for "FastLED6502" 3 | ; 4 | ; Runs on an Apple ][, ][+, //e, or //gs 5 | ; 6 | ; Supports APA102, Adafruit DotStar, 7 | ; LPD8806, and WS2801 LED strips. 8 | ; 9 | ; LED strip connects to game port pins, 10 | ; see FastLED6502.s65 for details. 11 | ; 12 | ; Mark Kriegsman, February 2015 13 | 14 | #define NUM_LEDS 100 15 | #define BRIGHTNESS 64 16 | #define CHIPSET APA102 17 | #define DATA_PIN 14 18 | #define CLOCK_PIN 5 19 | 20 | * = $6000 21 | 22 | #include "FastLED6502.s65" 23 | #include "AppleII.s65" 24 | 25 | gHue .byt 0 26 | gHueDelta .byt 17 27 | gHueSpeed .byt 7 28 | 29 | 30 | Setup 31 | lda #0 32 | sta gHue 33 | 34 | Loop 35 | lda gHue 36 | clc 37 | adc gHueSpeed 38 | sta gHue 39 | ldx gHue 40 | ldy gHueDelta 41 | ; Fill RGB array with HSV rainbow 42 | jsr FastLED_FillRainbow_XY 43 | ; Use master brightness control 44 | lda #BRIGHTNESS 45 | sta FastLED_Brightness 46 | CheckOpenApple 47 | bit OpenApple 48 | bpl CheckSolidApple 49 | ; Add glitter if requested 50 | jsr AddGlitter 51 | CheckSolidApple 52 | bit SolidApple 53 | bpl DoDisplay 54 | ; Pulse brightness if requested 55 | jsr PulseBrightness 56 | DoDisplay 57 | ; This is where the magic happens 58 | jsr FastLED_Show 59 | jmp Loop 60 | 61 | 62 | AddGlitter 63 | ldy #3 64 | MaybeAdd1Glitter 65 | jsr FastLED_Random8 66 | cmp FastLED_NumPixels 67 | bcs SkipThis1Glitter 68 | tax 69 | lda #$FF 70 | sta ledsR,x 71 | sta ledsG,x 72 | sta ledsB,x 73 | SkipThis1Glitter 74 | dey 75 | bne MaybeAdd1Glitter 76 | rts 77 | 78 | 79 | PulseBrightness 80 | lda #13 81 | jsr FastLED_Beat8 82 | clc 83 | adc #12 84 | bcc PulseBright1 85 | lda #$FF 86 | PulseBright1 87 | sta FastLED_Brightness 88 | rts 89 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/fastspi_dma.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/libraries/FastLED-3.2.9/fastspi_dma.h -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/fastspi_types.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTSPI_TYPES_H 2 | #define __INC_FASTSPI_TYPES_H 3 | 4 | #include "FastLED.h" 5 | 6 | FASTLED_NAMESPACE_BEGIN 7 | 8 | // Some helper macros for getting at mis-ordered byte values 9 | #define SPI_B0 (RGB_BYTE0(RGB_ORDER) + (MASK_SKIP_BITS & SKIP)) 10 | #define SPI_B1 (RGB_BYTE1(RGB_ORDER) + (MASK_SKIP_BITS & SKIP)) 11 | #define SPI_B2 (RGB_BYTE2(RGB_ORDER) + (MASK_SKIP_BITS & SKIP)) 12 | #define SPI_ADVANCE (3 + (MASK_SKIP_BITS & SKIP)) 13 | 14 | /// Some of the SPI controllers will need to perform a transform on each byte before doing 15 | /// anyting with it. Creating a class of this form and passing it in as a template parameter to 16 | /// writeBytes/writeBytes3 below will ensure that the body of this method will get called on every 17 | /// byte worked on. Recommendation, make the adjust method aggressively inlined. 18 | /// 19 | /// TODO: Convinience macro for building these 20 | class DATA_NOP { 21 | public: 22 | static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data) { return data; } 23 | static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); } 24 | static __attribute__((always_inline)) inline void postBlock(int /* len */) { } 25 | }; 26 | 27 | #define FLAG_START_BIT 0x80 28 | #define MASK_SKIP_BITS 0x3F 29 | 30 | // Clock speed dividers 31 | #define SPEED_DIV_2 2 32 | #define SPEED_DIV_4 4 33 | #define SPEED_DIV_8 8 34 | #define SPEED_DIV_16 16 35 | #define SPEED_DIV_32 32 36 | #define SPEED_DIV_64 64 37 | #define SPEED_DIV_128 128 38 | 39 | #define MAX_DATA_RATE 0 40 | 41 | FASTLED_NAMESPACE_END 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/led_sysdefs.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_H 2 | #define __INC_LED_SYSDEFS_H 3 | 4 | #include "FastLED.h" 5 | 6 | #include "fastled_config.h" 7 | 8 | #if defined(NRF51) || defined(__RFduino__) || defined (__Simblee__) 9 | #include "platforms/arm/nrf51/led_sysdefs_arm_nrf51.h" 10 | #elif defined(NRF52_SERIES) 11 | #include "platforms/arm/nrf52/led_sysdefs_arm_nrf52.h" 12 | #elif defined(__MK20DX128__) || defined(__MK20DX256__) 13 | // Include k20/T3 headers 14 | #include "platforms/arm/k20/led_sysdefs_arm_k20.h" 15 | #elif defined(__MK66FX1M0__) || defined(__MK64FX512__) 16 | // Include k66/T3.6 headers 17 | #include "platforms/arm/k66/led_sysdefs_arm_k66.h" 18 | #elif defined(__MKL26Z64__) 19 | // Include kl26/T-LC headers 20 | #include "platforms/arm/kl26/led_sysdefs_arm_kl26.h" 21 | #elif defined(__SAM3X8E__) 22 | // Include sam/due headers 23 | #include "platforms/arm/sam/led_sysdefs_arm_sam.h" 24 | #elif defined(STM32F10X_MD) || defined(__STM32F1__) 25 | #include "platforms/arm/stm32/led_sysdefs_arm_stm32.h" 26 | #elif defined(__SAMD21G18A__) || defined(__SAMD21J18A__) || defined(__SAMD21E17A__) || defined(__SAMD21E18A__) || defined(__SAMD51G19A__) || defined(__SAMD51J19A__) 27 | #include "platforms/arm/d21/led_sysdefs_arm_d21.h" 28 | #elif defined(ESP8266) 29 | #include "platforms/esp/8266/led_sysdefs_esp8266.h" 30 | #elif defined(ESP32) 31 | #include "platforms/esp/32/led_sysdefs_esp32.h" 32 | #else 33 | // AVR platforms 34 | #include "platforms/avr/led_sysdefs_avr.h" 35 | #endif 36 | 37 | #ifndef FASTLED_NAMESPACE_BEGIN 38 | #define FASTLED_NAMESPACE_BEGIN 39 | #define FASTLED_NAMESPACE_END 40 | #define FASTLED_USING_NAMESPACE 41 | #endif 42 | 43 | // Arduino.h needed for convenience functions digitalPinToPort/BitMask/portOutputRegister and the pinMode methods. 44 | #ifdef ARDUINO 45 | #include 46 | #endif 47 | 48 | #define CLKS_PER_US (F_CPU/1000000) 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "FastLED", 3 | "description": "FastLED is a library for programming addressable rgb led strips (APA102/Dotstar, WS2812/Neopixel, LPD8806, and a dozen others) acting both as a driver and as a library for color management and fast math.", 4 | "keywords": "led,noise,rgb,math,fast", 5 | "authors": [ 6 | { 7 | "name": "Daniel Garcia", 8 | "url": "https://github.com/focalintent", 9 | "maintainer": true 10 | }, 11 | { 12 | "name": "Mark Kriegsman", 13 | "url": "https://github.com/kriegsman", 14 | "maintainer": true 15 | } 16 | ], 17 | "repository": { 18 | "type": "git", 19 | "url": "https://github.com/FastLED/FastLED.git" 20 | }, 21 | "version": "3.2.9", 22 | "license": "MIT", 23 | "homepage": "http://fastled.io", 24 | "frameworks": "arduino", 25 | "platforms": "atmelavr, atmelsam, freescalekinetis, nordicnrf51, nxplpc, ststm32, teensy, espressif8266, espressif32, nordicnrf52", 26 | "export": { 27 | "exclude": [ 28 | "docs", 29 | "extras" 30 | ] 31 | }, 32 | "build": { 33 | "srcFilter": [ 34 | "+<*.c>", 35 | "+<*.cpp>", 36 | "+<*.h>" 37 | ], 38 | "libArchive": false 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/library.properties: -------------------------------------------------------------------------------- 1 | name=FastLED 2 | version=3.2.9 3 | author=Daniel Garcia 4 | maintainer=Daniel Garcia 5 | sentence=Multi-platform library for controlling dozens of different types of LEDs along with optimized math, effect, and noise functions. 6 | paragraph=Multi-platform library for controlling dozens of different types of LEDs along with optimized math, effect, and noise functions. 7 | category=Display 8 | url=https://github.com/FastLED/FastLED 9 | architectures=* 10 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms.cpp: -------------------------------------------------------------------------------- 1 | #define FASTLED_INTERNAL 2 | 3 | 4 | // Interrupt handlers cannot be defined in the header. 5 | // They must be defined as C functions, or they won't 6 | // be found (due to name mangling), and thus won't 7 | // override any default weak definition. 8 | #if defined(NRF52_SERIES) 9 | 10 | #include "platforms/arm/nrf52/led_sysdefs_arm_nrf52.h" 11 | #include "platforms/arm/nrf52/arbiter_nrf52.h" 12 | 13 | uint32_t isrCount; 14 | 15 | #ifdef __cplusplus 16 | extern "C" { 17 | #endif 18 | // NOTE: Update platforms.cpp in root of FastLED library if this changes 19 | #if defined(FASTLED_NRF52_ENABLE_PWM_INSTANCE0) 20 | void PWM0_IRQHandler(void) { isrCount++; PWM_Arbiter<0>::isr_handler(); } 21 | #endif 22 | #if defined(FASTLED_NRF52_ENABLE_PWM_INSTANCE1) 23 | void PWM1_IRQHandler(void) { isrCount++; PWM_Arbiter<1>::isr_handler(); } 24 | #endif 25 | #if defined(FASTLED_NRF52_ENABLE_PWM_INSTANCE2) 26 | void PWM2_IRQHandler(void) { isrCount++; PWM_Arbiter<2>::isr_handler(); } 27 | #endif 28 | #if defined(FASTLED_NRF52_ENABLE_PWM_INSTANCE3) 29 | void PWM3_IRQHandler(void) { isrCount++; PWM_Arbiter<3>::isr_handler(); } 30 | #endif 31 | #ifdef __cplusplus 32 | } 33 | #endif 34 | 35 | #endif // defined(NRF52_SERIES) 36 | 37 | 38 | 39 | // FASTLED_NAMESPACE_BEGIN 40 | // FASTLED_NAMESPACE_END 41 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_PLATFORMS_H 2 | #define __INC_PLATFORMS_H 3 | 4 | #include "FastLED.h" 5 | 6 | #include "fastled_config.h" 7 | 8 | #if defined(NRF51) 9 | #include "platforms/arm/nrf51/fastled_arm_nrf51.h" 10 | #elif defined(NRF52_SERIES) 11 | #include "platforms/arm/nrf52/fastled_arm_nrf52.h" 12 | #elif defined(__MK20DX128__) || defined(__MK20DX256__) 13 | // Include k20/T3 headers 14 | #include "platforms/arm/k20/fastled_arm_k20.h" 15 | #elif defined(__MK66FX1M0__) || defined(__MK64FX512__) 16 | // Include k66/T3.6 headers 17 | #include "platforms/arm/k66/fastled_arm_k66.h" 18 | #elif defined(__MKL26Z64__) 19 | // Include kl26/T-LC headers 20 | #include "platforms/arm/kl26/fastled_arm_kl26.h" 21 | #elif defined(__SAM3X8E__) 22 | // Include sam/due headers 23 | #include "platforms/arm/sam/fastled_arm_sam.h" 24 | #elif defined(STM32F10X_MD) || defined(__STM32F1__) 25 | #include "platforms/arm/stm32/fastled_arm_stm32.h" 26 | #elif defined(__SAMD21G18A__) || defined(__SAMD21J18A__) || defined(__SAMD21E17A__) || defined(__SAMD21E18A__) 27 | #include "platforms/arm/d21/fastled_arm_d21.h" 28 | #elif defined(__SAMD51G19A__) || defined(__SAMD51J19A__) 29 | #include "platforms/arm/d51/fastled_arm_d51.h" 30 | #elif defined(ESP8266) 31 | #include "platforms/esp/8266/fastled_esp8266.h" 32 | #elif defined(ESP32) 33 | #include "platforms/esp/32/fastled_esp32.h" 34 | #else 35 | // AVR platforms 36 | #include "platforms/avr/fastled_avr.h" 37 | #endif 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/d21/clockless_arm_d21.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_CLOCKLESS_ARM_D21 2 | #define __INC_CLOCKLESS_ARM_D21 3 | 4 | #include "../common/m0clockless.h" 5 | FASTLED_NAMESPACE_BEGIN 6 | #define FASTLED_HAS_CLOCKLESS 1 7 | 8 | template 9 | class ClocklessController : public CPixelLEDController { 10 | typedef typename FastPinBB::port_ptr_t data_ptr_t; 11 | typedef typename FastPinBB::port_t data_t; 12 | 13 | data_t mPinMask; 14 | data_ptr_t mPort; 15 | CMinWait mWait; 16 | public: 17 | virtual void init() { 18 | FastPinBB::setOutput(); 19 | mPinMask = FastPinBB::mask(); 20 | mPort = FastPinBB::port(); 21 | } 22 | 23 | virtual uint16_t getMaxRefreshRate() const { return 400; } 24 | 25 | virtual void showPixels(PixelController & pixels) { 26 | mWait.wait(); 27 | cli(); 28 | if(!showRGBInternal(pixels)) { 29 | sei(); delayMicroseconds(WAIT_TIME); cli(); 30 | showRGBInternal(pixels); 31 | } 32 | sei(); 33 | mWait.mark(); 34 | } 35 | 36 | // This method is made static to force making register Y available to use for data on AVR - if the method is non-static, then 37 | // gcc will use register Y for the this pointer. 38 | static uint32_t showRGBInternal(PixelController pixels) { 39 | struct M0ClocklessData data; 40 | data.d[0] = pixels.d[0]; 41 | data.d[1] = pixels.d[1]; 42 | data.d[2] = pixels.d[2]; 43 | data.s[0] = pixels.mScale[0]; 44 | data.s[1] = pixels.mScale[1]; 45 | data.s[2] = pixels.mScale[2]; 46 | data.e[0] = pixels.e[0]; 47 | data.e[1] = pixels.e[1]; 48 | data.e[2] = pixels.e[2]; 49 | data.adj = pixels.mAdvance; 50 | 51 | typename FastPin::port_ptr_t portBase = FastPin::port(); 52 | return showLedData<8,4,T1,T2,T3,RGB_ORDER, WAIT_TIME>(portBase, FastPin::mask(), pixels.mData, pixels.mLen, &data); 53 | } 54 | 55 | 56 | }; 57 | 58 | FASTLED_NAMESPACE_END 59 | 60 | 61 | #endif // __INC_CLOCKLESS_ARM_D21 62 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/d21/fastled_arm_d21.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_D21_H 2 | #define __INC_FASTLED_ARM_D21_H 3 | 4 | #include "fastpin_arm_d21.h" 5 | #include "clockless_arm_d21.h" 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/d21/led_sysdefs_arm_d21.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_D21_H 2 | #define __INC_LED_SYSDEFS_ARM_D21_H 3 | 4 | 5 | #define FASTLED_ARM 6 | #define FASTLED_ARM_M0_PLUS 7 | 8 | #ifndef INTERRUPT_THRESHOLD 9 | #define INTERRUPT_THRESHOLD 1 10 | #endif 11 | 12 | // Default to allowing interrupts 13 | #ifndef FASTLED_ALLOW_INTERRUPTS 14 | #define FASTLED_ALLOW_INTERRUPTS 1 15 | #endif 16 | 17 | #if FASTLED_ALLOW_INTERRUPTS == 1 18 | #define FASTLED_ACCURATE_CLOCK 19 | #endif 20 | 21 | // reusing/abusing cli/sei defs for due 22 | #define cli() __disable_irq(); 23 | #define sei() __enable_irq(); 24 | 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/d51/README.txt: -------------------------------------------------------------------------------- 1 | FastLED updates for adafruit FEATHER M4 and fixes to ITSBITSY M4 compiles 2 | SAMD51 3 | 4 | only tested on FEATHER M4 with DOTSTAR and neopixel strips 5 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/d51/fastled_arm_d51.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_D51_H 2 | #define __INC_FASTLED_ARM_D51_H 3 | 4 | #include "fastpin_arm_d51.h" 5 | #include "clockless_arm_d51.h" 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/d51/led_sysdefs_arm_d51.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_D51_H 2 | #define __INC_LED_SYSDEFS_ARM_D51_H 3 | 4 | 5 | #define FASTLED_ARM 6 | // Note this is an M4, not an M0+, but this enables the shared m0clockless.h 7 | #define FASTLED_ARM_M0_PLUS 8 | 9 | #ifndef INTERRUPT_THRESHOLD 10 | #define INTERRUPT_THRESHOLD 1 11 | #endif 12 | 13 | // Default to allowing interrupts 14 | #ifndef FASTLED_ALLOW_INTERRUPTS 15 | #define FASTLED_ALLOW_INTERRUPTS 0 16 | #endif 17 | 18 | #if FASTLED_ALLOW_INTERRUPTS == 1 19 | #define FASTLED_ACCURATE_CLOCK 20 | #endif 21 | 22 | // reusing/abusing cli/sei defs for due 23 | #define cli() __disable_irq(); 24 | #define sei() __enable_irq(); 25 | 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/k20/fastled_arm_k20.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_K20_H 2 | #define __INC_FASTLED_ARM_K20_H 3 | 4 | // Include the k20 headers 5 | #include "fastpin_arm_k20.h" 6 | #include "fastspi_arm_k20.h" 7 | #include "octows2811_controller.h" 8 | #include "ws2812serial_controller.h" 9 | #include "smartmatrix_t3.h" 10 | #include "clockless_arm_k20.h" 11 | #include "clockless_block_arm_k20.h" 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/k20/led_sysdefs_arm_k20.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_K20_H 2 | #define __INC_LED_SYSDEFS_ARM_K20_H 3 | 4 | #define FASTLED_TEENSY3 5 | #define FASTLED_ARM 6 | 7 | #ifndef INTERRUPT_THRESHOLD 8 | #define INTERRUPT_THRESHOLD 1 9 | #endif 10 | 11 | // Default to allowing interrupts 12 | #ifndef FASTLED_ALLOW_INTERRUPTS 13 | #define FASTLED_ALLOW_INTERRUPTS 1 14 | #endif 15 | 16 | #if FASTLED_ALLOW_INTERRUPTS == 1 17 | #define FASTLED_ACCURATE_CLOCK 18 | #endif 19 | 20 | #if (F_CPU == 96000000) 21 | #define CLK_DBL 1 22 | #endif 23 | 24 | // Get some system include files 25 | #include 26 | #include // for cli/se definitions 27 | 28 | // Define the register types 29 | #if defined(ARDUINO) // && ARDUINO < 150 30 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 31 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 32 | #endif 33 | 34 | extern volatile uint32_t systick_millis_count; 35 | # define MS_COUNTER systick_millis_count 36 | 37 | 38 | // Default to using PROGMEM, since TEENSY3 provides it 39 | // even though all it does is ignore it. Just being 40 | // conservative here in case TEENSY3 changes. 41 | #ifndef FASTLED_USE_PROGMEM 42 | #define FASTLED_USE_PROGMEM 1 43 | #endif 44 | 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/k20/octows2811_controller.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_OCTOWS2811_CONTROLLER_H 2 | #define __INC_OCTOWS2811_CONTROLLER_H 3 | 4 | #ifdef USE_OCTOWS2811 5 | 6 | // #include "OctoWS2811.h" 7 | 8 | FASTLED_NAMESPACE_BEGIN 9 | 10 | template 11 | class COctoWS2811Controller : public CPixelLEDController { 12 | OctoWS2811 *pocto; 13 | uint8_t *drawbuffer,*framebuffer; 14 | 15 | void _init(int nLeds) { 16 | if(pocto == NULL) { 17 | drawbuffer = (uint8_t*)malloc(nLeds * 8 * 3); 18 | framebuffer = (uint8_t*)malloc(nLeds * 8 * 3); 19 | 20 | // byte ordering is handled in show by the pixel controller 21 | int config = WS2811_RGB; 22 | config |= CHIP; 23 | 24 | pocto = new OctoWS2811(nLeds, framebuffer, drawbuffer, config); 25 | 26 | pocto->begin(); 27 | } 28 | } 29 | public: 30 | COctoWS2811Controller() { pocto = NULL; } 31 | 32 | 33 | virtual void init() { /* do nothing yet */ } 34 | 35 | typedef union { 36 | uint8_t bytes[8]; 37 | uint32_t raw[2]; 38 | } Lines; 39 | 40 | virtual void showPixels(PixelController & pixels) { 41 | _init(pixels.size()); 42 | 43 | uint8_t *pData = drawbuffer; 44 | while(pixels.has(1)) { 45 | Lines b; 46 | 47 | for(int i = 0; i < 8; i++) { b.bytes[i] = pixels.loadAndScale0(i); } 48 | transpose8x1_MSB(b.bytes,pData); pData += 8; 49 | for(int i = 0; i < 8; i++) { b.bytes[i] = pixels.loadAndScale1(i); } 50 | transpose8x1_MSB(b.bytes,pData); pData += 8; 51 | for(int i = 0; i < 8; i++) { b.bytes[i] = pixels.loadAndScale2(i); } 52 | transpose8x1_MSB(b.bytes,pData); pData += 8; 53 | pixels.stepDithering(); 54 | pixels.advanceData(); 55 | } 56 | 57 | pocto->show(); 58 | } 59 | 60 | }; 61 | 62 | FASTLED_NAMESPACE_END 63 | 64 | #endif 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/k20/smartmatrix_t3.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_SMARTMATRIX_T3_H 2 | #define __INC_SMARTMATRIX_T3_H 3 | 4 | #ifdef SmartMatrix_h 5 | #include 6 | 7 | FASTLED_NAMESPACE_BEGIN 8 | 9 | extern SmartMatrix *pSmartMatrix; 10 | 11 | // note - dmx simple must be included before FastSPI for this code to be enabled 12 | class CSmartMatrixController : public CPixelLEDController { 13 | SmartMatrix matrix; 14 | 15 | public: 16 | // initialize the LED controller 17 | virtual void init() { 18 | // Initialize 32x32 LED Matrix 19 | matrix.begin(); 20 | matrix.setBrightness(255); 21 | matrix.setColorCorrection(ccNone); 22 | 23 | // Clear screen 24 | clearLeds(0); 25 | matrix.swapBuffers(); 26 | pSmartMatrix = &matrix; 27 | } 28 | 29 | virtual void showPixels(PixelController & pixels) { 30 | if(SMART_MATRIX_CAN_TRIPLE_BUFFER) { 31 | rgb24 *md = matrix.getRealBackBuffer(); 32 | } else { 33 | rgb24 *md = matrix.backBuffer(); 34 | } 35 | while(pixels.has(1)) { 36 | md->red = pixels.loadAndScale0(); 37 | md->green = pixels.loadAndScale1(); 38 | md->blue = pixels.loadAndScale2(); 39 | md++; 40 | pixels.advanceData(); 41 | pixels.stepDithering(); 42 | } 43 | matrix.swapBuffers(); 44 | if(SMART_MATRIX_CAN_TRIPLE_BUFFER && pixels.advanceBy() > 0) { 45 | matrix.setBackBuffer(pixels.mData); 46 | } 47 | } 48 | 49 | }; 50 | 51 | FASTLED_NAMESPACE_END 52 | 53 | #endif 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/k20/ws2812serial_controller.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_WS2812SERIAL_CONTROLLER_H 2 | #define __INC_WS2812SERIAL_CONTROLLER_H 3 | 4 | #ifdef USE_WS2812SERIAL 5 | 6 | FASTLED_NAMESPACE_BEGIN 7 | 8 | template 9 | class CWS2812SerialController : public CPixelLEDController { 10 | WS2812Serial *pserial; 11 | uint8_t *drawbuffer,*framebuffer; 12 | 13 | void _init(int nLeds) { 14 | if (pserial == NULL) { 15 | drawbuffer = (uint8_t*)malloc(nLeds * 3); 16 | framebuffer = (uint8_t*)malloc(nLeds * 12); 17 | pserial = new WS2812Serial(nLeds, framebuffer, drawbuffer, DATA_PIN, WS2812_RGB); 18 | pserial->begin(); 19 | } 20 | } 21 | public: 22 | CWS2812SerialController() { pserial = NULL; } 23 | 24 | virtual void init() { /* do nothing yet */ } 25 | 26 | virtual void showPixels(PixelController & pixels) { 27 | _init(pixels.size()); 28 | 29 | uint8_t *p = drawbuffer; 30 | 31 | while(pixels.has(1)) { 32 | *p++ = pixels.loadAndScale0(); 33 | *p++ = pixels.loadAndScale1(); 34 | *p++ = pixels.loadAndScale2(); 35 | pixels.stepDithering(); 36 | pixels.advanceData(); 37 | } 38 | pserial->show(); 39 | } 40 | 41 | }; 42 | 43 | FASTLED_NAMESPACE_END 44 | 45 | #endif // USE_WS2812SERIAL 46 | #endif // __INC_WS2812SERIAL_CONTROLLER_H 47 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/k66/fastled_arm_k66.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_K66_H 2 | #define __INC_FASTLED_ARM_K66_H 3 | 4 | // Include the k66 headers 5 | #include "fastpin_arm_k66.h" 6 | #include "fastspi_arm_k66.h" 7 | #include "../k20/octows2811_controller.h" 8 | #include "../k20/ws2812serial_controller.h" 9 | #include "../k20/smartmatrix_t3.h" 10 | #include "clockless_arm_k66.h" 11 | #include "clockless_block_arm_k66.h" 12 | 13 | #endif 14 | 15 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/k66/led_sysdefs_arm_k66.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_K66_H 2 | #define __INC_LED_SYSDEFS_ARM_K66_H 3 | 4 | #define FASTLED_TEENSY3 5 | #define FASTLED_ARM 6 | 7 | #ifndef INTERRUPT_THRESHOLD 8 | #define INTERRUPT_THRESHOLD 1 9 | #endif 10 | 11 | // Default to allowing interrupts 12 | #ifndef FASTLED_ALLOW_INTERRUPTS 13 | #define FASTLED_ALLOW_INTERRUPTS 1 14 | #endif 15 | 16 | #if FASTLED_ALLOW_INTERRUPTS == 1 17 | #define FASTLED_ACCURATE_CLOCK 18 | #endif 19 | 20 | #if (F_CPU == 192000000) 21 | #define CLK_DBL 1 22 | #endif 23 | 24 | // Get some system include files 25 | #include 26 | #include // for cli/se definitions 27 | 28 | // Define the register types 29 | #if defined(ARDUINO) // && ARDUINO < 150 30 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 31 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 32 | #endif 33 | 34 | extern volatile uint32_t systick_millis_count; 35 | # define MS_COUNTER systick_millis_count 36 | 37 | 38 | // Default to using PROGMEM, since TEENSY3 provides it 39 | // even though all it does is ignore it. Just being 40 | // conservative here in case TEENSY3 changes. 41 | #ifndef FASTLED_USE_PROGMEM 42 | #define FASTLED_USE_PROGMEM 1 43 | #endif 44 | 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/kl26/clockless_arm_kl26.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_CLOCKLESS_ARM_KL26 2 | #define __INC_CLOCKLESS_ARM_KL26 3 | 4 | #include "../common/m0clockless.h" 5 | FASTLED_NAMESPACE_BEGIN 6 | #define FASTLED_HAS_CLOCKLESS 1 7 | 8 | template 9 | class ClocklessController : public CPixelLEDController { 10 | typedef typename FastPinBB::port_ptr_t data_ptr_t; 11 | typedef typename FastPinBB::port_t data_t; 12 | 13 | data_t mPinMask; 14 | data_ptr_t mPort; 15 | CMinWait mWait; 16 | public: 17 | virtual void init() { 18 | FastPinBB::setOutput(); 19 | mPinMask = FastPinBB::mask(); 20 | mPort = FastPinBB::port(); 21 | } 22 | 23 | virtual uint16_t getMaxRefreshRate() const { return 400; } 24 | 25 | virtual void showPixels(PixelController & pixels) { 26 | mWait.wait(); 27 | cli(); 28 | uint32_t clocks = showRGBInternal(pixels); 29 | if(!clocks) { 30 | sei(); delayMicroseconds(WAIT_TIME); cli(); 31 | clocks = showRGBInternal(pixels); 32 | } 33 | long microsTaken = CLKS_TO_MICROS(clocks * ((T1 + T2 + T3) * 24)); 34 | MS_COUNTER += (microsTaken / 1000); 35 | sei(); 36 | mWait.mark(); 37 | } 38 | 39 | // This method is made static to force making register Y available to use for data on AVR - if the method is non-static, then 40 | // gcc will use register Y for the this pointer. 41 | static uint32_t showRGBInternal(PixelController pixels) { 42 | struct M0ClocklessData data; 43 | data.d[0] = pixels.d[0]; 44 | data.d[1] = pixels.d[1]; 45 | data.d[2] = pixels.d[2]; 46 | data.s[0] = pixels.mScale[0]; 47 | data.s[1] = pixels.mScale[1]; 48 | data.s[2] = pixels.mScale[2]; 49 | data.e[0] = pixels.e[0]; 50 | data.e[1] = pixels.e[1]; 51 | data.e[2] = pixels.e[2]; 52 | data.adj = pixels.mAdvance; 53 | 54 | typename FastPin::port_ptr_t portBase = FastPin::port(); 55 | return showLedData<4,8,T1,T2,T3,RGB_ORDER, WAIT_TIME>(portBase, FastPin::mask(), pixels.mData, pixels.mLen, &data); 56 | // return 0; // 0x00FFFFFF - _VAL; 57 | } 58 | 59 | 60 | }; 61 | 62 | FASTLED_NAMESPACE_END 63 | 64 | 65 | #endif // __INC_CLOCKLESS_ARM_KL26 66 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/kl26/fastled_arm_kl26.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_KL26_H 2 | #define __INC_FASTLED_ARM_KL26_H 3 | 4 | // Include the k20 headers 5 | #include "fastpin_arm_kl26.h" 6 | #include "fastspi_arm_kl26.h" 7 | #include "clockless_arm_kl26.h" 8 | #include "../k20/ws2812serial_controller.h" 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/kl26/led_sysdefs_arm_kl26.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_KL26_H 2 | #define __INC_LED_SYSDEFS_ARM_KL26_H 3 | 4 | #define FASTLED_TEENSYLC 5 | #define FASTLED_ARM 6 | #define FASTLED_ARM_M0_PLUS 7 | 8 | #ifndef INTERRUPT_THRESHOLD 9 | #define INTERRUPT_THRESHOLD 1 10 | #endif 11 | 12 | #define FASTLED_SPI_BYTE_ONLY 13 | 14 | // Default to allowing interrupts 15 | #ifndef FASTLED_ALLOW_INTERRUPTS 16 | #define FASTLED_ALLOW_INTERRUPTS 1 17 | #endif 18 | 19 | #if FASTLED_ALLOW_INTERRUPTS == 1 20 | #define FASTLED_ACCURATE_CLOCK 21 | #endif 22 | 23 | #if (F_CPU == 96000000) 24 | #define CLK_DBL 1 25 | #endif 26 | 27 | // Get some system include files 28 | #include 29 | #include // for cli/se definitions 30 | 31 | // Define the register types 32 | #if defined(ARDUINO) // && ARDUINO < 150 33 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 34 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 35 | #endif 36 | 37 | extern volatile uint32_t systick_millis_count; 38 | # define MS_COUNTER systick_millis_count 39 | 40 | // Default to using PROGMEM since TEENSYLC provides it 41 | // even though all it does is ignore it. Just being 42 | // conservative here in case TEENSYLC changes. 43 | #ifndef FASTLED_USE_PROGMEM 44 | #define FASTLED_USE_PROGMEM 1 45 | #endif 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/nrf51/fastled_arm_nrf51.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_NRF51_H 2 | #define __INC_FASTLED_ARM_NRF51_H 3 | 4 | // Include the k20 headers 5 | #include "fastpin_arm_nrf51.h" 6 | #include "fastspi_arm_nrf51.h" 7 | #include "clockless_arm_nrf51.h" 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/nrf51/led_sysdefs_arm_nrf51.h: -------------------------------------------------------------------------------- 1 | #ifndef __LED_SYSDEFS_ARM_NRF51 2 | #define __LED_SYSDEFS_ARM_NRF51 3 | 4 | #ifndef NRF51 5 | #define NRF51 6 | #endif 7 | 8 | #define LED_TIMER NRF_TIMER1 9 | #define FASTLED_NO_PINMAP 10 | #define FASTLED_HAS_CLOCKLESS 11 | 12 | #define FASTLED_SPI_BYTE_ONLY 13 | 14 | #define FASTLED_ARM 15 | #define FASTLED_ARM_M0 16 | 17 | #ifndef F_CPU 18 | #define F_CPU 16000000 19 | #endif 20 | 21 | #include 22 | #include 23 | #include 24 | 25 | typedef volatile uint32_t RoReg; 26 | typedef volatile uint32_t RwReg; 27 | typedef uint32_t prog_uint32_t; 28 | typedef uint8_t boolean; 29 | 30 | #define PROGMEM 31 | #define NO_PROGMEM 32 | #define NEED_CXX_BITS 33 | 34 | // Default to NOT using PROGMEM here 35 | #ifndef FASTLED_USE_PROGMEM 36 | #define FASTLED_USE_PROGMEM 0 37 | #endif 38 | 39 | #ifndef FASTLED_ALLOW_INTERRUPTS 40 | #define FASTLED_ALLOW_INTERRUPTS 1 41 | #endif 42 | 43 | #define cli() __disable_irq(); 44 | #define sei() __enable_irq(); 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/nrf52/fastled_arm_nrf52.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_NRF52_H 2 | #define __INC_FASTLED_ARM_NRF52_H 3 | 4 | #include "led_sysdefs_arm_nrf52.h" 5 | #include "arbiter_nrf52.h" 6 | #include "fastpin_arm_nrf52.h" 7 | #include "fastspi_arm_nrf52.h" 8 | #include "clockless_arm_nrf52.h" 9 | 10 | #endif // #ifndef __INC_FASTLED_ARM_NRF52_H 11 | 12 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/nrf52/led_sysdefs_arm_nrf52.h: -------------------------------------------------------------------------------- 1 | #ifndef __LED_SYSDEFS_ARM_NRF52 2 | #define __LED_SYSDEFS_ARM_NRF52 3 | 4 | #define FASTLED_ARM 5 | 6 | #ifndef F_CPU 7 | #define F_CPU 64000000 // the NRF52 series has a 64MHz CPU 8 | #endif 9 | 10 | // even though CPU is at 64MHz, use the 8MHz-defined timings because... 11 | // PWM module runs at 16MHz 12 | // SPI0..2 runs at 8MHz 13 | #define CLOCKLESS_FREQUENCY 16000000 // the NRF52 has EasyDMA for PWM module at 16MHz 14 | 15 | #ifndef F_TIMER 16 | #define F_TIMER 16000000 // the NRF52 timer is 16MHz, even though CPU is 64MHz 17 | #endif 18 | 19 | #if !defined(FASTLED_USE_PROGMEM) 20 | #define FASTLED_USE_PROGMEM 0 // nRF52 series have flat memory model 21 | #endif 22 | 23 | #if !defined(FASTLED_ALLOW_INTERRUPTS) 24 | #define FASTLED_ALLOW_INTERRUPTS 1 25 | #endif 26 | 27 | // Use PWM instance 0 28 | // See clockless_arm_nrf52.h and (in root of library) platforms.cpp 29 | #define FASTLED_NRF52_ENABLE_PWM_INSTANCE0 30 | 31 | #if defined(FASTLED_NRF52_NEVER_INLINE) 32 | #define FASTLED_NRF52_INLINE_ATTRIBUTE __attribute__((always_inline)) inline 33 | #else 34 | #define FASTLED_NRF52_INLINE_ATTRIBUTE __attribute__((always_inline)) inline 35 | #endif 36 | 37 | 38 | 39 | #include 40 | #include // for FastSPI 41 | #include // for Clockless 42 | #include // for Clockless / anything else using interrupts 43 | typedef __I uint32_t RoReg; 44 | typedef __IO uint32_t RwReg; 45 | 46 | #define cli() __disable_irq() 47 | #define sei() __enable_irq() 48 | 49 | #define FASTLED_NRF52_DEBUGPRINT(format, ...) 50 | //#define FASTLED_NRF52_DEBUGPRINT(format, ...)\ 51 | // do {\ 52 | // FastLED_NRF52_DebugPrint(format, ##__VA_ARGS__);\ 53 | // } while(0); 54 | 55 | 56 | 57 | 58 | #endif // __LED_SYSDEFS_ARM_NRF52 59 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/sam/fastled_arm_sam.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_SAM_H 2 | #define __INC_FASTLED_ARM_SAM_H 3 | 4 | // Include the sam headers 5 | #include "fastpin_arm_sam.h" 6 | #include "fastspi_arm_sam.h" 7 | #include "clockless_arm_sam.h" 8 | #include "clockless_block_arm_sam.h" 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/sam/led_sysdefs_arm_sam.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_SAM_H 2 | #define __INC_LED_SYSDEFS_ARM_SAM_H 3 | 4 | 5 | #define FASTLED_ARM 6 | 7 | // Setup DUE timer defines/channels/etc... 8 | #ifndef DUE_TIMER_CHANNEL 9 | #define DUE_TIMER_GROUP 0 10 | #endif 11 | 12 | #ifndef DUE_TIMER_CHANNEL 13 | #define DUE_TIMER_CHANNEL 0 14 | #endif 15 | 16 | #define DUE_TIMER ((DUE_TIMER_GROUP==0) ? TC0 : ((DUE_TIMER_GROUP==1) ? TC1 : TC2)) 17 | #define DUE_TIMER_ID (ID_TC0 + (DUE_TIMER_GROUP*3) + DUE_TIMER_CHANNEL) 18 | #define DUE_TIMER_VAL (DUE_TIMER->TC_CHANNEL[DUE_TIMER_CHANNEL].TC_CV << 1) 19 | #define DUE_TIMER_RUNNING ((DUE_TIMER->TC_CHANNEL[DUE_TIMER_CHANNEL].TC_SR & TC_SR_CLKSTA) != 0) 20 | 21 | #ifndef INTERRUPT_THRESHOLD 22 | #define INTERRUPT_THRESHOLD 1 23 | #endif 24 | 25 | // Default to allowing interrupts 26 | #ifndef FASTLED_ALLOW_INTERRUPTS 27 | #define FASTLED_ALLOW_INTERRUPTS 1 28 | #endif 29 | 30 | #if FASTLED_ALLOW_INTERRUPTS == 1 31 | #define FASTLED_ACCURATE_CLOCK 32 | #endif 33 | 34 | // reusing/abusing cli/sei defs for due 35 | #define cli() __disable_irq(); __disable_fault_irq(); 36 | #define sei() __enable_irq(); __enable_fault_irq(); 37 | 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/stm32/fastled_arm_stm32.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_SAM_H 2 | #define __INC_FASTLED_ARM_SAM_H 3 | 4 | // Include the sam headers 5 | #include "fastpin_arm_stm32.h" 6 | // #include "fastspi_arm_stm32.h" 7 | #include "clockless_arm_stm32.h" 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/arm/stm32/led_sysdefs_arm_stm32.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_SAM_H 2 | #define __INC_LED_SYSDEFS_ARM_SAM_H 3 | 4 | #if defined(STM32F10X_MD) 5 | 6 | #include 7 | 8 | #define FASTLED_NAMESPACE_BEGIN namespace NSFastLED { 9 | #define FASTLED_NAMESPACE_END } 10 | #define FASTLED_USING_NAMESPACE using namespace NSFastLED; 11 | 12 | // reusing/abusing cli/sei defs for due 13 | #define cli() __disable_irq(); __disable_fault_irq(); 14 | #define sei() __enable_irq(); __enable_fault_irq(); 15 | 16 | #elif defined (__STM32F1__) 17 | 18 | #include "cm3_regs.h" 19 | 20 | #define cli() nvic_globalirq_disable() 21 | #define sei() nvic_globalirq_enable() 22 | 23 | #else 24 | #error "Platform not supported" 25 | #endif 26 | 27 | #define FASTLED_ARM 28 | 29 | #ifndef INTERRUPT_THRESHOLD 30 | #define INTERRUPT_THRESHOLD 1 31 | #endif 32 | 33 | // Default to allowing interrupts 34 | #ifndef FASTLED_ALLOW_INTERRUPTS 35 | #define FASTLED_ALLOW_INTERRUPTS 0 36 | #endif 37 | 38 | #if FASTLED_ALLOW_INTERRUPTS == 1 39 | #define FASTLED_ACCURATE_CLOCK 40 | #endif 41 | 42 | // pgmspace definitions 43 | #define PROGMEM 44 | #define pgm_read_dword(addr) (*(const unsigned long *)(addr)) 45 | #define pgm_read_dword_near(addr) pgm_read_dword(addr) 46 | 47 | // Default to NOT using PROGMEM here 48 | #ifndef FASTLED_USE_PROGMEM 49 | #define FASTLED_USE_PROGMEM 0 50 | #endif 51 | 52 | // data type defs 53 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 54 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 55 | 56 | #define FASTLED_NO_PINMAP 57 | 58 | #ifndef F_CPU 59 | #define F_CPU 72000000 60 | #endif 61 | #endif 62 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/avr/fastled_avr.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_AVR_H 2 | #define __INC_FASTLED_AVR_H 3 | 4 | #include "fastpin_avr.h" 5 | #include "fastspi_avr.h" 6 | #include "clockless_trinket.h" 7 | 8 | // Default to using PROGMEM 9 | #ifndef FASTLED_USE_PROGMEM 10 | #define FASTLED_USE_PROGMEM 1 11 | #endif 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/avr/led_sysdefs_avr.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_AVR_H 2 | #define __INC_LED_SYSDEFS_AVR_H 3 | 4 | #define FASTLED_AVR 5 | 6 | #ifndef INTERRUPT_THRESHOLD 7 | #define INTERRUPT_THRESHOLD 2 8 | #endif 9 | 10 | #define FASTLED_SPI_BYTE_ONLY 11 | 12 | #include 13 | #include // for cli/se definitions 14 | 15 | // Define the register types 16 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 17 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 18 | 19 | 20 | // Default to disallowing interrupts (may want to gate this on teensy2 vs. other arm platforms, since the 21 | // teensy2 has a good, fast millis interrupt implementation) 22 | #ifndef FASTLED_ALLOW_INTERRUPTS 23 | #define FASTLED_ALLOW_INTERRUPTS 0 24 | #endif 25 | 26 | #if FASTLED_ALLOW_INTERRUPTS == 1 27 | #define FASTLED_ACCURATE_CLOCK 28 | #endif 29 | 30 | 31 | // Default to using PROGMEM here 32 | #ifndef FASTLED_USE_PROGMEM 33 | #define FASTLED_USE_PROGMEM 1 34 | #endif 35 | 36 | #if defined(ARDUINO_AVR_DIGISPARK) || defined(ARDUINO_AVR_DIGISPARKPRO) 37 | #ifndef NO_CORRECTION 38 | #define NO_CORRECTION 1 39 | #endif 40 | #endif 41 | 42 | extern "C" { 43 | # if defined(CORE_TEENSY) || defined(TEENSYDUINO) 44 | extern volatile unsigned long timer0_millis_count; 45 | # define MS_COUNTER timer0_millis_count 46 | # elif defined(ATTINY_CORE) 47 | extern volatile unsigned long millis_timer_millis; 48 | # define MS_COUNTER millis_timer_millis 49 | # else 50 | extern volatile unsigned long timer0_millis; 51 | # define MS_COUNTER timer0_millis 52 | # endif 53 | }; 54 | 55 | // special defs for the tiny environments 56 | #if defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega8U2__) || defined(__AVR_AT90USB162__) || defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) || defined(__AVR_ATtiny167__) || defined(__AVR_ATtiny87__) || defined(__AVR_ATtinyX41__) || defined(__AVR_ATtiny841__) || defined(__AVR_ATtiny441__) 57 | #define LIB8_ATTINY 1 58 | #define FASTLED_NEEDS_YIELD 59 | #endif 60 | 61 | #if defined(ARDUINO) && (ARDUINO > 150) && !defined(IS_BEAN) && !defined (ARDUINO_AVR_DIGISPARK) && !defined (LIB8_TINY) && !defined (ARDUINO_AVR_LARDU_328E) 62 | // don't need YIELD defined by the library 63 | #else 64 | #define FASTLED_NEEDS_YIELD 65 | extern "C" void yield(); 66 | #endif 67 | #endif 68 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/esp/32/fastled_esp32.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "fastpin_esp32.h" 4 | 5 | #ifdef FASTLED_ESP32_I2S 6 | #include "clockless_i2s_esp32.h" 7 | #else 8 | #include "clockless_rmt_esp32.h" 9 | #endif 10 | 11 | // #include "clockless_block_esp32.h" 12 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/esp/32/led_sysdefs_esp32.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef ESP32 4 | #define ESP32 5 | #endif 6 | 7 | #define FASTLED_ESP32 8 | 9 | // Use system millis timer 10 | #define FASTLED_HAS_MILLIS 11 | 12 | typedef volatile uint32_t RoReg; 13 | typedef volatile uint32_t RwReg; 14 | typedef unsigned long prog_uint32_t; 15 | 16 | 17 | // Default to NOT using PROGMEM here 18 | #ifndef FASTLED_USE_PROGMEM 19 | # define FASTLED_USE_PROGMEM 0 20 | #endif 21 | 22 | #ifndef FASTLED_ALLOW_INTERRUPTS 23 | # define FASTLED_ALLOW_INTERRUPTS 1 24 | # define INTERRUPT_THRESHOLD 0 25 | #endif 26 | 27 | #define NEED_CXX_BITS 28 | 29 | // These can be overridden 30 | # define FASTLED_ESP32_RAW_PIN_ORDER 31 | 32 | // #define cli() os_intr_lock(); 33 | // #define sei() os_intr_lock(); 34 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/esp/8266/fastled_esp8266.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "fastpin_esp8266.h" 4 | #include "clockless_esp8266.h" 5 | #include "clockless_block_esp8266.h" 6 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/platforms/esp/8266/led_sysdefs_esp8266.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef ESP8266 4 | #define ESP8266 5 | #endif 6 | 7 | #define FASTLED_ESP8266 8 | 9 | // Use system millis timer 10 | #define FASTLED_HAS_MILLIS 11 | 12 | typedef volatile uint32_t RoReg; 13 | typedef volatile uint32_t RwReg; 14 | typedef uint32_t prog_uint32_t; 15 | 16 | 17 | // Default to NOT using PROGMEM here 18 | #ifndef FASTLED_USE_PROGMEM 19 | # define FASTLED_USE_PROGMEM 0 20 | #endif 21 | 22 | #ifndef FASTLED_ALLOW_INTERRUPTS 23 | # define FASTLED_ALLOW_INTERRUPTS 1 24 | # define INTERRUPT_THRESHOLD 0 25 | #endif 26 | 27 | #define NEED_CXX_BITS 28 | 29 | // These can be overridden 30 | #if !defined(FASTLED_ESP8266_RAW_PIN_ORDER) && !defined(FASTLED_ESP8266_NODEMCU_PIN_ORDER) && !defined(FASTLED_ESP8266_D1_PIN_ORDER) 31 | # ifdef ARDUINO_ESP8266_NODEMCU 32 | # define FASTLED_ESP8266_NODEMCU_PIN_ORDER 33 | # else 34 | # define FASTLED_ESP8266_RAW_PIN_ORDER 35 | # endif 36 | #endif 37 | 38 | // #define cli() os_intr_lock(); 39 | // #define sei() os_intr_lock(); 40 | -------------------------------------------------------------------------------- /libraries/FastLED-3.2.9/preview_changes.txt: -------------------------------------------------------------------------------- 1 | FastLED 3.1 preview changes: 2 | * UART in SPI mode support on AVR 3 | * Support for using both hardware SPI pinsets on the Teensy 3.x - 11/13 and 7/14. 4 | * Added UCS1904 support 5 | * Better AVR cycle counting 6 | * Split WS2812/WS2811 timings 7 | * Added DOTSTAR definition for adafruit dotstar pixels (aka APA102) 8 | * 8-way parallel output on teensy 3, 3.1 (portc,portd), due/digix (porta, portb, portd) 9 | * 12-way parallel output on teensy 3, 3.1 (portc) 10 | * 16-way parallel output on teensy 3, 3.1 (portc & portd paired) 11 | * refresh rate limiting 12 | * interrupt friendly code on teensy 3/3.1 13 | * -interrupt friendly code on AVR- <-- disabled for now 14 | * interrupt friendly code on the due 15 | * code re-org for future wider platform support 16 | * Spark Core support 17 | * arduino zero support (no hardware spi yet) 18 | * greatly improved clockless output for avr 19 | * greatly improved clockless output for arm m0 boards 20 | -------------------------------------------------------------------------------- /libraries/RTClib/README.md: -------------------------------------------------------------------------------- 1 | This is a fork of JeeLab's fantastic real time clock library for Arduino. 2 | 3 | For details on using this library with an RTC module like the DS1307, PCF8523, or DS3231, see the guide at: https://learn.adafruit.com/ds1307-real-time-clock-breakout-board-kit/overview 4 | 5 | To download. click the DOWNLOADS button to the right, and rename the uncompressed folder RTClib. 6 | 7 | Place the RTClib folder in your *arduinosketchfolder*/libraries/ folder. 8 | You may need to create the libraries subfolder if its your first library. Restart the IDE. 9 | 10 | Please note that dayOfTheWeek() ranges from 0 to 6 inclusive with 0 being 'Sunday' 11 | 12 | 13 | 14 | ## Compatibility 15 | 16 | MCU | Tested Works | Doesn't Work | Not Tested | Notes 17 | ------------------ | :----------: | :----------: | :---------: | ----- 18 | Atmega328 @ 16MHz | X | | | 19 | Atmega328 @ 12MHz | X | | | 20 | Atmega32u4 @ 16MHz | X | | | Use SDA/SCL on pins D3 & D2 21 | Atmega32u4 @ 8MHz | X | | | Use SDA/SCL on pins D3 & D2 22 | ESP8266 | X | | | SDA/SCL default to pins 4 & 5 but any two pins can be assigned as SDA/SCL using Wire.begin(SDA,SCL) 23 | Atmega2560 @ 16MHz | X | | | Use SDA/SCL on Pins 20 & 21 24 | ATSAM3X8E | X | | | Use SDA1 and SCL1 25 | ATSAM21D | X | | | 26 | ATtiny85 @ 16MHz | X | | | 27 | ATtiny85 @ 8MHz | X | | | 28 | Intel Curie @ 32MHz | | | X | 29 | STM32F2 | | | X | 30 | 31 | * ATmega328 @ 16MHz : Arduino UNO, Adafruit Pro Trinket 5V, Adafruit Metro 328, Adafruit Metro Mini 32 | * ATmega328 @ 12MHz : Adafruit Pro Trinket 3V 33 | * ATmega32u4 @ 16MHz : Arduino Leonardo, Arduino Micro, Arduino Yun, Teensy 2.0 34 | * ATmega32u4 @ 8MHz : Adafruit Flora, Bluefruit Micro 35 | * ESP8266 : Adafruit Huzzah 36 | * ATmega2560 @ 16MHz : Arduino Mega 37 | * ATSAM3X8E : Arduino Due 38 | * ATSAM21D : Arduino Zero, M0 Pro 39 | * ATtiny85 @ 16MHz : Adafruit Trinket 5V 40 | * ATtiny85 @ 8MHz : Adafruit Gemma, Arduino Gemma, Adafruit Trinket 3V 41 | 42 | 43 | -------------------------------------------------------------------------------- /libraries/RTClib/examples/ds1307/ds1307.ino: -------------------------------------------------------------------------------- 1 | // Date and time functions using a DS1307 RTC connected via I2C and Wire lib 2 | #include 3 | #include "RTClib.h" 4 | 5 | RTC_DS1307 rtc; 6 | 7 | char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; 8 | 9 | void setup () { 10 | while (!Serial); // for Leonardo/Micro/Zero 11 | 12 | Serial.begin(57600); 13 | if (! rtc.begin()) { 14 | Serial.println("Couldn't find RTC"); 15 | while (1); 16 | } 17 | 18 | if (! rtc.isrunning()) { 19 | Serial.println("RTC is NOT running!"); 20 | // following line sets the RTC to the date & time this sketch was compiled 21 | // rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); 22 | // This line sets the RTC with an explicit date & time, for example to set 23 | // January 21, 2014 at 3am you would call: 24 | // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); 25 | } 26 | } 27 | 28 | void loop () { 29 | DateTime now = rtc.now(); 30 | 31 | Serial.print(now.year(), DEC); 32 | Serial.print('/'); 33 | Serial.print(now.month(), DEC); 34 | Serial.print('/'); 35 | Serial.print(now.day(), DEC); 36 | Serial.print(" ("); 37 | Serial.print(daysOfTheWeek[now.dayOfTheWeek()]); 38 | Serial.print(") "); 39 | Serial.print(now.hour(), DEC); 40 | Serial.print(':'); 41 | Serial.print(now.minute(), DEC); 42 | Serial.print(':'); 43 | Serial.print(now.second(), DEC); 44 | Serial.println(); 45 | 46 | Serial.print(" since midnight 1/1/1970 = "); 47 | Serial.print(now.unixtime()); 48 | Serial.print("s = "); 49 | Serial.print(now.unixtime() / 86400L); 50 | Serial.println("d"); 51 | 52 | // calculate a date which is 7 days and 30 seconds into the future 53 | DateTime future (now + TimeSpan(7,12,30,6)); 54 | 55 | Serial.print(" now + 7d + 30s: "); 56 | Serial.print(future.year(), DEC); 57 | Serial.print('/'); 58 | Serial.print(future.month(), DEC); 59 | Serial.print('/'); 60 | Serial.print(future.day(), DEC); 61 | Serial.print(' '); 62 | Serial.print(future.hour(), DEC); 63 | Serial.print(':'); 64 | Serial.print(future.minute(), DEC); 65 | Serial.print(':'); 66 | Serial.print(future.second(), DEC); 67 | Serial.println(); 68 | 69 | Serial.println(); 70 | delay(3000); 71 | } -------------------------------------------------------------------------------- /libraries/RTClib/examples/ds1307SqwPin/ds1307SqwPin.ino: -------------------------------------------------------------------------------- 1 | // SQW/OUT pin mode using a DS1307 RTC connected via I2C. 2 | // 3 | // According to the data sheet (http://datasheets.maxim-ic.com/en/ds/DS1307.pdf), the 4 | // DS1307's SQW/OUT pin can be set to low, high, 1Hz, 4.096kHz, 8.192kHz, or 32.768kHz. 5 | // 6 | // This sketch reads the state of the pin, then iterates through the possible values at 7 | // 5 second intervals. 8 | // 9 | 10 | // NOTE: 11 | // You must connect a pull up resistor (~10kohm) from the SQW pin up to VCC. Without 12 | // this pull up the wave output will not work! 13 | 14 | #include 15 | #include "RTClib.h" 16 | 17 | #if defined(ARDUINO_ARCH_SAMD) 18 | // for Zero, output on USB Serial console, remove line below if using programming port to program the Zero! 19 | #define Serial SerialUSB 20 | #endif 21 | 22 | RTC_DS1307 rtc; 23 | 24 | int mode_index = 0; 25 | 26 | Ds1307SqwPinMode modes[] = {OFF, ON, SquareWave1HZ, SquareWave4kHz, SquareWave8kHz, SquareWave32kHz}; 27 | 28 | 29 | void print_mode() { 30 | Ds1307SqwPinMode mode = rtc.readSqwPinMode(); 31 | 32 | Serial.print("Sqw Pin Mode: "); 33 | switch(mode) { 34 | case OFF: Serial.println("OFF"); break; 35 | case ON: Serial.println("ON"); break; 36 | case SquareWave1HZ: Serial.println("1Hz"); break; 37 | case SquareWave4kHz: Serial.println("4.096kHz"); break; 38 | case SquareWave8kHz: Serial.println("8.192kHz"); break; 39 | case SquareWave32kHz: Serial.println("32.768kHz"); break; 40 | default: Serial.println("UNKNOWN"); break; 41 | } 42 | } 43 | 44 | void setup () { 45 | 46 | #ifndef ESP8266 47 | while (!Serial); // for Leonardo/Micro/Zero 48 | #endif 49 | 50 | Serial.begin(57600); 51 | if (! rtc.begin()) { 52 | Serial.println("Couldn't find RTC"); 53 | while (1); 54 | } 55 | 56 | print_mode(); 57 | } 58 | 59 | void loop () { 60 | rtc.writeSqwPinMode(modes[mode_index++]); 61 | print_mode(); 62 | 63 | if (mode_index > 5) { 64 | mode_index = 0; 65 | } 66 | 67 | delay(5000); 68 | } 69 | -------------------------------------------------------------------------------- /libraries/RTClib/examples/ds1307nvram/ds1307nvram.ino: -------------------------------------------------------------------------------- 1 | // Example of using the non-volatile RAM storage on the DS1307. 2 | // You can write up to 56 bytes from address 0 to 55. 3 | // Data will be persisted as long as the DS1307 has battery power. 4 | 5 | #include 6 | #include "RTClib.h" 7 | 8 | #if defined(ARDUINO_ARCH_SAMD) 9 | // for Zero, output on USB Serial console, remove line below if using programming port to program the Zero! 10 | #define Serial SerialUSB 11 | #endif 12 | 13 | RTC_DS1307 rtc; 14 | 15 | void printnvram(uint8_t address) { 16 | Serial.print("Address 0x"); 17 | Serial.print(address, HEX); 18 | Serial.print(" = 0x"); 19 | Serial.println(rtc.readnvram(address), HEX); 20 | } 21 | 22 | void setup () { 23 | 24 | #ifndef ESP8266 25 | while (!Serial); // for Leonardo/Micro/Zero 26 | #endif 27 | Serial.begin(57600); 28 | rtc.begin(); 29 | 30 | // Print old RAM contents on startup. 31 | Serial.println("Current NVRAM values:"); 32 | for (int i = 0; i < 6; ++i) { 33 | printnvram(i); 34 | } 35 | 36 | // Write some bytes to non-volatile RAM storage. 37 | // NOTE: You can only read and write from addresses 0 to 55 (i.e. 56 byte values). 38 | Serial.println("Writing NVRAM values."); 39 | // Example writing one byte at a time: 40 | rtc.writenvram(0, 0xFE); 41 | rtc.writenvram(1, 0xED); 42 | // Example writing multiple bytes: 43 | uint8_t writeData[4] = { 0xBE, 0xEF, 0x01, 0x02 }; 44 | rtc.writenvram(2, writeData, 4); 45 | 46 | // Read bytes from non-volatile RAM storage. 47 | Serial.println("Reading NVRAM values:"); 48 | // Example reading one byte at a time. 49 | Serial.println(rtc.readnvram(0), HEX); 50 | Serial.println(rtc.readnvram(1), HEX); 51 | // Example reading multiple bytes: 52 | uint8_t readData[4] = {0}; 53 | rtc.readnvram(readData, 4, 2); 54 | Serial.println(readData[0], HEX); 55 | Serial.println(readData[1], HEX); 56 | Serial.println(readData[2], HEX); 57 | Serial.println(readData[3], HEX); 58 | 59 | } 60 | 61 | void loop () { 62 | // Do nothing in the loop. 63 | } 64 | -------------------------------------------------------------------------------- /libraries/RTClib/examples/ds3231/ds3231.ino: -------------------------------------------------------------------------------- 1 | // Date and time functions using a DS3231 RTC connected via I2C and Wire lib 2 | #include 3 | #include "RTClib.h" 4 | 5 | RTC_DS3231 rtc; 6 | 7 | char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; 8 | 9 | void setup () { 10 | 11 | #ifndef ESP8266 12 | while (!Serial); // for Leonardo/Micro/Zero 13 | #endif 14 | 15 | Serial.begin(9600); 16 | 17 | delay(3000); // wait for console opening 18 | 19 | if (! rtc.begin()) { 20 | Serial.println("Couldn't find RTC"); 21 | while (1); 22 | } 23 | 24 | if (rtc.lostPower()) { 25 | Serial.println("RTC lost power, lets set the time!"); 26 | // following line sets the RTC to the date & time this sketch was compiled 27 | rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); 28 | // This line sets the RTC with an explicit date & time, for example to set 29 | // January 21, 2014 at 3am you would call: 30 | // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); 31 | } 32 | } 33 | 34 | void loop () { 35 | DateTime now = rtc.now(); 36 | 37 | Serial.print(now.year(), DEC); 38 | Serial.print('/'); 39 | Serial.print(now.month(), DEC); 40 | Serial.print('/'); 41 | Serial.print(now.day(), DEC); 42 | Serial.print(" ("); 43 | Serial.print(daysOfTheWeek[now.dayOfTheWeek()]); 44 | Serial.print(") "); 45 | Serial.print(now.hour(), DEC); 46 | Serial.print(':'); 47 | Serial.print(now.minute(), DEC); 48 | Serial.print(':'); 49 | Serial.print(now.second(), DEC); 50 | Serial.println(); 51 | 52 | Serial.print(" since midnight 1/1/1970 = "); 53 | Serial.print(now.unixtime()); 54 | Serial.print("s = "); 55 | Serial.print(now.unixtime() / 86400L); 56 | Serial.println("d"); 57 | 58 | // calculate a date which is 7 days and 30 seconds into the future 59 | DateTime future (now + TimeSpan(7,12,30,6)); 60 | 61 | Serial.print(" now + 7d + 30s: "); 62 | Serial.print(future.year(), DEC); 63 | Serial.print('/'); 64 | Serial.print(future.month(), DEC); 65 | Serial.print('/'); 66 | Serial.print(future.day(), DEC); 67 | Serial.print(' '); 68 | Serial.print(future.hour(), DEC); 69 | Serial.print(':'); 70 | Serial.print(future.minute(), DEC); 71 | Serial.print(':'); 72 | Serial.print(future.second(), DEC); 73 | Serial.println(); 74 | 75 | Serial.println(); 76 | delay(3000); 77 | } 78 | -------------------------------------------------------------------------------- /libraries/RTClib/examples/pcf8523/pcf8523.ino: -------------------------------------------------------------------------------- 1 | // Date and time functions using a DS1307 RTC connected via I2C and Wire lib 2 | #include 3 | #include "RTClib.h" 4 | 5 | RTC_PCF8523 rtc; 6 | 7 | char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; 8 | 9 | void setup () { 10 | 11 | while (!Serial) { 12 | delay(1); // for Leonardo/Micro/Zero 13 | } 14 | 15 | Serial.begin(57600); 16 | if (! rtc.begin()) { 17 | Serial.println("Couldn't find RTC"); 18 | while (1); 19 | } 20 | 21 | if (! rtc.initialized()) { 22 | Serial.println("RTC is NOT running!"); 23 | // following line sets the RTC to the date & time this sketch was compiled 24 | // rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); 25 | // This line sets the RTC with an explicit date & time, for example to set 26 | // January 21, 2014 at 3am you would call: 27 | // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); 28 | } 29 | } 30 | 31 | void loop () { 32 | DateTime now = rtc.now(); 33 | 34 | Serial.print(now.year(), DEC); 35 | Serial.print('/'); 36 | Serial.print(now.month(), DEC); 37 | Serial.print('/'); 38 | Serial.print(now.day(), DEC); 39 | Serial.print(" ("); 40 | Serial.print(daysOfTheWeek[now.dayOfTheWeek()]); 41 | Serial.print(") "); 42 | Serial.print(now.hour(), DEC); 43 | Serial.print(':'); 44 | Serial.print(now.minute(), DEC); 45 | Serial.print(':'); 46 | Serial.print(now.second(), DEC); 47 | Serial.println(); 48 | 49 | Serial.print(" since midnight 1/1/1970 = "); 50 | Serial.print(now.unixtime()); 51 | Serial.print("s = "); 52 | Serial.print(now.unixtime() / 86400L); 53 | Serial.println("d"); 54 | 55 | // calculate a date which is 7 days and 30 seconds into the future 56 | DateTime future (now + TimeSpan(7,12,30,6)); 57 | 58 | Serial.print(" now + 7d + 30s: "); 59 | Serial.print(future.year(), DEC); 60 | Serial.print('/'); 61 | Serial.print(future.month(), DEC); 62 | Serial.print('/'); 63 | Serial.print(future.day(), DEC); 64 | Serial.print(' '); 65 | Serial.print(future.hour(), DEC); 66 | Serial.print(':'); 67 | Serial.print(future.minute(), DEC); 68 | Serial.print(':'); 69 | Serial.print(future.second(), DEC); 70 | Serial.println(); 71 | 72 | Serial.println(); 73 | delay(3000); 74 | } -------------------------------------------------------------------------------- /libraries/RTClib/examples/softrtc/softrtc.ino: -------------------------------------------------------------------------------- 1 | // Date and time functions using just software, based on millis() & timer 2 | 3 | #include 4 | #include // this #include still required because the RTClib depends on it 5 | #include "RTClib.h" 6 | 7 | #if defined(ARDUINO_ARCH_SAMD) 8 | // for Zero, output on USB Serial console, remove line below if using programming port to program the Zero! 9 | #define Serial SerialUSB 10 | #endif 11 | 12 | RTC_Millis rtc; 13 | 14 | void setup () { 15 | Serial.begin(57600); 16 | // following line sets the RTC to the date & time this sketch was compiled 17 | rtc.begin(DateTime(F(__DATE__), F(__TIME__))); 18 | // This line sets the RTC with an explicit date & time, for example to set 19 | // January 21, 2014 at 3am you would call: 20 | // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); 21 | } 22 | 23 | void loop () { 24 | DateTime now = rtc.now(); 25 | 26 | Serial.print(now.year(), DEC); 27 | Serial.print('/'); 28 | Serial.print(now.month(), DEC); 29 | Serial.print('/'); 30 | Serial.print(now.day(), DEC); 31 | Serial.print(' '); 32 | Serial.print(now.hour(), DEC); 33 | Serial.print(':'); 34 | Serial.print(now.minute(), DEC); 35 | Serial.print(':'); 36 | Serial.print(now.second(), DEC); 37 | Serial.println(); 38 | 39 | Serial.print(" seconds since 1970: "); 40 | Serial.println(now.unixtime()); 41 | 42 | // calculate a date which is 7 days and 30 seconds into the future 43 | DateTime future (now.unixtime() + 7 * 86400L + 30); 44 | 45 | Serial.print(" now + 7d + 30s: "); 46 | Serial.print(future.year(), DEC); 47 | Serial.print('/'); 48 | Serial.print(future.month(), DEC); 49 | Serial.print('/'); 50 | Serial.print(future.day(), DEC); 51 | Serial.print(' '); 52 | Serial.print(future.hour(), DEC); 53 | Serial.print(':'); 54 | Serial.print(future.minute(), DEC); 55 | Serial.print(':'); 56 | Serial.print(future.second(), DEC); 57 | Serial.println(); 58 | 59 | Serial.println(); 60 | delay(3000); 61 | } 62 | -------------------------------------------------------------------------------- /libraries/RTClib/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For RTC 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | DateTime KEYWORD1 10 | RTC_DS1307 KEYWORD1 11 | RTC_Millis KEYWORD1 12 | Ds1307SqwPinMode KEYWORD1 13 | 14 | ####################################### 15 | # Methods and Functions (KEYWORD2) 16 | ####################################### 17 | 18 | year KEYWORD2 19 | month KEYWORD2 20 | day KEYWORD2 21 | hour KEYWORD2 22 | minute KEYWORD2 23 | second KEYWORD2 24 | dayOfWeek KEYWORD2 25 | secondstime KEYWORD2 26 | unixtime KEYWORD2 27 | begin KEYWORD2 28 | adjust KEYWORD2 29 | isrunning KEYWORD2 30 | now KEYWORD2 31 | readSqwPinMode KEYWORD2 32 | writeSqwPinMode KEYWORD2 33 | 34 | ####################################### 35 | # Constants (LITERAL1) 36 | ####################################### 37 | 38 | -------------------------------------------------------------------------------- /libraries/RTClib/library.properties: -------------------------------------------------------------------------------- 1 | name=RTClib 2 | version=1.2.0 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=A fork of Jeelab's fantastic RTC library 6 | paragraph=A fork of Jeelab's fantastic RTC library 7 | category=Timing 8 | url=https://github.com/adafruit/RTClib 9 | architectures=* 10 | -------------------------------------------------------------------------------- /libraries/arduino-Max72xxPanel/README.md: -------------------------------------------------------------------------------- 1 | Max72xxPanel 2 | ============ 3 | 4 | An Arduino library for controlling a canvas of sets of 8x8 LEDs driven by MAX7219 or MAX7221 controllers. [Kits][hardware] sold for below 10 USD. 5 | 6 | This is a plugin for Adafruit's core graphics library GFX, providing basic graphics primitives (points, lines, circles, characters, etc.). So besides this library, you need to download and install [Adafruit_GFX][gfx-download], *dated Jul 5th, 2013 or more recent*. 7 | 8 | Written by Mark Ruys, , 2013. 9 | 10 | 11 | Installation 12 | ------------ 13 | 14 | Place the [Max72xxPanel][download] and [Adafruit_GFX][gfx-download] library folders in your `/libraries/` folder. You may need to create the `libraries` subfolder if its your first library. Restart the Arduino IDE. 15 | 16 | 17 | Features 18 | -------- 19 | - Double buffering to prevent screen flicker. Check out our example for usage. 20 | - Support for multiple matrix displays, positioned in an arbitrary rectangular layout. You can define both the order as the rotation of each display. 21 | - Uses the [SPI library][spi] to address the display(s) connected in cascade. 22 | - Low memory footprint. 23 | - Fast, no use of NOOP's. 24 | 25 | Usage 26 | ----- 27 | 28 | Read [overview][gfx-docs] for instructions how to use Adafruit_GFX. Check out our [examples][examples] to get some inspiration. Note that to update your displays, you need to explicitely call write(). 29 | 30 | At YouTube, you'll find a [ticker tape][tickertape] and [snake] demo. 31 | 32 | 33 | [download]: https://github.com/markruys/arduino-Max72xxPanel/archive/master.zip "Download Max72xxPanel library" 34 | [gfx-download]: https://github.com/adafruit/Adafruit-GFX-Library "Download Adafruit GFX Graphics Library" 35 | [gfx-docs]: http://learn.adafruit.com/adafruit-gfx-graphics-library/overview "Documentation Adafruit GFX Graphics Library" 36 | [examples]: https://github.com/markruys/arduino-Max72xxPanel/tree/master/examples "Show Max72xxPanel examples" 37 | [hardware]: https://www.google.com/search?q=MAX7219+Red+Dot+Matrix+Module "For kits, google MAX7219 Red Dot Matrix Module" 38 | [spi]: http://arduino.cc/en/Reference/SPI "SPI library" 39 | [tickertape]: http://www.youtube.com/watch?v=a8T7ZFeaf1A "Max72xxPanel Arduino library demo (ticker tape)" 40 | [snake]: http://www.youtube.com/watch?v=FbJJyuCwohs "Max72xxPanel Arduino library demo (snake)" -------------------------------------------------------------------------------- /libraries/arduino-Max72xxPanel/README.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/libraries/arduino-Max72xxPanel/README.pdf -------------------------------------------------------------------------------- /libraries/arduino-Max72xxPanel/examples/MadFly/MadFly.pde: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | int pinCS = 10; // Attach CS to this pin, DIN to MOSI and CLK to SCK (cf http://arduino.cc/en/Reference/SPI ) 6 | int numberOfHorizontalDisplays = 1; 7 | int numberOfVerticalDisplays = 1; 8 | 9 | Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); 10 | 11 | int pinRandom = A0; 12 | 13 | int wait = 20; // In milliseconds 14 | 15 | void setup() { 16 | matrix.setIntensity(4); // Set brightness between 0 and 15 17 | 18 | // Adjust to your own needs 19 | // matrix.setPosition(0, 0, 0); // The first display is at <0, 0> 20 | // matrix.setPosition(1, 1, 0); // The second display is at <1, 0> 21 | // matrix.setPosition(2, 2, 0); // The third display is at <2, 0> 22 | // matrix.setPosition(3, 3, 0); // And the last display is at <3, 0> 23 | // ... 24 | // matrix.setRotation(0, 2); // The first display is position upside down 25 | // matrix.setRotation(3, 2); // The same hold for the last display 26 | 27 | randomSeed(analogRead(pinRandom)); // Initialize random generator 28 | } 29 | 30 | int x = numberOfHorizontalDisplays * 8 / 2; 31 | int y = numberOfVerticalDisplays * 8 / 2; 32 | int xNext, yNext; 33 | 34 | void loop() { 35 | 36 | matrix.drawPixel(x, y, HIGH); 37 | matrix.write(); // Send bitmap to display 38 | 39 | delay(wait); 40 | 41 | matrix.drawPixel(x, y, LOW); // Erase the old position of our dot 42 | 43 | do { 44 | switch ( random(4) ) { 45 | case 0: xNext = constrain(x + 1, 0, matrix.width() - 1); yNext = y; break; 46 | case 1: xNext = constrain(x - 1, 0, matrix.width() - 1); yNext = y; break; 47 | case 2: yNext = constrain(y + 1, 0, matrix.height() - 1); xNext = x; break; 48 | case 3: yNext = constrain(y - 1, 0, matrix.height() - 1); xNext = x; break; 49 | } 50 | } 51 | while ( x == xNext && y == yNext ); // Repeat until we find a new coordinate 52 | 53 | x = xNext; 54 | y = yNext; 55 | } 56 | -------------------------------------------------------------------------------- /libraries/arduino-Max72xxPanel/examples/Spin/Spin.pde: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | int pinCS = 10; // Attach CS to this pin, DIN to MOSI and CLK to SCK (cf http://arduino.cc/en/Reference/SPI ) 6 | int numberOfHorizontalDisplays = 1; 7 | int numberOfVerticalDisplays = 1; 8 | 9 | Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); 10 | 11 | void setup() { 12 | matrix.setIntensity(0); 13 | 14 | // Adjust to your own needs 15 | // matrix.setPosition(0, 0, 0); // The first display is at <0, 0> 16 | // matrix.setPosition(1, 1, 0); // The second display is at <1, 0> 17 | // matrix.setPosition(2, 2, 0); // The third display is at <2, 0> 18 | // matrix.setPosition(3, 3, 0); // And the last display is at <3, 0> 19 | // ... 20 | // matrix.setRotation(0, 2); // The first display is position upside down 21 | // matrix.setRotation(3, 2); // The same hold for the last display 22 | } 23 | 24 | int wait = 50; 25 | int inc = -2; 26 | 27 | void loop() { 28 | 29 | for ( int x = 0; x < matrix.width() - 1; x++ ) { 30 | matrix.fillScreen(LOW); 31 | matrix.drawLine(x, 0, matrix.width() - 1 - x, matrix.height() - 1, HIGH); 32 | matrix.write(); // Send bitmap to display 33 | delay(wait); 34 | } 35 | 36 | for ( int y = 0; y < matrix.height() - 1; y++ ) { 37 | matrix.fillScreen(LOW); 38 | matrix.drawLine(matrix.width() - 1, y, 0, matrix.height() - 1 - y, HIGH); 39 | matrix.write(); // Send bitmap to display 40 | delay(wait); 41 | } 42 | 43 | wait = wait + inc; 44 | if ( wait == 0 ) inc = 2; 45 | if ( wait == 50 ) inc = -2; 46 | } 47 | -------------------------------------------------------------------------------- /libraries/arduino-Max72xxPanel/examples/Ticker/Ticker.pde: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | int pinCS = 10; // Attach CS to this pin, DIN to MOSI and CLK to SCK (cf http://arduino.cc/en/Reference/SPI ) 6 | int numberOfHorizontalDisplays = 4; 7 | int numberOfVerticalDisplays = 1; 8 | 9 | Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); 10 | 11 | String tape = "Arduino"; 12 | int wait = 20; // In milliseconds 13 | 14 | int spacer = 1; 15 | int width = 5 + spacer; // The font width is 5 pixels 16 | 17 | void setup() { 18 | 19 | matrix.setIntensity(7); // Use a value between 0 and 15 for brightness 20 | 21 | // Adjust to your own needs 22 | // matrix.setPosition(0, 0, 0); // The first display is at <0, 0> 23 | // matrix.setPosition(1, 1, 0); // The second display is at <1, 0> 24 | // matrix.setPosition(2, 2, 0); // The third display is at <2, 0> 25 | // matrix.setPosition(3, 3, 0); // And the last display is at <3, 0> 26 | // ... 27 | // matrix.setRotation(0, 2); // The first display is position upside down 28 | // matrix.setRotation(3, 2); // The same hold for the last display 29 | } 30 | 31 | void loop() { 32 | 33 | for ( int i = 0 ; i < width * tape.length() + matrix.width() - 1 - spacer; i++ ) { 34 | 35 | matrix.fillScreen(LOW); 36 | 37 | int letter = i / width; 38 | int x = (matrix.width() - 1) - i % width; 39 | int y = (matrix.height() - 8) / 2; // center the text vertically 40 | 41 | while ( x + width - spacer >= 0 && letter >= 0 ) { 42 | if ( letter < tape.length() ) { 43 | matrix.drawChar(x, y, tape[letter], HIGH, LOW, 1); 44 | } 45 | 46 | letter--; 47 | x -= width; 48 | } 49 | 50 | matrix.write(); // Send bitmap to display 51 | 52 | delay(wait); 53 | } 54 | } 55 | 56 | -------------------------------------------------------------------------------- /libraries/arduino-Max72xxPanel/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For Max72xxPanel 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | Max72xxPanel KEYWORD1 10 | 11 | ####################################### 12 | # Methods and Functions (KEYWORD2) 13 | ####################################### 14 | 15 | shutdown KEYWORD2 16 | setIntensity KEYWORD2 17 | invertDisplay KEYWORD2 18 | drawPixel KEYWORD2 19 | drawLine KEYWORD2 20 | drawRect KEYWORD2 21 | fillRect KEYWORD2 22 | fillScreen KEYWORD2 23 | drawCircle KEYWORD2 24 | fillCircle KEYWORD2 25 | drawTriangle KEYWORD2 26 | fillTriangle KEYWORD2 27 | drawRoundRect KEYWORD2 28 | fillRoundRect KEYWORD2 29 | drawBitmap KEYWORD2 30 | drawChar KEYWORD2 31 | write KEYWORD2 32 | setCursor KEYWORD2 33 | setTextColor KEYWORD2 34 | setTextColor KEYWORD2 35 | setTextSize KEYWORD2 36 | setTextWrap KEYWORD2 37 | setPosition KEYWORD2 38 | setRotation KEYWORD2 39 | getRotation KEYWORD2 40 | 41 | ####################################### 42 | # Constants (LITERAL1) 43 | ####################################### 44 | 45 | -------------------------------------------------------------------------------- /libraries/arduino-Max72xxPanel/license.txt: -------------------------------------------------------------------------------- 1 | Software License Agreement (BSD License) 2 | 3 | Copyright (c) 2013, Mark Ruys. All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 1. Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 2. Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | 3. Neither the name of the copyright holders nor the names of its 13 | contributors may be used to endorse or promote products derived from 14 | this software without specific prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY 17 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /proj_img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/proj_img.jpg -------------------------------------------------------------------------------- /schemes/scheme0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/schemes/scheme0.jpg -------------------------------------------------------------------------------- /schemes/scheme1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/schemes/scheme1.jpg -------------------------------------------------------------------------------- /schemes/scheme2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexGyver/GyverString/09ef5b7fb7a38721365452b9c4c4f746fde9d8eb/schemes/scheme2.jpg --------------------------------------------------------------------------------