├── .gitignore ├── FastLED ├── FireWorks2 │ ├── FireWorks2.ino │ └── neomatrix_config.h ├── PlasmaAnimation │ ├── PlasmaAnimation.ino │ └── neomatrix_config.h ├── PolarBasics │ ├── PolarBasics.ino │ └── neomatrix_config.h ├── README.md ├── Sublime_Demos │ ├── Sublime_Demos.ino │ └── neomatrix_config.h ├── TwinkleFOX │ ├── TwinkleFOX.ino │ └── neomatrix_config.h ├── Vortex │ ├── README.md │ ├── Vortex.ino │ └── neomatrix_config.h └── neomatrix_config.h ├── GFX ├── Aurora │ ├── Attractor.h │ ├── Aurora.ino │ ├── Boid.h │ ├── Drawable.h │ ├── Effects.h │ ├── Geometry.h │ ├── LICENSE.txt │ ├── PatternAttract.h │ ├── PatternBounce.h │ ├── PatternCube.h │ ├── PatternFlock.h │ ├── PatternFlowField.h │ ├── PatternIncrementalDrift.h │ ├── PatternIncrementalDrift2.h │ ├── PatternPendulumWave.h │ ├── PatternRadar.h │ ├── PatternSpiral.h │ ├── PatternSpiro.h │ ├── PatternSwirl.h │ ├── PatternWave.h │ ├── README.md │ ├── Vector.h │ ├── _baddisplay │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── PatternFire.h │ │ ├── PatternNoiseSmearing.h │ │ ├── PatternPulse.h │ │ ├── PatternSpark.h │ │ ├── fire │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternFire.h │ │ │ ├── fire.ino │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ └── neomatrix_config.h │ │ ├── main.h │ │ ├── matrix.h │ │ ├── neomatrix_config.h │ │ ├── noisesmearing │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternNoiseSmearing.h │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ ├── neomatrix_config.h │ │ │ └── noisesmearing.ino │ │ ├── pulse │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternPulse.h │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ ├── neomatrix_config.h │ │ │ └── pulse.ino │ │ └── spark │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternSpark.h │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ ├── neomatrix_config.h │ │ │ └── spark.ino │ ├── _notmytaste │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── PatternElectricMandala.h │ │ ├── PatternInfinity.h │ │ ├── PatternInvaders.h │ │ ├── PatternLife.h │ │ ├── PatternMaze.h │ │ ├── PatternMunch.h │ │ ├── PatternPlasma.h │ │ ├── PatternRainbowSmoke.h │ │ ├── PatternSimplexNoise.h │ │ ├── PatternSnake.h │ │ ├── PatternSpin.h │ │ ├── electricmandala │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternElectricMandala.h │ │ │ ├── electricmandala.ino │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ └── neomatrix_config.h │ │ ├── infinity │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternInfinity.h │ │ │ ├── infinity.ino │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ └── neomatrix_config.h │ │ ├── invaders │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternInvaders.h │ │ │ ├── invaders.ino │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ └── neomatrix_config.h │ │ ├── life │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternLife.h │ │ │ ├── life.ino │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ └── neomatrix_config.h │ │ ├── main.h │ │ ├── matrix.h │ │ ├── maze │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternMaze.h │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ ├── maze.ino │ │ │ └── neomatrix_config.h │ │ ├── munch │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternMunch.h │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ ├── munch.ino │ │ │ └── neomatrix_config.h │ │ ├── neomatrix_config.h │ │ ├── plasma │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternPlasma.h │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ ├── neomatrix_config.h │ │ │ └── plasma.ino │ │ ├── rainbowsmoke │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternRainbowSmoke.h │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ ├── neomatrix_config.h │ │ │ └── rainbowsmoke.ino │ │ ├── simplexnoise │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternSimplexNoise.h │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ ├── neomatrix_config.h │ │ │ └── simplexnoise.ino │ │ ├── snake │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternSnake.h │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ ├── neomatrix_config.h │ │ │ └── snake.ino │ │ └── spin │ │ │ ├── Drawable.h │ │ │ ├── Effects.h │ │ │ ├── PatternSpin.h │ │ │ ├── main.h │ │ │ ├── matrix.h │ │ │ ├── neomatrix_config.h │ │ │ └── spin.ino │ ├── attract │ │ ├── Attractor.h │ │ ├── Boid.h │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── PatternAttract.h │ │ ├── Vector.h │ │ ├── attract.ino │ │ ├── main.h │ │ ├── matrix.h │ │ └── neomatrix_config.h │ ├── bounce │ │ ├── Boid.h │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── PatternBounce.h │ │ ├── Vector.h │ │ ├── bounce.ino │ │ ├── main.h │ │ ├── matrix.h │ │ └── neomatrix_config.h │ ├── cube │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── Geometry.h │ │ ├── PatternCube.h │ │ ├── cube.ino │ │ ├── main.h │ │ ├── matrix.h │ │ └── neomatrix_config.h │ ├── flock │ │ ├── Boid.h │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── PatternFlock.h │ │ ├── Vector.h │ │ ├── flock.ino │ │ ├── main.h │ │ ├── matrix.h │ │ └── neomatrix_config.h │ ├── flowfield │ │ ├── Attractor.h │ │ ├── Boid.h │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── PatternFlowField.h │ │ ├── Vector.h │ │ ├── flowfield.ino │ │ ├── main.h │ │ ├── matrix.h │ │ └── neomatrix_config.h │ ├── incrementaldrift │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── PatternIncrementalDrift.h │ │ ├── incrementaldrift.ino │ │ ├── main.h │ │ ├── matrix.h │ │ └── neomatrix_config.h │ ├── incrementaldrift2 │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── PatternIncrementalDrift2.h │ │ ├── incrementaldrift2.ino │ │ ├── main.h │ │ ├── matrix.h │ │ └── neomatrix_config.h │ ├── main.h │ ├── matrix.h │ ├── neomatrix_config.h │ ├── pendulumwave │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── PatternPendulumWave.h │ │ ├── main.h │ │ ├── matrix.h │ │ ├── neomatrix_config.h │ │ └── pendulumwave.ino │ ├── radar │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── PatternRadar.h │ │ ├── main.h │ │ ├── matrix.h │ │ ├── neomatrix_config.h │ │ └── radar.ino │ ├── spiral │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── PatternSpiral.h │ │ ├── main.h │ │ ├── matrix.h │ │ ├── neomatrix_config.h │ │ └── spiral.ino │ ├── spiro │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── PatternSpiro.h │ │ ├── main.h │ │ ├── matrix.h │ │ ├── neomatrix_config.h │ │ └── spiro.ino │ ├── swirl │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── PatternSwirl.h │ │ ├── main.h │ │ ├── matrix.h │ │ ├── neomatrix_config.h │ │ └── swirl.ino │ └── wave │ │ ├── Drawable.h │ │ ├── Effects.h │ │ ├── PatternWave.h │ │ ├── main.h │ │ ├── matrix.h │ │ ├── neomatrix_config.h │ │ └── wave.ino ├── README.md ├── fontzoom │ ├── README.md │ ├── fonts.h │ ├── fontzoom.ino │ └── neomatrix_config.h └── neomatrix_config.h ├── LEDMatrix ├── LEDSprites-Pacman │ ├── LEDSprites-Pacman.ino │ ├── LICENSE │ └── neomatrix_config.h ├── LEDText │ ├── LEDText.ino │ └── neomatrix_config.h ├── NeoMatrix_LEDMatrix │ ├── LEDMatrix_Flag.ino │ ├── NeoMatrix_LEDMatrix.ino │ ├── README │ └── neomatrix_config.h ├── README.md ├── Table_Mark_Estes │ ├── .patterns │ ├── LICENSE │ ├── README.md │ ├── Table_Mark_Estes.ino │ └── neomatrix_config.h ├── Table_Mark_Estes06 │ ├── Attractor.h │ ├── Boid.h │ ├── Drawable.h │ ├── Effects.h │ ├── Geometry.h │ ├── PatternAttract.h │ ├── PatternBounce.h │ ├── PatternCube.h │ ├── PatternFlock.h │ ├── PatternFlowField.h │ ├── PatternIncrementalDrift.h │ ├── PatternIncrementalDrift2.h │ ├── PatternPendulumWave.h │ ├── PatternRadar.h │ ├── PatternSpiral.h │ ├── PatternSpiro.h │ ├── PatternSwirl.h │ ├── PatternWave.h │ ├── Table_Mark_Estes06.ino │ ├── Vector.h │ ├── main.h │ ├── matrix.h │ └── neomatrix_config.h ├── Table_Mark_Estes14-int16-wip │ ├── Attractor.h │ ├── Boid.h │ ├── Drawable.h │ ├── Effects.h │ ├── Geometry.h │ ├── PatternAttract.h │ ├── PatternBounce.h │ ├── PatternCube.h │ ├── PatternFlock.h │ ├── PatternFlowField.h │ ├── PatternIncrementalDrift.h │ ├── PatternIncrementalDrift2.h │ ├── PatternPendulumWave.h │ ├── PatternRadar.h │ ├── PatternSpiral.h │ ├── PatternSpiro.h │ ├── PatternSwirl.h │ ├── PatternWave.h │ ├── README.md │ ├── Table_Mark_Estes14-int16-wip.ino │ ├── Vector.h │ ├── main.h │ ├── matrix.h │ └── neomatrix_config.h ├── Table_Mark_Estes14 │ ├── Attractor.h │ ├── Boid.h │ ├── Drawable.h │ ├── Effects.h │ ├── Geometry.h │ ├── PatternAttract.h │ ├── PatternBounce.h │ ├── PatternCube.h │ ├── PatternFlock.h │ ├── PatternFlowField.h │ ├── PatternIncrementalDrift.h │ ├── PatternIncrementalDrift2.h │ ├── PatternPendulumWave.h │ ├── PatternRadar.h │ ├── PatternSpiral.h │ ├── PatternSpiro.h │ ├── PatternSwirl.h │ ├── PatternWave.h │ ├── Table_Mark_Estes14.ino │ ├── Vector.h │ ├── main.h │ ├── matrix.h │ └── neomatrix_config.h ├── Table_Mark_Estes34 │ ├── Attractor.h │ ├── Boid.h │ ├── Drawable.h │ ├── Effects.h │ ├── Geometry.h │ ├── PatternAttract.h │ ├── PatternBounce.h │ ├── PatternCube.h │ ├── PatternFlock.h │ ├── PatternFlowField.h │ ├── PatternIncrementalDrift.h │ ├── PatternIncrementalDrift2.h │ ├── PatternPendulumWave.h │ ├── PatternRadar.h │ ├── PatternSpiral.h │ ├── PatternSpiro.h │ ├── PatternSwirl.h │ ├── PatternWave.h │ ├── Table_Mark_Estes34.ino │ ├── Table_Mark_Estes_Impl.h │ ├── Table_Mark_Estes_config.h │ ├── Vector.h │ ├── matrix.h │ ├── neomatrix_config.h │ ├── neomatrix_config_full.diff │ ├── neomatrix_config_full.h │ └── neomatrix_config_full.h.orig ├── Table_Mark_Estes44 │ ├── Attractor.h │ ├── Boid.h │ ├── Drawable.h │ ├── Effects.h │ ├── Geometry.h │ ├── PatternAttract.h │ ├── PatternBounce.h │ ├── PatternCube.h │ ├── PatternFlock.h │ ├── PatternFlowField.h │ ├── PatternIncrementalDrift.h │ ├── PatternIncrementalDrift2.h │ ├── PatternPendulumWave.h │ ├── PatternRadar.h │ ├── PatternSpiral.h │ ├── PatternSpiro.h │ ├── PatternSwirl.h │ ├── PatternWave.h │ ├── Table_Mark_Estes44.ino │ ├── Table_Mark_Estes_Impl.h │ ├── Table_Mark_Estes_config.h │ ├── Vector.h │ ├── matrix.h │ ├── neomatrix_config.h │ ├── neomatrix_config.h_me │ └── neomatrix_config_full.h ├── Table_Mark_Estes49 │ ├── Attractor.h │ ├── Boid.h │ ├── Drawable.h │ ├── Effects.h │ ├── Geometry.h │ ├── PatternAttract.h │ ├── PatternBounce.h │ ├── PatternCube.h │ ├── PatternFlock.h │ ├── PatternFlowField.h │ ├── PatternIncrementalDrift.h │ ├── PatternIncrementalDrift2.h │ ├── PatternPendulumWave.h │ ├── PatternRadar.h │ ├── PatternSpiral.h │ ├── PatternSpiro.h │ ├── PatternSwirl.h │ ├── PatternWave.h │ ├── Table_Mark_Estes49.ino │ ├── Table_Mark_Estes_Impl.h │ ├── Table_Mark_Estes_config.h │ ├── Vector.h │ ├── matrix.h │ ├── neomatrix_config.h │ ├── neomatrix_config.h_me │ └── neomatrix_config_full.h ├── Table_Mark_Estes50 │ ├── Attractor.h │ ├── Boid.h │ ├── Drawable.h │ ├── Effects.h │ ├── Geometry.h │ ├── PatternAttract.h │ ├── PatternBounce.h │ ├── PatternCube.h │ ├── PatternFlock.h │ ├── PatternFlowField.h │ ├── PatternIncrementalDrift.h │ ├── PatternIncrementalDrift2.h │ ├── PatternPendulumWave.h │ ├── PatternRadar.h │ ├── PatternSpiral.h │ ├── PatternSpiro.h │ ├── PatternSwirl.h │ ├── PatternWave.h │ ├── Table_Mark_Estes50.ino │ ├── Table_Mark_Estes_Impl.h │ ├── Table_Mark_Estes_config.h │ ├── Vector.h │ ├── matrix.h │ ├── neomatrix_config.h │ ├── neomatrix_config.h_me │ └── neomatrix_config_full.h ├── Table_Mark_Estes56 │ ├── Attractor.h │ ├── Boid.h │ ├── Drawable.h │ ├── Effects.h │ ├── Geometry.h │ ├── PatternAttract.h │ ├── PatternBounce.h │ ├── PatternCube.h │ ├── PatternFlock.h │ ├── PatternFlowField.h │ ├── PatternIncrementalDrift.h │ ├── PatternIncrementalDrift2.h │ ├── PatternPendulumWave.h │ ├── PatternRadar.h │ ├── PatternSpiral.h │ ├── PatternSpiro.h │ ├── PatternSwirl.h │ ├── PatternWave.h │ ├── Table_Mark_Estes56.ino │ ├── Table_Mark_Estes_Impl.h │ ├── Table_Mark_Estes_config.h │ ├── Vector.h │ ├── matrix.h │ ├── neomatrix_config.h │ ├── neomatrix_config.h_me │ └── neomatrix_config_full.h ├── Table_Mark_Estes60 │ ├── Attractor.h │ ├── Boid.h │ ├── Drawable.h │ ├── Effects.h │ ├── Geometry.h │ ├── PatternAttract.h │ ├── PatternBounce.h │ ├── PatternCube.h │ ├── PatternFlock.h │ ├── PatternFlowField.h │ ├── PatternIncrementalDrift.h │ ├── PatternIncrementalDrift2.h │ ├── PatternPendulumWave.h │ ├── PatternRadar.h │ ├── PatternSpiral.h │ ├── PatternSpiro.h │ ├── PatternSwirl.h │ ├── PatternWave.h │ ├── Table_Mark_Estes60.ino │ ├── Table_Mark_Estes_Impl.h │ ├── Table_Mark_Estes_config.h │ ├── Vector.h │ ├── matrix.h │ ├── neomatrix_config.h │ ├── neomatrix_config.h_me │ └── neomatrix_config_full.h ├── Table_Mark_Estes63 │ ├── Attractor.h │ ├── Boid.h │ ├── Drawable.h │ ├── Effects.h │ ├── Geometry.h │ ├── PatternAttract.h │ ├── PatternBounce.h │ ├── PatternCube.h │ ├── PatternFlock.h │ ├── PatternFlowField.h │ ├── PatternIncrementalDrift.h │ ├── PatternIncrementalDrift2.h │ ├── PatternPendulumWave.h │ ├── PatternRadar.h │ ├── PatternSpiral.h │ ├── PatternSpiro.h │ ├── PatternSwirl.h │ ├── PatternWave.h │ ├── Table_Mark_Estes63.ino │ ├── Table_Mark_Estes_Impl.h │ ├── Table_Mark_Estes_config.h │ ├── Vector.h │ ├── matrix.h │ ├── neomatrix_config.h │ ├── neomatrix_config.h_me │ └── neomatrix_config_full.h ├── Table_Mark_Estes69 │ ├── Attractor.h │ ├── Boid.h │ ├── Drawable.h │ ├── Effects.h │ ├── Geometry.h │ ├── PatternAttract.h │ ├── PatternBounce.h │ ├── PatternCube.h │ ├── PatternFlock.h │ ├── PatternFlowField.h │ ├── PatternIncrementalDrift.h │ ├── PatternIncrementalDrift2.h │ ├── PatternPendulumWave.h │ ├── PatternRadar.h │ ├── PatternSpiral.h │ ├── PatternSpiro.h │ ├── PatternSwirl.h │ ├── PatternWave.h │ ├── Table_Mark_Estes69.ino │ ├── Table_Mark_Estes_Impl.h │ ├── Table_Mark_Estes_config.h │ ├── Vector.h │ ├── matrix.h │ ├── neomatrix_config.h │ ├── neomatrix_config.h_me │ └── neomatrix_config_full.h └── neomatrix_config.h ├── README.md ├── neomatrix_config.h └── neomatrix_config_tftonly.h /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode/.build 2 | 3 | ~ 4 | *.swp 5 | *.swo 6 | 7 | # Compiled Object files 8 | *.slo 9 | *.lo 10 | *.o 11 | *.obj 12 | 13 | # Precompiled Headers 14 | *.gch 15 | *.pch 16 | 17 | # Compiled Dynamic libraries 18 | *.so 19 | *.dylib 20 | *.dll 21 | 22 | # Fortran module files 23 | *.mod 24 | *.smod 25 | 26 | # Compiled Static libraries 27 | *.lai 28 | *.la 29 | *.a 30 | *.lib 31 | 32 | # Executables 33 | *.exe 34 | *.out 35 | *.app 36 | -------------------------------------------------------------------------------- /FastLED/FireWorks2/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /FastLED/PlasmaAnimation/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /FastLED/PolarBasics/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /FastLED/README.md: -------------------------------------------------------------------------------- 1 | Matrix Demos here use FastLED's leds[idx] direct addressing to read and write 2 | pixels, which is not compatible with the GFX API (which does not allow reading 3 | pixels, only writing to them). 4 | 5 | Both FastLED::NeoMatrix and SmartMatrix::GFX provide that FastLED API 6 | as well as an XY mapping function to turn a coordinate into a 1D index 7 | for the FastLED backed array (which for SmartMatrix is actually only 8 | a framebuffer which is copied back to SmartMatrix's framebuffer later). 9 | 10 | * https://github.com/marcmerlin/FastLED_NeoMatrix 11 | * https://github.com/marcmerlin/SmartMatrix_GFX 12 | -------------------------------------------------------------------------------- /FastLED/Sublime_Demos/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /FastLED/TwinkleFOX/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /FastLED/Vortex/README.md: -------------------------------------------------------------------------------- 1 | Chasing trails, spiralling into centre - Adapted from pattern by Will Tatam - https://github.com/netmindz/arduino/tree/master/Vortex 2 | 3 | https://photos.app.goo.gl/EvPeGW8sUEQ3hbbs6 4 | -------------------------------------------------------------------------------- /FastLED/Vortex/Vortex.ino: -------------------------------------------------------------------------------- 1 | #include "neomatrix_config.h" 2 | 3 | #define leds matrixleds 4 | 5 | class Vortex { 6 | int x = 0; 7 | int y = 0; 8 | int right = 1; 9 | int up = 0; 10 | int w = mw - 1; 11 | int h = mh - 1; 12 | int margin = 0; 13 | int hue; 14 | 15 | public: 16 | Vortex() { 17 | 18 | } 19 | 20 | void vortex() { 21 | leds[ XY(x, y)] = CHSV(hue, 255, 255); 22 | // End of right 23 | if ((x >= (w - margin)) && (up == 0)) { 24 | up = 1; 25 | right = 0; 26 | // vortexHue += 15; 27 | } 28 | // End of up 29 | else if ((y >= (h - margin)) && (up == 1)) { 30 | up = 0; 31 | right = -1; 32 | // vortexHue += 15; 33 | } 34 | // End of left 35 | else if ((x == (0 + margin)) && (up == 0 && right == -1)) { 36 | up = -1; 37 | right = 0; 38 | // vortexHue += 15; 39 | } 40 | // End of down 41 | else if ((x == (0 + margin) && y == (1 + margin)) && (up == -1 && right == 0)) { 42 | y += up; 43 | up = 0; 44 | right = 1; 45 | hue += 15; 46 | margin++; 47 | y++; 48 | } 49 | 50 | // Final LED 51 | if (right == 0 && up == -1 && margin == ( (mh / 2) - 1)) { // >= 52 | //delay(5000); 53 | hue = random(0, 255); 54 | margin = 0; 55 | x = -1; 56 | y = 0; 57 | right = 1; 58 | up = 0; 59 | } 60 | 61 | // Option toggle? 62 | // fadeLightBy(leds, (mw * mh), 20); 63 | x += right; 64 | y += up; 65 | } 66 | }; 67 | 68 | #define SNAKE_GAP 30 69 | #define NUM_SNAKES ((NUM_LEDS / SNAKE_GAP) / 2) 70 | Vortex vortexs[NUM_SNAKES]; 71 | 72 | int vortexsStarted = 1; 73 | //int const vortexDelay = ((mw * 2) + (mh * 2) - 1); 74 | int const vortexDelay = SNAKE_GAP * 2; 75 | int vortexGap = 0; 76 | 77 | void vortex() { 78 | 79 | if (vortexsStarted < NUM_SNAKES) { 80 | if (vortexGap == vortexDelay) { 81 | vortexsStarted++; 82 | vortexGap = 0; 83 | } 84 | else { 85 | vortexGap++; 86 | } 87 | } 88 | 89 | for (int i = 0; i < vortexsStarted; i++) { 90 | vortexs[i].vortex(); 91 | } 92 | fadeToBlackBy(leds, (mw * mh), 55); // TWEAK ME 93 | //FastLED.delay(20); 94 | EVERY_N_SECONDS(10) { 95 | Serial.println(FastLED.getFPS()); 96 | } 97 | } 98 | 99 | 100 | 101 | void loop() 102 | { 103 | vortex(); 104 | matrix->show(); 105 | } 106 | 107 | 108 | void setup() { 109 | matrix_setup(); 110 | } 111 | -------------------------------------------------------------------------------- /FastLED/Vortex/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /FastLED/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/Attractor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 4 | * 5 | * Portions of this code are adapted from "Attractor" in "The Nature of Code" by Daniel Shiffman: http://natureofcode.com/ 6 | * Copyright (c) 2014 Daniel Shiffman 7 | * http://www.shiffman.net 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 10 | * this software and associated documentation files (the "Software"), to deal in 11 | * the Software without restriction, including without limitation the rights to 12 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 13 | * the Software, and to permit persons to whom the Software is furnished to do so, 14 | * subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in all 17 | * copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 21 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 22 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 23 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Vector.h" 28 | 29 | class Attractor { 30 | public: 31 | float mass; // Mass, tied to size 32 | float G; // Gravitational Constant 33 | PVector location; // Location 34 | 35 | Attractor() { 36 | location = PVector(MATRIX_CENTRE_X, MATRIX_CENTRE_Y); 37 | mass = 10; 38 | G = .5; 39 | } 40 | 41 | PVector attract(Boid m) { 42 | PVector force = location - m.location; // Calculate direction of force 43 | float d = force.mag(); // Distance between objects 44 | d = constrain(d, 5.0, 32.0); // Limiting the distance to eliminate "extreme" results for very close or very far objects 45 | force.normalize(); // Normalize vector (distance doesn't matter here, we just want this vector for direction) 46 | float strength = (G * mass * m.mass) / (d * d); // Calculate gravitional force magnitude 47 | force *= strength; // Get force vector --> magnitude * direction 48 | return force; 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /GFX/Aurora/Drawable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef AuroraDrawable_H 24 | #define AuroraDrawable_H 25 | 26 | class AuroraDrawable{ 27 | public: 28 | char* name; 29 | 30 | virtual bool isRunnable() { 31 | return false; 32 | } 33 | 34 | virtual bool isPlaylist() { 35 | return false; 36 | } 37 | 38 | // a single frame should be drawn as fast as possible, without any delay or blocking 39 | // return how many millisecond delay is requested before the next call to drawFrame() 40 | virtual unsigned int drawFrame() { 41 | // not visible in this file (defined in neomatrix_config.h) 42 | //backgroundLayer.fillScreen({ 0, 0, 0 }); 43 | return 0; 44 | }; 45 | 46 | virtual void start() {}; 47 | virtual void stop() {}; 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /GFX/Aurora/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Aurora: https://github.com/pixelmatix/aurora 2 | Copyright (c) 2014 Jason Coon 3 | 4 | Portions Copyright (c) 2014 Craig Lindley 5 | Portions Copyright (c) 2014 Daniel Shiffman 6 | Portions Copyright (c) 2013 FastLED 7 | Portions Copyright (c) 2014 Noel Bundy 8 | Portions Copyright (c) 2013 Robert Atkins 9 | Portions Copyright (c) 2014 Stefan Petrick 10 | Portions Copyright (c) 2008 Windell H Oskay 11 | 12 | Designed in collaboration with Pixelmatix using the SmartMatrix Library: http://pixelmatix.com 13 | 14 | The MIT License (MIT) 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy of 17 | this software and associated documentation files (the "Software"), to deal in 18 | the Software without restriction, including without limitation the rights to 19 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 20 | the Software, and to permit persons to whom the Software is furnished to do so, 21 | subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in all 24 | copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 28 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 29 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 30 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 31 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /GFX/Aurora/PatternIncrementalDrift2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Aurora: https://github.com/pixelmatix/aurora 4 | * Copyright (c) 2014 Jason Coon 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | * this software and associated documentation files (the "Software"), to deal in 8 | * the Software without restriction, including without limitation the rights to 9 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 10 | * the Software, and to permit persons to whom the Software is furnished to do so, 11 | * subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 18 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 19 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 20 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | */ 23 | #include "matrix.h" 24 | 25 | #ifndef PatternIncrementalDrift2_H 26 | #define PatternIncrementalDrift2_H 27 | 28 | class PatternIncrementalDrift2 : public AuroraDrawable { 29 | public: 30 | PatternIncrementalDrift2() { 31 | name = (char *)"Incremental Drift Rose"; 32 | } 33 | 34 | unsigned int drawFrame() { 35 | uint8_t dim = beatsin8(2, 170, 250); 36 | effects.DimAll(dim); 37 | 38 | for (uint16_t i = 0; i < MATRIX_WIDTH; i++) 39 | { 40 | CRGB color; 41 | 42 | uint8_t x = 0; 43 | uint8_t y = 0; 44 | 45 | if (i < MATRIX_CENTER_X) { 46 | x = beatcos8((i + 1) * 2, i, MATRIX_WIDTH - i); 47 | y = beatsin8((i + 1) * 2, i, MATRIX_HEIGHT - i); 48 | color = effects.ColorFromCurrentPalette(i * 14); 49 | } 50 | else 51 | { 52 | x = beatsin8((MATRIX_WIDTH - i) * 2, MATRIX_WIDTH - i, i + 1); 53 | y = beatcos8((MATRIX_HEIGHT - i) * 2, MATRIX_HEIGHT - i, i + 1); 54 | color = effects.ColorFromCurrentPalette((31 - i) * 14); 55 | } 56 | //backgroundLayer.drawPixel(x, y, color); 57 | matrix->drawPixel(x, y, color); 58 | } 59 | 60 | return 0; 61 | } 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /GFX/Aurora/PatternPendulumWave.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Inspired by and based on a loading animation for Prismata by Lunarch Studios: 4 | * http://www.reddit.com/r/gifs/comments/2on8si/connecting_to_server_so_mesmerizing/cmow0sz 5 | * 6 | * Lunarch Studios Inc. hereby publishes the Actionscript 3 source code pasted in this 7 | * comment under the Creative Commons CC0 1.0 Universal Public Domain Dedication. 8 | * Lunarch Studios Inc. waives all rights to the work worldwide under copyright law, 9 | * including all related and neighboring rights, to the extent allowed by law. 10 | * You can copy, modify, distribute and perform the work, even for commercial purposes, 11 | * all without asking permission. 12 | * 13 | * Aurora: https://github.com/pixelmatix/aurora 14 | * Copyright (c) 2014 Jason Coon 15 | * 16 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 17 | * this software and associated documentation files (the "Software"), to deal in 18 | * the Software without restriction, including without limitation the rights to 19 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 20 | * the Software, and to permit persons to whom the Software is furnished to do so, 21 | * subject to the following conditions: 22 | * 23 | * The above copyright notice and this permission notice shall be included in all 24 | * copies or substantial portions of the Software. 25 | * 26 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 28 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 29 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 30 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 31 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 32 | */ 33 | 34 | #include "matrix.h" 35 | 36 | #ifndef PatternPendulumWave_H 37 | #define PatternPendulumWave_H 38 | 39 | class PatternPendulumWave : public AuroraDrawable { 40 | public: 41 | PatternPendulumWave() { 42 | name = (char *)"Pendulum Wave"; 43 | } 44 | 45 | unsigned int drawFrame() { 46 | effects.DimAll(170); 47 | 48 | for (int x = 0; x < MATRIX_WIDTH; x++) 49 | { 50 | //uint8_t y = beatsin8(x + MATRIX_WIDTH, 0, MATRIX_HEIGHT); 51 | uint8_t y = beatsin16(x + 1, 0, MATRIX_HEIGHT); 52 | 53 | //backgroundLayer.drawPixel(x, y, effects.ColorFromCurrentPalette(x * 7)); 54 | CRGB color = effects.ColorFromCurrentPalette(x * 7); 55 | matrix->drawPixel(x, y, color); 56 | 57 | } 58 | 59 | return 15; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /GFX/Aurora/PatternRadar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef PatternRadar_H 24 | 25 | #include "matrix.h" 26 | 27 | class PatternRadar : public AuroraDrawable { 28 | private: 29 | byte theta = 0; 30 | byte hueoffset = 0; 31 | 32 | public: 33 | PatternRadar() { 34 | name = (char *)"Radar"; 35 | } 36 | 37 | unsigned int drawFrame() { 38 | if (MATRIX_WIDTH < 25) { 39 | effects.DimAll(252); 40 | } else { 41 | effects.DimAll(245); 42 | } 43 | 44 | for (int offset = 0; offset < MATRIX_CENTER_X; offset++) { 45 | //byte hue = 255 - (offset * 16 + hueoffset); 46 | byte hue = 255 - (offset * (256 / MATRIX_CENTER_X) + hueoffset); 47 | CRGB color = effects.ColorFromCurrentPalette(hue); 48 | uint8_t x = mapcos8(theta, offset, (MATRIX_WIDTH - 1) - offset); 49 | uint8_t y = mapsin8(theta, offset, (MATRIX_HEIGHT - 1) - offset); 50 | uint16_t xy = XY(x, y); 51 | effects.leds[xy] = color; 52 | 53 | EVERY_N_MILLIS(25) { 54 | theta += 2; 55 | hueoffset += 1; 56 | } 57 | } 58 | 59 | return 0; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /GFX/Aurora/README.md: -------------------------------------------------------------------------------- 1 | Aurora Demos ported to FastLED::NeoMatrix 2 | ========================================= 3 | 4 | Aurora Pattern Demos were ported to FastLED::NeoMatrix by Marc MERLIN 5 | 6 | Aurora.ino is the main code you can compile and that will run my favourite patterns. 7 | You can send 'n', 'p' via serial console or '10' to switch to pattern #10 8 | 9 | You can also go in a subdirectory like Aurora/bounce to only compile/run the bounce pattern. 10 | 11 | * In _baddisplay, you will find code that I believe is broken, potentially by me. If you can fix it, send patches. 12 | * In _notmytaste, you will fine code that works fine but that I don't like as much. 13 | 14 | Enjoy. 15 | 16 | 17 | Demo Video 18 | ---------- 19 | https://www.youtube.com/watch?v=aSmzBiJQavk 20 | 21 | 22 | Acknowledgements 23 | ---------------- 24 | 25 | Many thanks to all of the fantastic hardware and open source software libraries used in Aurora! 26 | 27 | * [FastLED Library] by Daniel Garcia and Mark Kriegsman 28 | * [Aurora] by Jason Coon 29 | 30 | A huge thank you to all of the projects and open source software that are used in and inspired Aurora! 31 | 32 | * [Light Appliance] by Craig Lindley 33 | * [Funky Clouds] by [Stefan Petrick] 34 | * [Rainbow Smoke] by [Jozsef Fejes] 35 | * [LED Effects] by Robert Atkins 36 | * [The Nature of Code] by [Daniel Shiffman] 37 | 38 | -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/fire/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/fire/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/fire/PatternFire.h: -------------------------------------------------------------------------------- 1 | ../PatternFire.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/fire/fire.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "PatternFire.h" 3 | PatternFire pattern; 4 | 5 | #include "main.h" 6 | -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/fire/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/fire/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/fire/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/noisesmearing/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/noisesmearing/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/noisesmearing/PatternNoiseSmearing.h: -------------------------------------------------------------------------------- 1 | ../PatternNoiseSmearing.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/noisesmearing/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/noisesmearing/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/noisesmearing/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/noisesmearing/noisesmearing.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "PatternNoiseSmearing.h" 3 | PatternMultipleStream8 pattern; 4 | //PatternPaletteSmear pattern; 5 | //PatternRainbowFlag pattern; 6 | 7 | #include "main.h" 8 | -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/pulse/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/pulse/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/pulse/PatternPulse.h: -------------------------------------------------------------------------------- 1 | ../PatternPulse.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/pulse/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/pulse/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/pulse/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/pulse/pulse.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "PatternPulse.h" 3 | PatternPulse pattern; 4 | 5 | #include "main.h" 6 | -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/spark/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/spark/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/spark/PatternSpark.h: -------------------------------------------------------------------------------- 1 | ../PatternSpark.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/spark/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/spark/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/spark/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_baddisplay/spark/spark.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "PatternSpark.h" 3 | PatternSpark pattern; 4 | 5 | #include "main.h" 6 | -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/PatternMunch.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 4 | * 5 | * Munch pattern created by J.B. Langston: https://github.com/jblang/aurora/blob/master/PatternMunch.h 6 | * 7 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 8 | * this software and associated documentation files (the "Software"), to deal in 9 | * the Software without restriction, including without limitation the rights to 10 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 11 | * the Software, and to permit persons to whom the Software is furnished to do so, 12 | * subject to the following conditions: 13 | * 14 | * The above copyright notice and this permission notice shall be included in all 15 | * copies or substantial portions of the Software. 16 | * 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 19 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 20 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 21 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | */ 24 | 25 | #ifndef PatternMunch_H 26 | #define PatternMunch_H 27 | 28 | #include "matrix.h" 29 | 30 | class PatternMunch : public Drawable { 31 | private: 32 | byte count = 0; 33 | byte dir = 1; 34 | byte flip = 0; 35 | byte generation = 0; 36 | 37 | public: 38 | PatternMunch() { 39 | name = (char *)"Munch"; 40 | } 41 | 42 | unsigned int drawFrame() { 43 | for (byte x = 0; x < MATRIX_WIDTH; x++) { 44 | for (byte y = 0; y < MATRIX_HEIGHT; y++) { 45 | effects.leds[XY(x, y)] = (x ^ y ^ flip) < count ? effects.ColorFromCurrentPalette(((x ^ y) << 3) + generation) : CRGB::Black; 46 | } 47 | } 48 | 49 | count += dir; 50 | 51 | if (count <= 0 || count >= MATRIX_WIDTH) { 52 | dir = -dir; 53 | } 54 | 55 | if (count <= 0) { 56 | if (flip == 0) 57 | flip = 31; 58 | else 59 | flip = 0; 60 | } 61 | 62 | generation++; 63 | 64 | 65 | return 60; 66 | } 67 | }; 68 | 69 | #endif 70 | -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/PatternPlasma.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 4 | * 5 | * Portions of this code are adapted from LedEffects Plasma by Robert Atkins: https://bitbucket.org/ratkins/ledeffects/src/26ed3c51912af6fac5f1304629c7b4ab7ac8ca4b/Plasma.cpp?at=default 6 | * Copyright (c) 2013 Robert Atkins 7 | * 8 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | * this software and associated documentation files (the "Software"), to deal in 10 | * the Software without restriction, including without limitation the rights to 11 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 12 | * the Software, and to permit persons to whom the Software is furnished to do so, 13 | * subject to the following conditions: 14 | * 15 | * The above copyright notice and this permission notice shall be included in all 16 | * copies or substantial portions of the Software. 17 | * 18 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 20 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 21 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 22 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 23 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24 | */ 25 | 26 | 27 | #ifndef PatternPlasma_H 28 | #define PatternPlasma_H 29 | 30 | #include "matrix.h" 31 | 32 | class PatternPlasma : public Drawable { 33 | private: 34 | int time = 0; 35 | int cycles = 0; 36 | 37 | public: 38 | PatternPlasma() { 39 | name = (char *)"Plasma"; 40 | } 41 | 42 | unsigned int drawFrame() { 43 | for (int x = 0; x < MATRIX_WIDTH; x++) { 44 | for (int y = 0; y < MATRIX_HEIGHT; y++) { 45 | int16_t v = 0; 46 | uint8_t wibble = sin8(time); 47 | v += sin16(x * wibble * 2 + time); 48 | v += cos16(y * (128 - wibble) * 2 + time); 49 | v += sin16(y * x * cos8(-time) / 2); 50 | 51 | effects.Pixel(x, y, (v >> 8) + 127); 52 | } 53 | } 54 | 55 | time += 1; 56 | cycles++; 57 | 58 | if (cycles >= 2048) { 59 | time = 0; 60 | cycles = 0; 61 | } 62 | 63 | return 30; 64 | } 65 | }; 66 | 67 | #endif 68 | -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/electricmandala/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/electricmandala/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/electricmandala/PatternElectricMandala.h: -------------------------------------------------------------------------------- 1 | ../PatternElectricMandala.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/electricmandala/electricmandala.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | 3 | #include "PatternElectricMandala.h" 4 | PatternElectricMandala pattern; 5 | 6 | #include "main.h" 7 | -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/electricmandala/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/electricmandala/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/electricmandala/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/infinity/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/infinity/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/infinity/PatternInfinity.h: -------------------------------------------------------------------------------- 1 | ../PatternInfinity.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/infinity/infinity.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "PatternInfinity.h" 3 | PatternInfinity pattern; 4 | 5 | #include "main.h" 6 | -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/infinity/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/infinity/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/infinity/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/invaders/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/invaders/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/invaders/PatternInvaders.h: -------------------------------------------------------------------------------- 1 | ../PatternInvaders.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/invaders/invaders.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "PatternInvaders.h" 3 | PatternInvaders pattern; 4 | 5 | #include "main.h" 6 | -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/invaders/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/invaders/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/invaders/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/life/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/life/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/life/PatternLife.h: -------------------------------------------------------------------------------- 1 | ../PatternLife.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/life/life.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "PatternLife.h" 3 | PatternLife pattern; 4 | 5 | #include "main.h" 6 | -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/life/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/life/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/life/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/maze/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/maze/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/maze/PatternMaze.h: -------------------------------------------------------------------------------- 1 | ../PatternMaze.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/maze/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/maze/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/maze/maze.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "PatternMaze.h" 3 | PatternMaze pattern; 4 | 5 | #include "main.h" 6 | -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/maze/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/munch/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/munch/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/munch/PatternMunch.h: -------------------------------------------------------------------------------- 1 | ../PatternMunch.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/munch/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/munch/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/munch/munch.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "PatternMunch.h" 3 | PatternMunch pattern; 4 | 5 | #include "main.h" 6 | -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/munch/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/plasma/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/plasma/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/plasma/PatternPlasma.h: -------------------------------------------------------------------------------- 1 | ../PatternPlasma.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/plasma/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/plasma/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/plasma/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/plasma/plasma.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "PatternPlasma.h" 3 | PatternPlasma pattern; 4 | 5 | #include "main.h" 6 | -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/rainbowsmoke/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/rainbowsmoke/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/rainbowsmoke/PatternRainbowSmoke.h: -------------------------------------------------------------------------------- 1 | ../PatternRainbowSmoke.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/rainbowsmoke/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/rainbowsmoke/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/rainbowsmoke/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/rainbowsmoke/rainbowsmoke.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "PatternRainbowSmoke.h" 3 | PatternRainbowSmoke pattern; 4 | 5 | #include "main.h" 6 | -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/simplexnoise/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/simplexnoise/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/simplexnoise/PatternSimplexNoise.h: -------------------------------------------------------------------------------- 1 | ../PatternSimplexNoise.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/simplexnoise/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/simplexnoise/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/simplexnoise/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/simplexnoise/simplexnoise.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "PatternSimplexNoise.h" 3 | PatternSimplexNoise pattern; 4 | 5 | #include "main.h" 6 | -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/snake/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/snake/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/snake/PatternSnake.h: -------------------------------------------------------------------------------- 1 | ../PatternSnake.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/snake/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/snake/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/snake/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/snake/snake.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "PatternSnake.h" 3 | PatternSnake pattern; 4 | 5 | #include "main.h" 6 | -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/spin/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/spin/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/spin/PatternSpin.h: -------------------------------------------------------------------------------- 1 | ../PatternSpin.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/spin/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/spin/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/spin/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/_notmytaste/spin/spin.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "PatternSpin.h" 3 | PatternSpin pattern; 4 | 5 | #include "main.h" 6 | -------------------------------------------------------------------------------- /GFX/Aurora/attract/Attractor.h: -------------------------------------------------------------------------------- 1 | ../Attractor.h -------------------------------------------------------------------------------- /GFX/Aurora/attract/Boid.h: -------------------------------------------------------------------------------- 1 | ../Boid.h -------------------------------------------------------------------------------- /GFX/Aurora/attract/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/attract/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/attract/PatternAttract.h: -------------------------------------------------------------------------------- 1 | ../PatternAttract.h -------------------------------------------------------------------------------- /GFX/Aurora/attract/Vector.h: -------------------------------------------------------------------------------- 1 | ../Vector.h -------------------------------------------------------------------------------- /GFX/Aurora/attract/attract.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "Drawable.h" 3 | #include "Boid.h" 4 | #include "Attractor.h" 5 | 6 | #include "PatternAttract.h" 7 | PatternAttract pattern; 8 | 9 | #include "main.h" 10 | -------------------------------------------------------------------------------- /GFX/Aurora/attract/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/attract/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/attract/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/bounce/Boid.h: -------------------------------------------------------------------------------- 1 | ../Boid.h -------------------------------------------------------------------------------- /GFX/Aurora/bounce/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/bounce/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/bounce/PatternBounce.h: -------------------------------------------------------------------------------- 1 | ../PatternBounce.h -------------------------------------------------------------------------------- /GFX/Aurora/bounce/Vector.h: -------------------------------------------------------------------------------- 1 | ../Vector.h -------------------------------------------------------------------------------- /GFX/Aurora/bounce/bounce.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "Effects.h" 3 | #include "Drawable.h" 4 | #include "Boid.h" 5 | 6 | #include "PatternBounce.h" 7 | PatternBounce pattern; 8 | 9 | #include "main.h" 10 | -------------------------------------------------------------------------------- /GFX/Aurora/bounce/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/bounce/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/bounce/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/cube/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/cube/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/cube/Geometry.h: -------------------------------------------------------------------------------- 1 | ../Geometry.h -------------------------------------------------------------------------------- /GFX/Aurora/cube/PatternCube.h: -------------------------------------------------------------------------------- 1 | ../PatternCube.h -------------------------------------------------------------------------------- /GFX/Aurora/cube/cube.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "Effects.h" 3 | #include "Drawable.h" 4 | #include "Geometry.h" 5 | 6 | #include "PatternCube.h" 7 | PatternCube pattern; 8 | 9 | #include "main.h" 10 | -------------------------------------------------------------------------------- /GFX/Aurora/cube/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/cube/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/cube/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/flock/Boid.h: -------------------------------------------------------------------------------- 1 | ../Boid.h -------------------------------------------------------------------------------- /GFX/Aurora/flock/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/flock/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/flock/PatternFlock.h: -------------------------------------------------------------------------------- 1 | ../PatternFlock.h -------------------------------------------------------------------------------- /GFX/Aurora/flock/Vector.h: -------------------------------------------------------------------------------- 1 | ../Vector.h -------------------------------------------------------------------------------- /GFX/Aurora/flock/flock.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | 3 | #include "Effects.h" 4 | #include "Drawable.h" 5 | #include "Vector.h" 6 | #include "Boid.h" 7 | 8 | #include "PatternFlock.h" 9 | PatternFlock pattern; 10 | 11 | #include "main.h" 12 | -------------------------------------------------------------------------------- /GFX/Aurora/flock/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/flock/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/flock/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/flowfield/Attractor.h: -------------------------------------------------------------------------------- 1 | ../Attractor.h -------------------------------------------------------------------------------- /GFX/Aurora/flowfield/Boid.h: -------------------------------------------------------------------------------- 1 | ../Boid.h -------------------------------------------------------------------------------- /GFX/Aurora/flowfield/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/flowfield/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/flowfield/PatternFlowField.h: -------------------------------------------------------------------------------- 1 | ../PatternFlowField.h -------------------------------------------------------------------------------- /GFX/Aurora/flowfield/Vector.h: -------------------------------------------------------------------------------- 1 | ../Vector.h -------------------------------------------------------------------------------- /GFX/Aurora/flowfield/flowfield.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | 3 | #include "Effects.h" 4 | #include "Drawable.h" 5 | #include "Boid.h" 6 | #include "Attractor.h" 7 | 8 | #include "PatternFlowField.h" 9 | PatternFlowField pattern; 10 | 11 | #include "main.h" 12 | -------------------------------------------------------------------------------- /GFX/Aurora/flowfield/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/flowfield/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/flowfield/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/incrementaldrift/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/incrementaldrift/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/incrementaldrift/PatternIncrementalDrift.h: -------------------------------------------------------------------------------- 1 | ../PatternIncrementalDrift.h -------------------------------------------------------------------------------- /GFX/Aurora/incrementaldrift/incrementaldrift.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | 3 | #include "Drawable.h" 4 | #include "Effects.h" 5 | 6 | #include "PatternIncrementalDrift.h" 7 | PatternIncrementalDrift pattern; 8 | 9 | #include "main.h" 10 | -------------------------------------------------------------------------------- /GFX/Aurora/incrementaldrift/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/incrementaldrift/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/incrementaldrift/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/incrementaldrift2/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/incrementaldrift2/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/incrementaldrift2/PatternIncrementalDrift2.h: -------------------------------------------------------------------------------- 1 | ../PatternIncrementalDrift2.h -------------------------------------------------------------------------------- /GFX/Aurora/incrementaldrift2/incrementaldrift2.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | 3 | #include "Effects.h" 4 | #include "Drawable.h" 5 | 6 | #include "PatternIncrementalDrift2.h" 7 | PatternIncrementalDrift2 pattern; 8 | 9 | #include "main.h" 10 | -------------------------------------------------------------------------------- /GFX/Aurora/incrementaldrift2/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/incrementaldrift2/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/incrementaldrift2/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/main.h: -------------------------------------------------------------------------------- 1 | void loop() { 2 | pattern.drawFrame(); 3 | matrix->show(); 4 | } 5 | 6 | void setup() { 7 | delay(1000); 8 | Serial.begin(115200); 9 | 10 | matrix_setup(); 11 | Serial.print("Matrix Size: "); 12 | Serial.print(mw); 13 | Serial.print(" "); 14 | Serial.println(mh); 15 | matrix->begin(); 16 | matrix->setBrightness(matrix_brightness); 17 | matrix->setTextWrap(false); 18 | 19 | effects.leds = matrixleds; 20 | effects.Setup(); 21 | pattern.start(); 22 | matrix->clear(); 23 | } 24 | 25 | // vim:sts=4:sw=4 26 | -------------------------------------------------------------------------------- /GFX/Aurora/matrix.h: -------------------------------------------------------------------------------- 1 | // By Marc MERLIN 2 | // License: Apache v2.0 3 | // 4 | 5 | #ifndef matrix_h 6 | #define matrix_h 7 | 8 | #include "neomatrix_config.h" 9 | #include "Drawable.h" 10 | 11 | const int MATRIX_CENTER_X = MATRIX_WIDTH / 2; 12 | const int MATRIX_CENTER_Y = MATRIX_HEIGHT / 2; 13 | 14 | const byte MATRIX_CENTRE_X = MATRIX_CENTER_X - 1; 15 | const byte MATRIX_CENTRE_Y = MATRIX_CENTER_Y - 1; 16 | 17 | #include "Effects.h" 18 | Effects effects; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /GFX/Aurora/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/pendulumwave/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/pendulumwave/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/pendulumwave/PatternPendulumWave.h: -------------------------------------------------------------------------------- 1 | ../PatternPendulumWave.h -------------------------------------------------------------------------------- /GFX/Aurora/pendulumwave/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/pendulumwave/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/pendulumwave/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/pendulumwave/pendulumwave.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | 3 | #include "Effects.h" 4 | #include "Drawable.h" 5 | 6 | #include "PatternPendulumWave.h" 7 | PatternPendulumWave pattern; 8 | 9 | #include "main.h" 10 | -------------------------------------------------------------------------------- /GFX/Aurora/radar/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/radar/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/radar/PatternRadar.h: -------------------------------------------------------------------------------- 1 | ../PatternRadar.h -------------------------------------------------------------------------------- /GFX/Aurora/radar/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/radar/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/radar/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/radar/radar.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | 3 | #include "Effects.h" 4 | #include "Drawable.h" 5 | 6 | #include "PatternRadar.h" 7 | PatternRadar pattern; 8 | 9 | #include "main.h" 10 | -------------------------------------------------------------------------------- /GFX/Aurora/spiral/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/spiral/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/spiral/PatternSpiral.h: -------------------------------------------------------------------------------- 1 | ../PatternSpiral.h -------------------------------------------------------------------------------- /GFX/Aurora/spiral/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/spiral/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/spiral/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/spiral/spiral.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | 3 | #include "Effects.h" 4 | #include "Drawable.h" 5 | 6 | #include "PatternSpiral.h" 7 | PatternSpiral pattern; 8 | 9 | #include "main.h" 10 | -------------------------------------------------------------------------------- /GFX/Aurora/spiro/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/spiro/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/spiro/PatternSpiro.h: -------------------------------------------------------------------------------- 1 | ../PatternSpiro.h -------------------------------------------------------------------------------- /GFX/Aurora/spiro/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/spiro/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/spiro/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/spiro/spiro.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | 3 | #include "Effects.h" 4 | #include "Drawable.h" 5 | 6 | #include "PatternSpiro.h" 7 | PatternSpiro pattern; 8 | 9 | #include "main.h" 10 | -------------------------------------------------------------------------------- /GFX/Aurora/swirl/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/swirl/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/swirl/PatternSwirl.h: -------------------------------------------------------------------------------- 1 | ../PatternSwirl.h -------------------------------------------------------------------------------- /GFX/Aurora/swirl/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/swirl/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/swirl/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/swirl/swirl.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | 3 | #include "Effects.h" 4 | #include "Drawable.h" 5 | 6 | #include "PatternSwirl.h" 7 | PatternSwirl pattern; 8 | 9 | #include "main.h" 10 | -------------------------------------------------------------------------------- /GFX/Aurora/wave/Drawable.h: -------------------------------------------------------------------------------- 1 | ../Drawable.h -------------------------------------------------------------------------------- /GFX/Aurora/wave/Effects.h: -------------------------------------------------------------------------------- 1 | ../Effects.h -------------------------------------------------------------------------------- /GFX/Aurora/wave/PatternWave.h: -------------------------------------------------------------------------------- 1 | ../PatternWave.h -------------------------------------------------------------------------------- /GFX/Aurora/wave/main.h: -------------------------------------------------------------------------------- 1 | ../main.h -------------------------------------------------------------------------------- /GFX/Aurora/wave/matrix.h: -------------------------------------------------------------------------------- 1 | ../matrix.h -------------------------------------------------------------------------------- /GFX/Aurora/wave/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/Aurora/wave/wave.ino: -------------------------------------------------------------------------------- 1 | #include "matrix.h" 2 | #include "Effects.h" 3 | #include "Drawable.h" 4 | 5 | #include "PatternWave.h" 6 | PatternWave pattern; 7 | 8 | #include "main.h" 9 | -------------------------------------------------------------------------------- /GFX/README.md: -------------------------------------------------------------------------------- 1 | Matrix Demos here use the Adafruit::GFX API. 2 | They should work with minimal changes on other backends that support 3 | the GFX API 4 | 5 | Aurora is one exception as it does have a few references to direct 6 | FastLED style leds addressing using XY() but you should be able to 7 | change them to DrawPixel only. It also uses extended DrawPixel which 8 | accept both a uint32_t or a FastLED CRBG, but you can fairly easy 9 | change those calls to downgrade them back to a native GFX RGB565 10 | if this is all you have support for. 11 | 12 | Both FastLED::NeoMatrix and SmartMatrix::GFX provide that GFX+FastLED API 13 | as well as an XY mapping function to turn a coordinate into a 1D index 14 | for the FastLED backed array (which for SmartMatrix is actually only 15 | a framebuffer which is copied back to SmartMatrix's framebuffer later). 16 | 17 | * https://github.com/marcmerlin/FastLED_NeoMatrix 18 | * https://github.com/marcmerlin/SmartMatrix_GFX 19 | -------------------------------------------------------------------------------- /GFX/fontzoom/README.md: -------------------------------------------------------------------------------- 1 | Demo Videos: 2 | - https://youtu.be/NRKLB8YhJ6Y 3 | - https://youtu.be/bPLuH3Ln9gU 4 | -------------------------------------------------------------------------------- /GFX/fontzoom/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /GFX/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/LEDSprites-Pacman/LICENSE: -------------------------------------------------------------------------------- 1 | BSD 2-Clause License 2 | 3 | Copyright (c) 2018, Marc MERLIN 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | * Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | * Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /LEDMatrix/LEDSprites-Pacman/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/LEDText/LEDText.ino: -------------------------------------------------------------------------------- 1 | #define LEDMATRIX 2 | #ifndef ARDUINOONPC 3 | // Replace this with another backend if you wish 4 | #define ILI9341 5 | #endif 6 | #include "neomatrix_config.h" 7 | #include 8 | //#include 9 | //#include 10 | //#include 11 | #include 12 | 13 | 14 | cLEDText ScrollingMsg; 15 | 16 | const unsigned char TxtDemo[] = { EFFECT_FRAME_RATE "\x00" 17 | EFFECT_HSV_AH "\x00\xff\xff\xff\xff\xff" 18 | EFFECT_SCROLL_LEFT " The " 19 | EFFECT_SCROLL_UP "Quick " 20 | EFFECT_SCROLL_LEFT "Brown " 21 | EFFECT_SCROLL_DOWN "Fox" 22 | EFFECT_SCROLL_LEFT " Jumps " 23 | EFFECT_SCROLL_UP "Over " 24 | EFFECT_SCROLL_LEFT "The " 25 | EFFECT_SCROLL_DOWN "Lazy " 26 | EFFECT_SCROLL_LEFT "Dog " }; 27 | uint16_t Options; 28 | 29 | void setup() 30 | { 31 | matrix_setup(); 32 | 33 | matrix->clear(); 34 | 35 | //ScrollingMsg.SetFont(MatriseFontData); 36 | //ScrollingMsg.SetFont(ComicSansP24Data); 37 | //ScrollingMsg.SetFont(FontArial59x56Data); 38 | ScrollingMsg.SetFont(FontArialP59x56Data); 39 | ScrollingMsg.Init(&ledmatrix, mw, ScrollingMsg.FontHeight() + 1, 0, 0); 40 | //ScrollingMsg.Init(&ledmatrix, mw, mh, 0, 0); 41 | ScrollingMsg.SetText((unsigned char *)TxtDemo, sizeof(TxtDemo) - 1); 42 | ScrollingMsg.SetTextColrOptions(COLR_RGB | COLR_SINGLE, 0xff, 0x00, 0xff); 43 | //Options = INSTANT_OPTIONS_MODE; 44 | ScrollingMsg.SetOptionsChangeMode(Options); 45 | } 46 | 47 | 48 | void loop() 49 | { 50 | if (ScrollingMsg.UpdateText() == -1) 51 | { 52 | ScrollingMsg.SetText((unsigned char *)TxtDemo, sizeof(TxtDemo) - 1); 53 | //Options ^= INSTANT_OPTIONS_MODE; 54 | ScrollingMsg.SetOptionsChangeMode(Options); 55 | } 56 | else 57 | { 58 | matrix->show(); 59 | delay(30); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /LEDMatrix/LEDText/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/NeoMatrix_LEDMatrix/LEDMatrix_Flag.ino: -------------------------------------------------------------------------------- 1 | #define LEDMATRIX 2 | #include "neomatrix_config.h" 3 | 4 | void ledmatrix_setup() 5 | { 6 | // This was moved to config.h matrix_setup 7 | #if 0 8 | Serial.println("ledmatrix setup"); 9 | ledmatrix.DrawLine (0, 0, ledmatrix.Width() - 1, ledmatrix.Height() - 1, CRGB(0, 255, 0)); 10 | ledmatrix.DrawPixel(0, 0, CRGB(255, 0, 0)); 11 | ledmatrix.DrawPixel(ledmatrix.Width() - 1, ledmatrix.Height() - 1, CRGB(0, 0, 255)); 12 | 13 | ledmatrix.DrawLine (ledmatrix.Width() - 5, 4, 4, ledmatrix.Height() - 5, CRGB(128, 128, 128)); 14 | ledmatrix.DrawPixel(ledmatrix.Width() - 5, 4, CRGB(255, 64, 64)); 15 | ledmatrix.DrawPixel(4, ledmatrix.Height() - 5, CRGB(64, 64, 255)); 16 | matrix->show(); 17 | Serial.println("ledmatrix setup done"); 18 | #endif 19 | } 20 | 21 | 22 | void flag() 23 | { 24 | matrix->clear(); 25 | ledmatrix.DrawFilledRectangle(0, 0, ledmatrix.Width() - 1, ledmatrix.Height() - 1, CRGB(0, 0, 255)); 26 | ledmatrix.DrawRectangle(0, 0, ledmatrix.Width() - 1, ledmatrix.Height() - 1, CRGB(255, 255, 255)); 27 | ledmatrix.DrawLine(0, 0, ledmatrix.Width() - 1, ledmatrix.Height() - 1, CRGB(255, 255, 255)); 28 | ledmatrix.DrawLine(0, 1, ledmatrix.Width() - 1, ledmatrix.Height() - 2, CRGB(255, 255, 255)); 29 | ledmatrix.DrawLine(0, ledmatrix.Height() - 1, ledmatrix.Width() - 1, 0, CRGB(255, 255, 255)); 30 | ledmatrix.DrawLine(0, ledmatrix.Height() - 2, ledmatrix.Width() - 1, 1, CRGB(255, 255, 255)); 31 | matrix->show(); 32 | } 33 | -------------------------------------------------------------------------------- /LEDMatrix/NeoMatrix_LEDMatrix/README: -------------------------------------------------------------------------------- 1 | FastLED and LEDMatrix both have features that you might want to use. 2 | It is possible to define a single FastLED strip used as a matrix, and 3 | alternate between NeoMatrix and LEDMatrix writing to it. 4 | 5 | This example code shows how. 6 | 7 | Enjoy, Marc 8 | -------------------------------------------------------------------------------- /LEDMatrix/NeoMatrix_LEDMatrix/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/README.md: -------------------------------------------------------------------------------- 1 | Matrix Demos here use FastLED + LEDMatrix API 2 | 3 | They were designed for 4 | https://github.com/AaronLiddiment/LEDMatrix 5 | or its fork that supports tiled matrices: 6 | https://github.com/Jorgen-VikingGod/LEDMatrix 7 | Both those libs support an Adafruit::GFX like API while not being a real GFX 8 | while being a 24bit color re-implementation of that lib (while 9 | https://github.com/marcmerlin/FastLED_NeoMatrix inherits from the Adafruit 10 | lib and adds 24bit bypass calls to support 24bit color too). 11 | 12 | Both FastLED::NeoMatrix and SmartMatrix::GFX are compatible with 13 | LEDMatrix via the initialization in config.h (#define LEDMATRIX before 14 | including config.h), and therefore also support these demos. 15 | 16 | * https://github.com/marcmerlin/FastLED_NeoMatrix 17 | * https://github.com/marcmerlin/SmartMatrix_GFX 18 | 19 | 20 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes/README.md: -------------------------------------------------------------------------------- 1 | # Table_Mark_Estes 2 | Mark Estes' Table code modified to work with just a matrix 3 | 4 | #define BESTPATTERNS lets you see some of my favourite patterns given that the whole list is 5 | otherwise 113 patterns long :) 6 | 7 | Via the arduino serial port, turn off line endings, and use 'n' and 'p' to change patterrns 8 | or send '80' to jump to pattern 80 directly. 9 | 10 | Video examples: 11 | * 64x64 with audio: https://photos.app.goo.gl/qLS14Ad6UzCng3Q23 12 | * More 64x64 with audio: https://photos.app.goo.gl/syEPi7O97hgsWKb53 13 | * My 32x24 panel compilation of my favourite patterns: https://www.youtube.com/watch?v=SSllLL5SGCg 14 | 15 | Below is a demo of that code running on top of SmartMatrix::GFX: 16 | ![image](https://user-images.githubusercontent.com/1369412/54888844-266bc480-4e5e-11e9-904e-75f417a7d9d2.png) 17 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes06/Attractor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 4 | * 5 | * Portions of this code are adapted from "Attractor" in "The Nature of Code" by Daniel Shiffman: http://natureofcode.com/ 6 | * Copyright (c) 2014 Daniel Shiffman 7 | * http://www.shiffman.net 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 10 | * this software and associated documentation files (the "Software"), to deal in 11 | * the Software without restriction, including without limitation the rights to 12 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 13 | * the Software, and to permit persons to whom the Software is furnished to do so, 14 | * subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in all 17 | * copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 21 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 22 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 23 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Vector.h" 28 | 29 | class Attractor { 30 | public: 31 | float mass; // Mass, tied to size 32 | float G; // Gravitational Constant 33 | PVector location; // Location 34 | 35 | Attractor() { 36 | location = PVector(MATRIX_CENTRE_X, MATRIX_CENTRE_Y); 37 | mass = 10; 38 | G = .5; 39 | } 40 | 41 | PVector attract(Boid m) { 42 | PVector force = location - m.location; // Calculate direction of force 43 | float d = force.mag(); // Distance between objects 44 | d = constrain(d, 5.0, 32.0); // Limiting the distance to eliminate "extreme" results for very close or very far objects 45 | force.normalize(); // Normalize vector (distance doesn't matter here, we just want this vector for direction) 46 | float strength = (G * mass * m.mass) / (d * d); // Calculate gravitional force magnitude 47 | force *= strength; // Get force vector --> magnitude * direction 48 | return force; 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes06/Drawable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef Drawable_H 24 | #define Drawable_H 25 | 26 | class Drawable{ 27 | public: 28 | char* name; 29 | 30 | virtual bool isRunnable() { 31 | return false; 32 | } 33 | 34 | virtual bool isPlaylist() { 35 | return false; 36 | } 37 | 38 | // a single frame should be drawn as fast as possible, without any delay or blocking 39 | // return how many millisecond delay is requested before the next call to drawFrame() 40 | virtual unsigned int drawFrame() { 41 | //backgroundLayer.fillScreen({ 0, 0, 0 }); 42 | return 0; 43 | }; 44 | 45 | virtual void start() {}; 46 | virtual void stop() {}; 47 | }; 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes06/PatternIncrementalDrift2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Aurora: https://github.com/pixelmatix/aurora 4 | * Copyright (c) 2014 Jason Coon 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | * this software and associated documentation files (the "Software"), to deal in 8 | * the Software without restriction, including without limitation the rights to 9 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 10 | * the Software, and to permit persons to whom the Software is furnished to do so, 11 | * subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 18 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 19 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 20 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | */ 23 | #include "matrix.h" 24 | 25 | #ifndef PatternIncrementalDrift2_H 26 | #define PatternIncrementalDrift2_H 27 | 28 | class PatternIncrementalDrift2 : public Drawable { 29 | public: 30 | PatternIncrementalDrift2() { 31 | name = (char *)"Incremental Drift Rose"; 32 | } 33 | 34 | unsigned int drawFrame() { 35 | uint8_t dim = beatsin8(2, 170, 250); 36 | effects.DimAll(dim); 37 | 38 | for (uint8_t i = 0; i < MATRIX_WIDTH; i++) 39 | { 40 | CRGB color; 41 | 42 | uint8_t x = 0; 43 | uint8_t y = 0; 44 | 45 | if (i < MATRIX_CENTER_X) { 46 | x = beatcos8((i + 1) * 2, i, MATRIX_WIDTH - i); 47 | y = beatsin8((i + 1) * 2, i, MATRIX_HEIGHT - i); 48 | color = effects.ColorFromCurrentPalette(i * 14); 49 | } 50 | else 51 | { 52 | x = beatsin8((MATRIX_WIDTH - i) * 2, MATRIX_WIDTH - i, i + 1); 53 | y = beatcos8((MATRIX_HEIGHT - i) * 2, MATRIX_HEIGHT - i, i + 1); 54 | color = effects.ColorFromCurrentPalette((31 - i) * 14); 55 | } 56 | //backgroundLayer.drawPixel(x, y, color); 57 | matrix->drawPixel(x, y, color); 58 | } 59 | 60 | return 0; 61 | } 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes06/PatternPendulumWave.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Inspired by and based on a loading animation for Prismata by Lunarch Studios: 4 | * http://www.reddit.com/r/gifs/comments/2on8si/connecting_to_server_so_mesmerizing/cmow0sz 5 | * 6 | * Lunarch Studios Inc. hereby publishes the Actionscript 3 source code pasted in this 7 | * comment under the Creative Commons CC0 1.0 Universal Public Domain Dedication. 8 | * Lunarch Studios Inc. waives all rights to the work worldwide under copyright law, 9 | * including all related and neighboring rights, to the extent allowed by law. 10 | * You can copy, modify, distribute and perform the work, even for commercial purposes, 11 | * all without asking permission. 12 | * 13 | * Aurora: https://github.com/pixelmatix/aurora 14 | * Copyright (c) 2014 Jason Coon 15 | * 16 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 17 | * this software and associated documentation files (the "Software"), to deal in 18 | * the Software without restriction, including without limitation the rights to 19 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 20 | * the Software, and to permit persons to whom the Software is furnished to do so, 21 | * subject to the following conditions: 22 | * 23 | * The above copyright notice and this permission notice shall be included in all 24 | * copies or substantial portions of the Software. 25 | * 26 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 28 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 29 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 30 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 31 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 32 | */ 33 | 34 | #include "matrix.h" 35 | 36 | #ifndef PatternPendulumWave_H 37 | #define PatternPendulumWave_H 38 | 39 | class PatternPendulumWave : public Drawable { 40 | public: 41 | PatternPendulumWave() { 42 | name = (char *)"Pendulum Wave"; 43 | } 44 | 45 | unsigned int drawFrame() { 46 | effects.DimAll(170); 47 | 48 | for (int x = 0; x < MATRIX_WIDTH; x++) 49 | { 50 | //uint8_t y = beatsin8(x + MATRIX_WIDTH, 0, MATRIX_HEIGHT); 51 | uint8_t y = beatsin8(x + 1, 0, MATRIX_HEIGHT); 52 | 53 | //backgroundLayer.drawPixel(x, y, effects.ColorFromCurrentPalette(x * 7)); 54 | CRGB color = effects.ColorFromCurrentPalette(x * 7); 55 | matrix->drawPixel(x, y, color); 56 | 57 | } 58 | 59 | return 15; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes06/PatternRadar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef PatternRadar_H 24 | 25 | #include "matrix.h" 26 | 27 | class PatternRadar : public Drawable { 28 | private: 29 | byte theta = 0; 30 | byte hueoffset = 0; 31 | 32 | public: 33 | PatternRadar() { 34 | name = (char *)"Radar"; 35 | } 36 | 37 | unsigned int drawFrame() { 38 | if (MATRIX_WIDTH < 25) { 39 | effects.DimAll(252); 40 | } else { 41 | effects.DimAll(245); 42 | } 43 | 44 | for (int offset = 0; offset < MATRIX_CENTER_X; offset++) { 45 | //byte hue = 255 - (offset * 16 + hueoffset); 46 | byte hue = 255 - (offset * (256 / MATRIX_CENTER_X) + hueoffset); 47 | CRGB color = effects.ColorFromCurrentPalette(hue); 48 | uint8_t x = mapcos8(theta, offset, (MATRIX_WIDTH - 1) - offset); 49 | uint8_t y = mapsin8(theta, offset, (MATRIX_HEIGHT - 1) - offset); 50 | uint16_t xy = XY(x, y); 51 | effects.leds[xy] = color; 52 | 53 | EVERY_N_MILLIS(25) { 54 | theta += 2; 55 | hueoffset += 1; 56 | } 57 | } 58 | 59 | return 0; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes06/main.h: -------------------------------------------------------------------------------- 1 | void loop() { 2 | pattern.drawFrame(); 3 | matrix->show(); 4 | } 5 | 6 | void setup() { 7 | delay(1000); 8 | Serial.begin(115200); 9 | 10 | matrix_setup(); 11 | Serial.print("Matrix Size: "); 12 | Serial.print(mw); 13 | Serial.print(" "); 14 | Serial.println(mh); 15 | matrix->begin(); 16 | matrix->setBrightness(matrix_brightness); 17 | matrix->setTextWrap(false); 18 | 19 | effects.leds = matrixleds; 20 | effects.Setup(); 21 | pattern.start(); 22 | matrix->clear(); 23 | } 24 | 25 | // vim:sts=4:sw=4 26 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes06/matrix.h: -------------------------------------------------------------------------------- 1 | // By Marc MERLIN 2 | // License: Apache v2.0 3 | // 4 | 5 | #ifndef matrix_h 6 | #define matrix_h 7 | 8 | #include "neomatrix_config.h" 9 | #include "Drawable.h" 10 | 11 | const int MATRIX_CENTER_X = MATRIX_WIDTH / 2; 12 | const int MATRIX_CENTER_Y = MATRIX_HEIGHT / 2; 13 | 14 | const byte MATRIX_CENTRE_X = MATRIX_CENTER_X - 1; 15 | const byte MATRIX_CENTRE_Y = MATRIX_CENTER_Y - 1; 16 | 17 | #define mmin(a,b) (ab)?(a):(b) 19 | 20 | #include "Effects.h" 21 | Effects effects; 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes06/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14-int16-wip/Attractor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 4 | * 5 | * Portions of this code are adapted from "Attractor" in "The Nature of Code" by Daniel Shiffman: http://natureofcode.com/ 6 | * Copyright (c) 2014 Daniel Shiffman 7 | * http://www.shiffman.net 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 10 | * this software and associated documentation files (the "Software"), to deal in 11 | * the Software without restriction, including without limitation the rights to 12 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 13 | * the Software, and to permit persons to whom the Software is furnished to do so, 14 | * subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in all 17 | * copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 21 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 22 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 23 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Vector.h" 28 | 29 | class Attractor { 30 | public: 31 | float mass; // Mass, tied to size 32 | float G; // Gravitational Constant 33 | PVector location; // Location 34 | 35 | Attractor() { 36 | location = PVector(MATRIX_CENTRE_X, MATRIX_CENTRE_Y); 37 | mass = 10; 38 | G = .5; 39 | } 40 | 41 | PVector attract(Boid m) { 42 | PVector force = location - m.location; // Calculate direction of force 43 | float d = force.mag(); // Distance between objects 44 | d = constrain(d, 5.0, 32.0); // Limiting the distance to eliminate "extreme" results for very close or very far objects 45 | force.normalize(); // Normalize vector (distance doesn't matter here, we just want this vector for direction) 46 | float strength = (G * mass * m.mass) / (d * d); // Calculate gravitional force magnitude 47 | force *= strength; // Get force vector --> magnitude * direction 48 | return force; 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14-int16-wip/Drawable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef AuroraDrawable_H 24 | #define AuroraDrawable_H 25 | 26 | class AuroraDrawable{ 27 | public: 28 | char* name; 29 | 30 | virtual bool isRunnable() { 31 | return false; 32 | } 33 | 34 | virtual bool isPlaylist() { 35 | return false; 36 | } 37 | 38 | // a single frame should be drawn as fast as possible, without any delay or blocking 39 | // return how many millisecond delay is requested before the next call to drawFrame() 40 | virtual unsigned int drawFrame() { 41 | //backgroundLayer.fillScreen({ 0, 0, 0 }); 42 | return 0; 43 | }; 44 | 45 | virtual void start() {}; 46 | virtual void stop() {}; 47 | }; 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14-int16-wip/PatternIncrementalDrift2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Aurora: https://github.com/pixelmatix/aurora 4 | * Copyright (c) 2014 Jason Coon 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | * this software and associated documentation files (the "Software"), to deal in 8 | * the Software without restriction, including without limitation the rights to 9 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 10 | * the Software, and to permit persons to whom the Software is furnished to do so, 11 | * subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 18 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 19 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 20 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | */ 23 | #include "matrix.h" 24 | 25 | #ifndef PatternIncrementalDrift2_H 26 | #define PatternIncrementalDrift2_H 27 | 28 | class PatternIncrementalDrift2 : public AuroraDrawable { 29 | public: 30 | PatternIncrementalDrift2() { 31 | name = (char *)"Incremental Drift Rose"; 32 | } 33 | 34 | unsigned int drawFrame() { 35 | uint8_t dim = beatsin8(2, 170, 250); 36 | effects.DimAll(dim); 37 | 38 | for (uint8_t i = 0; i < MATRIX_WIDTH; i++) 39 | { 40 | CRGB color; 41 | 42 | uint8_t x = 0; 43 | uint8_t y = 0; 44 | 45 | if (i < MATRIX_CENTER_X) { 46 | x = beatcos8((i + 1) * 2, i, MATRIX_WIDTH - i); 47 | y = beatsin8((i + 1) * 2, i, MATRIX_HEIGHT - i); 48 | color = effects.ColorFromCurrentPalette(i * 14); 49 | } 50 | else 51 | { 52 | x = beatsin8((MATRIX_WIDTH - i) * 2, MATRIX_WIDTH - i, i + 1); 53 | y = beatcos8((MATRIX_HEIGHT - i) * 2, MATRIX_HEIGHT - i, i + 1); 54 | color = effects.ColorFromCurrentPalette((31 - i) * 14); 55 | } 56 | //backgroundLayer.drawPixel(x, y, color); 57 | matrix->drawPixel(x, y, color); 58 | } 59 | 60 | return 0; 61 | } 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14-int16-wip/PatternRadar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef PatternRadar_H 24 | 25 | #include "matrix.h" 26 | 27 | class PatternRadar : public AuroraDrawable { 28 | private: 29 | byte theta = 0; 30 | byte hueoffset = 0; 31 | 32 | public: 33 | PatternRadar() { 34 | name = (char *)"Radar"; 35 | } 36 | 37 | unsigned int drawFrame() { 38 | if (MATRIX_WIDTH < 25) { 39 | effects.DimAll(252); 40 | } else { 41 | effects.DimAll(245); 42 | } 43 | 44 | for (int offset = 0; offset < MATRIX_CENTER_X; offset++) { 45 | //byte hue = 255 - (offset * 16 + hueoffset); 46 | byte hue = 255 - (offset * (256 / MATRIX_CENTER_X) + hueoffset); 47 | CRGB color = effects.ColorFromCurrentPalette(hue); 48 | uint8_t x = mapcos8(theta, offset, (MATRIX_WIDTH - 1) - offset); 49 | uint8_t y = mapsin8(theta, offset, (MATRIX_HEIGHT - 1) - offset); 50 | uint16_t xy = XY(x, y); 51 | effects.leds[xy] = color; 52 | 53 | EVERY_N_MILLIS(25) { 54 | theta += 2; 55 | hueoffset += 1; 56 | } 57 | } 58 | 59 | return 0; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14-int16-wip/README.md: -------------------------------------------------------------------------------- 1 | Table_Mark_Estes14 int16 wip 2 | ---------------------------- 3 | This is a temporary fork to test Table_Mark_Estes14 with array sizes of 4 | - 128 across or more (goes beyond int8_t/byte as defined in the code 5 | - 256 across or more (overflows uint8_t), blend8, random8 and so forth) 6 | - matrix size of more than 64K (overflows FastLED functions that only work with uint16_t 7 | 8 | This code is best tested/debugged in 9 | https://github.com/marcmerlin/ArduinoOnPc-FastLED-GFX-LEDMatrix 10 | https://github.com/marcmerlin/ArduinoOnPc-FastLED-GFX-LEDMatrix/tree/master/examples/GFX_Table_Mark_Estes14-int16-wip 11 | since it allows setting any size you'd like in software. 12 | 13 | Edit neomatrix_config.h and under LINUX_RENDERER_SDL, set MATRIX_TILE_WIDTH/MATRIX_TILE_HEIGHT 14 | 15 | Video at 384x256 on top of an rPi: https://www.youtube.com/watch?v=PbuB-QE-WjQ 16 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14-int16-wip/main.h: -------------------------------------------------------------------------------- 1 | void loop() { 2 | pattern.drawFrame(); 3 | matrix->show(); 4 | } 5 | 6 | void setup() { 7 | delay(1000); 8 | Serial.begin(115200); 9 | 10 | matrix_setup(); 11 | Serial.print("Matrix Size: "); 12 | Serial.print(mw); 13 | Serial.print(" "); 14 | Serial.println(mh); 15 | matrix->begin(); 16 | matrix->setBrightness(matrix_brightness); 17 | matrix->setTextWrap(false); 18 | 19 | effects.leds = matrixleds; 20 | effects.Setup(); 21 | pattern.start(); 22 | matrix->clear(); 23 | } 24 | 25 | // vim:sts=4:sw=4 26 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14-int16-wip/matrix.h: -------------------------------------------------------------------------------- 1 | // By Marc MERLIN 2 | // License: Apache v2.0 3 | // 4 | 5 | #ifndef matrix_h 6 | #define matrix_h 7 | 8 | #include "neomatrix_config.h" 9 | #include "Drawable.h" 10 | 11 | const int MATRIX_CENTER_X = MATRIX_WIDTH / 2; 12 | const int MATRIX_CENTER_Y = MATRIX_HEIGHT / 2; 13 | 14 | const byte MATRIX_CENTRE_X = MATRIX_CENTER_X - 1; 15 | const byte MATRIX_CENTRE_Y = MATRIX_CENTER_Y - 1; 16 | 17 | #include "Effects.h" 18 | Effects effects; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14-int16-wip/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14/Attractor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 4 | * 5 | * Portions of this code are adapted from "Attractor" in "The Nature of Code" by Daniel Shiffman: http://natureofcode.com/ 6 | * Copyright (c) 2014 Daniel Shiffman 7 | * http://www.shiffman.net 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 10 | * this software and associated documentation files (the "Software"), to deal in 11 | * the Software without restriction, including without limitation the rights to 12 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 13 | * the Software, and to permit persons to whom the Software is furnished to do so, 14 | * subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in all 17 | * copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 21 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 22 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 23 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Vector.h" 28 | 29 | class Attractor { 30 | public: 31 | float mass; // Mass, tied to size 32 | float G; // Gravitational Constant 33 | PVector location; // Location 34 | 35 | Attractor() { 36 | location = PVector(MATRIX_CENTRE_X, MATRIX_CENTRE_Y); 37 | mass = 10; 38 | G = .5; 39 | } 40 | 41 | PVector attract(Boid m) { 42 | PVector force = location - m.location; // Calculate direction of force 43 | float d = force.mag(); // Distance between objects 44 | d = constrain(d, 5.0, 32.0); // Limiting the distance to eliminate "extreme" results for very close or very far objects 45 | force.normalize(); // Normalize vector (distance doesn't matter here, we just want this vector for direction) 46 | float strength = (G * mass * m.mass) / (d * d); // Calculate gravitional force magnitude 47 | force *= strength; // Get force vector --> magnitude * direction 48 | return force; 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14/Drawable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef AuroraDrawable_H 24 | #define AuroraDrawable_H 25 | 26 | class AuroraDrawable{ 27 | public: 28 | char* name; 29 | 30 | virtual bool isRunnable() { 31 | return false; 32 | } 33 | 34 | virtual bool isPlaylist() { 35 | return false; 36 | } 37 | 38 | // a single frame should be drawn as fast as possible, without any delay or blocking 39 | // return how many millisecond delay is requested before the next call to drawFrame() 40 | virtual unsigned int drawFrame() { 41 | //backgroundLayer.fillScreen({ 0, 0, 0 }); 42 | return 0; 43 | }; 44 | 45 | virtual void start() {}; 46 | virtual void stop() {}; 47 | }; 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14/PatternIncrementalDrift2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Aurora: https://github.com/pixelmatix/aurora 4 | * Copyright (c) 2014 Jason Coon 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | * this software and associated documentation files (the "Software"), to deal in 8 | * the Software without restriction, including without limitation the rights to 9 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 10 | * the Software, and to permit persons to whom the Software is furnished to do so, 11 | * subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 18 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 19 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 20 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | */ 23 | #include "matrix.h" 24 | 25 | #ifndef PatternIncrementalDrift2_H 26 | #define PatternIncrementalDrift2_H 27 | 28 | class PatternIncrementalDrift2 : public AuroraDrawable { 29 | public: 30 | PatternIncrementalDrift2() { 31 | name = (char *)"Incremental Drift Rose"; 32 | } 33 | 34 | unsigned int drawFrame() { 35 | uint8_t dim = beatsin8(2, 170, 250); 36 | effects.DimAll(dim); 37 | 38 | for (uint8_t i = 0; i < MATRIX_WIDTH; i++) 39 | { 40 | CRGB color; 41 | 42 | uint8_t x = 0; 43 | uint8_t y = 0; 44 | 45 | if (i < MATRIX_CENTER_X) { 46 | x = beatcos8((i + 1) * 2, i, MATRIX_WIDTH - i); 47 | y = beatsin8((i + 1) * 2, i, MATRIX_HEIGHT - i); 48 | color = effects.ColorFromCurrentPalette(i * 14); 49 | } 50 | else 51 | { 52 | x = beatsin8((MATRIX_WIDTH - i) * 2, MATRIX_WIDTH - i, i + 1); 53 | y = beatcos8((MATRIX_HEIGHT - i) * 2, MATRIX_HEIGHT - i, i + 1); 54 | color = effects.ColorFromCurrentPalette((31 - i) * 14); 55 | } 56 | //backgroundLayer.drawPixel(x, y, color); 57 | matrix->drawPixel(x, y, color); 58 | } 59 | 60 | return 0; 61 | } 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14/PatternPendulumWave.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Inspired by and based on a loading animation for Prismata by Lunarch Studios: 4 | * http://www.reddit.com/r/gifs/comments/2on8si/connecting_to_server_so_mesmerizing/cmow0sz 5 | * 6 | * Lunarch Studios Inc. hereby publishes the Actionscript 3 source code pasted in this 7 | * comment under the Creative Commons CC0 1.0 Universal Public Domain Dedication. 8 | * Lunarch Studios Inc. waives all rights to the work worldwide under copyright law, 9 | * including all related and neighboring rights, to the extent allowed by law. 10 | * You can copy, modify, distribute and perform the work, even for commercial purposes, 11 | * all without asking permission. 12 | * 13 | * Aurora: https://github.com/pixelmatix/aurora 14 | * Copyright (c) 2014 Jason Coon 15 | * 16 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 17 | * this software and associated documentation files (the "Software"), to deal in 18 | * the Software without restriction, including without limitation the rights to 19 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 20 | * the Software, and to permit persons to whom the Software is furnished to do so, 21 | * subject to the following conditions: 22 | * 23 | * The above copyright notice and this permission notice shall be included in all 24 | * copies or substantial portions of the Software. 25 | * 26 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 28 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 29 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 30 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 31 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 32 | */ 33 | 34 | #include "matrix.h" 35 | 36 | #ifndef PatternPendulumWave_H 37 | #define PatternPendulumWave_H 38 | 39 | class PatternPendulumWave : public AuroraDrawable { 40 | public: 41 | PatternPendulumWave() { 42 | name = (char *)"Pendulum Wave"; 43 | } 44 | 45 | unsigned int drawFrame() { 46 | effects.DimAll(170); 47 | 48 | for (int x = 0; x < MATRIX_WIDTH; x++) 49 | { 50 | //uint8_t y = beatsin8(x + MATRIX_WIDTH, 0, MATRIX_HEIGHT); 51 | uint8_t y = beatsin8(x + 1, 0, MATRIX_HEIGHT); 52 | 53 | //backgroundLayer.drawPixel(x, y, effects.ColorFromCurrentPalette(x * 7)); 54 | CRGB color = effects.ColorFromCurrentPalette(x * 7); 55 | matrix->drawPixel(x, y, color); 56 | 57 | } 58 | 59 | return 15; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14/PatternRadar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef PatternRadar_H 24 | 25 | #include "matrix.h" 26 | 27 | class PatternRadar : public AuroraDrawable { 28 | private: 29 | byte theta = 0; 30 | byte hueoffset = 0; 31 | 32 | public: 33 | PatternRadar() { 34 | name = (char *)"Radar"; 35 | } 36 | 37 | unsigned int drawFrame() { 38 | if (MATRIX_WIDTH < 25) { 39 | effects.DimAll(252); 40 | } else { 41 | effects.DimAll(245); 42 | } 43 | 44 | for (int offset = 0; offset < MATRIX_CENTER_X; offset++) { 45 | //byte hue = 255 - (offset * 16 + hueoffset); 46 | byte hue = 255 - (offset * (256 / MATRIX_CENTER_X) + hueoffset); 47 | CRGB color = effects.ColorFromCurrentPalette(hue); 48 | uint8_t x = mapcos8(theta, offset, (MATRIX_WIDTH - 1) - offset); 49 | uint8_t y = mapsin8(theta, offset, (MATRIX_HEIGHT - 1) - offset); 50 | uint16_t xy = XY(x, y); 51 | effects.leds[xy] = color; 52 | 53 | EVERY_N_MILLIS(25) { 54 | theta += 2; 55 | hueoffset += 1; 56 | } 57 | } 58 | 59 | return 0; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14/main.h: -------------------------------------------------------------------------------- 1 | void loop() { 2 | pattern.drawFrame(); 3 | matrix->show(); 4 | } 5 | 6 | void setup() { 7 | delay(1000); 8 | Serial.begin(115200); 9 | 10 | matrix_setup(); 11 | Serial.print("Matrix Size: "); 12 | Serial.print(mw); 13 | Serial.print(" "); 14 | Serial.println(mh); 15 | matrix->begin(); 16 | matrix->setBrightness(matrix_brightness); 17 | matrix->setTextWrap(false); 18 | 19 | effects.leds = matrixleds; 20 | effects.Setup(); 21 | pattern.start(); 22 | matrix->clear(); 23 | } 24 | 25 | // vim:sts=4:sw=4 26 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14/matrix.h: -------------------------------------------------------------------------------- 1 | // By Marc MERLIN 2 | // License: Apache v2.0 3 | // 4 | 5 | #ifndef matrix_h 6 | #define matrix_h 7 | 8 | #include "neomatrix_config.h" 9 | #include "Drawable.h" 10 | 11 | const int MATRIX_CENTER_X = MATRIX_WIDTH / 2; 12 | const int MATRIX_CENTER_Y = MATRIX_HEIGHT / 2; 13 | 14 | const byte MATRIX_CENTRE_X = MATRIX_CENTER_X - 1; 15 | const byte MATRIX_CENTRE_Y = MATRIX_CENTER_Y - 1; 16 | 17 | #include "Effects.h" 18 | Effects effects; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes14/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes34/Attractor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 4 | * 5 | * Portions of this code are adapted from "Attractor" in "The Nature of Code" by Daniel Shiffman: http://natureofcode.com/ 6 | * Copyright (c) 2014 Daniel Shiffman 7 | * http://www.shiffman.net 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 10 | * this software and associated documentation files (the "Software"), to deal in 11 | * the Software without restriction, including without limitation the rights to 12 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 13 | * the Software, and to permit persons to whom the Software is furnished to do so, 14 | * subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in all 17 | * copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 21 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 22 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 23 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Vector.h" 28 | 29 | class Attractor { 30 | public: 31 | float mass; // Mass, tied to size 32 | float G; // Gravitational Constant 33 | PVector location; // Location 34 | 35 | Attractor() { 36 | location = PVector(MATRIX_CENTRE_X, MATRIX_CENTRE_Y); 37 | mass = 10; 38 | G = .5; 39 | } 40 | 41 | PVector attract(Boid m) { 42 | PVector force = location - m.location; // Calculate direction of force 43 | float d = force.mag(); // Distance between objects 44 | d = constrain(d, 5.0, 32.0); // Limiting the distance to eliminate "extreme" results for very close or very far objects 45 | force.normalize(); // Normalize vector (distance doesn't matter here, we just want this vector for direction) 46 | float strength = (G * mass * m.mass) / (d * d); // Calculate gravitional force magnitude 47 | force *= strength; // Get force vector --> magnitude * direction 48 | return force; 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes34/Drawable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef AuroraDrawable_H 24 | #define AuroraDrawable_H 25 | 26 | class AuroraDrawable{ 27 | public: 28 | char* name; 29 | 30 | virtual bool isRunnable() { 31 | return false; 32 | } 33 | 34 | virtual bool isPlaylist() { 35 | return false; 36 | } 37 | 38 | // a single frame should be drawn as fast as possible, without any delay or blocking 39 | // return how many millisecond delay is requested before the next call to drawFrame() 40 | virtual unsigned int drawFrame() { 41 | // not visible in this file (defined in neomatrix_config.h) 42 | //backgroundLayer.fillScreen({ 0, 0, 0 }); 43 | return 0; 44 | }; 45 | 46 | virtual void start() {}; 47 | virtual void stop() {}; 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes34/PatternIncrementalDrift2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Aurora: https://github.com/pixelmatix/aurora 4 | * Copyright (c) 2014 Jason Coon 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | * this software and associated documentation files (the "Software"), to deal in 8 | * the Software without restriction, including without limitation the rights to 9 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 10 | * the Software, and to permit persons to whom the Software is furnished to do so, 11 | * subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 18 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 19 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 20 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | */ 23 | #include "matrix.h" 24 | 25 | #ifndef PatternIncrementalDrift2_H 26 | #define PatternIncrementalDrift2_H 27 | 28 | class PatternIncrementalDrift2 : public AuroraDrawable { 29 | public: 30 | PatternIncrementalDrift2() { 31 | name = (char *)"Incremental Drift Rose"; 32 | } 33 | 34 | unsigned int drawFrame() { 35 | uint8_t dim = beatsin8(2, 170, 250); 36 | effects.DimAll(dim); 37 | 38 | for (uint16_t i = 0; i < MATRIX_WIDTH; i++) 39 | { 40 | CRGB color; 41 | 42 | uint8_t x = 0; 43 | uint8_t y = 0; 44 | 45 | if (i < MATRIX_CENTER_X) { 46 | x = beatcos8((i + 1) * 2, i, MATRIX_WIDTH - i); 47 | y = beatsin8((i + 1) * 2, i, MATRIX_HEIGHT - i); 48 | color = effects.ColorFromCurrentPalette(i * 14); 49 | } 50 | else 51 | { 52 | x = beatsin8((MATRIX_WIDTH - i) * 2, MATRIX_WIDTH - i, i + 1); 53 | y = beatcos8((MATRIX_HEIGHT - i) * 2, MATRIX_HEIGHT - i, i + 1); 54 | color = effects.ColorFromCurrentPalette((31 - i) * 14); 55 | } 56 | //backgroundLayer.drawPixel(x, y, color); 57 | matrix->drawPixel(x, y, color); 58 | } 59 | 60 | return 0; 61 | } 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes34/PatternRadar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef PatternRadar_H 24 | 25 | #include "matrix.h" 26 | 27 | class PatternRadar : public AuroraDrawable { 28 | private: 29 | byte theta = 0; 30 | byte hueoffset = 0; 31 | 32 | public: 33 | PatternRadar() { 34 | name = (char *)"Radar"; 35 | } 36 | 37 | unsigned int drawFrame() { 38 | if (MATRIX_WIDTH < 25) { 39 | effects.DimAll(252); 40 | } else { 41 | effects.DimAll(245); 42 | } 43 | 44 | for (int offset = 0; offset < MATRIX_CENTER_X; offset++) { 45 | //byte hue = 255 - (offset * 16 + hueoffset); 46 | byte hue = 255 - (offset * (256 / MATRIX_CENTER_X) + hueoffset); 47 | CRGB color = effects.ColorFromCurrentPalette(hue); 48 | uint8_t x = mapcos8(theta, offset, (MATRIX_WIDTH - 1) - offset); 49 | uint8_t y = mapsin8(theta, offset, (MATRIX_HEIGHT - 1) - offset); 50 | uint16_t xy = XY(x, y); 51 | effects.leds[xy] = color; 52 | 53 | EVERY_N_MILLIS(25) { 54 | theta += 2; 55 | hueoffset += 1; 56 | } 57 | } 58 | 59 | return 0; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes34/Table_Mark_Estes_config.h: -------------------------------------------------------------------------------- 1 | // --------------------------- Config Start -------------------------------- 2 | // Randomly slowdown animation. Nice in principle, but not when debugging performance 3 | #define RANDOMSLOWME 4 | 5 | // Control whether pattern order is random from the start or after one pass 6 | #define MIXIT_AFTER_FIRST_PASS 7 | 8 | // write the pattern number in upper left (makes more sense on higher res displays) 9 | #define SHOW_PATTERN_NUM 10 | 11 | // Some pattern transitions look weird without a clear in between 12 | #define CLEAR_BETWEEN_PATTERNS 13 | 14 | // This allows a selection of only my favourite patterns. 15 | // Comment this out to get all the patterns -- merlin 16 | //#define BESTPATTERNS 17 | #ifdef BESTPATTERNS 18 | // 82 and 89 are similar 55 and 102 are similar 19 | uint8_t bestpatterns[] = { 20 | 187, 21 | }; 22 | #define numbest sizeof(bestpatterns) 23 | #define lastpatindex numbest 24 | #else 25 | #define lastpatindex mpatterns 26 | #endif 27 | 28 | // By default audio support is on for what's expected to be teensy. 29 | #define TME_AUDIO 30 | // But turn it off on ARDUINOONPC / Raspberry Pi and ESP32 31 | #ifdef ARDUINOONPC 32 | #undef TME_AUDIO 33 | #endif 34 | #ifdef ESP32 35 | #undef TME_AUDIO 36 | #endif 37 | 38 | #ifdef TME_AUDIO 39 | #include // used for exchange with 2nd arduino for audio processing 40 | #endif 41 | 42 | #define TIMING 90//seconds per pattern 43 | #define LATCH 23 44 | 45 | int16_t pattern = 112;//this picks the pattern to start with... 46 | // --------------------------- Config End ---------------------------------- 47 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes34/matrix.h: -------------------------------------------------------------------------------- 1 | // By Marc MERLIN 2 | // License: Apache v2.0 3 | // 4 | 5 | #ifndef matrix_h 6 | #define matrix_h 7 | 8 | #include "neomatrix_config.h" 9 | #include "Drawable.h" 10 | 11 | const int MATRIX_CENTER_X = MATRIX_WIDTH / 2; 12 | const int MATRIX_CENTER_Y = MATRIX_HEIGHT / 2; 13 | 14 | const byte MATRIX_CENTRE_X = MATRIX_CENTER_X - 1; 15 | const byte MATRIX_CENTRE_Y = MATRIX_CENTER_Y - 1; 16 | 17 | #include "Effects.h" 18 | Effects effects; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes34/neomatrix_config_full.diff: -------------------------------------------------------------------------------- 1 | --- neomatrix_config_full.h.orig 2020-08-30 11:50:26.000000000 -0700 2 | +++ neomatrix_config_full.h 2020-08-30 11:51:46.561782464 -0700 3 | @@ -1,6 +1,8 @@ 4 | #ifndef neomatrix_config_h 5 | #define neomatrix_config_h 6 | 7 | +#define SMARTMATRIX 8 | + 9 | /* There are 2 major backends 10 | 1) SmartMatrix (via SmartMatrix::GFX) 11 | 2) Not SmartMatrix (via FastLED::NeoMatrix or FastLED_SPITFT::GFX) 12 | @@ -391,6 +393,7 @@ 13 | #include 14 | uint8_t matrix_brightness = 255; 15 | 16 | +#if 0 17 | #ifdef ESP32 18 | #pragma message "SmartMatrix for ESP32 with 64x32 16 scan panel and 64x96 resolution" 19 | const uint8_t kPanelType = SMARTMATRIX_HUB75_32ROW_MOD16SCAN; // use SMARTMATRIX_HUB75_16ROW_MOD8SCAN for common 16x32 panels 20 | @@ -405,9 +408,17 @@ 21 | #else 22 | #error Unknown architecture (not ESP32 or teensy 3.5/6) 23 | #endif 24 | +#endif 25 | + 26 | + #pragma message "Compiling for Teensy with 64x64 2 64x32 panels" 27 | + const uint8_t kPanelType = SMARTMATRIX_HUB75_32ROW_MOD16SCAN; // use SMARTMATRIX_HUB75_16ROW_MOD8SCAN for common 16x32 panels 28 | + //const uint8_t kPanelType = SMARTMATRIX_HUB75_64ROW_MOD32SCAN; 29 | + const uint16_t MATRIX_TILE_WIDTH = 64; // width of EACH NEOPIXEL MATRIX (not total display) 30 | + const uint16_t MATRIX_TILE_HEIGHT = 32; // height of each matrix 31 | + 32 | // Used by LEDMatrix 33 | const uint8_t MATRIX_TILE_H = 1; // number of matrices arranged horizontally 34 | - const uint8_t MATRIX_TILE_V = 1; // number of matrices arranged vertically 35 | + const uint8_t MATRIX_TILE_V = 2; // number of matrices arranged vertically 36 | 37 | // Used by NeoMatrix 38 | const uint16_t mw = MATRIX_TILE_WIDTH * MATRIX_TILE_H; 39 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes44/Attractor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 4 | * 5 | * Portions of this code are adapted from "Attractor" in "The Nature of Code" by Daniel Shiffman: http://natureofcode.com/ 6 | * Copyright (c) 2014 Daniel Shiffman 7 | * http://www.shiffman.net 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 10 | * this software and associated documentation files (the "Software"), to deal in 11 | * the Software without restriction, including without limitation the rights to 12 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 13 | * the Software, and to permit persons to whom the Software is furnished to do so, 14 | * subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in all 17 | * copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 21 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 22 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 23 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Vector.h" 28 | 29 | class Attractor { 30 | public: 31 | float mass; // Mass, tied to size 32 | float G; // Gravitational Constant 33 | PVector location; // Location 34 | 35 | Attractor() { 36 | location = PVector(MATRIX_CENTRE_X, MATRIX_CENTRE_Y); 37 | mass = 10; 38 | G = .5; 39 | } 40 | 41 | PVector attract(Boid m) { 42 | PVector force = location - m.location; // Calculate direction of force 43 | float d = force.mag(); // Distance between objects 44 | d = constrain(d, 5.0, 32.0); // Limiting the distance to eliminate "extreme" results for very close or very far objects 45 | force.normalize(); // Normalize vector (distance doesn't matter here, we just want this vector for direction) 46 | float strength = (G * mass * m.mass) / (d * d); // Calculate gravitional force magnitude 47 | force *= strength; // Get force vector --> magnitude * direction 48 | return force; 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes44/Drawable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef AuroraDrawable_H 24 | #define AuroraDrawable_H 25 | 26 | class AuroraDrawable{ 27 | public: 28 | char* name; 29 | 30 | virtual bool isRunnable() { 31 | return false; 32 | } 33 | 34 | virtual bool isPlaylist() { 35 | return false; 36 | } 37 | 38 | // a single frame should be drawn as fast as possible, without any delay or blocking 39 | // return how many millisecond delay is requested before the next call to drawFrame() 40 | virtual unsigned int drawFrame() { 41 | // not visible in this file (defined in neomatrix_config.h) 42 | //backgroundLayer.fillScreen({ 0, 0, 0 }); 43 | return 0; 44 | }; 45 | 46 | virtual void start() {}; 47 | virtual void stop() {}; 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes44/PatternIncrementalDrift2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Aurora: https://github.com/pixelmatix/aurora 4 | * Copyright (c) 2014 Jason Coon 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | * this software and associated documentation files (the "Software"), to deal in 8 | * the Software without restriction, including without limitation the rights to 9 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 10 | * the Software, and to permit persons to whom the Software is furnished to do so, 11 | * subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 18 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 19 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 20 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | */ 23 | #include "matrix.h" 24 | 25 | #ifndef PatternIncrementalDrift2_H 26 | #define PatternIncrementalDrift2_H 27 | 28 | class PatternIncrementalDrift2 : public AuroraDrawable { 29 | public: 30 | PatternIncrementalDrift2() { 31 | name = (char *)"Incremental Drift Rose"; 32 | } 33 | 34 | unsigned int drawFrame() { 35 | uint8_t dim = beatsin8(2, 170, 250); 36 | effects.DimAll(dim); 37 | 38 | for (uint16_t i = 0; i < MATRIX_WIDTH; i++) 39 | { 40 | CRGB color; 41 | 42 | uint8_t x = 0; 43 | uint8_t y = 0; 44 | 45 | if (i < MATRIX_CENTER_X) { 46 | x = beatcos8((i + 1) * 2, i, MATRIX_WIDTH - i); 47 | y = beatsin8((i + 1) * 2, i, MATRIX_HEIGHT - i); 48 | color = effects.ColorFromCurrentPalette(i * 14); 49 | } 50 | else 51 | { 52 | x = beatsin8((MATRIX_WIDTH - i) * 2, MATRIX_WIDTH - i, i + 1); 53 | y = beatcos8((MATRIX_HEIGHT - i) * 2, MATRIX_HEIGHT - i, i + 1); 54 | color = effects.ColorFromCurrentPalette((31 - i) * 14); 55 | } 56 | //backgroundLayer.drawPixel(x, y, color); 57 | matrix->drawPixel(x, y, color); 58 | } 59 | 60 | return 0; 61 | } 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes44/PatternRadar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef PatternRadar_H 24 | 25 | #include "matrix.h" 26 | 27 | class PatternRadar : public AuroraDrawable { 28 | private: 29 | byte theta = 0; 30 | byte hueoffset = 0; 31 | 32 | public: 33 | PatternRadar() { 34 | name = (char *)"Radar"; 35 | } 36 | 37 | unsigned int drawFrame() { 38 | if (MATRIX_WIDTH < 25) { 39 | effects.DimAll(252); 40 | } else { 41 | effects.DimAll(245); 42 | } 43 | 44 | for (int offset = 0; offset < MATRIX_CENTER_X; offset++) { 45 | //byte hue = 255 - (offset * 16 + hueoffset); 46 | byte hue = 255 - (offset * (256 / MATRIX_CENTER_X) + hueoffset); 47 | CRGB color = effects.ColorFromCurrentPalette(hue); 48 | uint8_t x = mapcos8(theta, offset, (MATRIX_WIDTH - 1) - offset); 49 | uint8_t y = mapsin8(theta, offset, (MATRIX_HEIGHT - 1) - offset); 50 | uint16_t xy = XY(x, y); 51 | effects.leds[xy] = color; 52 | 53 | EVERY_N_MILLIS(25) { 54 | theta += 2; 55 | hueoffset += 1; 56 | } 57 | } 58 | 59 | return 0; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes44/Table_Mark_Estes_config.h: -------------------------------------------------------------------------------- 1 | // --------------------------- Config Start -------------------------------- 2 | // Randomly slowdown animation. Nice in principle, but not when debugging performance 3 | #define RANDOMSLOWME 4 | 5 | // Control whether pattern order is random from the start or after one pass 6 | #define MIXIT_AFTER_FIRST_PASS 7 | 8 | // write the pattern number in upper left (makes more sense on higher res displays) 9 | //#define SHOW_PATTERN_NUM 10 | // 11 | // Display FPS computed by Framebuffer::GFX 12 | //#define DISPLAY_FPS 13 | 14 | // Some pattern transitions look weird without a clear in between 15 | //#define CLEAR_BETWEEN_PATTERNS 16 | 17 | // This allows a selection of only my favourite patterns. 18 | // Comment this out to get all the patterns -- merlin 19 | //#define BESTPATTERNS 20 | #ifdef BESTPATTERNS 21 | // 82 and 89 are similar 55 and 102 are similar 22 | uint8_t bestpatterns[] = { 23 | 3, 8, 14, 17, 26, 55, 58, 59, 61, 69, 72, 82, 87, 102, 108, 109, 111, 115, 124, 134, 139, 155, 24 | 4, 10, 11, 16, 18, 25, 67, 70, 73, 77, 80, 86, 104, 105, 110, // good in original tmed 25 | 19, 20, 26, 81, 89, 94, 96, 98, 101, 103, 107, 112, 113, 114, 118, 119, 120, 121, 126, 128, 131, 134, 139, 141, 143, 144, 145, 147, 149, 151, 158, // good but not picked for 128x192 26 | }; 27 | #define numbest sizeof(bestpatterns) 28 | #define lastpatindex numbest 29 | #else 30 | #define lastpatindex mpatterns 31 | #endif 32 | 33 | // By default audio support is on for what's expected to be teensy. 34 | #define TME_AUDIO 35 | // But turn it off on ARDUINOONPC / Raspberry Pi and ESP32 36 | #ifdef ARDUINOONPC 37 | #undef TME_AUDIO 38 | #endif 39 | #ifdef ESP32 40 | #undef TME_AUDIO 41 | #endif 42 | 43 | #ifdef TME_AUDIO 44 | #include // used for exchange with 2nd arduino for audio processing 45 | #endif 46 | 47 | #define TIMING 90//seconds per pattern 48 | #define LATCH 23 49 | 50 | int16_t pattern = 112;//this picks the pattern to start with... 51 | // --------------------------- Config End ---------------------------------- 52 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes44/matrix.h: -------------------------------------------------------------------------------- 1 | // By Marc MERLIN 2 | // License: Apache v2.0 3 | // 4 | 5 | #ifndef matrix_h 6 | #define matrix_h 7 | 8 | #include "neomatrix_config.h" 9 | #include "Drawable.h" 10 | 11 | const int MATRIX_CENTER_X = MATRIX_WIDTH / 2; 12 | const int MATRIX_CENTER_Y = MATRIX_HEIGHT / 2; 13 | 14 | const byte MATRIX_CENTRE_X = MATRIX_CENTER_X - 1; 15 | const byte MATRIX_CENTRE_Y = MATRIX_CENTER_Y - 1; 16 | 17 | #include "Effects.h" 18 | Effects effects; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes44/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes44/neomatrix_config_full.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes49/Attractor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 4 | * 5 | * Portions of this code are adapted from "Attractor" in "The Nature of Code" by Daniel Shiffman: http://natureofcode.com/ 6 | * Copyright (c) 2014 Daniel Shiffman 7 | * http://www.shiffman.net 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 10 | * this software and associated documentation files (the "Software"), to deal in 11 | * the Software without restriction, including without limitation the rights to 12 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 13 | * the Software, and to permit persons to whom the Software is furnished to do so, 14 | * subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in all 17 | * copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 21 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 22 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 23 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Vector.h" 28 | 29 | class Attractor { 30 | public: 31 | float mass; // Mass, tied to size 32 | float G; // Gravitational Constant 33 | PVector location; // Location 34 | 35 | Attractor() { 36 | location = PVector(MATRIX_CENTRE_X, MATRIX_CENTRE_Y); 37 | mass = 10; 38 | G = .5; 39 | } 40 | 41 | PVector attract(Boid m) { 42 | PVector force = location - m.location; // Calculate direction of force 43 | float d = force.mag(); // Distance between objects 44 | d = constrain(d, 5.0, 32.0); // Limiting the distance to eliminate "extreme" results for very close or very far objects 45 | force.normalize(); // Normalize vector (distance doesn't matter here, we just want this vector for direction) 46 | float strength = (G * mass * m.mass) / (d * d); // Calculate gravitional force magnitude 47 | force *= strength; // Get force vector --> magnitude * direction 48 | return force; 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes49/Drawable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef AuroraDrawable_H 24 | #define AuroraDrawable_H 25 | 26 | class AuroraDrawable{ 27 | public: 28 | char* name; 29 | 30 | virtual bool isRunnable() { 31 | return false; 32 | } 33 | 34 | virtual bool isPlaylist() { 35 | return false; 36 | } 37 | 38 | // a single frame should be drawn as fast as possible, without any delay or blocking 39 | // return how many millisecond delay is requested before the next call to drawFrame() 40 | virtual unsigned int drawFrame() { 41 | // not visible in this file (defined in neomatrix_config.h) 42 | //backgroundLayer.fillScreen({ 0, 0, 0 }); 43 | return 0; 44 | }; 45 | 46 | virtual void start() {}; 47 | virtual void stop() {}; 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes49/PatternIncrementalDrift2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Aurora: https://github.com/pixelmatix/aurora 4 | * Copyright (c) 2014 Jason Coon 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | * this software and associated documentation files (the "Software"), to deal in 8 | * the Software without restriction, including without limitation the rights to 9 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 10 | * the Software, and to permit persons to whom the Software is furnished to do so, 11 | * subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 18 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 19 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 20 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | */ 23 | #include "matrix.h" 24 | 25 | #ifndef PatternIncrementalDrift2_H 26 | #define PatternIncrementalDrift2_H 27 | 28 | class PatternIncrementalDrift2 : public AuroraDrawable { 29 | public: 30 | PatternIncrementalDrift2() { 31 | name = (char *)"Incremental Drift Rose"; 32 | } 33 | 34 | unsigned int drawFrame() { 35 | uint8_t dim = beatsin8(2, 170, 250); 36 | effects.DimAll(dim); 37 | 38 | for (uint16_t i = 0; i < MATRIX_WIDTH; i++) 39 | { 40 | CRGB color; 41 | 42 | uint8_t x = 0; 43 | uint8_t y = 0; 44 | 45 | if (i < MATRIX_CENTER_X) { 46 | x = beatcos8((i + 1) * 2, i, MATRIX_WIDTH - i); 47 | y = beatsin8((i + 1) * 2, i, MATRIX_HEIGHT - i); 48 | color = effects.ColorFromCurrentPalette(i * 14); 49 | } 50 | else 51 | { 52 | x = beatsin8((MATRIX_WIDTH - i) * 2, MATRIX_WIDTH - i, i + 1); 53 | y = beatcos8((MATRIX_HEIGHT - i) * 2, MATRIX_HEIGHT - i, i + 1); 54 | color = effects.ColorFromCurrentPalette((31 - i) * 14); 55 | } 56 | //backgroundLayer.drawPixel(x, y, color); 57 | matrix->drawPixel(x, y, color); 58 | } 59 | 60 | return 0; 61 | } 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes49/PatternRadar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef PatternRadar_H 24 | 25 | #include "matrix.h" 26 | 27 | class PatternRadar : public AuroraDrawable { 28 | private: 29 | byte theta = 0; 30 | byte hueoffset = 0; 31 | 32 | public: 33 | PatternRadar() { 34 | name = (char *)"Radar"; 35 | } 36 | 37 | unsigned int drawFrame() { 38 | if (MATRIX_WIDTH < 25) { 39 | effects.DimAll(252); 40 | } else { 41 | effects.DimAll(245); 42 | } 43 | 44 | for (int offset = 0; offset < MATRIX_CENTER_X; offset++) { 45 | //byte hue = 255 - (offset * 16 + hueoffset); 46 | byte hue = 255 - (offset * (256 / MATRIX_CENTER_X) + hueoffset); 47 | CRGB color = effects.ColorFromCurrentPalette(hue); 48 | uint8_t x = mapcos8(theta, offset, (MATRIX_WIDTH - 1) - offset); 49 | uint8_t y = mapsin8(theta, offset, (MATRIX_HEIGHT - 1) - offset); 50 | uint16_t xy = XY(x, y); 51 | effects.leds[xy] = color; 52 | 53 | EVERY_N_MILLIS(25) { 54 | theta += 2; 55 | hueoffset += 1; 56 | } 57 | } 58 | 59 | return 0; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes49/Table_Mark_Estes_config.h: -------------------------------------------------------------------------------- 1 | // --------------------------- Config Start -------------------------------- 2 | // Randomly slowdown animation. Nice in principle, but not when debugging performance 3 | #define RANDOMSLOWME 4 | 5 | // Control whether pattern order is random from the start or after one pass 6 | #define MIXIT_AFTER_FIRST_PASS 7 | 8 | // write the pattern number in upper left (makes more sense on higher res displays) 9 | //#define SHOW_PATTERN_NUM 10 | // 11 | // Display FPS computed by Framebuffer::GFX 12 | //#define DISPLAY_FPS 13 | 14 | // Some pattern transitions look weird without a clear in between 15 | //#define CLEAR_BETWEEN_PATTERNS 16 | 17 | // This allows a selection of only my favourite patterns. 18 | // Comment this out to get all the patterns -- merlin 19 | //#define BESTPATTERNS 20 | #ifdef BESTPATTERNS 21 | // 82 and 89 are similar 55 and 102 are similar 22 | uint8_t bestpatterns[] = { 23 | 3, 8, 14, 17, 26, 55, 58, 59, 61, 69, 72, 82, 87, 102, 108, 109, 111, 115, 124, 134, 139, 155, 24 | 4, 10, 11, 16, 18, 25, 67, 70, 73, 77, 80, 86, 104, 105, 110, // good in original tmed 25 | 19, 20, 26, 81, 89, 94, 96, 98, 101, 103, 107, 112, 113, 114, 118, 119, 120, 121, 126, 128, 131, 134, 139, 141, 143, 144, 145, 147, 149, 151, 158, // good but not picked for 128x192 26 | }; 27 | #define numbest sizeof(bestpatterns) 28 | #define lastpatindex numbest 29 | #else 30 | #define lastpatindex mpatterns 31 | #endif 32 | 33 | // By default audio support is on for what's expected to be teensy. 34 | #define TME_AUDIO 35 | // But turn it off on ARDUINOONPC / Raspberry Pi and ESP32 36 | #ifdef ARDUINOONPC 37 | #undef TME_AUDIO 38 | #endif 39 | #ifdef ESP32 40 | #undef TME_AUDIO 41 | #endif 42 | 43 | #ifdef TME_AUDIO 44 | 45 | 46 | #include // used for exchange with 2nd arduino for audio processing 47 | 48 | #endif 49 | 50 | #define TIMING 90 51 | //seconds per pattern 52 | #define LATCH 23 53 | 54 | int16_t pattern = 3;//this picks the pattern to start with... 55 | // --------------------------- Config End ---------------------------------- 56 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes49/matrix.h: -------------------------------------------------------------------------------- 1 | // By Marc MERLIN 2 | // License: Apache v2.0 3 | // 4 | 5 | #ifndef matrix_h 6 | #define matrix_h 7 | 8 | #include "neomatrix_config.h" 9 | #include "Drawable.h" 10 | 11 | const int MATRIX_CENTER_X = MATRIX_WIDTH / 2; 12 | const int MATRIX_CENTER_Y = MATRIX_HEIGHT / 2; 13 | 14 | const byte MATRIX_CENTRE_X = MATRIX_CENTER_X - 1; 15 | const byte MATRIX_CENTRE_Y = MATRIX_CENTER_Y - 1; 16 | 17 | #include "Effects.h" 18 | Effects effects; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes49/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes49/neomatrix_config_full.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes50/Attractor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 4 | * 5 | * Portions of this code are adapted from "Attractor" in "The Nature of Code" by Daniel Shiffman: http://natureofcode.com/ 6 | * Copyright (c) 2014 Daniel Shiffman 7 | * http://www.shiffman.net 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 10 | * this software and associated documentation files (the "Software"), to deal in 11 | * the Software without restriction, including without limitation the rights to 12 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 13 | * the Software, and to permit persons to whom the Software is furnished to do so, 14 | * subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in all 17 | * copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 21 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 22 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 23 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Vector.h" 28 | 29 | class Attractor { 30 | public: 31 | float mass; // Mass, tied to size 32 | float G; // Gravitational Constant 33 | PVector location; // Location 34 | 35 | Attractor() { 36 | location = PVector(MATRIX_CENTRE_X, MATRIX_CENTRE_Y); 37 | mass = 10; 38 | G = .5; 39 | } 40 | 41 | PVector attract(Boid m) { 42 | PVector force = location - m.location; // Calculate direction of force 43 | float d = force.mag(); // Distance between objects 44 | d = constrain(d, 5.0, 32.0); // Limiting the distance to eliminate "extreme" results for very close or very far objects 45 | force.normalize(); // Normalize vector (distance doesn't matter here, we just want this vector for direction) 46 | float strength = (G * mass * m.mass) / (d * d); // Calculate gravitional force magnitude 47 | force *= strength; // Get force vector --> magnitude * direction 48 | return force; 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes50/Drawable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef AuroraDrawable_H 24 | #define AuroraDrawable_H 25 | 26 | class AuroraDrawable{ 27 | public: 28 | char* name; 29 | 30 | virtual bool isRunnable() { 31 | return false; 32 | } 33 | 34 | virtual bool isPlaylist() { 35 | return false; 36 | } 37 | 38 | // a single frame should be drawn as fast as possible, without any delay or blocking 39 | // return how many millisecond delay is requested before the next call to drawFrame() 40 | virtual unsigned int drawFrame() { 41 | // not visible in this file (defined in neomatrix_config.h) 42 | //backgroundLayer.fillScreen({ 0, 0, 0 }); 43 | return 0; 44 | }; 45 | 46 | virtual void start() {}; 47 | virtual void stop() {}; 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes50/PatternIncrementalDrift2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Aurora: https://github.com/pixelmatix/aurora 4 | * Copyright (c) 2014 Jason Coon 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | * this software and associated documentation files (the "Software"), to deal in 8 | * the Software without restriction, including without limitation the rights to 9 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 10 | * the Software, and to permit persons to whom the Software is furnished to do so, 11 | * subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 18 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 19 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 20 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | */ 23 | #include "matrix.h" 24 | 25 | #ifndef PatternIncrementalDrift2_H 26 | #define PatternIncrementalDrift2_H 27 | 28 | class PatternIncrementalDrift2 : public AuroraDrawable { 29 | public: 30 | PatternIncrementalDrift2() { 31 | name = (char *)"Incremental Drift Rose"; 32 | } 33 | 34 | unsigned int drawFrame() { 35 | uint8_t dim = beatsin8(2, 170, 250); 36 | effects.DimAll(dim); 37 | 38 | for (uint16_t i = 0; i < MATRIX_WIDTH; i++) 39 | { 40 | CRGB color; 41 | 42 | uint8_t x = 0; 43 | uint8_t y = 0; 44 | 45 | if (i < MATRIX_CENTER_X) { 46 | x = beatcos8((i + 1) * 2, i, MATRIX_WIDTH - i); 47 | y = beatsin8((i + 1) * 2, i, MATRIX_HEIGHT - i); 48 | color = effects.ColorFromCurrentPalette(i * 14); 49 | } 50 | else 51 | { 52 | x = beatsin8((MATRIX_WIDTH - i) * 2, MATRIX_WIDTH - i, i + 1); 53 | y = beatcos8((MATRIX_HEIGHT - i) * 2, MATRIX_HEIGHT - i, i + 1); 54 | color = effects.ColorFromCurrentPalette((31 - i) * 14); 55 | } 56 | //backgroundLayer.drawPixel(x, y, color); 57 | matrix->drawPixel(x, y, color); 58 | } 59 | 60 | return 0; 61 | } 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes50/PatternRadar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef PatternRadar_H 24 | 25 | #include "matrix.h" 26 | 27 | class PatternRadar : public AuroraDrawable { 28 | private: 29 | byte theta = 0; 30 | byte hueoffset = 0; 31 | 32 | public: 33 | PatternRadar() { 34 | name = (char *)"Radar"; 35 | } 36 | 37 | unsigned int drawFrame() { 38 | if (MATRIX_WIDTH < 25) { 39 | effects.DimAll(252); 40 | } else { 41 | effects.DimAll(245); 42 | } 43 | 44 | for (int offset = 0; offset < MATRIX_CENTER_X; offset++) { 45 | //byte hue = 255 - (offset * 16 + hueoffset); 46 | byte hue = 255 - (offset * (256 / MATRIX_CENTER_X) + hueoffset); 47 | CRGB color = effects.ColorFromCurrentPalette(hue); 48 | uint8_t x = mapcos8(theta, offset, (MATRIX_WIDTH - 1) - offset); 49 | uint8_t y = mapsin8(theta, offset, (MATRIX_HEIGHT - 1) - offset); 50 | uint16_t xy = XY(x, y); 51 | effects.leds[xy] = color; 52 | 53 | EVERY_N_MILLIS(25) { 54 | theta += 2; 55 | hueoffset += 1; 56 | } 57 | } 58 | 59 | return 0; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes50/Table_Mark_Estes_config.h: -------------------------------------------------------------------------------- 1 | // --------------------------- Config Start -------------------------------- 2 | // Randomly slowdown animation. Nice in principle, but not when debugging performance 3 | #define RANDOMSLOWME 4 | 5 | // Control whether pattern order is random from the start or after one pass 6 | #define MIXIT_AFTER_FIRST_PASS 7 | 8 | // write the pattern number in upper left (makes more sense on higher res displays) 9 | //#define SHOW_PATTERN_NUM 10 | // 11 | // Display FPS computed by Framebuffer::GFX 12 | //#define DISPLAY_FPS 13 | 14 | // Some pattern transitions look weird without a clear in between 15 | //#define CLEAR_BETWEEN_PATTERNS 16 | 17 | // This allows a selection of only my favourite patterns. 18 | // Comment this out to get all the patterns -- merlin 19 | //#define BESTPATTERNS 20 | #ifdef BESTPATTERNS 21 | // 82 and 89 are similar 55 and 102 are similar 22 | uint8_t bestpatterns[] = { 23 | 3, 8, 14, 17, 26, 55, 58, 59, 61, 69, 72, 82, 87, 102, 108, 109, 111, 115, 124, 134, 139, 155, 24 | 4, 10, 11, 16, 18, 25, 67, 70, 73, 77, 80, 86, 104, 105, 110, // good in original tmed 25 | 19, 20, 26, 81, 89, 94, 96, 98, 101, 103, 107, 112, 113, 114, 118, 119, 120, 121, 126, 128, 131, 134, 139, 141, 143, 144, 145, 147, 149, 151, 158, // good but not picked for 128x192 26 | }; 27 | #define numbest sizeof(bestpatterns) 28 | #define lastpatindex numbest 29 | #else 30 | #define lastpatindex mpatterns 31 | #endif 32 | 33 | // By default audio support is on for what's expected to be teensy. 34 | #define TME_AUDIO 35 | // But turn it off on ARDUINOONPC / Raspberry Pi and ESP32 36 | #ifdef ARDUINOONPC 37 | #undef TME_AUDIO 38 | #endif 39 | #ifdef ESP32 40 | #undef TME_AUDIO 41 | #endif 42 | 43 | #ifdef TME_AUDIO 44 | 45 | 46 | #include // used for exchange with 2nd arduino for audio processing 47 | 48 | #endif 49 | 50 | #define TIMING 90 51 | //seconds per pattern 52 | #define LATCH 23 53 | 54 | int16_t pattern = 3;//this picks the pattern to start with... 55 | // --------------------------- Config End ---------------------------------- 56 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes50/matrix.h: -------------------------------------------------------------------------------- 1 | // By Marc MERLIN 2 | // License: Apache v2.0 3 | // 4 | 5 | #ifndef matrix_h 6 | #define matrix_h 7 | 8 | #include "neomatrix_config.h" 9 | #include "Drawable.h" 10 | 11 | const int MATRIX_CENTER_X = MATRIX_WIDTH / 2; 12 | const int MATRIX_CENTER_Y = MATRIX_HEIGHT / 2; 13 | 14 | const byte MATRIX_CENTRE_X = MATRIX_CENTER_X - 1; 15 | const byte MATRIX_CENTRE_Y = MATRIX_CENTER_Y - 1; 16 | 17 | #include "Effects.h" 18 | Effects effects; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes50/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes50/neomatrix_config_full.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes56/Attractor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 4 | * 5 | * Portions of this code are adapted from "Attractor" in "The Nature of Code" by Daniel Shiffman: http://natureofcode.com/ 6 | * Copyright (c) 2014 Daniel Shiffman 7 | * http://www.shiffman.net 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 10 | * this software and associated documentation files (the "Software"), to deal in 11 | * the Software without restriction, including without limitation the rights to 12 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 13 | * the Software, and to permit persons to whom the Software is furnished to do so, 14 | * subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in all 17 | * copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 21 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 22 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 23 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Vector.h" 28 | 29 | class Attractor { 30 | public: 31 | float mass; // Mass, tied to size 32 | float G; // Gravitational Constant 33 | PVector location; // Location 34 | 35 | Attractor() { 36 | location = PVector(MATRIX_CENTRE_X, MATRIX_CENTRE_Y); 37 | mass = 10; 38 | G = .5; 39 | } 40 | 41 | PVector attract(Boid m) { 42 | PVector force = location - m.location; // Calculate direction of force 43 | float d = force.mag(); // Distance between objects 44 | d = constrain(d, 5.0, 32.0); // Limiting the distance to eliminate "extreme" results for very close or very far objects 45 | force.normalize(); // Normalize vector (distance doesn't matter here, we just want this vector for direction) 46 | float strength = (G * mass * m.mass) / (d * d); // Calculate gravitional force magnitude 47 | force *= strength; // Get force vector --> magnitude * direction 48 | return force; 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes56/Drawable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef AuroraDrawable_H 24 | #define AuroraDrawable_H 25 | 26 | class AuroraDrawable{ 27 | public: 28 | char* name; 29 | 30 | virtual bool isRunnable() { 31 | return false; 32 | } 33 | 34 | virtual bool isPlaylist() { 35 | return false; 36 | } 37 | 38 | // a single frame should be drawn as fast as possible, without any delay or blocking 39 | // return how many millisecond delay is requested before the next call to drawFrame() 40 | virtual unsigned int drawFrame() { 41 | // not visible in this file (defined in neomatrix_config.h) 42 | //backgroundLayer.fillScreen({ 0, 0, 0 }); 43 | return 0; 44 | }; 45 | 46 | virtual void start() {}; 47 | virtual void stop() {}; 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes56/PatternIncrementalDrift2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Aurora: https://github.com/pixelmatix/aurora 4 | * Copyright (c) 2014 Jason Coon 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | * this software and associated documentation files (the "Software"), to deal in 8 | * the Software without restriction, including without limitation the rights to 9 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 10 | * the Software, and to permit persons to whom the Software is furnished to do so, 11 | * subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 18 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 19 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 20 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | */ 23 | #include "matrix.h" 24 | 25 | #ifndef PatternIncrementalDrift2_H 26 | #define PatternIncrementalDrift2_H 27 | 28 | class PatternIncrementalDrift2 : public AuroraDrawable { 29 | public: 30 | PatternIncrementalDrift2() { 31 | name = (char *)"Incremental Drift Rose"; 32 | } 33 | 34 | unsigned int drawFrame() { 35 | uint8_t dim = beatsin8(2, 170, 250); 36 | effects.DimAll(dim); 37 | 38 | for (uint16_t i = 0; i < MATRIX_WIDTH; i++) 39 | { 40 | CRGB color; 41 | 42 | uint8_t x = 0; 43 | uint8_t y = 0; 44 | 45 | if (i < MATRIX_CENTER_X) { 46 | x = beatcos8((i + 1) * 2, i, MATRIX_WIDTH - i); 47 | y = beatsin8((i + 1) * 2, i, MATRIX_HEIGHT - i); 48 | color = effects.ColorFromCurrentPalette(i * 14); 49 | } 50 | else 51 | { 52 | x = beatsin8((MATRIX_WIDTH - i) * 2, MATRIX_WIDTH - i, i + 1); 53 | y = beatcos8((MATRIX_HEIGHT - i) * 2, MATRIX_HEIGHT - i, i + 1); 54 | color = effects.ColorFromCurrentPalette((31 - i) * 14); 55 | } 56 | //backgroundLayer.drawPixel(x, y, color); 57 | matrix->drawPixel(x, y, color); 58 | } 59 | 60 | return 0; 61 | } 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes56/PatternRadar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef PatternRadar_H 24 | 25 | #include "matrix.h" 26 | 27 | class PatternRadar : public AuroraDrawable { 28 | private: 29 | byte theta = 0; 30 | byte hueoffset = 0; 31 | 32 | public: 33 | PatternRadar() { 34 | name = (char *)"Radar"; 35 | } 36 | 37 | unsigned int drawFrame() { 38 | if (MATRIX_WIDTH < 25) { 39 | effects.DimAll(252); 40 | } else { 41 | effects.DimAll(245); 42 | } 43 | 44 | for (int offset = 0; offset < MATRIX_CENTER_X; offset++) { 45 | //byte hue = 255 - (offset * 16 + hueoffset); 46 | byte hue = 255 - (offset * (256 / MATRIX_CENTER_X) + hueoffset); 47 | CRGB color = effects.ColorFromCurrentPalette(hue); 48 | uint8_t x = mapcos8(theta, offset, (MATRIX_WIDTH - 1) - offset); 49 | uint8_t y = mapsin8(theta, offset, (MATRIX_HEIGHT - 1) - offset); 50 | uint16_t xy = XY(x, y); 51 | effects.leds[xy] = color; 52 | 53 | EVERY_N_MILLIS(25) { 54 | theta += 2; 55 | hueoffset += 1; 56 | } 57 | } 58 | 59 | return 0; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes56/Table_Mark_Estes_config.h: -------------------------------------------------------------------------------- 1 | // --------------------------- Config Start -------------------------------- 2 | // Randomly slowdown animation. Nice in principle, but not when debugging performance 3 | #define RANDOMSLOWME 4 | 5 | // Control whether pattern order is random from the start or after one pass 6 | #define MIXIT_AFTER_FIRST_PASS 7 | 8 | // write the pattern number in upper left (makes more sense on higher res displays) 9 | //#define SHOW_PATTERN_NUM 10 | // 11 | // Display FPS computed by Framebuffer::GFX 12 | //#define DISPLAY_FPS 13 | 14 | // Some pattern transitions look weird without a clear in between 15 | //#define CLEAR_BETWEEN_PATTERNS 16 | 17 | // This allows a selection of only my favourite patterns. 18 | // Comment this out to get all the patterns -- merlin 19 | //#define BESTPATTERNS 20 | #ifdef BESTPATTERNS 21 | 22 | uint8_t bestpatterns[] = { 23 | 3, 8, 14, 17, 26, 55, 58, 59, 61, 69, 72, 82, 87, 102, 108, 109, 111, 115, 124, 134, 139, 155, 24 | 4, 10, 11, 16, 18, 25, 67, 70, 73, 77, 80, 86, 104, 105, 110, 25 | 19, 20, 26, 81, 89, 94, 96, 98, 101, 103, 107, 112, 113, 114, 118, 119, 120, 121, 126, 128, 131, 134, 139, 141, 143, 144, 145, 147, 149, 151, 158, 189,190,191 // good but not picked for 128x192 26 | }; 27 | #define numbest sizeof(bestpatterns) 28 | #define lastpatindex numbest 29 | #else 30 | #define lastpatindex mpatterns 31 | #endif 32 | 33 | // By default audio support is on for what's expected to be teensy. 34 | #define TME_AUDIO 35 | // But turn it off on ARDUINOONPC / Raspberry Pi and ESP32 36 | ifdef ARDUINOONPC 37 | #undef ARDUINOONPC 38 | #endif 39 | 40 | 41 | 42 | 43 | #ifdef ESP32 44 | #undef TME_AUDIO 45 | #endif 46 | 47 | // Don't load non existent EasyTransfer for platforms without audio 48 | #ifdef TME_AUDIO 49 | #include // used for exchange with 2nd arduino for audio processing 50 | #endif 51 | 52 | #define TIMING 90 53 | //seconds per pattern 54 | #define LATCH 23 55 | 56 | int16_t pattern = 25;//this picks the pattern to start with... 57 | // --------------------------- Config End ---------------------------------- 58 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes56/matrix.h: -------------------------------------------------------------------------------- 1 | // By Marc MERLIN 2 | // License: Apache v2.0 3 | // 4 | 5 | #ifndef matrix_h 6 | #define matrix_h 7 | 8 | #include "neomatrix_config.h" 9 | #include "Drawable.h" 10 | 11 | const int MATRIX_CENTER_X = MATRIX_WIDTH / 2; 12 | const int MATRIX_CENTER_Y = MATRIX_HEIGHT / 2; 13 | 14 | const byte MATRIX_CENTRE_X = MATRIX_CENTER_X - 1; 15 | const byte MATRIX_CENTRE_Y = MATRIX_CENTER_Y - 1; 16 | 17 | #include "Effects.h" 18 | Effects effects; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes56/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | neomatrix_config.h_me -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes56/neomatrix_config_full.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes60/Attractor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 4 | * 5 | * Portions of this code are adapted from "Attractor" in "The Nature of Code" by Daniel Shiffman: http://natureofcode.com/ 6 | * Copyright (c) 2014 Daniel Shiffman 7 | * http://www.shiffman.net 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 10 | * this software and associated documentation files (the "Software"), to deal in 11 | * the Software without restriction, including without limitation the rights to 12 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 13 | * the Software, and to permit persons to whom the Software is furnished to do so, 14 | * subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in all 17 | * copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 21 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 22 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 23 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Vector.h" 28 | 29 | class Attractor { 30 | public: 31 | float mass; // Mass, tied to size 32 | float G; // Gravitational Constant 33 | PVector location; // Location 34 | 35 | Attractor() { 36 | location = PVector(MATRIX_CENTRE_X, MATRIX_CENTRE_Y); 37 | mass = 10; 38 | G = .5; 39 | } 40 | 41 | PVector attract(Boid m) { 42 | PVector force = location - m.location; // Calculate direction of force 43 | float d = force.mag(); // Distance between objects 44 | d = constrain(d, 5.0, 32.0); // Limiting the distance to eliminate "extreme" results for very close or very far objects 45 | force.normalize(); // Normalize vector (distance doesn't matter here, we just want this vector for direction) 46 | float strength = (G * mass * m.mass) / (d * d); // Calculate gravitional force magnitude 47 | force *= strength; // Get force vector --> magnitude * direction 48 | return force; 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes60/Drawable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef AuroraDrawable_H 24 | #define AuroraDrawable_H 25 | 26 | class AuroraDrawable{ 27 | public: 28 | char* name; 29 | 30 | virtual bool isRunnable() { 31 | return false; 32 | } 33 | 34 | virtual bool isPlaylist() { 35 | return false; 36 | } 37 | 38 | // a single frame should be drawn as fast as possible, without any delay or blocking 39 | // return how many millisecond delay is requested before the next call to drawFrame() 40 | virtual unsigned int drawFrame() { 41 | // not visible in this file (defined in neomatrix_config.h) 42 | //backgroundLayer.fillScreen({ 0, 0, 0 }); 43 | return 0; 44 | }; 45 | 46 | virtual void start() {}; 47 | virtual void stop() {}; 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes60/PatternIncrementalDrift2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Aurora: https://github.com/pixelmatix/aurora 4 | * Copyright (c) 2014 Jason Coon 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | * this software and associated documentation files (the "Software"), to deal in 8 | * the Software without restriction, including without limitation the rights to 9 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 10 | * the Software, and to permit persons to whom the Software is furnished to do so, 11 | * subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 18 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 19 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 20 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | */ 23 | #include "matrix.h" 24 | 25 | #ifndef PatternIncrementalDrift2_H 26 | #define PatternIncrementalDrift2_H 27 | 28 | class PatternIncrementalDrift2 : public AuroraDrawable { 29 | public: 30 | PatternIncrementalDrift2() { 31 | name = (char *)"Incremental Drift Rose"; 32 | } 33 | 34 | unsigned int drawFrame() { 35 | uint8_t dim = beatsin8(2, 170, 250); 36 | effects.DimAll(dim); 37 | 38 | for (uint16_t i = 0; i < MATRIX_WIDTH; i++) 39 | { 40 | CRGB color; 41 | 42 | uint8_t x = 0; 43 | uint8_t y = 0; 44 | 45 | if (i < MATRIX_CENTER_X) { 46 | x = beatcos8((i + 1) * 2, i, MATRIX_WIDTH - i); 47 | y = beatsin8((i + 1) * 2, i, MATRIX_HEIGHT - i); 48 | color = effects.ColorFromCurrentPalette(i * 14); 49 | } 50 | else 51 | { 52 | x = beatsin8((MATRIX_WIDTH - i) * 2, MATRIX_WIDTH - i, i + 1); 53 | y = beatcos8((MATRIX_HEIGHT - i) * 2, MATRIX_HEIGHT - i, i + 1); 54 | color = effects.ColorFromCurrentPalette((31 - i) * 14); 55 | } 56 | //backgroundLayer.drawPixel(x, y, color); 57 | matrix->drawPixel(x, y, color); 58 | } 59 | 60 | return 0; 61 | } 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes60/PatternRadar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef PatternRadar_H 24 | 25 | #include "matrix.h" 26 | 27 | class PatternRadar : public AuroraDrawable { 28 | private: 29 | byte theta = 0; 30 | byte hueoffset = 0; 31 | 32 | public: 33 | PatternRadar() { 34 | name = (char *)"Radar"; 35 | } 36 | 37 | unsigned int drawFrame() { 38 | if (MATRIX_WIDTH < 25) { 39 | effects.DimAll(252); 40 | } else { 41 | effects.DimAll(245); 42 | } 43 | 44 | for (int offset = 0; offset < MATRIX_CENTER_X; offset++) { 45 | //byte hue = 255 - (offset * 16 + hueoffset); 46 | byte hue = 255 - (offset * (256 / MATRIX_CENTER_X) + hueoffset); 47 | CRGB color = effects.ColorFromCurrentPalette(hue); 48 | uint8_t x = mapcos8(theta, offset, (MATRIX_WIDTH - 1) - offset); 49 | uint8_t y = mapsin8(theta, offset, (MATRIX_HEIGHT - 1) - offset); 50 | uint16_t xy = XY(x, y); 51 | effects.leds[xy] = color; 52 | 53 | EVERY_N_MILLIS(25) { 54 | theta += 2; 55 | hueoffset += 1; 56 | } 57 | } 58 | 59 | return 0; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes60/Table_Mark_Estes_config.h: -------------------------------------------------------------------------------- 1 | // --------------------------- Config Start -------------------------------- 2 | // Randomly slowdown animation. Nice in principle, but not when debugging performance 3 | #define RANDOMSLOWME 4 | 5 | // Control whether pattern order is random from the start or after one pass 6 | #define MIXIT_AFTER_FIRST_PASS 7 | 8 | // write the pattern number in upper left (makes more sense on higher res displays) 9 | #define SHOW_PATTERN_NUM 10 | // 11 | // Display FPS computed by Framebuffer::GFX 12 | //#define DISPLAY_FPS 13 | 14 | // Some pattern transitions look weird without a clear in between 15 | //#define CLEAR_BETWEEN_PATTERNS 16 | 17 | // This allows a selection of only my favourite patterns. 18 | // Comment this out to get all the patterns -- merlin 19 | //#define BESTPATTERNS 20 | #ifdef BESTPATTERNS 21 | 22 | uint8_t bestpatterns[] = { 3, 4, 5, 9, 10, 11, 12, 16, 17, 19, 21, 23,25,30, 53,54, 55, 58, 59, 61,67, 69, 70, 72,73,77, 80 81, 82,85, 86, 87,88, 90,94,96,98,101, 102,103, 108, 109, 111, 115, 124, 134, 139,143, 155}; 23 | #define numbest sizeof(bestpatterns) 24 | #define lastpatindex numbest 25 | #else 26 | #define lastpatindex mpatterns 27 | #endif 28 | 29 | // By default audio support is on for what's expected to be teensy. 30 | #define TME_AUDIO 31 | // But turn it off on ARDUINOONPC / Raspberry Pi and ESP32 32 | #ifdef ARDUINOONPC 33 | #undef ARDUINOONPC 34 | #endif 35 | 36 | 37 | #ifdef ESP32 38 | #undef TME_AUDIO 39 | #endif 40 | 41 | // Don't load non existent EasyTransfer for platforms without audio 42 | #ifdef TME_AUDIO 43 | #include // used for exchange with 2nd arduino for audio processing 44 | #endif 45 | 46 | #define TIMING 90 47 | //seconds per pattern 48 | #define LATCH 23 49 | 50 | int16_t pattern = 141;//this picks the pattern to start with... 51 | // --------------------------- Config End ---------------------------------- 52 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes60/matrix.h: -------------------------------------------------------------------------------- 1 | // By Marc MERLIN 2 | // License: Apache v2.0 3 | // 4 | 5 | #ifndef matrix_h 6 | #define matrix_h 7 | 8 | #include "neomatrix_config.h" 9 | #include "Drawable.h" 10 | 11 | const int MATRIX_CENTER_X = MATRIX_WIDTH / 2; 12 | const int MATRIX_CENTER_Y = MATRIX_HEIGHT / 2; 13 | 14 | const byte MATRIX_CENTRE_X = MATRIX_CENTER_X - 1; 15 | const byte MATRIX_CENTRE_Y = MATRIX_CENTER_Y - 1; 16 | 17 | #include "Effects.h" 18 | Effects effects; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes60/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | neomatrix_config_full.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes60/neomatrix_config_full.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes63/Attractor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 4 | * 5 | * Portions of this code are adapted from "Attractor" in "The Nature of Code" by Daniel Shiffman: http://natureofcode.com/ 6 | * Copyright (c) 2014 Daniel Shiffman 7 | * http://www.shiffman.net 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 10 | * this software and associated documentation files (the "Software"), to deal in 11 | * the Software without restriction, including without limitation the rights to 12 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 13 | * the Software, and to permit persons to whom the Software is furnished to do so, 14 | * subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in all 17 | * copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 21 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 22 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 23 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Vector.h" 28 | 29 | class Attractor { 30 | public: 31 | float mass; // Mass, tied to size 32 | float G; // Gravitational Constant 33 | PVector location; // Location 34 | 35 | Attractor() { 36 | location = PVector(MATRIX_CENTRE_X, MATRIX_CENTRE_Y); 37 | mass = 10; 38 | G = .5; 39 | } 40 | 41 | PVector attract(Boid m) { 42 | PVector force = location - m.location; // Calculate direction of force 43 | float d = force.mag(); // Distance between objects 44 | d = constrain(d, 5.0, 32.0); // Limiting the distance to eliminate "extreme" results for very close or very far objects 45 | force.normalize(); // Normalize vector (distance doesn't matter here, we just want this vector for direction) 46 | float strength = (G * mass * m.mass) / (d * d); // Calculate gravitional force magnitude 47 | force *= strength; // Get force vector --> magnitude * direction 48 | return force; 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes63/Drawable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef AuroraDrawable_H 24 | #define AuroraDrawable_H 25 | 26 | class AuroraDrawable{ 27 | public: 28 | char* name; 29 | 30 | virtual bool isRunnable() { 31 | return false; 32 | } 33 | 34 | virtual bool isPlaylist() { 35 | return false; 36 | } 37 | 38 | // a single frame should be drawn as fast as possible, without any delay or blocking 39 | // return how many millisecond delay is requested before the next call to drawFrame() 40 | virtual unsigned int drawFrame() { 41 | // not visible in this file (defined in neomatrix_config.h) 42 | //backgroundLayer.fillScreen({ 0, 0, 0 }); 43 | return 0; 44 | }; 45 | 46 | virtual void start() {}; 47 | virtual void stop() {}; 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes63/PatternIncrementalDrift2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Aurora: https://github.com/pixelmatix/aurora 4 | * Copyright (c) 2014 Jason Coon 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | * this software and associated documentation files (the "Software"), to deal in 8 | * the Software without restriction, including without limitation the rights to 9 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 10 | * the Software, and to permit persons to whom the Software is furnished to do so, 11 | * subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 18 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 19 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 20 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | */ 23 | #include "matrix.h" 24 | 25 | #ifndef PatternIncrementalDrift2_H 26 | #define PatternIncrementalDrift2_H 27 | 28 | class PatternIncrementalDrift2 : public AuroraDrawable { 29 | public: 30 | PatternIncrementalDrift2() { 31 | name = (char *)"Incremental Drift Rose"; 32 | } 33 | 34 | unsigned int drawFrame() { 35 | uint8_t dim = beatsin8(2, 170, 250); 36 | effects.DimAll(dim); 37 | 38 | for (uint16_t i = 0; i < MATRIX_WIDTH; i++) 39 | { 40 | CRGB color; 41 | 42 | uint8_t x = 0; 43 | uint8_t y = 0; 44 | 45 | if (i < MATRIX_CENTER_X) { 46 | x = beatcos8((i + 1) * 2, i, MATRIX_WIDTH - i); 47 | y = beatsin8((i + 1) * 2, i, MATRIX_HEIGHT - i); 48 | color = effects.ColorFromCurrentPalette(i * 14); 49 | } 50 | else 51 | { 52 | x = beatsin8((MATRIX_WIDTH - i) * 2, MATRIX_WIDTH - i, i + 1); 53 | y = beatcos8((MATRIX_HEIGHT - i) * 2, MATRIX_HEIGHT - i, i + 1); 54 | color = effects.ColorFromCurrentPalette((31 - i) * 14); 55 | } 56 | //backgroundLayer.drawPixel(x, y, color); 57 | matrix->drawPixel(x, y, color); 58 | } 59 | 60 | return 0; 61 | } 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes63/PatternRadar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef PatternRadar_H 24 | 25 | #include "matrix.h" 26 | 27 | class PatternRadar : public AuroraDrawable { 28 | private: 29 | byte theta = 0; 30 | byte hueoffset = 0; 31 | 32 | public: 33 | PatternRadar() { 34 | name = (char *)"Radar"; 35 | } 36 | 37 | unsigned int drawFrame() { 38 | if (MATRIX_WIDTH < 25) { 39 | effects.DimAll(252); 40 | } else { 41 | effects.DimAll(245); 42 | } 43 | 44 | for (int offset = 0; offset < MATRIX_CENTER_X; offset++) { 45 | //byte hue = 255 - (offset * 16 + hueoffset); 46 | byte hue = 255 - (offset * (256 / MATRIX_CENTER_X) + hueoffset); 47 | CRGB color = effects.ColorFromCurrentPalette(hue); 48 | uint8_t x = mapcos8(theta, offset, (MATRIX_WIDTH - 1) - offset); 49 | uint8_t y = mapsin8(theta, offset, (MATRIX_HEIGHT - 1) - offset); 50 | uint16_t xy = XY(x, y); 51 | effects.leds[xy] = color; 52 | 53 | EVERY_N_MILLIS(25) { 54 | theta += 2; 55 | hueoffset += 1; 56 | } 57 | } 58 | 59 | return 0; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes63/matrix.h: -------------------------------------------------------------------------------- 1 | // By Marc MERLIN 2 | // License: Apache v2.0 3 | // 4 | 5 | #ifndef matrix_h 6 | #define matrix_h 7 | 8 | #include "neomatrix_config.h" 9 | #include "Drawable.h" 10 | 11 | const int MATRIX_CENTER_X = MATRIX_WIDTH / 2; 12 | const int MATRIX_CENTER_Y = MATRIX_HEIGHT / 2; 13 | 14 | const byte MATRIX_CENTRE_X = MATRIX_CENTER_X - 1; 15 | const byte MATRIX_CENTRE_Y = MATRIX_CENTER_Y - 1; 16 | 17 | #include "Effects.h" 18 | Effects effects; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes63/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | neomatrix_config_full.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes63/neomatrix_config_full.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes69/Attractor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 4 | * 5 | * Portions of this code are adapted from "Attractor" in "The Nature of Code" by Daniel Shiffman: http://natureofcode.com/ 6 | * Copyright (c) 2014 Daniel Shiffman 7 | * http://www.shiffman.net 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 10 | * this software and associated documentation files (the "Software"), to deal in 11 | * the Software without restriction, including without limitation the rights to 12 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 13 | * the Software, and to permit persons to whom the Software is furnished to do so, 14 | * subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in all 17 | * copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 21 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 22 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 23 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Vector.h" 28 | 29 | class Attractor { 30 | public: 31 | float mass; // Mass, tied to size 32 | float G; // Gravitational Constant 33 | PVector location; // Location 34 | 35 | Attractor() { 36 | location = PVector(MATRIX_CENTRE_X, MATRIX_CENTRE_Y); 37 | mass = 10; 38 | G = .5; 39 | } 40 | 41 | PVector attract(Boid m) { 42 | PVector force = location - m.location; // Calculate direction of force 43 | float d = force.mag(); // Distance between objects 44 | d = constrain(d, 5.0, 32.0); // Limiting the distance to eliminate "extreme" results for very close or very far objects 45 | force.normalize(); // Normalize vector (distance doesn't matter here, we just want this vector for direction) 46 | float strength = (G * mass * m.mass) / (d * d); // Calculate gravitional force magnitude 47 | force *= strength; // Get force vector --> magnitude * direction 48 | return force; 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes69/Drawable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef AuroraDrawable_H 24 | #define AuroraDrawable_H 25 | 26 | class AuroraDrawable{ 27 | public: 28 | char* name; 29 | 30 | virtual bool isRunnable() { 31 | return false; 32 | } 33 | 34 | virtual bool isPlaylist() { 35 | return false; 36 | } 37 | 38 | // a single frame should be drawn as fast as possible, without any delay or blocking 39 | // return how many millisecond delay is requested before the next call to drawFrame() 40 | virtual unsigned int drawFrame() { 41 | // not visible in this file (defined in neomatrix_config.h) 42 | //backgroundLayer.fillScreen({ 0, 0, 0 }); 43 | return 0; 44 | }; 45 | 46 | virtual void start() {}; 47 | virtual void stop() {}; 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes69/PatternIncrementalDrift2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Aurora: https://github.com/pixelmatix/aurora 4 | * Copyright (c) 2014 Jason Coon 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | * this software and associated documentation files (the "Software"), to deal in 8 | * the Software without restriction, including without limitation the rights to 9 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 10 | * the Software, and to permit persons to whom the Software is furnished to do so, 11 | * subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 18 | * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 19 | * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 20 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | */ 23 | #include "matrix.h" 24 | 25 | #ifndef PatternIncrementalDrift2_H 26 | #define PatternIncrementalDrift2_H 27 | 28 | class PatternIncrementalDrift2 : public AuroraDrawable { 29 | public: 30 | PatternIncrementalDrift2() { 31 | name = (char *)"Incremental Drift Rose"; 32 | } 33 | 34 | unsigned int drawFrame() { 35 | uint8_t dim = beatsin8(2, 170, 250); 36 | effects.DimAll(dim); 37 | 38 | for (uint16_t i = 0; i < MATRIX_WIDTH; i++) 39 | { 40 | CRGB color; 41 | 42 | uint8_t x = 0; 43 | uint8_t y = 0; 44 | 45 | if (i < MATRIX_CENTER_X) { 46 | x = beatcos8((i + 1) * 2, i, MATRIX_WIDTH - i); 47 | y = beatsin8((i + 1) * 2, i, MATRIX_HEIGHT - i); 48 | color = effects.ColorFromCurrentPalette(i * 14); 49 | } 50 | else 51 | { 52 | x = beatsin8((MATRIX_WIDTH - i) * 2, MATRIX_WIDTH - i, i + 1); 53 | y = beatcos8((MATRIX_HEIGHT - i) * 2, MATRIX_HEIGHT - i, i + 1); 54 | color = effects.ColorFromCurrentPalette((31 - i) * 14); 55 | } 56 | //backgroundLayer.drawPixel(x, y, color); 57 | matrix->drawPixel(x, y, color); 58 | } 59 | 60 | return 0; 61 | } 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes69/PatternRadar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Aurora: https://github.com/pixelmatix/aurora 3 | * Copyright (c) 2014 Jason Coon 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 | */ 22 | 23 | #ifndef PatternRadar_H 24 | 25 | #include "matrix.h" 26 | 27 | class PatternRadar : public AuroraDrawable { 28 | private: 29 | byte theta = 0; 30 | byte hueoffset = 0; 31 | 32 | public: 33 | PatternRadar() { 34 | name = (char *)"Radar"; 35 | } 36 | 37 | unsigned int drawFrame() { 38 | if (MATRIX_WIDTH < 25) { 39 | effects.DimAll(252); 40 | } else { 41 | effects.DimAll(245); 42 | } 43 | 44 | for (int offset = 0; offset < MATRIX_CENTER_X; offset++) { 45 | //byte hue = 255 - (offset * 16 + hueoffset); 46 | byte hue = 255 - (offset * (256 / MATRIX_CENTER_X) + hueoffset); 47 | CRGB color = effects.ColorFromCurrentPalette(hue); 48 | uint8_t x = mapcos8(theta, offset, (MATRIX_WIDTH - 1) - offset); 49 | uint8_t y = mapsin8(theta, offset, (MATRIX_HEIGHT - 1) - offset); 50 | uint16_t xy = XY(x, y); 51 | effects.leds[xy] = color; 52 | 53 | EVERY_N_MILLIS(25) { 54 | theta += 2; 55 | hueoffset += 1; 56 | } 57 | } 58 | 59 | return 0; 60 | } 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes69/matrix.h: -------------------------------------------------------------------------------- 1 | // By Marc MERLIN 2 | // License: Apache v2.0 3 | // 4 | 5 | #ifndef matrix_h 6 | #define matrix_h 7 | 8 | #include "neomatrix_config.h" 9 | #include "Drawable.h" 10 | 11 | const int MATRIX_CENTER_X = MATRIX_WIDTH / 2; 12 | const int MATRIX_CENTER_Y = MATRIX_HEIGHT / 2; 13 | 14 | const byte MATRIX_CENTRE_X = MATRIX_CENTER_X - 1; 15 | const byte MATRIX_CENTRE_Y = MATRIX_CENTER_Y - 1; 16 | 17 | #include "Effects.h" 18 | Effects effects; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes69/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | neomatrix_config_full.h -------------------------------------------------------------------------------- /LEDMatrix/Table_Mark_Estes69/neomatrix_config_full.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h -------------------------------------------------------------------------------- /LEDMatrix/neomatrix_config.h: -------------------------------------------------------------------------------- 1 | ../neomatrix_config.h --------------------------------------------------------------------------------