├── .DS_Store ├── Enclosure ├── Faduino - 3mm.dxf ├── Faduino - 3mm.pdf └── Faduino - 3mm.svg ├── PCB ├── .DS_Store ├── Faduino │ ├── .DS_Store │ ├── BOM │ │ ├── .DS_Store │ │ └── Faduino-1_BOM.xlsx │ ├── Gerber │ │ ├── .DS_Store │ │ ├── FAduino_grber.zip │ │ ├── Faduino-1-B_Courtyard.gbr │ │ ├── Faduino-1-B_Cu.gbr │ │ ├── Faduino-1-B_Fab.gbr │ │ ├── Faduino-1-B_Mask.gbr │ │ ├── Faduino-1-B_Paste.gbr │ │ ├── Faduino-1-B_Silkscreen.gbr │ │ ├── Faduino-1-Edge_Cuts.gbr │ │ ├── Faduino-1-F_Courtyard.gbr │ │ ├── Faduino-1-F_Cu.gbr │ │ ├── Faduino-1-F_Fab.gbr │ │ ├── Faduino-1-F_Mask.gbr │ │ ├── Faduino-1-F_Paste.gbr │ │ ├── Faduino-1-F_Silkscreen.gbr │ │ ├── Faduino-1-NPTH.drl │ │ ├── Faduino-1-PTH.drl │ │ └── Faduino-1-job.gbrjob │ ├── Kicad │ │ ├── .DS_Store │ │ ├── Buttons.kicad_sch │ │ ├── Buttons.sch │ │ ├── Buttons.sch-bak │ │ ├── Encoder.kicad_sch │ │ ├── Encoder.sch │ │ ├── Encoder.sch-bak │ │ ├── Faduino-1-backups │ │ │ ├── Faduino-1-2023-07-11_102519.zip │ │ │ ├── Faduino-1-2023-07-11_144634.zip │ │ │ ├── Faduino-1-2023-07-11_150720.zip │ │ │ ├── Faduino-1-2023-07-11_174313.zip │ │ │ ├── Faduino-1-2023-07-12_151257.zip │ │ │ ├── Faduino-1-2023-07-24_182208.zip │ │ │ ├── Faduino-1-2023-07-24_183244.zip │ │ │ ├── Faduino-1-2023-07-24_184014.zip │ │ │ ├── Faduino-1-2023-07-24_185556.zip │ │ │ ├── Faduino-1-2023-07-24_212948.zip │ │ │ ├── Faduino-1-2023-07-26_155658.zip │ │ │ ├── Faduino-1-2023-09-19_154955.zip │ │ │ ├── Faduino-1-2023-09-19_160559.zip │ │ │ ├── Faduino-1-2023-09-19_202102.zip │ │ │ ├── Faduino-1-2023-09-21_191804.zip │ │ │ ├── Faduino-1-2023-09-26_132834.zip │ │ │ ├── Faduino-1-2023-09-27_170802.zip │ │ │ ├── Faduino-1-2023-09-28_203849.zip │ │ │ ├── Faduino-1-2023-09-30_151215.zip │ │ │ ├── Faduino-1-2023-10-07_181902.zip │ │ │ ├── Faduino-1-2023-10-18_193208.zip │ │ │ ├── Faduino-1-2023-10-23_093950.zip │ │ │ ├── Faduino-1-2023-10-23_095213.zip │ │ │ ├── Faduino-1-2023-10-23_183947.zip │ │ │ ├── Faduino-1-2023-10-23_184545.zip │ │ │ └── Faduino-1-2023-10-23_191024.zip │ │ ├── Faduino-1-cache.lib │ │ ├── Faduino-1-rescue.dcm │ │ ├── Faduino-1-rescue.lib │ │ ├── Faduino-1.csv │ │ ├── Faduino-1.kicad_pcb │ │ ├── Faduino-1.kicad_pcb-bak │ │ ├── Faduino-1.kicad_prl │ │ ├── Faduino-1.kicad_pro │ │ ├── Faduino-1.kicad_sch │ │ ├── Faduino-1.net │ │ ├── Faduino-1.pro │ │ ├── Faduino-1.sch │ │ ├── Faduino-1.sch-bak │ │ ├── Faduino-1.step │ │ ├── Faduino-1.xml │ │ ├── Leds.kicad_sch │ │ ├── Leds.sch │ │ ├── Leds.sch-bak │ │ ├── Morized_Fader-backups │ │ │ ├── Morized_Fader-2023-07-08_183325.zip │ │ │ └── Morized_Fader-2023-09-19_152608.zip │ │ ├── Morized_Fader.kicad_prl │ │ ├── Morized_Fader.kicad_pro │ │ ├── Morized_Fader.pro │ │ ├── Morized_Fader.sch │ │ ├── Morized_Fader.sch-bak │ │ ├── Motorized_Fader.kicad_sch │ │ ├── Motorized_Fader.sch │ │ ├── Motorized_Fader.sch-bak │ │ ├── fp-info-cache │ │ ├── fp-lib-table │ │ ├── sym-lib-table │ │ ├── voltage_regulator.kicad_sch │ │ ├── voltage_regulator.sch │ │ └── voltage_regulator.sch-bak │ └── Pos │ │ ├── .DS_Store │ │ └── Faduino-1-top-pos.xlsx └── MotorizedFaderPCB │ ├── .DS_Store │ ├── Gerber │ ├── .DS_Store │ ├── MotorizedFaderPCB_1-B_Cu.gbr │ ├── MotorizedFaderPCB_1-B_Mask.gbr │ ├── MotorizedFaderPCB_1-B_Paste.gbr │ ├── MotorizedFaderPCB_1-B_Silkscreen.gbr │ ├── MotorizedFaderPCB_1-Edge_Cuts.gbr │ ├── MotorizedFaderPCB_1-F_Cu.gbr │ ├── MotorizedFaderPCB_1-F_Mask.gbr │ ├── MotorizedFaderPCB_1-F_Paste.gbr │ ├── MotorizedFaderPCB_1-F_Silkscreen.gbr │ ├── MotorizedFaderPCB_1-NPTH.drl │ ├── MotorizedFaderPCB_1-PTH.drl │ ├── MotorizedFaderPCB_1-job.gbrjob │ └── MtrFdrPCB_grbr.zip │ └── Kicad │ ├── .DS_Store │ ├── MotorizedFaderPCB_1-backups │ ├── MotorizedFaderPCB_1-2023-07-07_202726.zip │ ├── MotorizedFaderPCB_1-2023-07-07_203738.zip │ ├── MotorizedFaderPCB_1-2023-07-07_210414.zip │ ├── MotorizedFaderPCB_1-2023-07-07_211424.zip │ ├── MotorizedFaderPCB_1-2023-07-07_212424.zip │ ├── MotorizedFaderPCB_1-2023-07-08_173236.zip │ ├── MotorizedFaderPCB_1-2023-07-08_183945.zip │ ├── MotorizedFaderPCB_1-2023-07-11_145318.zip │ ├── MotorizedFaderPCB_1-2023-07-26_155950.zip │ ├── MotorizedFaderPCB_1-2023-07-26_160735.zip │ ├── MotorizedFaderPCB_1-2023-07-26_161802.zip │ ├── MotorizedFaderPCB_1-2023-07-26_165509.zip │ ├── MotorizedFaderPCB_1-2023-10-23_095303.zip │ ├── MotorizedFaderPCB_1-2023-10-23_175540.zip │ ├── MotorizedFaderPCB_1-2023-10-23_190003.zip │ └── MotorizedFaderPCB_1-2023-10-23_190532.zip │ ├── MotorizedFaderPCB_1.kicad_pcb │ ├── MotorizedFaderPCB_1.kicad_prl │ ├── MotorizedFaderPCB_1.kicad_pro │ ├── MotorizedFaderPCB_1.kicad_sch │ └── fp-info-cache ├── README.md └── _Faduino_2023_10_18 ├── .DS_Store ├── A_ENCODERS.ino ├── A_NEOPIXEL.ino ├── A_POTENTIOMETERS.ino ├── B_BUTTONS.ino ├── FUNCTIONS.ino ├── MACKIE.h ├── MOTORIZED_FADERS.ino ├── Z_ATMEGA32U4.ino ├── Z_LOOP.ino ├── Z_SETUP.ino ├── _Faduino_2023_10_18.ino └── libraries ├── .DS_Store ├── Arduino-USB-Rename ├── LICENSE ├── README.md ├── demo │ └── demo.ino ├── usb_rename.cpp └── usb_rename.h ├── Encoder ├── .DS_Store ├── Encoder.cpp ├── Encoder.h ├── README.md ├── docs │ └── issue_template.md ├── examples │ ├── .DS_Store │ ├── Basic │ │ └── Basic.pde │ ├── NoInterrupts │ │ └── NoInterrupts.pde │ ├── SpeedTest │ │ └── SpeedTest.pde │ └── TwoKnobs │ │ └── TwoKnobs.pde ├── keywords.txt ├── library.json ├── library.properties └── utility │ ├── direct_pin_read.h │ ├── interrupt_config.h │ └── interrupt_pins.h ├── FastLED ├── .DS_Store ├── CMakeLists.txt ├── LICENSE ├── PORTING.md ├── README.md ├── ci │ ├── ci-compile │ └── ci-flags.py ├── code_of_conduct.md ├── component.mk ├── docs │ ├── Doxyfile │ ├── DoxygenLayout.xml │ └── include │ │ ├── fastled-docs.css │ │ ├── fastled_logo.png │ │ ├── footer.html │ │ └── header.html ├── examples │ ├── AnalogOutput │ │ └── AnalogOutput.ino │ ├── Blink │ │ └── Blink.ino │ ├── ColorPalette │ │ └── ColorPalette.ino │ ├── ColorTemperature │ │ └── ColorTemperature.ino │ ├── Cylon │ │ └── Cylon.ino │ ├── DemoReel100 │ │ └── DemoReel100.ino │ ├── Fire2012 │ │ └── Fire2012.ino │ ├── Fire2012WithPalette │ │ └── Fire2012WithPalette.ino │ ├── FirstLight │ │ └── FirstLight.ino │ ├── Multiple │ │ ├── ArrayOfLedArrays │ │ │ └── ArrayOfLedArrays.ino │ │ ├── MirroringSample │ │ │ └── MirroringSample.ino │ │ ├── MultiArrays │ │ │ └── MultiArrays.ino │ │ ├── MultipleStripsInOneArray │ │ │ └── MultipleStripsInOneArray.ino │ │ ├── OctoWS2811Demo │ │ │ └── OctoWS2811Demo.ino │ │ └── ParallelOutputDemo │ │ │ └── ParallelOutputDemo.ino │ ├── Noise │ │ └── Noise.ino │ ├── NoisePlayground │ │ └── NoisePlayground.ino │ ├── NoisePlusPalette │ │ └── NoisePlusPalette.ino │ ├── Pacifica │ │ └── Pacifica.ino │ ├── Pintest │ │ └── Pintest.ino │ ├── Ports │ │ └── PJRCSpectrumAnalyzer │ │ │ └── PJRCSpectrumAnalyzer.ino │ ├── Pride2015 │ │ └── Pride2015.ino │ ├── RGBCalibrate │ │ └── RGBCalibrate.ino │ ├── RGBSetDemo │ │ └── RGBSetDemo.ino │ ├── SmartMatrix │ │ └── SmartMatrix.ino │ ├── TwinkleFox │ │ └── TwinkleFox.ino │ └── XYMatrix │ │ └── XYMatrix.ino ├── extras │ ├── AppleII.s65 │ ├── FastLED6502.s65 │ ├── RainbowDemo.bin.zip │ └── RainbowDemo.s65 ├── keywords.txt ├── library.json ├── library.properties ├── release_notes.md ├── src │ ├── FastLED.cpp │ ├── FastLED.h │ ├── bitswap.cpp │ ├── bitswap.h │ ├── chipsets.h │ ├── color.h │ ├── colorpalettes.cpp │ ├── colorpalettes.h │ ├── colorutils.cpp │ ├── colorutils.h │ ├── controller.h │ ├── cpp_compat.h │ ├── dmx.h │ ├── fastled_config.h │ ├── fastled_delay.h │ ├── fastled_progmem.h │ ├── fastpin.h │ ├── fastspi.h │ ├── fastspi_bitbang.h │ ├── fastspi_dma.h │ ├── fastspi_nop.h │ ├── fastspi_ref.h │ ├── fastspi_types.h │ ├── hsv2rgb.cpp │ ├── hsv2rgb.h │ ├── led_sysdefs.h │ ├── lib8tion.cpp │ ├── lib8tion.h │ ├── lib8tion │ │ ├── math8.h │ │ ├── random8.h │ │ ├── scale8.h │ │ └── trig8.h │ ├── noise.cpp │ ├── noise.h │ ├── pixelset.h │ ├── pixeltypes.h │ ├── platforms.cpp │ ├── platforms.h │ ├── platforms │ │ ├── apollo3 │ │ │ ├── clockless_apollo3.h │ │ │ ├── fastled_apollo3.h │ │ │ ├── fastpin_apollo3.h │ │ │ ├── fastspi_apollo3.h │ │ │ └── led_sysdefs_apollo3.h │ │ ├── arm │ │ │ ├── common │ │ │ │ └── m0clockless.h │ │ │ ├── d21 │ │ │ │ ├── clockless_arm_d21.h │ │ │ │ ├── fastled_arm_d21.h │ │ │ │ ├── fastpin_arm_d21.h │ │ │ │ └── led_sysdefs_arm_d21.h │ │ │ ├── d51 │ │ │ │ ├── README.txt │ │ │ │ ├── clockless_arm_d51.h │ │ │ │ ├── fastled_arm_d51.h │ │ │ │ ├── fastpin_arm_d51.h │ │ │ │ └── led_sysdefs_arm_d51.h │ │ │ ├── k20 │ │ │ │ ├── clockless_arm_k20.h │ │ │ │ ├── clockless_block_arm_k20.h │ │ │ │ ├── fastled_arm_k20.h │ │ │ │ ├── fastpin_arm_k20.h │ │ │ │ ├── fastspi_arm_k20.h │ │ │ │ ├── led_sysdefs_arm_k20.h │ │ │ │ ├── octows2811_controller.h │ │ │ │ ├── smartmatrix_t3.h │ │ │ │ └── ws2812serial_controller.h │ │ │ ├── k66 │ │ │ │ ├── clockless_arm_k66.h │ │ │ │ ├── clockless_block_arm_k66.h │ │ │ │ ├── fastled_arm_k66.h │ │ │ │ ├── fastpin_arm_k66.h │ │ │ │ ├── fastspi_arm_k66.h │ │ │ │ └── led_sysdefs_arm_k66.h │ │ │ ├── kl26 │ │ │ │ ├── clockless_arm_kl26.h │ │ │ │ ├── fastled_arm_kl26.h │ │ │ │ ├── fastpin_arm_kl26.h │ │ │ │ ├── fastspi_arm_kl26.h │ │ │ │ └── led_sysdefs_arm_kl26.h │ │ │ ├── mxrt1062 │ │ │ │ ├── block_clockless_arm_mxrt1062.h │ │ │ │ ├── clockless_arm_mxrt1062.h │ │ │ │ ├── fastled_arm_mxrt1062.h │ │ │ │ ├── fastpin_arm_mxrt1062.h │ │ │ │ ├── fastspi_arm_mxrt1062.h │ │ │ │ ├── led_sysdefs_arm_mxrt1062.h │ │ │ │ └── octows2811_controller.h │ │ │ ├── nrf51 │ │ │ │ ├── clockless_arm_nrf51.h │ │ │ │ ├── fastled_arm_nrf51.h │ │ │ │ ├── fastpin_arm_nrf51.h │ │ │ │ ├── fastspi_arm_nrf51.h │ │ │ │ └── led_sysdefs_arm_nrf51.h │ │ │ ├── nrf52 │ │ │ │ ├── arbiter_nrf52.h │ │ │ │ ├── clockless_arm_nrf52.h │ │ │ │ ├── fastled_arm_nrf52.h │ │ │ │ ├── fastpin_arm_nrf52.h │ │ │ │ ├── fastpin_arm_nrf52_variants.h │ │ │ │ ├── fastspi_arm_nrf52.h │ │ │ │ └── led_sysdefs_arm_nrf52.h │ │ │ ├── rp2040 │ │ │ │ ├── clockless_arm_rp2040.h │ │ │ │ ├── fastled_arm_rp2040.h │ │ │ │ ├── fastpin_arm_rp2040.h │ │ │ │ ├── led_sysdefs_arm_rp2040.h │ │ │ │ ├── pio_asm.h │ │ │ │ └── pio_gen.h │ │ │ ├── sam │ │ │ │ ├── clockless_arm_sam.h │ │ │ │ ├── clockless_block_arm_sam.h │ │ │ │ ├── fastled_arm_sam.h │ │ │ │ ├── fastpin_arm_sam.h │ │ │ │ ├── fastspi_arm_sam.h │ │ │ │ └── led_sysdefs_arm_sam.h │ │ │ └── stm32 │ │ │ │ ├── clockless_arm_stm32.h │ │ │ │ ├── cm3_regs.h │ │ │ │ ├── fastled_arm_stm32.h │ │ │ │ ├── fastpin_arm_stm32.h │ │ │ │ └── led_sysdefs_arm_stm32.h │ │ ├── avr │ │ │ ├── clockless_trinket.h │ │ │ ├── fastled_avr.h │ │ │ ├── fastpin_avr.h │ │ │ ├── fastspi_avr.h │ │ │ └── led_sysdefs_avr.h │ │ ├── esp │ │ │ ├── 32 │ │ │ │ ├── clockless_block_esp32.h │ │ │ │ ├── clockless_i2s_esp32.h │ │ │ │ ├── clockless_rmt_esp32.cpp │ │ │ │ ├── clockless_rmt_esp32.h │ │ │ │ ├── fastled_esp32.h │ │ │ │ ├── fastpin_esp32.h │ │ │ │ ├── fastspi_esp32.h │ │ │ │ └── led_sysdefs_esp32.h │ │ │ └── 8266 │ │ │ │ ├── clockless_block_esp8266.h │ │ │ │ ├── clockless_esp8266.h │ │ │ │ ├── fastled_esp8266.h │ │ │ │ ├── fastpin_esp8266.h │ │ │ │ ├── fastspi_esp8266.h │ │ │ │ └── led_sysdefs_esp8266.h │ │ └── fastspi_ardunio_core.h │ ├── power_mgt.cpp │ ├── power_mgt.h │ └── wiring.cpp └── workspace.code-workspace ├── MIDIUSB ├── .DS_Store ├── README.adoc ├── documentation │ ├── Doxyfile │ └── src │ │ └── Logo.png ├── examples │ ├── .DS_Store │ ├── MIDIUSB_buzzer │ │ └── MIDIUSB_buzzer.ino │ ├── MIDIUSB_clock │ │ └── MIDIUSB_clock.ino │ ├── MIDIUSB_loop │ │ └── MIDIUSB_loop.ino │ ├── MIDIUSB_read │ │ └── MIDIUSB_read.ino │ └── MIDIUSB_write │ │ └── MIDIUSB_write.ino ├── keywords.txt ├── library.properties └── src │ ├── MIDIUSB.cpp │ ├── MIDIUSB.h │ ├── MIDIUSB_Defs.h │ ├── frequencyToNote.h │ ├── pitchToFrequency.h │ └── pitchToNote.h └── Multiplexer4067 ├── .gitattributes ├── .gitignore ├── Multiplexer4067.cpp ├── Multiplexer4067.h ├── README.md ├── examples └── basic │ └── basic.ino └── keywords.txt /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/.DS_Store -------------------------------------------------------------------------------- /Enclosure/Faduino - 3mm.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/Enclosure/Faduino - 3mm.pdf -------------------------------------------------------------------------------- /PCB/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/.DS_Store -------------------------------------------------------------------------------- /PCB/Faduino/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/.DS_Store -------------------------------------------------------------------------------- /PCB/Faduino/BOM/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/BOM/.DS_Store -------------------------------------------------------------------------------- /PCB/Faduino/BOM/Faduino-1_BOM.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/BOM/Faduino-1_BOM.xlsx -------------------------------------------------------------------------------- /PCB/Faduino/Gerber/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Gerber/.DS_Store -------------------------------------------------------------------------------- /PCB/Faduino/Gerber/FAduino_grber.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Gerber/FAduino_grber.zip -------------------------------------------------------------------------------- /PCB/Faduino/Gerber/Faduino-1-B_Courtyard.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.9-0)*% 2 | %TF.CreationDate,2023-10-23T19:11:04-03:00*% 3 | %TF.ProjectId,Faduino-1,46616475-696e-46f2-9d31-2e6b69636164,3*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Other,User*% 6 | %FSLAX46Y46*% 7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 8 | G04 Created by KiCad (PCBNEW (6.0.9-0)) date 2023-10-23 19:11:04* 9 | %MOMM*% 10 | %LPD*% 11 | G01* 12 | G04 APERTURE LIST* 13 | %ADD10C,0.050000*% 14 | G04 APERTURE END LIST* 15 | D10* 16 | %TO.C,Extra_pins1*% 17 | X178790000Y-65960000D02* 18 | X178790000Y-82210000D01* 19 | X178790000Y-82210000D02* 20 | X182340000Y-82210000D01* 21 | X182340000Y-82210000D02* 22 | X182340000Y-65960000D01* 23 | X182340000Y-65960000D02* 24 | X178790000Y-65960000D01* 25 | %TO.C,Power_jack1*% 26 | X132500000Y-44000000D02* 27 | X132250000Y-44000000D01* 28 | X139000000Y-44000000D02* 29 | X141750000Y-44000000D01* 30 | X135000000Y-45000000D02* 31 | X139000000Y-45000000D01* 32 | X141750000Y-38000000D02* 33 | X141750000Y-29000000D01* 34 | X141750000Y-29000000D02* 35 | X132250000Y-29000000D01* 36 | X132250000Y-44000000D02* 37 | X132250000Y-29000000D01* 38 | X132500000Y-44000000D02* 39 | X135000000Y-44000000D01* 40 | X143750000Y-42000000D02* 41 | X143750000Y-38000000D01* 42 | X141750000Y-42000000D02* 43 | X143750000Y-42000000D01* 44 | X139000000Y-45000000D02* 45 | X139000000Y-44000000D01* 46 | X135000000Y-44000000D02* 47 | X135000000Y-45000000D01* 48 | X143750000Y-38000000D02* 49 | X141750000Y-38000000D01* 50 | X141750000Y-44000000D02* 51 | X141750000Y-42000000D01* 52 | %TO.C,IDC_Conn*% 53 | X65300000Y-92200000D02* 54 | X65300000Y-108490000D01* 55 | X65300000Y-108490000D02* 56 | X55400000Y-108490000D01* 57 | X55400000Y-92200000D02* 58 | X65300000Y-92200000D01* 59 | X55400000Y-108490000D02* 60 | X55400000Y-92200000D01* 61 | %TD*% 62 | M02* 63 | -------------------------------------------------------------------------------- /PCB/Faduino/Gerber/Faduino-1-B_Paste.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.9-0)*% 2 | %TF.CreationDate,2023-10-23T19:11:04-03:00*% 3 | %TF.ProjectId,Faduino-1,46616475-696e-46f2-9d31-2e6b69636164,3*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Paste,Bot*% 6 | %TF.FilePolarity,Positive*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (6.0.9-0)) date 2023-10-23 19:11:04* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 APERTURE END LIST* 15 | M02* 16 | -------------------------------------------------------------------------------- /PCB/Faduino/Gerber/Faduino-1-Edge_Cuts.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.9-0)*% 2 | %TF.CreationDate,2023-10-23T19:11:04-03:00*% 3 | %TF.ProjectId,Faduino-1,46616475-696e-46f2-9d31-2e6b69636164,3*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Profile,NP*% 6 | %FSLAX46Y46*% 7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 8 | G04 Created by KiCad (PCBNEW (6.0.9-0)) date 2023-10-23 19:11:04* 9 | %MOMM*% 10 | %LPD*% 11 | G01* 12 | G04 APERTURE LIST* 13 | %TA.AperFunction,Profile*% 14 | %ADD10C,0.050000*% 15 | %TD*% 16 | G04 APERTURE END LIST* 17 | D10* 18 | X58000000Y-29000000D02* 19 | X185500000Y-29000000D01* 20 | X190000000Y-209500000D02* 21 | X190000000Y-33500000D01* 22 | X53500000Y-209500000D02* 23 | X53500000Y-33500000D01* 24 | X185500000Y-214000000D02* 25 | X58000000Y-214000000D01* 26 | X58000000Y-29000000D02* 27 | G75* 28 | G03* 29 | X53500000Y-33500000I0J-4500000D01* 30 | G01* 31 | X53500000Y-209500000D02* 32 | G75* 33 | G03* 34 | X58000000Y-214000000I4500000J0D01* 35 | G01* 36 | X185500000Y-214000000D02* 37 | G75* 38 | G03* 39 | X190000000Y-209500000I0J4500000D01* 40 | G01* 41 | X190000000Y-33500000D02* 42 | G75* 43 | G03* 44 | X185500000Y-29000000I-4500000J0D01* 45 | G01* 46 | M02* 47 | -------------------------------------------------------------------------------- /PCB/Faduino/Gerber/Faduino-1-NPTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad (6.0.9-0)} date 2023 October 23, Monday 19:11:10 3 | ; FORMAT={-:-/ absolute / metric / decimal} 4 | ; #@! TF.CreationDate,2023-10-23T19:11:10-03:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(6.0.9-0) 6 | ; #@! TF.FileFunction,NonPlated,1,2,NPTH 7 | FMAT,2 8 | METRIC 9 | % 10 | G90 11 | G05 12 | T0 13 | M30 14 | -------------------------------------------------------------------------------- /PCB/Faduino/Gerber/Faduino-1-job.gbrjob: -------------------------------------------------------------------------------- 1 | { 2 | "Header": { 3 | "GenerationSoftware": { 4 | "Vendor": "KiCad", 5 | "Application": "Pcbnew", 6 | "Version": "(6.0.9-0)" 7 | }, 8 | "CreationDate": "2023-10-23T19:11:04-03:00" 9 | }, 10 | "GeneralSpecs": { 11 | "ProjectId": { 12 | "Name": "Faduino-1", 13 | "GUID": "46616475-696e-46f2-9d31-2e6b69636164", 14 | "Revision": "3" 15 | }, 16 | "Size": { 17 | "X": 136.55, 18 | "Y": 185.05 19 | }, 20 | "LayerNumber": 2, 21 | "BoardThickness": 1.6, 22 | "Finish": "None" 23 | }, 24 | "DesignRules": [ 25 | { 26 | "Layers": "Outer", 27 | "PadToPad": 0.0, 28 | "PadToTrack": 0.0, 29 | "TrackToTrack": 0.2, 30 | "MinLineWidth": 0.25, 31 | "TrackToRegion": 0.508, 32 | "RegionToRegion": 0.508 33 | } 34 | ], 35 | "FilesAttributes": [ 36 | { 37 | "Path": "Faduino-1-F_Cu.gbr", 38 | "FileFunction": "Copper,L1,Top", 39 | "FilePolarity": "Positive" 40 | }, 41 | { 42 | "Path": "Faduino-1-B_Cu.gbr", 43 | "FileFunction": "Copper,L2,Bot", 44 | "FilePolarity": "Positive" 45 | }, 46 | { 47 | "Path": "Faduino-1-F_Paste.gbr", 48 | "FileFunction": "SolderPaste,Top", 49 | "FilePolarity": "Positive" 50 | }, 51 | { 52 | "Path": "Faduino-1-B_Paste.gbr", 53 | "FileFunction": "SolderPaste,Bot", 54 | "FilePolarity": "Positive" 55 | }, 56 | { 57 | "Path": "Faduino-1-F_Silkscreen.gbr", 58 | "FileFunction": "Legend,Top", 59 | "FilePolarity": "Positive" 60 | }, 61 | { 62 | "Path": "Faduino-1-B_Silkscreen.gbr", 63 | "FileFunction": "Legend,Bot", 64 | "FilePolarity": "Positive" 65 | }, 66 | { 67 | "Path": "Faduino-1-F_Mask.gbr", 68 | "FileFunction": "SolderMask,Top", 69 | "FilePolarity": "Negative" 70 | }, 71 | { 72 | "Path": "Faduino-1-B_Mask.gbr", 73 | "FileFunction": "SolderMask,Bot", 74 | "FilePolarity": "Negative" 75 | }, 76 | { 77 | "Path": "Faduino-1-Edge_Cuts.gbr", 78 | "FileFunction": "Profile", 79 | "FilePolarity": "Positive" 80 | }, 81 | { 82 | "Path": "Faduino-1-F_Fab.gbr", 83 | "FileFunction": "AssemblyDrawing,Top", 84 | "FilePolarity": "Positive" 85 | }, 86 | { 87 | "Path": "Faduino-1-B_Fab.gbr", 88 | "FileFunction": "AssemblyDrawing,Bot", 89 | "FilePolarity": "Positive" 90 | } 91 | ], 92 | "MaterialStackup": [ 93 | { 94 | "Type": "Legend", 95 | "Name": "Top Silk Screen" 96 | }, 97 | { 98 | "Type": "SolderPaste", 99 | "Name": "Top Solder Paste" 100 | }, 101 | { 102 | "Type": "SolderMask", 103 | "Name": "Top Solder Mask" 104 | }, 105 | { 106 | "Type": "Copper", 107 | "Name": "F.Cu" 108 | }, 109 | { 110 | "Type": "Dielectric", 111 | "Material": "FR4", 112 | "Name": "F.Cu/B.Cu", 113 | "Notes": "Type: dielectric layer 1 (from F.Cu to B.Cu)" 114 | }, 115 | { 116 | "Type": "Copper", 117 | "Name": "B.Cu" 118 | }, 119 | { 120 | "Type": "SolderMask", 121 | "Name": "Bottom Solder Mask" 122 | }, 123 | { 124 | "Type": "SolderPaste", 125 | "Name": "Bottom Solder Paste" 126 | }, 127 | { 128 | "Type": "Legend", 129 | "Name": "Bottom Silk Screen" 130 | } 131 | ] 132 | } 133 | -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/.DS_Store -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-11_102519.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-11_102519.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-11_144634.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-11_144634.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-11_150720.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-11_150720.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-11_174313.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-11_174313.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-12_151257.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-12_151257.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-24_182208.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-24_182208.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-24_183244.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-24_183244.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-24_184014.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-24_184014.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-24_185556.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-24_185556.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-24_212948.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-24_212948.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-26_155658.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-07-26_155658.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-19_154955.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-19_154955.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-19_160559.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-19_160559.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-19_202102.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-19_202102.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-21_191804.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-21_191804.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-26_132834.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-26_132834.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-27_170802.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-27_170802.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-28_203849.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-28_203849.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-30_151215.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-09-30_151215.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-10-07_181902.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-10-07_181902.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-10-18_193208.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-10-18_193208.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-10-23_093950.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-10-23_093950.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-10-23_095213.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-10-23_095213.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-10-23_183947.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-10-23_183947.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-10-23_184545.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-10-23_184545.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-10-23_191024.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Faduino-1-backups/Faduino-1-2023-10-23_191024.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1-rescue.dcm: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 2 | # 3 | #End Doc Library 4 | -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1.csv: -------------------------------------------------------------------------------- 1 | Comment,Designator,Footprint,LCSC Part # 2 | "100nF Unpolarized capacitor, small symbol","C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24",C_0603_1608Metric,C14663 3 | "10nF Unpolarized capacitor, small symbol","C_enc_1,C_enc_2",C_0603_1608Metric,C57112 4 | "100nF Unpolarized capacitor, small symbol","C_mux_1,C_mux_2",C_0603_1608Metric,C14663 5 | 330nF ,C_pwr_1,C_0603_1608Metric,C1615 6 | 100nF ,C_pwr_2,C_0603_1608Metric,C14663 7 | WS2812B RGB LED with integrated controller,"D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15,D16,D17,D18,D19,D20,D21,D22,D23,D24",WS2812B-mini-V3-2,C527089 8 | WS2812B RGB LED with integrated controller,D_1,WS2812B-mini-V3,C527089 9 | "1N4007 1000V 1A General Purpose Rectifier Diode, DO-41",Diode1,D_SMA_Handsoldering,C727081 10 | Rotary_Encoder_Switch ,Encoder1,RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm_CircularMountingHoles, 11 | "Conn_01x06 Generic connector, single row, 01x06, script generated (kicad-library-utils/schlib/autogen/connector/)",Extra_pins1,PinSocket_1x06_P2.54mm_Vertical, 12 | L293DD ,L293DD1,SOP-20_7.5x12.8mm_P1.27mm,C5199946 13 | "Conn_01x06_Female Generic connector, single row, 01x06, script generated (kicad-library-utils/schlib/autogen/connector/)",mtr_fdr1,PinHeader_1x06_P2.54mm_Vertical, 14 | CD74HC4067M_2 ,"Mux_1,Mux_2",SSOP-24_5.3x8.2mm_P0.65mm,C97702 15 | Jack-DC DC Barrel Jack,Power_jack1,BarrelJack_Horizontal, 16 | "1M Resistor, small symbol",R1,R_0603_1608Metric,C22935 17 | "10k Resistor, small US symbol","R2,R3,R4,R5",R_0603_1608Metric,C25804 18 | "330 Resistor, small US symbol",R19,R_0603_1608Metric,C22935 19 | SW_SPST Single Pole Single Throw (SPST) switch,"SW1,SW2,SW3,SW4,SW5,SW6,SW7,SW8,SW9,SW10,SW11,SW12,SW13,SW14,SW15,SW16,SW17,SW18,SW19,SW20,SW21,SW22,SW23,SW24",BUTTONPAD-1x1, 20 | "L7805 Positive 1.5A 35V Linear Regulator, Fixed Output 5V, TO-220/TO-263/TO-252",Tension_reg1,TO-263-2,C15077 21 | Arduino_Pro_Micro ,U1,ArduinoProMicro, 22 | -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Faduino-1.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 31, 4 | "active_layer_preset": "", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": true, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 8, 37 | 9, 38 | 10, 39 | 11, 40 | 12, 41 | 13, 42 | 14, 43 | 15, 44 | 16, 45 | 17, 46 | 18, 47 | 19, 48 | 20, 49 | 21, 50 | 22, 51 | 23, 52 | 24, 53 | 25, 54 | 26, 55 | 27, 56 | 28, 57 | 29, 58 | 30, 59 | 32, 60 | 33, 61 | 34, 62 | 35, 63 | 36 64 | ], 65 | "visible_layers": "001ffff_80000001", 66 | "zone_display_mode": 1 67 | }, 68 | "meta": { 69 | "filename": "Faduino-1.kicad_prl", 70 | "version": 3 71 | }, 72 | "project": { 73 | "files": [] 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Morized_Fader-backups/Morized_Fader-2023-07-08_183325.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Morized_Fader-backups/Morized_Fader-2023-07-08_183325.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Morized_Fader-backups/Morized_Fader-2023-09-19_152608.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Kicad/Morized_Fader-backups/Morized_Fader-2023-09-19_152608.zip -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Morized_Fader.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 0, 4 | "active_layer_preset": "", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": true, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 8, 37 | 9, 38 | 10, 39 | 11, 40 | 12, 41 | 13, 42 | 14, 43 | 15, 44 | 16, 45 | 17, 46 | 18, 47 | 19, 48 | 20, 49 | 21, 50 | 22, 51 | 23, 52 | 24, 53 | 25, 54 | 26, 55 | 27, 56 | 28, 57 | 29, 58 | 30, 59 | 32, 60 | 33, 61 | 34, 62 | 35, 63 | 36 64 | ], 65 | "visible_layers": "fffffff_ffffffff", 66 | "zone_display_mode": 0 67 | }, 68 | "meta": { 69 | "filename": "Morized_Fader.kicad_prl", 70 | "version": 3 71 | }, 72 | "project": { 73 | "files": [] 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Morized_Fader.pro: -------------------------------------------------------------------------------- 1 | update=22/05/2015 07:44:53 2 | version=1 3 | last_client=kicad 4 | [general] 5 | version=1 6 | RootSch= 7 | BoardNm= 8 | [pcbnew] 9 | version=1 10 | LastNetListRead= 11 | UseCmpFile=1 12 | PadDrill=0.600000000000 13 | PadDrillOvalY=0.600000000000 14 | PadSizeH=1.500000000000 15 | PadSizeV=1.500000000000 16 | PcbTextSizeV=1.500000000000 17 | PcbTextSizeH=1.500000000000 18 | PcbTextThickness=0.300000000000 19 | ModuleTextSizeV=1.000000000000 20 | ModuleTextSizeH=1.000000000000 21 | ModuleTextSizeThickness=0.150000000000 22 | SolderMaskClearance=0.000000000000 23 | SolderMaskMinWidth=0.000000000000 24 | DrawSegmentWidth=0.200000000000 25 | BoardOutlineThickness=0.100000000000 26 | ModuleOutlineThickness=0.150000000000 27 | [cvpcb] 28 | version=1 29 | NetIExt=net 30 | [eeschema] 31 | version=1 32 | LibDir= 33 | [eeschema/libraries] 34 | -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Morized_Fader.sch: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 4 2 | EELAYER 30 0 3 | EELAYER END 4 | $Descr A4 11693 8268 5 | encoding utf-8 6 | Sheet 1 4 7 | Title "" 8 | Date "" 9 | Rev "" 10 | Comp "" 11 | Comment1 "" 12 | Comment2 "" 13 | Comment3 "" 14 | Comment4 "" 15 | $EndDescr 16 | $EndSCHEMATC 17 | -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Morized_Fader.sch-bak: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 4 2 | EELAYER 30 0 3 | EELAYER END 4 | $Descr A4 11693 8268 5 | encoding utf-8 6 | Sheet 1 4 7 | Title "" 8 | Date "" 9 | Rev "" 10 | Comp "" 11 | Comment1 "" 12 | Comment2 "" 13 | Comment3 "" 14 | Comment4 "" 15 | $EndDescr 16 | $EndSCHEMATC 17 | -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Motorized_Fader.sch: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 4 2 | EELAYER 30 0 3 | EELAYER END 4 | $Descr A4 11693 8268 5 | encoding utf-8 6 | Sheet 4 6 7 | Title "" 8 | Date "" 9 | Rev "" 10 | Comp "" 11 | Comment1 "" 12 | Comment2 "" 13 | Comment3 "" 14 | Comment4 "" 15 | $EndDescr 16 | $Comp 17 | L Driver_Motor:L293D H-Bridge1 18 | U 1 1 614DE23E 19 | P 6250 3250 20 | F 0 "H-Bridge1" H 6250 4431 50 0000 C CNN 21 | F 1 "L293D" H 6250 4340 50 0000 C CNN 22 | F 2 "Package_DIP:DIP-16_W7.62mm_LongPads" H 6500 2500 50 0001 L CNN 23 | F 3 "http://www.ti.com/lit/ds/symlink/l293.pdf" H 5950 3950 50 0001 C CNN 24 | 1 6250 3250 25 | 1 0 0 -1 26 | $EndComp 27 | Text GLabel 5750 3050 0 50 Input ~ 0 28 | F_ENABLE 29 | Text GLabel 5750 2650 0 50 Input ~ 0 30 | F_IN_1 31 | Text GLabel 5750 2850 0 50 Input ~ 0 32 | F_IN_2 33 | Text GLabel 6050 4050 3 50 Input ~ 0 34 | GND 35 | Text GLabel 6150 4050 3 50 Input ~ 0 36 | GND 37 | Text GLabel 6350 4050 3 50 Input ~ 0 38 | GND 39 | Text GLabel 6450 4050 3 50 Input ~ 0 40 | GND 41 | Text GLabel 5950 2150 1 50 Input ~ 0 42 | VCC 43 | Wire Wire Line 44 | 5950 2150 5950 2200 45 | Wire Wire Line 46 | 5950 2200 6150 2200 47 | Wire Wire Line 48 | 6150 2200 6150 2250 49 | $Comp 50 | L Device:R_Small R1 51 | U 1 1 614E94E6 52 | P 4250 3350 53 | F 0 "R1" V 4054 3350 50 0000 C CNN 54 | F 1 "1M" V 4145 3350 50 0000 C CNN 55 | F 2 "Resistor_SMD:R_0603_1608Metric" H 4250 3350 50 0001 C CNN 56 | F 3 "~" H 4250 3350 50 0001 C CNN 57 | F 4 "C22935" H 4250 3350 50 0001 C CNN "LCSC Part Number" 58 | F 5 "C22935" H 4250 3350 50 0001 C CNN "LCSC" 59 | 1 4250 3350 60 | 0 1 1 0 61 | $EndComp 62 | Text GLabel 3900 3350 0 50 Input ~ 0 63 | F_TOUCH_1 64 | Wire Wire Line 65 | 3900 3350 4150 3350 66 | Text GLabel 4600 3350 2 50 Input ~ 0 67 | F_TOUCH_2 68 | Wire Wire Line 69 | 4350 3350 4600 3350 70 | Text GLabel 6750 2650 2 50 Input ~ 0 71 | F_OUT_1 72 | Text GLabel 6750 2850 2 50 Input ~ 0 73 | F_OUT_2 74 | Text GLabel 6500 1900 2 50 Input ~ 0 75 | 9V 76 | Wire Wire Line 77 | 6500 1900 6350 1900 78 | Wire Wire Line 79 | 6350 1900 6350 2250 80 | NoConn ~ 5750 3250 81 | NoConn ~ 5750 3450 82 | NoConn ~ 5750 3650 83 | NoConn ~ 6750 3450 84 | NoConn ~ 6750 3250 85 | $EndSCHEMATC 86 | -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/Motorized_Fader.sch-bak: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 4 2 | EELAYER 30 0 3 | EELAYER END 4 | $Descr A4 11693 8268 5 | encoding utf-8 6 | Sheet 4 6 7 | Title "" 8 | Date "" 9 | Rev "" 10 | Comp "" 11 | Comment1 "" 12 | Comment2 "" 13 | Comment3 "" 14 | Comment4 "" 15 | $EndDescr 16 | $Comp 17 | L Driver_Motor:L293D H-Bridge1 18 | U 1 1 614DE23E 19 | P 6250 3250 20 | F 0 "H-Bridge1" H 6250 4431 50 0000 C CNN 21 | F 1 "L293D" H 6250 4340 50 0000 C CNN 22 | F 2 "Package_DIP:DIP-16_W7.62mm_LongPads" H 6500 2500 50 0001 L CNN 23 | F 3 "http://www.ti.com/lit/ds/symlink/l293.pdf" H 5950 3950 50 0001 C CNN 24 | 1 6250 3250 25 | 1 0 0 -1 26 | $EndComp 27 | Text GLabel 5750 3050 0 50 Input ~ 0 28 | F_ENABLE 29 | Text GLabel 5750 2650 0 50 Input ~ 0 30 | F_IN_1 31 | Text GLabel 5750 2850 0 50 Input ~ 0 32 | F_IN_2 33 | Text GLabel 6050 4050 3 50 Input ~ 0 34 | GND 35 | Text GLabel 6150 4050 3 50 Input ~ 0 36 | GND 37 | Text GLabel 6350 4050 3 50 Input ~ 0 38 | GND 39 | Text GLabel 6450 4050 3 50 Input ~ 0 40 | GND 41 | Text GLabel 5950 2150 1 50 Input ~ 0 42 | VCC 43 | Wire Wire Line 44 | 5950 2150 5950 2200 45 | Wire Wire Line 46 | 5950 2200 6150 2200 47 | Wire Wire Line 48 | 6150 2200 6150 2250 49 | $Comp 50 | L Device:R_Small R1 51 | U 1 1 614E94E6 52 | P 4250 3350 53 | F 0 "R1" V 4054 3350 50 0000 C CNN 54 | F 1 "1M" V 4145 3350 50 0000 C CNN 55 | F 2 "Resistor_SMD:R_0603_1608Metric" H 4250 3350 50 0001 C CNN 56 | F 3 "~" H 4250 3350 50 0001 C CNN 57 | F 4 "C22935" H 4250 3350 50 0001 C CNN "LCSC Part Number" 58 | F 5 "C22935" H 4250 3350 50 0001 C CNN "LCSC" 59 | 1 4250 3350 60 | 0 1 1 0 61 | $EndComp 62 | Text GLabel 3900 3350 0 50 Input ~ 0 63 | F_TOUCH_1 64 | Wire Wire Line 65 | 3900 3350 4150 3350 66 | Text GLabel 4600 3350 2 50 Input ~ 0 67 | F_TOUCH_2 68 | Wire Wire Line 69 | 4350 3350 4600 3350 70 | Text GLabel 6750 2650 2 50 Input ~ 0 71 | F_OUT_1 72 | Text GLabel 6750 2850 2 50 Input ~ 0 73 | F_OUT_2 74 | Text GLabel 6500 1900 2 50 Input ~ 0 75 | 9V 76 | Wire Wire Line 77 | 6500 1900 6350 1900 78 | Wire Wire Line 79 | 6350 1900 6350 2250 80 | NoConn ~ 5750 3250 81 | NoConn ~ 5750 3450 82 | NoConn ~ 5750 3650 83 | NoConn ~ 6750 3450 84 | NoConn ~ 6750 3250 85 | $EndSCHEMATC 86 | -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name "Footprints")(type "KiCad")(uri "/Volumes/Gustavo SanDisk/Kicad/Footprints")(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /PCB/Faduino/Kicad/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name Faduino-1-rescue)(type Legacy)(uri ${KIPRJMOD}/Faduino-1-rescue.lib)(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /PCB/Faduino/Pos/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Pos/.DS_Store -------------------------------------------------------------------------------- /PCB/Faduino/Pos/Faduino-1-top-pos.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/Faduino/Pos/Faduino-1-top-pos.xlsx -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/.DS_Store -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Gerber/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Gerber/.DS_Store -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Gerber/MotorizedFaderPCB_1-B_Cu.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.9-0)*% 2 | %TF.CreationDate,2023-10-23T19:08:13-03:00*% 3 | %TF.ProjectId,MotorizedFaderPCB_1,4d6f746f-7269-47a6-9564-466164657250,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Copper,L2,Bot*% 6 | %TF.FilePolarity,Positive*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (6.0.9-0)) date 2023-10-23 19:08:13* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 Aperture macros list* 15 | %AMRoundRect* 16 | 0 Rectangle with rounded corners* 17 | 0 $1 Rounding radius* 18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* 19 | 0 Add a 4 corners polygon primitive as box body* 20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* 21 | 0 Add four circle primitives for the rounded corners* 22 | 1,1,$1+$1,$2,$3* 23 | 1,1,$1+$1,$4,$5* 24 | 1,1,$1+$1,$6,$7* 25 | 1,1,$1+$1,$8,$9* 26 | 0 Add four rect primitives between the rounded corners* 27 | 20,1,$1+$1,$2,$3,$4,$5,0* 28 | 20,1,$1+$1,$4,$5,$6,$7,0* 29 | 20,1,$1+$1,$6,$7,$8,$9,0* 30 | 20,1,$1+$1,$8,$9,$2,$3,0*% 31 | G04 Aperture macros list end* 32 | %TA.AperFunction,ComponentPad*% 33 | %ADD10RoundRect,0.250000X-0.600000X0.600000X-0.600000X-0.600000X0.600000X-0.600000X0.600000X0.600000X0*% 34 | %TD*% 35 | %TA.AperFunction,ComponentPad*% 36 | %ADD11C,1.700000*% 37 | %TD*% 38 | %TA.AperFunction,ComponentPad*% 39 | %ADD12C,2.500000*% 40 | %TD*% 41 | %TA.AperFunction,ViaPad*% 42 | %ADD13C,0.800000*% 43 | %TD*% 44 | %TA.AperFunction,Conductor*% 45 | %ADD14C,0.250000*% 46 | %TD*% 47 | G04 APERTURE END LIST* 48 | D10* 49 | %TO.P,IDC_Conn,1,Pin_1*% 50 | %TO.N,Net-(J1-Pad1)*% 51 | X188735000Y-82137500D03* 52 | D11* 53 | %TO.P,IDC_Conn,2,Pin_2*% 54 | %TO.N,Net-(J1-Pad2)*% 55 | X188735000Y-84677500D03* 56 | %TO.P,IDC_Conn,3,Pin_3*% 57 | %TO.N,Net-(J1-Pad3)*% 58 | X186195000Y-82137500D03* 59 | %TO.P,IDC_Conn,4,Pin_4*% 60 | %TO.N,Net-(J1-Pad4)*% 61 | X186195000Y-84677500D03* 62 | %TO.P,IDC_Conn,5,Pin_5*% 63 | %TO.N,Net-(J1-Pad5)*% 64 | X183655000Y-82137500D03* 65 | %TO.P,IDC_Conn,6,Pin_6*% 66 | %TO.N,Net-(J1-Pad6)*% 67 | X183655000Y-84677500D03* 68 | %TD*% 69 | D12* 70 | %TO.P,U1,6,dc_2*% 71 | %TO.N,Net-(J1-Pad6)*% 72 | X232300000Y-79415000D03* 73 | %TO.P,U1,5,dc_1*% 74 | %TO.N,Net-(J1-Pad5)*% 75 | X232300000Y-87415000D03* 76 | %TO.P,U1,4,touch*% 77 | %TO.N,Net-(J1-Pad2)*% 78 | X139100000Y-81290000D03* 79 | %TO.P,U1,3,vcc*% 80 | %TO.N,Net-(J1-Pad3)*% 81 | X139100000Y-85290000D03* 82 | %TO.P,U1,2,wiper*% 83 | %TO.N,Net-(J1-Pad4)*% 84 | X139100000Y-89290000D03* 85 | %TO.P,U1,1,gnd*% 86 | %TO.N,Net-(J1-Pad1)*% 87 | X139100000Y-77290000D03* 88 | %TD*% 89 | D13* 90 | %TO.N,Net-(J1-Pad5)*% 91 | X187480000Y-87150000D03* 92 | %TO.N,Net-(J1-Pad6)*% 93 | X183930000Y-79070000D03* 94 | X188590000Y-77700000D03* 95 | %TD*% 96 | D14* 97 | %TO.N,Net-(J1-Pad5)*% 98 | X181890000Y-84574201D02* 99 | X181890000Y-82750000D01* 100 | X187480000Y-87150000D02* 101 | X184465799Y-87150000D01* 102 | X184465799Y-87150000D02* 103 | X181890000Y-84574201D01* 104 | X181890000Y-82750000D02* 105 | X182502500Y-82137500D01* 106 | X182502500Y-82137500D02* 107 | X183655000Y-82137500D01* 108 | %TO.N,Net-(J1-Pad6)*% 109 | X185300000Y-77700000D02* 110 | X183930000Y-79070000D01* 111 | X188590000Y-77700000D02* 112 | X185300000Y-77700000D01* 113 | %TD*% 114 | M02* 115 | -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Gerber/MotorizedFaderPCB_1-B_Mask.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.9-0)*% 2 | %TF.CreationDate,2023-10-23T19:08:13-03:00*% 3 | %TF.ProjectId,MotorizedFaderPCB_1,4d6f746f-7269-47a6-9564-466164657250,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Soldermask,Bot*% 6 | %TF.FilePolarity,Negative*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (6.0.9-0)) date 2023-10-23 19:08:13* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 Aperture macros list* 15 | %AMRoundRect* 16 | 0 Rectangle with rounded corners* 17 | 0 $1 Rounding radius* 18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* 19 | 0 Add a 4 corners polygon primitive as box body* 20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* 21 | 0 Add four circle primitives for the rounded corners* 22 | 1,1,$1+$1,$2,$3* 23 | 1,1,$1+$1,$4,$5* 24 | 1,1,$1+$1,$6,$7* 25 | 1,1,$1+$1,$8,$9* 26 | 0 Add four rect primitives between the rounded corners* 27 | 20,1,$1+$1,$2,$3,$4,$5,0* 28 | 20,1,$1+$1,$4,$5,$6,$7,0* 29 | 20,1,$1+$1,$6,$7,$8,$9,0* 30 | 20,1,$1+$1,$8,$9,$2,$3,0*% 31 | G04 Aperture macros list end* 32 | %ADD10RoundRect,0.250000X-0.600000X0.600000X-0.600000X-0.600000X0.600000X-0.600000X0.600000X0.600000X0*% 33 | %ADD11C,1.700000*% 34 | %ADD12C,2.500000*% 35 | G04 APERTURE END LIST* 36 | D10* 37 | %TO.C,IDC_Conn*% 38 | X188735000Y-82137500D03* 39 | D11* 40 | X188735000Y-84677500D03* 41 | X186195000Y-82137500D03* 42 | X186195000Y-84677500D03* 43 | X183655000Y-82137500D03* 44 | X183655000Y-84677500D03* 45 | %TD*% 46 | D12* 47 | %TO.C,U1*% 48 | X232300000Y-79415000D03* 49 | X232300000Y-87415000D03* 50 | X139100000Y-81290000D03* 51 | X139100000Y-85290000D03* 52 | X139100000Y-89290000D03* 53 | X139100000Y-77290000D03* 54 | %TD*% 55 | M02* 56 | -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Gerber/MotorizedFaderPCB_1-B_Paste.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.9-0)*% 2 | %TF.CreationDate,2023-10-23T19:08:13-03:00*% 3 | %TF.ProjectId,MotorizedFaderPCB_1,4d6f746f-7269-47a6-9564-466164657250,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Paste,Bot*% 6 | %TF.FilePolarity,Positive*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (6.0.9-0)) date 2023-10-23 19:08:13* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 APERTURE END LIST* 15 | M02* 16 | -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Gerber/MotorizedFaderPCB_1-B_Silkscreen.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.9-0)*% 2 | %TF.CreationDate,2023-10-23T19:08:13-03:00*% 3 | %TF.ProjectId,MotorizedFaderPCB_1,4d6f746f-7269-47a6-9564-466164657250,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Legend,Bot*% 6 | %TF.FilePolarity,Positive*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (6.0.9-0)) date 2023-10-23 19:08:13* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 APERTURE END LIST* 15 | M02* 16 | -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Gerber/MotorizedFaderPCB_1-Edge_Cuts.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.9-0)*% 2 | %TF.CreationDate,2023-10-23T19:08:13-03:00*% 3 | %TF.ProjectId,MotorizedFaderPCB_1,4d6f746f-7269-47a6-9564-466164657250,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Profile,NP*% 6 | %FSLAX46Y46*% 7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 8 | G04 Created by KiCad (PCBNEW (6.0.9-0)) date 2023-10-23 19:08:13* 9 | %MOMM*% 10 | %LPD*% 11 | G01* 12 | G04 APERTURE LIST* 13 | %TA.AperFunction,Profile*% 14 | %ADD10C,0.100000*% 15 | %TD*% 16 | G04 APERTURE END LIST* 17 | D10* 18 | X137000000Y-75000000D02* 19 | X137000000Y-91500000D01* 20 | X234500000Y-91500000D02* 21 | X234500000Y-75000000D01* 22 | X137000000Y-91500000D02* 23 | X234500000Y-91500000D01* 24 | X234500000Y-75000000D02* 25 | X137000000Y-75000000D01* 26 | M02* 27 | -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Gerber/MotorizedFaderPCB_1-F_Mask.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.9-0)*% 2 | %TF.CreationDate,2023-10-23T19:08:13-03:00*% 3 | %TF.ProjectId,MotorizedFaderPCB_1,4d6f746f-7269-47a6-9564-466164657250,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Soldermask,Top*% 6 | %TF.FilePolarity,Negative*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (6.0.9-0)) date 2023-10-23 19:08:13* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 Aperture macros list* 15 | %AMRoundRect* 16 | 0 Rectangle with rounded corners* 17 | 0 $1 Rounding radius* 18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* 19 | 0 Add a 4 corners polygon primitive as box body* 20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* 21 | 0 Add four circle primitives for the rounded corners* 22 | 1,1,$1+$1,$2,$3* 23 | 1,1,$1+$1,$4,$5* 24 | 1,1,$1+$1,$6,$7* 25 | 1,1,$1+$1,$8,$9* 26 | 0 Add four rect primitives between the rounded corners* 27 | 20,1,$1+$1,$2,$3,$4,$5,0* 28 | 20,1,$1+$1,$4,$5,$6,$7,0* 29 | 20,1,$1+$1,$6,$7,$8,$9,0* 30 | 20,1,$1+$1,$8,$9,$2,$3,0*% 31 | G04 Aperture macros list end* 32 | %ADD10RoundRect,0.250000X-0.600000X0.600000X-0.600000X-0.600000X0.600000X-0.600000X0.600000X0.600000X0*% 33 | %ADD11C,1.700000*% 34 | %ADD12C,2.500000*% 35 | G04 APERTURE END LIST* 36 | D10* 37 | %TO.C,IDC_Conn*% 38 | X188735000Y-82137500D03* 39 | D11* 40 | X188735000Y-84677500D03* 41 | X186195000Y-82137500D03* 42 | X186195000Y-84677500D03* 43 | X183655000Y-82137500D03* 44 | X183655000Y-84677500D03* 45 | %TD*% 46 | D12* 47 | %TO.C,U1*% 48 | X232300000Y-79415000D03* 49 | X232300000Y-87415000D03* 50 | X139100000Y-81290000D03* 51 | X139100000Y-85290000D03* 52 | X139100000Y-89290000D03* 53 | X139100000Y-77290000D03* 54 | %TD*% 55 | M02* 56 | -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Gerber/MotorizedFaderPCB_1-F_Paste.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.9-0)*% 2 | %TF.CreationDate,2023-10-23T19:08:13-03:00*% 3 | %TF.ProjectId,MotorizedFaderPCB_1,4d6f746f-7269-47a6-9564-466164657250,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Paste,Top*% 6 | %TF.FilePolarity,Positive*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (6.0.9-0)) date 2023-10-23 19:08:13* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 APERTURE END LIST* 15 | M02* 16 | -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Gerber/MotorizedFaderPCB_1-NPTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad (6.0.9-0)} date 2023 October 23, Monday 19:08:17 3 | ; FORMAT={-:-/ absolute / metric / decimal} 4 | ; #@! TF.CreationDate,2023-10-23T19:08:17-03:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(6.0.9-0) 6 | ; #@! TF.FileFunction,NonPlated,1,2,NPTH 7 | FMAT,2 8 | METRIC 9 | % 10 | G90 11 | G05 12 | T0 13 | M30 14 | -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Gerber/MotorizedFaderPCB_1-PTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad (6.0.9-0)} date 2023 October 23, Monday 19:08:17 3 | ; FORMAT={-:-/ absolute / metric / decimal} 4 | ; #@! TF.CreationDate,2023-10-23T19:08:17-03:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(6.0.9-0) 6 | ; #@! TF.FileFunction,Plated,1,2,PTH 7 | FMAT,2 8 | METRIC 9 | ; #@! TA.AperFunction,Plated,PTH,ViaDrill 10 | T1C0.400 11 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 12 | T2C1.000 13 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 14 | T3C1.500 15 | % 16 | G90 17 | G05 18 | T1 19 | X183.93Y-79.07 20 | X187.48Y-87.15 21 | X188.59Y-77.7 22 | T2 23 | X183.655Y-82.138 24 | X183.655Y-84.677 25 | X186.195Y-82.138 26 | X186.195Y-84.677 27 | X188.735Y-82.138 28 | X188.735Y-84.677 29 | T3 30 | X139.1Y-77.29 31 | X139.1Y-81.29 32 | X139.1Y-85.29 33 | X139.1Y-89.29 34 | X232.3Y-79.415 35 | X232.3Y-87.415 36 | T0 37 | M30 38 | -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Gerber/MotorizedFaderPCB_1-job.gbrjob: -------------------------------------------------------------------------------- 1 | { 2 | "Header": { 3 | "GenerationSoftware": { 4 | "Vendor": "KiCad", 5 | "Application": "Pcbnew", 6 | "Version": "(6.0.9-0)" 7 | }, 8 | "CreationDate": "2023-10-23T19:08:13-03:00" 9 | }, 10 | "GeneralSpecs": { 11 | "ProjectId": { 12 | "Name": "MotorizedFaderPCB_1", 13 | "GUID": "4d6f746f-7269-47a6-9564-466164657250", 14 | "Revision": "rev?" 15 | }, 16 | "Size": { 17 | "X": 97.6, 18 | "Y": 16.6 19 | }, 20 | "LayerNumber": 2, 21 | "BoardThickness": 1.6, 22 | "Finish": "None" 23 | }, 24 | "DesignRules": [ 25 | { 26 | "Layers": "Outer", 27 | "PadToPad": 0.2, 28 | "PadToTrack": 0.2, 29 | "TrackToTrack": 0.2, 30 | "MinLineWidth": 0.25 31 | } 32 | ], 33 | "FilesAttributes": [ 34 | { 35 | "Path": "MotorizedFaderPCB_1-F_Cu.gbr", 36 | "FileFunction": "Copper,L1,Top", 37 | "FilePolarity": "Positive" 38 | }, 39 | { 40 | "Path": "MotorizedFaderPCB_1-B_Cu.gbr", 41 | "FileFunction": "Copper,L2,Bot", 42 | "FilePolarity": "Positive" 43 | }, 44 | { 45 | "Path": "MotorizedFaderPCB_1-F_Paste.gbr", 46 | "FileFunction": "SolderPaste,Top", 47 | "FilePolarity": "Positive" 48 | }, 49 | { 50 | "Path": "MotorizedFaderPCB_1-B_Paste.gbr", 51 | "FileFunction": "SolderPaste,Bot", 52 | "FilePolarity": "Positive" 53 | }, 54 | { 55 | "Path": "MotorizedFaderPCB_1-F_Silkscreen.gbr", 56 | "FileFunction": "Legend,Top", 57 | "FilePolarity": "Positive" 58 | }, 59 | { 60 | "Path": "MotorizedFaderPCB_1-B_Silkscreen.gbr", 61 | "FileFunction": "Legend,Bot", 62 | "FilePolarity": "Positive" 63 | }, 64 | { 65 | "Path": "MotorizedFaderPCB_1-F_Mask.gbr", 66 | "FileFunction": "SolderMask,Top", 67 | "FilePolarity": "Negative" 68 | }, 69 | { 70 | "Path": "MotorizedFaderPCB_1-B_Mask.gbr", 71 | "FileFunction": "SolderMask,Bot", 72 | "FilePolarity": "Negative" 73 | }, 74 | { 75 | "Path": "MotorizedFaderPCB_1-Edge_Cuts.gbr", 76 | "FileFunction": "Profile", 77 | "FilePolarity": "Positive" 78 | } 79 | ], 80 | "MaterialStackup": [ 81 | { 82 | "Type": "Legend", 83 | "Name": "Top Silk Screen" 84 | }, 85 | { 86 | "Type": "SolderPaste", 87 | "Name": "Top Solder Paste" 88 | }, 89 | { 90 | "Type": "SolderMask", 91 | "Name": "Top Solder Mask" 92 | }, 93 | { 94 | "Type": "Copper", 95 | "Name": "F.Cu" 96 | }, 97 | { 98 | "Type": "Dielectric", 99 | "Material": "FR4", 100 | "Name": "F.Cu/B.Cu", 101 | "Notes": "Type: dielectric layer 1 (from F.Cu to B.Cu)" 102 | }, 103 | { 104 | "Type": "Copper", 105 | "Name": "B.Cu" 106 | }, 107 | { 108 | "Type": "SolderMask", 109 | "Name": "Bottom Solder Mask" 110 | }, 111 | { 112 | "Type": "SolderPaste", 113 | "Name": "Bottom Solder Paste" 114 | }, 115 | { 116 | "Type": "Legend", 117 | "Name": "Bottom Silk Screen" 118 | } 119 | ] 120 | } 121 | -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Gerber/MtrFdrPCB_grbr.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Gerber/MtrFdrPCB_grbr.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/.DS_Store -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-07_202726.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-07_202726.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-07_203738.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-07_203738.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-07_210414.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-07_210414.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-07_211424.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-07_211424.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-07_212424.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-07_212424.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-08_173236.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-08_173236.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-08_183945.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-08_183945.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-11_145318.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-11_145318.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-26_155950.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-26_155950.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-26_160735.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-26_160735.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-26_161802.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-26_161802.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-26_165509.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-07-26_165509.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-10-23_095303.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-10-23_095303.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-10-23_175540.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-10-23_175540.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-10-23_190003.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-10-23_190003.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-10-23_190532.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1-backups/MotorizedFaderPCB_1-2023-10-23_190532.zip -------------------------------------------------------------------------------- /PCB/MotorizedFaderPCB/Kicad/MotorizedFaderPCB_1.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 31, 4 | "active_layer_preset": "All Layers", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": true, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 8, 37 | 9, 38 | 10, 39 | 11, 40 | 12, 41 | 13, 42 | 14, 43 | 15, 44 | 16, 45 | 17, 46 | 18, 47 | 19, 48 | 20, 49 | 21, 50 | 22, 51 | 23, 52 | 24, 53 | 25, 54 | 26, 55 | 27, 56 | 28, 57 | 29, 58 | 30, 59 | 32, 60 | 33, 61 | 34, 62 | 35, 63 | 36 64 | ], 65 | "visible_layers": "fffffff_ffffffff", 66 | "zone_display_mode": 0 67 | }, 68 | "meta": { 69 | "filename": "MotorizedFaderPCB_1.kicad_prl", 70 | "version": 3 71 | }, 72 | "project": { 73 | "files": [] 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Faduino 2 | 3 | The Faduino is a DIY MIDI controller inspired in the Presonus Faderport. It has one motorized fader, a rotary encoder and several silicone buttons, plus two PCBs. One PCB contains all the pads, which are triggered by the silicone buttons, addressable LEDs, a multiplexer, and some other stuff. 4 | It can control natively any DAW, because it works with the MCU - or Mackie - Protocol, so it can work even in Pro Tools. With its motorized fader, rotary encoder, and LED buttons, you can change the track and the parameters in DAW get updated in the controller, moving the motorized fader, changing LEDs, etc. 5 | With the Faduino you can control any channel strip, transport, and many other things in the DAW! 6 | 7 | Complete Tutorial: Nerd Musician Pro (all the courses): https://go.musiconerd.com/nerd-musician-pro 8 | Tutorialo Completo (Português): Fazendo Música com Arduino: https://go.musiconerd.com/fazendo-musica-com-arduino 9 | Watch the YT video: https://youtu.be/M8krxn_5pIs 10 | 11 | by Gustavo Silveira 12 | gustavosilveira@musiconerd.com -------------------------------------------------------------------------------- /_Faduino_2023_10_18/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/_Faduino_2023_10_18/.DS_Store -------------------------------------------------------------------------------- /_Faduino_2023_10_18/A_NEOPIXEL.ino: -------------------------------------------------------------------------------- 1 | #ifdef USING_NEOPIXEL 2 | 3 | // Define LED_BRIGHTNESS variable 4 | const byte LED_BRIGHTNESS = 255; 5 | 6 | // Define DIM_BRIGHTNESS variable 7 | const byte DIM_BRIGHTNESS = LED_BRIGHTNESS / 2; 8 | 9 | // Define individual hue variables 10 | byte lightPurpleHue = 192; 11 | byte lightPurple2Hue = 205; 12 | byte redHue = 0; 13 | byte orangeHue = 30; 14 | byte yellowHue = 60; 15 | byte greenHue = 130; 16 | byte green2Hue = 115; 17 | byte cyanHue = 160; 18 | byte blueHue = 175; 19 | byte purpleHue = 5; 20 | byte magentaHue = 220; 21 | byte whiteHue = 0; // Full brightness white 22 | 23 | // Define a two-dimensional array of colors with full and half brightness 24 | 25 | CHSV colorArray[24][2] = { 26 | { CHSV(lightPurpleHue, 255, LED_BRIGHTNESS), CHSV(lightPurpleHue, 255, DIM_BRIGHTNESS) }, // (index 0) 27 | { CHSV(lightPurpleHue, 255, LED_BRIGHTNESS), CHSV(lightPurpleHue, 255, DIM_BRIGHTNESS) }, // (index 1) 28 | { CHSV(lightPurpleHue, 255, LED_BRIGHTNESS), CHSV(lightPurpleHue, 255, DIM_BRIGHTNESS) }, // (index 2) 29 | { CHSV(lightPurpleHue, 255, LED_BRIGHTNESS), CHSV(lightPurpleHue, 255, DIM_BRIGHTNESS) }, // (index 3) 30 | 31 | { CHSV(lightPurpleHue, 255, LED_BRIGHTNESS), CHSV(lightPurpleHue, 255, DIM_BRIGHTNESS) }, // (index 4) 32 | { CHSV(lightPurpleHue, 255, LED_BRIGHTNESS), CHSV(lightPurpleHue, 255, DIM_BRIGHTNESS) }, // (index 5) 33 | { CHSV(lightPurpleHue, 255, LED_BRIGHTNESS), CHSV(lightPurpleHue, 255, DIM_BRIGHTNESS) }, // (index 6) 34 | { CHSV(lightPurpleHue, 255, LED_BRIGHTNESS), CHSV(lightPurpleHue, 255, DIM_BRIGHTNESS) }, // (index 7) 35 | 36 | { CHSV(blueHue, 255, LED_BRIGHTNESS), CHSV(blueHue, 255, DIM_BRIGHTNESS) }, // (index 8) 37 | { CHSV(yellowHue, 255, LED_BRIGHTNESS), CHSV(yellowHue, 255, DIM_BRIGHTNESS) }, // (index 9) 38 | { CHSV(redHue, 255, LED_BRIGHTNESS), CHSV(redHue, 255, DIM_BRIGHTNESS) }, // (index 10) 39 | { CHSV(whiteHue, 0, LED_BRIGHTNESS), CHSV(whiteHue, 0, DIM_BRIGHTNESS) }, // (index 11) 40 | 41 | { CHSV(green2Hue, 255, LED_BRIGHTNESS), CHSV(green2Hue, 255, DIM_BRIGHTNESS) }, // (index 12) 42 | { CHSV(green2Hue, 255, LED_BRIGHTNESS), CHSV(green2Hue, 255, DIM_BRIGHTNESS) }, // (index 13) 43 | { CHSV(greenHue, 255, LED_BRIGHTNESS), CHSV(greenHue, 255, DIM_BRIGHTNESS) }, // (index 14) 44 | { CHSV(greenHue, 255, LED_BRIGHTNESS), CHSV(greenHue, 255, DIM_BRIGHTNESS) }, // (index 15) 45 | 46 | { CHSV(lightPurpleHue, 255, LED_BRIGHTNESS), CHSV(lightPurpleHue, 255, DIM_BRIGHTNESS) }, // (index 16) 47 | { CHSV(lightPurpleHue, 255, LED_BRIGHTNESS), CHSV(lightPurpleHue, 255, DIM_BRIGHTNESS) }, // (index 17) 48 | { CHSV(lightPurple2Hue, 255, LED_BRIGHTNESS), CHSV(lightPurple2Hue, 255, DIM_BRIGHTNESS) }, // (index 18) 49 | { CHSV(lightPurple2Hue, 255, LED_BRIGHTNESS), CHSV(lightPurple2Hue, 255, DIM_BRIGHTNESS) }, // (index 19) 50 | 51 | { CHSV(redHue, 255, LED_BRIGHTNESS), CHSV(redHue, 255, DIM_BRIGHTNESS) }, // (index 20) 52 | { CHSV(yellowHue, 255, LED_BRIGHTNESS), CHSV(yellowHue, 255, DIM_BRIGHTNESS) }, // (index 21) 53 | { CHSV(greenHue, 255, LED_BRIGHTNESS), CHSV(greenHue, 255, DIM_BRIGHTNESS) }, // (index 22) 54 | { CHSV(redHue, 255, LED_BRIGHTNESS), CHSV(redHue, 255, DIM_BRIGHTNESS) } // (index 23) 55 | }; 56 | 57 | 58 | 59 | 60 | // Define an array to map LED indices to pins 61 | int ledPin[] = { 0, 1, 2, 3, 62 | 4, 5, 6, 7, 63 | 10, 11, 12, 13, 64 | 14, 15, 16, 17, 65 | 18, 19, 20, 8, 66 | 21, 22, 23, 9 }; 67 | 68 | #endif 69 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/FUNCTIONS.ino: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////// 2 | // checks if it's greater than maximum value or less than then the minimum value 3 | int clipValue(int in, int minVal, int maxVal) { 4 | 5 | int out; 6 | 7 | minVal++; 8 | 9 | if (in > maxVal) { 10 | out = maxVal; 11 | } else if (in < minVal) { 12 | out = minVal - 1; 13 | } else { 14 | out = in; 15 | } 16 | 17 | return out; 18 | } 19 | 20 | int linToLog(int in_, int size_) { 21 | float a = in_ / size_; 22 | float b = sqrtf(a); 23 | float c = b * size_; 24 | 25 | return int(c); 26 | } 27 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/Z_LOOP.ino: -------------------------------------------------------------------------------- 1 | void loop() { 2 | 3 | // Serial.println(faderMin[0]); 4 | // Serial.println(faderMax[0]); 5 | 6 | #ifdef ATMEGA32U4 7 | 8 | // it will read MIDI incoming messages if using ATMEGA32U4 9 | MIDIread(); 10 | 11 | #endif 12 | 13 | #ifdef TEENSY 14 | 15 | // usbMIDI.read() needs to be called rapidly from loop(). When 16 | // each MIDI messages arrives, it return true. The message must 17 | // be fully processed before usbMIDI.read() is called again. 18 | if (usbMIDI.read()) { 19 | processMIDI(); 20 | } 21 | 22 | #endif 23 | 24 | #ifdef USING_BUTTONS 25 | 26 | // Get the current time 27 | unsigned long buttonsCurrentMillis = millis(); 28 | 29 | // Check if it's time to run the function 30 | if (buttonsCurrentMillis - buttonsPreviousMillis >= buttonsInterval) { 31 | // Save the last time the function was run 32 | buttonsPreviousMillis = buttonsCurrentMillis; 33 | // Call your function here 34 | buttons(); 35 | } 36 | 37 | #endif 38 | 39 | #ifdef USING_POTENTIOMETERS 40 | potentiometers(); 41 | #endif 42 | 43 | #ifdef USING_ENCODER 44 | encoders(); 45 | isEncoderMoving(); 46 | 47 | #endif 48 | 49 | ///////////////////////////////////////////// 50 | // MOTORIZED FADERS 51 | #ifdef USING_MOTORIZED_FADERS 52 | 53 | for (int i = 0; i < N_M_FADERS; i++) { 54 | 55 | touchLine[i] = capSense[i].capacitiveSensor(capSenseSpeed); 56 | checkTouch(i, touchLine[i]); 57 | 58 | int reading = analogRead(POT_ARDUINO_PIN[i]); 59 | responsivePot[i].update(reading); 60 | potCState[i] = responsivePot[i].getValue(); 61 | 62 | //int val = abs(actualPos - potCState[i]); 63 | 64 | updateFader(i, faderPos[i]); 65 | 66 | // if (val != prevMtrVal || recevingMidi == true) { 67 | // updateFader(i, faderPos[i]); 68 | 69 | // #ifdef DEBUG 70 | // Serial.print("i: "); 71 | // Serial.print(i); 72 | // Serial.print(", potCState: "); 73 | // Serial.print(potCState[i]); 74 | // Serial.print(", actualPos: "); 75 | // Serial.print(actualPos); 76 | // Serial.print(", val: "); 77 | // Serial.println(val); 78 | // #endif 79 | 80 | // prevMtrVal = val; 81 | // } 82 | } 83 | 84 | #endif // USING_MOTORIZED_FADERS 85 | } 86 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/Z_SETUP.ino: -------------------------------------------------------------------------------- 1 | void setup() { 2 | 3 | // Baud Rate 4 | // use if using with ATmega328 (uno, mega, nano...) 5 | // 31250 for MIDI class compliant | 115200 for Hairless MIDI 6 | 7 | #ifdef ATMEGA32U4 8 | 9 | #ifdef DEBUG 10 | // while (!Serial) { 11 | // Serial.println("waiting..."); 12 | // } 13 | Serial.println(); 14 | 15 | Serial.begin(115200); 16 | Serial.println("Debug mode"); 17 | Serial.println(); 18 | #endif 19 | 20 | #endif //ATMEGA32U4 21 | 22 | //delay(100); 23 | 24 | #ifdef USING_NEOPIXEL 25 | 26 | //////////////////////////////////// 27 | //FAST LED 28 | FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); 29 | 30 | // set master brightness control 31 | //FastLED.setBrightness(BRIGHTNESS); 32 | for (int i = 0; i < NUM_LEDS; i++) { 33 | leds[ledPin[i]] = colorArray[i][1]; 34 | } 35 | FastLED.show(); 36 | 37 | leds[ledPin[encoderSelect]] = CHSV(magentaHue, 255, LED_BRIGHTNESS); 38 | FastLED.show(); 39 | 40 | ////////////////////////////////////// 41 | 42 | #endif 43 | 44 | ////////////////////////////////////// 45 | // Buttons 46 | #ifdef USING_BUTTONS 47 | 48 | // Initialize buttons with pull up resistors 49 | for (int i = 0; i < N_BUTTONS_ARDUINO; i++) { 50 | pinMode(BUTTON_ARDUINO_PIN[i], INPUT_PULLUP); 51 | } 52 | 53 | #endif //USING_BUTTONS 54 | 55 | 56 | ////////////////////////////////////// 57 | // Potentiometer 58 | 59 | #ifdef USING_POTENTIOMETERS 60 | 61 | for (int i = 0; i < N_POTS; i++) { 62 | responsivePot[i] = ResponsiveAnalogRead(0, true, snapMultiplier); 63 | responsivePot[i].setAnalogResolution(potMax + 1); // sets the resolution 64 | } 65 | 66 | 67 | #endif 68 | 69 | ///////////////////////////////////////////// 70 | // Multiplexers 71 | 72 | #ifdef USING_MUX 73 | 74 | // Initialize the multiplexers 75 | for (int i = 0; i < N_MUX; i++) { 76 | mux[i].begin(); 77 | } 78 | //* Set each X pin as input_pullup (avoid floating behavior) 79 | pinMode(x1, INPUT_PULLUP); 80 | pinMode(x2, INPUT_PULLUP); 81 | 82 | #endif 83 | 84 | 85 | ///////////////////////////////////////////// 86 | // Encoders 87 | #ifdef USING_ENCODER 88 | 89 | for (int i = 0; i < N_ENCODERS; i++) { // if you want to start with a certain value use presets 90 | encoder[i].write(preset[0][i]); 91 | } 92 | 93 | for (int z = 0; z < N_ENCODER_MIDI_CHANNELS; z++) { 94 | for (int i = 0; i < N_ENCODERS; i++) { 95 | lastEncoderValue[z][i] = preset[z][i]; 96 | encoderValue[z][i] = preset[z][i]; 97 | } 98 | } 99 | 100 | #endif 101 | 102 | ///////////////////////////////////////////// 103 | // MOTORIZED FADERS 104 | #ifdef USING_MOTORIZED_FADERS 105 | 106 | for (int i = 0; i < N_M_FADERS; i++) { 107 | pinMode(motorUpPin[i], OUTPUT); 108 | pinMode(motorDownPin[i], OUTPUT); 109 | pinMode(faderSpeedPin[i], OUTPUT); 110 | analogWrite(faderSpeedPin[i], 255); 111 | 112 | //capSense[i] = CapacitiveSensor(touchSendPin[i], touchReceivePin[i]); 113 | 114 | calibrateFader(i); 115 | } 116 | 117 | #ifdef DEBUG 118 | Serial.println("Faders Calibrated"); 119 | Serial.println(); 120 | #endif 121 | 122 | #endif // USING_MOTORIZED_FADERS 123 | } 124 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/_Faduino_2023_10_18/libraries/.DS_Store -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Arduino-USB-Rename/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Will Toohey 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Arduino-USB-Rename/README.md: -------------------------------------------------------------------------------- 1 | # Arduino USB Rename 2 | 3 | Programatically rename a USB based Arduino without editing the board file. 4 | 5 | ```cpp 6 | #include "usb_rename.h" 7 | 8 | // Product name, Manufacturer, serial 9 | // Any argument can be left off, or NULL to keep the original Arduino name 10 | USBRename dummy = USBRename("USB Rename Demo", "mon.im", "1234"); 11 | ``` 12 | 13 | No other code is required - the USB stack handles the rest. 14 | 15 | ## Caveats 16 | Windows tends to consider a device with a different product name a new device - 17 | you may experience some difficulty during initial programming as it assigns 18 | a new serial port. 19 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Arduino-USB-Rename/demo/demo.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "usb_rename.h" 4 | 5 | USBRename dummy = USBRename("USB Rename Demo", "Nerd Musician", "abcd"); 6 | 7 | void setup() { 8 | } 9 | 10 | void loop() { 11 | // USB module does the hard work 12 | } 13 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Arduino-USB-Rename/usb_rename.cpp: -------------------------------------------------------------------------------- 1 | #include "usb_rename.h" 2 | 3 | static 4 | bool SendControl(u8 d) 5 | { 6 | return USB_SendControl(0, &d, 1) == 1; 7 | } 8 | 9 | // Send a USB descriptor string. The string is stored in PROGMEM as a 10 | // plain ASCII string but is sent out as UTF-16 with the correct 2-byte 11 | // prefix 12 | // taken from Arduino's USBCore.cpp 13 | static bool USB_SendStringDescriptor(const u8*string_P, u8 string_len, uint8_t flags) { 14 | SendControl(2 + string_len * 2); 15 | SendControl(3); 16 | bool pgm = flags & TRANSFER_PGM; 17 | for(u8 i = 0; i < string_len; i++) { 18 | bool r = SendControl(pgm ? pgm_read_byte(&string_P[i]) : string_P[i]); 19 | r &= SendControl(0); // high byte 20 | if(!r) { 21 | return false; 22 | } 23 | } 24 | return true; 25 | } 26 | 27 | USBRename::USBRename( 28 | const u8 *product_name = NULL, 29 | const u8 *manufacturer_name = NULL, 30 | const u8 *serial_num = NULL) : 31 | manufacturer_name(manufacturer_name), 32 | product_name(product_name), 33 | serial_num(serial_num), 34 | PluggableUSBModule(1, 1, epType) { 35 | PluggableUSB().plug(this); 36 | } 37 | 38 | int USBRename::getInterface(uint8_t* interfaceCount) { 39 | return 0; 40 | } 41 | 42 | int USBRename::getDescriptor(USBSetup& setup) 43 | { 44 | if(setup.wValueH != USB_STRING_DESCRIPTOR_TYPE) { 45 | return 0; 46 | } 47 | 48 | if(setup.wValueL == IMANUFACTURER && manufacturer_name) { 49 | return USB_SendStringDescriptor(manufacturer_name, strlen(manufacturer_name), 0); 50 | } else if (setup.wValueL == IPRODUCT && product_name) { 51 | return USB_SendStringDescriptor(product_name, strlen(product_name), 0); 52 | } else if (setup.wValueL == ISERIAL && serial_num) { 53 | return USB_SendStringDescriptor(serial_num, strlen(serial_num), 0); 54 | } 55 | 56 | return 0; 57 | } 58 | 59 | bool USBRename::setup(USBSetup& setup) 60 | { 61 | return false; 62 | } 63 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Arduino-USB-Rename/usb_rename.h: -------------------------------------------------------------------------------- 1 | #include "PluggableUSB.h" 2 | 3 | class USBRename : public PluggableUSBModule { 4 | public: 5 | USBRename( 6 | const u8 *product_name = NULL, 7 | const u8 *manufacturer_name = NULL, 8 | const u8 *serial_num = NULL); 9 | int getInterface(uint8_t* interfaceCount); 10 | int getDescriptor(USBSetup& setup); 11 | bool setup(USBSetup& setup); 12 | 13 | private: 14 | const u8 *manufacturer_name; 15 | const u8 *product_name; 16 | const u8 *serial_num; 17 | uint8_t epType[0]; 18 | }; 19 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Encoder/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/_Faduino_2023_10_18/libraries/Encoder/.DS_Store -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Encoder/Encoder.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "Encoder.h" 3 | 4 | // Yes, all the code is in the header file, to provide the user 5 | // configure options with #define (before they include it), and 6 | // to facilitate some crafty optimizations! 7 | 8 | Encoder_internal_state_t * Encoder::interruptArgs[]; 9 | 10 | 11 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Encoder/README.md: -------------------------------------------------------------------------------- 1 | # Encoder Library 2 | 3 | Encoder counts pulses from quadrature encoded signals, which are commonly available from rotary knobs, motor or shaft sensors and other position sensors. 4 | 5 | http://www.pjrc.com/teensy/td_libs_Encoder.html 6 | 7 | http://www.youtube.com/watch?v=2puhIong-cs 8 | 9 | ![Encoder Knobs Demo](http://www.pjrc.com/teensy/td_libs_Encoder_1.jpg) 10 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Encoder/docs/issue_template.md: -------------------------------------------------------------------------------- 1 | Please use this form only to report code defects or bugs. 2 | 3 | For any question, even questions directly pertaining to this code, post your question on the forums related to the board you are using. 4 | 5 | Arduino: forum.arduino.cc 6 | Teensy: forum.pjrc.com 7 | ESP8266: www.esp8266.com 8 | ESP32: www.esp32.com 9 | Adafruit Feather/Metro/Trinket: forums.adafruit.com 10 | Particle Photon: community.particle.io 11 | 12 | If you are experiencing trouble but not certain of the cause, or need help using this code, ask on the appropriate forum. This is not the place to ask for support or help, even directly related to this code. Only use this form you are certain you have discovered a defect in this code! 13 | 14 | Please verify the problem occurs when using the very latest version, using the newest version of Arduino and any other related software. 15 | 16 | 17 | ----------------------------- Remove above ----------------------------- 18 | 19 | 20 | 21 | ### Description 22 | 23 | Describe your problem. 24 | 25 | 26 | 27 | ### Steps To Reproduce Problem 28 | 29 | Please give detailed instructions needed for anyone to attempt to reproduce the problem. 30 | 31 | 32 | 33 | ### Hardware & Software 34 | 35 | Board 36 | Shields / modules used 37 | Arduino IDE version 38 | Teensyduino version (if using Teensy) 39 | Version info & package name (from Tools > Boards > Board Manager) 40 | Operating system & version 41 | Any other software or hardware? 42 | 43 | 44 | ### Arduino Sketch 45 | 46 | ```cpp 47 | // Change the code below by your sketch (please try to give the smallest code which demonstrates the problem) 48 | #include 49 | 50 | // libraries: give links/details so anyone can compile your code for the same result 51 | 52 | void setup() { 53 | } 54 | 55 | void loop() { 56 | } 57 | ``` 58 | 59 | 60 | ### Errors or Incorrect Output 61 | 62 | If you see any errors or incorrect output, please show it here. Please use copy & paste to give an exact copy of the message. Details matter, so please show (not merely describe) the actual message or error exactly as it appears. 63 | 64 | 65 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Encoder/examples/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/_Faduino_2023_10_18/libraries/Encoder/examples/.DS_Store -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Encoder/examples/Basic/Basic.pde: -------------------------------------------------------------------------------- 1 | /* Encoder Library - Basic Example 2 | * http://www.pjrc.com/teensy/td_libs_Encoder.html 3 | * 4 | * This example code is in the public domain. 5 | */ 6 | 7 | #include 8 | 9 | // Change these two numbers to the pins connected to your encoder. 10 | // Best Performance: both pins have interrupt capability 11 | // Good Performance: only the first pin has interrupt capability 12 | // Low Performance: neither pin has interrupt capability 13 | Encoder myEnc(5, 6); 14 | // avoid using pins with LEDs attached 15 | 16 | void setup() { 17 | Serial.begin(9600); 18 | Serial.println("Basic Encoder Test:"); 19 | } 20 | 21 | long oldPosition = -999; 22 | 23 | void loop() { 24 | long newPosition = myEnc.read(); 25 | if (newPosition != oldPosition) { 26 | oldPosition = newPosition; 27 | Serial.println(newPosition); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Encoder/examples/NoInterrupts/NoInterrupts.pde: -------------------------------------------------------------------------------- 1 | /* Encoder Library - NoInterrupts Example 2 | * http://www.pjrc.com/teensy/td_libs_Encoder.html 3 | * 4 | * This example code is in the public domain. 5 | */ 6 | 7 | // If you define ENCODER_DO_NOT_USE_INTERRUPTS *before* including 8 | // Encoder, the library will never use interrupts. This is mainly 9 | // useful to reduce the size of the library when you are using it 10 | // with pins that do not support interrupts. Without interrupts, 11 | // your program must call the read() function rapidly, or risk 12 | // missing changes in position. 13 | #define ENCODER_DO_NOT_USE_INTERRUPTS 14 | #include 15 | 16 | // Beware of Serial.print() speed. Without interrupts, if you 17 | // transmit too much data with Serial.print() it can slow your 18 | // reading from Encoder. Arduino 1.0 has improved transmit code. 19 | // Using the fastest baud rate also helps. Teensy has USB packet 20 | // buffering. But all boards can experience problems if you print 21 | // too much and fill up buffers. 22 | 23 | // Change these two numbers to the pins connected to your encoder. 24 | // With ENCODER_DO_NOT_USE_INTERRUPTS, no interrupts are ever 25 | // used, even if the pin has interrupt capability 26 | Encoder myEnc(5, 6); 27 | // avoid using pins with LEDs attached 28 | 29 | void setup() { 30 | Serial.begin(9600); 31 | Serial.println("Basic NoInterrupts Test:"); 32 | } 33 | 34 | long position = -999; 35 | 36 | void loop() { 37 | long newPos = myEnc.read(); 38 | if (newPos != position) { 39 | position = newPos; 40 | Serial.println(position); 41 | } 42 | // With any substantial delay added, Encoder can only track 43 | // very slow motion. You may uncomment this line to see 44 | // how badly a delay affects your encoder. 45 | //delay(50); 46 | } 47 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Encoder/examples/TwoKnobs/TwoKnobs.pde: -------------------------------------------------------------------------------- 1 | /* Encoder Library - TwoKnobs Example 2 | * http://www.pjrc.com/teensy/td_libs_Encoder.html 3 | * 4 | * This example code is in the public domain. 5 | */ 6 | 7 | #include 8 | 9 | // Change these pin numbers to the pins connected to your encoder. 10 | // Best Performance: both pins have interrupt capability 11 | // Good Performance: only the first pin has interrupt capability 12 | // Low Performance: neither pin has interrupt capability 13 | Encoder knobLeft(5, 6); 14 | Encoder knobRight(7, 8); 15 | // avoid using pins with LEDs attached 16 | 17 | void setup() { 18 | Serial.begin(9600); 19 | Serial.println("TwoKnobs Encoder Test:"); 20 | } 21 | 22 | long positionLeft = -999; 23 | long positionRight = -999; 24 | 25 | void loop() { 26 | long newLeft, newRight; 27 | newLeft = knobLeft.read(); 28 | newRight = knobRight.read(); 29 | if (newLeft != positionLeft || newRight != positionRight) { 30 | Serial.print("Left = "); 31 | Serial.print(newLeft); 32 | Serial.print(", Right = "); 33 | Serial.print(newRight); 34 | Serial.println(); 35 | positionLeft = newLeft; 36 | positionRight = newRight; 37 | } 38 | // if a character is sent from the serial monitor, 39 | // reset both back to zero. 40 | if (Serial.available()) { 41 | Serial.read(); 42 | Serial.println("Reset both knobs to zero"); 43 | knobLeft.write(0); 44 | knobRight.write(0); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Encoder/keywords.txt: -------------------------------------------------------------------------------- 1 | ENCODER_USE_INTERRUPTS LITERAL1 2 | ENCODER_OPTIMIZE_INTERRUPTS LITERAL1 3 | ENCODER_DO_NOT_USE_INTERRUPTS LITERAL1 4 | Encoder KEYWORD1 5 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Encoder/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Encoder", 3 | "keywords": "encoder, signal, pulse", 4 | "description": "Encoder counts pulses from quadrature encoded signals, which are commonly available from rotary knobs, motor or shaft sensors and other position sensors", 5 | "repository": 6 | { 7 | "type": "git", 8 | "url": "https://github.com/PaulStoffregen/Encoder.git" 9 | }, 10 | "frameworks": "arduino", 11 | "platforms": 12 | [ 13 | "atmelavr", 14 | "teensy" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Encoder/library.properties: -------------------------------------------------------------------------------- 1 | name=Encoder 2 | version=1.4.2 3 | author=Paul Stoffregen 4 | maintainer=Paul Stoffregen 5 | sentence=Counts quadrature pulses from rotary & linear position encoders. 6 | paragraph=Encoder counts pulses from quadrature encoded signals, which are commonly available from rotary knobs, motor or shaft sensors and other position sensors. 7 | category=Signal Input/Output 8 | url=http://www.pjrc.com/teensy/td_libs_Encoder.html 9 | architectures=* 10 | 11 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Encoder/utility/interrupt_config.h: -------------------------------------------------------------------------------- 1 | #if defined(__AVR__) 2 | 3 | #include 4 | #include 5 | 6 | #define attachInterrupt(num, func, mode) enableInterrupt(num) 7 | #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) 8 | #define SCRAMBLE_INT_ORDER(num) ((num < 4) ? num + 2 : ((num < 6) ? num - 4 : num)) 9 | #define DESCRAMBLE_INT_ORDER(num) ((num < 2) ? num + 4 : ((num < 6) ? num - 2 : num)) 10 | #else 11 | #define SCRAMBLE_INT_ORDER(num) (num) 12 | #define DESCRAMBLE_INT_ORDER(num) (num) 13 | #endif 14 | 15 | static void enableInterrupt(uint8_t num) 16 | { 17 | switch (DESCRAMBLE_INT_ORDER(num)) { 18 | #if defined(EICRA) && defined(EIMSK) 19 | case 0: 20 | EICRA = (EICRA & 0xFC) | 0x01; 21 | EIMSK |= 0x01; 22 | return; 23 | case 1: 24 | EICRA = (EICRA & 0xF3) | 0x04; 25 | EIMSK |= 0x02; 26 | return; 27 | case 2: 28 | EICRA = (EICRA & 0xCF) | 0x10; 29 | EIMSK |= 0x04; 30 | return; 31 | case 3: 32 | EICRA = (EICRA & 0x3F) | 0x40; 33 | EIMSK |= 0x08; 34 | return; 35 | #elif defined(MCUCR) && defined(GICR) 36 | case 0: 37 | MCUCR = (MCUCR & ~((1 << ISC00) | (1 << ISC01))) | (mode << ISC00); 38 | GICR |= (1 << INT0); 39 | return; 40 | case 1: 41 | MCUCR = (MCUCR & ~((1 << ISC10) | (1 << ISC11))) | (mode << ISC10); 42 | GICR |= (1 << INT1); 43 | return; 44 | #elif defined(MCUCR) && defined(GIMSK) 45 | case 0: 46 | MCUCR = (MCUCR & ~((1 << ISC00) | (1 << ISC01))) | (mode << ISC00); 47 | GIMSK |= (1 << INT0); 48 | return; 49 | case 1: 50 | MCUCR = (MCUCR & ~((1 << ISC10) | (1 << ISC11))) | (mode << ISC10); 51 | GIMSK |= (1 << INT1); 52 | return; 53 | #endif 54 | #if defined(EICRB) && defined(EIMSK) 55 | case 4: 56 | EICRB = (EICRB & 0xFC) | 0x01; 57 | EIMSK |= 0x10; 58 | return; 59 | case 5: 60 | EICRB = (EICRB & 0xF3) | 0x04; 61 | EIMSK |= 0x20; 62 | return; 63 | case 6: 64 | EICRB = (EICRB & 0xCF) | 0x10; 65 | EIMSK |= 0x40; 66 | return; 67 | case 7: 68 | EICRB = (EICRB & 0x3F) | 0x40; 69 | EIMSK |= 0x80; 70 | return; 71 | #endif 72 | } 73 | } 74 | 75 | #elif defined(__PIC32MX__) 76 | 77 | #ifdef ENCODER_OPTIMIZE_INTERRUPTS 78 | #undef ENCODER_OPTIMIZE_INTERRUPTS 79 | #endif 80 | 81 | #else 82 | 83 | #ifdef ENCODER_OPTIMIZE_INTERRUPTS 84 | #undef ENCODER_OPTIMIZE_INTERRUPTS 85 | #endif 86 | 87 | #endif 88 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/_Faduino_2023_10_18/libraries/FastLED/.DS_Store -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # FastLED 2 | # https://github.com/FastLED/FastLED 3 | # MIT License 4 | 5 | cmake_minimum_required(VERSION 3.5) 6 | 7 | set(FastLED_SRCS 8 | src/bitswap.cpp 9 | src/colorpalettes.cpp 10 | src/colorutils.cpp 11 | src/FastLED.cpp 12 | src/hsv2rgb.cpp 13 | src/lib8tion.cpp 14 | src/noise.cpp 15 | src/platforms.cpp 16 | src/power_mgt.cpp 17 | src/wiring.cpp 18 | src/platforms/esp/32/clockless_rmt_esp32.cpp 19 | ) 20 | 21 | idf_component_register(SRCS ${FastLED_SRCS} 22 | INCLUDE_DIRS "src" 23 | REQUIRES arduino) 24 | 25 | project(FastLED) 26 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 FastLED 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/ci/ci-compile: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # compile FastLED examples with platformio for various boards. This script 4 | # is usually run by the CI, but can also be run locally. Only dependency 5 | # is platformio. 6 | # 7 | # usage: 8 | # [BOARDS=boards] [EXAMPLES=examples] ./ci-compile 9 | # 10 | # e.g. 11 | # $ ./compile-ci 12 | # - compile all board/examples combinations 13 | # 14 | # $ BOARDS="esp32 esp01" EXAMPLES=Blink ./compile-ci 15 | # - compile only Blink example for the esp32 and esp8266 platforms 16 | # 17 | set -eou pipefail 18 | 19 | # List of examples that will be compiled by default 20 | EXAMPLES=${EXAMPLES:-"Blink ColorPalette ColorTemperature Cylon DemoReel100 21 | Fire2012 FirstLight Multiple/MultipleStripsInOneArray 22 | Multiple/ArrayOfLedArrays Noise NoisePlayground NoisePlusPalette Pacifica 23 | Pride2015 RGBCalibrate RGBSetDemo TwinkleFox XYMatrix"} 24 | 25 | # list of boards to compile for by default 26 | BOARDS=${BOARDS:-"uno esp32dev esp01 yun digix teensy30"} 27 | 28 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 29 | BOARD_OPTS=$(for b in $BOARDS; do echo -n "--board $b "; done) 30 | 31 | cd "$DIR/.." 32 | 33 | export PLATFORMIO_EXTRA_SCRIPTS="pre:lib/ci/ci-flags.py" 34 | 35 | for d in $EXAMPLES ; do 36 | echo "*** building example $d for $BOARDS ***" 37 | pio ci $BOARD_OPTS --lib=ci --lib=src "examples/$d/"*ino 38 | done 39 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/ci/ci-flags.py: -------------------------------------------------------------------------------- 1 | Import("env") 2 | 3 | env.Append(CXXFLAGS=["-Wno-register"]) 4 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/component.mk: -------------------------------------------------------------------------------- 1 | COMPONENT_ADD_INCLUDEDIRS := ./src src/platforms/esp/32 2 | COMPONENT_SRCDIRS := ./src src/platforms/esp/32 3 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/docs/include/fastled-docs.css: -------------------------------------------------------------------------------- 1 | /** 2 | FastLED Doxygen Stylesheet 3 | https://github.com/FastLED/FastLED/ 4 | */ 5 | 6 | /** Hide "Detailed Description" sub-header when the 7 | * detailed description is at the top of a page. 8 | */ 9 | .contents a#details + h2.groupheader { 10 | display:none; 11 | } 12 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/docs/include/fastled_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/_Faduino_2023_10_18/libraries/FastLED/docs/include/fastled_logo.png -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/docs/include/footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/docs/include/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | $projectname: $title 10 | $title 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | $treeview 20 | $search 21 | $mathjax 22 | 23 | 24 | $extrastylesheet 25 | 26 | 27 | 28 | 29 | 30 | 31 |
32 | 33 | 34 | 35 |
36 | 37 | 38 |
39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 51 | 52 | 53 | 54 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 |
47 |
$projectname $projectnumber 48 |
49 |
$projectbrief
50 |
55 |
$projectbrief
56 |
$searchbox
$searchbox
74 |
75 | 76 | 77 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/examples/AnalogOutput/AnalogOutput.ino: -------------------------------------------------------------------------------- 1 | /// @file AnalogOutput.ino 2 | /// @brief Demonstrates how to use FastLED color functions even without a "pixel-addressible" smart LED strip. 3 | /// @example AnalogOutput.ino 4 | 5 | #include 6 | 7 | // Example showing how to use FastLED color functions 8 | // even when you're NOT using a "pixel-addressible" smart LED strip. 9 | // 10 | // This example is designed to control an "analog" RGB LED strip 11 | // (or a single RGB LED) being driven by Arduino PWM output pins. 12 | // So this code never calls FastLED.addLEDs() or FastLED.show(). 13 | // 14 | // This example illustrates one way you can use just the portions 15 | // of FastLED that you need. In this case, this code uses just the 16 | // fast HSV color conversion code. 17 | // 18 | // In this example, the RGB values are output on three separate 19 | // 'analog' PWM pins, one for red, one for green, and one for blue. 20 | 21 | #define REDPIN 5 22 | #define GREENPIN 6 23 | #define BLUEPIN 3 24 | 25 | // showAnalogRGB: this is like FastLED.show(), but outputs on 26 | // analog PWM output pins instead of sending data to an intelligent, 27 | // pixel-addressable LED strip. 28 | // 29 | // This function takes the incoming RGB values and outputs the values 30 | // on three analog PWM output pins to the r, g, and b values respectively. 31 | void showAnalogRGB( const CRGB& rgb) 32 | { 33 | analogWrite(REDPIN, rgb.r ); 34 | analogWrite(GREENPIN, rgb.g ); 35 | analogWrite(BLUEPIN, rgb.b ); 36 | } 37 | 38 | 39 | 40 | // colorBars: flashes Red, then Green, then Blue, then Black. 41 | // Helpful for diagnosing if you've mis-wired which is which. 42 | void colorBars() 43 | { 44 | showAnalogRGB( CRGB::Red ); delay(500); 45 | showAnalogRGB( CRGB::Green ); delay(500); 46 | showAnalogRGB( CRGB::Blue ); delay(500); 47 | showAnalogRGB( CRGB::Black ); delay(500); 48 | } 49 | 50 | void loop() 51 | { 52 | static uint8_t hue; 53 | hue = hue + 1; 54 | // Use FastLED automatic HSV->RGB conversion 55 | showAnalogRGB( CHSV( hue, 255, 255) ); 56 | 57 | delay(20); 58 | } 59 | 60 | 61 | void setup() { 62 | pinMode(REDPIN, OUTPUT); 63 | pinMode(GREENPIN, OUTPUT); 64 | pinMode(BLUEPIN, OUTPUT); 65 | 66 | // Flash the "hello" color sequence: R, G, B, black. 67 | colorBars(); 68 | } 69 | 70 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/examples/Cylon/Cylon.ino: -------------------------------------------------------------------------------- 1 | /// @file Cylon.ino 2 | /// @brief An animation that moves a single LED back and forth (Larson Scanner effect) 3 | /// @example Cylon.ino 4 | 5 | #include 6 | 7 | // How many leds in your strip? 8 | #define NUM_LEDS 64 9 | 10 | // For led chips like Neopixels, which have a data line, ground, and power, you just 11 | // need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock, 12 | // ground, and power), like the LPD8806, define both DATA_PIN and CLOCK_PIN 13 | #define DATA_PIN 2 14 | #define CLOCK_PIN 13 15 | 16 | // Define the array of leds 17 | CRGB leds[NUM_LEDS]; 18 | 19 | void setup() { 20 | Serial.begin(57600); 21 | Serial.println("resetting"); 22 | FastLED.addLeds(leds,NUM_LEDS); 23 | FastLED.setBrightness(84); 24 | } 25 | 26 | void fadeall() { for(int i = 0; i < NUM_LEDS; i++) { leds[i].nscale8(250); } } 27 | 28 | void loop() { 29 | static uint8_t hue = 0; 30 | Serial.print("x"); 31 | // First slide the led in one direction 32 | for(int i = 0; i < NUM_LEDS; i++) { 33 | // Set the i'th led to red 34 | leds[i] = CHSV(hue++, 255, 255); 35 | // Show the leds 36 | FastLED.show(); 37 | // now that we've shown the leds, reset the i'th led to black 38 | // leds[i] = CRGB::Black; 39 | fadeall(); 40 | // Wait a little bit before we loop around and do it again 41 | delay(10); 42 | } 43 | Serial.print("x"); 44 | 45 | // Now go in the other direction. 46 | for(int i = (NUM_LEDS)-1; i >= 0; i--) { 47 | // Set the i'th led to red 48 | leds[i] = CHSV(hue++, 255, 255); 49 | // Show the leds 50 | FastLED.show(); 51 | // now that we've shown the leds, reset the i'th led to black 52 | // leds[i] = CRGB::Black; 53 | fadeall(); 54 | // Wait a little bit before we loop around and do it again 55 | delay(10); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/examples/Multiple/ArrayOfLedArrays/ArrayOfLedArrays.ino: -------------------------------------------------------------------------------- 1 | /// @file ArrayOfLedArrays.ino 2 | /// @brief Set up three LED strips, all running from an array of arrays 3 | /// @example ArrayOfLedArrays.ino 4 | 5 | // ArrayOfLedArrays - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on 6 | // using multiple controllers. In this example, we're going to set up three NEOPIXEL strips on three 7 | // different pins, each strip getting its own CRGB array to be played with, only this time they're going 8 | // to be all parts of an array of arrays. 9 | 10 | #include 11 | 12 | #define NUM_STRIPS 3 13 | #define NUM_LEDS_PER_STRIP 60 14 | CRGB leds[NUM_STRIPS][NUM_LEDS_PER_STRIP]; 15 | 16 | // For mirroring strips, all the "special" stuff happens just in setup. We 17 | // just addLeds multiple times, once for each strip 18 | void setup() { 19 | // tell FastLED there's 60 NEOPIXEL leds on pin 2 20 | FastLED.addLeds(leds[0], NUM_LEDS_PER_STRIP); 21 | 22 | // tell FastLED there's 60 NEOPIXEL leds on pin 3 23 | FastLED.addLeds(leds[1], NUM_LEDS_PER_STRIP); 24 | 25 | // tell FastLED there's 60 NEOPIXEL leds on pin 4 26 | FastLED.addLeds(leds[2], NUM_LEDS_PER_STRIP); 27 | 28 | } 29 | 30 | void loop() { 31 | // This outer loop will go over each strip, one at a time 32 | for(int x = 0; x < NUM_STRIPS; x++) { 33 | // This inner loop will go over each led in the current strip, one at a time 34 | for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) { 35 | leds[x][i] = CRGB::Red; 36 | FastLED.show(); 37 | leds[x][i] = CRGB::Black; 38 | delay(100); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/examples/Multiple/MirroringSample/MirroringSample.ino: -------------------------------------------------------------------------------- 1 | /// @file MirroringSample.ino 2 | /// @brief Demonstrates how to use multiple LED strips, each with the same data 3 | /// @example MirroringSample.ino 4 | 5 | // MirroringSample - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on 6 | // using multiple controllers. In this example, we're going to set up four NEOPIXEL strips on four 7 | // different pins, and show the same thing on all four of them, a simple bouncing dot/cyclon type pattern 8 | 9 | #include 10 | 11 | #define NUM_LEDS_PER_STRIP 60 12 | CRGB leds[NUM_LEDS_PER_STRIP]; 13 | 14 | // For mirroring strips, all the "special" stuff happens just in setup. We 15 | // just addLeds multiple times, once for each strip 16 | void setup() { 17 | // tell FastLED there's 60 NEOPIXEL leds on pin 4 18 | FastLED.addLeds(leds, NUM_LEDS_PER_STRIP); 19 | 20 | // tell FastLED there's 60 NEOPIXEL leds on pin 5 21 | FastLED.addLeds(leds, NUM_LEDS_PER_STRIP); 22 | 23 | // tell FastLED there's 60 NEOPIXEL leds on pin 6 24 | FastLED.addLeds(leds, NUM_LEDS_PER_STRIP); 25 | 26 | // tell FastLED there's 60 NEOPIXEL leds on pin 7 27 | FastLED.addLeds(leds, NUM_LEDS_PER_STRIP); 28 | } 29 | 30 | void loop() { 31 | for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) { 32 | // set our current dot to red 33 | leds[i] = CRGB::Red; 34 | FastLED.show(); 35 | // clear our current dot before we move on 36 | leds[i] = CRGB::Black; 37 | delay(100); 38 | } 39 | 40 | for(int i = NUM_LEDS_PER_STRIP-1; i >= 0; i--) { 41 | // set our current dot to red 42 | leds[i] = CRGB::Red; 43 | FastLED.show(); 44 | // clear our current dot before we move on 45 | leds[i] = CRGB::Black; 46 | delay(100); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/examples/Multiple/MultiArrays/MultiArrays.ino: -------------------------------------------------------------------------------- 1 | /// @file MultiArrays.ino 2 | /// @brief Demonstrates how to use multiple LED strips, each with their own data 3 | /// @example MultiArrays.ino 4 | 5 | // MultiArrays - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on 6 | // using multiple controllers. In this example, we're going to set up three NEOPIXEL strips on three 7 | // different pins, each strip getting its own CRGB array to be played with 8 | 9 | #include 10 | 11 | #define NUM_LEDS_PER_STRIP 60 12 | CRGB redLeds[NUM_LEDS_PER_STRIP]; 13 | CRGB greenLeds[NUM_LEDS_PER_STRIP]; 14 | CRGB blueLeds[NUM_LEDS_PER_STRIP]; 15 | 16 | // For mirroring strips, all the "special" stuff happens just in setup. We 17 | // just addLeds multiple times, once for each strip 18 | void setup() { 19 | // tell FastLED there's 60 NEOPIXEL leds on pin 10 20 | FastLED.addLeds(redLeds, NUM_LEDS_PER_STRIP); 21 | 22 | // tell FastLED there's 60 NEOPIXEL leds on pin 11 23 | FastLED.addLeds(greenLeds, NUM_LEDS_PER_STRIP); 24 | 25 | // tell FastLED there's 60 NEOPIXEL leds on pin 12 26 | FastLED.addLeds(blueLeds, NUM_LEDS_PER_STRIP); 27 | 28 | } 29 | 30 | void loop() { 31 | for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) { 32 | // set our current dot to red, green, and blue 33 | redLeds[i] = CRGB::Red; 34 | greenLeds[i] = CRGB::Green; 35 | blueLeds[i] = CRGB::Blue; 36 | FastLED.show(); 37 | // clear our current dot before we move on 38 | redLeds[i] = CRGB::Black; 39 | greenLeds[i] = CRGB::Black; 40 | blueLeds[i] = CRGB::Black; 41 | delay(100); 42 | } 43 | 44 | for(int i = NUM_LEDS_PER_STRIP-1; i >= 0; i--) { 45 | // set our current dot to red, green, and blue 46 | redLeds[i] = CRGB::Red; 47 | greenLeds[i] = CRGB::Green; 48 | blueLeds[i] = CRGB::Blue; 49 | FastLED.show(); 50 | // clear our current dot before we move on 51 | redLeds[i] = CRGB::Black; 52 | greenLeds[i] = CRGB::Black; 53 | blueLeds[i] = CRGB::Black; 54 | delay(100); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/examples/Multiple/MultipleStripsInOneArray/MultipleStripsInOneArray.ino: -------------------------------------------------------------------------------- 1 | /// @file MultipleStripsInOneArray.ino 2 | /// @brief Demonstrates how to use multiple LED strips, each with their own data in one shared array 3 | /// @example MultipleStripsInOneArray.ino 4 | 5 | // MultipleStripsInOneArray - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on 6 | // using multiple controllers. In this example, we're going to set up four NEOPIXEL strips on three 7 | // different pins, each strip will be referring to a different part of the single led array 8 | 9 | #include 10 | 11 | #define NUM_STRIPS 3 12 | #define NUM_LEDS_PER_STRIP 60 13 | #define NUM_LEDS NUM_LEDS_PER_STRIP * NUM_STRIPS 14 | 15 | CRGB leds[NUM_STRIPS * NUM_LEDS_PER_STRIP]; 16 | 17 | // For mirroring strips, all the "special" stuff happens just in setup. We 18 | // just addLeds multiple times, once for each strip 19 | void setup() { 20 | // tell FastLED there's 60 NEOPIXEL leds on pin 2, starting at index 0 in the led array 21 | FastLED.addLeds(leds, 0, NUM_LEDS_PER_STRIP); 22 | 23 | // tell FastLED there's 60 NEOPIXEL leds on pin 3, starting at index 60 in the led array 24 | FastLED.addLeds(leds, NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP); 25 | 26 | // tell FastLED there's 60 NEOPIXEL leds on pin 4, starting at index 120 in the led array 27 | FastLED.addLeds(leds, 2 * NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP); 28 | 29 | } 30 | 31 | void loop() { 32 | for(int i = 0; i < NUM_LEDS; i++) { 33 | leds[i] = CRGB::Red; 34 | FastLED.show(); 35 | leds[i] = CRGB::Black; 36 | delay(100); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/examples/Multiple/OctoWS2811Demo/OctoWS2811Demo.ino: -------------------------------------------------------------------------------- 1 | /// @file OctoWS2811Demo.ino 2 | /// @brief Demonstrates how to use OctoWS2811 output 3 | /// @example OctoWS2811Demo.ino 4 | 5 | #define USE_OCTOWS2811 6 | #include 7 | #include 8 | 9 | #define NUM_LEDS_PER_STRIP 64 10 | #define NUM_STRIPS 8 11 | 12 | CRGB leds[NUM_STRIPS * NUM_LEDS_PER_STRIP]; 13 | 14 | // Pin layouts on the teensy 3: 15 | // OctoWS2811: 2,14,7,8,6,20,21,5 16 | 17 | void setup() { 18 | FastLED.addLeds(leds, NUM_LEDS_PER_STRIP); 19 | FastLED.setBrightness(32); 20 | } 21 | 22 | void loop() { 23 | static uint8_t hue = 0; 24 | for(int i = 0; i < NUM_STRIPS; i++) { 25 | for(int j = 0; j < NUM_LEDS_PER_STRIP; j++) { 26 | leds[(i*NUM_LEDS_PER_STRIP) + j] = CHSV((32*i) + hue+j,192,255); 27 | } 28 | } 29 | 30 | // Set the first n leds on each strip to show which strip it is 31 | for(int i = 0; i < NUM_STRIPS; i++) { 32 | for(int j = 0; j <= i; j++) { 33 | leds[(i*NUM_LEDS_PER_STRIP) + j] = CRGB::Red; 34 | } 35 | } 36 | 37 | hue++; 38 | 39 | FastLED.show(); 40 | FastLED.delay(10); 41 | } 42 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/examples/Multiple/ParallelOutputDemo/ParallelOutputDemo.ino: -------------------------------------------------------------------------------- 1 | /// @file ParallelOutputDemo.ino 2 | /// @brief Demonstrates how to write to multiple strips simultaneously 3 | /// @example ParallelOutputDemo.ino 4 | 5 | #include 6 | 7 | #define NUM_LEDS_PER_STRIP 16 8 | // Note: this can be 12 if you're using a teensy 3 and don't mind soldering the pads on the back 9 | #define NUM_STRIPS 16 10 | 11 | CRGB leds[NUM_STRIPS * NUM_LEDS_PER_STRIP]; 12 | 13 | // Pin layouts on the teensy 3/3.1: 14 | // WS2811_PORTD: 2,14,7,8,6,20,21,5 15 | // WS2811_PORTC: 15,22,23,9,10,13,11,12,28,27,29,30 (these last 4 are pads on the bottom of the teensy) 16 | // WS2811_PORTDC: 2,14,7,8,6,20,21,5,15,22,23,9,10,13,11,12 - 16 way parallel 17 | // 18 | // Pin layouts on the due 19 | // WS2811_PORTA: 69,68,61,60,59,100,58,31 (note: pin 100 only available on the digix) 20 | // WS2811_PORTB: 90,91,92,93,94,95,96,97 (note: only available on the digix) 21 | // WS2811_PORTD: 25,26,27,28,14,15,29,11 22 | // 23 | 24 | 25 | // IBCC outputs; 26 | 27 | void setup() { 28 | delay(5000); 29 | Serial.begin(57600); 30 | Serial.println("Starting..."); 31 | // FastLED.addLeds(leds, NUM_LEDS_PER_STRIP); 32 | // FastLED.addLeds(leds, NUM_LEDS_PER_STRIP); 33 | // FastLED.addLeds(leds, NUM_LEDS_PER_STRIP).setCorrection(TypicalLEDStrip); 34 | FastLED.addLeds(leds, NUM_LEDS_PER_STRIP); 35 | 36 | // Teensy 4 parallel output example 37 | // FastLED.addLeds(leds,NUM_LEDS_PER_STRIP); 38 | } 39 | 40 | void loop() { 41 | Serial.println("Loop...."); 42 | static uint8_t hue = 0; 43 | for(int i = 0; i < NUM_STRIPS; i++) { 44 | for(int j = 0; j < NUM_LEDS_PER_STRIP; j++) { 45 | leds[(i*NUM_LEDS_PER_STRIP) + j] = CHSV((32*i) + hue+j,192,255); 46 | } 47 | } 48 | 49 | // Set the first n leds on each strip to show which strip it is 50 | for(int i = 0; i < NUM_STRIPS; i++) { 51 | for(int j = 0; j <= i; j++) { 52 | leds[(i*NUM_LEDS_PER_STRIP) + j] = CRGB::Red; 53 | } 54 | } 55 | 56 | hue++; 57 | 58 | FastLED.show(); 59 | // FastLED.delay(100); 60 | } 61 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/examples/NoisePlayground/NoisePlayground.ino: -------------------------------------------------------------------------------- 1 | /// @file NoisePlayground.ino 2 | /// @brief Demonstrates how to use noise generation on a 2D LED matrix 3 | /// @example NoisePlayground.ino 4 | 5 | #include 6 | 7 | // Params for width and height 8 | const uint8_t kMatrixWidth = 16; 9 | const uint8_t kMatrixHeight = 16; 10 | 11 | #define NUM_LEDS (kMatrixWidth * kMatrixHeight) 12 | 13 | // Param for different pixel layouts 14 | #define kMatrixSerpentineLayout true 15 | 16 | // led array 17 | CRGB leds[kMatrixWidth * kMatrixHeight]; 18 | 19 | // x,y, & time values 20 | uint32_t x,y,v_time,hue_time,hxy; 21 | 22 | // Play with the values of the variables below and see what kinds of effects they 23 | // have! More octaves will make things slower. 24 | 25 | // how many octaves to use for the brightness and hue functions 26 | uint8_t octaves=1; 27 | uint8_t hue_octaves=3; 28 | 29 | // the 'distance' between points on the x and y axis 30 | int xscale=57771; 31 | int yscale=57771; 32 | 33 | // the 'distance' between x/y points for the hue noise 34 | int hue_scale=1; 35 | 36 | // how fast we move through time & hue noise 37 | int time_speed=1111; 38 | int hue_speed=31; 39 | 40 | // adjust these values to move along the x or y axis between frames 41 | int x_speed=331; 42 | int y_speed=1111; 43 | 44 | void loop() { 45 | // fill the led array 2/16-bit noise values 46 | fill_2dnoise16(leds, kMatrixWidth, kMatrixHeight, kMatrixSerpentineLayout, 47 | octaves,x,xscale,y,yscale,v_time, 48 | hue_octaves,hxy,hue_scale,hxy,hue_scale,hue_time, false); 49 | 50 | FastLED.show(); 51 | 52 | // adjust the intra-frame time values 53 | x += x_speed; 54 | y += y_speed; 55 | v_time += time_speed; 56 | hue_time += hue_speed; 57 | // delay(50); 58 | } 59 | 60 | 61 | void setup() { 62 | // initialize the x/y and time values 63 | random16_set_seed(8934); 64 | random16_add_entropy(analogRead(3)); 65 | 66 | Serial.begin(57600); 67 | Serial.println("resetting!"); 68 | 69 | delay(3000); 70 | FastLED.addLeds(leds,NUM_LEDS); 71 | FastLED.setBrightness(96); 72 | 73 | hxy = (uint32_t)((uint32_t)random16() << 16) + (uint32_t)random16(); 74 | x = (uint32_t)((uint32_t)random16() << 16) + (uint32_t)random16(); 75 | y = (uint32_t)((uint32_t)random16() << 16) + (uint32_t)random16(); 76 | v_time = (uint32_t)((uint32_t)random16() << 16) + (uint32_t)random16(); 77 | hue_time = (uint32_t)((uint32_t)random16() << 16) + (uint32_t)random16(); 78 | 79 | } 80 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/examples/Pride2015/Pride2015.ino: -------------------------------------------------------------------------------- 1 | /// @file Pride2015.ino 2 | /// @brief Animated, ever-changing rainbows. 3 | /// @example Pride2015.ino 4 | 5 | #include "FastLED.h" 6 | 7 | // Pride2015 8 | // Animated, ever-changing rainbows. 9 | // by Mark Kriegsman 10 | 11 | #if FASTLED_VERSION < 3001000 12 | #error "Requires FastLED 3.1 or later; check github for latest code." 13 | #endif 14 | 15 | #define DATA_PIN 3 16 | //#define CLK_PIN 4 17 | #define LED_TYPE WS2811 18 | #define COLOR_ORDER GRB 19 | #define NUM_LEDS 200 20 | #define BRIGHTNESS 255 21 | 22 | CRGB leds[NUM_LEDS]; 23 | 24 | 25 | void setup() { 26 | delay(3000); // 3 second delay for recovery 27 | 28 | // tell FastLED about the LED strip configuration 29 | FastLED.addLeds(leds, NUM_LEDS) 30 | .setCorrection(TypicalLEDStrip) 31 | .setDither(BRIGHTNESS < 255); 32 | 33 | // set master brightness control 34 | FastLED.setBrightness(BRIGHTNESS); 35 | } 36 | 37 | 38 | void loop() 39 | { 40 | pride(); 41 | FastLED.show(); 42 | } 43 | 44 | 45 | // This function draws rainbows with an ever-changing, 46 | // widely-varying set of parameters. 47 | void pride() 48 | { 49 | static uint16_t sPseudotime = 0; 50 | static uint16_t sLastMillis = 0; 51 | static uint16_t sHue16 = 0; 52 | 53 | uint8_t sat8 = beatsin88( 87, 220, 250); 54 | uint8_t brightdepth = beatsin88( 341, 96, 224); 55 | uint16_t brightnessthetainc16 = beatsin88( 203, (25 * 256), (40 * 256)); 56 | uint8_t msmultiplier = beatsin88(147, 23, 60); 57 | 58 | uint16_t hue16 = sHue16;//gHue * 256; 59 | uint16_t hueinc16 = beatsin88(113, 1, 3000); 60 | 61 | uint16_t ms = millis(); 62 | uint16_t deltams = ms - sLastMillis ; 63 | sLastMillis = ms; 64 | sPseudotime += deltams * msmultiplier; 65 | sHue16 += deltams * beatsin88( 400, 5,9); 66 | uint16_t brightnesstheta16 = sPseudotime; 67 | 68 | for( uint16_t i = 0 ; i < NUM_LEDS; i++) { 69 | hue16 += hueinc16; 70 | uint8_t hue8 = hue16 / 256; 71 | 72 | brightnesstheta16 += brightnessthetainc16; 73 | uint16_t b16 = sin16( brightnesstheta16 ) + 32768; 74 | 75 | uint16_t bri16 = (uint32_t)((uint32_t)b16 * (uint32_t)b16) / 65536; 76 | uint8_t bri8 = (uint32_t)(((uint32_t)bri16) * brightdepth) / 65536; 77 | bri8 += (255 - brightdepth); 78 | 79 | CRGB newcolor = CHSV( hue8, sat8, bri8); 80 | 81 | uint16_t pixelnumber = i; 82 | pixelnumber = (NUM_LEDS-1) - pixelnumber; 83 | 84 | nblend( leds[pixelnumber], newcolor, 64); 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/examples/RGBSetDemo/RGBSetDemo.ino: -------------------------------------------------------------------------------- 1 | /// @file RGBSetDemo.ino 2 | /// @brief Demonstrates how to create an LED group with CRGBArray 3 | /// @example RGBSetDemo.ino 4 | 5 | #include 6 | #define NUM_LEDS 40 7 | 8 | CRGBArray leds; 9 | 10 | void setup() { FastLED.addLeds(leds, NUM_LEDS); } 11 | 12 | void loop(){ 13 | static uint8_t hue; 14 | for(int i = 0; i < NUM_LEDS/2; i++) { 15 | // fade everything out 16 | leds.fadeToBlackBy(40); 17 | 18 | // let's set an led value 19 | leds[i] = CHSV(hue++,255,255); 20 | 21 | // now, let's first 20 leds to the top 20 leds, 22 | leds(NUM_LEDS/2,NUM_LEDS-1) = leds(NUM_LEDS/2 - 1 ,0); 23 | FastLED.delay(33); 24 | } 25 | } 26 | 27 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/extras/AppleII.s65: -------------------------------------------------------------------------------- 1 | KBD = $C000 ;Read keydown 2 | KBDSTRB = $C010 ;Reset keybd 3 | 4 | SPKR = $C030 ;Toggle speaker 5 | 6 | ; TTL digital output pins on 7 | ; 16-pin DIP game connector 8 | SETAN0 = $C058 9 | CLRAN0 = $C059 10 | SETAN1 = $C05A 11 | CLRAN1 = $C05B 12 | SETAN2 = $C05C 13 | CLRAN2 = $C05D 14 | SETAN3 = $C05E 15 | CLRAN3 = $C05F 16 | 17 | PIN12ON = CLRAN3 18 | PIN12OFF= SETAN3 19 | PIN13ON = CLRAN2 20 | PIN13OFF= SETAN2 21 | PIN14ON = CLRAN1 22 | PIN14OFF= SETAN1 23 | PIN15ON = CLRAN0 24 | PIN15OFF= SETAN0 25 | 26 | ;Special for pin 5, except on //gs 27 | C040STROBE = $C040 28 | PIN5STROBE = C040STROBE 29 | 30 | SolidApple = $C062 ; read SW1 or SA 31 | OpenApple = $C061 ; read SW0 or OA 32 | 33 | VBL = $C019 ; vertical blanking 34 | 35 | WAIT = $FCA8 ; wait a little while 36 | 37 | CROUT = $FD8E ; print a CR 38 | PRBYTE = $FDDA ; print a hex byte 39 | 40 | 41 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/extras/RainbowDemo.bin.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/_Faduino_2023_10_18/libraries/FastLED/extras/RainbowDemo.bin.zip -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/extras/RainbowDemo.s65: -------------------------------------------------------------------------------- 1 | ; "Rainbow with glitter" demo 2 | ; for "FastLED6502" 3 | ; 4 | ; Runs on an Apple ][, ][+, //e, or //gs 5 | ; 6 | ; Supports APA102, Adafruit DotStar, 7 | ; LPD8806, and WS2801 LED strips. 8 | ; 9 | ; LED strip connects to game port pins, 10 | ; see FastLED6502.s65 for details. 11 | ; 12 | ; Mark Kriegsman, February 2015 13 | 14 | #define NUM_LEDS 100 15 | #define BRIGHTNESS 64 16 | #define CHIPSET APA102 17 | #define DATA_PIN 14 18 | #define CLOCK_PIN 5 19 | 20 | * = $6000 21 | 22 | #include "FastLED6502.s65" 23 | #include "AppleII.s65" 24 | 25 | gHue .byt 0 26 | gHueDelta .byt 17 27 | gHueSpeed .byt 7 28 | 29 | 30 | Setup 31 | lda #0 32 | sta gHue 33 | 34 | Loop 35 | lda gHue 36 | clc 37 | adc gHueSpeed 38 | sta gHue 39 | ldx gHue 40 | ldy gHueDelta 41 | ; Fill RGB array with HSV rainbow 42 | jsr FastLED_FillRainbow_XY 43 | ; Use master brightness control 44 | lda #BRIGHTNESS 45 | sta FastLED_Brightness 46 | CheckOpenApple 47 | bit OpenApple 48 | bpl CheckSolidApple 49 | ; Add glitter if requested 50 | jsr AddGlitter 51 | CheckSolidApple 52 | bit SolidApple 53 | bpl DoDisplay 54 | ; Pulse brightness if requested 55 | jsr PulseBrightness 56 | DoDisplay 57 | ; This is where the magic happens 58 | jsr FastLED_Show 59 | jmp Loop 60 | 61 | 62 | AddGlitter 63 | ldy #3 64 | MaybeAdd1Glitter 65 | jsr FastLED_Random8 66 | cmp FastLED_NumPixels 67 | bcs SkipThis1Glitter 68 | tax 69 | lda #$FF 70 | sta ledsR,x 71 | sta ledsG,x 72 | sta ledsB,x 73 | SkipThis1Glitter 74 | dey 75 | bne MaybeAdd1Glitter 76 | rts 77 | 78 | 79 | PulseBrightness 80 | lda #13 81 | jsr FastLED_Beat8 82 | clc 83 | adc #12 84 | bcc PulseBright1 85 | lda #$FF 86 | PulseBright1 87 | sta FastLED_Brightness 88 | rts 89 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "FastLED", 3 | "description": "FastLED is a library for programming addressable rgb led strips (APA102/Dotstar, WS2812/Neopixel, LPD8806, and a dozen others) acting both as a driver and as a library for color management and fast math.", 4 | "keywords": "led,noise,rgb,math,fast", 5 | "authors": [ 6 | { 7 | "name": "Daniel Garcia", 8 | "url": "https://github.com/focalintent", 9 | "maintainer": true 10 | }, 11 | { 12 | "name": "Mark Kriegsman", 13 | "url": "https://github.com/kriegsman", 14 | "maintainer": true 15 | }, 16 | { 17 | "name": "Sam Guyer", 18 | "url": "https://github.com/samguyer", 19 | "maintainer": true 20 | }, 21 | { 22 | "name": "Jason Coon", 23 | "url": "https://github.com/jasoncoon", 24 | "maintainer": true 25 | }, 26 | { 27 | "name": "Josh Huber", 28 | "url": "https://github.com/uberjay", 29 | "maintainer": true 30 | } 31 | ], 32 | "repository": { 33 | "type": "git", 34 | "url": "https://github.com/FastLED/FastLED.git" 35 | }, 36 | "version": "3.6.0", 37 | "license": "MIT", 38 | "homepage": "http://fastled.io", 39 | "frameworks": "arduino", 40 | "platforms": "atmelavr, atmelsam, freescalekinetis, nordicnrf51, nxplpc, ststm32, teensy, espressif8266, espressif32, nordicnrf52", 41 | "headers": "FastLED.h", 42 | "export": { 43 | "exclude": [ 44 | "docs", 45 | "extras" 46 | ] 47 | }, 48 | "build": { 49 | "srcFilter": [ 50 | "+<*.c>", 51 | "+<*.cpp>", 52 | "+<*.h>", 53 | "+" 54 | ], 55 | "libArchive": false 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/library.properties: -------------------------------------------------------------------------------- 1 | name=FastLED 2 | version=3.6.0 3 | author=Daniel Garcia 4 | maintainer=Daniel Garcia 5 | sentence=Multi-platform library for controlling dozens of different types of LEDs along with optimized math, effect, and noise functions. 6 | paragraph=Multi-platform library for controlling dozens of different types of LEDs along with optimized math, effect, and noise functions. 7 | category=Display 8 | url=https://github.com/FastLED/FastLED 9 | architectures=* 10 | includes=FastLED.h 11 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/bitswap.cpp: -------------------------------------------------------------------------------- 1 | /// @file bitswap.cpp 2 | /// Functions for doing a rotation of bits/bytes used by parallel output 3 | 4 | /// Disables pragma messages and warnings 5 | #define FASTLED_INTERNAL 6 | 7 | #include "FastLED.h" 8 | 9 | void transpose8x1_noinline(unsigned char *A, unsigned char *B) { 10 | uint32_t x, y, t; 11 | 12 | // Load the array and pack it into x and y. 13 | y = *(unsigned int*)(A); 14 | x = *(unsigned int*)(A+4); 15 | 16 | // pre-transform x 17 | t = (x ^ (x >> 7)) & 0x00AA00AA; x = x ^ t ^ (t << 7); 18 | t = (x ^ (x >>14)) & 0x0000CCCC; x = x ^ t ^ (t <<14); 19 | 20 | // pre-transform y 21 | t = (y ^ (y >> 7)) & 0x00AA00AA; y = y ^ t ^ (t << 7); 22 | t = (y ^ (y >>14)) & 0x0000CCCC; y = y ^ t ^ (t <<14); 23 | 24 | // final transform 25 | t = (x & 0xF0F0F0F0) | ((y >> 4) & 0x0F0F0F0F); 26 | y = ((x << 4) & 0xF0F0F0F0) | (y & 0x0F0F0F0F); 27 | x = t; 28 | 29 | *((uint32_t*)B) = y; 30 | *((uint32_t*)(B+4)) = x; 31 | } 32 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/colorpalettes.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_COLORPALETTES_H 2 | #define __INC_COLORPALETTES_H 3 | 4 | #include "FastLED.h" 5 | #include "colorutils.h" 6 | 7 | /// @file colorpalettes.h 8 | /// Declarations for the predefined color palettes supplied by FastLED. 9 | 10 | // Have Doxygen ignore these declarations 11 | /// @cond 12 | 13 | FASTLED_NAMESPACE_BEGIN 14 | 15 | extern const TProgmemRGBPalette16 CloudColors_p FL_PROGMEM; 16 | extern const TProgmemRGBPalette16 LavaColors_p FL_PROGMEM; 17 | extern const TProgmemRGBPalette16 OceanColors_p FL_PROGMEM; 18 | extern const TProgmemRGBPalette16 ForestColors_p FL_PROGMEM; 19 | 20 | extern const TProgmemRGBPalette16 RainbowColors_p FL_PROGMEM; 21 | 22 | /// Alias of RainbowStripeColors_p 23 | #define RainbowStripesColors_p RainbowStripeColors_p 24 | extern const TProgmemRGBPalette16 RainbowStripeColors_p FL_PROGMEM; 25 | 26 | extern const TProgmemRGBPalette16 PartyColors_p FL_PROGMEM; 27 | 28 | extern const TProgmemRGBPalette16 HeatColors_p FL_PROGMEM; 29 | 30 | 31 | DECLARE_GRADIENT_PALETTE( Rainbow_gp); 32 | 33 | FASTLED_NAMESPACE_END 34 | 35 | /// @endcond 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/cpp_compat.h: -------------------------------------------------------------------------------- 1 | /// @file cpp_compat.h 2 | /// Compatibility functions based on C++ version 3 | 4 | #ifndef __INC_CPP_COMPAT_H 5 | #define __INC_CPP_COMPAT_H 6 | 7 | #include "FastLED.h" 8 | 9 | #if __cplusplus <= 199711L 10 | 11 | /// Compile-time assertion checking, introduced in C++11 12 | /// @see https://en.cppreference.com/w/cpp/language/static_assert 13 | #define static_assert(expression, message) 14 | 15 | /// Declares that it is possible to evaluate a value at compile time, introduced in C++11 16 | /// @see https://en.cppreference.com/w/cpp/language/constexpr 17 | #define constexpr const 18 | 19 | #else 20 | 21 | // things that we can turn on if we're in a C++11 environment 22 | #endif 23 | 24 | #if __cplusplus < 201703L 25 | #define FASTLED_REGISTER register 26 | #else 27 | #ifdef FASTLED_REGISTER 28 | #undef FASTLED_REGISTER 29 | #endif 30 | #define FASTLED_REGISTER 31 | 32 | #endif 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/dmx.h: -------------------------------------------------------------------------------- 1 | /// @file dmx.h 2 | /// Defines the DMX512-based LED controllers. 3 | 4 | #ifndef __INC_DMX_H 5 | #define __INC_DMX_H 6 | 7 | #include "FastLED.h" 8 | 9 | /// @addtogroup Chipsets 10 | /// @{ 11 | 12 | /// @addtogroup ClocklessChipsets 13 | /// @{ 14 | 15 | #if defined(DmxSimple_h) || defined(FASTLED_DOXYGEN) 16 | #include 17 | 18 | /// Flag set when the DmxSimple library is included 19 | #define HAS_DMX_SIMPLE 20 | 21 | FASTLED_NAMESPACE_BEGIN 22 | 23 | /// DMX512 based LED controller class, using the DmxSimple library 24 | /// @tparam DATA_PIN the data pin for the output of the DMX bus 25 | /// @tparam RGB_ORDER the RGB ordering for these LEDs 26 | /// @see https://www.pjrc.com/teensy/td_libs_DmxSimple.html 27 | /// @see https://github.com/PaulStoffregen/DmxSimple 28 | /// @see https://en.wikipedia.org/wiki/DMX512 29 | template class DMXSimpleController : public CPixelLEDController { 30 | public: 31 | /// Initialize the LED controller 32 | virtual void init() { DmxSimple.usePin(DATA_PIN); } 33 | 34 | protected: 35 | /// @copydoc CPixelLEDController::showPixels() 36 | virtual void showPixels(PixelController & pixels) { 37 | int iChannel = 1; 38 | while(pixels.has(1)) { 39 | DmxSimple.write(iChannel++, pixels.loadAndScale0()); 40 | DmxSimple.write(iChannel++, pixels.loadAndScale1()); 41 | DmxSimple.write(iChannel++, pixels.loadAndScale2()); 42 | pixels.advanceData(); 43 | pixels.stepDithering(); 44 | } 45 | } 46 | }; 47 | 48 | FASTLED_NAMESPACE_END 49 | 50 | #endif 51 | 52 | #if defined(DmxSerial_h) || defined(FASTLED_DOXYGEN) 53 | #include 54 | 55 | /// Flag set when the DMXSerial library is included 56 | #define HAS_DMX_SERIAL 57 | 58 | FASTLED_NAMESPACE_BEGIN 59 | 60 | /// DMX512 based LED controller class, using the DMXSerial library 61 | /// @tparam RGB_ORDER the RGB ordering for these LEDs 62 | /// @see http://www.mathertel.de/Arduino/DMXSerial.aspx 63 | /// @see https://github.com/mathertel/DMXSerial 64 | /// @see https://en.wikipedia.org/wiki/DMX512 65 | template class DMXSerialController : public CPixelLEDController { 66 | public: 67 | /// Initialize the LED controller 68 | virtual void init() { DMXSerial.init(DMXController); } 69 | 70 | /// @copydoc CPixelLEDController::showPixels() 71 | virtual void showPixels(PixelController & pixels) { 72 | int iChannel = 1; 73 | while(pixels.has(1)) { 74 | DMXSerial.write(iChannel++, pixels.loadAndScale0()); 75 | DMXSerial.write(iChannel++, pixels.loadAndScale1()); 76 | DMXSerial.write(iChannel++, pixels.loadAndScale2()); 77 | pixels.advanceData(); 78 | pixels.stepDithering(); 79 | } 80 | } 81 | }; 82 | 83 | FASTLED_NAMESPACE_END 84 | 85 | /// @} DMXControllers 86 | /// @} Chipsets 87 | 88 | #endif 89 | 90 | #endif 91 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/fastspi_dma.h: -------------------------------------------------------------------------------- 1 | /// @file fastspi_dma.h 2 | /// Direct memory access (DMA) functions for SPI interfaces 3 | /// @deprecated This header file is empty. 4 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/fastspi_nop.h: -------------------------------------------------------------------------------- 1 | /// @file fastspi_nop.h 2 | /// Example of a NOP/stub class to show the SPI methods required by a chipset implementation 3 | /// @note Example for developers. Not a functional part of the library. 4 | 5 | #ifndef __INC_FASTSPI_NOP_H 6 | #define __INC_FASTSPI_NOP_H 7 | 8 | #if FASTLED_DOXYGEN // Guard against the arduino ide idiotically including every header file 9 | 10 | #include "FastLED.h" 11 | 12 | FASTLED_NAMESPACE_BEGIN 13 | 14 | /// A nop/stub class, mostly to show the SPI methods that are needed/used by the various SPI chipset implementations. Should 15 | /// be used as a definition for the set of methods that the spi implementation classes should use (since C++ doesn't support the 16 | /// idea of interfaces - it's possible this could be done with virtual classes, need to decide if i want that overhead) 17 | template 18 | class NOPSPIOutput { 19 | Selectable *m_pSelect; 20 | 21 | public: 22 | /// Default Constructor 23 | NOPSPIOutput() { m_pSelect = NULL; } 24 | 25 | /// Constructor with selectable 26 | NOPSPIOutput(Selectable *pSelect) { m_pSelect = pSelect; } 27 | 28 | /// set the object representing the selectable 29 | void setSelect(Selectable *pSelect) { m_pSelect = pSelect; } 30 | 31 | /// initialize the SPI subssytem 32 | void init() { /* TODO */ } 33 | 34 | /// latch the CS select 35 | void select() { /* TODO */ } 36 | 37 | /// release the CS select 38 | void release() { /* TODO */ } 39 | 40 | /// wait until all queued up data has been written 41 | void waitFully(); 42 | 43 | /// not the most efficient mechanism in the world - but should be enough for sm16716 and friends 44 | template inline static void writeBit(uint8_t b) { /* TODO */ } 45 | 46 | /// write a byte out via SPI (returns immediately on writing register) 47 | void writeByte(uint8_t b) { /* TODO */ } 48 | /// write a word out via SPI (returns immediately on writing register) 49 | void writeWord(uint16_t w) { /* TODO */ } 50 | 51 | /// A raw set of writing byte values, assumes setup/init/waiting done elsewhere (static for use by adjustment classes) 52 | static void writeBytesValueRaw(uint8_t value, int len) { /* TODO */ } 53 | 54 | /// A full cycle of writing a value for len bytes, including select, release, and waiting 55 | void writeBytesValue(uint8_t value, int len) { /* TODO */ } 56 | 57 | /// A full cycle of writing a raw block of data out, including select, release, and waiting 58 | void writeBytes(uint8_t *data, int len) { /* TODO */ } 59 | 60 | /// write a single bit out, which bit from the passed in byte is determined by template parameter 61 | template inline static void writeBit(uint8_t b) { /* TODO */ } 62 | 63 | /// write out pixel data from the given PixelController object 64 | template void writePixels(PixelController pixels) { /* TODO */ } 65 | 66 | }; 67 | 68 | FASTLED_NAMESPACE_END 69 | 70 | #endif 71 | #endif 72 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/fastspi_types.h: -------------------------------------------------------------------------------- 1 | /// @file fastspi_types.h 2 | /// Data types and constants used by SPI interfaces 3 | 4 | #ifndef __INC_FASTSPI_TYPES_H 5 | #define __INC_FASTSPI_TYPES_H 6 | 7 | #include "FastLED.h" 8 | 9 | FASTLED_NAMESPACE_BEGIN 10 | 11 | /// @name Byte Re-Order Macros 12 | /// Some helper macros for getting at mis-ordered byte values. 13 | /// @todo Unused. Remove? 14 | /// 15 | /// @{ 16 | 17 | /// Get SPI byte 0 offset 18 | #define SPI_B0 (RGB_BYTE0(RGB_ORDER) + (MASK_SKIP_BITS & SKIP)) 19 | /// Get SPI byte 1 offset 20 | #define SPI_B1 (RGB_BYTE1(RGB_ORDER) + (MASK_SKIP_BITS & SKIP)) 21 | /// Get SPI byte 2 offset 22 | #define SPI_B2 (RGB_BYTE2(RGB_ORDER) + (MASK_SKIP_BITS & SKIP)) 23 | /// Advance SPI data pointer 24 | #define SPI_ADVANCE (3 + (MASK_SKIP_BITS & SKIP)) 25 | /// @} 26 | 27 | /// Dummy class for output controllers that need no data transformations. 28 | /// Some of the SPI controllers will need to perform a transform on each byte before doing 29 | /// anything with it. Creating a class of this form and passing it in as a template parameter to 30 | /// writeBytes()/writeBytes3() will ensure that the body of this method will get called on every 31 | /// byte worked on. 32 | /// @note Recommendation: make the adjust method aggressively inlined. 33 | /// @todo Convinience macro for building these 34 | class DATA_NOP { 35 | public: 36 | /// Hook called to adjust a byte of data before writing it to the output. 37 | /// In this dummy version, no adjustment is made. 38 | static __attribute__((always_inline)) inline uint8_t adjust(FASTLED_REGISTER uint8_t data) { return data; } 39 | 40 | /// @copybrief adjust(register uint8_t) 41 | /// @param data input byte 42 | /// @param scale scale value 43 | /// @returns input byte rescaled using ::scale8(uint8_t, uint8_t) 44 | static __attribute__((always_inline)) inline uint8_t adjust(FASTLED_REGISTER uint8_t data, FASTLED_REGISTER uint8_t scale) { return scale8(data, scale); } 45 | 46 | /// Hook called after a block of data is written to the output. 47 | /// In this dummy version, no action is performed. 48 | static __attribute__((always_inline)) inline void postBlock(int /* len */) { } 49 | }; 50 | 51 | /// Flag for the start of an SPI transaction 52 | #define FLAG_START_BIT 0x80 53 | 54 | /// Bitmask for the lower 6 bits of a byte 55 | /// @todo Unused. Remove? 56 | #define MASK_SKIP_BITS 0x3F 57 | 58 | /// @name Clock speed dividers 59 | /// @{ 60 | 61 | /// Divisor for clock speed by 2 62 | #define SPEED_DIV_2 2 63 | /// Divisor for clock speed by 4 64 | #define SPEED_DIV_4 4 65 | /// Divisor for clock speed by 8 66 | #define SPEED_DIV_8 8 67 | /// Divisor for clock speed by 16 68 | #define SPEED_DIV_16 16 69 | /// Divisor for clock speed by 32 70 | #define SPEED_DIV_32 32 71 | /// Divisor for clock speed by 64 72 | #define SPEED_DIV_64 64 73 | /// Divisor for clock speed by 128 74 | #define SPEED_DIV_128 128 75 | /// @} 76 | 77 | /// Max SPI data rate 78 | /// @todo Unused. Remove? 79 | #define MAX_DATA_RATE 0 80 | 81 | FASTLED_NAMESPACE_END 82 | 83 | #endif 84 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/led_sysdefs.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_H 2 | #define __INC_LED_SYSDEFS_H 3 | 4 | #include "FastLED.h" 5 | 6 | #include "fastled_config.h" 7 | 8 | /// @file led_sysdefs.h 9 | /// Determines which platform system definitions to include 10 | 11 | #if defined(NRF51) || defined(__RFduino__) || defined (__Simblee__) 12 | #include "platforms/arm/nrf51/led_sysdefs_arm_nrf51.h" 13 | #elif defined(NRF52_SERIES) 14 | #include "platforms/arm/nrf52/led_sysdefs_arm_nrf52.h" 15 | #elif defined(__MK20DX128__) || defined(__MK20DX256__) 16 | // Include k20/T3 headers 17 | #include "platforms/arm/k20/led_sysdefs_arm_k20.h" 18 | #elif defined(__MK66FX1M0__) || defined(__MK64FX512__) 19 | // Include k66/T3.6 headers 20 | #include "platforms/arm/k66/led_sysdefs_arm_k66.h" 21 | #elif defined(__MKL26Z64__) 22 | // Include kl26/T-LC headers 23 | #include "platforms/arm/kl26/led_sysdefs_arm_kl26.h" 24 | #elif defined(__IMXRT1062__) 25 | // teensy4 26 | #include "platforms/arm/mxrt1062/led_sysdefs_arm_mxrt1062.h" 27 | #elif defined(__SAM3X8E__) 28 | // Include sam/due headers 29 | #include "platforms/arm/sam/led_sysdefs_arm_sam.h" 30 | #elif defined(STM32F10X_MD) || defined(__STM32F1__) || defined(STM32F2XX) || defined(STM32F1) 31 | #include "platforms/arm/stm32/led_sysdefs_arm_stm32.h" 32 | #elif defined(__SAMD21G18A__) || defined(__SAMD21J18A__) || defined(__SAMD21E17A__) || defined(__SAMD21E18A__) 33 | #include "platforms/arm/d21/led_sysdefs_arm_d21.h" 34 | #elif defined(__SAMD51G19A__) || defined(__SAMD51J19A__) || defined(__SAME51J19A__) || defined(__SAMD51P19A__) || defined(__SAMD51P20A__) 35 | #include "platforms/arm/d51/led_sysdefs_arm_d51.h" 36 | #elif defined(ARDUINO_ARCH_RP2040) // not sure a pico-sdk define for this 37 | // RP2040 (Raspberry Pi Pico etc) 38 | #include "platforms/arm/rp2040/led_sysdefs_arm_rp2040.h" 39 | #elif defined(ESP8266) 40 | #include "platforms/esp/8266/led_sysdefs_esp8266.h" 41 | #elif defined(ESP32) 42 | #include "platforms/esp/32/led_sysdefs_esp32.h" 43 | #elif defined(__AVR__) || defined(__AVR_ATmega4809__) 44 | // AVR platforms 45 | #include "platforms/avr/led_sysdefs_avr.h" 46 | #elif defined(ARDUINO_ARCH_APOLLO3) 47 | // Apollo3 platforms (e.g. the Ambiq Micro Apollo3 Blue as used by the SparkFun Artemis platforms) 48 | #include "platforms/apollo3/led_sysdefs_apollo3.h" 49 | #else 50 | // 51 | // We got here because we don't recognize the platform that you're 52 | // trying to compile for: it's not AVR, or an ESP or ARM that we recognize. 53 | // 54 | // If you're reading this because you got the error below, 55 | // and if this new platform is just a minor variant of an 56 | // existing supported ARM platform, you may be able to add 57 | // a new 'defined(XXX)' selector in the apporpriate code above. 58 | // 59 | // If this platform is a new microcontroller, see "PORTING.md". 60 | // 61 | #error "This platform isn't recognized by FastLED... yet. See comments in FastLED/led_sysdefs.h for options." 62 | #endif 63 | 64 | #ifndef FASTLED_NAMESPACE_BEGIN 65 | /// Start of the FastLED namespace 66 | #define FASTLED_NAMESPACE_BEGIN 67 | /// End of the FastLED namespace 68 | #define FASTLED_NAMESPACE_END 69 | /// "Using" directive for the namespace 70 | #define FASTLED_USING_NAMESPACE 71 | #endif 72 | 73 | // Arduino.h needed for convenience functions digitalPinToPort/BitMask/portOutputRegister and the pinMode methods. 74 | #ifdef ARDUINO 75 | #include 76 | #endif 77 | 78 | /// Clock cycles per microsecond. 79 | /// Calculated using the F_CPU preprocessor define 80 | #define CLKS_PER_US (F_CPU/1000000) 81 | 82 | #endif 83 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms.cpp: -------------------------------------------------------------------------------- 1 | /// @file platforms.cpp 2 | /// Platform-specific functions and variables 3 | 4 | /// Disables pragma messages and warnings 5 | #define FASTLED_INTERNAL 6 | 7 | 8 | // Interrupt handlers cannot be defined in the header. 9 | // They must be defined as C functions, or they won't 10 | // be found (due to name mangling), and thus won't 11 | // override any default weak definition. 12 | #if defined(NRF52_SERIES) 13 | 14 | #include "platforms/arm/nrf52/led_sysdefs_arm_nrf52.h" 15 | #include "platforms/arm/nrf52/arbiter_nrf52.h" 16 | 17 | uint32_t isrCount; 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | // NOTE: Update platforms.cpp in root of FastLED library if this changes 23 | #if defined(FASTLED_NRF52_ENABLE_PWM_INSTANCE0) 24 | void PWM0_IRQHandler(void) { ++isrCount; PWM_Arbiter<0>::isr_handler(); } 25 | #endif 26 | #if defined(FASTLED_NRF52_ENABLE_PWM_INSTANCE1) 27 | void PWM1_IRQHandler(void) { ++isrCount; PWM_Arbiter<1>::isr_handler(); } 28 | #endif 29 | #if defined(FASTLED_NRF52_ENABLE_PWM_INSTANCE2) 30 | void PWM2_IRQHandler(void) { ++isrCount; PWM_Arbiter<2>::isr_handler(); } 31 | #endif 32 | #if defined(FASTLED_NRF52_ENABLE_PWM_INSTANCE3) 33 | void PWM3_IRQHandler(void) { ++isrCount; PWM_Arbiter<3>::isr_handler(); } 34 | #endif 35 | #ifdef __cplusplus 36 | } 37 | #endif 38 | 39 | #endif // defined(NRF52_SERIES) 40 | 41 | 42 | 43 | // FASTLED_NAMESPACE_BEGIN 44 | // FASTLED_NAMESPACE_END 45 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_PLATFORMS_H 2 | #define __INC_PLATFORMS_H 3 | 4 | #include "FastLED.h" 5 | 6 | #include "fastled_config.h" 7 | 8 | /// @file platforms.h 9 | /// Determines which platforms headers to include 10 | 11 | #if defined(NRF51) 12 | #include "platforms/arm/nrf51/fastled_arm_nrf51.h" 13 | #elif defined(NRF52_SERIES) 14 | #include "platforms/arm/nrf52/fastled_arm_nrf52.h" 15 | #elif defined(__MK20DX128__) || defined(__MK20DX256__) 16 | // Include k20/T3 headers 17 | #include "platforms/arm/k20/fastled_arm_k20.h" 18 | #elif defined(__MK66FX1M0__) || defined(__MK64FX512__) 19 | // Include k66/T3.6 headers 20 | #include "platforms/arm/k66/fastled_arm_k66.h" 21 | #elif defined(__MKL26Z64__) 22 | // Include kl26/T-LC headers 23 | #include "platforms/arm/kl26/fastled_arm_kl26.h" 24 | #elif defined(__IMXRT1062__) 25 | // teensy4 26 | #include "platforms/arm/mxrt1062/fastled_arm_mxrt1062.h" 27 | #elif defined(__SAM3X8E__) 28 | // Include sam/due headers 29 | #include "platforms/arm/sam/fastled_arm_sam.h" 30 | #elif defined(STM32F10X_MD) || defined(__STM32F1__) || defined(STM32F2XX) || defined(STM32F1) 31 | #include "platforms/arm/stm32/fastled_arm_stm32.h" 32 | #elif defined(__SAMD21G18A__) || defined(__SAMD21J18A__) || defined(__SAMD21E17A__) || defined(__SAMD21E18A__) 33 | #include "platforms/arm/d21/fastled_arm_d21.h" 34 | #elif defined(__SAMD51G19A__) || defined(__SAMD51J19A__) || defined(__SAME51J19A__) || defined(__SAMD51P19A__) 35 | #include "platforms/arm/d51/fastled_arm_d51.h" 36 | #elif defined(ARDUINO_ARCH_RP2040) // not sure a pico-sdk define for this 37 | // RP2040 (Raspberry Pi Pico etc) 38 | #include "platforms/arm/rp2040/fastled_arm_rp2040.h" 39 | #elif defined(ESP8266) 40 | #include "platforms/esp/8266/fastled_esp8266.h" 41 | #elif defined(ESP32) 42 | #include "platforms/esp/32/fastled_esp32.h" 43 | #elif defined(ARDUINO_ARCH_APOLLO3) 44 | #include "platforms/apollo3/fastled_apollo3.h" 45 | #else 46 | // AVR platforms 47 | #include "platforms/avr/fastled_avr.h" 48 | #endif 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/apollo3/fastled_apollo3.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_APOLLO3_H 2 | #define __INC_FASTLED_APOLLO3_H 3 | 4 | #include "fastpin_apollo3.h" 5 | #include "fastspi_apollo3.h" 6 | #include "clockless_apollo3.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/apollo3/led_sysdefs_apollo3.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_APOLLO3_H 2 | #define __INC_LED_SYSDEFS_APOLLO3_H 3 | 4 | #define FASTLED_APOLLO3 5 | 6 | #ifndef INTERRUPT_THRESHOLD 7 | #define INTERRUPT_THRESHOLD 1 8 | #endif 9 | 10 | // Default to allowing interrupts 11 | #ifndef FASTLED_ALLOW_INTERRUPTS 12 | #define FASTLED_ALLOW_INTERRUPTS 1 13 | #endif 14 | 15 | #if FASTLED_ALLOW_INTERRUPTS == 1 16 | #define FASTLED_ACCURATE_CLOCK 17 | #endif 18 | 19 | #ifndef F_CPU 20 | #define F_CPU 48000000 21 | #endif 22 | 23 | // Default to NOT using PROGMEM 24 | #ifndef FASTLED_USE_PROGMEM 25 | #define FASTLED_USE_PROGMEM 0 26 | #endif 27 | 28 | // data type defs 29 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 30 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 31 | 32 | #define FASTLED_NO_PINMAP 33 | 34 | // reusing/abusing cli/sei defs for due 35 | // These should be fine for the Apollo3. It has its own defines in cmsis_gcc.h 36 | #define cli() __disable_irq(); //__disable_fault_irq(); 37 | #define sei() __enable_irq(); //__enable_fault_irq(); 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/d21/clockless_arm_d21.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_CLOCKLESS_ARM_D21 2 | #define __INC_CLOCKLESS_ARM_D21 3 | 4 | #include "../common/m0clockless.h" 5 | FASTLED_NAMESPACE_BEGIN 6 | #define FASTLED_HAS_CLOCKLESS 1 7 | 8 | template 9 | class ClocklessController : public CPixelLEDController { 10 | typedef typename FastPinBB::port_ptr_t data_ptr_t; 11 | typedef typename FastPinBB::port_t data_t; 12 | 13 | data_t mPinMask; 14 | data_ptr_t mPort; 15 | CMinWait mWait; 16 | 17 | public: 18 | virtual void init() { 19 | FastPinBB::setOutput(); 20 | mPinMask = FastPinBB::mask(); 21 | mPort = FastPinBB::port(); 22 | } 23 | 24 | virtual uint16_t getMaxRefreshRate() const { return 400; } 25 | 26 | virtual void showPixels(PixelController & pixels) { 27 | mWait.wait(); 28 | cli(); 29 | if(!showRGBInternal(pixels)) { 30 | sei(); delayMicroseconds(WAIT_TIME); cli(); 31 | showRGBInternal(pixels); 32 | } 33 | sei(); 34 | mWait.mark(); 35 | } 36 | 37 | // This method is made static to force making register Y available to use for data on AVR - if the method is non-static, then 38 | // gcc will use register Y for the this pointer. 39 | static uint32_t showRGBInternal(PixelController pixels) { 40 | struct M0ClocklessData data; 41 | data.d[0] = pixels.d[0]; 42 | data.d[1] = pixels.d[1]; 43 | data.d[2] = pixels.d[2]; 44 | data.s[0] = pixels.mScale[0]; 45 | data.s[1] = pixels.mScale[1]; 46 | data.s[2] = pixels.mScale[2]; 47 | data.e[0] = pixels.e[0]; 48 | data.e[1] = pixels.e[1]; 49 | data.e[2] = pixels.e[2]; 50 | data.adj = pixels.mAdvance; 51 | 52 | typename FastPin::port_ptr_t portBase = FastPin::port(); 53 | return showLedData<8,4,T1,T2,T3,RGB_ORDER, WAIT_TIME>(portBase, FastPin::mask(), pixels.mData, pixels.mLen, &data); 54 | } 55 | 56 | }; 57 | 58 | FASTLED_NAMESPACE_END 59 | 60 | 61 | #endif // __INC_CLOCKLESS_ARM_D21 62 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/d21/fastled_arm_d21.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_D21_H 2 | #define __INC_FASTLED_ARM_D21_H 3 | 4 | #include "fastpin_arm_d21.h" 5 | #include "clockless_arm_d21.h" 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/d21/led_sysdefs_arm_d21.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_D21_H 2 | #define __INC_LED_SYSDEFS_ARM_D21_H 3 | 4 | 5 | #define FASTLED_ARM 6 | #define FASTLED_ARM_M0_PLUS 7 | 8 | #ifndef INTERRUPT_THRESHOLD 9 | #define INTERRUPT_THRESHOLD 1 10 | #endif 11 | 12 | // Default to allowing interrupts 13 | #ifndef FASTLED_ALLOW_INTERRUPTS 14 | #define FASTLED_ALLOW_INTERRUPTS 1 15 | #endif 16 | 17 | #if FASTLED_ALLOW_INTERRUPTS == 1 18 | #define FASTLED_ACCURATE_CLOCK 19 | #endif 20 | 21 | // reusing/abusing cli/sei defs for due 22 | #define cli() __disable_irq(); 23 | #define sei() __enable_irq(); 24 | 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/d51/README.txt: -------------------------------------------------------------------------------- 1 | FastLED updates for adafruit FEATHER M4 and fixes to ITSBITSY M4 compiles 2 | SAMD51 3 | 4 | Tested on 5 | - FEATHER M4 with DOTSTAR and neopixel strips 6 | - Seeed Wio Terminal and WS2812B and APA102 LED strips using either SPI or GPIO pins 7 | 8 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/d51/fastled_arm_d51.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_D51_H 2 | #define __INC_FASTLED_ARM_D51_H 3 | 4 | #include "fastpin_arm_d51.h" 5 | #include "../../fastspi_ardunio_core.h" 6 | #include "clockless_arm_d51.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/d51/led_sysdefs_arm_d51.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_D51_H 2 | #define __INC_LED_SYSDEFS_ARM_D51_H 3 | 4 | 5 | #define FASTLED_ARM 6 | 7 | #ifndef INTERRUPT_THRESHOLD 8 | #define INTERRUPT_THRESHOLD 1 9 | #endif 10 | 11 | // Default to allowing interrupts 12 | #ifndef FASTLED_ALLOW_INTERRUPTS 13 | #define FASTLED_ALLOW_INTERRUPTS 1 14 | #endif 15 | 16 | #if FASTLED_ALLOW_INTERRUPTS == 1 17 | #define FASTLED_ACCURATE_CLOCK 18 | #endif 19 | 20 | // reusing/abusing cli/sei defs for due 21 | #define cli() __disable_irq(); 22 | #define sei() __enable_irq(); 23 | 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/k20/fastled_arm_k20.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_K20_H 2 | #define __INC_FASTLED_ARM_K20_H 3 | 4 | // Include the k20 headers 5 | #include "fastpin_arm_k20.h" 6 | #include "fastspi_arm_k20.h" 7 | #include "octows2811_controller.h" 8 | #include "ws2812serial_controller.h" 9 | #include "smartmatrix_t3.h" 10 | #include "clockless_arm_k20.h" 11 | #include "clockless_block_arm_k20.h" 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/k20/led_sysdefs_arm_k20.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_K20_H 2 | #define __INC_LED_SYSDEFS_ARM_K20_H 3 | 4 | #define FASTLED_TEENSY3 5 | #define FASTLED_ARM 6 | 7 | #ifndef INTERRUPT_THRESHOLD 8 | #define INTERRUPT_THRESHOLD 1 9 | #endif 10 | 11 | // Default to allowing interrupts 12 | #ifndef FASTLED_ALLOW_INTERRUPTS 13 | #define FASTLED_ALLOW_INTERRUPTS 1 14 | #endif 15 | 16 | #if FASTLED_ALLOW_INTERRUPTS == 1 17 | #define FASTLED_ACCURATE_CLOCK 18 | #endif 19 | 20 | #if (F_CPU == 96000000) 21 | #define CLK_DBL 1 22 | #endif 23 | 24 | // Get some system include files 25 | #include 26 | #include // for cli/se definitions 27 | 28 | // Define the register types 29 | #if defined(ARDUINO) // && ARDUINO < 150 30 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 31 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 32 | #endif 33 | 34 | extern volatile uint32_t systick_millis_count; 35 | # define MS_COUNTER systick_millis_count 36 | 37 | 38 | // Default to using PROGMEM, since TEENSY3 provides it 39 | // even though all it does is ignore it. Just being 40 | // conservative here in case TEENSY3 changes. 41 | #ifndef FASTLED_USE_PROGMEM 42 | #define FASTLED_USE_PROGMEM 1 43 | #endif 44 | 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/k20/octows2811_controller.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_OCTOWS2811_CONTROLLER_H 2 | #define __INC_OCTOWS2811_CONTROLLER_H 3 | 4 | #ifdef USE_OCTOWS2811 5 | 6 | // #include "OctoWS2811.h" 7 | 8 | FASTLED_NAMESPACE_BEGIN 9 | 10 | template 11 | class COctoWS2811Controller : public CPixelLEDController { 12 | OctoWS2811 *pocto; 13 | uint8_t *drawbuffer,*framebuffer; 14 | 15 | void _init(int nLeds) { 16 | if(pocto == NULL) { 17 | drawbuffer = (uint8_t*)malloc(nLeds * 8 * 3); 18 | framebuffer = (uint8_t*)malloc(nLeds * 8 * 3); 19 | 20 | // byte ordering is handled in show by the pixel controller 21 | int config = WS2811_RGB; 22 | config |= CHIP; 23 | 24 | pocto = new OctoWS2811(nLeds, framebuffer, drawbuffer, config); 25 | 26 | pocto->begin(); 27 | } 28 | } 29 | public: 30 | COctoWS2811Controller() { pocto = NULL; } 31 | virtual int size() { return CLEDController::size() * 8; } 32 | 33 | virtual void init() { /* do nothing yet */ } 34 | 35 | typedef union { 36 | uint8_t bytes[8]; 37 | uint32_t raw[2]; 38 | } Lines; 39 | 40 | virtual void showPixels(PixelController & pixels) { 41 | _init(pixels.size()); 42 | 43 | uint8_t *pData = drawbuffer; 44 | while(pixels.has(1)) { 45 | Lines b; 46 | 47 | for(int i = 0; i < 8; ++i) { b.bytes[i] = pixels.loadAndScale0(i); } 48 | transpose8x1_MSB(b.bytes,pData); pData += 8; 49 | for(int i = 0; i < 8; ++i) { b.bytes[i] = pixels.loadAndScale1(i); } 50 | transpose8x1_MSB(b.bytes,pData); pData += 8; 51 | for(int i = 0; i < 8; ++i) { b.bytes[i] = pixels.loadAndScale2(i); } 52 | transpose8x1_MSB(b.bytes,pData); pData += 8; 53 | pixels.stepDithering(); 54 | pixels.advanceData(); 55 | } 56 | 57 | pocto->show(); 58 | } 59 | 60 | }; 61 | 62 | FASTLED_NAMESPACE_END 63 | 64 | #endif 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/k20/smartmatrix_t3.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_SMARTMATRIX_T3_H 2 | #define __INC_SMARTMATRIX_T3_H 3 | 4 | #ifdef SmartMatrix_h 5 | #include 6 | 7 | FASTLED_NAMESPACE_BEGIN 8 | 9 | extern SmartMatrix *pSmartMatrix; 10 | 11 | // note - dmx simple must be included before FastSPI for this code to be enabled 12 | class CSmartMatrixController : public CPixelLEDController { 13 | SmartMatrix matrix; 14 | 15 | public: 16 | // initialize the LED controller 17 | virtual void init() { 18 | // Initialize 32x32 LED Matrix 19 | matrix.begin(); 20 | matrix.setBrightness(255); 21 | matrix.setColorCorrection(ccNone); 22 | 23 | // Clear screen 24 | clearLeds(0); 25 | matrix.swapBuffers(); 26 | pSmartMatrix = &matrix; 27 | } 28 | 29 | virtual void showPixels(PixelController & pixels) { 30 | if(SMART_MATRIX_CAN_TRIPLE_BUFFER) { 31 | rgb24 *md = matrix.getRealBackBuffer(); 32 | } else { 33 | rgb24 *md = matrix.backBuffer(); 34 | } 35 | while(pixels.has(1)) { 36 | md->red = pixels.loadAndScale0(); 37 | md->green = pixels.loadAndScale1(); 38 | md->blue = pixels.loadAndScale2(); 39 | md++; 40 | pixels.advanceData(); 41 | pixels.stepDithering(); 42 | } 43 | matrix.swapBuffers(); 44 | if(SMART_MATRIX_CAN_TRIPLE_BUFFER && pixels.advanceBy() > 0) { 45 | matrix.setBackBuffer(pixels.mData); 46 | } 47 | } 48 | }; 49 | 50 | FASTLED_NAMESPACE_END 51 | 52 | #endif 53 | 54 | #endif 55 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/k20/ws2812serial_controller.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_WS2812SERIAL_CONTROLLER_H 2 | #define __INC_WS2812SERIAL_CONTROLLER_H 3 | 4 | #ifdef USE_WS2812SERIAL 5 | 6 | FASTLED_NAMESPACE_BEGIN 7 | 8 | template 9 | class CWS2812SerialController : public CPixelLEDController { 10 | WS2812Serial *pserial; 11 | uint8_t *drawbuffer,*framebuffer; 12 | 13 | void _init(int nLeds) { 14 | if (pserial == NULL) { 15 | drawbuffer = (uint8_t*)malloc(nLeds * 3); 16 | framebuffer = (uint8_t*)malloc(nLeds * 12); 17 | pserial = new WS2812Serial(nLeds, framebuffer, drawbuffer, DATA_PIN, WS2812_RGB); 18 | pserial->begin(); 19 | } 20 | } 21 | 22 | public: 23 | CWS2812SerialController() { pserial = NULL; } 24 | 25 | virtual void init() { /* do nothing yet */ } 26 | 27 | virtual void showPixels(PixelController & pixels) { 28 | _init(pixels.size()); 29 | 30 | uint8_t *p = drawbuffer; 31 | 32 | while(pixels.has(1)) { 33 | *p++ = pixels.loadAndScale0(); 34 | *p++ = pixels.loadAndScale1(); 35 | *p++ = pixels.loadAndScale2(); 36 | pixels.stepDithering(); 37 | pixels.advanceData(); 38 | } 39 | pserial->show(); 40 | } 41 | 42 | }; 43 | 44 | FASTLED_NAMESPACE_END 45 | 46 | #endif // USE_WS2812SERIAL 47 | #endif // __INC_WS2812SERIAL_CONTROLLER_H 48 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/k66/fastled_arm_k66.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_K66_H 2 | #define __INC_FASTLED_ARM_K66_H 3 | 4 | // Include the k66 headers 5 | #include "fastpin_arm_k66.h" 6 | #include "fastspi_arm_k66.h" 7 | #include "../k20/octows2811_controller.h" 8 | #include "../k20/ws2812serial_controller.h" 9 | #include "../k20/smartmatrix_t3.h" 10 | #include "clockless_arm_k66.h" 11 | #include "clockless_block_arm_k66.h" 12 | 13 | #endif 14 | 15 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/k66/led_sysdefs_arm_k66.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_K66_H 2 | #define __INC_LED_SYSDEFS_ARM_K66_H 3 | 4 | #define FASTLED_TEENSY3 5 | #define FASTLED_ARM 6 | 7 | #ifndef INTERRUPT_THRESHOLD 8 | #define INTERRUPT_THRESHOLD 1 9 | #endif 10 | 11 | // Default to allowing interrupts 12 | #ifndef FASTLED_ALLOW_INTERRUPTS 13 | #define FASTLED_ALLOW_INTERRUPTS 1 14 | #endif 15 | 16 | #if FASTLED_ALLOW_INTERRUPTS == 1 17 | #define FASTLED_ACCURATE_CLOCK 18 | #endif 19 | 20 | #if (F_CPU == 192000000) 21 | #define CLK_DBL 1 22 | #endif 23 | 24 | // Get some system include files 25 | #include 26 | #include // for cli/se definitions 27 | 28 | // Define the register types 29 | #if defined(ARDUINO) // && ARDUINO < 150 30 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 31 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 32 | #endif 33 | 34 | extern volatile uint32_t systick_millis_count; 35 | # define MS_COUNTER systick_millis_count 36 | 37 | 38 | // Default to using PROGMEM, since TEENSY3 provides it 39 | // even though all it does is ignore it. Just being 40 | // conservative here in case TEENSY3 changes. 41 | #ifndef FASTLED_USE_PROGMEM 42 | #define FASTLED_USE_PROGMEM 1 43 | #endif 44 | 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/kl26/clockless_arm_kl26.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_CLOCKLESS_ARM_KL26 2 | #define __INC_CLOCKLESS_ARM_KL26 3 | 4 | #include "../common/m0clockless.h" 5 | FASTLED_NAMESPACE_BEGIN 6 | #define FASTLED_HAS_CLOCKLESS 1 7 | 8 | template 9 | class ClocklessController : public CPixelLEDController { 10 | typedef typename FastPinBB::port_ptr_t data_ptr_t; 11 | typedef typename FastPinBB::port_t data_t; 12 | 13 | data_t mPinMask; 14 | data_ptr_t mPort; 15 | CMinWait mWait; 16 | public: 17 | virtual void init() { 18 | FastPinBB::setOutput(); 19 | mPinMask = FastPinBB::mask(); 20 | mPort = FastPinBB::port(); 21 | } 22 | 23 | virtual uint16_t getMaxRefreshRate() const { return 400; } 24 | 25 | virtual void showPixels(PixelController & pixels) { 26 | mWait.wait(); 27 | cli(); 28 | uint32_t clocks = showRGBInternal(pixels); 29 | if(!clocks) { 30 | sei(); delayMicroseconds(WAIT_TIME); cli(); 31 | clocks = showRGBInternal(pixels); 32 | } 33 | long microsTaken = CLKS_TO_MICROS(clocks * ((T1 + T2 + T3) * 24)); 34 | MS_COUNTER += (microsTaken / 1000); 35 | sei(); 36 | mWait.mark(); 37 | } 38 | 39 | // This method is made static to force making register Y available to use for data on AVR - if the method is non-static, then 40 | // gcc will use register Y for the this pointer. 41 | static uint32_t showRGBInternal(PixelController pixels) { 42 | struct M0ClocklessData data; 43 | data.d[0] = pixels.d[0]; 44 | data.d[1] = pixels.d[1]; 45 | data.d[2] = pixels.d[2]; 46 | data.s[0] = pixels.mScale[0]; 47 | data.s[1] = pixels.mScale[1]; 48 | data.s[2] = pixels.mScale[2]; 49 | data.e[0] = pixels.e[0]; 50 | data.e[1] = pixels.e[1]; 51 | data.e[2] = pixels.e[2]; 52 | data.adj = pixels.mAdvance; 53 | 54 | typename FastPin::port_ptr_t portBase = FastPin::port(); 55 | return showLedData<4,8,T1,T2,T3,RGB_ORDER, WAIT_TIME>(portBase, FastPin::mask(), pixels.mData, pixels.mLen, &data); 56 | // return 0; // 0x00FFFFFF - _VAL; 57 | } 58 | 59 | 60 | }; 61 | 62 | FASTLED_NAMESPACE_END 63 | 64 | 65 | #endif // __INC_CLOCKLESS_ARM_KL26 66 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/kl26/fastled_arm_kl26.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_KL26_H 2 | #define __INC_FASTLED_ARM_KL26_H 3 | 4 | // Include the k20 headers 5 | #include "fastpin_arm_kl26.h" 6 | #include "fastspi_arm_kl26.h" 7 | #include "clockless_arm_kl26.h" 8 | #include "../k20/ws2812serial_controller.h" 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/kl26/led_sysdefs_arm_kl26.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_KL26_H 2 | #define __INC_LED_SYSDEFS_ARM_KL26_H 3 | 4 | #define FASTLED_TEENSYLC 5 | #define FASTLED_ARM 6 | #define FASTLED_ARM_M0_PLUS 7 | 8 | #ifndef INTERRUPT_THRESHOLD 9 | #define INTERRUPT_THRESHOLD 1 10 | #endif 11 | 12 | #define FASTLED_SPI_BYTE_ONLY 13 | 14 | // Default to allowing interrupts 15 | #ifndef FASTLED_ALLOW_INTERRUPTS 16 | // #define FASTLED_ALLOW_INTERRUPTS 1 17 | #endif 18 | 19 | #if FASTLED_ALLOW_INTERRUPTS == 1 20 | #define FASTLED_ACCURATE_CLOCK 21 | #endif 22 | 23 | #if (F_CPU == 96000000) 24 | #define CLK_DBL 1 25 | #endif 26 | 27 | // Get some system include files 28 | #include 29 | #include // for cli/se definitions 30 | 31 | // Define the register types 32 | #if defined(ARDUINO) // && ARDUINO < 150 33 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 34 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 35 | #endif 36 | 37 | extern volatile uint32_t systick_millis_count; 38 | # define MS_COUNTER systick_millis_count 39 | 40 | // Default to using PROGMEM since TEENSYLC provides it 41 | // even though all it does is ignore it. Just being 42 | // conservative here in case TEENSYLC changes. 43 | #ifndef FASTLED_USE_PROGMEM 44 | #define FASTLED_USE_PROGMEM 1 45 | #endif 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/mxrt1062/fastled_arm_mxrt1062.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_MXRT1062_H 2 | #define __INC_FASTLED_ARM_MXRT1062_H 3 | 4 | #include "fastpin_arm_mxrt1062.h" 5 | #include "fastspi_arm_mxrt1062.h" 6 | #include "octows2811_controller.h" 7 | #include "../k20/ws2812serial_controller.h" 8 | #include "../k20/smartmatrix_t3.h" 9 | #include "clockless_arm_mxrt1062.h" 10 | #include "block_clockless_arm_mxrt1062.h" 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/mxrt1062/led_sysdefs_arm_mxrt1062.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_MXRT1062_H 2 | #define __INC_LED_SYSDEFS_ARM_MXRT1062_H 3 | 4 | #define FASTLED_TEENSY4 5 | #define FASTLED_ARM 6 | 7 | #ifndef INTERRUPT_THRESHOLD 8 | #define INTERRUPT_THRESHOLD 1 9 | #endif 10 | 11 | // Default to allowing interrupts 12 | #ifndef FASTLED_ALLOW_INTERRUPTS 13 | #define FASTLED_ALLOW_INTERRUPTS 1 14 | #endif 15 | 16 | #if FASTLED_ALLOW_INTERRUPTS == 1 17 | #define FASTLED_ACCURATE_CLOCK 18 | #endif 19 | 20 | #if (F_CPU == 96000000) 21 | #define CLK_DBL 1 22 | #endif 23 | 24 | // Get some system include files 25 | #include 26 | #include // for cli/se definitions 27 | 28 | // Define the register types 29 | #if defined(ARDUINO) // && ARDUINO < 150 30 | typedef volatile uint32_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 31 | typedef volatile uint32_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 32 | #endif 33 | 34 | // extern volatile uint32_t systick_millis_count; 35 | // # define MS_COUNTER systick_millis_count 36 | 37 | // Teensy4 provides progmem 38 | #ifndef FASTLED_USE_PROGMEM 39 | #define FASTLED_USE_PROGMEM 1 40 | #endif 41 | 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/mxrt1062/octows2811_controller.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_OCTOWS2811_CONTROLLER_H 2 | #define __INC_OCTOWS2811_CONTROLLER_H 3 | 4 | #ifdef USE_OCTOWS2811 5 | 6 | // #include "OctoWS2811.h" 7 | 8 | FASTLED_NAMESPACE_BEGIN 9 | 10 | template 11 | class COctoWS2811Controller : public CPixelLEDController { 12 | OctoWS2811 *pocto; 13 | uint8_t *drawbuffer,*framebuffer; 14 | 15 | void _init(int nLeds) { 16 | if(pocto == NULL) { 17 | drawbuffer = (uint8_t*)malloc(nLeds * 8 * 3); 18 | framebuffer = (uint8_t*)malloc(nLeds * 8 * 3); 19 | 20 | // byte ordering is handled in show by the pixel controller 21 | int config = WS2811_RGB; 22 | config |= CHIP; 23 | 24 | pocto = new OctoWS2811(nLeds, framebuffer, drawbuffer, config); 25 | 26 | pocto->begin(); 27 | } 28 | } 29 | public: 30 | COctoWS2811Controller() { pocto = NULL; } 31 | virtual int size() { return CLEDController::size() * 8; } 32 | 33 | virtual void init() { /* do nothing yet */ } 34 | 35 | virtual void showPixels(PixelController &pixels) { 36 | uint32_t size = pixels.size(); 37 | uint32_t sizeTimes8 = 8U * size; 38 | _init(size); 39 | 40 | uint32_t index = 0; 41 | while (pixels.has(1)) { 42 | for (int lane = 0; lane < 8; lane++) { 43 | uint8_t r = pixels.loadAndScale0(lane); 44 | uint8_t g = pixels.loadAndScale1(lane); 45 | uint8_t b = pixels.loadAndScale2(lane); 46 | pocto->setPixel(index, r, g, b); 47 | index += size; 48 | } 49 | index -= sizeTimes8; 50 | index++; 51 | pixels.stepDithering(); 52 | pixels.advanceData(); 53 | } 54 | 55 | pocto->show(); 56 | } 57 | 58 | }; 59 | 60 | FASTLED_NAMESPACE_END 61 | 62 | #endif 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/nrf51/clockless_arm_nrf51.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_CLOCKLESS_ARM_NRF51 2 | #define __INC_CLOCKLESS_ARM_NRF51 3 | 4 | #if defined(NRF51) 5 | 6 | #include 7 | #define FASTLED_HAS_CLOCKLESS 1 8 | 9 | #if (FASTLED_ALLOW_INTERRUPTS==1) 10 | #define SEI_CHK LED_TIMER->CC[0] = (WAIT_TIME * (F_CPU/1000000)); LED_TIMER->TASKS_CLEAR; LED_TIMER->EVENTS_COMPARE[0] = 0; 11 | #define CLI_CHK cli(); if(LED_TIMER->EVENTS_COMPARE[0]) { LED_TIMER->TASKS_STOP = 1; return 0; } 12 | #define INNER_SEI sei(); 13 | #else 14 | #define SEI_CHK 15 | #define CLI_CHK 16 | #define INNER_SEI delaycycles<1>(); 17 | #endif 18 | 19 | 20 | #include "../common/m0clockless.h" 21 | template 22 | class ClocklessController : public CPixelLEDController { 23 | typedef typename FastPinBB::port_ptr_t data_ptr_t; 24 | typedef typename FastPinBB::port_t data_t; 25 | 26 | data_t mPinMask; 27 | data_ptr_t mPort; 28 | CMinWait mWait; 29 | 30 | public: 31 | virtual void init() { 32 | FastPinBB::setOutput(); 33 | mPinMask = FastPinBB::mask(); 34 | mPort = FastPinBB::port(); 35 | } 36 | 37 | virtual uint16_t getMaxRefreshRate() const { return 400; } 38 | 39 | virtual void showPixels(PixelController & pixels) { 40 | mWait.wait(); 41 | cli(); 42 | if(!showRGBInternal(pixels)) { 43 | sei(); delayMicroseconds(WAIT_TIME); cli(); 44 | showRGBInternal(pixels); 45 | } 46 | sei(); 47 | mWait.mark(); 48 | } 49 | 50 | // This method is made static to force making register Y available to use for data on AVR - if the method is non-static, then 51 | // gcc will use register Y for the this pointer. 52 | static uint32_t showRGBInternal(PixelController pixels) { 53 | struct M0ClocklessData data; 54 | data.d[0] = pixels.d[0]; 55 | data.d[1] = pixels.d[1]; 56 | data.d[2] = pixels.d[2]; 57 | data.s[0] = pixels.mScale[0]; 58 | data.s[1] = pixels.mScale[1]; 59 | data.s[2] = pixels.mScale[2]; 60 | data.e[0] = pixels.e[0]; 61 | data.e[1] = pixels.e[1]; 62 | data.e[2] = pixels.e[2]; 63 | data.adj = pixels.mAdvance; 64 | 65 | typename FastPin::port_ptr_t portBase = FastPin::port(); 66 | 67 | // timer mode w/prescaler of 0 68 | LED_TIMER->MODE = TIMER_MODE_MODE_Timer; 69 | LED_TIMER->PRESCALER = 0; 70 | LED_TIMER->EVENTS_COMPARE[0] = 0; 71 | LED_TIMER->BITMODE = TIMER_BITMODE_BITMODE_16Bit; 72 | LED_TIMER->SHORTS = TIMER_SHORTS_COMPARE0_CLEAR_Msk; 73 | LED_TIMER->TASKS_START = 1; 74 | 75 | int ret = showLedData<4,8,T1,T2,T3,RGB_ORDER,WAIT_TIME>(portBase, FastPin::mask(), pixels.mData, pixels.mLen, &data); 76 | 77 | LED_TIMER->TASKS_STOP = 1; 78 | return ret; // 0x00FFFFFF - _VAL; 79 | } 80 | }; 81 | 82 | 83 | #endif // NRF51 84 | #endif // __INC_CLOCKLESS_ARM_NRF51 85 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/nrf51/fastled_arm_nrf51.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_NRF51_H 2 | #define __INC_FASTLED_ARM_NRF51_H 3 | 4 | // Include the k20 headers 5 | #include "fastpin_arm_nrf51.h" 6 | #include "fastspi_arm_nrf51.h" 7 | #include "clockless_arm_nrf51.h" 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/nrf51/led_sysdefs_arm_nrf51.h: -------------------------------------------------------------------------------- 1 | #ifndef __LED_SYSDEFS_ARM_NRF51 2 | #define __LED_SYSDEFS_ARM_NRF51 3 | 4 | #ifndef NRF51 5 | #define NRF51 6 | #endif 7 | 8 | #define LED_TIMER NRF_TIMER1 9 | #define FASTLED_NO_PINMAP 10 | #define FASTLED_HAS_CLOCKLESS 11 | 12 | #define FASTLED_SPI_BYTE_ONLY 13 | 14 | #define FASTLED_ARM 15 | #define FASTLED_ARM_M0 16 | 17 | #ifndef F_CPU 18 | #define F_CPU 16000000 19 | #endif 20 | 21 | #include 22 | #include 23 | #include 24 | 25 | typedef volatile uint32_t RoReg; 26 | typedef volatile uint32_t RwReg; 27 | typedef uint32_t prog_uint32_t; 28 | typedef uint8_t boolean; 29 | 30 | #define PROGMEM 31 | #define NO_PROGMEM 32 | #define NEED_CXX_BITS 33 | 34 | // Default to NOT using PROGMEM here 35 | #ifndef FASTLED_USE_PROGMEM 36 | #define FASTLED_USE_PROGMEM 0 37 | #endif 38 | 39 | #ifndef FASTLED_ALLOW_INTERRUPTS 40 | #define FASTLED_ALLOW_INTERRUPTS 1 41 | #endif 42 | 43 | #define cli() __disable_irq(); 44 | #define sei() __enable_irq(); 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/nrf52/fastled_arm_nrf52.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_NRF52_H 2 | #define __INC_FASTLED_ARM_NRF52_H 3 | 4 | #include "led_sysdefs_arm_nrf52.h" 5 | #include "arbiter_nrf52.h" 6 | #include "fastpin_arm_nrf52.h" 7 | #include "fastspi_arm_nrf52.h" 8 | #include "clockless_arm_nrf52.h" 9 | 10 | #endif // #ifndef __INC_FASTLED_ARM_NRF52_H 11 | 12 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/nrf52/led_sysdefs_arm_nrf52.h: -------------------------------------------------------------------------------- 1 | #ifndef __LED_SYSDEFS_ARM_NRF52 2 | #define __LED_SYSDEFS_ARM_NRF52 3 | 4 | #define FASTLED_ARM 5 | 6 | #ifndef F_CPU 7 | #define F_CPU 64000000 // the NRF52 series has a 64MHz CPU 8 | #endif 9 | 10 | // even though CPU is at 64MHz, use the 8MHz-defined timings because... 11 | // PWM module runs at 16MHz 12 | // SPI0..2 runs at 8MHz 13 | #define CLOCKLESS_FREQUENCY 16000000 // the NRF52 has EasyDMA for PWM module at 16MHz 14 | 15 | #ifndef F_TIMER 16 | #define F_TIMER 16000000 // the NRF52 timer is 16MHz, even though CPU is 64MHz 17 | #endif 18 | 19 | #if !defined(FASTLED_USE_PROGMEM) 20 | #define FASTLED_USE_PROGMEM 0 // nRF52 series have flat memory model 21 | #endif 22 | 23 | #if !defined(FASTLED_ALLOW_INTERRUPTS) 24 | #define FASTLED_ALLOW_INTERRUPTS 1 25 | #endif 26 | 27 | // Use PWM instance 0 28 | // See clockless_arm_nrf52.h and (in root of library) platforms.cpp 29 | #define FASTLED_NRF52_ENABLE_PWM_INSTANCE0 30 | 31 | #if defined(FASTLED_NRF52_NEVER_INLINE) 32 | #define FASTLED_NRF52_INLINE_ATTRIBUTE __attribute__((always_inline)) inline 33 | #else 34 | #define FASTLED_NRF52_INLINE_ATTRIBUTE __attribute__((always_inline)) inline 35 | #endif 36 | 37 | 38 | 39 | #include 40 | #include // for FastSPI 41 | #include // for Clockless 42 | #include // for Clockless / anything else using interrupts 43 | typedef __I uint32_t RoReg; 44 | typedef __IO uint32_t RwReg; 45 | 46 | #define cli() __disable_irq() 47 | #define sei() __enable_irq() 48 | 49 | #define FASTLED_NRF52_DEBUGPRINT(format, ...)\ 50 | // do { FastLED_NRF52_DebugPrint(format, ##__VA_ARGS__); } while(0); 51 | 52 | #endif // __LED_SYSDEFS_ARM_NRF52 53 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/rp2040/fastled_arm_rp2040.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_RP2040_H 2 | #define __INC_FASTLED_ARM_RP2040_H 3 | 4 | // Include the rp2040 headers 5 | #include "fastpin_arm_rp2040.h" 6 | #include "clockless_arm_rp2040.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/rp2040/fastpin_arm_rp2040.h: -------------------------------------------------------------------------------- 1 | #ifndef __FASTPIN_ARM_RP2040_H 2 | #define __FASTPIN_ARM_RP2040_H 3 | 4 | #include "pico.h" 5 | #include "hardware/gpio.h" 6 | #include "hardware/structs/sio.h" 7 | 8 | FASTLED_NAMESPACE_BEGIN 9 | 10 | #if defined(FASTLED_FORCE_SOFTWARE_PINS) 11 | #warning "Software pin support forced, pin access will be sloightly slower." 12 | #define NO_HARDWARE_PIN_SUPPORT 13 | #undef HAS_HARDWARE_PIN_SUPPORT 14 | 15 | #else 16 | 17 | // warning: set and fastset are not thread-safe! use with caution! 18 | template class _RP2040PIN { 19 | public: 20 | typedef volatile uint32_t * port_ptr_t; 21 | typedef uint32_t port_t; 22 | 23 | inline static void setOutput() { gpio_set_function(PIN, GPIO_FUNC_SIO); sio_hw->gpio_oe_set = _MASK; } 24 | inline static void setInput() { gpio_set_function(PIN, GPIO_FUNC_SIO); sio_hw->gpio_oe_clr = _MASK; } 25 | 26 | inline static void hi() __attribute__ ((always_inline)) { sio_hw->gpio_set = _MASK; } 27 | inline static void lo() __attribute__ ((always_inline)) { sio_hw->gpio_clr = _MASK; } 28 | inline static void set(FASTLED_REGISTER port_t val) __attribute__ ((always_inline)) { sio_hw->gpio_out = val; } 29 | 30 | inline static void strobe() __attribute__ ((always_inline)) { toggle(); toggle(); } 31 | 32 | inline static void toggle() __attribute__ ((always_inline)) { sio_hw->gpio_togl = _MASK; } 33 | 34 | inline static void hi(FASTLED_REGISTER port_ptr_t port) __attribute__ ((always_inline)) { hi(); } 35 | inline static void lo(FASTLED_REGISTER port_ptr_t port) __attribute__ ((always_inline)) { lo(); } 36 | inline static void fastset(FASTLED_REGISTER port_ptr_t port, FASTLED_REGISTER port_t val) __attribute__ ((always_inline)) { *port = val; } 37 | 38 | inline static port_t hival() __attribute__ ((always_inline)) { return sio_hw->gpio_out | _MASK; } 39 | inline static port_t loval() __attribute__ ((always_inline)) { return sio_hw->gpio_out & ~_MASK; } 40 | inline static port_ptr_t port() __attribute__ ((always_inline)) { return &sio_hw->gpio_out; } 41 | inline static port_ptr_t sport() __attribute__ ((always_inline)) { return &sio_hw->gpio_set; } 42 | inline static port_ptr_t cport() __attribute__ ((always_inline)) { return &sio_hw->gpio_clr; } 43 | inline static port_t mask() __attribute__ ((always_inline)) { return _MASK; } 44 | }; 45 | 46 | #define _FL_DEFPIN(PIN) template<> class FastPin : public _RP2040PIN {}; 47 | 48 | #define MAX_PIN 29 49 | _FL_DEFPIN(0); _FL_DEFPIN(1); _FL_DEFPIN(2); _FL_DEFPIN(3); 50 | _FL_DEFPIN(4); _FL_DEFPIN(5); _FL_DEFPIN(6); _FL_DEFPIN(7); 51 | _FL_DEFPIN(8); _FL_DEFPIN(9); _FL_DEFPIN(10); _FL_DEFPIN(11); 52 | _FL_DEFPIN(12); _FL_DEFPIN(13); _FL_DEFPIN(14); _FL_DEFPIN(15); 53 | _FL_DEFPIN(16); _FL_DEFPIN(17); _FL_DEFPIN(18); _FL_DEFPIN(19); 54 | _FL_DEFPIN(20); _FL_DEFPIN(21); _FL_DEFPIN(22); _FL_DEFPIN(23); 55 | _FL_DEFPIN(24); _FL_DEFPIN(25); _FL_DEFPIN(26); _FL_DEFPIN(27); 56 | _FL_DEFPIN(28); _FL_DEFPIN(29); 57 | 58 | #ifdef PICO_DEFAULT_SPI_TX_PIN 59 | #define SPI_DATA PICO_DEFAULT_SPI_TX_PIN 60 | #else 61 | #define SPI_DATA 19 62 | #endif 63 | 64 | #ifdef PICO_DEFAULT_SPI_SCK_PIN 65 | #define SPI_CLOCK PICO_DEFAULT_SPI_SCK_PIN 66 | #else 67 | #define SPI_CLOCK 18 68 | #endif 69 | 70 | #define HAS_HARDWARE_PIN_SUPPORT 71 | 72 | #endif // FASTLED_FORCE_SOFTWARE_PINS 73 | 74 | 75 | FASTLED_NAMESPACE_END 76 | 77 | #endif // __FASTPIN_ARM_RP2040_H 78 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/rp2040/led_sysdefs_arm_rp2040.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_RP2040_H 2 | #define __INC_LED_SYSDEFS_ARM_RP2040_H 3 | 4 | #include "hardware/sync.h" 5 | 6 | #define FASTLED_ARM 7 | #define FASTLED_ARM_M0_PLUS 8 | 9 | // TODO: PORT SPI TO HW 10 | //#define FASTLED_SPI_BYTE_ONLY 11 | #define FASTLED_FORCE_SOFTWARE_SPI 12 | // Force FAST_SPI_INTERRUPTS_WRITE_PINS on becuase two cores running 13 | // simultaneously could lead to data races on GPIO. 14 | // This could potentially be optimised by adding a mask to FastPin's set and 15 | // fastset, but for now it's probably safe to call that out of scope. 16 | #ifndef FAST_SPI_INTERRUPTS_WRITE_PINS 17 | #define FAST_SPI_INTERRUPTS_WRITE_PINS 1 18 | #endif 19 | 20 | #define FASTLED_NO_PINMAP 21 | 22 | typedef volatile uint32_t RoReg; 23 | typedef volatile uint32_t RwReg; 24 | 25 | // #define F_CPU clock_get_hz(clk_sys) // can't use runtime function call 26 | // is the boot-time value in another var already for any platforms? 27 | // it doesn't seem to be, so hardcode the sdk default of 125 MHz 28 | #ifndef F_CPU 29 | #ifdef VARIANT_MCK 30 | #define F_CPU VARIANT_MCK 31 | #else 32 | #define F_CPU 125000000 33 | #endif 34 | #endif 35 | 36 | #ifndef VARIANT_MCK 37 | #define VARIANT_MCK F_CPU 38 | #endif 39 | 40 | // 8MHz for PIO 41 | // #define CLOCKLESS_FREQUENCY 8000000 42 | #define CLOCKLESS_FREQUENCY F_CPU 43 | 44 | // Default to allowing interrupts 45 | #ifndef FASTLED_ALLOW_INTERRUPTS 46 | #define FASTLED_ALLOW_INTERRUPTS 1 47 | #endif 48 | 49 | // not sure if this is wanted? but it probably is 50 | #if FASTLED_ALLOW_INTERRUPTS == 1 51 | #define FASTLED_ACCURATE_CLOCK 52 | #endif 53 | 54 | // Default to no PROGMEM 55 | #ifndef FASTLED_USE_PROGMEM 56 | #define FASTLED_USE_PROGMEM 0 57 | #endif 58 | 59 | // Default to non-blocking PIO-based implemnetation 60 | #ifndef FASTLED_RP2040_CLOCKLESS_PIO 61 | #define FASTLED_RP2040_CLOCKLESS_PIO 1 62 | #endif 63 | 64 | // Default to shared interrupt handler for clockless DMA 65 | #ifndef FASTLED_RP2040_CLOCKLESS_IRQ_SHARED 66 | #define FASTLED_RP2040_CLOCKLESS_IRQ_SHARED 1 67 | #endif 68 | 69 | // SPI pin defs for old SDK ver 70 | #ifndef PICO_DEFAULT_SPI 71 | #define PICO_DEFAULT_SPI 0 72 | #endif 73 | #ifndef PICO_DEFAULT_SPI_SCK_PIN 74 | #define PICO_DEFAULT_SPI_SCK_PIN 18 75 | #endif 76 | #ifndef PICO_DEFAULT_SPI_TX_PIN 77 | #define PICO_DEFAULT_SPI_TX_PIN 19 78 | #endif 79 | #ifndef PICO_DEFAULT_SPI_RX_PIN 80 | #define PICO_DEFAULT_SPI_RX_PIN 16 81 | #endif 82 | #ifndef PICO_DEFAULT_SPI_CSN_PIN 83 | #define PICO_DEFAULT_SPI_CSN_PIN 17 84 | #endif 85 | 86 | static uint32_t saved_interrupt_status; 87 | #define cli() (saved_interrupt_status = save_and_disable_interrupts()) 88 | #define sei() (restore_interrupts(saved_interrupt_status)) 89 | 90 | #endif // __INC_LED_SYSDEFS_ARM_RP2040_H 91 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/rp2040/pio_gen.h: -------------------------------------------------------------------------------- 1 | #ifndef _PIO_GEN_H 2 | #define _PIO_GEN_H 3 | 4 | #include "pio_asm.h" 5 | #include "hardware/pio.h" 6 | 7 | /* 8 | * This file contains code to manage the PIO program for clockless LEDs. 9 | * 10 | * A PIO program is "assembled" from compiler macros so that T1, T2, T3 can be 11 | * set from other code. 12 | * Otherwise, this is quite similar to what would be output by pioasm, with the 13 | * additional step of adding the program to a state machine integrated. 14 | */ 15 | 16 | #define CLOCKLESS_PIO_SIDESET_COUNT 0 17 | 18 | #define CLOCKLESS_PIO_WRAP_TARGET 0 19 | #define CLOCKLESS_PIO_WRAP 3 20 | 21 | // we have 4 bits to store delay in instruction encoding with one sideset bit, but we can accept up to 16 because 1 is always subtracted first 22 | #define CLOCKLESS_PIO_MAX_TIME_PERIOD (1 << (5 - CLOCKLESS_PIO_SIDESET_COUNT)) 23 | 24 | static inline int add_clockless_pio_program(PIO pio, int T1, int T2, int T3) { 25 | pio_instr clockless_pio_instr[] = { 26 | // wrap_target 27 | // out x, 1; read next bit to x 28 | (pio_instr)(PIO_INSTR_OUT | PIO_OUT_DST_X | PIO_OUT_CNT(1)), 29 | // set pins, 1 [T1 - 1]; set output high for T1 30 | (pio_instr)(PIO_INSTR_SET | PIO_SET_DST_PINS | PIO_SET_DATA(1) | PIO_DELAY(T1 - 1, CLOCKLESS_PIO_SIDESET_COUNT)), 31 | // mov pins, x [T2 - 1]; set output to X for T2 32 | (pio_instr)(PIO_INSTR_MOV | PIO_MOV_DST_PINS | PIO_MOV_SRC_X | PIO_DELAY(T2 - 1, CLOCKLESS_PIO_SIDESET_COUNT)), 33 | // set pins, 0 [T3 - 2] // set output low for T3 (minus two because we'll also read next bit using one instruction during this time) 34 | (pio_instr)(PIO_INSTR_SET | PIO_SET_DST_PINS | PIO_SET_DATA(0) | PIO_DELAY(T3 - 2, CLOCKLESS_PIO_SIDESET_COUNT)), 35 | // wrap 36 | }; 37 | 38 | struct pio_program clockless_pio_program = { 39 | .instructions = clockless_pio_instr, 40 | .length = sizeof(clockless_pio_instr) / sizeof(clockless_pio_instr[0]), 41 | .origin = -1, 42 | }; 43 | 44 | if (!pio_can_add_program(pio, &clockless_pio_program)) 45 | return -1; 46 | 47 | return (int)pio_add_program(pio, &clockless_pio_program); 48 | } 49 | 50 | static inline pio_sm_config clockless_pio_program_get_default_config(uint offset) { 51 | pio_sm_config c = pio_get_default_sm_config(); 52 | sm_config_set_wrap(&c, offset + CLOCKLESS_PIO_WRAP_TARGET, offset + CLOCKLESS_PIO_WRAP); 53 | sm_config_set_sideset(&c, CLOCKLESS_PIO_SIDESET_COUNT, false, false); 54 | return c; 55 | } 56 | 57 | #endif // _PIO_GEN_H 58 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/sam/fastled_arm_sam.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_SAM_H 2 | #define __INC_FASTLED_ARM_SAM_H 3 | 4 | // Include the sam headers 5 | #include "fastpin_arm_sam.h" 6 | #include "fastspi_arm_sam.h" 7 | #include "clockless_arm_sam.h" 8 | #include "clockless_block_arm_sam.h" 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/sam/led_sysdefs_arm_sam.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_SAM_H 2 | #define __INC_LED_SYSDEFS_ARM_SAM_H 3 | 4 | 5 | #define FASTLED_ARM 6 | 7 | // Setup DUE timer defines/channels/etc... 8 | #ifndef DUE_TIMER_CHANNEL 9 | #define DUE_TIMER_GROUP 0 10 | #endif 11 | 12 | #ifndef DUE_TIMER_CHANNEL 13 | #define DUE_TIMER_CHANNEL 0 14 | #endif 15 | 16 | #define DUE_TIMER ((DUE_TIMER_GROUP==0) ? TC0 : ((DUE_TIMER_GROUP==1) ? TC1 : TC2)) 17 | #define DUE_TIMER_ID (ID_TC0 + (DUE_TIMER_GROUP*3) + DUE_TIMER_CHANNEL) 18 | #define DUE_TIMER_VAL (DUE_TIMER->TC_CHANNEL[DUE_TIMER_CHANNEL].TC_CV << 1) 19 | #define DUE_TIMER_RUNNING ((DUE_TIMER->TC_CHANNEL[DUE_TIMER_CHANNEL].TC_SR & TC_SR_CLKSTA) != 0) 20 | 21 | #ifndef INTERRUPT_THRESHOLD 22 | #define INTERRUPT_THRESHOLD 1 23 | #endif 24 | 25 | // Default to allowing interrupts 26 | #ifndef FASTLED_ALLOW_INTERRUPTS 27 | #define FASTLED_ALLOW_INTERRUPTS 1 28 | #endif 29 | 30 | #if FASTLED_ALLOW_INTERRUPTS == 1 31 | #define FASTLED_ACCURATE_CLOCK 32 | #endif 33 | 34 | // reusing/abusing cli/sei defs for due 35 | #define cli() __disable_irq(); __disable_fault_irq(); 36 | #define sei() __enable_irq(); __enable_fault_irq(); 37 | 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/stm32/fastled_arm_stm32.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_SAM_H 2 | #define __INC_FASTLED_ARM_SAM_H 3 | 4 | // Include the sam headers 5 | #include "fastpin_arm_stm32.h" 6 | // #include "fastspi_arm_stm32.h" 7 | #include "clockless_arm_stm32.h" 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/arm/stm32/led_sysdefs_arm_stm32.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_SAM_H 2 | #define __INC_LED_SYSDEFS_ARM_SAM_H 3 | 4 | #if defined(STM32F10X_MD) || defined(STM32F2XX) 5 | 6 | #include 7 | 8 | #define FASTLED_NAMESPACE_BEGIN namespace NSFastLED { 9 | #define FASTLED_NAMESPACE_END } 10 | #define FASTLED_USING_NAMESPACE using namespace NSFastLED; 11 | 12 | // reusing/abusing cli/sei defs for due 13 | #define cli() __disable_irq(); __disable_fault_irq(); 14 | #define sei() __enable_irq(); __enable_fault_irq(); 15 | 16 | #elif defined (__STM32F1__) 17 | 18 | #include "cm3_regs.h" 19 | 20 | #define cli() nvic_globalirq_disable() 21 | #define sei() nvic_globalirq_enable() 22 | 23 | #elif defined(STM32F1) 24 | // stm32duino 25 | 26 | #define cli() noInterrupts() 27 | #define sei() interrupts() 28 | 29 | #else 30 | #error "Platform not supported" 31 | #endif 32 | 33 | #define FASTLED_ARM 34 | 35 | #ifndef INTERRUPT_THRESHOLD 36 | #define INTERRUPT_THRESHOLD 1 37 | #endif 38 | 39 | // Default to allowing interrupts 40 | #ifndef FASTLED_ALLOW_INTERRUPTS 41 | #define FASTLED_ALLOW_INTERRUPTS 0 42 | #endif 43 | 44 | #if FASTLED_ALLOW_INTERRUPTS == 1 45 | #define FASTLED_ACCURATE_CLOCK 46 | #endif 47 | 48 | // pgmspace definitions 49 | #define PROGMEM 50 | 51 | #if !defined(STM32F1) 52 | // The stm32duino core already defines these 53 | #define pgm_read_dword(addr) (*(const unsigned long *)(addr)) 54 | #define pgm_read_dword_near(addr) pgm_read_dword(addr) 55 | #endif 56 | 57 | // Default to NOT using PROGMEM here 58 | #ifndef FASTLED_USE_PROGMEM 59 | #define FASTLED_USE_PROGMEM 0 60 | #endif 61 | 62 | // data type defs 63 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 64 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 65 | 66 | #define FASTLED_NO_PINMAP 67 | 68 | #if defined(STM32F2XX) 69 | #define F_CPU 120000000 70 | #elif defined(STM32F1) 71 | // F_CPU is already defined on stm32duino, but it's not constant. 72 | #undef F_CPU 73 | #define F_CPU 72000000 74 | #else 75 | #define F_CPU 72000000 76 | #endif 77 | 78 | #if defined(STM32F2XX) 79 | // Photon doesn't provide yield 80 | #define FASTLED_NEEDS_YIELD 81 | extern "C" void yield(); 82 | #endif 83 | 84 | #endif // defined(STM32F10X_MD) || defined(STM32F2XX) 85 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/avr/fastled_avr.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_AVR_H 2 | #define __INC_FASTLED_AVR_H 3 | 4 | #include "fastpin_avr.h" 5 | #include "fastspi_avr.h" 6 | #include "clockless_trinket.h" 7 | 8 | // Default to using PROGMEM 9 | #ifndef FASTLED_USE_PROGMEM 10 | #define FASTLED_USE_PROGMEM 1 11 | #endif 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/avr/led_sysdefs_avr.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_AVR_H 2 | #define __INC_LED_SYSDEFS_AVR_H 3 | 4 | #define FASTLED_AVR 5 | 6 | #ifndef INTERRUPT_THRESHOLD 7 | #define INTERRUPT_THRESHOLD 2 8 | #endif 9 | 10 | #define FASTLED_SPI_BYTE_ONLY 11 | 12 | #include 13 | #include // for cli/se definitions 14 | 15 | // Define the register types 16 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 17 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 18 | 19 | 20 | // Default to disallowing interrupts (may want to gate this on teensy2 vs. other arm platforms, since the 21 | // teensy2 has a good, fast millis interrupt implementation) 22 | #ifndef FASTLED_ALLOW_INTERRUPTS 23 | #define FASTLED_ALLOW_INTERRUPTS 0 24 | #endif 25 | 26 | #if FASTLED_ALLOW_INTERRUPTS == 1 27 | #define FASTLED_ACCURATE_CLOCK 28 | #endif 29 | 30 | 31 | // Default to using PROGMEM here 32 | #ifndef FASTLED_USE_PROGMEM 33 | #define FASTLED_USE_PROGMEM 1 34 | #endif 35 | 36 | #if defined(ARDUINO_AVR_DIGISPARK) || defined(ARDUINO_AVR_DIGISPARKPRO) 37 | #ifndef NO_CORRECTION 38 | #define NO_CORRECTION 1 39 | #endif 40 | #endif 41 | 42 | extern "C" { 43 | # if defined(CORE_TEENSY) || defined(TEENSYDUINO) 44 | extern volatile unsigned long timer0_millis_count; 45 | # define MS_COUNTER timer0_millis_count 46 | # elif defined(ATTINY_CORE) 47 | extern volatile unsigned long millis_timer_millis; 48 | # define MS_COUNTER millis_timer_millis 49 | # elif defined(__AVR_ATmega4809__) 50 | extern volatile unsigned long timer_millis; 51 | # define MS_COUNTER timer_millis 52 | # else 53 | extern volatile unsigned long timer0_millis; 54 | # define MS_COUNTER timer0_millis 55 | # endif 56 | }; 57 | 58 | // special defs for the tiny environments 59 | #if defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega8U2__) || defined(__AVR_AT90USB162__) || defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) || defined(__AVR_ATtiny167__) || defined(__AVR_ATtiny87__) || defined(__AVR_ATtiny48__) || defined(__AVR_ATtiny88__) || defined(__AVR_ATtinyX41__) || defined(__AVR_ATtiny841__) || defined(__AVR_ATtiny441__) 60 | #define LIB8_ATTINY 1 61 | #define FASTLED_NEEDS_YIELD 62 | #endif 63 | 64 | #if defined(ARDUINO) && (ARDUINO > 150) && !defined(IS_BEAN) && !defined (ARDUINO_AVR_DIGISPARK) && !defined (LIB8_TINY) && !defined (ARDUINO_AVR_LARDU_328E) 65 | // don't need YIELD defined by the library 66 | #else 67 | #define FASTLED_NEEDS_YIELD 68 | extern "C" void yield(); 69 | #endif 70 | #endif 71 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/esp/32/fastled_esp32.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "fastpin_esp32.h" 4 | 5 | #ifdef FASTLED_ALL_PINS_HARDWARE_SPI 6 | #include "fastspi_esp32.h" 7 | #endif 8 | 9 | #ifdef FASTLED_ESP32_I2S 10 | #include "clockless_i2s_esp32.h" 11 | #else 12 | #include "clockless_rmt_esp32.h" 13 | #endif 14 | 15 | // #include "clockless_block_esp32.h" 16 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/esp/32/led_sysdefs_esp32.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "esp32-hal.h" 3 | #ifndef ESP32 4 | #define ESP32 5 | #endif 6 | 7 | #define FASTLED_ESP32 8 | 9 | #if CONFIG_IDF_TARGET_ARCH_RISCV 10 | #define FASTLED_RISCV 11 | #else 12 | #define FASTLED_XTENSA 13 | #endif 14 | 15 | // Handling for older versions of ESP32 Arduino core 16 | #if !defined(ESP_IDF_VERSION) 17 | // Older versions of ESP_IDF only supported ESP32 18 | #define CONFIG_IDF_TARGET_ESP32 1 19 | // Define missing version macros. Hard code older version 3.0 since actual version is unknown 20 | #define ESP_IDF_VERSION_VAL(major, minor, patch) ((major << 16) | (minor << 8) | (patch)) 21 | #define ESP_IDF_VERSION ESP_IDF_VERSION_VAL(3, 0, 0) 22 | #endif 23 | 24 | // Use system millis timer 25 | #define FASTLED_HAS_MILLIS 26 | 27 | typedef volatile uint32_t RoReg; 28 | typedef volatile uint32_t RwReg; 29 | typedef unsigned long prog_uint32_t; 30 | 31 | 32 | // Default to NOT using PROGMEM here 33 | #ifndef FASTLED_USE_PROGMEM 34 | # define FASTLED_USE_PROGMEM 0 35 | #endif 36 | 37 | #ifndef FASTLED_ALLOW_INTERRUPTS 38 | # define FASTLED_ALLOW_INTERRUPTS 1 39 | # define INTERRUPT_THRESHOLD 0 40 | #endif 41 | 42 | #define NEED_CXX_BITS 43 | 44 | // These can be overridden 45 | # define FASTLED_ESP32_RAW_PIN_ORDER 46 | 47 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "fastpin_esp8266.h" 4 | 5 | #ifdef FASTLED_ALL_PINS_HARDWARE_SPI 6 | #include "fastspi_esp8266.h" 7 | #endif 8 | 9 | #include "clockless_esp8266.h" 10 | #include "clockless_block_esp8266.h" 11 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/src/platforms/esp/8266/led_sysdefs_esp8266.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef ESP8266 4 | #define ESP8266 5 | #endif 6 | 7 | #define FASTLED_ESP8266 8 | 9 | // Use system millis timer 10 | #define FASTLED_HAS_MILLIS 11 | 12 | typedef volatile uint32_t RoReg; 13 | typedef volatile uint32_t RwReg; 14 | typedef uint32_t prog_uint32_t; 15 | 16 | 17 | // Default to NOT using PROGMEM here 18 | #ifndef FASTLED_USE_PROGMEM 19 | # define FASTLED_USE_PROGMEM 0 20 | #endif 21 | 22 | #ifndef FASTLED_ALLOW_INTERRUPTS 23 | # define FASTLED_ALLOW_INTERRUPTS 1 24 | # define INTERRUPT_THRESHOLD 0 25 | #endif 26 | 27 | #define NEED_CXX_BITS 28 | 29 | // These can be overridden 30 | #if !defined(FASTLED_ESP8266_RAW_PIN_ORDER) && !defined(FASTLED_ESP8266_NODEMCU_PIN_ORDER) && !defined(FASTLED_ESP8266_D1_PIN_ORDER) 31 | # ifdef ARDUINO_ESP8266_NODEMCU 32 | # define FASTLED_ESP8266_NODEMCU_PIN_ORDER 33 | # else 34 | # define FASTLED_ESP8266_RAW_PIN_ORDER 35 | # endif 36 | #endif 37 | 38 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/FastLED/workspace.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": "." 5 | } 6 | ] 7 | } -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/MIDIUSB/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/_Faduino_2023_10_18/libraries/MIDIUSB/.DS_Store -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/MIDIUSB/README.adoc: -------------------------------------------------------------------------------- 1 | = MIDIUSB Library for Arduino = 2 | 3 | This library allows an Arduino board with USB capabilites to act as a MIDI instrument over USB. The library is based on PluggableUSB, so is only compatible with IDE 1.6.6 and nightly builds (AVR core > 1.6.8, SAM core > 1.6.4, SAMD core > 1.6.1) 4 | 5 | Furthermore, since PluggableUSB only targets boards with native USB capabilities, this library only supports these boards (eg. Leonardo, Micro, Due, Zero and so on) 6 | 7 | For more information about this library please visit us at 8 | http://www.arduino.cc/en/Reference/MIDIUSB 9 | 10 | == Test procedure (Linux) == 11 | 12 | Load the correct driver (`sudo modprobe snd_seq_midi`) 13 | 14 | Flash the board with `MIDIUSB_loop` example, then execute `aseqdump -l`; the output will be something similar to 15 | ```bash 16 | Port Client name Port name 17 | 0:0 System Timer 18 | 0:1 System Announce 19 | 14:0 Midi Through Midi Through Port-0 20 | 20:0 Arduino Micro Arduino Micro MIDI 1 21 | ``` 22 | Port `20` is the one we'll use in the following examples. 23 | 24 | Start `fluidsynth` inside a shell with a soundbank 25 | ```bash 26 | fluidsynth --server --audio-driver=alsa -o audio.alsa.device=hw:0 ~/Synth.SF2 27 | ``` 28 | 29 | In another shell, execute 30 | ```bash 31 | aconnect 20 128 32 | ``` 33 | to connect our MIDI device with fluidsynth 34 | 35 | Then, execute 36 | ```bash 37 | aplaymidi --port=20:0 ~/some_midi_file.mid 38 | ``` 39 | and the file will be played after a complete roundtrip to the board. 40 | 41 | == License == 42 | 43 | Copyright (c) 2015, Arduino LLC. All right reserved. 44 | Copyright (c) 2015, Gary Grewal 45 | 46 | This library is free software; you can redistribute it and/or 47 | modify it under the terms of the GNU Lesser General Public 48 | License as published by the Free Software Foundation; either 49 | version 2.1 of the License, or (at your option) any later version. 50 | 51 | This library is distributed in the hope that it will be useful, 52 | but WITHOUT ANY WARRANTY; without even the implied warranty of 53 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 54 | Lesser General Public License for more details. 55 | 56 | You should have received a copy of the GNU Lesser General Public 57 | License along with this library; if not, write to the Free Software 58 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 59 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/MIDIUSB/documentation/src/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/_Faduino_2023_10_18/libraries/MIDIUSB/documentation/src/Logo.png -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/MIDIUSB/examples/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silveirago/Faduino/bdcd5ee9b36065d4ead715945586de61176179a1/_Faduino_2023_10_18/libraries/MIDIUSB/examples/.DS_Store -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/MIDIUSB/examples/MIDIUSB_buzzer/MIDIUSB_buzzer.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * MIDIUSB_buzzer.ino 3 | * 4 | * Author: Paulo Costa 5 | */ 6 | 7 | #include 8 | #include "pitchToFrequency.h" 9 | 10 | #define BUZZ_PIN 9 11 | 12 | const char* pitch_name(byte pitch) { 13 | static const char* names[] = {"C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"}; 14 | return names[pitch % 12]; 15 | } 16 | 17 | int pitch_octave(byte pitch) { 18 | return (pitch / 12) - 1; 19 | } 20 | 21 | void noteOn(byte channel, byte pitch, byte velocity) { 22 | tone(BUZZ_PIN, pitchFrequency[pitch]); 23 | 24 | Serial.print("Note On: "); 25 | Serial.print(pitch_name(pitch)); 26 | Serial.print(pitch_octave(pitch)); 27 | Serial.print(", channel="); 28 | Serial.print(channel); 29 | Serial.print(", velocity="); 30 | Serial.println(velocity); 31 | } 32 | 33 | void noteOff(byte channel, byte pitch, byte velocity) { 34 | noTone(BUZZ_PIN); 35 | 36 | Serial.print("Note Off: "); 37 | Serial.print(pitch_name(pitch)); 38 | Serial.print(pitch_octave(pitch)); 39 | Serial.print(", channel="); 40 | Serial.print(channel); 41 | Serial.print(", velocity="); 42 | Serial.println(velocity); 43 | } 44 | 45 | void controlChange(byte channel, byte control, byte value) { 46 | Serial.print("Control change: control="); 47 | Serial.print(control); 48 | Serial.print(", value="); 49 | Serial.print(value); 50 | Serial.print(", channel="); 51 | Serial.println(channel); 52 | } 53 | 54 | void setup() { 55 | Serial.begin(115200); 56 | } 57 | 58 | void loop() { 59 | midiEventPacket_t rx = MidiUSB.read(); 60 | switch (rx.header) { 61 | case 0: 62 | break; //No pending events 63 | 64 | case 0x9: 65 | noteOn( 66 | rx.byte1 & 0xF, //channel 67 | rx.byte2, //pitch 68 | rx.byte3 //velocity 69 | ); 70 | break; 71 | 72 | case 0x8: 73 | noteOff( 74 | rx.byte1 & 0xF, //channel 75 | rx.byte2, //pitch 76 | rx.byte3 //velocity 77 | ); 78 | break; 79 | 80 | case 0xB: 81 | controlChange( 82 | rx.byte1 & 0xF, //channel 83 | rx.byte2, //control 84 | rx.byte3 //value 85 | ); 86 | break; 87 | 88 | default: 89 | Serial.print("Unhandled MIDI message: "); 90 | Serial.print(rx.header, HEX); 91 | Serial.print("-"); 92 | Serial.print(rx.byte1, HEX); 93 | Serial.print("-"); 94 | Serial.print(rx.byte2, HEX); 95 | Serial.print("-"); 96 | Serial.println(rx.byte3, HEX); 97 | } 98 | } 99 | 100 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/MIDIUSB/examples/MIDIUSB_clock/MIDIUSB_clock.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * MIDIUSB_clock.ino 3 | * 4 | * Simple example of beat clock based on MIDI pulse messages 5 | * received from software. 6 | * 7 | * Tested on Leonardo with Ableton. 8 | * 9 | * In preferences go to MIDI Sync. Select device Output 10 | * and toggle Sync button, change clock type to Pattern. 11 | * Usually changing Sync Delay is required. 12 | * 13 | * Created: 19/12/2016 14 | * Author: Ernest Warzocha 15 | */ 16 | 17 | #include "MIDIUSB.h" 18 | 19 | //Pulse per quarter note. Each beat has 24 pulses. 20 | //Tempo is based on software inner BPM. 21 | int ppqn = 0; 22 | 23 | void noteOn(byte channel, byte pitch, byte velocity) { 24 | midiEventPacket_t noteOn = {0x09, 0x90 | channel, pitch, velocity}; 25 | MidiUSB.sendMIDI(noteOn); 26 | } 27 | 28 | void noteOff(byte channel, byte pitch, byte velocity) { 29 | midiEventPacket_t noteOff = {0x08, 0x80 | channel, pitch, velocity}; 30 | MidiUSB.sendMIDI(noteOff); 31 | } 32 | 33 | void setup() { 34 | Serial.begin(115200); 35 | } 36 | 37 | void loop() { 38 | 39 | midiEventPacket_t rx; 40 | 41 | do { 42 | rx = MidiUSB.read(); 43 | 44 | //Count pulses and send note 45 | if(rx.byte1 == 0xF8){ 46 | ++ppqn; 47 | 48 | if(ppqn == 24){ 49 | noteOn(1,48,127); 50 | MidiUSB.flush(); 51 | ppqn = 0; 52 | }; 53 | } 54 | //Clock start byte 55 | else if(rx.byte1 == 0xFA){ 56 | noteOn(1,48,127); 57 | MidiUSB.flush(); 58 | ppqn = 0; 59 | } 60 | //Clock stop byte 61 | else if(rx.byte1 == 0xFC){ 62 | noteOff(1,48,0); 63 | MidiUSB.flush(); 64 | ppqn = 0; 65 | }; 66 | 67 | } while (rx.header != 0); 68 | 69 | } 70 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/MIDIUSB/examples/MIDIUSB_loop/MIDIUSB_loop.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * MIDIUSB_loop.ino 3 | * 4 | * Created: 4/6/2015 10:47:08 AM 5 | * Author: gurbrinder grewal 6 | * Modified by Arduino LLC (2015) 7 | */ 8 | 9 | #include "MIDIUSB.h" 10 | 11 | // First parameter is the event type (0x09 = note on, 0x08 = note off). 12 | // Second parameter is note-on/note-off, combined with the channel. 13 | // Channel can be anything between 0-15. Typically reported to the user as 1-16. 14 | // Third parameter is the note number (48 = middle C). 15 | // Fourth parameter is the velocity (64 = normal, 127 = fastest). 16 | 17 | void noteOn(byte channel, byte pitch, byte velocity) { 18 | midiEventPacket_t noteOn = {0x09, 0x90 | channel, pitch, velocity}; 19 | MidiUSB.sendMIDI(noteOn); 20 | } 21 | 22 | void noteOff(byte channel, byte pitch, byte velocity) { 23 | midiEventPacket_t noteOff = {0x08, 0x80 | channel, pitch, velocity}; 24 | MidiUSB.sendMIDI(noteOff); 25 | } 26 | 27 | void setup() { 28 | Serial.begin(115200); 29 | pinMode(LED_BUILTIN, OUTPUT); 30 | } 31 | 32 | // First parameter is the event type (0x0B = control change). 33 | // Second parameter is the event type, combined with the channel. 34 | // Third parameter is the control number number (0-119). 35 | // Fourth parameter is the control value (0-127). 36 | 37 | void controlChange(byte channel, byte control, byte value) { 38 | midiEventPacket_t event = {0x0B, 0xB0 | channel, control, value}; 39 | MidiUSB.sendMIDI(event); 40 | } 41 | 42 | void loop() { 43 | //MidiUSB.accept(); 44 | //delayMicroseconds(1); 45 | midiEventPacket_t rx; 46 | do { 47 | rx = MidiUSB.read(); 48 | if (rx.header != 0) { 49 | //send back the received MIDI command 50 | MidiUSB.sendMIDI(rx); 51 | MidiUSB.flush(); 52 | } 53 | } while (rx.header != 0); 54 | } -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/MIDIUSB/examples/MIDIUSB_read/MIDIUSB_read.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * MIDIUSB_test.ino 3 | * 4 | * Created: 4/6/2015 10:47:08 AM 5 | * Author: gurbrinder grewal 6 | * Modified by Arduino LLC (2015) 7 | */ 8 | 9 | #include "MIDIUSB.h" 10 | 11 | // First parameter is the event type (0x09 = note on, 0x08 = note off). 12 | // Second parameter is note-on/note-off, combined with the channel. 13 | // Channel can be anything between 0-15. Typically reported to the user as 1-16. 14 | // Third parameter is the note number (48 = middle C). 15 | // Fourth parameter is the velocity (64 = normal, 127 = fastest). 16 | 17 | void noteOn(byte channel, byte pitch, byte velocity) { 18 | midiEventPacket_t noteOn = {0x09, 0x90 | channel, pitch, velocity}; 19 | MidiUSB.sendMIDI(noteOn); 20 | } 21 | 22 | void noteOff(byte channel, byte pitch, byte velocity) { 23 | midiEventPacket_t noteOff = {0x08, 0x80 | channel, pitch, velocity}; 24 | MidiUSB.sendMIDI(noteOff); 25 | } 26 | 27 | void setup() { 28 | Serial.begin(115200); 29 | } 30 | 31 | // First parameter is the event type (0x0B = control change). 32 | // Second parameter is the event type, combined with the channel. 33 | // Third parameter is the control number number (0-119). 34 | // Fourth parameter is the control value (0-127). 35 | 36 | void controlChange(byte channel, byte control, byte value) { 37 | midiEventPacket_t event = {0x0B, 0xB0 | channel, control, value}; 38 | MidiUSB.sendMIDI(event); 39 | } 40 | 41 | void loop() { 42 | midiEventPacket_t rx; 43 | do { 44 | rx = MidiUSB.read(); 45 | if (rx.header != 0) { 46 | Serial.print("Received: "); 47 | Serial.print(rx.header, HEX); 48 | Serial.print("-"); 49 | Serial.print(rx.byte1, HEX); 50 | Serial.print("-"); 51 | Serial.print(rx.byte2, HEX); 52 | Serial.print("-"); 53 | Serial.println(rx.byte3, HEX); 54 | } 55 | } while (rx.header != 0); 56 | } 57 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/MIDIUSB/examples/MIDIUSB_write/MIDIUSB_write.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * MIDIUSB_test.ino 3 | * 4 | * Created: 4/6/2015 10:47:08 AM 5 | * Author: gurbrinder grewal 6 | * Modified by Arduino LLC (2015) 7 | */ 8 | 9 | #include "MIDIUSB.h" 10 | 11 | // First parameter is the event type (0x09 = note on, 0x08 = note off). 12 | // Second parameter is note-on/note-off, combined with the channel. 13 | // Channel can be anything between 0-15. Typically reported to the user as 1-16. 14 | // Third parameter is the note number (48 = middle C). 15 | // Fourth parameter is the velocity (64 = normal, 127 = fastest). 16 | 17 | void noteOn(byte channel, byte pitch, byte velocity) { 18 | midiEventPacket_t noteOn = {0x09, 0x90 | channel, pitch, velocity}; 19 | MidiUSB.sendMIDI(noteOn); 20 | } 21 | 22 | void noteOff(byte channel, byte pitch, byte velocity) { 23 | midiEventPacket_t noteOff = {0x08, 0x80 | channel, pitch, velocity}; 24 | MidiUSB.sendMIDI(noteOff); 25 | } 26 | 27 | void setup() { 28 | Serial.begin(115200); 29 | } 30 | 31 | // First parameter is the event type (0x0B = control change). 32 | // Second parameter is the event type, combined with the channel. 33 | // Third parameter is the control number number (0-119). 34 | // Fourth parameter is the control value (0-127). 35 | 36 | void controlChange(byte channel, byte control, byte value) { 37 | midiEventPacket_t event = {0x0B, 0xB0 | channel, control, value}; 38 | MidiUSB.sendMIDI(event); 39 | } 40 | 41 | void loop() { 42 | Serial.println("Sending note on"); 43 | noteOn(0, 48, 64); // Channel 0, middle C, normal velocity 44 | MidiUSB.flush(); 45 | delay(500); 46 | Serial.println("Sending note off"); 47 | noteOff(0, 48, 64); // Channel 0, middle C, normal velocity 48 | MidiUSB.flush(); 49 | delay(1500); 50 | 51 | // controlChange(0, 10, 65); // Set the value of controller 10 on channel 0 to 65 52 | } -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/MIDIUSB/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For Keyboard 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | MIDIUSB KEYWORD1 10 | 11 | ####################################### 12 | # Methods and Functions (KEYWORD2) 13 | ####################################### 14 | 15 | begin KEYWORD2 16 | available KEYWORD2 17 | accept KEYWORD2 18 | read KEYWORD2 19 | flush KEYWORD2 20 | sendMIDI KEYWORD2 21 | write KEYWORD2 22 | sendMIDI KEYWORD2 23 | 24 | ####################################### 25 | # Constants (LITERAL1) 26 | ####################################### 27 | 28 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/MIDIUSB/library.properties: -------------------------------------------------------------------------------- 1 | name=MIDIUSB 2 | version=1.0.5 3 | author=Gary Grewal, Arduino 4 | maintainer=Arduino 5 | sentence=Allows an Arduino board with USB capabilites to act as a MIDI instrument over USB. 6 | paragraph= 7 | category=Device Control 8 | url=http://www.arduino.cc/en/Reference/MIDIUSB 9 | architectures=avr,sam,samd 10 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/MIDIUSB/src/MIDIUSB_Defs.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | typedef struct 5 | { 6 | uint8_t header; 7 | uint8_t byte1; 8 | uint8_t byte2; 9 | uint8_t byte3; 10 | } midiEventPacket_t; 11 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/MIDIUSB/src/pitchToFrequency.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Conversion from MIDI pitch codes to frequencies in Hz 4 | static const float pitchFrequency[] = { 5 | 8.176, 8.662, 9.177, 9.723, 10.301, 10.913, 11.562, 12.250, 12.978, 13.750, 14.568, 15.434, 6 | 16.352, 17.324, 18.354, 19.445, 20.602, 21.827, 23.125, 24.500, 25.957, 27.500, 29.135, 30.868, 7 | 32.703, 34.648, 36.708, 38.891, 41.203, 43.654, 46.249, 48.999, 51.913, 55.000, 58.270, 61.735, 8 | 65.406, 69.296, 73.416, 77.782, 82.407, 87.307, 92.499, 97.999, 103.826, 110.000, 116.541, 123.471, 9 | 130.813, 138.591, 146.832, 155.563, 164.814, 174.614, 184.997, 195.998, 207.652, 220.000, 233.082, 246.942, 10 | 261.626, 277.183, 293.665, 311.127, 329.628, 349.228, 369.994, 391.995, 415.305, 440.000, 466.164, 493.883, 11 | 523.251, 554.365, 587.330, 622.254, 659.255, 698.456, 739.989, 783.991, 830.609, 880.000, 932.328, 987.767, 12 | 1046.502, 1108.731, 1174.659, 1244.508, 1318.510, 1396.913, 1479.978, 1567.982, 1661.219, 1760.000, 1864.655, 1975.533, 13 | 2093.005, 2217.461, 2349.318, 2489.016, 2637.020, 2793.826, 2959.955, 3135.963, 3322.438, 3520.000, 3729.310, 3951.066, 14 | 4186.009, 4434.922, 4698.636, 4978.032, 5274.041, 5587.652, 5919.911, 6271.927, 6644.875, 7040.000, 7458.620, 7902.133, 15 | 8372.018, 8869.844, 9397.273, 9956.063, 10548.082, 11175.303, 11839.822, 12543.854, 16 | }; 17 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/MIDIUSB/src/pitchToNote.h: -------------------------------------------------------------------------------- 1 | #define pitchC8 108 2 | 3 | #define pitchB7 107 4 | #define pitchB7b 106 5 | #define pitchA7 105 6 | #define pitchA7b 104 7 | #define pitchG7 103 8 | #define pitchG7b 102 9 | #define pitchF7 101 10 | #define pitchE7 100 11 | #define pitchE7b 99 12 | #define pitchD7 98 13 | #define pitchD7b 97 14 | #define pitchC7 96 15 | 16 | #define pitchB6 95 17 | #define pitchB6b 94 18 | #define pitchA6 93 19 | #define pitchA6b 92 20 | #define pitchG6 91 21 | #define pitchG6b 90 22 | #define pitchF6 89 23 | #define pitchE6 88 24 | #define pitchE6b 87 25 | #define pitchD6 86 26 | #define pitchD6b 85 27 | #define pitchC6 84 28 | 29 | #define pitchB5 83 30 | #define pitchB5b 82 31 | #define pitchA5 81 32 | #define pitchA5b 80 33 | #define pitchG5 79 34 | #define pitchG5b 78 35 | #define pitchF5 77 36 | #define pitchE5 76 37 | #define pitchE5b 75 38 | #define pitchD5 74 39 | #define pitchD5b 73 40 | #define pitchC5 72 41 | 42 | #define pitchB4 71 43 | #define pitchB4b 70 44 | #define pitchA4 69 45 | #define pitchA4b 68 46 | #define pitchG4 67 47 | #define pitchG4b 66 48 | #define pitchF4 65 49 | #define pitchE4 64 50 | #define pitchE4b 63 51 | #define pitchD4 62 52 | #define pitchD4b 61 53 | #define pitchC4 60 54 | 55 | #define pitchB3 59 56 | #define pitchB3b 58 57 | #define pitchA3 57 58 | #define pitchA3b 56 59 | #define pitchG3 55 60 | #define pitchG3b 54 61 | #define pitchF3 53 62 | #define pitchE3 52 63 | #define pitchE3b 51 64 | #define pitchD3 50 65 | #define pitchD3b 49 66 | #define pitchC3 48 67 | 68 | #define pitchB2 47 69 | #define pitchB2b 46 70 | #define pitchA2 45 71 | #define pitchA2b 44 72 | #define pitchG2 43 73 | #define pitchG2b 42 74 | #define pitchF2 41 75 | #define pitchE2 40 76 | #define pitchE2b 39 77 | #define pitchD2 38 78 | #define pitchD2b 37 79 | #define pitchC2 36 80 | 81 | #define pitchB1 35 82 | #define pitchB1b 34 83 | #define pitchA1 33 84 | #define pitchA1b 32 85 | #define pitchG1 31 86 | #define pitchG1b 30 87 | #define pitchF1 29 88 | #define pitchE1 28 89 | #define pitchE1b 27 90 | #define pitchD1 26 91 | #define pitchD1b 25 92 | #define pitchC1 24 93 | 94 | #define pitchB0 23 95 | #define pitchB0b 22 96 | #define pitchA0 21 97 | /// Full 88 key range note pitch high to low midi byte value mapping array 98 | const int notePitch[] = {pitchC8, 99 | pitchB7, pitchB7b, pitchA7, pitchA7b, pitchG7, pitchG7b, pitchF7, pitchE7, pitchE7b, pitchD7, pitchD7b, pitchC7, 100 | pitchB6, pitchB6b, pitchA6, pitchA6b, pitchG6, pitchG6b, pitchF6, pitchE6, pitchE6b, pitchD6, pitchD6b, pitchC6, 101 | pitchB5, pitchB5b, pitchA5, pitchA5b, pitchG5, pitchG5b, pitchF5, pitchE5, pitchE5b, pitchD5, pitchD5b, pitchC5, 102 | pitchB4, pitchB4b, pitchA4, pitchA4b, pitchG4, pitchG4b, pitchF4, pitchE4, pitchE4b, pitchD4, pitchD4b, pitchC4, 103 | pitchB3, pitchB3b, pitchA3, pitchA3b, pitchG3, pitchG3b, pitchF3, pitchE3, pitchE3b, pitchD3, pitchD3b, pitchC3, 104 | pitchB2, pitchB2b, pitchA2, pitchA6b, pitchG2, pitchG2b, pitchF2, pitchE2, pitchE2b, pitchD2, pitchD2b, pitchC2, 105 | pitchB1, pitchB1b, pitchA1, pitchA1b, pitchG1, pitchG1b, pitchF1, pitchE1, pitchE1b, pitchD1, pitchD1b, pitchC1, 106 | pitchB0, pitchB0b, pitchA0}; 107 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Multiplexer4067/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Multiplexer4067/.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear on external disk 35 | .Spotlight-V100 36 | .Trashes 37 | 38 | # Directories potentially created on remote AFP share 39 | .AppleDB 40 | .AppleDesktop 41 | Network Trash Folder 42 | Temporary Items 43 | .apdisk 44 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Multiplexer4067/Multiplexer4067.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include "Multiplexer4067.h" 4 | 5 | static const uint8_t _muxChAddress[16][4] = { 6 | {0,0,0,0}, //channel 0 7 | {1,0,0,0}, //channel 1 8 | {0,1,0,0}, //channel 2 9 | {1,1,0,0}, //channel 3 10 | {0,0,1,0}, //channel 4 11 | {1,0,1,0}, //channel 5 12 | {0,1,1,0}, //channel 6 13 | {1,1,1,0}, //channel 7 14 | {0,0,0,1}, //channel 8 15 | {1,0,0,1}, //channel 9 16 | {0,1,0,1}, //channel 10 17 | {1,1,0,1}, //channel 11 18 | {0,0,1,1}, //channel 12 19 | {1,0,1,1}, //channel 13 20 | {0,1,1,1}, //channel 14 21 | {1,1,1,1} //channel 15 22 | }; 23 | 24 | 25 | Multiplexer4067::Multiplexer4067(const uint8_t S0,const uint8_t S1,const uint8_t S2,const uint8_t S3,const uint8_t SIG){ 26 | _adrsPin[0] = S0; 27 | _adrsPin[1] = S1; 28 | _adrsPin[2] = S2; 29 | _adrsPin[3] = S3; 30 | _sig = SIG; 31 | } 32 | 33 | void Multiplexer4067::begin(uint8_t dir){ 34 | uint8_t i; 35 | for (i = 0; i < 4; i++){ 36 | pinMode(_adrsPin[i], OUTPUT); 37 | digitalWrite(_adrsPin[i],LOW); 38 | } 39 | if (dir != 1) { //out 40 | _dir = 0; 41 | pinMode(_sig, OUTPUT); 42 | } else { 43 | _dir = 1; 44 | } 45 | } 46 | 47 | int Multiplexer4067::readChannel(uint8_t ch,uint8_t readings){ 48 | if (_dir > 0){ 49 | uint8_t i; 50 | if (ch > 15) ch = 15; 51 | if (readings < 1) readings = 1; 52 | int temp = 0; 53 | _addressing(ch); 54 | for (i=0;i>>>>>>>>>>> Description <<<<<<<<<<<<<<< 11 | ------------------------------------------------------------------------------------- 12 | The Texas Instruments CD4067 it's a CMOS multiplexer, you can use to scan 16 analog values 13 | (example:pots!) and feed any analog input of your processor. 14 | ------------------------------------------------------------------------------------- 15 | >>>>>>>>>>>>>>>>>>>>> Wiring <<<<<<<<<<<<<<<<<<<<<<<<< 16 | ------------------------------------------------------------------------------------- 17 | S0,S1,S2,S3 = addressing 18 | SIG = output to an analog pin 19 | EN = tied to GND 20 | 21 | */ 22 | 23 | #ifndef _MULTIPLEX4067_H_ 24 | #define _MULTIPLEX4067_H_ 25 | #include "Arduino.h" 26 | 27 | 28 | class Multiplexer4067 { 29 | public: 30 | 31 | Multiplexer4067(const uint8_t S0,const uint8_t S1,const uint8_t S2,const uint8_t S3,const uint8_t SIG); 32 | void begin(uint8_t dir=1); 33 | int readChannel(uint8_t ch,uint8_t readings=5); 34 | 35 | private: 36 | 37 | uint8_t _adrsPin[4]; 38 | uint8_t _sig; 39 | uint8_t _dir; 40 | void _addressing(uint8_t ch); 41 | 42 | }; 43 | #endif -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Multiplexer4067/README.md: -------------------------------------------------------------------------------- 1 | # Multiplexer4067 2 | Super easy CD4067 multiplexer library, for all MCU's. It's really basic but should work. I've coded fastly for a friend project. 3 | -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Multiplexer4067/examples/basic/basic.ino: -------------------------------------------------------------------------------- 1 | #include "Multiplexer4067.h" 2 | 3 | 4 | Multiplexer4067 mplex = Multiplexer4067(3,4,5,6,A0); 5 | 6 | 7 | void setup(){ 8 | mplex.begin(); 9 | mplex.readChannel(0);//it read the channel 0 10 | //default it read 5 times but can be changed: 11 | //mplex.readChannel(0,10); 12 | } 13 | 14 | void loop(){ 15 | } -------------------------------------------------------------------------------- /_Faduino_2023_10_18/libraries/Multiplexer4067/keywords.txt: -------------------------------------------------------------------------------- 1 | Multiplexer4067 KEYWORD1 2 | readChannel KEYWORD2 3 | 4 | --------------------------------------------------------------------------------