Full Code of ClimbSnail/SnailHeater for AI

main 09cca5ba4d6e cached
1890 files
103.0 MB
26.5M tokens
4711 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (105,920K chars total). Download the full file to get everything.
Repository: ClimbSnail/SnailHeater
Branch: main
Commit: 09cca5ba4d6e
Files: 1890
Total size: 103.0 MB

Directory structure:
gitextract_sdp86rks/

├── .gitignore
├── Doc/
│   ├── JBC245分度表.xlsx
│   ├── V2.0功率板修改/
│   │   └── 功率板V2.0硬件版本修改方法.md
│   ├── V2.5.x组装教程/
│   │   ├── SnailHeater使用说明书.md
│   │   ├── SnailHeater硬件V2.5.x版本组装教程.md
│   │   └── 一车升级二车教程.md
│   ├── V2.6.x组装教程/
│   │   └── SnailHeater硬件V2.6.x版本组装教程.md
│   ├── other.md
│   ├── 新版优化记录.md
│   ├── 组装教程/
│   │   └── SnailHeater接线教程.md
│   ├── 蜗牛台使用说明书/
│   │   └── 蜗牛台使用说明书.md
│   ├── 蜗牛台全系接线引脚定义/
│   │   └── 蜗牛台全系接线引脚定义.md
│   └── 重量统计.md
├── Images/
│   ├── .gitignore
│   ├── ico/
│   │   ├── img_type_text_C245_215x81.psd
│   │   ├── img_wake_type_None.psd
│   │   ├── img_wake_type_change.psd
│   │   └── 烙铁芯.psd
│   └── 面板图标元素/
│       ├── SnailHeater.psd
│       ├── SnailHeater2字体roboto medium italic.psd
│       ├── SnailHeater字体roboto medium italic.psd
│       └── snailHeater字样.dxf
├── LICENSE
├── Model/
│   ├── SnailHeater电源支架 v6.stl
│   └── 屏幕辅助贴合固定板 v1.stl
├── Multisim/
│   ├── mos分压.ms14
│   ├── 拉高电阻干扰处理.ms14
│   ├── 拉高电阻干扰处理.ms14 (Security copy)
│   ├── 滤波.ms14
│   ├── 烙铁mos管驱动.ms14
│   └── 烙铁电压切换.ms14
├── README.md
├── Software/
│   └── firmware_demo/
│       ├── .gitignore
│       ├── include/
│       │   └── README
│       ├── lib/
│       │   ├── ESP32Time/
│       │   │   ├── ESP32Time.cpp
│       │   │   ├── ESP32Time.h
│       │   │   ├── LICENSE
│       │   │   ├── README.md
│       │   │   ├── examples/
│       │   │   │   └── esp32_time/
│       │   │   │       └── esp32_time.ino
│       │   │   ├── keywords.txt
│       │   │   ├── library.json
│       │   │   └── library.properties
│       │   ├── FastLED/
│       │   │   ├── .gitignore
│       │   │   ├── LICENSE
│       │   │   ├── PORTING.md
│       │   │   ├── README.md
│       │   │   ├── ci/
│       │   │   │   ├── ci-compile
│       │   │   │   └── ci-flags.py
│       │   │   ├── code_of_conduct.md
│       │   │   ├── component.mk
│       │   │   ├── docs/
│       │   │   │   ├── Doxyfile
│       │   │   │   └── mainpage.dox
│       │   │   ├── examples/
│       │   │   │   ├── AnalogOutput/
│       │   │   │   │   └── AnalogOutput.ino
│       │   │   │   ├── Blink/
│       │   │   │   │   └── Blink.ino
│       │   │   │   ├── ColorPalette/
│       │   │   │   │   └── ColorPalette.ino
│       │   │   │   ├── ColorTemperature/
│       │   │   │   │   └── ColorTemperature.ino
│       │   │   │   ├── Cylon/
│       │   │   │   │   └── Cylon.ino
│       │   │   │   ├── DemoReel100/
│       │   │   │   │   └── DemoReel100.ino
│       │   │   │   ├── Fire2012/
│       │   │   │   │   └── Fire2012.ino
│       │   │   │   ├── Fire2012WithPalette/
│       │   │   │   │   └── Fire2012WithPalette.ino
│       │   │   │   ├── FirstLight/
│       │   │   │   │   └── FirstLight.ino
│       │   │   │   ├── Multiple/
│       │   │   │   │   ├── ArrayOfLedArrays/
│       │   │   │   │   │   └── ArrayOfLedArrays.ino
│       │   │   │   │   ├── MirroringSample/
│       │   │   │   │   │   └── MirroringSample.ino
│       │   │   │   │   ├── MultiArrays/
│       │   │   │   │   │   └── MultiArrays.ino
│       │   │   │   │   ├── MultipleStripsInOneArray/
│       │   │   │   │   │   └── MultipleStripsInOneArray.ino
│       │   │   │   │   ├── OctoWS2811Demo/
│       │   │   │   │   │   └── OctoWS2811Demo.ino
│       │   │   │   │   └── ParallelOutputDemo/
│       │   │   │   │       └── ParallelOutputDemo.ino
│       │   │   │   ├── Noise/
│       │   │   │   │   └── Noise.ino
│       │   │   │   ├── NoisePlayground/
│       │   │   │   │   └── NoisePlayground.ino
│       │   │   │   ├── NoisePlusPalette/
│       │   │   │   │   └── NoisePlusPalette.ino
│       │   │   │   ├── 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.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/
│       │   │   │   │   ├── math8.h
│       │   │   │   │   ├── random8.h
│       │   │   │   │   ├── scale8.h
│       │   │   │   │   └── trig8.h
│       │   │   │   ├── lib8tion.cpp
│       │   │   │   ├── lib8tion.h
│       │   │   │   ├── noise.cpp
│       │   │   │   ├── noise.h
│       │   │   │   ├── pixelset.h
│       │   │   │   ├── pixeltypes.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
│       │   │   │   │   │   ├── 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
│       │   │   │   ├── platforms.cpp
│       │   │   │   ├── platforms.h
│       │   │   │   ├── power_mgt.cpp
│       │   │   │   ├── power_mgt.h
│       │   │   │   └── wiring.cpp
│       │   │   └── workspace.code-workspace
│       │   ├── README
│       │   ├── TFT_eSPI/
│       │   │   ├── .gitattributes
│       │   │   ├── .github/
│       │   │   │   └── ISSUE_TEMPLATE/
│       │   │   │       └── issue-template.md
│       │   │   ├── .gitignore
│       │   │   ├── CMakeLists.txt
│       │   │   ├── Extensions/
│       │   │   │   ├── Button.cpp
│       │   │   │   ├── Button.h
│       │   │   │   ├── Smooth_font.cpp
│       │   │   │   ├── Smooth_font.h
│       │   │   │   ├── Sprite.cpp
│       │   │   │   ├── Sprite.h
│       │   │   │   ├── Touch.cpp
│       │   │   │   └── Touch.h
│       │   │   ├── Fonts/
│       │   │   │   ├── Custom/
│       │   │   │   │   ├── Orbitron_Light_24.h
│       │   │   │   │   ├── Orbitron_Light_32.h
│       │   │   │   │   ├── Roboto_Thin_24.h
│       │   │   │   │   ├── Satisfy_24.h
│       │   │   │   │   └── Yellowtail_32.h
│       │   │   │   ├── Font16.c
│       │   │   │   ├── Font16.h
│       │   │   │   ├── Font32rle.c
│       │   │   │   ├── Font32rle.h
│       │   │   │   ├── Font64rle.c
│       │   │   │   ├── Font64rle.h
│       │   │   │   ├── Font72rle.c
│       │   │   │   ├── Font72rle.h
│       │   │   │   ├── Font72x53rle.c
│       │   │   │   ├── Font72x53rle.h
│       │   │   │   ├── Font7srle.c
│       │   │   │   ├── Font7srle.h
│       │   │   │   ├── GFXFF/
│       │   │   │   │   ├── FreeMono12pt7b.h
│       │   │   │   │   ├── FreeMono18pt7b.h
│       │   │   │   │   ├── FreeMono24pt7b.h
│       │   │   │   │   ├── FreeMono9pt7b.h
│       │   │   │   │   ├── FreeMonoBold12pt7b.h
│       │   │   │   │   ├── FreeMonoBold18pt7b.h
│       │   │   │   │   ├── FreeMonoBold24pt7b.h
│       │   │   │   │   ├── FreeMonoBold9pt7b.h
│       │   │   │   │   ├── FreeMonoBoldOblique12pt7b.h
│       │   │   │   │   ├── FreeMonoBoldOblique18pt7b.h
│       │   │   │   │   ├── FreeMonoBoldOblique24pt7b.h
│       │   │   │   │   ├── FreeMonoBoldOblique9pt7b.h
│       │   │   │   │   ├── FreeMonoOblique12pt7b.h
│       │   │   │   │   ├── FreeMonoOblique18pt7b.h
│       │   │   │   │   ├── FreeMonoOblique24pt7b.h
│       │   │   │   │   ├── FreeMonoOblique9pt7b.h
│       │   │   │   │   ├── FreeSans12pt7b.h
│       │   │   │   │   ├── FreeSans18pt7b.h
│       │   │   │   │   ├── FreeSans24pt7b.h
│       │   │   │   │   ├── FreeSans9pt7b.h
│       │   │   │   │   ├── FreeSansBold12pt7b.h
│       │   │   │   │   ├── FreeSansBold18pt7b.h
│       │   │   │   │   ├── FreeSansBold24pt7b.h
│       │   │   │   │   ├── FreeSansBold9pt7b.h
│       │   │   │   │   ├── FreeSansBoldOblique12pt7b.h
│       │   │   │   │   ├── FreeSansBoldOblique18pt7b.h
│       │   │   │   │   ├── FreeSansBoldOblique24pt7b.h
│       │   │   │   │   ├── FreeSansBoldOblique9pt7b.h
│       │   │   │   │   ├── FreeSansOblique12pt7b.h
│       │   │   │   │   ├── FreeSansOblique18pt7b.h
│       │   │   │   │   ├── FreeSansOblique24pt7b.h
│       │   │   │   │   ├── FreeSansOblique9pt7b.h
│       │   │   │   │   ├── FreeSerif12pt7b.h
│       │   │   │   │   ├── FreeSerif18pt7b.h
│       │   │   │   │   ├── FreeSerif24pt7b.h
│       │   │   │   │   ├── FreeSerif9pt7b.h
│       │   │   │   │   ├── FreeSerifBold12pt7b.h
│       │   │   │   │   ├── FreeSerifBold18pt7b.h
│       │   │   │   │   ├── FreeSerifBold24pt7b.h
│       │   │   │   │   ├── FreeSerifBold9pt7b.h
│       │   │   │   │   ├── FreeSerifBoldItalic12pt7b.h
│       │   │   │   │   ├── FreeSerifBoldItalic18pt7b.h
│       │   │   │   │   ├── FreeSerifBoldItalic24pt7b.h
│       │   │   │   │   ├── FreeSerifBoldItalic9pt7b.h
│       │   │   │   │   ├── FreeSerifItalic12pt7b.h
│       │   │   │   │   ├── FreeSerifItalic18pt7b.h
│       │   │   │   │   ├── FreeSerifItalic24pt7b.h
│       │   │   │   │   ├── FreeSerifItalic9pt7b.h
│       │   │   │   │   ├── TomThumb.h
│       │   │   │   │   ├── gfxfont.h
│       │   │   │   │   ├── license.txt
│       │   │   │   │   └── print.txt
│       │   │   │   ├── TrueType/
│       │   │   │   │   └── Not_yet_supported.txt
│       │   │   │   └── glcdfont.c
│       │   │   ├── Kconfig
│       │   │   ├── Processors/
│       │   │   │   ├── TFT_eSPI_ESP32.c
│       │   │   │   ├── TFT_eSPI_ESP32.h
│       │   │   │   ├── TFT_eSPI_ESP32_C3.c
│       │   │   │   ├── TFT_eSPI_ESP32_C3.h
│       │   │   │   ├── TFT_eSPI_ESP32_S3.c
│       │   │   │   ├── TFT_eSPI_ESP32_S3.h
│       │   │   │   ├── TFT_eSPI_ESP8266.c
│       │   │   │   ├── TFT_eSPI_ESP8266.h
│       │   │   │   ├── TFT_eSPI_Generic.c
│       │   │   │   ├── TFT_eSPI_Generic.h
│       │   │   │   ├── TFT_eSPI_RP2040.c
│       │   │   │   ├── TFT_eSPI_RP2040.h
│       │   │   │   ├── TFT_eSPI_STM32.c
│       │   │   │   ├── TFT_eSPI_STM32.h
│       │   │   │   ├── pio_16bit_parallel.pio
│       │   │   │   ├── pio_16bit_parallel.pio.h
│       │   │   │   ├── pio_8bit_parallel.pio
│       │   │   │   ├── pio_8bit_parallel.pio.h
│       │   │   │   ├── pio_SPI.pio
│       │   │   │   ├── pio_SPI.pio.h
│       │   │   │   ├── pio_SPI_18bit.pio
│       │   │   │   └── pio_SPI_18bit.pio.h
│       │   │   ├── README.md
│       │   │   ├── README.txt
│       │   │   ├── TFT_Drivers/
│       │   │   │   ├── EPD_Defines.h
│       │   │   │   ├── GC9A01_Defines.h
│       │   │   │   ├── GC9A01_Init.h
│       │   │   │   ├── GC9A01_Rotation.h
│       │   │   │   ├── HX8357B_Defines.h
│       │   │   │   ├── HX8357B_Init.h
│       │   │   │   ├── HX8357B_Rotation.h
│       │   │   │   ├── HX8357C_Defines.h
│       │   │   │   ├── HX8357C_Init.h
│       │   │   │   ├── HX8357C_Rotation.h
│       │   │   │   ├── HX8357D_Defines.h
│       │   │   │   ├── HX8357D_Init.h
│       │   │   │   ├── HX8357D_Rotation.h
│       │   │   │   ├── ILI9163_Defines.h
│       │   │   │   ├── ILI9163_Init.h
│       │   │   │   ├── ILI9163_Rotation.h
│       │   │   │   ├── ILI9225_Defines.h
│       │   │   │   ├── ILI9225_Init.h
│       │   │   │   ├── ILI9225_Rotation.h
│       │   │   │   ├── ILI9341_Defines.h
│       │   │   │   ├── ILI9341_Init.h
│       │   │   │   ├── ILI9341_Rotation.h
│       │   │   │   ├── ILI9481_Defines.h
│       │   │   │   ├── ILI9481_Init.h
│       │   │   │   ├── ILI9481_Rotation.h
│       │   │   │   ├── ILI9486_Defines.h
│       │   │   │   ├── ILI9486_Init.h
│       │   │   │   ├── ILI9486_Rotation.h
│       │   │   │   ├── ILI9488_Defines.h
│       │   │   │   ├── ILI9488_Init.h
│       │   │   │   ├── ILI9488_Rotation.h
│       │   │   │   ├── R61581_Defines.h
│       │   │   │   ├── R61581_Init.h
│       │   │   │   ├── R61581_Rotation.h
│       │   │   │   ├── RM68120_Defines.h
│       │   │   │   ├── RM68120_Init.h
│       │   │   │   ├── RM68120_Rotation.h
│       │   │   │   ├── RM68140_Defines.h
│       │   │   │   ├── RM68140_Init.h
│       │   │   │   ├── RM68140_Rotation.h
│       │   │   │   ├── S6D02A1_Defines.h
│       │   │   │   ├── S6D02A1_Init.h
│       │   │   │   ├── S6D02A1_Rotation.h
│       │   │   │   ├── SSD1351_Defines.h
│       │   │   │   ├── SSD1351_Init.h
│       │   │   │   ├── SSD1351_Rotation.h
│       │   │   │   ├── SSD1963_Defines.h
│       │   │   │   ├── SSD1963_Init.h
│       │   │   │   ├── SSD1963_Rotation.h
│       │   │   │   ├── ST7735_Defines.h
│       │   │   │   ├── ST7735_Init.h
│       │   │   │   ├── ST7735_Rotation.h
│       │   │   │   ├── ST7789_2_Defines.h
│       │   │   │   ├── ST7789_2_Init.h
│       │   │   │   ├── ST7789_2_Rotation.h
│       │   │   │   ├── ST7789_Defines.h
│       │   │   │   ├── ST7789_Init.h
│       │   │   │   ├── ST7789_Rotation.h
│       │   │   │   ├── ST7796_Defines.h
│       │   │   │   ├── ST7796_Init.h
│       │   │   │   └── ST7796_Rotation.h
│       │   │   ├── TFT_config.h
│       │   │   ├── TFT_eSPI.cpp
│       │   │   ├── TFT_eSPI.h
│       │   │   ├── Tools/
│       │   │   │   ├── Create_Smooth_Font/
│       │   │   │   │   └── Create_font/
│       │   │   │   │       ├── Create_font.pde
│       │   │   │   │       └── FontFiles/
│       │   │   │   │           └── Final-Frontier28.vlw
│       │   │   │   ├── Screenshot_client/
│       │   │   │   │   └── Screenshot_client.pde
│       │   │   │   └── bmp2array4bit/
│       │   │   │       ├── README.md
│       │   │   │       └── bmp2array4bit.py
│       │   │   ├── User_Setup.h
│       │   │   ├── User_Setup_Select.h
│       │   │   ├── User_Setups/
│       │   │   │   ├── Setup100_RP2040_ILI9488_parallel.h
│       │   │   │   ├── Setup101_RP2040_ILI9481_parallel.h
│       │   │   │   ├── Setup102_RP2040_ILI9341_parallel.h
│       │   │   │   ├── Setup103_RP2040_ILI9486_parallel.h
│       │   │   │   ├── Setup104_RP2040_ST7796_parallel.h
│       │   │   │   ├── Setup105_RP2040_ST7796_16bit_parallel.h
│       │   │   │   ├── Setup106_RP2040_ILI9481_16bit_parallel.h
│       │   │   │   ├── Setup107_RP2040_ILI9341_16bit_parallel.h
│       │   │   │   ├── Setup10_RPi_touch_ILI9486.h
│       │   │   │   ├── Setup11_RPi_touch_ILI9486.h
│       │   │   │   ├── Setup12_M5Stack_Basic_Core.h
│       │   │   │   ├── Setup135_ST7789.h
│       │   │   │   ├── Setup136_LilyGo_TTV.h
│       │   │   │   ├── Setup137_LilyGo_TDisplay_RP2040.h
│       │   │   │   ├── Setup13_ILI9481_Parallel.h
│       │   │   │   ├── Setup14_ILI9341_Parallel.h
│       │   │   │   ├── Setup15_HX8357D.h
│       │   │   │   ├── Setup16_ILI9488_Parallel.h
│       │   │   │   ├── Setup17_ePaper.h
│       │   │   │   ├── Setup18_ST7789.h
│       │   │   │   ├── Setup19_RM68140_Parallel.h
│       │   │   │   ├── Setup1_ILI9341.h
│       │   │   │   ├── Setup200_GC9A01.h
│       │   │   │   ├── Setup201_WT32_SC01.h
│       │   │   │   ├── Setup202_SSD1351_128.h
│       │   │   │   ├── Setup203_ST7789.h
│       │   │   │   ├── Setup204_ESP32_TouchDown.h
│       │   │   │   ├── Setup205_ESP32_TouchDown_S3.h
│       │   │   │   ├── Setup20_ILI9488.h
│       │   │   │   ├── Setup21_ILI9488.h
│       │   │   │   ├── Setup22_TTGO_T4.h
│       │   │   │   ├── Setup22_TTGO_T4_v1.3.h
│       │   │   │   ├── Setup23_TTGO_TM.h
│       │   │   │   ├── Setup24_ST7789.h
│       │   │   │   ├── Setup25_TTGO_T_Display.h
│       │   │   │   ├── Setup26_TTGO_T_Wristband.h
│       │   │   │   ├── Setup27_RPi_ST7796_ESP32.h
│       │   │   │   ├── Setup28_RPi_ST7796_ESP8266.h
│       │   │   │   ├── Setup29_ILI9341_STM32.h
│       │   │   │   ├── Setup2_ST7735.h
│       │   │   │   ├── Setup30_ILI9341_Parallel_STM32.h
│       │   │   │   ├── Setup31_ST7796_Parallel_STM32.h
│       │   │   │   ├── Setup32_ILI9341_STM32F103.h
│       │   │   │   ├── Setup33_RPi_ILI9486_STM32.h
│       │   │   │   ├── Setup34_ILI9481_Parallel_STM32.h
│       │   │   │   ├── Setup35_ILI9341_STM32_Port_Bus.h
│       │   │   │   ├── Setup36_RPi_touch_ST7796.h
│       │   │   │   ├── Setup3_ILI9163.h
│       │   │   │   ├── Setup43_ST7735.h
│       │   │   │   ├── Setup44_TTGO_CameraPlus.h
│       │   │   │   ├── Setup45_TTGO_T_Watch.h
│       │   │   │   ├── Setup46_GC9A01_ESP32.h
│       │   │   │   ├── Setup47_ST7735.h
│       │   │   │   ├── Setup4_S6D02A1.h
│       │   │   │   ├── Setup50_SSD1963_Parallel.h
│       │   │   │   ├── Setup51_LilyPi_ILI9481.h
│       │   │   │   ├── Setup52_LilyPi_ST7796.h
│       │   │   │   ├── Setup5_RPi_ILI9486.h
│       │   │   │   ├── Setup60_RP2040_ILI9341.h
│       │   │   │   ├── Setup61_RP2040_ILI9341_PIO_SPI.h
│       │   │   │   ├── Setup62_RP2040_Nano_Connect_ILI9341.h
│       │   │   │   ├── Setup6_RPi_Wr_ILI9486.h
│       │   │   │   ├── Setup70_ESP32_S2_ILI9341.h
│       │   │   │   ├── Setup70b_ESP32_S3_ILI9341.h
│       │   │   │   ├── Setup70c_ESP32_C3_ILI9341.h
│       │   │   │   ├── Setup70d_ILI9488_S3_Parallel.h
│       │   │   │   ├── Setup71_ESP32_S2_ST7789.h
│       │   │   │   ├── Setup72_ESP32_ST7789_172x320.h
│       │   │   │   ├── Setup7_ST7735_128x128.h
│       │   │   │   ├── Setup8_ILI9163_128x128.h
│       │   │   │   ├── Setup9_ST7735_Overlap.h
│       │   │   │   ├── SetupX_Template.h
│       │   │   │   └── User_Custom_Fonts.h
│       │   │   ├── docs/
│       │   │   │   └── PlatformIO/
│       │   │   │       └── Configuring options.txt
│       │   │   ├── examples/
│       │   │   │   ├── 160 x 128/
│       │   │   │   │   ├── Arduino_Life/
│       │   │   │   │   │   └── Arduino_Life.ino
│       │   │   │   │   ├── Pong_v3/
│       │   │   │   │   │   └── Pong_v3.ino
│       │   │   │   │   ├── RLE_Font_test/
│       │   │   │   │   │   └── RLE_Font_test.ino
│       │   │   │   │   ├── TFT_Char_times/
│       │   │   │   │   │   └── TFT_Char_times.ino
│       │   │   │   │   ├── TFT_Clock/
│       │   │   │   │   │   └── TFT_Clock.ino
│       │   │   │   │   ├── TFT_Clock_Digital/
│       │   │   │   │   │   └── TFT_Clock_Digital.ino
│       │   │   │   │   ├── TFT_Ellipse/
│       │   │   │   │   │   └── TFT_Ellipse.ino
│       │   │   │   │   ├── TFT_Meter_5/
│       │   │   │   │   │   └── TFT_Meter_5.ino
│       │   │   │   │   ├── TFT_Print_Test/
│       │   │   │   │   │   └── TFT_Print_Test.ino
│       │   │   │   │   ├── TFT_Rainbow/
│       │   │   │   │   │   └── TFT_Rainbow.ino
│       │   │   │   │   ├── TFT_flash_jpg/
│       │   │   │   │   │   ├── TFT_flash_jpg.ino
│       │   │   │   │   │   ├── jpeg1.h
│       │   │   │   │   │   ├── jpeg2.h
│       │   │   │   │   │   ├── jpeg3.h
│       │   │   │   │   │   └── jpeg4.h
│       │   │   │   │   ├── TFT_graphicstest_PDQ3/
│       │   │   │   │   │   └── TFT_graphicstest_PDQ3.ino
│       │   │   │   │   ├── TFT_graphicstest_small/
│       │   │   │   │   │   └── TFT_graphicstest_small.ino
│       │   │   │   │   └── UTFT_demo_fast/
│       │   │   │   │       └── UTFT_demo_fast.ino
│       │   │   │   ├── 320 x 240/
│       │   │   │   │   ├── All_Free_Fonts_Demo/
│       │   │   │   │   │   ├── All_Free_Fonts_Demo.ino
│       │   │   │   │   │   └── Free_Fonts.h
│       │   │   │   │   ├── Cellular_Automata/
│       │   │   │   │   │   └── Cellular_Automata.ino
│       │   │   │   │   ├── Free_Font_Demo/
│       │   │   │   │   │   ├── Free_Font_Demo.ino
│       │   │   │   │   │   └── Free_Fonts.h
│       │   │   │   │   ├── Keypad_240x320/
│       │   │   │   │   │   └── Keypad_240x320.ino
│       │   │   │   │   ├── RLE_Font_test/
│       │   │   │   │   │   └── RLE_Font_test.ino
│       │   │   │   │   ├── Read_ID_bitbash/
│       │   │   │   │   │   └── Read_ID_bitbash.ino
│       │   │   │   │   ├── TFT_ArcFill/
│       │   │   │   │   │   └── TFT_ArcFill.ino
│       │   │   │   │   ├── TFT_Char_times/
│       │   │   │   │   │   └── TFT_Char_times.ino
│       │   │   │   │   ├── TFT_Clock/
│       │   │   │   │   │   └── TFT_Clock.ino
│       │   │   │   │   ├── TFT_Clock_Digital/
│       │   │   │   │   │   └── TFT_Clock_Digital.ino
│       │   │   │   │   ├── TFT_Custom_Fonts/
│       │   │   │   │   │   └── TFT_Custom_Fonts.ino
│       │   │   │   │   ├── TFT_Ellipse/
│       │   │   │   │   │   └── TFT_Ellipse.ino
│       │   │   │   │   ├── TFT_FillArcSpiral/
│       │   │   │   │   │   └── TFT_FillArcSpiral.ino
│       │   │   │   │   ├── TFT_Float_Test/
│       │   │   │   │   │   └── TFT_Float_Test.ino
│       │   │   │   │   ├── TFT_Mandlebrot/
│       │   │   │   │   │   └── TFT_Mandlebrot.ino
│       │   │   │   │   ├── TFT_Matrix/
│       │   │   │   │   │   └── TFT_Matrix.ino
│       │   │   │   │   ├── TFT_Meter_linear/
│       │   │   │   │   │   └── TFT_Meter_linear.ino
│       │   │   │   │   ├── TFT_Meters/
│       │   │   │   │   │   └── TFT_Meters.ino
│       │   │   │   │   ├── TFT_Pie_Chart/
│       │   │   │   │   │   └── TFT_Pie_Chart.ino
│       │   │   │   │   ├── TFT_Pong/
│       │   │   │   │   │   └── TFT_Pong.ino
│       │   │   │   │   ├── TFT_Print_Test/
│       │   │   │   │   │   └── TFT_Print_Test.ino
│       │   │   │   │   ├── TFT_Rainbow_one_lib/
│       │   │   │   │   │   └── TFT_Rainbow_one_lib.ino
│       │   │   │   │   ├── TFT_Read_Reg/
│       │   │   │   │   │   └── TFT_Read_Reg.ino
│       │   │   │   │   ├── TFT_Spiro/
│       │   │   │   │   │   └── TFT_Spiro.ino
│       │   │   │   │   ├── TFT_Starfield/
│       │   │   │   │   │   └── TFT_Starfield.ino
│       │   │   │   │   ├── TFT_String_Align/
│       │   │   │   │   │   └── TFT_String_Align.ino
│       │   │   │   │   ├── TFT_Terminal/
│       │   │   │   │   │   └── TFT_Terminal.ino
│       │   │   │   │   ├── TFT_graphicstest_PDQ/
│       │   │   │   │   │   └── TFT_graphicstest_PDQ.ino
│       │   │   │   │   ├── TFT_graphicstest_one_lib/
│       │   │   │   │   │   └── TFT_graphicstest_one_lib.ino
│       │   │   │   │   └── UTFT_demo/
│       │   │   │   │       └── UTFT_demo.ino
│       │   │   │   ├── 480 x 320/
│       │   │   │   │   ├── Cellular_Automata/
│       │   │   │   │   │   └── Cellular_Automata.ino
│       │   │   │   │   ├── Demo_3D_cube/
│       │   │   │   │   │   └── Demo_3D_cube.ino
│       │   │   │   │   ├── Free_Font_Demo/
│       │   │   │   │   │   ├── Free_Font_Demo.ino
│       │   │   │   │   │   └── Free_Fonts.h
│       │   │   │   │   ├── Graph_2/
│       │   │   │   │   │   └── Graph_2.ino
│       │   │   │   │   ├── Keypad_480x320/
│       │   │   │   │   │   └── Keypad_480x320.ino
│       │   │   │   │   ├── TFT_Char_times/
│       │   │   │   │   │   └── TFT_Char_times.ino
│       │   │   │   │   ├── TFT_Ellipse/
│       │   │   │   │   │   └── TFT_Ellipse.ino
│       │   │   │   │   ├── TFT_Meter_4/
│       │   │   │   │   │   └── TFT_Meter_4.ino
│       │   │   │   │   ├── TFT_Meters/
│       │   │   │   │   │   └── TFT_Meters.ino
│       │   │   │   │   ├── TFT_Padding_demo/
│       │   │   │   │   │   └── TFT_Padding_demo.ino
│       │   │   │   │   ├── TFT_Print_Test/
│       │   │   │   │   │   └── TFT_Print_Test.ino
│       │   │   │   │   ├── TFT_Rainbow480/
│       │   │   │   │   │   └── TFT_Rainbow480.ino
│       │   │   │   │   ├── TFT_String_Align/
│       │   │   │   │   │   └── TFT_String_Align.ino
│       │   │   │   │   ├── TFT_flash_jpg/
│       │   │   │   │   │   ├── TFT_flash_jpg.ino
│       │   │   │   │   │   ├── jpeg1.h
│       │   │   │   │   │   ├── jpeg2.h
│       │   │   │   │   │   ├── jpeg3.h
│       │   │   │   │   │   └── jpeg4.h
│       │   │   │   │   ├── TFT_graphicstest_one_lib/
│       │   │   │   │   │   └── TFT_graphicstest_one_lib.ino
│       │   │   │   │   ├── TFT_ring_meter/
│       │   │   │   │   │   ├── Alert.h
│       │   │   │   │   │   └── TFT_ring_meter.ino
│       │   │   │   │   ├── Touch_Controller_Demo/
│       │   │   │   │   │   └── Touch_Controller_Demo.ino
│       │   │   │   │   └── UTFT_Demo_480x320/
│       │   │   │   │       └── UTFT_Demo_480x320.ino
│       │   │   │   ├── DMA test/
│       │   │   │   │   ├── Bouncy_Circles/
│       │   │   │   │   │   └── Bouncy_Circles.ino
│       │   │   │   │   ├── Flash_Jpg_DMA/
│       │   │   │   │   │   ├── Flash_Jpg_DMA.ino
│       │   │   │   │   │   └── panda.h
│       │   │   │   │   ├── SpriteRotatingCube/
│       │   │   │   │   │   └── SpriteRotatingCube.ino
│       │   │   │   │   └── boing_ball/
│       │   │   │   │       ├── boing_ball.ino
│       │   │   │   │       └── graphic.h
│       │   │   │   ├── Generic/
│       │   │   │   │   ├── Animated_Eyes_1/
│       │   │   │   │   │   ├── Animated_Eyes_1.ino
│       │   │   │   │   │   ├── config.h
│       │   │   │   │   │   ├── data/
│       │   │   │   │   │   │   ├── catEye.h
│       │   │   │   │   │   │   ├── defaultEye.h
│       │   │   │   │   │   │   ├── doeEye.h
│       │   │   │   │   │   │   ├── dragonEye.h
│       │   │   │   │   │   │   ├── goatEye.h
│       │   │   │   │   │   │   ├── logo.h
│       │   │   │   │   │   │   ├── naugaEye.h
│       │   │   │   │   │   │   ├── newtEye.h
│       │   │   │   │   │   │   ├── noScleraEye.h
│       │   │   │   │   │   │   ├── owlEye.h
│       │   │   │   │   │   │   └── terminatorEye.h
│       │   │   │   │   │   ├── eye_functions.ino
│       │   │   │   │   │   ├── user.cpp
│       │   │   │   │   │   ├── user_bat.cpp
│       │   │   │   │   │   └── user_xmas.cpp
│       │   │   │   │   ├── Animated_Eyes_2/
│       │   │   │   │   │   ├── Animated_Eyes_2.ino
│       │   │   │   │   │   ├── config.h
│       │   │   │   │   │   ├── data/
│       │   │   │   │   │   │   ├── catEye.h
│       │   │   │   │   │   │   ├── defaultEye.h
│       │   │   │   │   │   │   ├── doeEye.h
│       │   │   │   │   │   │   ├── dragonEye.h
│       │   │   │   │   │   │   ├── goatEye.h
│       │   │   │   │   │   │   ├── logo.h
│       │   │   │   │   │   │   ├── naugaEye.h
│       │   │   │   │   │   │   ├── newtEye.h
│       │   │   │   │   │   │   ├── noScleraEye.h
│       │   │   │   │   │   │   ├── owlEye.h
│       │   │   │   │   │   │   └── terminatorEye.h
│       │   │   │   │   │   ├── eye_functions.ino
│       │   │   │   │   │   ├── user.cpp
│       │   │   │   │   │   ├── user_bat.cpp
│       │   │   │   │   │   ├── user_xmas.cpp
│       │   │   │   │   │   └── wiring.ino
│       │   │   │   │   ├── ESP32_SDcard_jpeg/
│       │   │   │   │   │   └── ESP32_SDcard_jpeg.ino
│       │   │   │   │   ├── ESP8266_uncannyEyes/
│       │   │   │   │   │   ├── ESP8266_uncannyEyes.ino
│       │   │   │   │   │   ├── defaultEye.h
│       │   │   │   │   │   ├── dragonEye.h
│       │   │   │   │   │   ├── goatEye.h
│       │   │   │   │   │   ├── noScleraEye.h
│       │   │   │   │   │   └── screenshotToConsole.ino
│       │   │   │   │   ├── Gradient_Fill/
│       │   │   │   │   │   └── Gradient_Fill.ino
│       │   │   │   │   ├── Local_Custom_Fonts/
│       │   │   │   │   │   ├── Local_Custom_Fonts.ino
│       │   │   │   │   │   └── MyFont.h
│       │   │   │   │   ├── On_Off_Button/
│       │   │   │   │   │   └── On_Off_Button.ino
│       │   │   │   │   ├── TFT_Button_Label_Datum/
│       │   │   │   │   │   └── TFT_Button_Label_Datum.ino
│       │   │   │   │   ├── TFT_Flash_Bitmap/
│       │   │   │   │   │   ├── Alert.h
│       │   │   │   │   │   ├── Close.h
│       │   │   │   │   │   ├── Info.h
│       │   │   │   │   │   └── TFT_Flash_Bitmap.ino
│       │   │   │   │   ├── TFT_SPIFFS_BMP/
│       │   │   │   │   │   ├── BMP_functions.ino
│       │   │   │   │   │   └── TFT_SPIFFS_BMP.ino
│       │   │   │   │   ├── TFT_Screen_Capture/
│       │   │   │   │   │   ├── TFT_Screen_Capture.ino
│       │   │   │   │   │   ├── processing_sketch.ino
│       │   │   │   │   │   └── screenServer.ino
│       │   │   │   │   ├── Touch_calibrate/
│       │   │   │   │   │   └── Touch_calibrate.ino
│       │   │   │   │   ├── Viewport_Demo/
│       │   │   │   │   │   ├── Viewport_Demo.ino
│       │   │   │   │   │   └── Viewport_commands.ino
│       │   │   │   │   ├── Viewport_graphicstest/
│       │   │   │   │   │   └── Viewport_graphicstest.ino
│       │   │   │   │   ├── alphaBlend_Test/
│       │   │   │   │   │   └── alphaBlend_Test.ino
│       │   │   │   │   └── drawXBitmap/
│       │   │   │   │       ├── drawXBitmap.ino
│       │   │   │   │       └── xbm.h
│       │   │   │   ├── PNG Images/
│       │   │   │   │   ├── Flash_PNG/
│       │   │   │   │   │   ├── Flash_PNG.ino
│       │   │   │   │   │   └── panda.h
│       │   │   │   │   ├── LittleFS_PNG/
│       │   │   │   │   │   ├── LittleFS_PNG.ino
│       │   │   │   │   │   └── PNG_FS_Support.ino
│       │   │   │   │   └── LittleFS_PNG_DMA/
│       │   │   │   │       ├── LittleFS_PNG_DMA.ino
│       │   │   │   │       └── PNG_FS_Support.ino
│       │   │   │   ├── Smooth Fonts/
│       │   │   │   │   ├── FLASH_Array/
│       │   │   │   │   │   ├── Font_Demo_1_Array/
│       │   │   │   │   │   │   ├── Font_Demo_1_Array.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   ├── NotoSansBold15.h
│       │   │   │   │   │   │   └── NotoSansBold36.h
│       │   │   │   │   │   ├── Font_Demo_2_Array/
│       │   │   │   │   │   │   ├── Font_Demo_2_Array.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   ├── NotoSansBold15.h
│       │   │   │   │   │   │   └── NotoSansBold36.h
│       │   │   │   │   │   ├── Font_Demo_3_Array/
│       │   │   │   │   │   │   ├── Font_Demo_3_Array.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   ├── NotoSansBold15.h
│       │   │   │   │   │   │   ├── NotoSansBold36.h
│       │   │   │   │   │   │   └── NotoSansMonoSCB20.h
│       │   │   │   │   │   ├── Font_Demo_4_Array/
│       │   │   │   │   │   │   ├── Font_Demo_4_Array.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   ├── NotoSansBold15.h
│       │   │   │   │   │   │   └── NotoSansBold36.h
│       │   │   │   │   │   ├── Print_Smooth_Font/
│       │   │   │   │   │   │   ├── Final_Frontier_28.h
│       │   │   │   │   │   │   └── Print_Smooth_Font.ino
│       │   │   │   │   │   ├── Smooth_font_gradient/
│       │   │   │   │   │   │   ├── NotoSansBold15.h
│       │   │   │   │   │   │   ├── NotoSansBold36.h
│       │   │   │   │   │   │   └── Smooth_font_gradient.ino
│       │   │   │   │   │   ├── Smooth_font_reading_TFT/
│       │   │   │   │   │   │   ├── NotoSansBold15.h
│       │   │   │   │   │   │   ├── NotoSansBold36.h
│       │   │   │   │   │   │   └── Smooth_font_reading_TFT.ino
│       │   │   │   │   │   └── Unicode_test/
│       │   │   │   │   │       ├── Final_Frontier_28.h
│       │   │   │   │   │       ├── Latin_Hiragana_24.h
│       │   │   │   │   │       ├── Unicode_Test_72.h
│       │   │   │   │   │       ├── Unicode_test.ino
│       │   │   │   │   │       └── data/
│       │   │   │   │   │           ├── Final-Frontier-28.vlw
│       │   │   │   │   │           ├── Latin-Hiragana-24.vlw
│       │   │   │   │   │           └── Unicode-Test-72.vlw
│       │   │   │   │   ├── LittleFS/
│       │   │   │   │   │   ├── Font_Demo_1/
│       │   │   │   │   │   │   ├── Font_Demo_1.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   └── data/
│       │   │   │   │   │   │       ├── NotoSansBold15.vlw
│       │   │   │   │   │   │       └── NotoSansBold36.vlw
│       │   │   │   │   │   ├── Font_Demo_2/
│       │   │   │   │   │   │   ├── Font_Demo_2.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   └── data/
│       │   │   │   │   │   │       ├── NotoSansBold15.vlw
│       │   │   │   │   │   │       └── NotoSansBold36.vlw
│       │   │   │   │   │   ├── Font_Demo_3/
│       │   │   │   │   │   │   ├── Font_Demo_3.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   └── data/
│       │   │   │   │   │   │       ├── NotoSansBold15.vlw
│       │   │   │   │   │   │       ├── NotoSansBold36.vlw
│       │   │   │   │   │   │       └── NotoSansMonoSCB20.vlw
│       │   │   │   │   │   ├── Font_Demo_4/
│       │   │   │   │   │   │   ├── Font_Demo_4.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   └── data/
│       │   │   │   │   │   │       ├── NotoSansBold15.vlw
│       │   │   │   │   │   │       └── NotoSansBold36.vlw
│       │   │   │   │   │   ├── Print_Smooth_Font/
│       │   │   │   │   │   │   ├── Print_Smooth_Font.ino
│       │   │   │   │   │   │   └── data/
│       │   │   │   │   │   │       └── Final-Frontier-28.vlw
│       │   │   │   │   │   ├── Smooth_font_gradient/
│       │   │   │   │   │   │   ├── Smooth_font_gradient.ino
│       │   │   │   │   │   │   └── data/
│       │   │   │   │   │   │       ├── NotoSansBold15.vlw
│       │   │   │   │   │   │       └── NotoSansBold36.vlw
│       │   │   │   │   │   ├── Smooth_font_reading_TFT/
│       │   │   │   │   │   │   ├── Smooth_font_reading_TFT.ino
│       │   │   │   │   │   │   └── data/
│       │   │   │   │   │   │       ├── NotoSansBold15.vlw
│       │   │   │   │   │   │       └── NotoSansBold36.vlw
│       │   │   │   │   │   └── Unicode_test/
│       │   │   │   │   │       ├── LittleFS_functions.ino
│       │   │   │   │   │       ├── Unicode_test.ino
│       │   │   │   │   │       └── data/
│       │   │   │   │   │           ├── Final-Frontier-28.vlw
│       │   │   │   │   │           ├── Latin-Hiragana-24.vlw
│       │   │   │   │   │           └── Unicode-Test-72.vlw
│       │   │   │   │   ├── SD_Card/
│       │   │   │   │   │   └── ESP32_Smooth_Font_SD/
│       │   │   │   │   │       ├── ESP32_Smooth_Font_SD.ino
│       │   │   │   │   │       └── data/
│       │   │   │   │   │           └── Final-Frontier-28.vlw
│       │   │   │   │   └── SPIFFS/
│       │   │   │   │       ├── Font_Demo_1/
│       │   │   │   │       │   ├── Font_Demo_1.ino
│       │   │   │   │       │   ├── Notes.ino
│       │   │   │   │       │   └── data/
│       │   │   │   │       │       ├── NotoSansBold15.vlw
│       │   │   │   │       │       └── NotoSansBold36.vlw
│       │   │   │   │       ├── Font_Demo_2/
│       │   │   │   │       │   ├── Font_Demo_2.ino
│       │   │   │   │       │   ├── Notes.ino
│       │   │   │   │       │   └── data/
│       │   │   │   │       │       ├── NotoSansBold15.vlw
│       │   │   │   │       │       └── NotoSansBold36.vlw
│       │   │   │   │       ├── Font_Demo_3/
│       │   │   │   │       │   ├── Font_Demo_3.ino
│       │   │   │   │       │   ├── Notes.ino
│       │   │   │   │       │   └── data/
│       │   │   │   │       │       ├── NotoSansBold15.vlw
│       │   │   │   │       │       ├── NotoSansBold36.vlw
│       │   │   │   │       │       └── NotoSansMonoSCB20.vlw
│       │   │   │   │       ├── Font_Demo_4/
│       │   │   │   │       │   ├── Font_Demo_4.ino
│       │   │   │   │       │   ├── Notes.ino
│       │   │   │   │       │   └── data/
│       │   │   │   │       │       ├── NotoSansBold15.vlw
│       │   │   │   │       │       └── NotoSansBold36.vlw
│       │   │   │   │       ├── Print_Smooth_Font/
│       │   │   │   │       │   ├── Print_Smooth_Font.ino
│       │   │   │   │       │   └── data/
│       │   │   │   │       │       └── Final-Frontier-28.vlw
│       │   │   │   │       ├── Smooth_font_gradient/
│       │   │   │   │       │   ├── Smooth_font_gradient.ino
│       │   │   │   │       │   └── data/
│       │   │   │   │       │       ├── NotoSansBold15.vlw
│       │   │   │   │       │       └── NotoSansBold36.vlw
│       │   │   │   │       ├── Smooth_font_reading_TFT/
│       │   │   │   │       │   ├── Smooth_font_reading_TFT.ino
│       │   │   │   │       │   └── data/
│       │   │   │   │       │       ├── NotoSansBold15.vlw
│       │   │   │   │       │       └── NotoSansBold36.vlw
│       │   │   │   │       └── Unicode_test/
│       │   │   │   │           ├── SPIFFS_functions.ino
│       │   │   │   │           ├── Unicode_test.ino
│       │   │   │   │           └── data/
│       │   │   │   │               ├── Final-Frontier-28.vlw
│       │   │   │   │               ├── Latin-Hiragana-24.vlw
│       │   │   │   │               └── Unicode-Test-72.vlw
│       │   │   │   ├── Smooth Graphics/
│       │   │   │   │   ├── Anti-aliased_Clock/
│       │   │   │   │   │   ├── Anti-aliased_Clock.ino
│       │   │   │   │   │   ├── NTP_Time.h
│       │   │   │   │   │   └── NotoSansBold15.h
│       │   │   │   │   └── Smooth_Graphics_Demo/
│       │   │   │   │       └── Smooth_Graphics_Demo.ino
│       │   │   │   ├── Sprite/
│       │   │   │   │   ├── Animated_dial/
│       │   │   │   │   │   ├── Animated_dial.ino
│       │   │   │   │   │   ├── NotoSansBold36.h
│       │   │   │   │   │   └── dial.h
│       │   │   │   │   ├── One_bit_Sprite_Demo/
│       │   │   │   │   │   └── One_bit_Sprite_Demo.ino
│       │   │   │   │   ├── One_bit_Yin_Yang/
│       │   │   │   │   │   └── One_bit_Yin_Yang.ino
│       │   │   │   │   ├── Orrery/
│       │   │   │   │   │   ├── Orrery.ino
│       │   │   │   │   │   ├── astronomy.c
│       │   │   │   │   │   └── astronomy.h
│       │   │   │   │   ├── Rotated_Sprite_1/
│       │   │   │   │   │   └── Rotated_Sprite_1.ino
│       │   │   │   │   ├── Rotated_Sprite_2/
│       │   │   │   │   │   └── Rotated_Sprite_2.ino
│       │   │   │   │   ├── Rotated_Sprite_3/
│       │   │   │   │   │   └── Rotated_Sprite_3.ino
│       │   │   │   │   ├── Sprite_RLE_Font_test/
│       │   │   │   │   │   └── Sprite_RLE_Font_test.ino
│       │   │   │   │   ├── Sprite_TFT_Rainbow/
│       │   │   │   │   │   └── Sprite_TFT_Rainbow.ino
│       │   │   │   │   ├── Sprite_draw/
│       │   │   │   │   │   └── Sprite_draw.ino
│       │   │   │   │   ├── Sprite_draw_4bit/
│       │   │   │   │   │   └── Sprite_draw_4bit.ino
│       │   │   │   │   ├── Sprite_image_4bit/
│       │   │   │   │   │   ├── Sprite_image_4bit.ino
│       │   │   │   │   │   ├── sample_images.h
│       │   │   │   │   │   └── starImage.cpp
│       │   │   │   │   ├── Sprite_scroll/
│       │   │   │   │   │   └── Sprite_scroll.ino
│       │   │   │   │   ├── Sprite_scroll_16bit/
│       │   │   │   │   │   └── Sprite_scroll_16bit.ino
│       │   │   │   │   ├── Sprite_scroll_1bit/
│       │   │   │   │   │   └── Sprite_scroll_1bit.ino
│       │   │   │   │   ├── Sprite_scroll_4bit/
│       │   │   │   │   │   └── Sprite_scroll_4bit.ino
│       │   │   │   │   ├── Sprite_scroll_8bit/
│       │   │   │   │   │   └── Sprite_scroll_8bit.ino
│       │   │   │   │   ├── Sprite_scroll_wrap_1bit/
│       │   │   │   │   │   └── Sprite_scroll_wrap_1bit.ino
│       │   │   │   │   ├── Transparent_Sprite_Demo/
│       │   │   │   │   │   └── Transparent_Sprite_Demo.ino
│       │   │   │   │   └── Transparent_Sprite_Demo_4bit/
│       │   │   │   │       └── Transparent_Sprite_Demo_4bit.ino
│       │   │   │   ├── Test and diagnostics/
│       │   │   │   │   ├── Colour_Test/
│       │   │   │   │   │   └── Colour_Test.ino
│       │   │   │   │   ├── Read_User_Setup/
│       │   │   │   │   │   └── Read_User_Setup.ino
│       │   │   │   │   ├── TFT_ReadWrite_Test/
│       │   │   │   │   │   └── TFT_ReadWrite_Test.ino
│       │   │   │   │   └── Test_Touch_Controller/
│       │   │   │   │       └── Test_Touch_Controller.ino
│       │   │   │   └── ePaper/
│       │   │   │       └── Floyd_Steinberg/
│       │   │   │           ├── EPD_Support.h
│       │   │   │           ├── Floyd_Steinberg.ino
│       │   │   │           ├── Floyd_Steinberg_BMP.ino
│       │   │   │           └── SPIFFS.ino
│       │   │   ├── keywords.txt
│       │   │   ├── library.json
│       │   │   ├── library.properties
│       │   │   └── license.txt
│       │   ├── TJpg_Decoder/
│       │   │   ├── README.md
│       │   │   ├── examples/
│       │   │   │   ├── All_SPIFFS/
│       │   │   │   │   └── All_SPIFFS.ino
│       │   │   │   ├── Flash_Jpg/
│       │   │   │   │   ├── Flash_Jpg.ino
│       │   │   │   │   └── panda.h
│       │   │   │   ├── Flash_Jpg_GFX/
│       │   │   │   │   ├── Flash_Jpg_GFX.ino
│       │   │   │   │   └── panda.h
│       │   │   │   ├── SD_Jpg/
│       │   │   │   │   └── SD_Jpg.ino
│       │   │   │   ├── SPIFFS_Jpg/
│       │   │   │   │   └── SPIFFS_Jpg.ino
│       │   │   │   └── Web_Jpg/
│       │   │   │       ├── List_SPIFFS.h
│       │   │   │       ├── Web_Fetch.h
│       │   │   │       └── Web_Jpg.ino
│       │   │   ├── keywords.txt
│       │   │   ├── library.json
│       │   │   ├── library.properties
│       │   │   ├── license.txt
│       │   │   └── src/
│       │   │       ├── TJpg_Decoder.cpp
│       │   │       ├── TJpg_Decoder.h
│       │   │       ├── User_Config.h
│       │   │       ├── tjpgd.c
│       │   │       └── tjpgd.h
│       │   └── lvgl/
│       │       ├── .codecov.yml
│       │       ├── .editorconfig
│       │       ├── .github/
│       │       │   ├── FUNDING.yml
│       │       │   ├── ISSUE_TEMPLATE/
│       │       │   │   ├── bug-report.md
│       │       │   │   ├── config.yml
│       │       │   │   └── dev-discussion.md
│       │       │   ├── auto-comment.yml
│       │       │   ├── pull_request_template.md
│       │       │   └── workflows/
│       │       │       ├── arduino.yml
│       │       │       ├── build_micropython.yml
│       │       │       ├── ccpp.yml
│       │       │       ├── check_conf.yml
│       │       │       ├── check_style.yml
│       │       │       ├── close_old_issues.yml
│       │       │       ├── compile_docs.yml
│       │       │       ├── esp_upload_component.yml
│       │       │       ├── main.yml
│       │       │       └── release.yml
│       │       ├── .gitignore
│       │       ├── CMakeLists.txt
│       │       ├── Kconfig
│       │       ├── LICENCE.txt
│       │       ├── README.md
│       │       ├── README_zh.md
│       │       ├── SConscript
│       │       ├── component.mk
│       │       ├── demos/
│       │       │   ├── README.md
│       │       │   ├── benchmark/
│       │       │   │   ├── README.md
│       │       │   │   ├── assets/
│       │       │   │   │   ├── img_benchmark_cogwheel_alpha16.c
│       │       │   │   │   ├── img_benchmark_cogwheel_argb.c
│       │       │   │   │   ├── img_benchmark_cogwheel_chroma_keyed.c
│       │       │   │   │   ├── img_benchmark_cogwheel_indexed16.c
│       │       │   │   │   ├── img_benchmark_cogwheel_rgb.c
│       │       │   │   │   ├── lv_font_bechmark_montserrat_12_compr_az.c.c
│       │       │   │   │   ├── lv_font_bechmark_montserrat_16_compr_az.c.c
│       │       │   │   │   └── lv_font_bechmark_montserrat_28_compr_az.c.c
│       │       │   │   ├── lv_demo_benchmark.c
│       │       │   │   └── lv_demo_benchmark.h
│       │       │   ├── keypad_encoder/
│       │       │   │   ├── README.md
│       │       │   │   ├── lv_demo_keypad_encoder.c
│       │       │   │   └── lv_demo_keypad_encoder.h
│       │       │   ├── lv_demos.h
│       │       │   ├── lv_demos.mk
│       │       │   ├── music/
│       │       │   │   ├── README.md
│       │       │   │   ├── assets/
│       │       │   │   │   ├── img_lv_demo_music_btn_corner_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_list_pause.c
│       │       │   │   │   ├── img_lv_demo_music_btn_list_pause_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_list_play.c
│       │       │   │   │   ├── img_lv_demo_music_btn_list_play_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_loop.c
│       │       │   │   │   ├── img_lv_demo_music_btn_loop_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_next.c
│       │       │   │   │   ├── img_lv_demo_music_btn_next_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_pause.c
│       │       │   │   │   ├── img_lv_demo_music_btn_pause_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_play.c
│       │       │   │   │   ├── img_lv_demo_music_btn_play_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_prev.c
│       │       │   │   │   ├── img_lv_demo_music_btn_prev_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_rnd.c
│       │       │   │   │   ├── img_lv_demo_music_btn_rnd_large.c
│       │       │   │   │   ├── img_lv_demo_music_corner_left.c
│       │       │   │   │   ├── img_lv_demo_music_corner_left_large.c
│       │       │   │   │   ├── img_lv_demo_music_corner_right.c
│       │       │   │   │   ├── img_lv_demo_music_corner_right_large.c
│       │       │   │   │   ├── img_lv_demo_music_cover_1.c
│       │       │   │   │   ├── img_lv_demo_music_cover_1_large.c
│       │       │   │   │   ├── img_lv_demo_music_cover_2.c
│       │       │   │   │   ├── img_lv_demo_music_cover_2_large.c
│       │       │   │   │   ├── img_lv_demo_music_cover_3.c
│       │       │   │   │   ├── img_lv_demo_music_cover_3_large.c
│       │       │   │   │   ├── img_lv_demo_music_icon_1.c
│       │       │   │   │   ├── img_lv_demo_music_icon_1_large.c
│       │       │   │   │   ├── img_lv_demo_music_icon_2.c
│       │       │   │   │   ├── img_lv_demo_music_icon_2_large.c
│       │       │   │   │   ├── img_lv_demo_music_icon_3.c
│       │       │   │   │   ├── img_lv_demo_music_icon_3_large.c
│       │       │   │   │   ├── img_lv_demo_music_icon_4.c
│       │       │   │   │   ├── img_lv_demo_music_icon_4_large.c
│       │       │   │   │   ├── img_lv_demo_music_list_border.c
│       │       │   │   │   ├── img_lv_demo_music_list_border_large.c
│       │       │   │   │   ├── img_lv_demo_music_logo.c
│       │       │   │   │   ├── img_lv_demo_music_slider_knob.c
│       │       │   │   │   ├── img_lv_demo_music_slider_knob_large.c
│       │       │   │   │   ├── img_lv_demo_music_wave_bottom.c
│       │       │   │   │   ├── img_lv_demo_music_wave_bottom_large.c
│       │       │   │   │   ├── img_lv_demo_music_wave_top.c
│       │       │   │   │   ├── img_lv_demo_music_wave_top_large.c
│       │       │   │   │   ├── spectrum.py
│       │       │   │   │   ├── spectrum_1.h
│       │       │   │   │   ├── spectrum_2.h
│       │       │   │   │   └── spectrum_3.h
│       │       │   │   ├── lv_demo_music.c
│       │       │   │   ├── lv_demo_music.h
│       │       │   │   ├── lv_demo_music_list.c
│       │       │   │   ├── lv_demo_music_list.h
│       │       │   │   ├── lv_demo_music_main.c
│       │       │   │   └── lv_demo_music_main.h
│       │       │   ├── stress/
│       │       │   │   ├── README.md
│       │       │   │   ├── assets/
│       │       │   │   │   ├── lv_font_montserrat_12_compr_az.c
│       │       │   │   │   ├── lv_font_montserrat_16_compr_az.c
│       │       │   │   │   └── lv_font_montserrat_28_compr_az.c
│       │       │   │   ├── lv_demo_stress.c
│       │       │   │   └── lv_demo_stress.h
│       │       │   └── widgets/
│       │       │       ├── assets/
│       │       │       │   ├── img_clothes.c
│       │       │       │   ├── img_demo_widgets_avatar.c
│       │       │       │   └── img_lvgl_logo.c
│       │       │       ├── lv_demo_widgets.c
│       │       │       ├── lv_demo_widgets.h
│       │       │       └── lv_demo_widgets.py
│       │       ├── docs/
│       │       │   ├── CHANGELOG.md
│       │       │   ├── CODE_OF_CONDUCT.md
│       │       │   ├── CODING_STYLE.md
│       │       │   ├── CONTRIBUTING.md
│       │       │   ├── ROADMAP.md
│       │       │   ├── _ext/
│       │       │   │   └── lv_example.py
│       │       │   ├── _static/
│       │       │   │   └── css/
│       │       │   │       └── custom.css
│       │       │   ├── _templates/
│       │       │   │   ├── layout.html
│       │       │   │   └── page.html
│       │       │   ├── build.py
│       │       │   ├── conf.py
│       │       │   ├── example_list.py
│       │       │   ├── get-started/
│       │       │   │   ├── arduino.md
│       │       │   │   ├── cmake.md
│       │       │   │   ├── espressif.md
│       │       │   │   ├── index.md
│       │       │   │   ├── micropython.md
│       │       │   │   ├── nuttx.md
│       │       │   │   ├── nxp.md
│       │       │   │   ├── pc-simulator.md
│       │       │   │   ├── quick-overview.md
│       │       │   │   ├── rt-thread.md
│       │       │   │   ├── stm32.md
│       │       │   │   └── tasmota-berry.md
│       │       │   ├── header.rst
│       │       │   ├── index.md
│       │       │   ├── intro/
│       │       │   │   └── index.md
│       │       │   ├── layouts/
│       │       │   │   ├── flex.md
│       │       │   │   ├── grid.md
│       │       │   │   └── index.md
│       │       │   ├── libs/
│       │       │   │   ├── bmp.md
│       │       │   │   ├── ffmpeg.md
│       │       │   │   ├── freetype.md
│       │       │   │   ├── fsdrv.md
│       │       │   │   ├── gif.md
│       │       │   │   ├── index.md
│       │       │   │   ├── png.md
│       │       │   │   ├── qrcode.md
│       │       │   │   ├── rlottie.md
│       │       │   │   └── sjpg.md
│       │       │   ├── others/
│       │       │   │   ├── gridnav.md
│       │       │   │   ├── index.md
│       │       │   │   ├── monkey.md
│       │       │   │   └── snapshot.md
│       │       │   ├── overview/
│       │       │   │   ├── animation.md
│       │       │   │   ├── color.md
│       │       │   │   ├── coords.md
│       │       │   │   ├── display.md
│       │       │   │   ├── drawing.md
│       │       │   │   ├── event.md
│       │       │   │   ├── file-system.md
│       │       │   │   ├── font.md
│       │       │   │   ├── image.md
│       │       │   │   ├── indev.md
│       │       │   │   ├── index.md
│       │       │   │   ├── layer.md
│       │       │   │   ├── new_widget.md
│       │       │   │   ├── object.md
│       │       │   │   ├── scroll.md
│       │       │   │   ├── style-props.md
│       │       │   │   ├── style.md
│       │       │   │   └── timer.md
│       │       │   ├── porting/
│       │       │   │   ├── display.md
│       │       │   │   ├── gpu.md
│       │       │   │   ├── indev.md
│       │       │   │   ├── index.md
│       │       │   │   ├── log.md
│       │       │   │   ├── os.md
│       │       │   │   ├── project.md
│       │       │   │   ├── sleep.md
│       │       │   │   ├── task-handler.md
│       │       │   │   └── tick.md
│       │       │   ├── requirements.txt
│       │       │   └── widgets/
│       │       │       ├── core/
│       │       │       │   ├── arc.md
│       │       │       │   ├── bar.md
│       │       │       │   ├── btn.md
│       │       │       │   ├── btnmatrix.md
│       │       │       │   ├── canvas.md
│       │       │       │   ├── checkbox.md
│       │       │       │   ├── dropdown.md
│       │       │       │   ├── img.md
│       │       │       │   ├── index.md
│       │       │       │   ├── label.md
│       │       │       │   ├── line.md
│       │       │       │   ├── roller.md
│       │       │       │   ├── slider.md
│       │       │       │   ├── switch.md
│       │       │       │   ├── table.md
│       │       │       │   └── textarea.md
│       │       │       ├── extra/
│       │       │       │   ├── animimg.md
│       │       │       │   ├── calendar.md
│       │       │       │   ├── chart.md
│       │       │       │   ├── colorwheel.md
│       │       │       │   ├── imgbtn.md
│       │       │       │   ├── index.md
│       │       │       │   ├── keyboard.md
│       │       │       │   ├── led.md
│       │       │       │   ├── list.md
│       │       │       │   ├── menu.md
│       │       │       │   ├── meter.md
│       │       │       │   ├── msgbox.md
│       │       │       │   ├── span.md
│       │       │       │   ├── spinbox.md
│       │       │       │   ├── spinner.md
│       │       │       │   ├── tabview.md
│       │       │       │   ├── tileview.md
│       │       │       │   └── win.md
│       │       │       ├── index.md
│       │       │       └── obj.md
│       │       ├── env_support/
│       │       │   ├── cmake/
│       │       │   │   ├── custom.cmake
│       │       │   │   ├── esp.cmake
│       │       │   │   ├── micropython.cmake
│       │       │   │   └── zephyr.cmake
│       │       │   ├── cmsis-pack/
│       │       │   │   ├── LVGL.lvgl.1.0.0.pack
│       │       │   │   ├── LVGL.lvgl.pdsc
│       │       │   │   ├── README.md
│       │       │   │   ├── gen_pack.sh
│       │       │   │   ├── lv_cmsis_pack.txt
│       │       │   │   └── lv_conf_cmsis.h
│       │       │   ├── rt-thread/
│       │       │   │   ├── SConscript
│       │       │   │   ├── lv_rt_thread_conf.h
│       │       │   │   └── lv_rt_thread_port.c
│       │       │   └── zephyr/
│       │       │       └── module.yml
│       │       ├── examples/
│       │       │   ├── anim/
│       │       │   │   ├── index.rst
│       │       │   │   ├── lv_example_anim.h
│       │       │   │   ├── lv_example_anim_1.c
│       │       │   │   ├── lv_example_anim_1.py
│       │       │   │   ├── lv_example_anim_2.c
│       │       │   │   ├── lv_example_anim_2.py
│       │       │   │   ├── lv_example_anim_3.c
│       │       │   │   ├── lv_example_anim_3.py
│       │       │   │   ├── lv_example_anim_timeline_1.c
│       │       │   │   └── lv_example_anim_timeline_1.py
│       │       │   ├── arduino/
│       │       │   │   └── LVGL_Arduino/
│       │       │   │       └── LVGL_Arduino.ino
│       │       │   ├── assets/
│       │       │   │   ├── animimg001.c
│       │       │   │   ├── animimg002.c
│       │       │   │   ├── animimg003.c
│       │       │   │   ├── font/
│       │       │   │   │   ├── lv_font_simsun_16_cjk.fnt
│       │       │   │   │   ├── montserrat-16.fnt
│       │       │   │   │   └── montserrat-22.fnt
│       │       │   │   ├── img_caret_down.c
│       │       │   │   ├── img_cogwheel_alpha16.c
│       │       │   │   ├── img_cogwheel_argb.c
│       │       │   │   ├── img_cogwheel_chroma_keyed.c
│       │       │   │   ├── img_cogwheel_indexed16.c
│       │       │   │   ├── img_cogwheel_rgb.c
│       │       │   │   ├── img_hand.c
│       │       │   │   ├── img_skew_strip.c
│       │       │   │   ├── img_skew_strip_80x20_argb8888.fnt
│       │       │   │   ├── img_star.c
│       │       │   │   ├── imgbtn_left.c
│       │       │   │   ├── imgbtn_mid.c
│       │       │   │   └── imgbtn_right.c
│       │       │   ├── event/
│       │       │   │   ├── index.rst
│       │       │   │   ├── lv_example_event.h
│       │       │   │   ├── lv_example_event_1.c
│       │       │   │   ├── lv_example_event_1.py
│       │       │   │   ├── lv_example_event_2.c
│       │       │   │   ├── lv_example_event_2.py
│       │       │   │   ├── lv_example_event_3.c
│       │       │   │   ├── lv_example_event_3.py
│       │       │   │   └── lv_example_event_4.c
│       │       │   ├── examples.mk
│       │       │   ├── get_started/
│       │       │   │   ├── index.rst
│       │       │   │   ├── lv_example_get_started.h
│       │       │   │   ├── lv_example_get_started_1.c
│       │       │   │   ├── lv_example_get_started_1.py
│       │       │   │   ├── lv_example_get_started_2.c
│       │       │   │   ├── lv_example_get_started_2.py
│       │       │   │   ├── lv_example_get_started_3.c
│       │       │   │   └── lv_example_get_started_3.py
│       │       │   ├── header.py
│       │       │   ├── layouts/
│       │       │   │   ├── flex/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_flex.h
│       │       │   │   │   ├── lv_example_flex_1.c
│       │       │   │   │   ├── lv_example_flex_1.py
│       │       │   │   │   ├── lv_example_flex_2.c
│       │       │   │   │   ├── lv_example_flex_2.py
│       │       │   │   │   ├── lv_example_flex_3.c
│       │       │   │   │   ├── lv_example_flex_3.py
│       │       │   │   │   ├── lv_example_flex_4.c
│       │       │   │   │   ├── lv_example_flex_4.py
│       │       │   │   │   ├── lv_example_flex_5.c
│       │       │   │   │   ├── lv_example_flex_5.py
│       │       │   │   │   ├── lv_example_flex_6.c
│       │       │   │   │   └── lv_example_flex_6.py
│       │       │   │   ├── grid/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_grid.h
│       │       │   │   │   ├── lv_example_grid_1.c
│       │       │   │   │   ├── lv_example_grid_1.py
│       │       │   │   │   ├── lv_example_grid_2.c
│       │       │   │   │   ├── lv_example_grid_2.py
│       │       │   │   │   ├── lv_example_grid_3.c
│       │       │   │   │   ├── lv_example_grid_3.py
│       │       │   │   │   ├── lv_example_grid_4.c
│       │       │   │   │   ├── lv_example_grid_4.py
│       │       │   │   │   ├── lv_example_grid_5.c
│       │       │   │   │   ├── lv_example_grid_5.py
│       │       │   │   │   ├── lv_example_grid_6.c
│       │       │   │   │   └── lv_example_grid_6.py
│       │       │   │   └── lv_example_layout.h
│       │       │   ├── libs/
│       │       │   │   ├── bmp/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_bmp.h
│       │       │   │   │   ├── lv_example_bmp_1.c
│       │       │   │   │   └── lv_example_bmp_1.py
│       │       │   │   ├── ffmpeg/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_ffmpeg.h
│       │       │   │   │   ├── lv_example_ffmpeg_1.c
│       │       │   │   │   └── lv_example_ffmpeg_2.c
│       │       │   │   ├── freetype/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_freetype.h
│       │       │   │   │   ├── lv_example_freetype_1.c
│       │       │   │   │   └── lv_example_freetype_1.py
│       │       │   │   ├── gif/
│       │       │   │   │   ├── img_bulb_gif.c
│       │       │   │   │   ├── img_bulb_gif.py
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_gif.h
│       │       │   │   │   ├── lv_example_gif_1.c
│       │       │   │   │   └── lv_example_gif_1.py
│       │       │   │   ├── lv_example_libs.h
│       │       │   │   ├── png/
│       │       │   │   │   ├── img_wink_png.c
│       │       │   │   │   ├── img_wink_png.py
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_png.h
│       │       │   │   │   ├── lv_example_png_1.c
│       │       │   │   │   └── lv_example_png_1.py
│       │       │   │   ├── qrcode/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_qrcode.h
│       │       │   │   │   ├── lv_example_qrcode_1.c
│       │       │   │   │   └── lv_example_qrcode_1.py
│       │       │   │   ├── rlottie/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_rlottie.h
│       │       │   │   │   ├── lv_example_rlottie_1.c
│       │       │   │   │   ├── lv_example_rlottie_1.py
│       │       │   │   │   ├── lv_example_rlottie_2.c
│       │       │   │   │   ├── lv_example_rlottie_2.py
│       │       │   │   │   ├── lv_example_rlottie_approve.c
│       │       │   │   │   ├── lv_example_rlottie_approve.json
│       │       │   │   │   └── lv_example_rlottie_approve.py
│       │       │   │   └── sjpg/
│       │       │   │       ├── index.rst
│       │       │   │       ├── lv_example_sjpg.h
│       │       │   │       ├── lv_example_sjpg_1.c
│       │       │   │       ├── lv_example_sjpg_1.py
│       │       │   │       └── small_image.sjpg
│       │       │   ├── lv_examples.h
│       │       │   ├── others/
│       │       │   │   ├── gridnav/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_gridnav.h
│       │       │   │   │   ├── lv_example_gridnav_1.c
│       │       │   │   │   ├── lv_example_gridnav_2.c
│       │       │   │   │   ├── lv_example_gridnav_3.c
│       │       │   │   │   └── lv_example_gridnav_4.c
│       │       │   │   ├── lv_example_others.h
│       │       │   │   ├── monkey/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_monkey.h
│       │       │   │   │   ├── lv_example_monkey_1.c
│       │       │   │   │   ├── lv_example_monkey_2.c
│       │       │   │   │   └── lv_example_monkey_3.c
│       │       │   │   └── snapshot/
│       │       │   │       ├── index.rst
│       │       │   │       ├── lv_example_snapshot.h
│       │       │   │       ├── lv_example_snapshot_1.c
│       │       │   │       └── lv_example_snapshot_1.py
│       │       │   ├── porting/
│       │       │   │   ├── lv_port_disp_template.c
│       │       │   │   ├── lv_port_disp_template.h
│       │       │   │   ├── lv_port_fs_template.c
│       │       │   │   ├── lv_port_fs_template.h
│       │       │   │   ├── lv_port_indev_template.c
│       │       │   │   └── lv_port_indev_template.h
│       │       │   ├── scroll/
│       │       │   │   ├── index.rst
│       │       │   │   ├── lv_example_scroll.h
│       │       │   │   ├── lv_example_scroll_1.c
│       │       │   │   ├── lv_example_scroll_1.py
│       │       │   │   ├── lv_example_scroll_2.c
│       │       │   │   ├── lv_example_scroll_2.py
│       │       │   │   ├── lv_example_scroll_3.c
│       │       │   │   ├── lv_example_scroll_3.py
│       │       │   │   ├── lv_example_scroll_4.c
│       │       │   │   ├── lv_example_scroll_4.py
│       │       │   │   ├── lv_example_scroll_5.c
│       │       │   │   ├── lv_example_scroll_5.py
│       │       │   │   ├── lv_example_scroll_6.c
│       │       │   │   └── lv_example_scroll_6.py
│       │       │   ├── styles/
│       │       │   │   ├── index.rst
│       │       │   │   ├── lv_example_style.h
│       │       │   │   ├── lv_example_style_1.c
│       │       │   │   ├── lv_example_style_1.py
│       │       │   │   ├── lv_example_style_10.c
│       │       │   │   ├── lv_example_style_10.py
│       │       │   │   ├── lv_example_style_11.c
│       │       │   │   ├── lv_example_style_11.py
│       │       │   │   ├── lv_example_style_12.c
│       │       │   │   ├── lv_example_style_12.py
│       │       │   │   ├── lv_example_style_13.c
│       │       │   │   ├── lv_example_style_13.py
│       │       │   │   ├── lv_example_style_14.c
│       │       │   │   ├── lv_example_style_14.py
│       │       │   │   ├── lv_example_style_2.c
│       │       │   │   ├── lv_example_style_2.py
│       │       │   │   ├── lv_example_style_3.c
│       │       │   │   ├── lv_example_style_3.py
│       │       │   │   ├── lv_example_style_4.c
│       │       │   │   ├── lv_example_style_4.py
│       │       │   │   ├── lv_example_style_5.c
│       │       │   │   ├── lv_example_style_5.py
│       │       │   │   ├── lv_example_style_6.c
│       │       │   │   ├── lv_example_style_6.py
│       │       │   │   ├── lv_example_style_7.c
│       │       │   │   ├── lv_example_style_7.py
│       │       │   │   ├── lv_example_style_8.c
│       │       │   │   ├── lv_example_style_8.py
│       │       │   │   ├── lv_example_style_9.c
│       │       │   │   └── lv_example_style_9.py
│       │       │   ├── test_ex.sh
│       │       │   └── widgets/
│       │       │       ├── animimg/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_animimg_1.c
│       │       │       │   └── lv_example_animimg_1.py
│       │       │       ├── arc/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_arc_1.c
│       │       │       │   ├── lv_example_arc_1.py
│       │       │       │   ├── lv_example_arc_2.c
│       │       │       │   └── lv_example_arc_2.py
│       │       │       ├── bar/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_bar_1.c
│       │       │       │   ├── lv_example_bar_1.py
│       │       │       │   ├── lv_example_bar_2.c
│       │       │       │   ├── lv_example_bar_2.py
│       │       │       │   ├── lv_example_bar_3.c
│       │       │       │   ├── lv_example_bar_3.py
│       │       │       │   ├── lv_example_bar_4.c
│       │       │       │   ├── lv_example_bar_4.py
│       │       │       │   ├── lv_example_bar_5.c
│       │       │       │   ├── lv_example_bar_5.py
│       │       │       │   ├── lv_example_bar_6.c
│       │       │       │   ├── lv_example_bar_6.py
│       │       │       │   └── test.py
│       │       │       ├── btn/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_btn_1.c
│       │       │       │   ├── lv_example_btn_1.py
│       │       │       │   ├── lv_example_btn_2.c
│       │       │       │   ├── lv_example_btn_2.py
│       │       │       │   ├── lv_example_btn_3.c
│       │       │       │   └── lv_example_btn_3.py
│       │       │       ├── btnmatrix/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_btnmatrix_1.c
│       │       │       │   ├── lv_example_btnmatrix_1.py
│       │       │       │   ├── lv_example_btnmatrix_2.c
│       │       │       │   ├── lv_example_btnmatrix_2.py
│       │       │       │   ├── lv_example_btnmatrix_3.c
│       │       │       │   └── lv_example_btnmatrix_3.py
│       │       │       ├── calendar/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_calendar_1.c
│       │       │       │   └── lv_example_calendar_1.py
│       │       │       ├── canvas/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_canvas_1.c
│       │       │       │   ├── lv_example_canvas_1.py
│       │       │       │   ├── lv_example_canvas_2.c
│       │       │       │   └── lv_example_canvas_2.py
│       │       │       ├── chart/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_chart_1.c
│       │       │       │   ├── lv_example_chart_1.py
│       │       │       │   ├── lv_example_chart_2.c
│       │       │       │   ├── lv_example_chart_2.py
│       │       │       │   ├── lv_example_chart_3.c
│       │       │       │   ├── lv_example_chart_3.py
│       │       │       │   ├── lv_example_chart_4.c
│       │       │       │   ├── lv_example_chart_4.py
│       │       │       │   ├── lv_example_chart_5.c
│       │       │       │   ├── lv_example_chart_5.py
│       │       │       │   ├── lv_example_chart_6.c
│       │       │       │   ├── lv_example_chart_6.py
│       │       │       │   ├── lv_example_chart_7.c
│       │       │       │   ├── lv_example_chart_7.py
│       │       │       │   ├── lv_example_chart_8.c
│       │       │       │   ├── lv_example_chart_8.py
│       │       │       │   ├── lv_example_chart_9.c
│       │       │       │   └── lv_example_chart_9.py
│       │       │       ├── checkbox/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_checkbox_1.c
│       │       │       │   ├── lv_example_checkbox_1.py
│       │       │       │   └── lv_example_checkbox_2.c
│       │       │       ├── colorwheel/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_colorwheel_1.c
│       │       │       │   └── lv_example_colorwheel_1.py
│       │       │       ├── dropdown/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_dropdown_1.c
│       │       │       │   ├── lv_example_dropdown_1.py
│       │       │       │   ├── lv_example_dropdown_2.c
│       │       │       │   ├── lv_example_dropdown_2.py
│       │       │       │   ├── lv_example_dropdown_3.c
│       │       │       │   └── lv_example_dropdown_3.py
│       │       │       ├── img/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_img_1.c
│       │       │       │   ├── lv_example_img_1.py
│       │       │       │   ├── lv_example_img_2.c
│       │       │       │   ├── lv_example_img_2.py
│       │       │       │   ├── lv_example_img_3.c
│       │       │       │   ├── lv_example_img_3.py
│       │       │       │   ├── lv_example_img_4.c
│       │       │       │   └── lv_example_img_4.py
│       │       │       ├── imgbtn/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_imgbtn_1.c
│       │       │       │   └── lv_example_imgbtn_1.py
│       │       │       ├── keyboard/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_keyboard_1.c
│       │       │       │   └── lv_example_keyboard_1.py
│       │       │       ├── label/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_label_1.c
│       │       │       │   ├── lv_example_label_1.py
│       │       │       │   ├── lv_example_label_2.c
│       │       │       │   ├── lv_example_label_2.py
│       │       │       │   ├── lv_example_label_3.c
│       │       │       │   ├── lv_example_label_3.py
│       │       │       │   └── lv_example_label_4.c
│       │       │       ├── led/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_led_1.c
│       │       │       │   └── lv_example_led_1.py
│       │       │       ├── line/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_line_1.c
│       │       │       │   └── lv_example_line_1.py
│       │       │       ├── list/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_list_1.c
│       │       │       │   ├── lv_example_list_1.py
│       │       │       │   ├── lv_example_list_2.c
│       │       │       │   ├── lv_example_list_2.py
│       │       │       │   └── test.py
│       │       │       ├── lv_example_widgets.h
│       │       │       ├── menu/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_menu_1.c
│       │       │       │   ├── lv_example_menu_1.py
│       │       │       │   ├── lv_example_menu_2.c
│       │       │       │   ├── lv_example_menu_2.py
│       │       │       │   ├── lv_example_menu_3.c
│       │       │       │   ├── lv_example_menu_3.py
│       │       │       │   ├── lv_example_menu_4.c
│       │       │       │   ├── lv_example_menu_4.py
│       │       │       │   └── lv_example_menu_5.c
│       │       │       ├── meter/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_meter_1.c
│       │       │       │   ├── lv_example_meter_1.py
│       │       │       │   ├── lv_example_meter_2.c
│       │       │       │   ├── lv_example_meter_2.py
│       │       │       │   ├── lv_example_meter_3.c
│       │       │       │   ├── lv_example_meter_3.py
│       │       │       │   ├── lv_example_meter_4.c
│       │       │       │   └── lv_example_meter_4.py
│       │       │       ├── msgbox/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_msgbox_1.c
│       │       │       │   └── lv_example_msgbox_1.py
│       │       │       ├── obj/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_obj_1.c
│       │       │       │   ├── lv_example_obj_1.py
│       │       │       │   ├── lv_example_obj_2.c
│       │       │       │   └── lv_example_obj_2.py
│       │       │       ├── roller/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_roller_1.c
│       │       │       │   ├── lv_example_roller_1.py
│       │       │       │   ├── lv_example_roller_2.c
│       │       │       │   ├── lv_example_roller_2.py
│       │       │       │   ├── lv_example_roller_3.c
│       │       │       │   └── lv_example_roller_3.py
│       │       │       ├── slider/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_slider_1.c
│       │       │       │   ├── lv_example_slider_1.py
│       │       │       │   ├── lv_example_slider_2.c
│       │       │       │   ├── lv_example_slider_2.py
│       │       │       │   ├── lv_example_slider_3.c
│       │       │       │   └── lv_example_slider_3.py
│       │       │       ├── span/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_span_1.c
│       │       │       │   └── lv_example_span_1.py
│       │       │       ├── spinbox/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_spinbox_1.c
│       │       │       │   └── lv_example_spinbox_1.py
│       │       │       ├── spinner/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_spinner_1.c
│       │       │       │   └── lv_example_spinner_1.py
│       │       │       ├── switch/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_switch_1.c
│       │       │       │   └── lv_example_switch_1.py
│       │       │       ├── table/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_table_1.c
│       │       │       │   ├── lv_example_table_1.py
│       │       │       │   ├── lv_example_table_2.c
│       │       │       │   └── lv_example_table_2.py
│       │       │       ├── tabview/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_tabview_1.c
│       │       │       │   ├── lv_example_tabview_1.py
│       │       │       │   ├── lv_example_tabview_2.c
│       │       │       │   └── lv_example_tabview_2.py
│       │       │       ├── textarea/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_textarea_1.c
│       │       │       │   ├── lv_example_textarea_1.py
│       │       │       │   ├── lv_example_textarea_2.c
│       │       │       │   ├── lv_example_textarea_2.py
│       │       │       │   ├── lv_example_textarea_3.c
│       │       │       │   └── lv_example_textarea_3.py
│       │       │       ├── tileview/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_tileview_1.c
│       │       │       │   └── lv_example_tileview_1.py
│       │       │       └── win/
│       │       │           ├── index.rst
│       │       │           ├── lv_example_win_1.c
│       │       │           └── lv_example_win_1.py
│       │       ├── idf_component.yml
│       │       ├── library.json
│       │       ├── library.properties
│       │       ├── lv_conf.h
│       │       ├── lv_conf_template.h
│       │       ├── lvgl.h
│       │       ├── lvgl.mk
│       │       ├── scripts/
│       │       │   ├── .gitignore
│       │       │   ├── Doxyfile
│       │       │   ├── build_html_examples.sh
│       │       │   ├── built_in_font/
│       │       │   │   ├── built_in_font_gen.py
│       │       │   │   └── generate_all.py
│       │       │   ├── changelog-template.hbs
│       │       │   ├── changelog_gen.sh
│       │       │   ├── code-format.cfg
│       │       │   ├── code-format.py
│       │       │   ├── cppcheck_run.sh
│       │       │   ├── filetohex.py
│       │       │   ├── find_version.sh
│       │       │   ├── genexamplelist.sh
│       │       │   ├── infer_run.sh
│       │       │   ├── install-prerequisites.sh
│       │       │   ├── jpg_to_sjpg.py
│       │       │   ├── lv_conf_internal_gen.py
│       │       │   ├── release/
│       │       │   │   ├── com.py
│       │       │   │   ├── commits.txt
│       │       │   │   ├── patch.py
│       │       │   │   └── release.py
│       │       │   └── style_api_gen.py
│       │       ├── src/
│       │       │   ├── core/
│       │       │   │   ├── lv_core.mk
│       │       │   │   ├── lv_disp.c
│       │       │   │   ├── lv_disp.h
│       │       │   │   ├── lv_event.c
│       │       │   │   ├── lv_event.h
│       │       │   │   ├── lv_group.c
│       │       │   │   ├── lv_group.h
│       │       │   │   ├── lv_indev.c
│       │       │   │   ├── lv_indev.h
│       │       │   │   ├── lv_indev_scroll.c
│       │       │   │   ├── lv_indev_scroll.h
│       │       │   │   ├── lv_obj.c
│       │       │   │   ├── lv_obj.h
│       │       │   │   ├── lv_obj_class.c
│       │       │   │   ├── lv_obj_class.h
│       │       │   │   ├── lv_obj_draw.c
│       │       │   │   ├── lv_obj_draw.h
│       │       │   │   ├── lv_obj_pos.c
│       │       │   │   ├── lv_obj_pos.h
│       │       │   │   ├── lv_obj_scroll.c
│       │       │   │   ├── lv_obj_scroll.h
│       │       │   │   ├── lv_obj_style.c
│       │       │   │   ├── lv_obj_style.h
│       │       │   │   ├── lv_obj_style_gen.c
│       │       │   │   ├── lv_obj_style_gen.h
│       │       │   │   ├── lv_obj_tree.c
│       │       │   │   ├── lv_obj_tree.h
│       │       │   │   ├── lv_refr.c
│       │       │   │   ├── lv_refr.h
│       │       │   │   ├── lv_theme.c
│       │       │   │   └── lv_theme.h
│       │       │   ├── draw/
│       │       │   │   ├── lv_draw.c
│       │       │   │   ├── lv_draw.h
│       │       │   │   ├── lv_draw.mk
│       │       │   │   ├── lv_draw_arc.c
│       │       │   │   ├── lv_draw_arc.h
│       │       │   │   ├── lv_draw_img.c
│       │       │   │   ├── lv_draw_img.h
│       │       │   │   ├── lv_draw_label.c
│       │       │   │   ├── lv_draw_label.h
│       │       │   │   ├── lv_draw_line.c
│       │       │   │   ├── lv_draw_line.h
│       │       │   │   ├── lv_draw_mask.c
│       │       │   │   ├── lv_draw_mask.h
│       │       │   │   ├── lv_draw_rect.c
│       │       │   │   ├── lv_draw_rect.h
│       │       │   │   ├── lv_draw_triangle.c
│       │       │   │   ├── lv_draw_triangle.h
│       │       │   │   ├── lv_img_buf.c
│       │       │   │   ├── lv_img_buf.h
│       │       │   │   ├── lv_img_cache.c
│       │       │   │   ├── lv_img_cache.h
│       │       │   │   ├── lv_img_decoder.c
│       │       │   │   ├── lv_img_decoder.h
│       │       │   │   ├── nxp_pxp/
│       │       │   │   │   ├── lv_gpu_nxp_pxp.c
│       │       │   │   │   ├── lv_gpu_nxp_pxp.h
│       │       │   │   │   ├── lv_gpu_nxp_pxp_osa.c
│       │       │   │   │   └── lv_gpu_nxp_pxp_osa.h
│       │       │   │   ├── nxp_vglite/
│       │       │   │   │   ├── lv_gpu_nxp_vglite.c
│       │       │   │   │   └── lv_gpu_nxp_vglite.h
│       │       │   │   ├── sdl/
│       │       │   │   │   ├── README.md
│       │       │   │   │   ├── lv_draw_sdl.c
│       │       │   │   │   ├── lv_draw_sdl.h
│       │       │   │   │   ├── lv_draw_sdl.mk
│       │       │   │   │   ├── lv_draw_sdl_arc.c
│       │       │   │   │   ├── lv_draw_sdl_bg.c
│       │       │   │   │   ├── lv_draw_sdl_composite.c
│       │       │   │   │   ├── lv_draw_sdl_composite.h
│       │       │   │   │   ├── lv_draw_sdl_img.c
│       │       │   │   │   ├── lv_draw_sdl_img.h
│       │       │   │   │   ├── lv_draw_sdl_label.c
│       │       │   │   │   ├── lv_draw_sdl_line.c
│       │       │   │   │   ├── lv_draw_sdl_mask.c
│       │       │   │   │   ├── lv_draw_sdl_mask.h
│       │       │   │   │   ├── lv_draw_sdl_polygon.c
│       │       │   │   │   ├── lv_draw_sdl_priv.h
│       │       │   │   │   ├── lv_draw_sdl_rect.c
│       │       │   │   │   ├── lv_draw_sdl_rect.h
│       │       │   │   │   ├── lv_draw_sdl_stack_blur.c
│       │       │   │   │   ├── lv_draw_sdl_stack_blur.h
│       │       │   │   │   ├── lv_draw_sdl_texture_cache.c
│       │       │   │   │   ├── lv_draw_sdl_texture_cache.h
│       │       │   │   │   ├── lv_draw_sdl_utils.c
│       │       │   │   │   └── lv_draw_sdl_utils.h
│       │       │   │   ├── stm32_dma2d/
│       │       │   │   │   ├── lv_gpu_stm32_dma2d.c
│       │       │   │   │   └── lv_gpu_stm32_dma2d.h
│       │       │   │   └── sw/
│       │       │   │       ├── lv_draw_sw.c
│       │       │   │       ├── lv_draw_sw.h
│       │       │   │       ├── lv_draw_sw.mk
│       │       │   │       ├── lv_draw_sw_arc.c
│       │       │   │       ├── lv_draw_sw_blend.c
│       │       │   │       ├── lv_draw_sw_blend.h
│       │       │   │       ├── lv_draw_sw_dither.c
│       │       │   │       ├── lv_draw_sw_dither.h
│       │       │   │       ├── lv_draw_sw_gradient.c
│       │       │   │       ├── lv_draw_sw_gradient.h
│       │       │   │       ├── lv_draw_sw_img.c
│       │       │   │       ├── lv_draw_sw_letter.c
│       │       │   │       ├── lv_draw_sw_line.c
│       │       │   │       ├── lv_draw_sw_polygon.c
│       │       │   │       └── lv_draw_sw_rect.c
│       │       │   ├── extra/
│       │       │   │   ├── README.md
│       │       │   │   ├── extra.mk
│       │       │   │   ├── layouts/
│       │       │   │   │   ├── flex/
│       │       │   │   │   │   ├── lv_flex.c
│       │       │   │   │   │   └── lv_flex.h
│       │       │   │   │   ├── grid/
│       │       │   │   │   │   ├── lv_grid.c
│       │       │   │   │   │   └── lv_grid.h
│       │       │   │   │   └── lv_layouts.h
│       │       │   │   ├── libs/
│       │       │   │   │   ├── bmp/
│       │       │   │   │   │   ├── lv_bmp.c
│       │       │   │   │   │   └── lv_bmp.h
│       │       │   │   │   ├── ffmpeg/
│       │       │   │   │   │   ├── lv_ffmpeg.c
│       │       │   │   │   │   └── lv_ffmpeg.h
│       │       │   │   │   ├── freetype/
│       │       │   │   │   │   ├── lv_freetype.c
│       │       │   │   │   │   └── lv_freetype.h
│       │       │   │   │   ├── fsdrv/
│       │       │   │   │   │   ├── lv_fs_fatfs.c
│       │       │   │   │   │   ├── lv_fs_posix.c
│       │       │   │   │   │   ├── lv_fs_stdio.c
│       │       │   │   │   │   ├── lv_fs_win32.c
│       │       │   │   │   │   └── lv_fsdrv.h
│       │       │   │   │   ├── gif/
│       │       │   │   │   │   ├── gifdec.c
│       │       │   │   │   │   ├── gifdec.h
│       │       │   │   │   │   ├── lv_gif.c
│       │       │   │   │   │   └── lv_gif.h
│       │       │   │   │   ├── lv_libs.h
│       │       │   │   │   ├── png/
│       │       │   │   │   │   ├── lodepng.c
│       │       │   │   │   │   ├── lodepng.h
│       │       │   │   │   │   ├── lv_png.c
│       │       │   │   │   │   └── lv_png.h
│       │       │   │   │   ├── qrcode/
│       │       │   │   │   │   ├── lv_qrcode.c
│       │       │   │   │   │   ├── lv_qrcode.h
│       │       │   │   │   │   ├── qrcodegen.c
│       │       │   │   │   │   └── qrcodegen.h
│       │       │   │   │   ├── rlottie/
│       │       │   │   │   │   ├── lv_rlottie.c
│       │       │   │   │   │   └── lv_rlottie.h
│       │       │   │   │   └── sjpg/
│       │       │   │   │       ├── lv_sjpg.c
│       │       │   │   │       ├── lv_sjpg.h
│       │       │   │   │       ├── tjpgd.c
│       │       │   │   │       ├── tjpgd.h
│       │       │   │   │       └── tjpgdcnf.h
│       │       │   │   ├── lv_extra.c
│       │       │   │   ├── lv_extra.h
│       │       │   │   ├── others/
│       │       │   │   │   ├── gridnav/
│       │       │   │   │   │   ├── lv_gridnav.c
│       │       │   │   │   │   └── lv_gridnav.h
│       │       │   │   │   ├── lv_others.h
│       │       │   │   │   ├── monkey/
│       │       │   │   │   │   ├── lv_monkey.c
│       │       │   │   │   │   └── lv_monkey.h
│       │       │   │   │   └── snapshot/
│       │       │   │   │       ├── lv_snapshot.c
│       │       │   │   │       └── lv_snapshot.h
│       │       │   │   ├── themes/
│       │       │   │   │   ├── basic/
│       │       │   │   │   │   ├── lv_theme_basic.c
│       │       │   │   │   │   └── lv_theme_basic.h
│       │       │   │   │   ├── default/
│       │       │   │   │   │   ├── lv_theme_default.c
│       │       │   │   │   │   └── lv_theme_default.h
│       │       │   │   │   ├── lv_themes.h
│       │       │   │   │   └── mono/
│       │       │   │   │       ├── lv_theme_mono.c
│       │       │   │   │       └── lv_theme_mono.h
│       │       │   │   └── widgets/
│       │       │   │       ├── animimg/
│       │       │   │       │   ├── lv_animimg.c
│       │       │   │       │   └── lv_animimg.h
│       │       │   │       ├── calendar/
│       │       │   │       │   ├── lv_calendar.c
│       │       │   │       │   ├── lv_calendar.h
│       │       │   │       │   ├── lv_calendar_header_arrow.c
│       │       │   │       │   ├── lv_calendar_header_arrow.h
│       │       │   │       │   ├── lv_calendar_header_dropdown.c
│       │       │   │       │   └── lv_calendar_header_dropdown.h
│       │       │   │       ├── chart/
│       │       │   │       │   ├── lv_chart.c
│       │       │   │       │   └── lv_chart.h
│       │       │   │       ├── colorwheel/
│       │       │   │       │   ├── lv_colorwheel.c
│       │       │   │       │   └── lv_colorwheel.h
│       │       │   │       ├── imgbtn/
│       │       │   │       │   ├── lv_imgbtn.c
│       │       │   │       │   └── lv_imgbtn.h
│       │       │   │       ├── keyboard/
│       │       │   │       │   ├── lv_keyboard.c
│       │       │   │       │   └── lv_keyboard.h
│       │       │   │       ├── led/
│       │       │   │       │   ├── lv_led.c
│       │       │   │       │   └── lv_led.h
│       │       │   │       ├── list/
│       │       │   │       │   ├── lv_list.c
│       │       │   │       │   └── lv_list.h
│       │       │   │       ├── lv_widgets.h
│       │       │   │       ├── menu/
│       │       │   │       │   ├── lv_menu.c
│       │       │   │       │   └── lv_menu.h
│       │       │   │       ├── meter/
│       │       │   │       │   ├── lv_meter.c
│       │       │   │       │   └── lv_meter.h
│       │       │   │       ├── msgbox/
│       │       │   │       │   ├── lv_msgbox.c
│       │       │   │       │   └── lv_msgbox.h
│       │       │   │       ├── span/
│       │       │   │       │   ├── lv_span.c
│       │       │   │       │   └── lv_span.h
│       │       │   │       ├── spinbox/
│       │       │   │       │   ├── lv_spinbox.c
│       │       │   │       │   └── lv_spinbox.h
│       │       │   │       ├── spinner/
│       │       │   │       │   ├── lv_spinner.c
│       │       │   │       │   └── lv_spinner.h
│       │       │   │       ├── tabview/
│       │       │   │       │   ├── lv_tabview.c
│       │       │   │       │   └── lv_tabview.h
│       │       │   │       ├── tileview/
│       │       │   │       │   ├── lv_tileview.c
│       │       │   │       │   └── lv_tileview.h
│       │       │   │       └── win/
│       │       │   │           ├── lv_win.c
│       │       │   │           └── lv_win.h
│       │       │   ├── font/
│       │       │   │   ├── lv_font.c
│       │       │   │   ├── lv_font.h
│       │       │   │   ├── lv_font.mk
│       │       │   │   ├── lv_font_dejavu_16_persian_hebrew.c
│       │       │   │   ├── lv_font_fmt_txt.c
│       │       │   │   ├── lv_font_fmt_txt.h
│       │       │   │   ├── lv_font_loader.c
│       │       │   │   ├── lv_font_loader.h
│       │       │   │   ├── lv_font_montserrat_10.c
│       │       │   │   ├── lv_font_montserrat_12.c
│       │       │   │   ├── lv_font_montserrat_12_subpx.c
│       │       │   │   ├── lv_font_montserrat_14.c
│       │       │   │   ├── lv_font_montserrat_16.c
│       │       │   │   ├── lv_font_montserrat_18.c
│       │       │   │   ├── lv_font_montserrat_20.c
│       │       │   │   ├── lv_font_montserrat_22.c
│       │       │   │   ├── lv_font_montserrat_24.c
│       │       │   │   ├── lv_font_montserrat_26.c
│       │       │   │   ├── lv_font_montserrat_28.c
│       │       │   │   ├── lv_font_montserrat_28_compressed.c
│       │       │   │   ├── lv_font_montserrat_30.c
│       │       │   │   ├── lv_font_montserrat_32.c
│       │       │   │   ├── lv_font_montserrat_34.c
│       │       │   │   ├── lv_font_montserrat_36.c
│       │       │   │   ├── lv_font_montserrat_38.c
│       │       │   │   ├── lv_font_montserrat_40.c
│       │       │   │   ├── lv_font_montserrat_42.c
│       │       │   │   ├── lv_font_montserrat_44.c
│       │       │   │   ├── lv_font_montserrat_46.c
│       │       │   │   ├── lv_font_montserrat_48.c
│       │       │   │   ├── lv_font_montserrat_8.c
│       │       │   │   ├── lv_font_simsun_16_cjk.c
│       │       │   │   ├── lv_font_unscii_16.c
│       │       │   │   ├── lv_font_unscii_8.c
│       │       │   │   └── lv_symbol_def.h
│       │       │   ├── gpu/
│       │       │   │   └── lv_gpu.mk
│       │       │   ├── hal/
│       │       │   │   ├── lv_hal.h
│       │       │   │   ├── lv_hal.mk
│       │       │   │   ├── lv_hal_disp.c
│       │       │   │   ├── lv_hal_disp.h
│       │       │   │   ├── lv_hal_indev.c
│       │       │   │   ├── lv_hal_indev.h
│       │       │   │   ├── lv_hal_tick.c
│       │       │   │   └── lv_hal_tick.h
│       │       │   ├── lv_api_map.h
│       │       │   ├── lv_conf_internal.h
│       │       │   ├── lv_conf_kconfig.h
│       │       │   ├── lvgl.h
│       │       │   ├── misc/
│       │       │   │   ├── lv_anim.c
│       │       │   │   ├── lv_anim.h
│       │       │   │   ├── lv_anim_timeline.c
│       │       │   │   ├── lv_anim_timeline.h
│       │       │   │   ├── lv_area.c
│       │       │   │   ├── lv_area.h
│       │       │   │   ├── lv_assert.h
│       │       │   │   ├── lv_async.c
│       │       │   │   ├── lv_async.h
│       │       │   │   ├── lv_bidi.c
│       │       │   │   ├── lv_bidi.h
│       │       │   │   ├── lv_color.c
│       │       │   │   ├── lv_color.h
│       │       │   │   ├── lv_fs.c
│       │       │   │   ├── lv_fs.h
│       │       │   │   ├── lv_gc.c
│       │       │   │   ├── lv_gc.h
│       │       │   │   ├── lv_ll.c
│       │       │   │   ├── lv_ll.h
│       │       │   │   ├── lv_log.c
│       │       │   │   ├── lv_log.h
│       │       │   │   ├── lv_lru.c
│       │       │   │   ├── lv_lru.h
│       │       │   │   ├── lv_math.c
│       │       │   │   ├── lv_math.h
│       │       │   │   ├── lv_mem.c
│       │       │   │   ├── lv_mem.h
│       │       │   │   ├── lv_misc.mk
│       │       │   │   ├── lv_printf.c
│       │       │   │   ├── lv_printf.h
│       │       │   │   ├── lv_style.c
│       │       │   │   ├── lv_style.h
│       │       │   │   ├── lv_style_gen.c
│       │       │   │   ├── lv_style_gen.h
│       │       │   │   ├── lv_templ.c
│       │       │   │   ├── lv_templ.h
│       │       │   │   ├── lv_timer.c
│       │       │   │   ├── lv_timer.h
│       │       │   │   ├── lv_tlsf.c
│       │       │   │   ├── lv_tlsf.h
│       │       │   │   ├── lv_txt.c
│       │       │   │   ├── lv_txt.h
│       │       │   │   ├── lv_txt_ap.c
│       │       │   │   ├── lv_txt_ap.h
│       │       │   │   ├── lv_types.h
│       │       │   │   ├── lv_utils.c
│       │       │   │   └── lv_utils.h
│       │       │   └── widgets/
│       │       │       ├── lv_arc.c
│       │       │       ├── lv_arc.h
│       │       │       ├── lv_bar.c
│       │       │       ├── lv_bar.h
│       │       │       ├── lv_btn.c
│       │       │       ├── lv_btn.h
│       │       │       ├── lv_btnmatrix.c
│       │       │       ├── lv_btnmatrix.h
│       │       │       ├── lv_canvas.c
│       │       │       ├── lv_canvas.h
│       │       │       ├── lv_checkbox.c
│       │       │       ├── lv_checkbox.h
│       │       │       ├── lv_dropdown.c
│       │       │       ├── lv_dropdown.h
│       │       │       ├── lv_img.c
│       │       │       ├── lv_img.h
│       │       │       ├── lv_label.c
│       │       │       ├── lv_label.h
│       │       │       ├── lv_line.c
│       │       │       ├── lv_line.h
│       │       │       ├── lv_objx_templ.c
│       │       │       ├── lv_objx_templ.h
│       │       │       ├── lv_roller.c
│       │       │       ├── lv_roller.h
│       │       │       ├── lv_slider.c
│       │       │       ├── lv_slider.h
│       │       │       ├── lv_switch.c
│       │       │       ├── lv_switch.h
│       │       │       ├── lv_table.c
│       │       │       ├── lv_table.h
│       │       │       ├── lv_textarea.c
│       │       │       ├── lv_textarea.h
│       │       │       └── lv_widgets.mk
│       │       └── tests/
│       │           ├── .gitignore
│       │           ├── CMakeLists.txt
│       │           ├── README.md
│       │           ├── config.yml
│       │           ├── main.py
│       │           ├── src/
│       │           │   ├── lv_test_conf.h
│       │           │   ├── lv_test_helpers.h
│       │           │   ├── lv_test_indev.c
│       │           │   ├── lv_test_indev.h
│       │           │   ├── lv_test_init.c
│       │           │   ├── lv_test_init.h
│       │           │   ├── test_cases/
│       │           │   │   ├── _test_template.c
│       │           │   │   ├── test_arc.c
│       │           │   │   ├── test_bar.c
│       │           │   │   ├── test_checkbox.c
│       │           │   │   ├── test_config.c
│       │           │   │   ├── test_demo_stress.c
│       │           │   │   ├── test_demo_widgets.c
│       │           │   │   ├── test_dropdown.c
│       │           │   │   ├── test_event.c
│       │           │   │   ├── test_font_loader.c
│       │           │   │   ├── test_obj_tree.c
│       │           │   │   ├── test_snapshot.c
│       │           │   │   ├── test_style.c
│       │           │   │   ├── test_switch.c
│       │           │   │   └── test_txt.c
│       │           │   └── test_fonts/
│       │           │       ├── font_1.c
│       │           │       ├── font_1.fnt
│       │           │       ├── font_2.c
│       │           │       ├── font_2.fnt
│       │           │       ├── font_3.c
│       │           │       └── font_3.fnt
│       │           └── unity/
│       │               ├── generate_test_runner.rb
│       │               ├── run_test.erb
│       │               ├── type_sanitizer.rb
│       │               ├── unity.c
│       │               ├── unity.h
│       │               ├── unity_internals.h
│       │               ├── unity_support.c
│       │               └── unity_support.h
│       ├── partitions-no-ota.csv
│       ├── platformio.ini
│       ├── src/
│       │   ├── common.cpp
│       │   ├── common.h
│       │   ├── controller/
│       │   │   ├── base/
│       │   │   │   ├── controller_base.h
│       │   │   │   └── heat_ctrl_base.h
│       │   │   ├── heat_platform/
│       │   │   │   ├── heat_platform.cpp
│       │   │   │   ├── heat_platform.h
│       │   │   │   └── heat_platform_cfg.cpp
│       │   │   ├── hot_air/
│       │   │   │   ├── hot_air.cpp
│       │   │   │   ├── hot_air.h
│       │   │   │   └── hot_air_cfg.cpp
│       │   │   ├── osc/
│       │   │   │   ├── oscilloscope.cpp
│       │   │   │   └── oscilloscope.h
│       │   │   ├── power/
│       │   │   │   ├── adjustable_power.cpp
│       │   │   │   └── adjustable_power.h
│       │   │   ├── pwm/
│       │   │   │   ├── pwm_controller.cpp
│       │   │   │   └── pwm_controller.h
│       │   │   ├── signal_generator/
│       │   │   │   ├── signal_generator.cpp
│       │   │   │   └── signal_generator.h
│       │   │   └── solder/
│       │   │       ├── solder.cpp
│       │   │       ├── solder.h
│       │   │       └── solder_cfg.cpp
│       │   ├── driver/
│       │   │   ├── buzzer.cpp
│       │   │   ├── buzzer.h
│       │   │   ├── display.cpp
│       │   │   ├── display.h
│       │   │   ├── flash_fs.cpp
│       │   │   ├── flash_fs.h
│       │   │   ├── knobs.cpp
│       │   │   ├── knobs.h
│       │   │   ├── lv_port_fatfs.cpp
│       │   │   ├── lv_port_fatfs.h
│       │   │   ├── lv_port_indev.cpp
│       │   │   ├── lv_port_indev.h
│       │   │   ├── max6675.cpp
│       │   │   ├── max6675.h
│       │   │   ├── rgb_led.cpp
│       │   │   └── rgb_led.h
│       │   ├── main.cpp
│       │   ├── network.cpp
│       │   ├── network.h
│       │   ├── pid.cpp
│       │   ├── pid.h
│       │   └── sys/
│       │       ├── interface.h
│       │       ├── snail_manager.cpp
│       │       ├── snail_manager.h
│       │       └── snail_manager_cfg.cpp
│       └── test/
│           └── README
└── Tool/
    ├── .gitignore
    ├── GS_Hbed_Generator.py
    ├── QT_Tool/
    │   ├── .gitignore
    │   ├── MyRtttl.py
    │   ├── MyRtttl_1.py
    │   ├── MyRtttl_2_delete.py
    │   ├── MyRtttl_3_delete.py
    │   ├── SnailHeater_Tool.py
    │   ├── SnailHeater_Tool.spec
    │   ├── SnailHeater_Tool.yaml
    │   ├── SnailHeater_Tool_EL.yaml
    │   ├── SnailHeater_WinTool_pyqt5.py
    │   ├── SnailHeater_WinTool_pyqt5_EL.py
    │   ├── SnailHeater_WinTool_pyside2.py
    │   ├── SnailHeater_WinTool_pyside2_EL.py
    │   ├── ToRtttl.md
    │   ├── apprcc.qrc
    │   ├── apprcc_rc.py
    │   ├── choose_ver.py
    │   ├── common.py
    │   ├── createWallpaperClean.py
    │   ├── download.py
    │   ├── download.ui
    │   ├── download_EL.py
    │   ├── lvgl_image_converter/
    │   │   ├── .github/
    │   │   │   └── workflows/
    │   │   │       └── python-app.yml
    │   │   ├── .gitignore
    │   │   ├── LICENSE
    │   │   ├── README.md
    │   │   ├── __init__.py
    │   │   ├── lv_img_conv.py
    │   │   ├── lv_img_conv_win_spec/
    │   │   │   ├── README.md
    │   │   │   ├── config
    │   │   │   └── main.py
    │   │   ├── lv_img_converter/
    │   │   │   ├── __init__.py
    │   │   │   └── lv_img_converter.py
    │   │   └── requirements.txt
    │   ├── massagehead.py
    │   ├── midi2rtttl.py
    │   ├── midi2rtttl_0.py
    │   ├── midi2rtttl_simple.py
    │   ├── mywidgets.py
    │   ├── requirements.txt
    │   ├── requirements_pyqt5_venv.txt
    │   ├── requirements_pyside_venv.txt
    │   ├── spiffsgen.py
    │   ├── stub_flasher/
    │   │   ├── stub_flasher_32.json
    │   │   ├── stub_flasher_32c2.json
    │   │   ├── stub_flasher_32c3.json
    │   │   ├── stub_flasher_32c6.json
    │   │   ├── stub_flasher_32c6beta.json
    │   │   ├── stub_flasher_32h2.json
    │   │   ├── stub_flasher_32h2beta1.json
    │   │   ├── stub_flasher_32h2beta2.json
    │   │   ├── stub_flasher_32p4.json
    │   │   ├── stub_flasher_32s2.json
    │   │   ├── stub_flasher_32s3.json
    │   │   ├── stub_flasher_32s3beta2.json
    │   │   └── stub_flasher_8266.json
    │   ├── temporary_sn_recode.txt
    │   └── 视频素材.lnk
    ├── SnailHeater_SN.cfg
    ├── SnailHeater_WinTool.cfg
    ├── lceda_gerber_create/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── lceda_gerber.py
    │   └── task.yaml
    └── sn_recode.txt

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
Doc/*.pdf
Hardware/
Hardware/ExtendBoard/History
Hardware/ExtendBoard/History
Hardware/ExtendBoard/__Previews

================================================
FILE: Doc/V2.0功率板修改/功率板V2.0硬件版本修改方法.md
================================================
# 功率板V2.0硬件版本修改
本教程只针对于V2.0版本的功率板的修改,其他任何版本的PCB均不需要此操作!!!

由于功率板V2.0设计上的不完善,导致了容易因为烙铁烧主控引脚,故所有持有功率板V2.0的群友强制要修改。

# 目的
烙铁信号接口的S2处,在s2信号进入到R39电阻的左边焊盘前,需要串连一个二极管。

注:要求二极管的压降越小越好。建议`0.3v`压降的二极管。

![SnailHeater](V2.0版本修改1.png)

为此提供两种修改方案,<a href="#方案一"><font size=2 color=#00f>方案一</font></a>焊接简单,<a href="#方案二"><font size=2 color=#00f>方案二</font></a>整体性合理。两种方案原理是一样的,选择合适自己的就可以,任何不懂的可以发群里问。



### <a id="方案一">方案一修改</a>
方案的思路:在连接线上处理。

优点:焊接难度低、风险低,不需要修改板子。

##### 1. 先在3pin的中间那根线头`0.5cm`或`1cm`处剪一刀。随后两端线头剥皮(一点点就够)、线头镀锡、套上`1.5cm`热缩管,待备。如下图所示:
![SnailHeater](方案0_剪线位置.jpg)
##### 2. 二极管两端建议先上锡,将二极管焊在剪断的中间,注意二极管的负极朝着航空插的方向,焊接完需使用`万用表`测试二极管两端的压降,顺带确认方向。如下图所示:
二极管的购买连接(压降约0.25v) https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.4.ea6d7484oXvrt2&id=528155505657
![SnailHeater](方案0_焊上二极管.jpg)
##### 3. 加热热缩管缩管
![SnailHeater](方案0_收热缩管.jpg)



### <a id="方案二">方案二修改</a>
方案的思路:直接修改功率板。切断部分走线串联二极管。

优点:整体性更优,修改原则上更合理。

##### 1. 以下时要切断的走线示意图(原理图走线)。如下图所示:
![SnailHeater](V2.0版本修改_切断示意图.png)
##### 2. 实物板切断的走线示意图,切记割的是`S2`标识的引脚,别错了。如下图所示:
![SnailHeater](方案1_割线位置.jpg)
##### 3. 二极管的负极接在3pin座的中间一脚上,二极管的正极与R39电阻的左端连接,焊接完需使用`万用表`测试二极管两端的压降,顺带确认方向。如下图所示:
二极管的购买连接(压降约0.25v) https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.4.ea6d7484oXvrt2&id=528155505657
![SnailHeater](方案1_串连上二极管后.jpg)

方向参考
![SnailHeater](方案1_二极管方向.jpg)


# 核心板微小的优化
注:主要针对优化烙铁的休眠功能(软件上可以使用更好的休眠功能),可修改也可不修改。(目前修改方案只有一个)

在核心板模组从下往上数的第5个引脚串连一个`100nf(0.1uf/104)`电容,电容的另一端连接到模组最上边的GND脚上。如下图所示:
![SnailHeater](核心板加电容.jpg)

#### 注:由于主控模组的屏蔽罩也是`GND`,故也可以如下焊接方案(更简洁):
![SnailHeater](核心板加电容_2.jpg)

================================================
FILE: Doc/V2.5.x组装教程/SnailHeater使用说明书.md
================================================
# 蜗牛台说明书

## 目录
<a href="#SnailHeater简介"><font size="4" color="#00f">SnailHeater简介</font></a>
<a href="#注意事项(非常重要)"><font size="3" color="#00f">注意事项(非常重要)</font></a>
<a href="#V2.0.X版本硬件(一车)"><font size="3" color="#00f">|---V2.0.X版本硬件(一车)</font></a>
<a href="#V2.5.X版本硬件(二车)"><font size="3" color="#00f">|---V2.5.X版本硬件(二车)</font></a>
<a href="#硬件配置与支持"><font size="3" color="#00f">硬件配置与支持</font></a>
<a href="#V2.0.X版本硬件配置与支持(一车)"><font size="3" color="#00f">|---V2.0.X版本硬件配置与支持(一车)</font></a>
<a href="#V2.5.X版本硬件配置与支持(二车)"><font size="3" color="#00f">|---V2.5.X版本硬件配置与支持(二车)</font></a>
<a href="#固件更新(刷机)"><font size="4" color="#00f">固件更新(刷机)</font></a>
<a href="#固件解释"><font size="3" color="#00f">|-----固件解释</font></a>
<a href="#固件支持与刷机工具"><font size="3" color="#00f">|-----固件支持与刷机工具</font></a>
<a href="#关于激活"><font size="3" color="#00f">|-----关于激活</font></a>
<a href="#焊台使用视频教程"><font size="3" color="#00f">焊台使用视频教程</font></a>
<a href="#使用指南"><font size="3" color="#00f">使用指南</font></a>
<a href="#烙铁"><font size="3" color="#00f">|---烙铁</font></a>
<a href="#热风枪"><font size="3" color="#00f">|---热风枪</font></a>
<a href="#加热台"><font size="3" color="#00f">|---加热台</font></a>
<a href="#可调电源"><font size="3" color="#00f">|---可调电源</font></a>
<a href="#其他附加功能"><font size="3" color="#00f">|---其他附加功能</font></a>
<a href="#关于保修(2023年6月22日起)"><font size="4" color="#00f">关于保修(2023年6月22日起)</font></a>
<a href="#硬件修改通知"><font size="4" color="#00f">硬件修改通知</font></a>
<a href="#V2.0.X版本硬件(一车)修改通知"><font size="3" color="#00f">|---V2.0.X版本硬件(一车)修改通知</font></a>
<a href="#一车 - 必须修改项"><font size="3" color="#00f">|------一车 - 必须修改项</font></a>
<a href="#一车 - 微小的优化"><font size="3" color="#00f">|------一车 - 微小的优化</font></a>
<a href="#V2.5.X版本硬件(二车)修改通知"><font size="3" color="#00f">|---V2.5.X版本硬件(二车)修改通知</font></a>
<a href="#二车 - 烙铁头对地(PE)电压比较高"><font size="3" color="#00f">|------二车 - 烙铁头对地(PE)电压比较高</font></a>
<a href="#二车 - 可调电源电压自动升压问题"><font size="3" color="#00f">|------二车 - 可调电源电压自动升压问题</font></a>
<a href="#二车 - 风枪和加热台误报链接错误(此问题影响较小)"><font size="3" color="#00f">|------二车 - 风枪和加热台误报链接错误(此问题影响较小)</font></a>
<a href="#二车 - 优化项"><font size="3" color="#00f">|------二车 - 优化项</font></a>


## SnailHeater简介 <a id="SnailHeater简介"></a>
 __`项目是适合创客的半开源焊台工具!`__ 

多功能焊台,简称 __"蜗牛台"__ 。平板加热台、风枪、烙铁、可调电源多控。本项目内有220V高压,务必小心,后果自负。

* 本项目的地址 https://github.com/ClimbSnail/SnailHeater (github为最新资料)
* 或者 https://gitee.com/ClimbSnailQ/SnailHeater (gitee非最新,仅为预览)
* 上一代旧版控制器项目 https://github.com/ClimbSnail/HeatPlatform_SMT (底成本方案)

本项目使用ESP32S2模组开发。同时控制加热板、风枪、烙铁、数字可调电源工作 。本项目将持续优化,不做半吊子。为防止后期咸鱼倒卖,只提供一个简单的demo,主线源码不开源,DIY玩家可免费领取2个序列号。

另外:为了充分利用硬件资源,将会附带双路示波器(采样2M)、函数发生器、高精度脉冲输出(可用于点焊机)。额外会有锁屏时钟等等超多功能。


## 注意事项(非常重要) <a id="注意事项(非常重要)"></a>

### V2.0.X版本硬件(一车) <a id="V2.0.X版本硬件(一车)"></a>
1. 主机插接电源线情况下,__`禁止`__ 触摸 __`前置风枪的GX16航空头`__ 与 __`后置加热台GX16航空头`__ 內部的针脚。
2. 烙铁、风枪、加热台插接第三方的手柄,都需要对照`组装教程`中的`手柄接线规范`,否则 __`必损毁主机!`__
3. 在插接220V电源线情况下,风枪、加热台 __`不允许`__ 带电拔插,带电拔插有可能会烧毁主机,但凡发生一次意外,主机将产生不可逆的损坏。
4. 一车硬件不支持自动识别烙铁芯,硬件也不支持JBC210烙铁手柄。
5. 可调电源`支持短路保护`,但 __`不支持反接保护`__ 。在连接`电池`、`超级电容`等此类`自带能量`的供电设备时,不允许接错正负极,同时 __`禁止`__ 在可调电源关闭(不输出)的情况下接入外部电池。以上操作均会轻则烧毁可调电路,重则整机不亮,推荐最好的办法就是`不要给电池、超级电容供电`。
6. 默认`触摸开关`是关闭的,大部分机器打开触摸开关就会出现`菜单`反复显示隐藏的bug,故默认情况下关闭。只有部分机器可用触摸开关。如出现`菜单`反复显示隐藏的bug,请重新刷机。

### V2.5.X版本硬件(二车) <a id="V2.5.X版本硬件(二车)"></a>
1. 主机插接电源线情况下,__`禁止`__ 触摸 __`前置风枪的GX16航空头`__ 与 __`后置加热台GX16航空头`__ 內部的针脚。
2. 烙铁、风枪、加热台插接第三方的手柄,都需要对照`组装教程`中的`手柄接线规范`,否则 __`必损毁主机!`__
3. 在插接220V电源线情况下,风枪、加热台 __`不允许`__ 带电拔插,带电拔插有可能会烧毁主机,但凡发生一次意外,主机将产生不可逆的损坏。
4. v1.8.0固件起,全面支持烙铁芯自动识别(需手动打开 __`烙铁芯识别`__ 功能)。发货时的固件为旧版本固件,并未支持自动识别烙铁芯,请升级最新版本固件。若未手动开启 __`烙铁芯识别`__ 功能,在插接烙铁手柄 __`前`__ ,必须先选择好`烙铁芯类型`,否则轻则温度不对应 重则会导致烙铁头高温而损坏烙铁头。
5. 可调电源`支持短路保护`,但 __`不支持反接保护`__ 。在连接`电池`、`超级电容`等此类`自带能量`的供电设备时,不允许接错正负极,同时 __`禁止`__ 在可调电源关闭(不输出)的情况下接入外部电池。以上操作均会轻则烧毁可调电路,重则整机不亮,推荐最好的办法就是`不要给电池、超级电容供电`。
6. 默认`触摸开关`是关闭的,大部分机器打开触摸开关就会出现`菜单`反复显示隐藏的bug,故默认情况下关闭。只有部分机器可用触摸开关。如出现`菜单`反复显示隐藏的bug,请重新刷机。


## 硬件配置与支持 <a id="硬件配置与支持"></a>
### V2.0.X版本硬件配置与支持(一车) <a id="V2.0.X版本硬件配置与支持(一车)"></a>
1. 烙铁支持T12、JBC245 _`(不支持JBC210)`_ ,内置电源达200W功率,与主控供电隔离。
2. 支持858D相关类型的风枪,同时接口也支持加热板(分体式),最大支持2000W。共两个GX16接口,支持风枪加热板盲插。
3. 可调电源:全数字可调,输出0.8V~22.8V之间的电压,电流可达5A _`(不支持恒流)`_ ,3A以上负载文波80mv内。内置软件过流保护(可自定义阈值),内置硬件短路保护。(硬件 _`纹波不稳定`_ ,待统一通知修复方案)
4. 内置NTC环境补偿。另外还设置全套温度自动校准方案,无需额外测温仪。(注:待固件更新支持)
5. 使用TFT 1.69寸240*280的tft彩屏,使用LVGL做界面,增强操作的动画效果。
6. 配套上位机软件,用于更新固件和绘制温控曲线等等。
7. 附带双路ADC采样电路(内置缓冲),用于开发双路示波器(最高采样2M)。
8. 预留DAC输出电路,用作单路函数发生器使用。
9. 预留高精度PWM输出接口,可外接点焊机作为可调脉冲信号。(后期提供电焊机配件)
10. 后期将会添加休眠功能,可用于显示天气、监控
11. 还会有更多的功能加入。。。。

注:一车版本通过更换`功率板`和`核心板`后等于二车版本。升级二车后的主机,在固件内部设置版本时完全按照二车`v2.5.x设置`。

### V2.5.X版本硬件配置与支持(二车) <a id="V2.5.X版本硬件配置与支持(二车)"></a>
1. 烙铁支持T12、JBC245、JBC210等等,内置双电压电源24V/8A、12V6A,与主控供电隔离。
2. 支持858D相关类型的风枪,同时接口也支持加热板(分体式),最大支持2000W。共两个GX16接口,支持风枪加热板盲插。
3. 可调电源:全数字电压电流可调,输出0.8V~22.8V之间的电压,电流可达0~5A,1A以上负载文波25mv。内置软件过流保护(可自定义阈值),内置硬件短路保护。
4. 内置NTC环境补偿。另外还设置全套温度自动校准方案,无需额外测温仪。(注:待固件更新支持)
5. 使用TFT 1.69寸240*280的tft彩屏,使用LVGL做界面,增强操作的动画效果。
6. 配套上位机软件,用于更新固件和绘制温控曲线等等。
7. 附带双路ADC采样电路(内置缓冲),用于开发双路示波器(最高采样2M)。
8. 预留DAC输出电路,用作单路函数发生器使用。
9. 预留高精度PWM输出接口,可外接点焊机作为可调脉冲信号。(后期提供电焊机配件)
10. 后期将会添加休眠功能,可用于显示天气、监控
11. 还会有更多的功能加入。。。。

注:一车版本通过更换`功率板`和`核心板`后等于二车版本。升级二车后的主机,在固件内部设置版本时完全按照二车`v2.5.x设置`。

## 固件更新(刷机) <a id="固件更新(刷机)"></a>
### 固件解释 <a id="固件解释"></a>
焊台内部的控制程序(或者控制系统)称之为固件。

### 固件支持与刷机工具 <a id="固件支持与刷机工具"></a>
目前`v2.0.x`、`v2.1.x`、`v2.5.x`共使用同一个固件,下载群内提供的刷机工具进行刷机。刷机工具内部有 __`刷机教程链接`__ 。

![配套刷机工具](配套刷机工具.png)
刷机完毕后,必须在焊台的-> __`设置`__ -> __`系统`__ -> __`硬件版本`__ 中确定版本的正确设置。

__`注:`__ 每个成品焊台发出去前都刷好当时最新版本的固件,并激活过。到手正常情况下无需自己刷机和激活。

### 关于激活 <a id="关于激活"></a>
1. 名词解释: 
① __`机器码`__ 是指焊台的编号(有且只有一个,永久不变)。通过点击刷机工具的“查询”按钮获取
② __`激活码`__ 是用于指定机器码的焊台认证激活的密码(一个激活码仅解锁指定机器)。联系群主获取。
2. 每一台焊台的机器码是唯一的,并不会跟随固件变化。故每个焊台的激活码也是唯一的。v1.6.0及之后版本的固件,都需要激活码。未激活的焊台,界面是不可操作的(包括但不限于 设定了温度也无法生效),并且屏幕上会显示 _`未激活`_ 字样。
3. __`“首次”`__ 或 __`“清空方式”`__ 刷入v1.6.0及以后的版本,刷机完成后,需要将激活码填入刷机工具中激活焊台。激活成功后,刷机工具信息窗会显示激活成功。
4. __`查询激活码:`__ 如果是成品机或者已登记过激活码的机器,点击刷机工具中的 _`查询`_ 按钮,即可查询到激活码。

## 焊台使用视频教程 <a id="焊台使用视频教程"></a>
待更新视频教程。。。。

## 使用指南(未完善) <a id="使用指南"></a>
### 烙铁 <a id="烙铁"></a>
注:手柄接线必须参考__`组装教程.pdf文档`__接线。
1. v1.8.0固件起,全面支持烙铁芯自动识别(需手动打开 __`烙铁芯识别`__ 功能)。发货时的固件为旧版本固件,并未支持自动识别烙铁芯,请升级最新版本固件。若未手动开启 __`烙铁芯识别`__ 功能,在插接烙铁手柄 __`前`__ ,必须先选择好`烙铁芯类型`,否则轻则温度不对应 重则会导致烙铁头高温而损坏烙铁头。
2. 群主默认批量的手柄是 __`内置震动开关的`__ ,设置中关于烙铁 __`唤醒模式`__ 应当设置为 __`change模式`__ 。想要修改为休眠座的群友,请将震动开关 __`拆除`__ 或者 __`断开一脚`__ (目的让震动开关失效),将休眠座的休眠线接主机后面板的休眠孔上(2mm白色香蕉头),并设置 __`唤醒模式`__ 为 __`high`__ 。

注:JBC245、JBC210的手柄比较紧,需要插到底部,知道烙铁界面能够识别出温度为止。

### 热风枪 <a id="热风枪"></a>
注:使用第三方手柄必须参考__`组装教程.pdf文档`__接线。拔插必须 __`关闭电源开关`__ 操作。
1. 热风枪默认插接主机 __`前置航空头`__ 。
2. 固件内对于热风枪的温度校准为出风口`1cm`处。相对于市面上现成未特殊校准过的风枪,温度更高一些,故`300`度即可达到普通风枪`350~400`度的效果。温度与风速无关,校准在30%风速下进行即可。
3. (二车v2.5.x)不插接热风枪手柄时,可能出现固件显示的风枪温度不正常(仅显示,并没有安全问题), <a href="#二车 - 风枪和加热台误报链接错误(此问题影响较小)"><font size="4" color="#00f">具体请看</font></a>

### 加热台 <a id="加热台"></a>
注:必须参考__`组装教程.pdf文档`__接线。拔插必须 __`关闭电源开关`__ 操作。
1. 加热台默认插接主机 __`后置航空头`__ 。
2. 目前固件内部使用__`软开关`__启停加热台。需要在加热台界面点击电源开关方可工作。
3. 由于加热台热容比较大,使得关闭后降温很慢,属于正常现象。
4. (二车v2.5.x)不插接加热台时,可能出现固件显示的加热台温度不正常(仅显示,并没有安全问题),具体请看 <a href="#二车 - 风枪和加热台误报链接错误(此问题影响较小)"><font size="4" color="#00f">具体请看</font></a>

### 可调电源 <a id="可调电源"></a>
<a href="#二车 - 可调电源电压自动升压问题"><font size="4" color="#00f">目前存在的问题</font></a>

### 其他附加功能 <a id="其他附加功能"></a>
待固件支持

## 关于保修(2023年6月22日起):  <a id=" 关于保修(2023年6月22日起)"></a>
1. 二车所有批量预定的机器都是群主亲测无误后发出,内部功能理应到手即用。为确保机器到大家手上时是正常的,收到货后如有外观损坏,两天内淘宝发消息报备问题。破损问题会第一时间处理。
2. 检查烙铁、风枪、加热台、可调电源四个主功能是否都正常,若有功能不正常,请在到货【7天】内在淘宝报备功能故障。
3. 到货7天后发生的问题将视为“正常使用故障”或“人为故障”,正常使用损坏 __`三个月内`__ 免费维修, __`人为损坏`__ 或 __`三个月后`__ 需付费维修。

__`注:`__ 因个人制作手柄时,接线错误导致机器部分电路损坏视为 __`人为损坏`__ 。有问题先及时报备,私自拆机不提供保修。












## 硬件修改通知 <a id="硬件修改通知"></a>







### V2.0.X版本硬件(一车)修改通知 <a id="#V2.0.X版本硬件(一车)">
#### 一车 - 必须修改项 <a id="一车 - 必须修改项"></a>

 __`问题描述:`__ 由于功率板V2.0设计上的不完善,导致了容易因为烙铁烧主控引脚,故所有持有功率板V2.0的群友强制要修改。

 __`解决方案:`__ 烙铁信号接口的S2处,在s2信号进入到R39电阻的左边焊盘前,需要串连一个二极管。

 ![SnailHeater](../V2.0功率板修改/V2.0版本修改1.png)

为此提供两种修改方案,方案一焊接简单,方案二整体性合理。两种方案原理是一样的,选择合适自己的就可以,任何不懂的可以发群里问。

 __`方案一修改`__ 
方案的思路:在连接线上处理。

优点:焊接难度低、风险低,不需要修改板子。

1. 先在3pin的中间那根线头`0.5cm`或`1cm`处剪一刀。随后两端线头剥皮(一点点就够)、线头镀锡、套上`1.5cm`热缩管,待备。如下图所示:
![SnailHeater](../V2.0功率板修改/方案0_剪线位置.jpg)

2. 二极管两端建议先上锡,将二极管焊在剪断的中间,注意二极管的负极朝着航空插的方向,焊接完需使用`万用表`测试二极管两端的压降,顺带确认方向。如下图所示:
二极管的购买连接(压降约0.25v) https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.4.ea6d7484oXvrt2&id=528155505657
![SnailHeater](../V2.0功率板修改/方案0_焊上二极管.jpg)

3. 加热热缩管缩管
![SnailHeater](../V2.0功率板修改/方案0_收热缩管.jpg)



 __`方案二修改`__ 
方案的思路:直接修改功率板。切断部分走线串联二极管。

优点:整体性更优,修改原则上更合理。

1. 以下时要切断的走线示意图(原理图走线)。如下图所示:
![SnailHeater](../V2.0功率板修改/V2.0版本修改_切断示意图.png)

2. 实物板切断的走线示意图,切记割的是`S2`标识的引脚,别错了。如下图所示:
![SnailHeater](../V2.0功率板修改/方案1_割线位置.jpg)

3. 二极管的负极接在3pin座的中间一脚上,二极管的正极与R39电阻的左端连接,焊接完需使用`万用表`测试二极管两端的压降,顺带确认方向。如下图所示:
二极管的购买连接(压降约0.25v) https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.4.ea6d7484oXvrt2&id=528155505657
![SnailHeater](../V2.0功率板修改/方案1_串连上二极管后.jpg)

方向参考
![SnailHeater](../V2.0功率板修改/方案1_二极管方向.jpg)


 __`补充说明:`__ 要求二极管的压降越小越好。建议`0.3v`压降的二极管。



#### 一车 - 微小的优化 <a id="一车 - 微小的优化"></a>

 __`问题描述:`__ 主要针对优化烙铁的休眠功能(软件上可以使用更好的休眠功能),可修改也可不修改。

 __`解决方案:`__ 在核心板模组从下往上数的第5个引脚串连一个`100nf(0.1uf/104)`电容,电容的另一端连接到模组最上边的GND脚上。如下图所示:
![SnailHeater](../V2.0功率板修改/核心板加电容.jpg)

 __`补充说明:`__ 由于主控模组的屏蔽罩也是`GND`,故也可以如下焊接方案(更简洁)

![SnailHeater](../V2.0功率板修改/核心板加电容_2.jpg)






### V2.5.X版本硬件(二车)修改通知 <a id="#V2.5.X版本硬件(二车)">
### 二车 - 烙铁头对地(PE)电压比较高 <a id="二车 - 烙铁头对地(PE)电压比较高"></a>

 __`问题描述:`__ 若烙铁头对地(PE)的电压比较高(高到10V、20V),使用过程中可能烧毁器件。

 __`解决方案:`__ 由于目前蜗牛台配套使用的`AC-DC24V`电源接地的问题,与原先功率板的的接地方式不匹配,导致烙铁金属外壳对PE将有24V电压。故统一修改一处电阻,如下图是所示, _`R25`_ 原先使 _`1M`_ 的电阻,现需要并上一颗 _`1K`_ 左右的电阻。

注:实际上 _`1M`_ 替换成 _`1K`_ 也可行,为了后期可能使用 _`蜗牛台专用电源`_ ,推荐请保留改 _`1M`_ 电阻。

 __`补充说明:`__ 购买`二车`(v2.5.0)的成品`功率板`和DIY的群友自行修改。购买`主机`且 _`2023年5月31日`_ 之前发货的群友可自行修改,如果不方便,主机可寄回给群主处理。

![功率板接地修改](功率板接地修改.jpg)

### 二车 - 可调电源电压自动升压问题 <a id="二车 - 可调电源电压自动升压问题"></a>

 __`问题描述:`__ 随着使用时间的拉长,可调电源输出的电压会逐渐增大,机壳内或者外围环境温度越高现象越明显,大电流输出情况下此现象也越明显。原因是可调电源使用的二极管极其容易受温度影响,使得器件的参数发生变化,控制的电压输出也随之变化。

 __`解决方案:`__ 修改下图中的黑色的二极管 _`D16`_ ,更改成 _`1N4148WS`_ (封装为SOD-323 丝印一般是T4),注意二极管的方向。推荐链接购买 https://item.taobao.com/item.htm?spm=a1z09.2.0.0.63882e8dFnpTDo&id=661687019354&_u=dmp44q8405c
![二车二极管修改D16](二车二极管修改D16.png)

 __`补充说明:`__ 购买`二车`(v2.5.0)的成品`功率板`和DIY的群友自行修改。购买`主机`且 _`2023年7月12日`_ 之后发货或者返修发货的机器都是修改完的(无需自己修改),之前发货的群友可自行修改,如果不方便,主机可寄回给群主处理。

### 二车 - 风枪和加热台误报链接错误(此问题影响较小) <a id="二车 - 风枪和加热台误报链接错误(此问题影响较小)"></a>

 __`问题描述:`__ 此现象仅在于 _`未连接`_ 风枪手柄或加热台时,焊台风枪或加热台的显示数值却不是NA,并且伴随着 _`断开/连接`_ 警报提示。环境温度较高时,此现象明显。

 __`解决方案:`__ 修改下图中的两个黑色的二极管 _`D7`_ 和 _`D14`_ ,都更改成 _`1N4148WS`_ (封装为SOD-323 丝印一般是T4),注意二极管的方向。推荐链接购买 https://item.taobao.com/item.htm?spm=a1z09.2.0.0.63882e8dFnpTDo&id=661687019354&_u=dmp44q8405c

![二车二极管修改D14D7](二车二极管修改D14D7.png)

 __`补充说明:`__ 购买`二车`(v2.5.0)的成品`功率板`和DIY的群友自行修改。购买`主机`且  __`2023年7月12日`__  之后发货或者返修发货的机器都是修改完的(无需自己修改),之前发货的可自行修改,如果不方便,主机可寄回给群主处理。

### 二车 - 优化项 <a id="二车 - 优化项"></a>
 __`问题描述:`__ 如下图所示,功率板与机壳之间使用一颗螺丝连接,该落实为了固定功率板的同时也为了让机壳接地。该螺丝如果强制拧紧板子,将会导致功率板变形,因此有概率在运输过程中导致螺丝松动,甚至点掉落在机壳内。
![功率板固定螺丝](功率板固定螺丝.png)
 
  __`解决方案:`__ 推荐所有已在拆机状态的群友,在螺丝四周打上热熔胶或者中稠的硅橡胶。

  __`补充说明:`__ 无

================================================
FILE: Doc/V2.5.x组装教程/SnailHeater硬件V2.5.x版本组装教程.md
================================================
# SnailHeater接线教程
### 免责声明:
#### 由于本作品涉及到220V交流电,需有一点基础的人员才可操作。未能正确估量自己的能力,发生触电等有损人身安全的事故,均与本项目开发者无关。也提醒大家,接线过程中不要接220V,一定要断电操作!!!

本教程对SnailHeater主机接线提供一个统一的接线规范。关于手柄接线请参考 __`《蜗牛台全系接线引脚定义.pdf》`__。SnailHeater主机包含5款PCB板,分别为`内嵌板`、`屏幕板`、`核心板`、`接线拓展版`、`驱动板`。本教程涉及的非元器件外的配件在此在线文档中均有购买连接推荐或者相关描述:蜗牛台文档目录 https://docs.qq.com/doc/DQWd3cW5HYkxBWFBh 的`《物料清单》`中(请区分硬件版本)。

核心板的数据采集来源于驱动板,在未接驱动板的情况下,数值是无参考意义的。而驱动板是的逻辑是由核心板控制的,所以在未接线或核心板不可用的情况下请勿使用AC220供电。

在阅读接下来的文档前,希望大家观看视频教程,以至于对SnailHeater整体有个清晰的认识。请观看 蜗牛台文档目录 https://docs.qq.com/doc/DQWd3cW5HYkxBWFBh 的`《蜗牛台整体介绍》`视频。

涉及的接口有:
* 烙铁口GX12-5 (T12/JBC245通用)
* 可调电源输出`2mm香蕉头`或`GX12-4航空头`
* 前置风枪/加热台`GX16-8`
* 后置风枪/加热台`GX16-8`
* 品字电源座、船型开关
* 额外接地口、与JBC休眠口 `2mm香蕉头`

补充知识:
1. 带针的航空头成为公头,不带针的称之为母头。
2. 主机上安装的都是公头。所有的航空头都有一个防呆缺口(防止插错),防呆缺口的左右两边对应的是`1脚`和`n脚`,整体编号是按顺序编号的(顺逆不定)。
3. 航空母头的外壳为金属,注意内部弹片的焊线高度不要顶到外壳上,以免造成短路。
4. 焊接前,为了更好的焊接,建议所有的多股线头缠绕后镀锡,航空头的每个针都要线镀锡。
5. 为了更安全的防止短路,航空头与线头的连接处使用2mm直径的热缩管防护,故焊接前先在每根线上套好热缩管。
6. 一般新的风枪加热后会有`白烟`,属于正常现象。因为内部云母纸的特性,初始受热会产生烟雾,然后云母纸变脆,使用一段时间后就正常了。

## 快捷导航
<a href="#各个板子介绍"><font size="4" color="#00f">各个板子介绍</font></a>
<a href="#配件准备工作"><font size="4" color="#00f">配件准备工作</font></a>
<a href="#AC-DC 5V电源"><font size="3" color="#00f">|-----AC-DC 5V电源</font></a>
<a href="#DC-DC 12V电源"><font size="3" color="#00f">|-----DC-DC 12V电源</font></a>
<a href="#安装"><font size="4" color="#00f">安装</font></a>
<a href="#1. 屏幕板安装"><font size="3" color="#00f">|-----1. 屏幕板安装</font></a>
<a href="#2. 安装核心板"><font size="3" color="#00f">|-----2. 安装核心板</font></a>
<a href="#3. 安装前置接口"><font size="3" color="#00f">|-----3. 安装前置接口</font></a>
<a href="#4. 安装后置面板"><font size="3" color="#00f">|-----4. 安装后置面板</font></a>
<a href="#5. 机壳准备"><font size="3" color="#00f">|-----5. 机壳准备</font></a>
<a href="#6. 安装固定驱动板"><font size="3" color="#00f">|-----6. 安装固定驱动板</font></a>
<a href="#7. 内部主要接线视图"><font size="3" color="#00f">|-----7. 内部主要接线视图</font></a>
<a href="#8. 组装后整体效果"><font size="3" color="#00f">|-----8. 组装后整体效果</font></a>

***

## <a id="各个板子介绍">各个板子介绍</a>
###### 屏幕板 ⬇
本图实际上是包含了`内嵌板`拍的
![屏幕板](屏幕板.jpg)

###### 内嵌板(为屏幕的保护框) ⬇
![内嵌板](内嵌板正面.jpg)

###### 接线拓展板 ⬇
![拓展板(接线板)](拓展板(接线板).jpg)
注:左边一小部分是后置面板用的接线板,右边长条是前置前置面板的接线板。使用的时候,需要用钳子剪一下再掰,以免掰断铜层。

###### 核心板 ⬇
![核心板反面](核心板反面.jpg)

###### 驱动板 ⬇
![驱动板正面](驱动板正面.jpg)

***
## <a id="配件准备工作">配件准备工作</a>

#### <a id="AC-DC 5V电源">AC-DC 5V电源</a>
此5V电源给系统供电,要求低纹波,纹波越小系统越稳定。蜗牛台内含可调电源,因此对系统供电纹波有一定要求。

蜗牛台统一推荐一款纹波较好的电源(自带双电压输出5V + 3V3),如下图。
注:V2.0版本硬件(一车版本)使用的是`3.3V`,从一车升级到V2.5版本的需要将原本`3v3`接线改为`5V`口输出。

###### 准备材料:
1. 一段3.5cm直径20mm的热缩管
2. 80mm单头XH2.54线材一段
3. 2根80cm 22AWG规格的线材一段(尽量比24AWG粗就行)
![5V电源](AC-DC5v电源接线.jpg)
此电源的直流低压输出端分别是:3V3 GND 5V(从左到右)

#### <a id="DC-DC 12V电源">DC-DC 12V电源</a>
此电源是用于`JBC210`这样需要12V电源的烙铁芯供电,从24V大电源取电。(如果不需要`JBC210`,可省略此电源)
注:虽然通过pwm限制24V电源输出的能量,理论上也可以控制jbc210,但实际调试的过程中很容易烧毁国产的烙铁芯。倘若将频率调高,整个mos管的通断效率也会降低,故直接加入`12V dc-dc电路`供给JBC210。

以下推荐使用`SY8205模块`(峰值6A),淘宝5元随意买。但默认此模组出厂为5V,需要自行调整模块上的`R1`和`R2`,将`R1`调整至220k `R2`调整为12K,改完之后理论值为`11.6V`(从群主那购买的12V电源模块均已改好)。如下图所示:
![sy8205模组](sy8205模组.jpg)

###### 准备材料:
1. 一段3cm直径16mm的热缩管
2. 80mm 20AGWG硅胶线 黑红各一根
3. 130mm 20AWG硅胶线 白色一根

![sy8205模组接线](sy8205模组接线.jpg)
红线接24V大电源正极、黑线接24V大电源负极、白线接驱动板12V标识的接线端子。

***

## <a id="安装">安装</a>

### <a id="1. 屏幕板安装">1. 屏幕板安装</a>
屏幕板有上个开孔,从左到右依次是:GX12-5航空头(烙铁接口)、GX12-4航空头/2MM香蕉头的通用接口(可调电源输出使用)、GX16-8航空头(风枪接口)。

屏幕板的可调电源口物理上支持两种接口(GX12-4或者2mm香蕉头)。
###### 接口优缺点:
GX12-4优点是可以将内部24V原电压也一块引出。
2mm香蕉头优点是接线电阻更低一些也更符合市面上的可调电源的接口形式。

##### 实物图片
![屏幕板](屏幕板.jpg)
屏幕为中景园的1.69寸280*240,驱动为ST7789V。旋钮为普通的EC11编码器。

![屏幕板反面](屏幕板反面.jpg)
`R106`、`R107`为预留的调试电阻,不需要焊

![屏幕板斜视角](屏幕板斜视角.jpg)
为尽可能美观,故`EC11编码器`(即旋钮)使用倒装的方式安装(将5个引脚用钳子掰180度,一定要轻)
屏幕板PCB铜柱的连接上`硬件清单中`,规格是`M3*6+1`(1为底部固定引脚的直径)

![触摸面板](触摸面板.jpg)
屏幕板EC11旋钮下方的裸漏镀锡层(开窗)为触摸开关的按键,需要加一层薄薄的锡,盖上内嵌板后方可导电到上层的内嵌板,实现触摸按键的功能。

***

### <a id="2. 安装核心板">2. 安装核心板</a>
![刷机的硬件条件](刷机的硬件条件.jpg)
此结构也是刷够刷固件的最少硬件要求。

注:核心板上`R3`圆形封装的电阻是需要焊接热敏电阻,具体型号为`M52-10K-B3950 1%`(本图拍摄时忘记焊上了)

***

### <a id="3. 安装前置接口">3. 安装前置接口</a>
![屏幕板加航空头](屏幕板加航空头.jpg)
注:如上图所示,航空头缺口要朝上(不过有另类的航空头比较特殊)

![核心板、屏幕板、航空头](核心板、屏幕板、航空头.jpg)

![接线板](接线板.jpg)
插入接线板,让航空头的角度刚刚好。确保接口方向都正常后,将航空头焊到接线板上。

![前接线板](前接线板.jpg)
接线材料(从左到右):
1. GX16-8风枪接口 丝印所指示的两个`发热芯`引脚各使用13cm 20AWG硅胶线接出。丝印指示的`地线`使用7cm左右的20AWG硅胶线引出。(由于风枪是220V交流电供电,故不分正负)
2. 中间两个2mm香蕉头使用两个7cm 20AWG硅胶线引出,红为正极、黑为负。
3. GX12-5烙铁接口的`发热芯正极`和`发热芯负极`分别使用7cm 20AWG的硅胶线引出。

***

### <a id="4. 安装后置面板">4. 安装后置面板</a>
![机壳后挡板外侧](机壳后挡板外侧.jpg)
1. GX16-8接口为安全起见,一定要先套上GX16专用的`防尘塞`,不然焊接线板后就不好套上了。
2. 绿色和白色的香蕉头都为2mm香蕉头。绿色香蕉口为额外地线引脚,可接防静电手环(让手环也能接地)。白色为烙铁外置休眠口,主要为了支持JBC默认的休眠座。
3. 品字电源座部分是不带保险管的,需要自行查看是否需要购置保险管(2*50mm 250V/10A)。另外,保险管一侧尽可能朝内,这样插拔线的时候周围空间不至于紧。

![机壳后挡板内侧](机壳后挡板内侧.jpg)
1. 后置接线板的丝印指示点`外置休眠`需要接一根线连接`白色的2mm香蕉头`(推荐从接线板底下绕线)
2. 接线板丝印指示`地线`与绿色香蕉头都使用一根线连接到品字电源座的地线引脚,如上图
3. 接线小板上指示的两个`发热芯`引脚(7、8脚)需要使用7cm 20AWG硅胶线引出,这两根线之后会接220V,所以不分正负。
4. 品字电源座的`N`线引脚接一根7cm 20AWG的硅胶线并套好热缩管(后续连接驱动板需要)。
5. 品字电源座的`L`端接一根短线到`窗船型开关`(注意:事先套好热缩管)
6. `船型开关`的另一端接一根7cm 20AWG的硅胶线并套好热缩管(后续连接驱动板需要)。

***

### <a id="5. 机壳准备">5. 机壳准备</a>

![机壳](机壳.jpg)
推荐购买群内批量的机壳。自行加工一套200,很贵!!!

底部最好贴上硅胶垫,焊台使用的时候能够防滑。

![机壳加装青稞纸](机壳加装青稞纸.jpg)
两面都加装青稞纸

***

### <a id="6. 安装固定驱动板">6. 安装固定驱动板</a>
![驱动板安装](驱动板安装.jpg)
1. 先将可控硅的引脚插在驱动板上弯折(弯折程度请参考下图)。为了更安全,驱动板上的可控硅安装脚距比较大,实际买到的可控硅间距比较小,需要自行拉开一点才可以插进去。
2. 驱动板左下角的孔通过一颗`M3*8mm`的螺丝固定到机壳地板,此步骤既是固定驱动板,同时也是让机壳连接驱动板的地线。

![可控硅绝缘散热结构](可控硅绝缘散热结构.jpg)
一共两组可控硅,推荐型号`BTA08-600`或者`BTA12-600`(尽可能买正品,寿命长),可控硅是带220V市电的,故需要安全可靠的结构。(以下是二车之后的外壳,一车外壳是装侧面导热)
1. 可控硅金属散热盘与机壳之间使用`氧化铝导热片`(规格12*18*0.6)绝缘。
2. 可控硅上面需要使用耐高温的`TO-220 绝缘胶粒`才可拧螺丝固定,很重要!!!

***

### <a id="7. 内部主要接线视图">7. 内部主要接线视图</a>

![机壳前后面板接线](机壳前后面板接线.png)
1. 机壳后面板的`接线小板`与`驱动板`的fpc规格为`fpc 4pin 15cm同向`,风扇供电使用`XH2.54 双头80mm 同向线`连接。
2. 屏幕板的`接线拓展板`与`驱动板`的fpc规格为`fpc 6pin 6cm同向`,风扇供电使用`XH2.54 双头80mm 同向线`连接。
3. 前置`接线拓展板`的白色地线焊接到`驱动板`的小长条的`PE焊点`上

![整机俯视图](整机俯视图.jpg)
1. 连接上`AC-DC 24V`大电源,24V电源为淘宝`24V4A`的廉价电源,峰值8A左右。AC端接驱动板的AC端。DC24V输出端接驱动板的24V接线座上。
2. 此前准备的`DC-DC 12V`电源模块的红黑线输入端接24V大电源的输出接线座,白线12V接驱动板的`12V接线端`(GND旁边的12V标识)。
3. `AC-DC 5V`小电源的5V输出接核心板的`XH2.54 接线座`上。

![整机斜视图](整机斜视图.png)

***

### <a id="8. 组装后整体效果">8. 组装后整体效果</a>
![主机成品图](主机成品图.jpg)
`上主机`是`可调电源输出接口`为`GX12-4`的主机样品,`下主机`是`可调电源输出接口`为`2mm香蕉头`的主机样品。
1. 屏幕板使用`大平头倒边螺丝 十字 8mm`与机壳固定。
2. 后面板使用机壳自带的小型内嵌螺丝。


***

### 关于手柄接线
请参考 __`《蜗牛台全系接线引脚定义.pdf》`__

================================================
FILE: Doc/V2.5.x组装教程/一车升级二车教程.md
================================================
# SnailHeater接线教程
### 免责声明:
#### 由于本作品涉及到220V交流电,需有一点基础的人员才可操作。未能正确估量自己的能力,发生触电等有损人身安全的事故,均与本项目开发者无关。也提醒大家,接线过程中不要接220V,一定要断电操作!!!

本教程对SnailHeater主机接线提供一个统一的接线规范。SnailHeater主机包含5款PCB板,分别为`内嵌板`、`屏幕板`、`核心板`、`接线拓展版`、`驱动板`。本教程涉及的配件在此在线文档中均有购买连接推荐或者相关描述: https://docs.qq.com/sheet/DQUlDclNBWXhFbUdW

核心板的数据采集来源于驱动板,在未接驱动板的情况下,数值是无参考意义的。而驱动板是的逻辑是由核心板控制的,所以在未接线或核心板不可用的情况下请勿使用AC220供电。

在阅读接下来的文档前,希望大家观看视频教程,以至于对SnailHeater整体有个清晰的认识。https://www.bilibili.com/video/BV1oG4y1h7A8

涉及的接口有:
* 烙铁口GX12-5 (T12/JBC245通用)
* 可调电源输出`2mm香蕉头`或`GX12-4航空头`
* 前置风枪/加热台`GX16-8`
* 后置风枪/加热台`GX16-8`
* 品字电源座、船型开关
* 额外接地口、与JBC休眠口 `2mm香蕉头`

补充知识:
1. 带针的航空头成为公头,不带针的称之为母头。
2. 主机上安装的都是公头。所有的航空头都有一个防呆缺口(防止插错),防呆缺口的左右两边对应的是`1脚`和`n脚`,整体编号是按顺序编号的(顺逆不定)。
3. 航空母头的外壳为金属,注意内部弹片的焊线高度不要顶到外壳上,以免造成短路。
4. 焊接前,为了更好的焊接,建议所有的多股线头缠绕后镀锡,航空头的每个针都要线镀锡。
5. 为了更安全的防止短路,航空头与线头的连接处使用2mm直径的热缩管防护,故焊接前先在每根线上套好热缩管。
6. 一般新的风枪加热后会有`白烟`,属于正常现象。因为内部云母纸的特性,初始受热会产生烟雾,然后云母纸变脆,使用一段时间后就正常了。

***

## <a id="各个板子介绍">各个板子介绍</a>
###### 屏幕板 ⬇
本图实际上是包含了`内嵌板`拍的
![屏幕板](屏幕板.jpg)

###### 内嵌板(为屏幕的保护框) ⬇
![内嵌板](内嵌板正面.jpg)

###### 接线拓展板 ⬇
![拓展板(接线板)](拓展板(接线板).jpg)
注:左边一小部分是后置面板用的接线板,右边长条是前置前置面板的接线板。使用的时候,需要用钳子剪一下再掰,以免掰断铜层。

###### 核心板 ⬇
![核心板反面](核心板反面.jpg)

###### 驱动板 ⬇
![驱动板正面](驱动板正面.jpg)

***
## <a id="配件准备工作">配件准备工作</a>

#### <a id="AC-DC 5V电源">AC-DC 5V电源</a>
此5V电源给系统供电,要求低纹波,纹波越小系统越稳定。蜗牛台内含可调电源,因此对系统供电纹波有一定要求。

蜗牛台统一推荐一款纹波较好的电源(自带双电压输出5V + 3V3),如下图。
由于V2.0版本硬件(一车版本)使用的是`3.3V`,从一车升级到V2.5版本的需要将原本`3v3`接线改为`5V`口输出。并套上附送的大号热缩管。

###### 准备材料:
1. 一段3.5cm直径20mm的热缩管
2. 80mm单头XH2.54线材一段
3. 2根80cm 22AWG规格的线材一段(尽量比24AWG粗就行)
![5V电源](AC-DC5v电源接线.jpg)
此电源的直流低压输出端分别是:3V3 GND 5V(从左到右)

#### <a id="DC-DC 12V电源">DC-DC 12V电源</a>
此电源是用于`JBC210`这样需要12V电源的烙铁芯供电,从24V大电源取电。(如果不需要`JBC210`,可省略此电源)
注:虽然通过pwm限制24V电源输出的能量,理论上也可以控制jbc210,但实际调试的过程中很容易烧毁国产的烙铁芯。倘若将频率调高,整个mos管的通断效率也会降低,故直接加入`12V dc-dc电路`供给JBC210。

以下推荐使用`SY8205模块`(峰值6A),淘宝5元随意买。默认此模组出厂为5V,大家到手的模组已是改好12V电压的了。如下图所示:
![sy8205模组](sy8205模组.jpg)

###### 准备材料:
1. 一段3cm直径16mm的热缩管
2. 80mm 20AGWG硅胶线 黑红各一根
3. 130mm 20AWG硅胶线 白色一根

![sy8205模组接线](sy8205模组接线.jpg)
红线接24V大电源正极、黑线接24V大电源负极、白线接驱动板12V标识的接线端子。

***

## <a id="安装">安装</a>

### <a id="1. 屏幕板安装">1. 屏幕板安装</a>
屏幕板有上个开孔,从左到右依次是:GX12-5航空头(烙铁接口)、GX12-4航空头/2MM香蕉头的通用接口(可调电源输出使用)、GX16-8航空头(风枪接口)。

屏幕板的可调电源口物理上支持两种接口(GX12-4或者2mm香蕉头)。
###### 接口优缺点:
GX12-4优点是可以将内部24V原电压也一块引出。
2mm香蕉头优点是接线电阻更低一些也更符合市面上的可调电源的接口形式。

##### 实物图片
![屏幕板](屏幕板.jpg)
屏幕为中景园的1.69寸280*240,驱动为ST7789V。旋钮为普通的EC11编码器。

![屏幕板反面](屏幕板反面.jpg)
`R106`、`R107`为预留的调试电阻,不需要焊

![屏幕板斜视角](屏幕板斜视角.jpg)
为尽可能美观,故`EC11编码器`(即旋钮)使用倒装的方式安装(将5个引脚用钳子掰180度,一定要轻)
屏幕板PCB铜柱的连接上`硬件清单中`,规格是`M3*6+1`(1为底部固定引脚的直径)

![触摸面板](触摸面板.jpg)
屏幕板EC11旋钮下方的裸漏镀锡层(开窗)为触摸开关的按键,需要加一层薄薄的锡,盖上内嵌板后方可导电到上层的内嵌板,实现触摸按键的功能。

***

### <a id="2. 安装核心板">2. 安装核心板</a>
![刷机的硬件条件](刷机的硬件条件.jpg)
此结构也是刷够刷固件的最少硬件要求。

注:核心板上`R3`圆形封装的电阻是需要焊接热敏电阻,具体型号为`M52-10K-B3950 1%`(本图拍摄时忘记焊上了)

***

### <a id="3. 安装前置接口">3. 安装前置接口</a>
![屏幕板加航空头](屏幕板加航空头.jpg)
注:如上图所示,航空头缺口要朝上(不过有另类的航空头比较特殊)

![核心板、屏幕板、航空头](核心板、屏幕板、航空头.jpg)

![接线板](接线板.jpg)
插入接线板,让航空头的角度刚刚好。确保接口方向都正常后,将航空头焊到接线板上。

![前接线板](前接线板.jpg)
接线材料(从左到右):
1. GX16-8风枪接口 丝印所指示的两个`发热芯`引脚各使用13cm 20AWG硅胶线接出。丝印指示的`地线`使用7cm左右的20AWG硅胶线引出。(由于风枪是220V交流电供电,故不分正负)
2. 中间两个2mm香蕉头使用两个7cm 20AWG硅胶线引出,红为正极、黑为负。
3. GX12-5烙铁接口的`发热芯正极`和`发热芯负极`分别使用7cm 20AWG的硅胶线引出。

***

### <a id="4. 安装后置面板">4. 安装后置面板</a>
![机壳后挡板外侧](机壳后挡板外侧.jpg)
由于一车外壳不同,上图仅作参考。

![机壳后挡板内测](机壳后挡板内测.jpg)
1. 一车无白色香蕉头
2. 一车无绿色香蕉头
3. 接线小板上指示的两个`发热芯`引脚(7、8脚)需要使用7cm 20AWG硅胶线引出,这两根线之后会接220V,所以不分正负。
4. 品字电源座的`N`线引脚接一根7cm 20AWG的硅胶线并套好热缩管(后续连接驱动板需要)。
5. 品字电源座的`L`端接一根短线到`窗船型开关`(注意:事先套好热缩管)
6. `船型开关`的另一端接一根7cm 20AWG的硅胶线并套好热缩管(后续连接驱动板需要)。

***

### <a id="5. 机壳准备">5. 机壳准备</a>

![机壳](机壳.jpg)
推荐购买群内批量的机壳。自行加工一套200,很贵!!!

底部最好贴上硅胶垫,焊台使用的时候能够防滑。

![机壳加装青稞纸](机壳加装青稞纸.jpg)
两面都加装青稞纸

***

### <a id="6. 安装固定驱动板">6. 安装固定驱动板</a>
![驱动板安装](驱动板安装.jpg)
一车结构不同,上图仅参考。

![可控硅绝缘散热结构](可控硅绝缘散热结构.jpg)
一共两组可控硅,推荐型号`BTA08-600`或者`BTA12-600`(尽可能买正品,寿命长),可控硅是带220V市电的,故需要安全可靠的结构。(以下是二车之后的外壳,一车外壳是装侧面导热)
1. 可控硅金属散热盘与机壳之间使用`氧化铝导热片`(规格12*18*0.6)绝缘。
2. 可控硅上面需要使用耐高温的`TO-220 绝缘胶粒`才可拧螺丝固定,很重要!!!

***

### <a id="7. 内部主要接线视图">7. 内部主要接线视图</a>

![机壳前后面板接线](机壳前后面板接线.png)
1. 机壳后面板的`接线小板`与`驱动板`的fpc规格为`fpc 4pin 15cm同向`,风扇供电使用`XH2.54 双头80mm 同向线`连接。
2. 屏幕板的`接线拓展板`与`驱动板`的fpc规格为`fpc 6pin 6cm同向`,风扇供电使用`XH2.54 双头80mm 同向线`连接。
3. 前置`接线拓展板`的白色地线焊接到`驱动板`的小长条的`PE焊点`上

![整机俯视图](整机俯视图.jpg)
1. 连接上`AC-DC 24V`大电源,24V电源为淘宝`24V4A`的廉价电源,峰值8A左右。AC端接驱动板的AC端。DC24V输出端接驱动板的24V接线座上。
2. 此前准备的`DC-DC 12V`电源模块的红黑线输入端接24V大电源的输出接线座,白线12V接驱动板的`12V接线端`(GND旁边的12V标识)。
3. `AC-DC 5V`小电源的5V输出接核心板的`XH2.54 接线座`上。

![整机斜视图](整机斜视图.png)

***

### <a id="8. 组装后整体效果">8. 组装后整体效果</a>
![主机成品图](主机成品图.jpg)
`上主机`是`可调电源输出接口`为`GX12-4`的主机样品,`下主机`是`可调电源输出接口`为`2mm香蕉头`的主机样品。
1. 屏幕板使用`大平头倒边螺丝 十字 8mm`与机壳固定。
2. 后面板使用机壳自带的小型内嵌螺丝。


***

### <a id="关于蜗牛台航空头引脚定义">关于蜗牛台航空头引脚定义</a>
补充知识点:手柄的接口没有标准的线序,市面上的手柄或者主机线序都是不统一的,所以各家品牌的手柄只支持接自家的主机。不能直接使用其他家的手柄插接SnailHeater主机上,需要改好接头的线序才行。

##### GX12-5航空头(烙铁)
航空头 GX12-5 | 1 | 2 | 3 | 4 | 5
:-: | :-: | :-: | :-: | :-: | :-:
含义 | 发热芯ID识别引脚 | 发热芯正极 | 振动开关正极 | 振动开关/发热芯/热电偶 负极 | 热电偶正极


##### 前后两个GX16-8航空头(风枪、加热台、烤箱)
航空头 GX16-8 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
:-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-:
功能说明 | 电偶正 | 电偶负、磁控 | 磁控 | 风枪金属外壳 | 风扇正 | 风扇负 | 发热丝 | 发热丝

***

### <a id="手柄接线规范">手柄接线规范</a>

补充知识点:烙铁手柄的接口没有标准的线序,市面上的手柄或者主机线序都是不统一的,所以各家品牌的手柄只支持接自家的主机。不能直接使用其他家的手柄插接SnailHeater主机上,需要改好接头的线序才行。

### T12手柄

![T12接线图](T12接线图.png)

航空头 GX12-5 | 1 | 2 | 3 | 4 | 5
:-: | :-: | :-: | :-: | :-: | :-:
含义 | 识别引脚 | 发热芯正极 | 振动开关正极 | 振动开关/发热芯/热电偶 负极 | 热电偶正极

注:
* 振动开关的金色脚靠近硅胶线方向。航空头的2号和5号引脚是短接的,图片中热缩管那部分。


***

### JBC245手柄

航空头 GX12-5 | 1 | 2 | 3 | 4 | 5
:-: | :-: | :-: | :-: | :-: | :-:
含义 | 识别引脚 | 发热芯正极 | 振动开关正极 | 振动开关/发热芯/热电偶 负极 | 热电偶正极

![JBC245接线图](JBC245接线图.png)

注:
* 振动开关的金色脚靠近硅胶线方向。
* 如果使用休眠座,就不需要焊接 __`震动开关/水银开关`__ ,3脚休眠信号悬空即可。

##### 注:以下JBC245手柄的`ID识别信号`在手柄的航空头内部实现了跳线
![JBC245接线正面](JBC245接线正面.jpg)

1. 由于手柄空间问题,本手柄使用的为4.2mm外径的4芯线,且振动开关需要把外皮剥掉。

![JBC245接线反面](JBC245接线反面.jpg)

依旧由于空间的问题,塞入振动开关时容易卡住,手柄塞入需要推PCB的同时拉尾部的硅胶线,具体操作自行摸索。最终完成的状态如下。
![JBC245手柄整体](JBC245手柄整体.jpg)

***

### JBC210手柄

![JBC210接线图](JBC210接线图.png)

航空头 GX12-5 | 1 | 2 | 3 | 4 | 5
:-: | :-: | :-: | :-: | :-: | :-:
含义 | 识别引脚 | 发热芯正极 | 振动开关正极 | 振动开关/发热芯/热电偶 负极 | 热电偶正极

注:
* 振动开关的金色脚靠近硅胶线方向。航空头的2号和5号引脚是短接的,图片中热缩管那部分。
* 如果使用休眠座,就不需要焊接 __`震动开关/水银开关`__ ,3脚休眠信号悬空即可。


***

### 热风枪手柄
以下线序和SnailHeater主机的接口对应

航空头 GX16-8 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
:-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-:
功能说明 | 电偶正 | 电偶负、开关(磁控或其他开关) | 开关另一端(磁控或其他开关) | 风枪金属外壳 | 风扇正 | 风扇负 | 发热丝 | 发热丝

![858D接线图](858D接线图.png)

##### 接完线后,必须单独测量手柄航空头!!!
> 由于航空头外壳是金属的,故推荐接好线后,给7、8引脚套上热缩管,避免短路导电。
> 7、8引脚为220V发热芯供电引脚。7、8引脚与其他任何引脚之间均不相连且电阻无穷大(使用电阻档测量),此两脚必须严格检查并测试。
> 5、6引脚为24V风扇电机供电引脚,与其他任何引脚之间均不相连且电阻无穷大(使用电阻档测量)

***

### 加热台本体(可参考风枪手柄接线图)
注:SnailHeater加热台与热风枪的物理接口一致,只是少了风扇和开关信号,但整体和热风枪的线序是一致的。热风枪\加热台为AC220供电,故接口将会有高压输出,请勿在通电状态下触摸航空头的`内针`。

SnailHeater的加热台可以使用群内定制的发热板,也可以使用淘宝现成的铸铝发热板,甚至可以使用廉价的PTC发热板。前提是都需要有热电偶测温。

##### 以下是定制加热板的图:
![SnailHeater](加热板正面.jpg)
![SnailHeater](加热板背面.jpg)

##### 以下为发热芯内部拆解图,银白色的导线为电热丝(220V),故打孔的时候需要注意别穿到导线(中间有一长条没有空闲区可打孔)。供电线不分正负极。
![SnailHeater](加热板发热芯.jpg)


通常来说,热电偶的蓝线为负极,红线则为正极。发热芯的供电线为纯红色两根,不分正负极。

航空头 GX16-8 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
:-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-:
功能说明 | 电偶正(红线) | 电偶负(蓝线) | 空 | 接地线(连接加热板金属部分) | 空 | 空 | 发热丝(红线) | 发热丝(红线)

##### 接完线后,必须单独测量手柄航空头!!!
> 由于航空头外壳是金属的,故推荐接好线后,给7、8引脚套上热缩管,避免短路导电。
> 7、8引脚为220V发热芯供电引脚。7、8引脚与其他任何引脚之间均不相连且电阻无穷大(使用电阻档测量),此两脚必须严格检查并测试。
> 5、6引脚为24V风扇电机供电引脚(也可没有风扇),与其他任何引脚之间均不相连且电阻无穷大(使用电阻档测量)

附送的氧化铝保温棉内部有金属物质,尽量避免保温棉进入发热芯引发导电。另外群内定制的加热板是可以通过螺丝来引出地线的。具体请参考`加热板安装`的视频教程!!!


================================================
FILE: Doc/V2.6.x组装教程/SnailHeater硬件V2.6.x版本组装教程.md
================================================
# SnailHeater接线教程
### 免责声明:
#### 由于本作品涉及到220V交流电,需有一点基础的人员才可操作。未能正确估量自己的能力,发生触电等有损人身安全的事故,均与本项目开发者无关。也提醒大家,接线过程中不要接220V,一定要断电操作!!!

![主机成品](主机成品.png)

本教程对SnailHeater V2.6主机接线提供一个统一的接线规范。关于手柄接线请参考 __`《蜗牛台全系接线引脚定义.pdf》`__。SnailHeater主机包含5款PCB板,分别为`电源板`、`屏幕板`、`核心板`、`接线拓展版`、`驱动板`。本教程涉及的非元器件外的配件在此在线文档中均有购买连接推荐或者相关描述:蜗牛台文档目录 https://docs.qq.com/doc/DQWd3cW5HYkxBWFBh 的`《物料清单》`中(请区分硬件版本)。

核心板的数据采集来源于驱动板,在未接驱动板的情况下,数值是无参考意义的。而驱动板是的逻辑是由核心板控制的,所以在未接线或核心板不可用的情况下请勿使用AC220供电。

在阅读接下来的文档前,希望大家观看视频教程,以至于对SnailHeater整体有个清晰的认识。请观看 蜗牛台文档目录 https://docs.qq.com/doc/DQWd3cW5HYkxBWFBh 的`《蜗牛台整体介绍》`视频。

涉及的接口有:
* 烙铁口GX12-5 (T12/JBC245/JBC210通用)
* 可调电源输出`4mm香蕉头`
* 前置风枪/加热台`GX16-8`
* 后置风枪/加热台`GX16-8`
* 品字电源座、船型开关
* 额外接地口、与JBC休眠口 `4mm香蕉头`

补充知识:
1. 带针的航空头成为公头,不带针的称之为母头。
2. 主机上安装的都是公头。所有的航空头都有一个防呆缺口(防止插错),防呆缺口的左右两边对应的是`1脚`和`n脚`,整体编号是按顺序编号的(顺逆不定)。
3. 航空母头的外壳为金属,注意内部弹片的焊线高度不要顶到外壳上,以免造成短路。
4. 焊接前,为了更好的焊接,建议所有的多股线头缠绕后镀锡,航空头的每个针都要线镀锡。
5. 为了更安全的防止短路,航空头与线头的连接处使用2mm直径的热缩管防护,故焊接前先在每根线上套好热缩管。
6. 一般新的风枪加热后会有`白烟`,属于正常现象。因为内部云母纸的特性,初始受热会产生烟雾,然后云母纸变脆,使用一段时间后就正常了。

## 快捷导航
<a href="#各个板子介绍"><font size="4" color="#00f">各个板子介绍</font></a>
<a href="#配件准备工作"><font size="4" color="#00f">配件准备工作</font></a>
<a href="#驱动板"><font size="3" color="#00f">|-----驱动板</font></a>
<a href="#电源板"><font size="3" color="#00f">|-----电源板</font></a>
<a href="#安装"><font size="4" color="#00f">安装</font></a>
<a href="#1. 屏幕板与接线板安装"><font size="3" color="#00f">|-----1. 屏幕板与接线板安装</font></a>
<a href="#2. 安装核心板"><font size="3" color="#00f">|-----2. 安装核心板</font></a>
<a href="#3. 安装后置面板"><font size="3" color="#00f">|-----3. 安装后置面板</font></a>
<a href="#4. 机壳准备"><font size="3" color="#00f">|-----4. 机壳准备</font></a>
<a href="#5. 安装固定驱动板"><font size="3" color="#00f">|-----5. 安装固定驱动板</font></a>
<a href="#6. 内部主要接线视图"><font size="3" color="#00f">|-----6. 内部主要接线视图</font></a>
<a href="#7. 组装后整体效果"><font size="3" color="#00f">|-----7. 组装后整体效果</font></a>

***

## <a id="各个板子介绍">各个板子介绍</a>
###### 屏幕板 ⬇
正面
![屏幕板](屏幕版正面.jpg)
反面
![屏幕板](屏幕版背面.jpg)

###### 接线拓展板 ⬇
正面
![接线拓展版正面](接线拓展版正面.jpg)
反面
![接线拓展版背面](接线拓展版背面.jpg)

注:左边一小部分是后置面板用的接线板,右边长条是前置前置面板的接线板。使用的时候,需要用钳子剪一下再掰,以免掰断铜层。

###### 核心板 ⬇
正面
![核心板正面](核心板正面.jpg)
反面
![核心板反面](核心板反面.jpg)

###### 驱动板 ⬇
![驱动板正面](驱动板正面.jpg)

###### 电源板 ⬇
![驱动板正面](ADDC电源板俯视图.jpg)
![驱动板正面](ADDC电源板斜视图1.jpg)
![驱动板正面](ADDC电源板斜视图2.jpg)

***
## <a id="配件准备工作">配件准备工作</a>

#### <a id="驱动板">驱动板</a>
![驱动板反面](驱动板反面.jpg)
将板背面标有`填锡孔`的通孔用锡充分填充。 __注:这些孔都为大电流过孔,填充锡为了增加载流__


#### <a id="电源板">电源板</a>
![ADDC电源板背面](ADDC电源板背面.jpg)
1. 板背面标有`填锡孔`的通孔用锡充分填充。 __注:这些孔都为大电流过孔,填充锡为了增加载流__
2. 使用硅橡胶固定`ACDC-5V小电源`。
3. 短接`ACDC-5V小电源`输出端附近预留的`SB3`短接焊盘。
4. 测试并调整电源侧边的二极管高度,已适配与外壳贴合。

注:若手头无此电源,可参考上一版本V2.5.x中电源的准备。下图为上一版供电方案的简要预览图:
![上一版整机俯视图](上一版整机俯视图.jpg)

***

## <a id="安装">安装</a>

### <a id="1. 屏幕板与接线板安装">1. 屏幕板与接线板安装</a>
##### 下图为刷机的最小结构
![刷机最小结构](刷机最小结构.jpg)
屏幕板有上个开孔,从左到右依次是:GX12-5航空头(烙铁接口)、4MM香蕉头的通用接口(可调电源输出使用)、GX16-8航空头(风枪接口)。

##### 实物图片
![屏幕板](屏幕板加接头.jpg)
屏幕为中景园的2.4寸320*240,驱动为ST7789V。旋钮为普通的EC11编码器,且编码器5个引脚必须焊在屏幕板上,焊在核心板上会导致编码器操作时错乱。
![屏幕板反面](屏幕版和接线板接线.jpg)
注:如上图所示,航空头缺口要朝上(不过有另类的航空头比较特殊)。插入接线板,让航空头的角度刚刚好。确保接口方向都正常后,将航空头焊到接线板上。

接线材料(从左到右):
1. GX16-8风枪接口 丝印所指示的`发热芯`8号引脚使用一根2.5cm 20AWG的硅胶线与边缘的`N`连接。
2. 中间两个4mm香蕉头使用两个7cm 20AWG硅胶线引出,红为正极、黑为负。(推荐以图示的位置定义黑红)
3. GX12-5烙铁接口的`发热芯正极`和`发热芯负极`分别使用7cm 20AWG的硅胶线引出。

![屏幕板斜视角](屏幕版和接线板接线2.jpg)
为尽可能美观,故`EC11编码器`(即旋钮)使用倒装的方式安装(将5个引脚用钳子掰180度,一定要轻)

__GX16-8的红色跳线为零线,插入孔时,注意请勿触碰到航空头的金属部分。__


***

### <a id="2. 安装核心板">2. 安装核心板</a>
![安装核心板](安装核心板.jpg)

注:编码器的一个固定引脚需焊到核心板上,增强核心板的稳定性。核心板上`R7`圆形封装的电阻是需要焊接热敏电阻,具体型号为`M52-10K-B3950 1%`

***

### <a id="3. 安装后置面板">3. 安装后置面板</a>
![机壳后挡板外侧](机壳后挡板外侧.jpg)
1. GX16-8接口为安全起见,一定要先套上GX16专用的`防尘塞`,不然焊接线板后就不好套上了。
2. 白色的香蕉头都为4mm香蕉头。`PE`为额外地线引脚,可接防静电手环(让手环也能接地)。`SLEEP`为烙铁外置休眠口,主要为了支持JBC默认的休眠座。
3. 品字电源座部分是不带保险管的,需要自行查看是否需要购置保险管(2*50mm 250V/10A)。另外,保险管一侧尽可能朝内,这样插拔线的时候周围空间不至于紧。

![机壳后挡板内测](机壳后挡板内侧.jpg)
1. 后置接线板的丝印指示点`外置休眠`需要接一根线连接`SLEEP标识的4mm香蕉头`(推荐从接线板底下绕线)
2. `PE标识的香蕉头`使用一根线连接到品字电源座的地线引脚,如上图
3. 接线小板上指示的`发热芯`8号引脚需要使用2.5cm 20AWG硅胶线引出到侧边的`N孔`中。
4. 品字电源座的`L`、`N`线引脚接一根7cm 20AWG的硅胶线并套好热缩管(后续连接驱动板需要)。
5. 品字电源座的`PE`再接出一根7cm和一根15cm白色硅胶线。

***

### <a id="4. 机壳准备">4. 机壳准备</a>

![机壳](机壳.jpg)
推荐购买群内批量的机壳。自行加工一套400,很贵!!!

底部最好安装上硅胶垫,焊台使用的时候能够防滑。

![机壳加装青稞纸](机壳加装青稞纸.jpg)
两面都加装青稞纸。注意:青稞纸不要挡到任何一个孔!!!

***

### <a id="5. 安装固定驱动板">5. 安装固定驱动板</a>
![驱动板安装俯视图](驱动板安装俯视图.jpg)
1. 先将可控硅的引脚插在驱动板上弯折(弯折程度请参考下图)。为了更安全,驱动板上的可控硅安装脚距比较大,实际买到的可控硅间距比较小,需要自行拉开一点才可以插进去。
2. 驱动板左下角的孔通过一颗`M3*8mm`的螺丝固定到机壳地板,此步骤既是固定驱动板,同时也是让机壳连接驱动板的地线。注意不要拧太紧,以免使板子变形,同时可以在螺丝上打一点硅橡胶。

![可控硅绝缘散热结构](驱动板安装侧视图.jpg)
一共两组可控硅,推荐型号`BTA08-600`或者`BTA12-600`(尽可能买正品,寿命长),可控硅是带220V市电的,故需要安全可靠的结构。(以下是二车之后的外壳,一车外壳是装侧面导热)
1. 可控硅金属散热盘与机壳之间使用`氧化铝导热片`(规格12*18*0.6)绝缘。
2. 可控硅上面需要使用耐高温的`TO-220 绝缘胶粒`才可拧螺丝固定,很重要!!!

***

### <a id="6. 内部主要接线视图">6. 内部主要接线视图</a>

![机壳前后面板接线1](机壳前后面板接线1.jpg)

![机壳前后面板接线2](机壳前后面板接线2.jpg)
1. 机壳后面板的`接线小板`与`驱动板`的fpc规格为`fpc 4pin 15cm同向`,风扇供电使用`XH2.54 双头80mm 同向线`连接,发热芯使用`VH3.96 双头70mm 同向线`连接。
2. 屏幕板的`接线拓展板`与`驱动板`的fpc规格为`fpc 6pin 6cm同向`,风扇供电使用`XH2.54 双头150mm 同向线`连接,发热芯使用`VH3.96 双头125mm 同向线`连接。
3. 品字电源座的`L`、`N`与驱动板的接线座连接时请规范区分`L`、`N`。

![整机俯视图](整机俯视图.jpg)
1. `驱动板`通过20AWG硅胶线连接`电源板`,请区分`L`与`N`以及地线`PE`,千万别接错!!!
2. `12V`、`24V`一定需要看清楚线色,千万别接错!!!
3. `AC-DC 5V`小电源的5V输出使用`XH2.54 双头80mm 同向线`接核心板的`XH2.54 接线座`上。

***

### <a id="7. 组装后整体效果">7. 组装后整体效果</a>
![主机成品](主机成品2.jpg)

1. 屏幕板使用`中厚度的内六角螺丝`与机壳固定。
2. 后面板使用机壳自带的小型内嵌螺丝。
3. 如果安装完旋钮,按压中键的时候容易顶到RGB灯的话,可以在旋钮帽内部垫点纸,增加旋钮帽高度。或者旋钮中间倒一点502之类的胶水固化垫高一些。


***

### 关于手柄接线
请参考 __`《蜗牛台全系接线引脚定义.pdf》`__

### 关于主机功能问题排查
请参考 蜗牛台文档目录 https://docs.qq.com/doc/DQWd3cW5HYkxBWFBh 的`《蜗牛台三车电路排错总结》`文档。

================================================
FILE: Doc/other.md
================================================
### 华为24V电源
原24V的R16为4322(43.2k)
20V的R16为2702(27k)

### 电源纹波
华为5.284  5.295v  空载浮动0.015
普通 5.292 5.304v  空载浮动0.016


### SnailHeater
接负载3A

---
##### 第一次
可调电源
[24V电源输入端]
空载: 230mv
1A 240mv
2A 280mv
3A 350mv
4A 370mv
5A 700mv

[可调电源输出端]
空载: 40mv
1A 60mv
2A 60mv
3A 70mv
4A 140mv
5A 150mv

---
##### 第二次
100mv  20ms

输入电源
空载 330mv
9V3A 500mv

可调电源
空载 230mv
9V3A  300mv


### 磁铁触发测试
* 6*10mm 左右各两个(共4个),完全能触发,但底座不能完美安装上。
* 6*10mm 左右各一个(共2个),80%角度都能触发,能安装上。
* 6*15mm 左右各一个,能完美安装且完全能触发。
* 8*12mm 左右各一个,能完美安装且完全能触发。
* 15*3mm圆形磁铁左右各一个,能完美安装且完全能触发。

### 接线图
```
--------------------
| 烙铁信号口      
--------------------
| T2 热电偶正极   
| S2 休眠信号开关      
| G  接热电偶或休眠开关负极
--------------------
```


### 主机接线长度
```
含插头长度

AC220-DC3.3V 10cm

AC220-DC24V  红13cm*3  黑13cm

可控硅  白7cm 黑6cm*2

电源座 白10cm  红5.5cm+4cm 黑8.5cm

航空头GX16  黑15cm+9cm 红15cm+9cm 白10cm+4cm+4cm

电源GX12-4   红6.5cm 黑6.5cm

…………………………

加热板 白30cm

```


### 主机配件
```
主机
2pin*3
3pin*3
10pin*2
品字座、开关
航空头*4 防尘塞
热缩管 窄30cm  宽10cm
校准板
小电源
风枪座垫片
青稞纸
```

### 烙铁架
* 原烙铁架 70*160mm
* 现烙铁架 73*160mm

### 组装注意事项
【电源板】
1. 背面标有“填锡孔”字样的孔需要用锡填充。
2. 侧边贴外壳的三脚的二极管,需要事先调好高度。(组装需要拧螺丝)
3. 板子上插接的小电源需要使用绝缘胶固定。
4. 插件的小电源旁边有个位号“SB3”的短接焊盘,需要短接上。
5. 注意电源输出端子的连接线,GND黑色,24V红色,12v白色

【屏幕板】
1. 康铜丝跳线器件焊接的时候 顶端需要比板子边缘略高一点点,1mm左右就行
2. 旋钮编码器需要弯脚,然后焊接在屏幕板上

【驱动板】
1. 背面标有“填锡孔”字样的孔需要用锡填充。

【接线板】
1. 板子是两部分,中间需要掰开(最好用剪线钳压一下,避免掰坏铜皮)。一个是类似方形的小板,另一部分是长条形的。
2. 两个GX16-8航空头中间的第8脚都需要用2.5cm的硅胶线连接到各自附近的通孔上。

【组装注意】
1. 机壳的青稞纸不要盖住螺丝孔位。
2. 驱动板的两个可控硅,需要通过垫氧化铝散热片以及绝缘粒方可拧上螺丝。
3. 驱动板与机壳安装时,驱动板右上角固定螺丝不要拧太紧(容易让板子变形)。拧上螺丝后需要打点胶固定螺丝。
4. 驱动板的220V接线座,拧完螺丝后,最好在螺丝上打点胶,以免螺丝运输过程中松动。


### 加热台发热芯要求
1. 把1234号孔心距边缘5mm
2. 1、2号孔相距13cm  3、4号孔也是1、3cm
3. 1、3号孔相距8cm  2、4号孔也是8cm

然后不要打金黄色的固定环  固定的话用订书钉就行



### 烙铁分度表
注:ZT-X万用表实测电压比以下高10mv左右。以下电压均为热电偶放大201倍后的电压
##### JBC245-759 单次实测
温度 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | 55 | 60 | 65 | 70 | 75 | 80 | 85 | 90 | 95 | 100
:-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-:
0 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5
100 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5
200 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5
300 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5
400 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5
500 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5


##### JBC245-759 稳定实测
温度 | 50 | 100 | 150 | 200 | 250 | 300 | 350 | 400 | 450
:-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: 
C245-908 | 88 | 333 | 580 | 840 | 1100 | 1375 | 1663 | 1930 | 2160
C245-759 | 94 | 347 | 597 | 863 | 1138 | 1410 | 1680 | 1945 | 
C210-006 | 42 | 129 | 225 | 343 | 450 | 574 | 700 | 826 | 959

##### 已实测通过的大容量flash如下:
1. W25Q512JVEIQ(WSON-8)
2. W25Q256JVEIQ(WSON-8)
3. W25Q128JVSIQ (SOIC-8)
4. W25Q128JVSIM (SOIC-8)
5. W25Q64FVSIG (SOIC-8)


================================================
FILE: Doc/新版优化记录.md
================================================
### 前面板优化:
- [X] 修改typec正反插
- [X] 缩小EC11的孔位
- [X] 优化航空插定位框  11.2  15
- [X] 修改耳机封装

### 功率板优化
- [X] 三路Sleep新增二极管
- [X] 烙铁mos的电阻改封装、220V指示灯电阻改封装
- [X] 修改前置、后置航空头信号座
- [X] 更改几个供电座封装,包括烙铁电热丝接线座
- [X] 移动R35电阻下的过孔
- [X] 新增24V电源、3V3电源滤波电路
- [X] 分离PGND、DGND、AGND
- [X] 模拟电路新增磁珠滤波
- [X] 风枪、加热台热电偶接口上拉
- [X] 可调电源新增电流环
- [X] 修改可控硅封装与位置
- [X] 开窗的走线全部放背面
- [X] 修改外壳地线接法
- [X] 兼容jbc210电压

### 核心板
- [X] 删除ESP32S2底部的焊盘
- [X] 三路Sleep新增滤波电容
- [X] 使用直插ntc电阻
- [X] 模拟电路新增磁珠滤波
- [X] 删除屏幕背光控制
- [X] 新增旋钮中键电容
- [X] 修改走线布局
- [X] 屏幕背光控制引脚改为RGB

### 新增航空头接线板

### 后置航空头小板

### 外壳
若干项


### 三车待优化
- [ ] 后面板挡板厚度太薄(无法更改)
- [X] 后面板航空头定位边太窄
- [X] 铝壳二极管固定孔修改
- [X] 底壳青稞纸优化
- [X] 屏幕版旋钮处走线与外壳太近
- [X] 前面板航空头定位边太窄
- [ ] 旋钮帽加胶提高高度
- [ ] 可调电源加强散热
- [ ] 驱动板接线座改大
- [ ] 烙铁识别电阻提高精度
- [ ] 核心板排针加长
- [ ] 核心板旋钮封装定位问题
- [ ] 接线板的220V过孔设计小一点
- [ ] 接线板220V航空头底部增强绝缘
- [X] 电源板二极管前的电容位置修改
- [X] 电源板保险丝改成6.3A
- [ ] 电源板变压器改成灌胶
- [ ] 电源板新增Y电容跳线短接点
- [X] 电源板的小ACDC电源修改封装
- [X] 面板孔位修改
- [ ] 烙铁手柄修改
- [ ] 风枪休眠座固定螺丝孔改大
- [X] 蜂鸣器电路优化(保护三极管)


================================================
FILE: Doc/组装教程/SnailHeater接线教程.md
================================================
# SnailHeater接线教程
本教程对SnailHeater主机接线提供一个统一的接线规范。SnailHeater主机包含三块PCB板,分别为`屏幕前面板`、`核心板`、`功率板`。接线主要针对于`功率板`上的接口。功率板是的逻辑是由核心板控制的,所以在未接线或核心板不可用的情况下请勿使用AC220供电。

在阅读接下来的文档前,希望大家观看视频教程,以至于对SnailHeater整体有个清晰的认识。https://www.bilibili.com/video/BV1oG4y1h7A8?spm_id_from=333.337.search-card.all.click

涉及的接口有:
* 烙铁口GX12-5 (T12/JBC245通用)
* 可调电源输出GX12-4 
* 前置风枪/加热台GX16-8
* 后置风枪/加热台GX16-8
* 品字电源座、船型开关。

补充知识:
1. 带针的航空头成为公头,不带针的称之为母头。
2. 主机上安装的都是公头。所有的航空头都有一个防呆缺口(防止插错),防呆缺口的左右两边对应的是`1脚`和`n脚`,整体编号是按顺序编号的(顺逆不定)。
3. 航空母头的外壳为金属,注意焊线高度不要顶到外壳上,以免造成短路。
4. 焊接前,为了更好的焊接,建议所有的多股线头缠绕后镀锡,航空头的每个针都要线镀锡。
5. 为了更安全的防止短路,航空头与线头的连接处使用2mm直径的热缩管防护,故焊接前先在每根线上套好热缩管。
6. 一般新的风枪加热后会有`白烟`,属于正常现象。因为内部云母纸的特性,初始受热会产生烟雾,然后云母纸变脆,使用一段时间后就正常了。

以下为`功率板`上的逻辑接口功能:
![SnailHeater](功率板接口解析.jpg)

***

### 1. 核心板与功率板的逻辑连接
![SnailHeater](核心板与功率板连接.jpg)

* `功率板`的`信号1组`接口通过`10cm双头同向1.25mm的10排线`连接`核心板`上的`信号1组`接口。
* `功率板`的`信号2组`接口(另一个10p座)通过`8cm双头同向1.25mm的10排线`连接`核心板`上的`信号2组`接口。

***

### 2. 烙铁口接线
![SnailHeater](烙铁.jpg)
##### 注:非常重要!!!由于设计上的疏漏,所有持有V2.0版本功率板的群友,都必须修改烙铁部分电路,修改方法参考群文件中的`功率板V2.0硬件版本修改方法.pdf`,不修改的话,插上烙铁容易直接损坏主控芯片,造成不可逆的后果。

##### 准备线材(使用推荐的线长)
* GX12-5航空头
* 黑红双色的2pin_10cm单头XH2.54排线
* 3pin_8cm单头XH2.54排线
* 22AWG软硅胶线 3cm白线
* 5个0.5cm长直径2mm的透明热缩管

注:焊接线前先将航空头拧在前面板固定。

航空头 GX12-5 | 1 | 2 | 3 | 4 | 5
:-: | :-: | :-: | :-: | :-: | :-:
线色 | 3cm软白线 | 2pin红线 | 3pin黑线 | 同时接2pin黑与3pin黄线 | 3pin红线
功能说明 | 可接PE | P+ | 振动开关正极 | 振动开关/发热芯/热电偶 负极 | 热电偶正极


***

### 3. 可调电源接线
![SnailHeater](可调电源.jpg)

##### 准备线材(使用推荐的线长)
* GX12-4航空头
* 22AWG软硅胶线 6.5cm红色
* 22AWG软硅胶线 6.5cm黑色
* 4个0.5cm长直径2mm的透明热缩管

航空头 GX12-4 | 1 | 2 | 3 | 4
:-: | :-: | :-: | :-: | :-:
线色 | 黑线 | 待升级 | 待升级 | 红线
功能说明 | V-(电源GND) | 3.3V | 24V | V+(可调电源正极)

注:`待升级`为本图中未做示范的引脚,可自行引出24V与3.3V电平。焊接线前先将航空头拧在前面板固定。

***

### 4. 前置风枪/加热台接线
补充知识点:风枪的接口没有标准的线序,市面上的风枪手柄或者主机线序都是不统一的,所以各家品牌的风枪手柄只支持接自家的主机。不能直接使用其他家的风枪手柄插接SnailHeater主机上,需要需改好接头的线序才行。热风枪\加热台为AC220供电,故接口将会有高压输出,请勿在通电状态下触摸航空头的`内针`。

![SnailHeater](前置风枪接口.jpg)

##### 准备线材(使用推荐的线长)
* GX16-8航空头
* 22AWG软硅胶线 16cm红色
* 22AWG软硅胶线 16cm黑色
* 22AWG软硅胶线 4cm白线
* 黑红双色的2pin_12cm单头XH2.54排线
* 3pin_9cm单头XH2.54排线
* 8个0.5cm长直径2mm的透明热缩管

使用`前置风枪/加热台`,请接上`可控硅1`。焊接线前先将航空头拧在前面板固定。

##### 以下是主机的航空
航空头 GX16-8 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
:-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-:
功能说明 | 电偶正 | 电偶负、磁控 | 磁控 | 风枪金属外壳 | 风扇正 | 风扇负 | 发热丝 | 发热丝
线序 | 3pin红 | 3pin黄 | 3pin黑 | 软白线 | 2pin红 | 2pin黑 | 红硅胶线 | 黑硅胶线

***

### 5. 后置风枪/加热台接线
补充知识点:风枪的接口没有标准的线序,市面上的风枪手柄或者主机线序都是不统一的,所以各家品牌的风枪手柄只支持接自家的主机。不能直接使用其他家的风枪手柄插接SnailHeater主机上,需要需改好接头的线序才行。热风枪\加热台为AC220供电,故接口将会有高压输出,请勿在通电状态下触摸航空头的`内针`。

![SnailHeater](后置风枪接口.jpg)

##### 准备线材(使用推荐的线长)
* GX16-8航空头
* 22AWG软硅胶线 9cm红色(可不参考示图中的长度)
* 22AWG软硅胶线 9cm黑色(可不参考示图中的长度)
* 22AWG软硅胶线 8/15cm白线(示图中未接,请自行连接到就近带有PE标识的焊盘上)
* 黑红双色的2pin_10cm单头XH2.54排线
* 3pin_14cm单头XH2.54排线
* 8个0.5cm长直径2mm的透明热缩管

使用`后置风枪/加热台`接口,请接上`可控硅0`。焊接线前先将航空头拧在前面板固定。

航空头 GX16-8 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
:-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-:
功能说明 | 电偶正 | 电偶负、磁控 | 磁控 | 风枪金属外壳 | 风扇正 | 风扇负 | 发热丝 | 发热丝
线序 | 3pin红 | 3pin黄 | 3pin黑 | 软白线 | 2pin红 | 2pin黑 | 红硅胶线 | 黑硅胶线

***

### 6. 整体供电接线
![SnailHeater](供电线.jpg)

##### AD220-DC24V电源线材
* 22AWG软硅胶线 13cm红色,共3根
* 22AWG软硅胶线 13cm黑色
__注:__
__1. 上示图中的电源本人为了测试拆掉了散热片,大家制作的过程中不要理会,记得别去拆!!!__
__2. 此24V电源的AC接线座比较深,容易开关通电后电源仍未接上电(指示灯不亮)。AC接线座两根红线一定要剥皮长大于5mm(记得上锡)不容易虚接。__

##### AD220-DC3.3V电源线材
* 22AWG软硅胶线 10cm红色,共2根
* 黑红双色的2pin_9cm单头XH2.54排线

##### 品字座与开关
* 22AWG软硅胶线 8白线
* 其他线长自行估摸
* 一定要准备若干热缩管

***

### 7. 外壳接地
![SnailHeater](外壳接地.jpg)

外壳通过`接线弹片`连接到功率板的PE(地)。

***

### 8. 组装完成后的图
![SnailHeater](组装完成.jpg)

电源支架:为了方便使用,两个支架是同一个模型,先确保靠近前面板部分的支架(图片中红色支架)正常安装,最后安装靠尾部一头的支架会发现支架长于机壳,需要把靠后的这个支架(图片中白色支架)多出来的部分剪短(两个支架 只有一个需要剪),具体也可参考视频部分的讲解。

***

### 合盖提示
由于核心板和前面板使用排针连接,很容易由于电源挤压到线材,间接将`核心板`从`前面板`上扯下,导致连接`异常`或`不稳定`,故推荐将上部分排针连接处打胶处理,等胶干透后合盖。如下图:
![SnailHeater](核心板打胶固定.jpg)
注:这白色的是STARS-922胶

***

### 9. T12手柄
补充知识点:烙铁手柄的接口没有标准的线序,市面上的手柄或者主机线序都是不统一的,所以各家品牌的手柄只支持接自家的主机。不能直接使用其他家的手柄插接SnailHeater主机上,需要改好接头的线序才行。

![SnailHeater](T12手柄正.jpg)
![SnailHeater](T12手柄反.jpg)
![SnailHeater](T12航空头.jpg)

航空头 GX12-5 | 1 | 2 | 3 | 4 | 5(与2号脚短接)
:-: | :-: | :-: | :-: | :-: | :-:
含义 | 地 | P+ | 振动开关正极 | 振动开关/发热芯/热电偶 负极 | 热电偶正极
T12手柄架 | 地标识位 | + | A | -黑、B蓝 | 无独立物理孔
线序 | 绿 | 红 | 白 | 黑、蓝 | 无

注:振动开关的金色脚靠近硅胶线方向。航空头的2号和5号引脚是短接的,图片中热缩管那部分。


***

### 10. JBC245手柄
补充知识点:烙铁手柄的接口没有标准的线序,市面上的手柄或者主机线序都是不统一的,所以各家品牌的手柄只支持接自家的主机。不能直接使用其他家的手柄插接SnailHeater主机上,需要改好接头的线序才行。

航空头 GX12-5 | 1 | 2 | 3 | 4(可与1号引脚短接) | 5
:-: | :-: | :-: | :-: | :-: | :-:
含义 | 地 | P+ | 振动开关正极 | 振动开关/发热芯/热电偶 负极 | 热电偶正极
JBC245手柄架 | 无 | 中间段焊点 | 外接热电偶 | 最前端焊点 | 最后端焊点
线序 | 黑 | 红 | 白 | 黑 | 绿

![SnailHeater](JBC245接线正面.jpg)

1. 由于手柄空间问题,本手柄使用的为4.2mm外径的4芯线,且振动开关需要把外皮剥掉。振动开关的金色脚靠近硅胶线方向。注意观察每个状态!!!
2. JBC245烙铁芯本身没有独立的地线,需要航空头的4号和1号引脚可以选择短接,即可使手柄接地。

![SnailHeater](JBC245接线反面.jpg)

依旧由于空间的问题,塞入振动开关时容易卡住,手柄塞入需要推PCB的同时拉尾部的硅胶线,具体操作自行摸索。最终完成的状态如下。
![SnailHeater](JBC245手柄整体.jpg)

***

### 11. 热风枪手柄
以下线序和SnailHeater主机的接口对应

航空头 GX16-8 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
:-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-:
功能说明 | 电偶正 | 电偶负、开关(磁控或其他开关) | 开关另一端(磁控或其他开关) | 风枪金属外壳 | 风扇正 | 风扇负 | 发热丝 | 发热丝


***

### 12. 加热台本体
注:SnailHeater加热台与热风枪的物理接口一致,只是少了风扇和开关信号,但整体和热风枪的线序是一致的。热风枪\加热台为AC220供电,故接口将会有高压输出,请勿在通电状态下触摸航空头的`内针`。

SnailHeater的加热台可以使用群内定制的发热板,也可以使用淘宝现成的铸铝发热板,甚至可以使用廉价的PTC发热板。前提是都需要有热电偶测温。

##### 以下是定制加热板的图:
![SnailHeater](加热板正面.jpg)
![SnailHeater](加热板背面.jpg)

##### 以下为发热芯内部拆解图,银白色的导线为电热丝(220V),故打孔的时候需要注意别穿到导线(中间有一长条没有空闲区可打孔)。供电线不分正负极。
![SnailHeater](加热板发热芯.jpg)


通常来说,热电偶的蓝线为负极,红线则为正极。发热芯的供电线为纯红色两根,不分正负极。

航空头 GX16-8 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
:-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-:
功能说明 | 电偶正(红线) | 电偶负(蓝线) | 空 | 接地线(连接加热板金属部分) | 空 | 空 | 发热丝(红线) | 发热丝(红线)

附送的氧化铝保温棉内部有金属物质,尽量避免保温棉进入发热芯引发导电。另外群内定制的加热板是可以通过螺丝来引出地线的。具体请参考`加热板安装`的视频教程!!!


================================================
FILE: Doc/蜗牛台使用说明书/蜗牛台使用说明书.md
================================================
# 蜗牛台说明书

## 目录
<a href="#SnailHeater简介"><font size="4" color="#00f">SnailHeater简介</font></a>
<a href="#注意事项(非常重要)"><font size="3" color="#00f">注意事项(非常重要)</font></a>
<a href="#V2.0.X版本补充说明(一车)"><font size="3" color="#00f">|---V2.0.X版本补充说明(一车)</font></a>
<a href="#V2.5.X版本补充说明(二车)"><font size="3" color="#00f">|---V2.5.X版本补充说明(二车)</font></a>
<a href="#V2.6.X版本补充说明(三车)"><font size="3" color="#00f">|---V2.6.X版本补充说明(三车)</font></a>
<a href="#各版本功能对比"><font size="4" color="#00f">各版本功能对比</font></a>
<a href="#固件更新(刷机)"><font size="4" color="#00f">固件更新(刷机)</font></a>
<a href="#固件解释"><font size="3" color="#00f">|-----固件解释</font></a>
<a href="#固件支持与管理工具"><font size="3" color="#00f">|-----固件支持与管理工具</font></a>
<a href="#关于激活"><font size="3" color="#00f">|-----关于激活</font></a>
<a href="#焊台使用视频教程"><font size="3" color="#00f">焊台使用视频教程</font></a>
<a href="#使用指南"><font size="3" color="#00f">使用指南</font></a>
<a href="#烙铁"><font size="3" color="#00f">|---烙铁</font></a>
<a href="#热风枪"><font size="3" color="#00f">|---热风枪</font></a>
<a href="#加热台"><font size="3" color="#00f">|---加热台</font></a>
<a href="#可调电源"><font size="3" color="#00f">|---可调电源</font></a>
<a href="#信号发生器"><font size="3" color="#00f">|---信号发生器</font></a>
<a href="#点焊机"><font size="3" color="#00f">|---点焊机</font></a>
<a href="#其他附加功能"><font size="3" color="#00f">|---其他附加功能</font></a>
<a href="#关于保修(2023年6月22日起)"><font size="4" color="#00f">关于保修(2023年6月22日起)</font></a>
<a href="#硬件修改通知"><font size="4" color="#00f">硬件修改通知</font></a>
<a href="#V2.0.X版本硬件(一车)修改通知"><font size="3" color="#00f">|---V2.0.X版本硬件(一车)修改通知</font></a>
<a href="#一车 - 必须修改项"><font size="3" color="#00f">|------一车 - 必须修改项</font></a>
<a href="#一车 - 微小的优化"><font size="3" color="#00f">|------一车 - 微小的优化</font></a>
<a href="#V2.5.X版本硬件(二车)修改通知"><font size="3" color="#00f">|---V2.5.X版本硬件(二车)修改通知</font></a>
<a href="#二车 - 烙铁头对地(PE)电压比较高"><font size="3" color="#00f">|------二车 - 烙铁头对地(PE)电压比较高</font></a>
<a href="#二车 - 可调电源电压自动升压问题"><font size="3" color="#00f">|------二车 - 可调电源电压自动升压问题</font></a>
<a href="#二车 - 风枪和加热台误报链接错误(此问题影响较小)"><font size="3" color="#00f">|------二车 - 风枪和加热台误报链接错误(此问题影响较小)</font></a>
<a href="#二车 - 优化项"><font size="3" color="#00f">|------二车 - 优化项</font></a>
<a href="#V2.6.X版本硬件(三车)检查通知"><font size="3" color="#00f">|---V2.6.X版本硬件(三车)检查通知</font></a>
<a href="#三车 - 旋钮问题"><font size="3" color="#00f">|------三车 - 旋钮问题</font></a>
<a href="#三车 - 风枪航空头带电"><font size="3" color="#00f">|------三车 - 风枪航空头带电</font></a>
<a href="#三车 - 烙铁短路保护优化"><font size="3" color="#00f">|------三车 - 烙铁短路保护优化</font></a>

## SnailHeater简介 <a id="SnailHeater简介"></a>
 __`项目是适合创客的半开源焊台工具!`__ 

多功能焊台,简称 __"蜗牛台"__ 。平板加热台、风枪、烙铁、可调电源多控。本项目内有220V高压,务必小心,后果自负。

* 本项目的地址 https://github.com/ClimbSnail/SnailHeater (github为最新资料)
* 或者 https://gitee.com/ClimbSnailQ/SnailHeater (gitee非最新,仅为预览)
* 上一代旧版控制器项目 https://github.com/ClimbSnail/HeatPlatform_SMT (底成本方案)

本项目使用ESP32S2模组开发。同时控制加热板、风枪、烙铁、数字可调电源工作 。本项目将持续优化,不做半吊子。为防止后期咸鱼倒卖,只提供一个简单的demo,主线源码不开源。提供复刻所需要的所有资料(Gerber、BOM、组装教程等等)。目前机器刷机后需要激活码,激活码的获取规则参考交流群内最新动态。另外,本人也会不定期生产整机成品出售给有需要的群友。

另外:为了充分利用硬件资源,将会附带双路示波器(采样2M)、函数发生器、高精度脉冲输出(可用于点焊机)。额外会有锁屏时钟等等超多功能。

## 注意事项(非常重要) <a id="注意事项(非常重要)"></a>

#### 致用户
购买了成品主机或复刻了主机的用户,需深刻明白 __`蜗牛台`__ 是专业电子工具,使用者应掌握相关安全知识、具备相关安全意识。使用者在接通本设备电源的那一刻起,已表示确认自己阅读本文并了解本设备所使用的220V交流电及本设备可能造成的危害!包括但不限于对于自身的烫伤、电击伤害及可能因高温引发其它问题。离开设备请及时关断电源,以免意外造成火灾。

#### 使用者对设备使用本身负有全部责任,使用本设备前务必知晓以下事项:
1. 烙铁、风枪、加热台插接第三方的手柄,都需要对照`《蜗牛台全系接线引脚定义.pdf》`,否则 __`必损毁主机!`__
2. __`前置风枪的GX16航空头`__ 与 __`后置加热台GX16航空头`__ 內部的针脚有220V高压,主机插接电源线情况下,__`禁止`__ 触摸 __內部的针脚。
3. 在插接220V电源线情况下,风枪、加热台 __`不允许`__ 带电拔插,带电拔插有可能会烧毁主机,但凡发生一次意外,主机将产生不可逆的损坏。注:烙铁手柄支持带电拔插。
4. 蜗牛台将会在合理的情况下,记录用户的`若干操作历史`,便于售后的原因分析,或辅助构建更稳定的固件系统。望理解!

#### V2.0.X版本补充说明(一车) <a id="V2.0.X版本补充说明(一车)"></a>
1. 一车硬件不支持自动识别烙铁芯,硬件也不支持JBC210烙铁手柄。
2. 可调电源`支持短路保护`,但 __`不支持反接保护`__ 。在连接`电池`、`超级电容`等此类`自带能量`的供电设备时,不允许接错正负极,同时 __`禁止`__ 在可调电源关闭(不输出)的情况下接入外部电池。以上操作均会轻则烧毁可调电路,重则整机不亮,推荐最好的办法就是`不要给电池、超级电容供电`。
3. 默认`触摸开关`是关闭的,大部分机器打开触摸开关就会出现`菜单`反复显示隐藏的bug,故默认情况下关闭。只有部分机器可用触摸开关。如出现`菜单`反复显示隐藏的bug,请重新刷机。

#### V2.5.X版本补充说明(二车) <a id="V2.5.X版本补充说明(二车)"></a>
1. v1.8.0固件起,全面支持烙铁芯自动识别(默认已开启 __`烙铁芯识别`__ 功能)。发货时的固件为旧版本固件,并未支持自动识别烙铁芯,请升级最新版本固件。若未手动开启 __`烙铁芯识别`__ 功能,在插接烙铁手柄 __`前`__ ,必须先选择好`烙铁芯类型`,否则轻则温度不对应 重则会导致烙铁头高温而损坏烙铁头。
2. 可调电源`支持短路保护`,但 __`不支持反接保护`__ 。在连接`电池`、`超级电容`等此类`自带能量`的供电设备时,不允许接错正负极,同时 __`禁止`__ 在可调电源关闭(不输出)的情况下接入外部电池。以上操作均会轻则烧毁可调电路,重则整机不亮,推荐最好的办法就是`不要给电池、超级电容供电`。
3. 默认`触摸开关`是关闭的,大部分机器打开触摸开关就会出现`菜单`反复显示隐藏的bug,故默认情况下关闭。只有部分机器可用触摸开关。如出现`菜单`反复显示隐藏的bug,请重新刷机。

#### V2.6.X版本补充说明(三车) <a id="V2.6.X版本补充说明(三车)"></a>
1. 若未手动开启 __`烙铁芯识别`__ 功能,在插接烙铁手柄 __`前`__ ,必须先选择好`烙铁芯类型`,否则轻则温度不对应 重则会导致烙铁头高温而损坏烙铁头。
2. 可调电源`支持短路保护`,但 __`不支持反接保护`__ 。在连接`电池`、`超级电容`等此类`自带能量`的供电设备时,不允许接错正负极,同时 __`禁止`__ 在可调电源关闭(不输出)的情况下接入外部电池。以上操作均会内部保险丝,推荐最好的办法就是`不要给电池、超级电容供电`。

## 各版本功能对比 <a id="各版本功能对比"></a>
注:一车版本通过更换`驱动板`和`核心板`后等于二车版本。升级二车后的主机使用固件注意事项与二车一模一样。

注:二车与三车外观尺寸和硬件都存在巨大的差异,故二车无法升级成三车。
#### 系统参数
| 版本 |  v2.0.x(一车) |  v2.5.x(二车) | v2.6.x(三车) |
| :--: | :-: | :-: | :-: |
|  外观尺寸  |  76x57x145mm 裸机537.3g |  76x57x150mm 裸机555g  |  97x60x150mm 裸机686.7g  |
|  控制核心性能  |  240M主频、320K RAM、4M Flash |  240M主频、320K RAM、4M Flash  |  240M主频、320K RAM、4M Flash  |
|  供电方式  |  AC110~240V 最大功率2000W |  AC110~240V 最大功率2000W  |  AC110~240V 最大功率2000W  |
|  屏幕大小  |  1.69寸240*280彩屏 |  1.69寸240*280彩屏  |  2.4寸240*320彩屏  |
|  Type-C固件升级  |  支持 |  支持  |  支持  |
|  触摸按键  |  无 |  无  |  一个  |
|  RGB效果灯  |  无 |  2颗 内置在机器内部  |  8颗集成在前面板  |
|  自定义锁屏动态壁纸  |  支持 |  支持  |  支持  |
|  配套电脑软件  |  支持 |  支持  |  支持  |
|  内置供电系统  |  双电源 |  三电源  |  三电源  |
|  固件支持  |  长期更新 |  长期更新  |  长期更新  |

#### 烙铁参数
| 版本 |  v2.0.x(一车) |  v2.5.x(二车) | v2.6.x(三车) |
| :--: | :-: | :-: | :-: |
|  最大功率支持  |  24V200W |  24V200W + 12V60W |  25.2V230W + 12V60W  |
|  发热芯支持  |  T12、C245 |  T12、C245、C210、C115、C470  |  T12、C245、C210、C115、C470  |
|  自动识别型号  |  不支持 |  支持 |  支持 |
|  热拔插  |  支持 |  支持 |  支持 |
|  短路保护  |  不支持 |  不支持 |  请查看文末三车相关"烙铁短路保护优化" |
|  自定义PID参数调整  |  支持 |  支持  |  支持  |
|  温度校准  |  支持 |  支持  |  支持  |
|  自定义温度快速设定  |  支持 |  支持  |  支持  |
|  唤醒模式  |  None手动、high休眠座、low水银开关、change震动开关 |  None手动、high休眠座、low水银开关、change震动开关  |  None手动、high休眠座、low水银开关、change震动开关  |
|  发热频率调整  |  支持 |  支持  |  支持  |

#### 风枪参数
| 版本 |  v2.0.x(一车) |  v2.5.x(二车) | v2.6.x(三车) |
| :--: | :-: | :-: | :-: |
|  发热芯最大功率支持  |  220V2000W |  220V2000W  |  220V2000W  |
|  风扇最大功率支持  |  24V2A |  24V2A  |  24V2A  |
|  热拔插  |  不支持 |  不支持 |  不支持 |
|  自定义PID参数调整  |  支持 |  支持  |  支持  |
|  温度校准  |  支持 |  支持  |  支持  |
|  自定义温度快速设定  |  支持 |  支持  |  支持  |
|  温控曲线设置  |  待固件支持 |  待固件支持  |  待固件支持  |

#### 加热台参数
| 版本 |  v2.0.x(一车) |  v2.5.x(二车) | v2.6.x(三车) |
| :--: | :-: | :-: | :-: |
|  发热芯最大功率支持  |  220V2000W |  220V2000W  |  220V2000W  |
|  风扇最大功率支持  |  24V2A |  24V2A  |  24V2A  |
|  热拔插  |  不支持 |  不支持 |  不支持 |
|  自定义PID参数调整  |  支持 |  支持  |  支持  |
|  温度校准  |  支持 |  支持  |  支持  |
|  自定义温度快速设定  |  支持 |  支持  |  支持  |
|  温控曲线设置  |  待固件支持 |  待固件支持  |  待固件支持  |

#### 可调电源参数
| 版本 |  v2.0.x(一车) |  v2.5.x(二车) | v2.6.x(三车) |
| :--: | :-: | :-: | :-: |
|  电压范围  |  0.8V~22.5V |  0.8V~22.5V  |  0.8V~24V  |
|  电流范围(由于散热问题固件限制3.5A)  |  0~5A |  0~5A  |  0~5A  |
|  支持模式  |  恒压 |  恒压、恒流  |  恒压、恒流  |
|  短路保护  |  支持 |  支持  |  支持  |
|  电流倒灌  |  支持 |  支持  |  支持  |
|  电池反接保护  |  不支持(会烧主机) |  不支持(会烧主机)  |  不支持(会内部保险管)  |
|  Vpp  |  过大已忽略 |  30mv  |  25mv  |
|  自定义调压快速通道  |  支持 |  支持  |  支持  |

#### 信号发生器参数
| 版本 |  v2.0.x(一车) |  v2.5.x(二车) | v2.6.x(三车) |
| :--: | :-: | :-: | :-: |
|  支持波形  |  方波/正弦波 |  方波/正弦波  |  方波/正弦波  |
|  方波频率  |  3Hz~2.5MHz |  3Hz~2.5MHz  |  3Hz~2.5MHz  |
|  正弦波频率  |  130Hz~55000Hz |  130Hz~55000Hz  |  130Hz~55000Hz  |
|  精度  |  \ |  \  |  \ |

#### 点焊机参数
| 版本 |  v2.0.x(一车) |  v2.5.x(二车) | v2.6.x(三车) |
| :--: | :-: | :-: | :-: |
|  单脉冲  |  支持 |  支持  |  支持  |
|  单向双脉冲  |  支持 |  支持  |  支持  |
|  脉冲调节范围  |  0.1ms~100ms |  0.1ms~100ms  |  0.1ms~100ms  |
|  可调脉冲步进  |  0.1ms |  0.1ms  |  0.1ms  |
|  脉冲精度  |  0.01ms |  0.01ms  |  0.01ms  |
|  精度  |  \ |  \  |  \ |


## 固件更新(刷机) <a id="固件更新(刷机)"></a>
#### 固件解释 <a id="固件解释"></a>
焊台内部的控制程序(或者控制系统)称之为固件。

#### 固件支持与管理工具 <a id="固件支持与管理工具"></a>
下载群内提供的管理工具进行刷机。管理工具内部有 __`刷机教程链接`__ 。

![配套管理工具](配套管理工具.png)

__`注:`__ 每个成品焊台发出去前都刷好当时最新版本的固件,并激活过。到手正常情况下无需自己刷机和激活。

#### 关于激活 <a id="关于激活"></a>
1. 名词解释: 
① __`机器码`__ 是指焊台的编号(有且只有一个,永久不变)。通过点击管理工具的“查询”按钮获取
② __`激活码`__ 是用于指定机器码的焊台认证激活的密码(一个激活码仅解锁指定机器)。按`Q群管家`要求获取。
2. 每一台焊台的机器码是唯一的,并不会跟随固件变化。故每个焊台的激活码也是唯一的。v1.6.0及之后版本的固件,都需要激活码。未激活的焊台,界面是不可操作的(包括但不限于 设定了温度也无法生效),并且屏幕上会显示 _`未激活`_ 字样。
3. __`“首次”`__ 或 __`“清空方式”`__ 刷入v1.6.0及以后的版本,刷机完成后,需要将激活码填入管理工具中激活焊台。激活成功后,管理工具信息窗会显示激活成功。
4. __`查询激活码:`__ 如果是成品机或者已登记过激活码的机器,点击管理工具中的 _`查询`_ 按钮,即可查询到激活码。

## 焊台使用教程 <a id="焊台使用视频教程"></a>
使用视频教程 https://b23.tv/Kxgwf54

操作的主UI页面布局分区(以烙铁主页面示范)
![操作的主UI页面布局分区](页面页眉分区.png)

固件中的设置参数解析思维导图 https://www.zhixi.com/view/dd586a7f
固件中的设置参数解析思维导图(语雀) https://www.yuque.com/climbsnail/cw6q0t/hg53r1970wfx5mw9
![蜗牛台固件参数解析](蜗牛台固件参数解析.png)

## 使用指南(持续更新) <a id="使用指南"></a>
请参考 蜗牛台文档目录 https://docs.qq.com/doc/DQWd3cW5HYkxBWFBh 的`蜗牛台使用视频`。
#### 基本操作
1. 旋转旋钮可以移动光标到指定功能上。
2. 单击旋钮中键,即可选中当前功能项(视具体而定)。
3. 任意界面、任意状态下,长按旋钮中键`1s`将会呼出菜单盘。
4. v2.6.0(三车)焊台,任意界面、任意状态触摸屏幕面板顶上的`触摸条`将会呼出菜单。

#### 烙铁 <a id="烙铁"></a>
注:手柄接线必须参考 __`《蜗牛台全系接线引脚定义.pdf》`文档__ 接线。
1. v1.8.0固件起,(二车v2.5.x、三车v2.6.x)全面支持烙铁芯自动识别(默认已打开 __`烙铁芯识别`__ 功能),(一车v2.0.x)不支持烙铁芯自动识别。请升级最新版本固件。若手动关闭了 __`烙铁芯识别`__ 功能,在插接烙铁手柄 __`前`__ ,必须先选择好`烙铁芯类型`,否则轻则温度不对应 重则会导致烙铁头高温而损坏烙铁头。
2. 烙铁手柄只有设置成匹配的 __`唤醒模式`__ 才可正常休眠唤醒 ,震动开关的手柄设置中关于烙铁 __`唤醒模式`__ 应当设置为 __`change模式`__ 。使用休眠座的群友,请将震动开关 __`拆除`__ 或者 __`断开一脚`__ (目的让震动开关失效),将休眠座的休眠线接主机后面板的休眠孔上(2mm白色香蕉头),并设置 __`唤醒模式`__ 为 __`high`__ 。无休眠信号的手柄请设置为 __`None`__ 进行手柄控制开启关闭。

注:JBC245、JBC210的手柄比较紧,需要插到底部,直到烙铁界面能够识别出温度为止。

#### 热风枪 <a id="热风枪"></a>
注:使用第三方手柄必须参考 __`《蜗牛台全系接线引脚定义.pdf》`文档__ 接线。拔插必须 __`关闭电源开关`__ 操作。
1. 热风枪默认插接主机 __`前置航空头`__ 。
2. 一般新的风枪手柄加热后会有`白烟`,属于正常现象。因为内部云母纸的特性,初始受热会产生烟雾,然后云母纸变脆,使用一段时间后就正常了。
3. 固件内对于热风枪的温度校准为出风口`1cm`处。相对于市面上现成未特殊校准过的风枪,温度更高一些,故`300`度即可达到普通风枪`350~400`度的效果。温度与风速无关,校准在30%风速下进行即可。
4. (二车v2.5.x)不插接热风枪手柄时,可能出现固件显示的风枪温度不正常(仅显示,并没有安全问题), <a href="#二车 - 风枪和加热台误报链接错误(此问题影响较小)"><font size="4" color="#00f">具体请看</font></a>

#### 加热台 <a id="加热台"></a>
注:必须参考 __`《蜗牛台全系接线引脚定义.pdf》`文档__ 接线。拔插必须 __`关闭电源开关`__ 操作。
1. 加热台默认插接主机 __`后置航空头`__ 。
2. 目前固件内部使用__`软开关`__启停加热台。需要在加热台界面点击电源开关方可工作。
3. 由于加热台热容比较大,使得关闭后降温很慢,属于正常现象。
4. (二车v2.5.x)不插接加热台时,可能出现固件显示的加热台温度不正常(仅显示,并没有安全问题),具体请看 <a href="#二车 - 风枪和加热台误报链接错误(此问题影响较小)"><font size="4" color="#00f">具体请看</font></a>

#### 可调电源 <a id="可调电源"></a>
1. 需要打开`可调电源`界面右下角的开关方可使用。
2. 目前固件分为四个重要的参数,回读电压(只读)、回读电流(只读)、设置电压(用户可改)、设置电流(用户可改)。
3. 初始状态下,可调电源开启后为了保证总电源供电稳定,默认会自动关闭烙铁加热。如果有需要,可在`设置中心`的`电源`选项中关闭`自动关闭烙铁`设置项。
4. 由于硬件精度等差异,每台机器的设置电压和回读电压会有不小的误差,可进行一次电源校准。(`设置中心`的`电源`选项中的`自动校准`)

注: <a href="#二车 - 可调电源电压自动升压问题"><font size="4" color="#00f">二车目前存在的问题</font></a>

#### 信号发生器 <a id="信号发生器"></a>
1. 目前只支持两种信号,方波(3Hz~2.5MHz)、正弦波(130Hz~55KHz)。
2. 信号输出端口为主机正面从左往右的第一个三段式耳机孔。关于耳机孔的定义,在信号发生器界面有图解。

#### 点焊机 <a id="点焊机"></a>
1. 需插接点焊机专门的拓展版,主机只作为信号控制。请使用蜗牛台配套的点焊机套件,该套件已开源。https://oshwhub.com/climbsnail/spotwelder
2. 脉冲可调最小单位0.1ms,实际脉冲精度误差为0.01ms内。

#### 其他附加功能 <a id="其他附加功能"></a>
待固件支持

## 关于保修(2023年6月22日起):  <a id=" 关于保修(2023年6月22日起)"></a>
蜗牛台以 __`理`__ 为核心,主张 __`合情合理`__ 。成品机无论在什么平台售卖,无论是否确认收货,都以道德为准进行售后服务。如是机器的问题,将负责到底。买卖双方应该坦诚相待,拒绝藏着掩着的行为。
1. 成品机器都是均为批量加工测试,内部功能理应到手即用。为确保机器到大家手上时是正常的,收到货后如有外观损坏,两天内淘宝发消息报备问题。破损问题会第一时间处理。
2. 检查主机的烙铁、风枪、加热台、可调电源四个主功能是否都正常,若有功能不正常,请在到货【7天】内在淘宝报备功能故障,并在一周内邮寄返修。
3. 到货7天后发生的问题将视为“正常使用故障”或“人为故障”,主机正常使用损坏 __`三个月内`__ 免费维修, __`人为损坏`__ 或 __`三个月后`__ 需付费维修。配件为易损耗件,不支持 __`三个月内`__ 免费维修。
4. 收货7天内,附件未有使用状况且不影响二次销售时,承担来回运费可无条件退货。若配件(包括但不限制于烙铁头、风嘴)有明显使用痕迹,将会扣除部分配件费用。

 __`【关于在保的判定】`__ 为了避免主观的个人说法,无论你使用了0次还是100次,是否在保修期内,主要依据为 __`包裹收货时间`__ 和 __`问题报备时间`__ 。报备后超过一周未邮寄,则视为问题已解决,若还有问题,需重新报备。

__`注:`__ 因个人制作手柄时,接线错误导致机器部分电路损坏视为 __`人为损坏`__ 。有问题先及时报备,私自拆机不提供保修。如需自行拆机查看,先报备经同意后方可进行。



## 硬件修改通知 <a id="硬件修改通知"></a>



### V2.0.X版本硬件(一车)修改通知 <a id="#V2.0.X版本硬件(一车)">
#### 一车 - 必须修改项 <a id="一车 - 必须修改项"></a>

 __`问题描述:`__ 由于驱动板V2.0设计上的不完善,导致了容易因为烙铁烧主控引脚,故所有持有驱动板V2.0的群友强制要修改。

 __`解决方案:`__ 烙铁信号接口的S2处,在s2信号进入到R39电阻的左边焊盘前,需要串连一个二极管。

 ![SnailHeater](../V2.0.x组装教程/V2.0驱动板修改/V2.0版本修改1.png)

为此提供两种修改方案,方案一焊接简单,方案二整体性合理。两种方案原理是一样的,选择合适自己的就可以,任何不懂的可以发群里问。

 __`方案一修改`__ 
方案的思路:在连接线上处理。

优点:焊接难度低、风险低,不需要修改板子。

1. 先在3pin的中间那根线头`0.5cm`或`1cm`处剪一刀。随后两端线头剥皮(一点点就够)、线头镀锡、套上`1.5cm`热缩管,待备。如下图所示:
![SnailHeater](../V2.0.x组装教程/V2.0驱动板修改/方案0_剪线位置.jpg)

2. 二极管两端建议先上锡,将二极管焊在剪断的中间,注意二极管的负极朝着航空插的方向,焊接完需使用`万用表`测试二极管两端的压降,顺带确认方向。如下图所示:
二极管的购买连接(压降约0.25v) https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.4.ea6d7484oXvrt2&id=528155505657
![SnailHeater](../V2.0.x组装教程/V2.0驱动板修改/方案0_焊上二极管.jpg)

3. 加热热缩管缩管
![SnailHeater](../V2.0.x组装教程/V2.0驱动板修改/方案0_收热缩管.jpg)



 __`方案二修改`__ 
方案的思路:直接修改驱动板。切断部分走线串联二极管。

优点:整体性更优,修改原则上更合理。

1. 以下时要切断的走线示意图(原理图走线)。如下图所示:
![SnailHeater](../V2.0.x组装教程/V2.0驱动板修改/V2.0版本修改_切断示意图.png)

2. 实物板切断的走线示意图,切记割的是`S2`标识的引脚,别错了。如下图所示:
![SnailHeater](../V2.0.x组装教程/V2.0驱动板修改/方案1_割线位置.jpg)

3. 二极管的负极接在3pin座的中间一脚上,二极管的正极与R39电阻的左端连接,焊接完需使用`万用表`测试二极管两端的压降,顺带确认方向。如下图所示:
二极管的购买连接(压降约0.25v) https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.4.ea6d7484oXvrt2&id=528155505657
![SnailHeater](../V2.0.x组装教程/V2.0驱动板修改/方案1_串连上二极管后.jpg)

方向参考
![SnailHeater](../V2.0.x组装教程/V2.0驱动板修改/方案1_二极管方向.jpg)


 __`补充说明:`__ 要求二极管的压降越小越好。建议`0.3v`压降的二极管。



#### 一车 - 微小的优化 <a id="一车 - 微小的优化"></a>

 __`问题描述:`__ 主要针对优化烙铁的休眠功能(软件上可以使用更好的休眠功能),可修改也可不修改。

 __`解决方案:`__ 在核心板模组从下往上数的第5个引脚串连一个`100nf(0.1uf/104)`电容,电容的另一端连接到模组最上边的GND脚上。如下图所示:
![SnailHeater](../V2.0.x组装教程/V2.0驱动板修改/核心板加电容.jpg)

 __`补充说明:`__ 由于主控模组的屏蔽罩也是`GND`,故也可以如下焊接方案(更简洁)

![SnailHeater](../V2.0.x组装教程/V2.0驱动板修改/核心板加电容_2.jpg)






### V2.5.X版本硬件(二车)修改通知 <a id="#V2.5.X版本硬件(二车)">
### 二车 - 烙铁头对地(PE)电压比较高 <a id="二车 - 烙铁头对地(PE)电压比较高"></a>

 __`问题描述:`__ 若烙铁头对地(PE)的电压比较高(高到10V、20V),使用过程中可能烧毁器件。

 __`解决方案:`__ 由于目前蜗牛台配套使用的`AC-DC24V`电源接地的问题,与原先驱动板的的接地方式不匹配,导致烙铁金属外壳对PE将有24V电压。故统一修改一处电阻,如下图是所示, _`R25`_ 原先使 _`1M`_ 的电阻,现需要并上一颗 _`1K`_ 左右的电阻。

注:实际上 _`1M`_ 替换成 _`1K`_ 也可行,为了后期可能使用 _`蜗牛台专用电源`_ ,推荐请保留改 _`1M`_ 电阻。

 __`补充说明:`__ 购买`二车`(v2.5.0)的成品`驱动板`和DIY的群友自行修改。购买`主机`且 _`2023年5月31日`_ 之前发货的群友可自行修改,如果不方便,主机可寄回给群主处理。

![驱动板接地修改](../V2.5.x组装教程/驱动板接地修改.jpg)

### 二车 - 可调电源电压自动升压问题 <a id="二车 - 可调电源电压自动升压问题"></a>

 __`问题描述:`__ 随着使用时间的拉长,可调电源输出的电压会逐渐增大,机壳内或者外围环境温度越高现象越明显,大电流输出情况下此现象也越明显。原因是可调电源使用的二极管极其容易受温度影响,使得器件的参数发生变化,控制的电压输出也随之变化。

 __`解决方案:`__ 修改下图中的黑色的二极管 _`D16`_ ,更改成 _`1N4148WS`_ (封装为SOD-323 丝印一般是T4),注意二极管的方向。推荐链接购买 https://item.taobao.com/item.htm?spm=a1z09.2.0.0.63882e8dFnpTDo&id=661687019354&_u=dmp44q8405c
![二车二极管修改D16](../V2.5.x组装教程/二车二极管修改D16.png)

 __`补充说明:`__ 购买`二车`(v2.5.0)的成品`驱动板`和DIY的群友自行修改。购买`主机`且 _`2023年7月12日`_ 之后发货或者返修发货的机器都是修改完的(无需自己修改),之前发货的群友可自行修改,如果不方便,主机可寄回给群主处理。

### 二车 - 风枪和加热台误报链接错误(此问题影响较小) <a id="二车 - 风枪和加热台误报链接错误(此问题影响较小)"></a>

 __`问题描述:`__ 此现象仅在于 _`未连接`_ 风枪手柄或加热台时,焊台风枪或加热台的显示数值却不是NA,并且伴随着 _`断开/连接`_ 警报提示。环境温度较高时,此现象明显。

 __`解决方案:`__ 修改下图中的两个黑色的二极管 _`D7`_ 和 _`D14`_ ,都更改成 _`1N4148WS`_ (封装为SOD-323 丝印一般是T4),注意二极管的方向。推荐链接购买 https://item.taobao.com/item.htm?spm=a1z09.2.0.0.63882e8dFnpTDo&id=661687019354&_u=dmp44q8405c

![二车二极管修改D14D7](../V2.5.x组装教程/二车二极管修改D14D7.png)

 __`补充说明:`__ 购买`二车`(v2.5.0)的成品`驱动板`和DIY的群友自行修改。购买`主机`且  __`2023年7月12日`__  之后发货或者返修发货的机器都是修改完的(无需自己修改),之前发货的可自行修改,如果不方便,主机可寄回给群主处理。

### 二车 - 优化项 <a id="二车 - 优化项"></a>
 __`问题描述:`__ 如下图所示,驱动板与机壳之间使用一颗螺丝连接,该落实为了固定驱动板的同时也为了让机壳接地。该螺丝如果强制拧紧板子,将会导致驱动板变形,因此有概率在运输过程中导致螺丝松动,甚至点掉落在机壳内。
![驱动板固定螺丝](../V2.5.x组装教程/驱动板固定螺丝.png)

  __`解决方案:`__ 推荐所有已在拆机状态的群友,在螺丝四周打上热熔胶或者中稠的硅橡胶。

  __`补充说明:`__ 无


### V2.6.X版本硬件(三车)检查通知 <a id="#V2.6.X版本硬件(三车)检查通知">
### 三车 - 旋钮问题 <a id="三车 - 旋钮问题"></a>
 __`问题描述:`__ 12月9日前发货的主机,可拔下旋钮帽查看旋钮帽的固定螺母是否已拧紧,如果没拧紧需要自行拧紧(差不多紧就行)。否则旋钮容易损坏。

![旋钮螺母](../V2.6.x组装教程/问题处理_旋钮螺母.jpg)

__由于旋钮帽与RGB灯挤压,旋钮按压经常性无效,或按不下去.__
![旋钮抵上RGB灯](../V2.6.x组装教程/问题处理_旋钮抵上RGB灯.jpg)
可以在旋钮帽内部垫点纸,增加旋钮帽高度。或者旋钮中间倒一点502之类的胶水固化垫高一些。
![旋钮帽垫纸](../V2.6.x组装教程/问题处理_旋钮帽垫纸.jpg)

### 三车 - 风枪航空头带电 <a id="三车 - 风枪航空头带电"></a>
 __`问题描述:`__ 12月24日之前发货的主机,部分机器存在航空头外部金属带`220V电`的可能性,主要由于图示中`红色220V跳线`插入过深接触到了航空头螺母。需要自行拆开检查__(拆机一定要拔掉220V电源线)__,拆开后依旧享受正常保修。

 __`补充说明:`__ 航空头内部的针脚带电是正常现象。测试航空插最中间引脚与金属头外圈导通情况并不保险,都需要拆机肉要查看间距。

__以下是正常的主机:__
![引脚正常无短路](../V2.6.x组装教程/问题处理_引脚正常无短路.jpg)

__以下是存在短路的主机:__
![航空头存在短路](../V2.6.x组装教程/问题处理_航空头存在短路.jpg)

  __`解决方案:`__ 剪掉一些过长部分的焊点高度,或者使用“额外的烙铁”将这根线拔出来一些,或使用手钻磨短一些。只要使线与航空头螺母之间保持1mm以上的间隙即可。__

  __`补充说明:`__ 部分群友若无法自行处理,可在确认为问题机的时候,淘宝联系返厂处理,来回运行我们负责。发回的机器推荐使用淘宝或者微信小程序上的代寄服务,问题机处理完成后联系我们返还6-7元邮费。__


### 三车 - 烙铁短路保护优化 <a id="三车 - 烙铁短路保护优化"></a>
 __`问题描述:`__ 在用户组装第三方手柄且正负极时,无法避免部分用户接线上短路的问题,所以主机的设计考虑了短路保护。三车预期设计了软件与硬件的双重短路保护。硬件使用的是内部的保险管,这是烙铁短路保护的最后一道门槛。原设计上是先有软件检测及时关断输出进而保护电路(此时保险管依旧良好),目前由于硬件的检测速度极快,携带的误检信号干扰了软件的短路识别,使得正常运行的状态也会被误识别成短路影响体验,故固件内部关闭了此项软保护。总体来说,原烙铁硬件在发生短路情况下,内部的保险丝会烧毁,自行更换一颗保险丝即可。

  __`解决方案:`__ 对于经常更换手柄的群友(普通群友可忽略),推荐在`R31电阻`上并联一颗`0603 0.1uf`的小电容,并开启固件上的`烙铁短路保护`功能,这样就连保险管也不会烧(“耐cao”)。修改参考如下:

![烙铁短路保护_优化示意图](../V2.6.x组装教程/问题处理_烙铁短路保护_优化示意图.jpg)

  __`补充说明:`__ 此为优化项,并不是强制需要关注。


================================================
FILE: Doc/蜗牛台全系接线引脚定义/蜗牛台全系接线引脚定义.md
================================================
# 蜗牛台全系接线引脚定义
### 免责声明:
#### 由于本作品涉及到220V交流电,需有一点基础的人员才可操作。未能正确估量自己的能力,发生触电等有损人身安全的事故,均与本项目开发者无关。也提醒大家,接线过程中不要接220V,一定要断电操作!!!

本教程对SnailHeater蜗牛台主机手柄提供一个统一的接线规范。

涉及的接口有:
* 烙铁口GX12-5 (T12/JBC245通用)
* 可调电源输出`2mm香蕉头`或`GX12-4航空头`
* 前置风枪/加热台`GX16-8`
* 后置风枪/加热台`GX16-8`
* 额外接地口、与JBC休眠口 `2mm香蕉头`

补充知识:
1. 带针的航空头成为公头,不带针的称之为母头。
2. 主机上安装的都是公头。所有的航空头都有一个防呆缺口(防止插错),防呆缺口的左右两边对应的是`1脚`和`n脚`,整体编号是按顺序编号的(顺逆不定)。
3. 航空母头的外壳为金属,注意内部弹片的焊线高度不要顶到外壳上,以免造成短路。
4. 焊接前,为了更好的焊接,建议所有的多股线头缠绕后镀锡,航空头的每个针都要线镀锡。
5. 为了更安全的防止短路,航空头与线头的连接处使用2mm直径的热缩管防护,故焊接前先在每根线上套好热缩管。
6. 一般新的风枪手柄加热后会有`白烟`,属于正常现象。因为内部云母纸的特性,初始受热会产生烟雾,然后云母纸变脆,使用一段时间后就正常了。

## 快捷导航
<a href="#关于蜗牛台航空头引脚定义"><font size="4" color="#00f">关于蜗牛台航空头引脚定义</font></a>
<a href="#烙铁手柄接线规范"><font size="4" color="#00f">烙铁手柄接线规范</font></a>

***

### <a id="关于蜗牛台航空头引脚定义">关于蜗牛台航空头引脚定义</a>
补充知识点:手柄的接口没有标准的线序,市面上的手柄或者主机线序都是不统一的,所以各家品牌的手柄只支持接自家的主机。不能直接使用其他家的手柄插接SnailHeater蜗牛台主机上,需要改好接头的线序才行。

##### GX12-5航空头(烙铁)
航空头 GX12-5 | 1 | 2 | 3 | 4 | 5
:-: | :-: | :-: | :-: | :-: | :-:
含义 | 发热芯ID识别引脚 | 发热芯正极 | 振动开关正极 | 振动开关/发热芯/热电偶 负极 | 热电偶正极


##### 前后两个GX16-8航空头(风枪、加热台、烤箱)
航空头 GX16-8 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
:-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-:
功能说明 | 电偶正 | 电偶负、磁控 | 磁控 | 风枪金属外壳 | 风扇正 | 风扇负 | 发热丝 | 发热丝

***

### <a id="烙铁手柄接线规范">烙铁手柄接线规范</a>

补充知识点:烙铁手柄的接口没有标准的线序,市面上的手柄或者主机线序都是不统一的,所以各家品牌的手柄只支持接自家的主机。不能直接使用其他家的手柄插接SnailHeater蜗牛台主机上,需要改好接头的线序才行。连接完成,可使用主机连接TypeC(先不连接AC品字电源线),来查看温度值是否正确读取。

##### 【重要】以下为烙铁接口 “自动型号识别” 的识别电阻阻值规范(推荐不大于 1% 精度)
型号 | 识别电阻
:-: | :-:
JBC245 | 0K
T20 | 976R (固件版本不小于 V2.2.3)
T12 | 2k
T-K(24V不大于200W的直流加热台) | 3.6k (固件版本不小于 V2.2.3)
JBC470 | 5.1k (固件版本不小于 V2.2.3)
JBC115 | 14.7k(固件版本不小于 V1.10.8)
JBC210 | 20k 

### T12手柄

![T12接线图](T12接线图.png)

航空头 GX12-5 | 1 | 2 | 3 | 4 | 5
:-: | :-: | :-: | :-: | :-: | :-:
含义 | 识别引脚 | 发热芯正极 | 振动开关正极 | 振动开关/发热芯/热电偶 负极 | 热电偶正极

注:
* 振动开关的金色脚靠近硅胶线方向。航空头的2号和5号引脚是短接的,图片中热缩管那部分。


***

### JBC245手柄(JBC470也可参考,需修改识别电阻)

航空头 GX12-5 | 1 | 2 | 3 | 4 | 5
:-: | :-: | :-: | :-: | :-: | :-:
含义 | 识别引脚 | 发热芯正极 | 振动开关正极 | 振动开关/发热芯/热电偶 负极 | 热电偶正极

![JBC245接线图](JBC245接线图.png)

注:
* 振动开关的金色脚靠近硅胶线方向。
* 如果使用休眠座,就不需要焊接 __`震动开关/水银开关`__ ,3脚休眠信号悬空,并且将主机后面的 __`白色香蕉头SLEEP休眠信号`__ 接到专用休眠座上。

##### 注:以下JBC245手柄的`ID识别信号`在手柄的航空头内部实现了跳线
![JBC245接线正面](JBC245接线正面.jpg)

1. 由于手柄空间问题,本手柄使用的为4.2mm外径的4芯线,且振动开关需要把外皮剥掉。

![JBC245接线反面](JBC245接线反面.jpg)

依旧由于空间的问题,塞入振动开关时容易卡住,手柄塞入需要推PCB的同时拉尾部的硅胶线,具体操作自行摸索。最终完成的状态如下。
![JBC245手柄整体](JBC245手柄整体.jpg)

***

### JBC210手柄(JBC115也可参考,需修改识别电阻)

![JBC210接线图](JBC210接线图.png)

航空头 GX12-5 | 1 | 2 | 3 | 4 | 5
:-: | :-: | :-: | :-: | :-: | :-:
含义 | 识别引脚 | 发热芯正极 | 振动开关正极 | 振动开关/发热芯/热电偶 负极 | 热电偶正极

注:
* 振动开关的金色脚靠近硅胶线方向。航空头的2号和5号引脚是短接的,图片中热缩管那部分。
* 如果使用休眠座,就不需要焊接 __`震动开关/水银开关`__ ,3脚休眠信号悬空,并且将主机后面的 __`白色香蕉头SLEEP休眠信号`__ 接到专用休眠座上。

***

### 专用休眠座

![JBC休眠座接线图](JBC休眠座接线图.png)

航空头 GX12-5 | 1 | 2 | 3 | 4 | 5
:-: | :-: | :-: | :-: | :-: | :-:
含义 | 识别引脚 | 发热芯正极 | 振动开关正极 | 振动开关/发热芯/热电偶 负极 | 热电偶正极

注:
* 振动开关的金色脚靠近硅胶线方向。航空头的2号和5号引脚是短接的,图片中热缩管那部分。
* 如果使用休眠座,就不需要焊接 __`震动开关/水银开关`__ ,3脚休眠信号悬空,并且将主机后面的 __`白色香蕉头SLEEP休眠信号`__ 接到专用休眠座上。

示图以 __`JBC245接线`__ 为例,将原 __`震动开关`__ 修改为了 __`休眠座`__ 。


***

### 热风枪手柄
以下线序和SnailHeater主机的接口对应

航空头 GX16-8 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
:-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-:
功能说明 | 电偶正 | 电偶负、开关(磁控或其他开关) | 开关另一端(磁控或其他开关) | 风枪金属外壳 | 风扇正 | 风扇负 | 发热丝 | 发热丝

![858D接线图](858D接线图.png)

##### 接完线后,必须单独测量手柄航空头!!!
> 由于航空头外壳是金属的,故推荐接好线后,给7、8引脚套上热缩管,避免短路导电。
> 7、8引脚为220V发热芯供电引脚。7、8引脚与其他任何引脚之间均不相连且电阻无穷大(使用电阻档测量),此两脚必须严格检查并测试。
> 5、6引脚为24V风扇电机供电引脚,与其他任何引脚之间均不相连且电阻无穷大(使用电阻档测量)
> 连接完成,可使用主机连接TypeC(先不连接AC品字电源线),来查看温度值是否正确读取。

***

### 加热台本体(可参考风枪手柄接线图)
注:SnailHeater加热台与热风枪的物理接口一致,只是少了风扇和开关信号,但整体和热风枪的线序是一致的。热风枪\加热台为AC220供电,故接口将会有高压输出,请勿在通电状态下触摸航空头的`内针`。

SnailHeater的加热台可以使用群内定制的发热板,也可以使用淘宝现成的铸铝发热板,甚至可以使用廉价的PTC发热板。前提是都需要有热电偶测温。

##### 以下是定制加热板的图:
![SnailHeater](加热板正面.jpg)
![SnailHeater](加热板背面.jpg)

##### 以下为发热芯内部拆解图,银白色的导线为电热丝(220V),故打孔的时候需要注意别穿到导线(中间有一长条没有空闲区可打孔)。供电线不分正负极。
![SnailHeater](加热板发热芯.jpg)


通常来说,热电偶的蓝线为负极,红线则为正极。发热芯的供电线为纯红色两根,不分正负极。

航空头 GX16-8 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
:-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-:
功能说明 | 电偶正 | 电偶负 | 空 | 接地线(连接加热板金属部分) | 风扇正(可不装) | 风扇负(可不装) | 发热丝(红线) | 发热丝(红线)

##### 接完线后,必须单独测量手柄航空头!!!
> 由于航空头外壳是金属的,故推荐接好线后,给7、8引脚套上热缩管,避免短路导电。
> 7、8引脚为220V发热芯供电引脚。7、8引脚与其他任何引脚之间均不相连且电阻无穷大(使用电阻档测量),此两脚必须严格检查并测试。
> 5、6引脚为24V风扇电机供电引脚(也可没有风扇),与其他任何引脚之间均不相连且电阻无穷大(使用电阻档测量)
> 连接完成,可使用主机连接TypeC(先不连接AC品字电源线),来查看温度值是否正确读取。

附送的氧化铝保温棉内部有金属物质,尽量避免保温棉进入发热芯引发导电。另外群内定制的加热板是可以通过螺丝来引出地线的。具体请参考`一车加热板安装` https://www.bilibili.com/video/BV1oG4y1h7A8?p=6 的视频教程(二车配件稍有改动)!!!


================================================
FILE: Doc/重量统计.md
================================================
高频焊台总共1350g

#### 外壳 228g
#### pcba(不含线) 75.9g

#### 整体主机 537.1g

#### 风枪手柄 220g
#### 风枪架 46.4g

#### 加热板: 
* 上板 242g 
* 下板58g 
* 发热心45.4g 
* 4套大螺丝(含螺母)60g  
* 7枚小螺丝6.1g  
* 4个木墩5.2g
* 热电偶4g

#### 烙铁:
* JBC245烙铁芯6g
* T12烙铁芯7.3g
* JBC210烙铁芯2.2g
* JBC245手柄65.3g(含1.3m线、航空插)
* T12手柄77.5g(含1.2m线、航空插)
* JBC210手柄15.9g(不含线和航空头)

#### 点焊机
* 3000UF*2电容  1010g

#### 24V大电源  146g

================================================
FILE: Images/.gitignore
================================================
Doc/*.pdf
lock_screen/

================================================
FILE: Images/面板图标元素/snailHeater字样.dxf
================================================
0
SECTION
2
HEADER
9
$INSUNITS
70
4
9
$ACADVER
1
AC1014
9
$HANDSEED
5
FFFF
0
ENDSEC
0
SECTION
2
TABLES
0
TABLE
2
VPORT
5
8
100
AcDbSymbolTable
0
ENDTAB
0
TABLE
2
LTYPE
5
5
100
AcDbSymbolTable
0
LTYPE
5
14
100
AcDbSymbolTableRecord
100
AcDbLinetypeTableRecord
2
BYBLOCK
70
0
0
LTYPE
5
15
100
AcDbSymbolTableRecord
100
AcDbLinetypeTableRecord
2
BYLAYER
70
0
0
ENDTAB
0
TABLE
2
LAYER
5
2
100
AcDbSymbolTable
70
2
0
LAYER
5
50
100
AcDbSymbolTableRecord
100
AcDbLayerTableRecord
2
0
70
0
6
CONTINUOUS
0
ENDTAB
0
TABLE
2
STYLE
5
3
100
AcDbSymbolTable
70
1
0
STYLE
5
11
100
AcDbSymbolTableRecord
100
AcDbTextStyleTableRecord
2
STANDARD
70
0
0
ENDTAB
0
TABLE
2
VIEW
5
6
100
AcDbSymbolTable
70
0
0
ENDTAB
0
TABLE
2
UCS
5
7
100
AcDbSymbolTable
70
0
0
ENDTAB
0
TABLE
2
APPID
5
9
100
AcDbSymbolTable
70
2
0
APPID
5
12
100
AcDbSymbolTableRecord
100
AcDbRegAppTableRecord
2
ACAD
70
0
0
ENDTAB
0
TABLE
2
DIMSTYLE
5
A
100
AcDbSymbolTable
70
1
0
ENDTAB
0
TABLE
2
BLOCK_RECORD
5
1
100
AcDbSymbolTable
70
1
0
BLOCK_RECORD
5
1F
100
AcDbSymbolTableRecord
100
AcDbBlockTableRecord
2
*MODEL_SPACE
0
BLOCK_RECORD
5
1B
100
AcDbSymbolTableRecord
100
AcDbBlockTableRecord
2
*PAPER_SPACE
0
ENDTAB
0
ENDSEC
0
SECTION
2
BLOCKS
0
BLOCK
5
20
100
AcDbEntity
100
AcDbBlockBegin
2
*MODEL_SPACE
0
ENDBLK
5
21
100
AcDbEntity
100
AcDbBlockEnd
0
BLOCK
5
1C
100
AcDbEntity
100
AcDbBlockBegin
2
*PAPER_SPACE
0
ENDBLK
5
1D
100
AcDbEntity
100
AcDbBlockEnd
0
ENDSEC
0
SECTION
2
ENTITIES
0
LWPOLYLINE
5
100
100
AcDbEntity
8
0
100
AcDbPolyline
90
4
70
1
43
0.0
10
-14.666016182011834
20
-10.970164564935558
10
27.912244046421645
20
-10.970164564935594
10
27.912244046421652
20
1.7078737941168987
10
-14.666016182011823
20
1.7078737941169337
0
SPLINE
5
101
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.044450111768111
20
-0.49061521621708237
30
0
10
-13.027966596267088
20
-0.38347258897785508
30
0
10
-13.067114926955565
20
-0.30929669471744858
30
0
0
SPLINE
5
102
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.067114926955565
20
-0.30929669471744858
30
0
10
-13.106263406655653
20
-0.23512080045704153
30
0
10
-13.176318235776289
20
-0.18463983865741995
30
0
0
SPLINE
5
103
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.176318235776289
20
-0.18463983865741995
30
0
10
-13.246373213908537
20
-0.13415917488102225
30
0
10
-13.336002357385023
20
-0.099131611309092316
30
0
0
SPLINE
5
104
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.336002357385023
20
-0.099131611309092316
30
0
10
-13.42563150086151
20
-0.064104345760386261
30
0
10
-13.508049003860815
20
-0.03319754930500296
30
0
0
SPLINE
5
105
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.508049003860815
20
-0.03319754930500296
30
0
10
-13.615191929123267
20
0.0059507813834736023
30
0
10
-13.721304513594969
20
0.053340646305043427
30
0
0
SPLINE
5
106
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.721304513594969
20
0.053340646305043427
30
0
10
-13.827417172572478
20
0.10073110727306156
30
0
10
-13.925288073799475
20
0.16048357156749515
30
0
0
SPLINE
5
107
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.925288073799475
20
0.16048357156749515
30
0
10
-14.023158975026472
20
0.22023648289676456
30
0
10
-14.106606818816527
20
0.29338211087222843
30
0
0
SPLINE
5
108
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-14.106606818816527
20
0.29338211087222843
30
0
10
-14.190054625353678
20
0.3665277388476923
30
0
10
-14.249807350418433
20
0.45615688232417878
30
0
0
SPLINE
5
109
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-14.249807350418433
20
0.45615688232417878
30
0
10
-14.30956011273609
20
0.54578602580066504
30
0
10
-14.341496951958998
20
0.65498933462138953
30
0
0
SPLINE
5
110
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-14.341496951958998
20
0.65498933462138953
30
0
10
-14.373433753929003
20
0.76419249443050208
30
0
10
-14.365191996178492
20
0.89400023488040747
30
0
0
SPLINE
5
111
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-14.365191996178492
20
0.89400023488040747
30
0
10
-14.356950238427981
20
1.0423518743896085
30
0
10
-14.304409004828793
20
1.1639179315948087
30
0
0
SPLINE
5
112
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-14.304409004828793
20
1.1639179315948087
30
0
10
-14.25186780848251
20
1.285483690776785
30
0
10
-14.166359543881279
20
1.3812942829513148
30
0
0
SPLINE
5
113
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-14.166359543881279
20
1.3812942829513148
30
0
10
-14.080851279280049
20
1.477104577102621
30
0
10
-13.968557320616108
20
1.5481899705314235
30
0
0
SPLINE
5
114
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.968557320616108
20
1.5481899705314235
30
0
10
-13.856263361952168
20
1.6192750659370021
30
0
10
-13.729546271345479
20
1.6646046963119101
30
0
0
SPLINE
5
115
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.729546271345479
20
1.6646046963119101
30
0
10
-13.602829255244595
20
1.7099343266868183
30
0
10
-13.4678704813932
20
1.7305387583159992
30
0
0
SPLINE
5
116
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.4678704813932
20
1.7305387583159992
30
0
10
-13.332911707541806
20
1.7511431899451801
30
0
10
-13.201043583533627
20
1.7490826573752949
30
0
0
SPLINE
5
117
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.201043583533627
20
1.7490826573752949
30
0
10
-12.990878798148495
20
1.7449618902587476
30
0
10
-12.811620511195523
20
1.6810883608245435
30
0
0
SPLINE
5
118
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-12.811620511195523
20
1.6810883608245435
30
0
10
-12.63236222424255
20
1.6172145333671155
30
0
10
-12.500494100234372
20
1.4977090087318006
30
0
0
SPLINE
5
119
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-12.500494100234372
20
1.4977090087318006
30
0
10
-12.368625976226193
20
1.3782034840964854
30
0
10
-12.295480348250729
20
1.2071870293998301
30
0
0
SPLINE
5
120
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-12.295480348250729
20
1.2071870293998301
30
0
10
-12.222334571263653
20
1.0361705747031746
30
0
10
-12.224395103833539
20
0.81982448963161092
30
0
0
LINE
5
121
100
AcDbEntity
8
0
100
AcDbLine
10
-12.224395103833539
20
0.81982448963161092
30
0
11
-12.82604349412666
21
0.82188487318988479
31
0
0
SPLINE
5
122
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-12.826043494126662
20
0.82188487318988479
30
0
10
-12.819862194440228
20
1.0258683588885846
30
0
10
-12.921853937289578
20
1.1381623175525255
30
0
0
SPLINE
5
123
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-12.921853937289578
20
1.1381623175525255
30
0
10
-13.02384582915054
20
1.2504564252280779
30
0
10
-13.234010614535672
20
1.2545771923446245
30
0
0
SPLINE
5
124
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.234010614535672
20
1.2545771923446245
30
0
10
-13.320549108168942
20
1.25663772491451
30
0
10
-13.409147985360486
20
1.2360332932853291
30
0
0
SPLINE
5
125
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.409147985360486
20
1.2360332932853291
30
0
10
-13.497746862552029
20
1.2154288616561482
30
0
10
-13.57192268230663
20
1.1711294975661823
30
0
0
SPLINE
5
126
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.57192268230663
20
1.1711294975661823
30
0
10
-13.64609850206123
20
1.1268299844646048
30
0
10
-13.698639698407513
20
1.0578052726172995
30
0
0
SPLINE
5
127
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.698639698407513
20
1.0578052726172995
30
0
10
-13.751180894753798
20
0.98878056076999421
30
0
10
-13.765604026696547
20
0.89400023488040681
30
0
0
SPLINE
5
128
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.765604026696547
20
0.89400023488040681
30
0
10
-13.78002708413349
20
0.79715967444415803
30
0
10
-13.733667187473639
20
0.72813481358524079
30
0
0
SPLINE
5
129
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.733667187473639
20
0.72813481358524079
30
0
10
-13.687307290813788
20
0.65911010173793549
30
0
10
-13.611071012995108
20
0.6106898215198111
30
0
0
SPLINE
5
130
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.611071012995108
20
0.6106898215198111
30
0
10
-13.534834735176428
20
0.56226954130168649
30
0
10
-13.446235932490691
20
0.5303326275729725
30
0
0
SPLINE
5
131
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.446235932490691
20
0.5303326275729725
30
0
10
-13.357637055299147
20
0.49839586285587045
30
0
10
-13.287582077166899
20
0.47367051509853098
30
0
0
SPLINE
5
132
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.287582077166899
20
0.47367051509853098
30
0
10
-13.118626006028517
20
0.41391775278087323
30
0
10
-12.961002416989668
20
0.33150017527576153
30
0
0
SPLINE
5
133
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-12.961002416989668
20
0.33150017527576153
30
0
10
-12.803378678939207
20
0.24908259777064956
30
0
10
-12.683873154303893
20
0.13472840456004775
30
0
0
SPLINE
5
134
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-12.683873154303893
20
0.13472840456004775
30
0
10
-12.56436777868019
20
0.020373913326222071
30
0
10
-12.497403450391158
20
-0.13312890859608018
30
0
0
SPLINE
5
135
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-12.497403450391158
20
-0.13312890859608018
30
0
10
-12.430439122102126
20
-0.28663173051838242
30
0
10
-12.442801721474989
20
-0.48649444910053574
30
0
0
SPLINE
5
136
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-12.442801721474989
20
-0.48649444910053574
30
0
10
-12.45310393728958
20
-0.63690647216801011
30
0
10
-12.503584750077589
20
-0.75950279565815293
30
0
0
SPLINE
5
137
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-12.503584750077589
20
-0.75950279565815293
30
0
10
-12.554065562865599
20
-0.88209882112507187
30
0
10
-12.636483140370711
20
-0.97687914701465928
30
0
0
SPLINE
5
138
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-12.636483140370711
20
-0.97687914701465928
30
0
10
-12.718900717875822
20
-1.0716591748810229
30
0
10
-12.827073760411604
20
-1.1396537694549975
30
0
0
SPLINE
5
139
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-12.827073760411604
20
-1.1396537694549975
30
0
10
-12.935246802947386
20
-1.2076483640289721
30
0
10
-13.059903509995802
20
-1.251947728118938
30
0
0
SPLINE
5
140
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.059903509995802
20
-1.251947728118938
30
0
10
-13.184560068032606
20
-1.2962470922089031
30
0
10
-13.319518841884001
20
-1.316851523838084
30
0
0
SPLINE
5
141
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.319518841884001
20
-1.316851523838084
30
0
10
-13.454477615735396
20
-1.3374559554672649
30
0
10
-13.590466581365927
20
-1.3353954228973797
30
0
0
SPLINE
5
142
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.590466581365927
20
-1.3353954228973797
30
0
10
-13.815054573199614
20
-1.3312746557808324
30
0
10
-14.011826567432745
20
-1.265340593776743
30
0
0
SPLINE
5
143
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-14.011826567432745
20
-1.265340593776743
30
0
10
-14.208598561665877
20
-1.1994065317726537
30
0
10
-14.353859551331862
20
-1.0737197074509068
30
0
0
SPLINE
5
144
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-14.353859551331862
20
-1.0737197074509068
30
0
10
-14.49912057825075
20
-0.94803288312915956
30
0
10
-14.582568384787901
20
-0.76568409534458315
30
0
0
SPLINE
5
145
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-14.582568384787901
20
-0.76568409534458315
30
0
10
-14.666016182011827
20
-0.58333500953678286
30
0
10
-14.661895303136571
20
-0.34638449283603823
30
0
0
LINE
5
146
100
AcDbEntity
8
0
100
AcDbLine
10
-14.661895303136571
20
-0.34638449283603823
30
0
11
-14.060246922156676
21
-0.34844502540592398
31
0
0
SPLINE
5
147
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-14.060246922156676
20
-0.34844502540592404
30
0
10
-14.07054906346546
20
-0.59775814147953243
30
0
10
-13.943832047364577
20
-0.71932419868473263
30
0
0
SPLINE
5
148
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.943832047364577
20
-0.71932419868473263
30
0
10
-13.817114956757887
20
-0.84088995786670895
30
0
10
-13.567801766178473
20
-0.84501102300648001
30
0
0
SPLINE
5
149
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.567801766178473
20
-0.84501102300648001
30
0
10
-13.479202963492735
20
-0.84501102300648001
30
0
10
-13.392664469859465
20
-0.82646682592396048
30
0
0
SPLINE
5
150
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.392664469859465
20
-0.82646682592396048
30
0
10
-13.306125976226195
20
-0.80792292686466483
30
0
10
-13.234010614535674
20
-0.76568409534458426
30
0
0
SPLINE
5
151
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.234010614535674
20
-0.76568409534458426
30
0
10
-13.161895252845152
20
-0.72344496580127982
30
0
10
-13.111414440057143
20
-0.65545037122730521
30
0
0
SPLINE
5
152
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-13.111414440057143
20
-0.65545037122730521
30
0
10
-13.060933627269133
20
-0.58745607467655503
30
0
10
-13.044450111768111
20
-0.49061521621708237
30
0
0
LINE
5
153
100
AcDbEntity
8
0
100
AcDbLine
10
-11.282774038693768
20
0.93932986525531337
30
0
11
-11.332224436185223
21
0.67559361723895595
31
0
0
SPLINE
5
154
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-11.332224436185225
20
0.67559361723895595
30
0
10
-11.204477377316815
20
0.82394525674815666
30
0
10
-11.042732723138196
20
0.90327218441005241
30
0
0
SPLINE
5
155
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-11.042732723138196
20
0.90327218441005241
30
0
10
-10.8809883669828
20
0.98259911207194794
30
0
10
-10.683186180970532
20
0.97847819594378938
30
0
0
SPLINE
5
156
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-10.683186180970532
20
0.97847819594378938
30
0
10
-10.497746594331128
20
0.97435742882724252
30
0
10
-10.379271037957531
20
0.90224191812510934
30
0
0
SPLINE
5
157
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-10.379271037957531
20
0.90224191812510934
30
0
10
-10.260796077630383
20
0.8301265564345881
30
0
10
-10.194862015626295
20
0.71165129808421546
30
0
0
SPLINE
5
158
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-10.194862015626295
20
0.71165129808421546
30
0
10
-10.128927953622206
20
0.59317603973384314
30
0
10
-10.110383756539687
20
0.44070348409648352
30
0
0
SPLINE
5
159
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-10.110383756539687
20
0.44070348409648352
30
0
10
-10.091839857480391
20
0.2882309284591239
30
0
10
-10.108323223969801
20
0.12545630601878577
30
0
0
LINE
5
160
100
AcDbEntity
8
0
100
AcDbLine
10
-10.108323223969801
20
0.12545630601878577
30
0
11
-10.343213506123885
21
-1.2921263250923589
31
0
0
LINE
5
161
100
AcDbEntity
8
0
100
AcDbLine
10
-10.343213506123885
20
-1.2921263250923594
30
0
11
-10.924257464787825
21
-1.2921263250923587
31
0
0
LINE
5
162
100
AcDbEntity
8
0
100
AcDbLine
10
-10.924257464787825
20
-1.2921263250923587
30
0
11
-10.685246415517195
21
0.13163730768199405
31
0
0
SPLINE
5
163
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-10.685246415517195
20
0.13163730768199433
30
0
10
-10.674944050690993
20
0.21199450162883271
30
0
10
-10.682155616662367
20
0.277928712644534
30
0
0
SPLINE
5
164
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-10.682155616662367
20
0.277928712644534
30
0
10
-10.689367182633742
20
0.34386277464862336
30
0
10
-10.71821344651924
20
0.39125293759341706
30
0
0
SPLINE
5
165
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-10.71821344651924
20
0.39125293759341706
30
0
10
-10.747059710404738
20
0.43864310053821076
30
0
10
-10.802691705605849
20
0.46542883185382355
30
0
0
SPLINE
5
166
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-10.802691705605849
20
0.46542883185382355
30
0
10
-10.858323402783736
20
0.49221441415782441
30
0
10
-10.944861896417006
20
0.49427494672770994
30
0
0
SPLINE
5
167
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-10.944861896417006
20
0.49427494672770994
30
0
10
-11.074669487855299
20
0.49839586285586851
30
0
10
-11.174600847146376
20
0.43864310053821104
30
0
0
SPLINE
5
168
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-11.174600847146376
20
0.43864310053821104
30
0
10
-11.274532206437453
20
0.37889033822055385
30
0
10
-11.354889400384291
20
0.28204962877269313
30
0
0
LINE
5
169
100
AcDbEntity
8
0
100
AcDbLine
10
-11.354889400384291
20
0.28204962877269313
30
0
11
-11.633048780343401
21
-1.2921263250923578
31
0
0
LINE
5
170
100
AcDbEntity
8
0
100
AcDbLine
10
-11.633048780343398
20
-1.292126325092358
30
0
11
-12.214092739007338
21
-1.2921263250923576
31
0
0
LINE
5
171
100
AcDbEntity
8
0
100
AcDbLine
10
-12.214092739007338
20
-1.2921263250923576
30
0
11
-11.826730199239117
21
0.93726948169704039
31
0
0
LINE
5
172
100
AcDbEntity
8
0
100
AcDbLine
10
-11.826730199239117
20
0.93726948169704039
30
0
11
-11.282774038693768
21
0.93932986525531326
31
0
0
SPLINE
5
173
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.6042023972486117
20
-1.2921263250923603
30
0
10
-8.6206860617612442
20
-1.2406153950310199
30
0
10
-8.6248065308545669
20
-1.1921949658012836
30
0
0
SPLINE
5
174
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.6248065308545669
20
-1.1921949658012836
30
0
10
-8.6289275959943375
20
-1.1437745365715473
30
0
10
-8.6268670634244522
20
-1.0902030739403217
30
0
0
SPLINE
5
175
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.6268670634244522
20
-1.0902030739403217
30
0
10
-8.7443120554898819
20
-1.2076483640289752
30
0
10
-8.8854522780393221
20
-1.272552159748122
30
0
0
SPLINE
5
176
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.8854522780393221
20
-1.272552159748122
30
0
10
-9.0265925005887606
20
-1.3374559554672687
30
0
10
-9.1955484227155306
20
-1.3333351883507216
30
0
0
SPLINE
5
177
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.1955484227155306
20
-1.3333351883507216
30
0
10
-9.3356586770032504
20
-1.3312746557808364
30
0
10
-9.4582547024701693
20
-1.2838844928360427
30
0
0
SPLINE
5
178
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.4582547024701693
20
-1.2838844928360427
30
0
10
-9.5808507279370865
20
-1.236494329891249
30
0
10
-9.6725405529950699
20
-1.1509861025429213
30
0
0
SPLINE
5
179
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.6725405529950699
20
-1.1509861025429213
30
0
10
-9.7642300800298294
20
-1.0654778751945932
30
0
10
-9.8157410100911697
20
-0.9459723505592782
30
0
0
SPLINE
5
180
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.8157410100911697
20
-0.9459723505592782
30
0
10
-9.8672519401525101
20
-0.82646682592396326
30
0
10
-9.8610706404660782
20
-0.68223610254292077
30
0
0
SPLINE
5
181
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.8610706404660782
20
-0.68223610254292077
30
0
10
-9.8548893407796463
20
-0.53594484659199304
30
0
10
-9.80646891154991
20
-0.42365088792805261
30
0
0
SPLINE
5
182
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.80646891154991
20
-0.42365088792805261
30
0
10
-9.7580487803433975
20
-0.31135692926411218
30
0
10
-9.6787215546582779
20
-0.22687896820072773
30
0
0
SPLINE
5
183
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.6787215546582779
20
-0.22687896820072773
30
0
10
-9.599394925019606
20
-0.14240100713734272
30
0
10
-9.4943125323270401
20
-0.085739043674513127
30
0
0
SPLINE
5
184
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.4943125323270401
20
-0.085739043674513127
30
0
10
-9.3892301396344742
20
-0.02907678218845966
30
0
10
-9.270754583260878
20
0.0059507813834702716
30
0
0
SPLINE
5
185
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.270754583260878
20
0.0059507813834702716
30
0
10
-9.1522790268872818
20
0.040978046932176326
30
0
10
-9.0245319680188736
20
0.056431743183091299
30
0
0
SPLINE
5
186
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.0245319680188736
20
0.056431743183091299
30
0
10
-8.8967849091504654
20
0.071884843387559072
30
0
10
-8.7731583193753799
20
0.071884843387559072
30
0
0
LINE
5
187
100
AcDbEntity
8
0
100
AcDbLine
10
-8.7731583193753799
20
0.071884843387559072
30
0
11
-8.5011805371259292
21
0.067763778247788342
31
0
0
LINE
5
188
100
AcDbEntity
8
0
100
AcDbLine
10
-8.5011805371259292
20
0.067763778247788564
30
0
11
-8.4723342732404312
21
0.20169243482585253
31
0
0
SPLINE
5
189
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.4723342732404312
20
0.20169243482585253
30
0
10
-8.4599716738675674
20
0.26968702939982686
30
0
10
-8.4661532715772232
20
0.33047005800242696
30
0
0
SPLINE
5
190
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.4661532715772232
20
0.33047005800242696
30
0
10
-8.4723342732404312
20
0.39125293759341512
30
0
10
-8.5001499728177627
20
0.4365827169799355
30
0
0
SPLINE
5
191
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.5001499728177627
20
0.4365827169799355
30
0
10
-8.527966268441542
20
0.48191234735484395
30
0
10
-8.5784472302411636
20
0.50972819594378738
30
0
0
SPLINE
5
192
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.5784472302411636
20
0.50972819594378738
30
0
10
-8.6289275959943375
20
0.53754419354434313
30
0
10
-8.7051637248014053
20
0.53960457710261645
30
0
0
SPLINE
5
193
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.7051637248014053
20
0.53960457710261645
30
0
10
-8.8411529139493545
20
0.54372549323077501
30
0
10
-8.9359332398389419
20
0.47264039782519668
30
0
0
SPLINE
5
194
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.9359332398389419
20
0.47264039782519668
30
0
10
-9.0307135657285293
20
0.40155515340800613
30
0
10
-9.0574992970441421
20
0.2676266458415541
30
0
0
LINE
5
195
100
AcDbEntity
8
0
100
AcDbLine
10
-9.0574992970441421
20
0.2676266458415541
30
0
11
-9.6406037882779678
21
0.26556611327166935
31
0
0
SPLINE
5
196
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.6406037882779678
20
0.2655661132716694
30
0
10
-9.6323616579984268
20
0.4510056999110737
30
0
10
-9.5396418646787247
20
0.5869947400474107
30
0
0
SPLINE
5
197
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.5396418646787247
20
0.5869947400474107
30
0
10
-9.4469220713590225
20
0.72298378018374798
30
0
10
-9.305781848809584
20
0.81158265737529156
30
0
0
SPLINE
5
198
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.305781848809584
20
0.81158265737529156
30
0
10
-9.1646422223065933
20
0.90018153456683492
30
0
10
-8.993625767609938
20
0.94036013154025411
30
0
0
SPLINE
5
199
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.993625767609938
20
0.94036013154025411
30
0
10
-8.8226093129132828
20
0.98053872851367296
30
0
10
-8.6577738598798355
20
0.97847834495539965
30
0
0
SPLINE
5
200
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.6577738598798355
20
0.97847834495539965
30
0
10
-8.4826363400434097
20
0.97435742882724075
30
0
10
-8.333254583260878
20
0.92078596619601516
30
0
0
SPLINE
5
201
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.333254583260878
20
0.92078596619601516
30
0
10
-8.1838728264783462
20
0.86721450356478935
30
0
10
-8.0787904337857803
20
0.76728329328532463
30
0
0
SPLINE
5
202
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.0787904337857803
20
0.76728329328532463
30
0
10
-7.9737080410932135
20
0.66735193399424797
30
0
10
-7.9201365784619879
20
0.52312106160159333
30
0
0
SPLINE
5
203
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-7.9201365784619879
20
0.52312106160159333
30
0
10
-7.8665651158307623
20
0.37889033822055079
30
0
10
-7.885108716866835
20
0.19345090059275871
30
0
0
LINE
5
204
100
AcDbEntity
8
0
100
AcDbLine
10
-7.885108716866835
20
0.19345090059275871
30
0
11
-8.0375815705274203
21
-0.75229122968678219
31
0
0
SPLINE
5
205
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.0375815705274185
20
-0.7522912296867823
30
0
10
-8.047883637330397
20
-0.81410422655110115
30
0
10
-8.056125767609938
20
-0.87797805400852913
30
0
0
SPLINE
5
206
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.056125767609938
20
-0.87797805400852913
30
0
10
-8.0643673018430313
20
-0.94185158344273323
30
0
10
-8.0664278344129166
20
-1.0057251128769373
30
0
0
SPLINE
5
207
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.0664278344129166
20
-1.0057251128769373
30
0
10
-8.0684877709363541
20
-1.0695989403343653
30
0
10
-8.0612768010114273
20
-1.1324422034836268
30
0
0
SPLINE
5
208
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.0612768010114273
20
-1.1324422034836268
30
0
10
-8.054064638993605
20
-1.1952857646561121
30
0
10
-8.0313999728177645
20
-1.2529779944038844
30
0
0
LINE
5
209
100
AcDbEntity
8
0
100
AcDbLine
10
-8.0313999728177645
20
-1.2529779944038844
30
0
11
-8.0334605053876498
21
-1.2921263250923609
31
0
0
LINE
5
210
100
AcDbEntity
8
0
100
AcDbLine
10
-8.0334605053876498
20
-1.2921263250923609
30
0
11
-8.6042023972486117
21
-1.2921263250923603
31
0
0
SPLINE
5
211
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.0513176993344864
20
-0.88209882112507521
30
0
10
-8.9194495753263077
20
-0.88621958824162184
30
0
10
-8.8071556166623672
20
-0.82440659137730299
30
0
0
SPLINE
5
212
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.8071556166623672
20
-0.82440659137730299
30
0
10
-8.6948616579984268
20
-0.76259329648976026
30
0
10
-8.6124439314817032
20
-0.66369220348362623
30
0
0
LINE
5
213
100
AcDbEntity
8
0
100
AcDbLine
10
-8.6124439314817032
20
-0.66369220348362623
30
0
11
-8.5403288678144058
21
-0.27838989826206867
31
0
0
LINE
5
214
100
AcDbEntity
8
0
100
AcDbLine
10
-8.5403288678144058
20
-0.27838989826206861
30
0
11
-8.7422515229199966
21
-0.27632966371540707
31
0
0
SPLINE
5
215
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.7422515229199966
20
-0.27632966371540724
30
0
10
-8.830850847146376
20
-0.27838989826206861
30
0
10
-8.9194495753263077
20
-0.29796436162953077
30
0
0
SPLINE
5
216
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-8.9194495753263077
20
-0.29796436162953077
30
0
10
-9.0080488995526871
20
-0.31753852697376905
30
0
10
-9.0811939314817032
20
-0.36080762477879225
30
0
0
SPLINE
5
217
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.0811939314817032
20
-0.36080762477879225
30
0
10
-9.154339559457167
20
-0.40407672258381488
30
0
10
-9.2058504895185074
20
-0.47207131715778949
30
0
0
SPLINE
5
218
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.2058504895185074
20
-0.47207131715778949
30
0
10
-9.2573620156262955
20
-0.5400659117317641
30
0
10
-9.2697246149991592
20
-0.63896700473789814
30
0
0
SPLINE
5
219
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.2697246149991592
20
-0.63896700473789814
30
0
10
-9.2862076834653458
20
-0.75023069711689594
30
0
10
-9.2233647183393082
20
-0.81513449283604267
30
0
0
SPLINE
5
220
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-9.2233647183393082
20
-0.81513449283604267
30
0
10
-9.1605211571668228
20
-0.8800382885551894
30
0
10
-9.0513176993344864
20
-0.88209882112507521
30
0
0
LINE
5
221
100
AcDbEntity
8
0
100
AcDbLine
10
-7.0588727072690585
20
-1.292126325092362
30
0
11
-7.6440377310727694
21
-1.2921263250923616
31
0
0
LINE
5
222
100
AcDbEntity
8
0
100
AcDbLine
10
-7.6440377310727694
20
-1.2921263250923616
30
0
11
-7.2566748932813248
21
0.93726948169703639
31
0
0
LINE
5
223
100
AcDbEntity
8
0
100
AcDbLine
10
-7.2566748932813239
20
0.93726948169703639
30
0
11
-6.6715098694776129
21
0.93726948169703594
31
0
0
LINE
5
224
100
AcDbEntity
8
0
100
AcDbLine
10
-6.6715098694776129
20
0.93726948169703617
30
0
11
-7.0588727072690567
21
-1.2921263250923618
31
0
0
SPLINE
5
225
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-7.1886802987073493
20
1.503890308418228
30
0
10
-7.1907408312772345
20
1.5739454355620879
30
0
10
-7.1670461968396735
20
1.6316376653098599
30
0
0
SPLINE
5
226
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-7.1670461968396735
20
1.6316376653098599
30
0
10
-7.1433509663556647
20
1.6893298950576321
30
0
10
-7.1000815705274176
20
1.7315690246009365
30
0
0
SPLINE
5
227
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-7.1000815705274176
20
1.7315690246009365
30
0
10
-7.0568121746991705
20
1.7738078561210171
30
0
10
-6.997059710404737
20
1.7985333528899683
30
0
0
SPLINE
5
228
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-6.997059710404737
20
1.7985333528899683
30
0
10
-6.9373066500638556
20
1.8232585516356958
30
0
10
-6.8693126515363288
20
1.8232585516356958
30
0
0
SPLINE
5
229
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-6.8693126515363288
20
1.8232585516356958
30
0
10
-6.8033779934857916
20
1.8253190842055811
30
0
10
-6.743625529191358
20
1.8036843862914576
30
0
0
SPLINE
5
230
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-6.743625529191358
20
1.8036843862914576
30
0
10
-6.6838730648969245
20
1.782049688377334
30
0
10
-6.6395731047605109
20
1.7429013576888575
30
0
0
SPLINE
5
231
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-6.6395731047605109
20
1.7429013576888575
30
0
10
-6.5952737406705451
20
1.7037530270003809
30
0
10
-6.5684880093549323
20
1.6481210317992701
30
0
0
SPLINE
5
232
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-6.5684880093549323
20
1.6481210317992701
30
0
10
-6.5417022780393195
20
1.5924893346213831
30
0
10
-6.5396417454694342
20
1.5244947400474085
30
0
0
SPLINE
5
233
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-6.5396417454694342
20
1.5244947400474085
30
0
10
-6.5375818089459967
20
1.4544399109267723
30
0
10
-6.5623070076917243
20
1.3967473831557762
30
0
0
SPLINE
5
234
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-6.5623070076917243
20
1.3967473831557762
30
0
10
-6.5870322064374518
20
1.339055153408004
30
0
10
-6.6303016022656989
20
1.295786055602981
30
0
0
SPLINE
5
235
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-6.6303016022656989
20
1.295786055602981
30
0
10
-6.6735704020474982
20
1.2525166597747339
30
0
10
-6.732292898080213
20
1.228821727313949
30
0
0
SPLINE
5
236
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-6.732292898080213
20
1.228821727313949
30
0
10
-6.7910159901593756
20
1.2051266458415522
30
0
10
-6.8590099886869025
20
1.2030661132716669
30
0
0
SPLINE
5
237
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-6.8590099886869025
20
1.2030661132716669
30
0
10
-6.9270045832608771
20
1.2010057297133936
30
0
10
-6.9857270792935919
20
1.2226404276275173
30
0
0
SPLINE
5
238
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-6.9857270792935919
20
1.2226404276275173
30
0
10
-7.0444495753263068
20
1.2442751255416409
30
0
10
-7.0897795037244391
20
1.2834234562301174
30
0
0
SPLINE
5
239
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-7.0897795037244391
20
1.2834234562301174
30
0
10
-7.1351088360761237
20
1.322571786918594
30
0
10
-7.1608645991300177
20
1.3792337503814236
30
0
0
SPLINE
5
240
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-7.1608645991300177
20
1.3792337503814236
30
0
10
-7.1866203621839118
20
1.4358960118674771
30
0
10
-7.1886802987073493
20
1.503890308418228
30
0
0
LINE
5
241
100
AcDbEntity
8
0
100
AcDbLine
10
-5.9524167851422884
20
-1.2921263250923625
30
0
11
-6.5375818089459994
21
-1.292126325092362
31
0
0
LINE
5
242
100
AcDbEntity
8
0
100
AcDbLine
10
-6.5375818089459994
20
-1.292126325092362
30
0
11
-5.9874446467374396
21
1.8727092471503743
31
0
0
LINE
5
243
100
AcDbEntity
8
0
100
AcDbLine
10
-5.9874446467374396
20
1.8727092471503743
30
0
11
-5.4043401555036139
21
1.8727092471503737
31
0
0
LINE
5
244
100
AcDbEntity
8
0
100
AcDbLine
10
-5.4043401555036139
20
1.8727092471503737
30
0
11
-5.9524167851422884
21
-1.2921263250923625
31
0
0
LINE
5
245
100
AcDbEntity
8
0
100
AcDbLine
10
-3.0492569283460225
20
-1.2921263250923654
30
0
11
-3.6529649571393574
21
-1.2921263250923647
31
0
0
LINE
5
246
100
AcDbEntity
8
0
100
AcDbLine
10
-3.6529649571393574
20
-1.2921263250923647
30
0
11
-3.4304381684278082
21
-0.0064118179893987715
31
0
0
LINE
5
247
100
AcDbEntity
8
0
100
AcDbLine
10
-3.4304381684278096
20
-0.0064118179893984939
30
0
11
-4.5945860222791275
21
-0.0064118179893975225
31
0
0
LINE
5
248
100
AcDbEntity
8
0
100
AcDbLine
10
-4.5945860222791275
20
-0.0064118179893973837
30
0
11
-4.8191745356534579
21
-1.2921263250923634
31
0
0
LINE
5
249
100
AcDbEntity
8
0
100
AcDbLine
10
-4.8191745356534579
20
-1.2921263250923638
30
0
11
-5.4228831604932406
21
-1.2921263250923631
31
0
0
LINE
5
250
100
AcDbEntity
8
0
100
AcDbLine
10
-5.4228831604932406
20
-1.2921263250923631
30
0
11
-4.9015916661237311
21
1.7078737941169257
31
0
0
LINE
5
251
100
AcDbEntity
8
0
100
AcDbLine
10
-4.9015916661237311
20
1.7078737941169257
30
0
11
-4.2978824452375006
21
1.7078737941169253
31
0
0
LINE
5
252
100
AcDbEntity
8
0
100
AcDbLine
10
-4.2978824452374997
20
1.7078737941169253
30
0
11
-4.5101083592389655
21
0.49221441415781897
31
0
0
LINE
5
253
100
AcDbEntity
8
0
100
AcDbLine
10
-4.5101083592389664
20
0.49221441415781914
30
0
11
-3.3438993767713154
21
0.49221441415781819
31
0
0
LINE
5
254
100
AcDbEntity
8
0
100
AcDbLine
10
-3.3438993767713154
20
0.4922144141578183
30
0
11
-3.1337345913861823
21
1.7078737941169249
31
0
0
LINE
5
255
100
AcDbEntity
8
0
100
AcDbLine
10
-3.1337345913861814
20
1.7078737941169244
30
0
11
-2.5300253704999509
21
1.707873794116924
31
0
0
LINE
5
256
100
AcDbEntity
8
0
100
AcDbLine
10
-2.5300253704999509
20
1.7078737941169242
30
0
11
-3.0492569283460225
21
-1.2921263250923647
31
0
0
SPLINE
5
257
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.5121687725995625
20
-1.3333351883507283
30
0
10
-1.7429376915906514
20
-1.3292141232109578
30
0
10
-1.9232262448285664
20
-1.2447361621475723
30
0
0
SPLINE
5
258
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.9232262448285664
20
-1.2447361621475723
30
0
10
-2.1035147980664815
20
-1.1602582010841873
30
0
10
-2.2250808552716816
20
-1.0160274777031448
30
0
0
SPLINE
5
259
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-2.2250808552716816
20
-1.0160274777031448
30
0
10
-2.3466469124768818
20
-0.87179675432210224
30
0
10
-2.4022795037244404
20
-0.67708506914143818
30
0
0
SPLINE
5
260
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-2.4022795037244404
20
-0.67708506914143818
30
0
10
-2.4579109028791035
20
-0.48237338396077356
30
0
10
-2.4373067692731465
20
-0.25984599920277796
30
0
0
LINE
5
261
100
AcDbEntity
8
0
100
AcDbLine
10
-2.4373067692731465
20
-0.25984599920277796
30
0
11
-2.4290646389936055
21
-0.17742827268605432
31
0
0
SPLINE
5
262
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-2.4290646389936055
20
-0.17742827268605488
30
0
10
-2.4043394402478779
20
0.055401178874919244
30
0
10
-2.3136795834516133
20
0.26762649682993661
30
0
0
SPLINE
5
263
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-2.3136795834516133
20
0.26762649682993661
30
0
10
-2.2230209187482441
20
0.47985181478495342
30
0
10
-2.0736385659192647
20
0.63953593639368755
30
0
0
SPLINE
5
264
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-2.0736385659192647
20
0.63953593639368755
30
0
10
-1.9242574051831807
20
0.79922005800242135
30
0
10
-1.7202736214612568
20
0.89193970231051156
30
0
0
SPLINE
5
265
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.7202736214612568
20
0.89193970231051156
30
0
10
-1.516289837739333
20
0.98465949563021349
30
0
10
-1.2669767216657246
20
0.97847819594378138
30
0
0
SPLINE
5
266
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.2669767216657246
20
0.97847819594378138
30
0
10
-1.0320867375348652
20
0.97435742882723475
30
0
10
-0.86725128450141797
20
0.88266775278086296
30
0
0
SPLINE
5
267
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-0.86725128450141797
20
0.88266775278086296
30
0
10
-0.70241583146797071
20
0.79097822574610344
30
0
10
-0.60351503648506055
20
0.63953593639368611
30
0
0
SPLINE
5
268
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-0.60351503648506055
20
0.63953593639368611
30
0
10
-0.5046142415021504
20
0.48809364704126917
30
0
10
-0.46958697595344434
20
0.2913215783023318
30
0
0
SPLINE
5
269
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-0.46958697595344434
20
0.2913215783023318
30
0
10
-0.43455851831184278
20
0.094549509563394141
30
0
10
-0.45928490915046583
20
-0.11767580839162239
30
0
0
LINE
5
270
100
AcDbEntity
8
0
100
AcDbLine
10
-0.45928490915046583
20
-0.11767580839162239
30
0
11
-0.4984332398389425
21
-0.37110969158177742
31
0
0
LINE
5
271
100
AcDbEntity
8
0
100
AcDbLine
10
-0.49843323983894239
20
-0.37110969158177742
30
0
11
-1.8624438122724141
21
-0.37110969158177631
31
0
0
SPLINE
5
272
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.8624438122724141
20
-0.37110969158177631
30
0
10
-1.8686248139356221
20
-0.47001078458791035
30
0
10
-1.8459607438062275
20
-0.55654927822118061
30
0
0
SPLINE
5
273
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.8459607438062275
20
-0.55654927822118061
30
0
10
-1.8232954815839375
20
-0.64308777185445087
30
0
10
-1.7728151158307637
20
-0.7079915675735976
30
0
0
SPLINE
5
274
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.7728151158307637
20
-0.7079915675735976
30
0
10
-1.7223335579846943
20
-0.77289536329274489
30
0
10
-1.6440368966077412
20
-0.8110137257195027
30
0
0
SPLINE
5
275
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.6440368966077412
20
-0.8110137257195027
30
0
10
-1.5657402352307881
20
-0.84913179012303663
30
0
10
-1.4606584385846699
20
-0.85119232269292189
30
0
0
SPLINE
5
276
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.4606584385846699
20
-0.85119232269292189
30
0
10
-1.2937618569348897
20
-0.85737362237935377
30
0
10
-1.1536527947400654
20
-0.79040929409032179
30
0
0
SPLINE
5
277
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.1536527947400654
20
-0.79040929409032179
30
0
10
-1.0135425404523457
20
-0.72344496580129036
30
0
10
-0.90021861352668653
20
-0.60599997373586068
30
0
0
LINE
5
278
100
AcDbEntity
8
0
100
AcDbLine
10
-0.90021861352668653
20
-0.60599997373586068
30
0
11
-0.63648236551032933
21
-0.93773081632619304
31
0
0
SPLINE
5
279
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-0.63648236551032911
20
-0.93773081632619271
30
0
10
-0.70653689660774122
20
-1.0428132090187585
30
0
10
-0.80646885194526563
20
-1.1190493378258264
30
0
0
SPLINE
5
280
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-0.80646885194526563
20
-1.1190493378258264
30
0
10
-0.90639961518989454
20
-1.1952857646561181
30
0
10
-1.0228146389936055
20
-1.2437058958626306
30
0
0
SPLINE
5
281
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.0228146389936055
20
-1.2437058958626306
30
0
10
-1.1392296627973164
20
-1.2921263250923665
30
0
10
-1.2649167851422871
20
-1.31376102300649
30
0
0
SPLINE
5
282
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.2649167851422871
20
-1.31376102300649
30
0
10
-1.3906027153943623
20
-1.3353954228973897
30
0
10
-1.5121687725995625
20
-1.3333351883507283
30
0
0
SPLINE
5
283
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.2978829220746602
20
0.50045624641413378
30
0
10
-1.4050258473371113
20
0.50251662997240709
30
0
10
-1.4864136055921162
20
0.46336829928393053
30
0
0
SPLINE
5
284
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.4864136055921162
20
0.46336829928393053
30
0
10
-1.5678013638471211
20
0.42421996859545397
30
0
10
-1.6306449250196065
20
0.35725564030642226
30
0
0
SPLINE
5
285
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.6306449250196065
20
0.35725564030642226
30
0
10
-1.6934872940991963
20
0.29029131201739028
30
0
10
-1.7388178185437764
20
0.20478293565745043
30
0
0
SPLINE
5
286
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.7388178185437764
20
0.20478293565745043
30
0
10
-1.7841471508954609
20
0.11927470830912335
30
0
10
-1.819174416444167
20
0.032736512699076958
30
0
0
LINE
5
287
100
AcDbEntity
8
0
100
AcDbLine
10
-1.819174416444167
20
0.032736512699076958
30
0
11
-1.0176636055921162
21
0.032736512699076292
31
0
0
LINE
5
288
100
AcDbEntity
8
0
100
AcDbLine
10
-1.0176636055921162
20
0.032736512699075848
30
0
11
-1.0053004101728047
21
0.088368209876962811
31
0
0
SPLINE
5
289
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.0053004101728047
20
0.088368209876962811
30
0
10
-0.99087727823005567
20
0.17078593639368644
30
0
10
-1.0001493767713154
20
0.24496168164248128
30
0
0
SPLINE
5
290
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.0001493767713154
20
0.24496168164248128
30
0
10
-1.0094214753125752
20
0.31913757590288777
30
0
10
-1.0454799012158955
20
0.37476942209238667
30
0
0
SPLINE
5
291
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.0454799012158955
20
0.37476942209238667
30
0
10
-1.0815371350263203
20
0.43040126828188557
30
0
10
-1.1443806961988057
20
0.46336829928393025
30
0
0
SPLINE
5
292
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-1.1443806961988057
20
0.46336829928393025
30
0
10
-1.207224257371291
20
0.49633533028597493
30
0
10
-1.2978829220746602
20
0.50045624641413378
30
0
0
SPLINE
5
293
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.97066032133354296
20
-1.2921263250923687
30
0
10
0.95417606077446093
20
-1.2406153950310284
30
0
10
0.95005618772758593
20
-1.192194965801292
30
0
0
SPLINE
5
294
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.95005618772758593
20
-1.192194965801292
30
0
10
0.94593512258781542
20
-1.1437745365715557
30
0
10
0.94799505911125292
20
-1.0902030739403301
30
0
0
SPLINE
5
295
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.94799505911125292
20
-1.0902030739403301
30
0
10
0.83055006704582324
20
-1.2076483640289832
30
0
10
0.68940984449638476
20
-1.27255215974813
30
0
0
SPLINE
5
296
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.68940984449638476
20
-1.27255215974813
30
0
10
0.54826962194694628
20
-1.3374559554672767
30
0
10
0.37931429586662402
20
-1.3333351883507301
30
0
0
SPLINE
5
297
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.37931429586662402
20
-1.3333351883507301
30
0
10
0.23920404157890429
20
-1.3312746557808448
30
0
10
0.11660801611198535
20
-1.2838844928360504
30
0
0
SPLINE
5
298
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.11660801611198535
20
-1.2838844928360504
30
0
10
-0.0059880093549335989
20
-1.2364943298912567
30
0
10
-0.097677834412916997
20
-1.1509861025429291
30
0
0
SPLINE
5
299
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-0.097677834412916997
20
-1.1509861025429291
30
0
10
-0.1893676594709004
20
-1.0654778751946015
30
0
10
-0.24087799348579297
20
-0.94597235055928652
30
0
0
SPLINE
5
300
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-0.24087799348579297
20
-0.94597235055928652
30
0
10
-0.29238951959358106
20
-0.82646682592397158
30
0
10
-0.28620851793037305
20
-0.6822361025429291
30
0
0
SPLINE
5
301
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-0.28620851793037305
20
-0.6822361025429291
30
0
10
-0.28002632417426954
20
-0.53594484659200137
30
0
10
-0.23160708703742872
20
-0.42365088792806094
30
0
0
SPLINE
5
302
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-0.23160708703742872
20
-0.42365088792806094
30
0
10
-0.18318665780769239
20
-0.31135692926412051
30
0
10
-0.10385883607612501
20
-0.2268789682007355
30
0
0
SPLINE
5
303
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-0.10385883607612501
20
-0.2268789682007355
30
0
10
-0.02453220643745313
20
-0.14240100713735049
30
0
10
0.080549590208665034
20
-0.085739043674520898
30
0
0
SPLINE
5
304
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.080549590208665034
20
-0.085739043674520898
30
0
10
0.18563257894767871
20
-0.029076782188467432
30
0
10
0.30410753927482714
20
0.005950781383461945
30
0
0
SPLINE
5
305
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.30410753927482714
20
0.005950781383461945
30
0
10
0.42258249960197558
20
0.040978046932168
30
0
10
0.55033075056327929
20
0.056431743183083527
30
0
0
SPLINE
5
306
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.55033075056327929
20
0.056431743183083527
30
0
10
0.67807780943168749
20
0.0718848433875513
30
0
10
0.80170380316032519
20
0.0718848433875513
30
0
0
LINE
5
307
100
AcDbEntity
8
0
100
AcDbLine
10
0.80170380316032519
20
0.0718848433875513
30
0
11
1.0736821814562236
21
0.067763778247780571
31
0
0
LINE
5
308
100
AcDbEntity
8
0
100
AcDbLine
10
1.0736821814562236
20
0.067763778247780238
30
0
11
1.1025284453417219
21
0.2016924348258442
31
0
0
SPLINE
5
309
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
1.1025284453417217
20
0.2016924348258442
30
0
10
1.1148904486681377
20
0.26968702939981881
30
0
10
1.1087094470049297
20
0.33047005800241891
30
0
0
SPLINE
5
310
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
1.1087094470049297
20
0.33047005800241891
30
0
10
1.1025284453417217
20
0.39125293759340707
30
0
10
1.0747121497179424
20
0.43658271697992745
30
0
0
SPLINE
5
311
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
1.0747121497179424
20
0.43658271697992745
30
0
10
1.0468958540941631
20
0.48191234735483618
30
0
10
0.99641548834098925
20
0.50972819594377961
30
0
0
SPLINE
5
312
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.99641548834098925
20
0.50972819594377961
30
0
10
0.94593512258781542
20
0.53754419354433502
30
0
10
0.8696983977342998
20
0.53960457710260834
30
0
0
SPLINE
5
313
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.8696983977342998
20
0.53960457710260834
30
0
10
0.73370920858635058
20
0.54372549323076691
30
0
10
0.63892947874321093
20
0.47264039782518863
30
0
0
SPLINE
5
314
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.63892947874321093
20
0.47264039782518863
30
0
10
0.54414855680717578
20
0.40155515340799808
30
0
10
0.51736342153801074
20
0.26762664584154605
30
0
0
LINE
5
315
100
AcDbEntity
8
0
100
AcDbLine
10
0.51736342153801074
20
0.26762664584154605
30
0
11
-0.0657416657422627
21
0.2655661132716613
31
0
0
SPLINE
5
316
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
-0.0657416657422627
20
0.26556611327166135
30
0
10
-0.057499535462721685
20
0.45100569991106565
30
0
10
0.035220257856980464
20
0.58699474004740293
30
0
0
SPLINE
5
317
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.035220257856980464
20
0.58699474004740293
30
0
10
0.12794005117668261
20
0.72298378018373999
30
0
10
0.26908027372612109
20
0.81158265737528357
30
0
0
SPLINE
5
318
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.26908027372612109
20
0.81158265737528357
30
0
10
0.41022049627555957
20
0.90018153456682681
30
0
10
0.58123695097221484
20
0.940360131540246
30
0
0
SPLINE
5
319
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.58123695097221484
20
0.940360131540246
30
0
10
0.75225340566887011
20
0.98053872851366486
30
0
10
0.91708885870231738
20
0.97847834495539154
30
0
0
SPLINE
5
320
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.91708885870231738
20
0.97847834495539154
30
0
10
1.0922263785387432
20
0.97435742882723275
30
0
10
1.2416075392748271
20
0.92078596619600717
30
0
0
SPLINE
5
321
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
1.2416075392748271
20
0.92078596619600717
30
0
10
1.3909898921038066
20
0.86721450356478136
30
0
10
1.4960716887499248
20
0.76728329328531664
30
0
0
SPLINE
5
322
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
1.4960716887499248
20
0.76728329328531664
30
0
10
1.6011546774889385
20
0.66735193399423998
30
0
10
1.6547261401201641
20
0.52312106160158556
30
0
0
SPLINE
5
323
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
1.6547261401201641
20
0.52312106160158556
30
0
10
1.7082976027513896
20
0.37889033822054302
30
0
10
1.6897534056688701
20
0.19345090059275039
30
0
0
LINE
5
324
100
AcDbEntity
8
0
100
AcDbLine
10
1.6897534056688701
20
0.19345090059275039
30
0
11
1.5372811480547339
21
-0.75229122968679052
31
0
0
SPLINE
5
325
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
1.5372811480547344
20
-0.75229122968679007
30
0
10
1.5269790812517559
20
-0.81410422655110892
30
0
10
1.5187369509722148
20
-0.8779780540085369
30
0
0
SPLINE
5
326
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
1.5187369509722148
20
-0.8779780540085369
30
0
10
1.5104948206926738
20
-0.941851583442741
30
0
10
1.5084348841692363
20
-1.0057251128769451
30
0
0
SPLINE
5
327
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
1.5084348841692363
20
-1.0057251128769451
30
0
10
1.5063737555529033
20
-1.0695989403343731
30
0
10
1.5135859175707256
20
-1.1324422034836346
30
0
0
SPLINE
5
328
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
1.5135859175707256
20
-1.1324422034836346
30
0
10
1.5207980795885478
20
-1.1952857646561199
30
0
10
1.5434621497179424
20
-1.2529779944038921
30
0
0
LINE
5
329
100
AcDbEntity
8
0
100
AcDbLine
10
1.5434621497179424
20
-1.2529779944038921
30
0
11
1.5414022131945049
21
-1.2921263250923687
31
0
0
LINE
5
330
100
AcDbEntity
8
0
100
AcDbLine
10
1.5414022131945049
20
-1.2921263250923687
30
0
11
0.97066032133354296
21
-1.2921263250923682
31
0
0
SPLINE
5
331
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.52354442320121874
20
-0.88209882112508298
30
0
10
0.65541254720939746
20
-0.88621958824162961
30
0
10
0.76770650587333789
20
-0.82440659137731076
30
0
0
SPLINE
5
332
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.76770650587333789
20
-0.82440659137731076
30
0
10
0.88000046453727832
20
-0.76259329648976804
30
0
10
0.96241819105400195
20
-0.66369220348363456
30
0
0
LINE
5
333
100
AcDbEntity
8
0
100
AcDbLine
10
0.96241819105400195
20
-0.66369220348363456
30
0
11
1.0345338507677473
21
-0.278389898262077
31
0
0
LINE
5
334
100
AcDbEntity
8
0
100
AcDbLine
10
1.0345338507677471
20
-0.27838989826207694
30
0
11
0.83261000356926074
21
-0.2763296637154154
31
0
0
SPLINE
5
335
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.83261000356926074
20
-0.27632966371541501
30
0
10
0.7440112753893291
20
-0.27838989826207639
30
0
10
0.65541254720939746
20
-0.29796436162953854
30
0
0
SPLINE
5
336
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.65541254720939746
20
-0.29796436162953854
30
0
10
0.56681381902946582
20
-0.31753852697377682
30
0
10
0.49366819105400195
20
-0.36080762477880002
30
0
0
SPLINE
5
337
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.49366819105400195
20
-0.36080762477880002
30
0
10
0.42052256307853808
20
-0.40407672258382321
30
0
10
0.3690122290636455
20
-0.47207131715779782
30
0
0
SPLINE
5
338
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.3690122290636455
20
-0.47207131715779782
30
0
10
0.31750070295585742
20
-0.54006591173177243
30
0
10
0.30513750753654589
20
-0.63896700473790646
30
0
0
SPLINE
5
339
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.30513750753654589
20
-0.63896700473790646
30
0
10
0.28865443907035937
20
-0.75023069711690427
30
0
10
0.35149800024284472
20
-0.81513449283605099
30
0
0
SPLINE
5
340
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
0.35149800024284472
20
-0.81513449283605099
30
0
10
0.41434156141533007
20
-0.88003828855519772
30
0
10
0.52354442320121874
20
-0.88209882112508298
30
0
0
LINE
5
341
100
AcDbEntity
8
0
100
AcDbLine
10
3.0805514975573001
20
1.4853464093589235
30
0
11
2.983710639097827
21
0.93726948169702784
31
0
0
LINE
5
342
100
AcDbEntity
8
0
100
AcDbLine
10
2.9837106390978252
20
0.93726948169702817
30
0
11
3.3545898123766338
21
0.93726948169702784
31
0
0
LINE
5
343
100
AcDbEntity
8
0
100
AcDbLine
10
3.3545898123766338
20
0.93726948169702784
30
0
11
3.2783542796160132
21
0.50045624641413
31
0
0
LINE
5
344
100
AcDbEntity
8
0
100
AcDbLine
10
3.2783542796160137
20
0.50045624641412989
30
0
11
2.9074751063372051
21
0.50045624641413022
31
0
0
LINE
5
345
100
AcDbEntity
8
0
100
AcDbLine
10
2.9074751063372051
20
0.50045624641413022
30
0
11
2.7179144545580298
21
-0.61630204053884208
31
0
0
SPLINE
5
346
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
2.7179144545580303
20
-0.61630204053884197
30
0
10
2.7055512591387187
20
-0.72138443323140788
30
0
10
2.7343975230242168
20
-0.77701642843251872
30
0
0
SPLINE
5
347
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
2.7343975230242168
20
-0.77701642843251872
30
0
10
2.7632437869097148
20
-0.83264842363362956
30
0
10
2.8745077773119365
20
-0.83676919075017619
30
0
0
SPLINE
5
348
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
2.8745077773119365
20
-0.83676919075017619
30
0
10
2.9198371096636211
20
-0.84088995786672338
30
0
10
2.9631065054918682
20
-0.83573892446523412
30
0
0
SPLINE
5
349
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
2.9631065054918682
20
-0.83573892446523412
30
0
10
3.0063759013201152
20
-0.83058789106374487
30
0
10
3.0517052336717998
20
-0.82646682592397436
30
0
0
LINE
5
350
100
AcDbEntity
8
0
100
AcDbLine
10
3.0517052336717998
20
-0.82646682592397436
30
0
11
3.0104969664598853
21
-1.2818242582893919
31
0
0
SPLINE
5
351
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
3.0104969664598857
20
-1.2818242582893919
30
0
10
2.9301391764665996
20
-1.3086099896050047
30
0
10
2.8466914816881572
20
-1.3199423226929252
30
0
0
SPLINE
5
352
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
2.8466914816881572
20
-1.3199423226929252
30
0
10
2.7632437869097148
20
-1.3312746557808464
30
0
10
2.6767049952532207
20
-1.3292141232109611
30
0
0
SPLINE
5
353
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
2.6767049952532207
20
-1.3292141232109611
30
0
10
2.5283538027788555
20
-1.3271538886642997
30
0
10
2.4201809092546855
20
-1.2787334594345634
30
0
0
SPLINE
5
354
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
2.4201809092546855
20
-1.2787334594345634
30
0
10
2.3120080157305156
20
-1.2303130302048271
30
0
10
2.2450433894182598
20
-1.1437745365715568
30
0
0
SPLINE
5
355
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
2.2450433894182598
20
-1.1437745365715568
30
0
10
2.1780787631060039
20
-1.0572363409615098
30
0
10
2.1502624674822246
20
-0.93876078458791368
30
0
0
SPLINE
5
356
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
2.1502624674822246
20
-0.93876078458791368
30
0
10
2.1224473639513408
20
-0.82028552623754136
30
0
10
2.1348093672777568
20
-0.67605480285649888
30
0
0
LINE
5
357
100
AcDbEntity
8
0
100
AcDbLine
10
2.1348093672777568
20
-0.67605480285649888
30
0
11
2.3264311476732655
21
0.50045624641413089
31
0
0
LINE
5
358
100
AcDbEntity
8
0
100
AcDbLine
10
2.3264311476732646
20
0.50045624641413067
30
0
11
2.0111833735491191
21
0.500456246414131
31
0
0
LINE
5
359
100
AcDbEntity
8
0
100
AcDbLine
10
2.0111833735491191
20
0.500456246414131
30
0
11
2.0874200984026352
21
0.93726948169702895
31
0
0
LINE
5
360
100
AcDbEntity
8
0
100
AcDbLine
10
2.0874200984026348
20
0.93726948169702862
30
0
11
2.4026666804338848
21
0.93726948169702839
31
0
0
LINE
5
361
100
AcDbEntity
8
0
100
AcDbLine
10
2.4026666804338848
20
0.93726948169702839
30
0
11
2.4974476023699204
21
1.4853464093589241
31
0
0
LINE
5
362
100
AcDbEntity
8
0
100
AcDbLine
10
2.4974476023699221
20
1.4853464093589241
30
0
11
3.0805514975573001
21
1.4853464093589235
31
0
0
SPLINE
5
363
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.3394790812517563
20
-1.3333351883507332
30
0
10
4.1087101622606674
20
-1.3292141232109622
30
0
10
3.9284216090227519
20
-1.2447361621475772
30
0
0
SPLINE
5
364
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
3.9284216090227519
20
-1.2447361621475772
30
0
10
3.7481330557848369
20
-1.1602582010841922
30
0
10
3.6265669985796367
20
-1.0160274777031497
30
0
0
SPLINE
5
365
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
3.6265669985796367
20
-1.0160274777031497
30
0
10
3.5050009413744365
20
-0.87179675432210668
30
0
10
3.4493683501268779
20
-0.67708506914144262
30
0
0
SPLINE
5
366
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
3.4493683501268779
20
-0.67708506914144262
30
0
10
3.3937369509722148
20
-0.48237338396077856
30
0
10
3.4143410845781719
20
-0.25984599920278295
30
0
0
LINE
5
367
100
AcDbEntity
8
0
100
AcDbLine
10
3.4143410845781719
20
-0.25984599920278295
30
0
11
3.4225832148577129
21
-0.17742827268605932
31
0
0
SPLINE
5
368
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
3.4225832148577129
20
-0.17742827268605932
30
0
10
3.4473084136034404
20
0.055401178874914803
30
0
10
3.5379682703997051
20
0.26762649682993161
30
0
0
SPLINE
5
369
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
3.5379682703997051
20
0.26762649682993161
30
0
10
3.6286269351030742
20
0.4798518147849487
30
0
10
3.7780092879320537
20
0.63953593639368256
30
0
0
SPLINE
5
370
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
3.7780092879320537
20
0.63953593639368256
30
0
10
3.9273904486681377
20
0.79922005800241669
30
0
10
4.131374232390062
20
0.89193970231050668
30
0
0
SPLINE
5
371
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.131374232390062
20
0.89193970231050668
30
0
10
4.3353580161119858
20
0.98465949563020883
30
0
10
4.5846711321855942
20
0.97847819594377661
30
0
0
SPLINE
5
372
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.5846711321855942
20
0.97847819594377661
30
0
10
4.8195611163164536
20
0.97435742882722964
30
0
10
4.9843965693499008
20
0.88266775278085818
30
0
0
SPLINE
5
373
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.9843965693499008
20
0.88266775278085818
30
0
10
5.1492320223833481
20
0.79097822574609844
30
0
10
5.2481328173662583
20
0.63953593639368145
30
0
0
SPLINE
5
374
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
5.2481328173662583
20
0.63953593639368145
30
0
10
5.3470348044420657
20
0.48809364704126446
30
0
10
5.3820608778978762
20
0.2913215783023268
30
0
0
SPLINE
5
375
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
5.3820608778978762
20
0.2913215783023268
30
0
10
5.4170893355394778
20
0.0945495095633897
30
0
10
5.3923629447008548
20
-0.11767580839162739
30
0
0
LINE
5
376
100
AcDbEntity
8
0
100
AcDbLine
10
5.3923629447008548
20
-0.11767580839162739
30
0
11
5.3532146140123782
21
-0.37110969158178242
31
0
0
LINE
5
377
100
AcDbEntity
8
0
100
AcDbLine
10
5.3532146140123782
20
-0.37110969158178242
30
0
11
3.9892040415789065
21
-0.37110969158178131
31
0
0
SPLINE
5
378
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
3.9892040415789043
20
-0.37110969158178131
30
0
10
3.9830230399156963
20
-0.47001078458791534
30
0
10
4.0056871100450913
20
-0.55654927822118561
30
0
0
SPLINE
5
379
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.0056871100450913
20
-0.55654927822118561
30
0
10
4.0283523722673813
20
-0.64308777185445587
30
0
10
4.0788327380205551
20
-0.7079915675736026
30
0
0
SPLINE
5
380
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.0788327380205551
20
-0.7079915675736026
30
0
10
4.1293142958666245
20
-0.77289536329274933
30
0
10
4.2076109572435776
20
-0.81101372571950714
30
0
0
SPLINE
5
381
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.2076109572435776
20
-0.81101372571950714
30
0
10
4.2859076186205307
20
-0.84913179012304163
30
0
10
4.3909894152666489
20
-0.85119232269292688
30
0
0
SPLINE
5
382
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.3909894152666489
20
-0.85119232269292688
30
0
10
4.5578859969164291
20
-0.85737362237935877
30
0
10
4.6979950591112534
20
-0.79040929409032679
30
0
0
SPLINE
5
383
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.6979950591112534
20
-0.79040929409032679
30
0
10
4.8381053133989731
20
-0.7234449658012948
30
0
10
4.9514292403246323
20
-0.60599997373586567
30
0
0
LINE
5
384
100
AcDbEntity
8
0
100
AcDbLine
10
4.9514292403246323
20
-0.60599997373586567
30
0
11
5.2151654883409897
21
-0.93773081632619792
31
0
0
SPLINE
5
385
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
5.2151654883409897
20
-0.9377308163261977
30
0
10
5.1451109572435776
20
-1.0428132090187636
30
0
10
5.0451790019060532
20
-1.1190493378258315
30
0
0
SPLINE
5
386
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
5.0451790019060532
20
-1.1190493378258315
30
0
10
4.9452482386614243
20
-1.1952857646561232
30
0
10
4.8288332148577133
20
-1.243705895862635
30
0
0
SPLINE
5
387
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.8288332148577133
20
-1.243705895862635
30
0
10
4.7124181910540024
20
-1.2921263250923714
30
0
10
4.5867310687090317
20
-1.3137610230064949
30
0
0
SPLINE
5
388
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.5867310687090317
20
-1.3137610230064949
30
0
10
4.4610451384569565
20
-1.3353954228973945
30
0
10
4.3394790812517563
20
-1.3333351883507332
30
0
0
SPLINE
5
389
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.5537649317766586
20
0.50045624641412878
30
0
10
4.4466220065142075
20
0.5025166299724021
30
0
10
4.3652342482592026
20
0.46336829928392581
30
0
0
SPLINE
5
390
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.3652342482592026
20
0.46336829928392581
30
0
10
4.2838464900041977
20
0.42421996859544925
30
0
10
4.2210029288317124
20
0.35725564030641727
30
0
0
SPLINE
5
391
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.2210029288317124
20
0.35725564030641727
30
0
10
4.1581605597521225
20
0.29029131201738528
30
0
10
4.1128300353075424
20
0.20478293565744599
30
0
0
SPLINE
5
392
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.1128300353075424
20
0.20478293565744599
30
0
10
4.0675007029558579
20
0.11927470830911835
30
0
10
4.0324734374071518
20
0.032736512699071962
30
0
0
LINE
5
393
100
AcDbEntity
8
0
100
AcDbLine
10
4.0324734374071518
20
0.032736512699071962
30
0
11
4.8339842482592026
21
0.032736512699071296
31
0
0
LINE
5
394
100
AcDbEntity
8
0
100
AcDbLine
10
4.8339842482592026
20
0.032736512699071407
30
0
11
4.8463474436785141
21
0.08836820987695837
31
0
0
SPLINE
5
395
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.8463474436785141
20
0.08836820987695837
30
0
10
4.8607705756212631
20
0.170785936393682
30
0
10
4.8514984770800034
20
0.24496168164247628
30
0
0
SPLINE
5
396
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.8514984770800034
20
0.24496168164247628
30
0
10
4.8422263785387436
20
0.31913757590288278
30
0
10
4.8061679526354233
20
0.37476942209238168
30
0
0
SPLINE
5
397
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.8061679526354233
20
0.37476942209238168
30
0
10
4.7701107188249985
20
0.43040126828188058
30
0
10
4.7072671576525131
20
0.46336829928392553
30
0
0
SPLINE
5
398
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
4.7072671576525131
20
0.46336829928392553
30
0
10
4.6444235964800278
20
0.49633533028597021
30
0
10
4.5537649317766586
20
0.50045624641412878
30
0
0
SPLINE
5
399
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
7.0654414816881594
20
0.3788903382205383
30
0
10
7.0180534049059329
20
0.38713202146524378
30
0
10
6.9686006232286868
20
0.39331332115167567
30
0
0
SPLINE
5
400
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
6.9686006232286868
20
0.39331332115167567
30
0
10
6.9191502257372317
20
0.39949462083810755
30
0
10
6.8696998282457766
20
0.39949462083810755
30
0
0
SPLINE
5
401
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
6.8696998282457766
20
0.39949462083810755
30
0
10
6.7151664420153079
20
0.40361553696626612
30
0
10
6.5925716086412844
20
0.34695342449182487
30
0
0
SPLINE
5
402
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
6.5925716086412844
20
0.34695342449182487
30
0
10
6.46997439108147
20
0.29029146102899528
30
0
10
6.3772557898546633
20
0.16666516927713371
30
0
0
LINE
5
403
100
AcDbEntity
8
0
100
AcDbLine
10
6.3772557898546633
20
0.16666516927713371
30
0
11
6.1197017355944086
21
-1.2921263250923729
31
0
0
LINE
5
404
100
AcDbEntity
8
0
100
AcDbLine
10
6.119701735594405
20
-1.2921263250923727
30
0
11
5.5386565848375691
21
-1.292126325092372
31
0
0
LINE
5
405
100
AcDbEntity
8
0
100
AcDbLine
10
5.5386565848375691
20
-1.292126325092372
30
0
11
5.9260200186754606
21
0.93726948169702595
31
0
0
LINE
5
406
100
AcDbEntity
8
0
100
AcDbLine
10
5.9260200186754641
20
0.93726948169702562
30
0
11
6.4720367117906985
21
0.93932986525529849
31
0
0
LINE
5
407
100
AcDbEntity
8
0
100
AcDbLine
10
6.4720367117906985
20
0.93932986525529838
30
0
11
6.4184640570665774
21
0.66735178498262382
31
0
0
SPLINE
5
408
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
6.4184640570665774
20
0.66735178498262382
30
0
10
6.4637945815111575
20
0.73534637955659843
30
0
10
6.5183948203112063
20
0.79406887558931327
30
0
0
SPLINE
5
409
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
6.5183948203112063
20
0.79406887558931327
30
0
10
6.5729974432970462
20
0.85279137162202812
30
0
10
6.6368697806383548
20
0.89503050116533256
30
0
0
SPLINE
5
410
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
6.6368697806383548
20
0.89503050116533256
30
0
10
6.7007445021654544
20
0.93726948169702506
30
0
10
6.7759512587572512
20
0.95993429688447907
30
0
0
SPLINE
5
411
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
6.7759512587572512
20
0.95993429688447907
30
0
10
6.8511556311632571
20
0.98259911207193329
30
0
10
6.9376944228197512
20
0.98259911207193329
30
0
0
SPLINE
5
412
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
6.9376944228197512
20
0.98259911207193329
30
0
10
6.9912670775438723
20
0.98259911207193329
30
0
10
7.0407174750353274
20
0.97435742882722809
30
0
0
SPLINE
5
413
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
7.0407174750353274
20
0.97435742882722809
30
0
10
7.0901678725267825
20
0.96611559657091062
30
0
10
7.1396182700182376
20
0.95375299719804685
30
0
0
LINE
5
414
100
AcDbEntity
8
0
100
AcDbLine
10
7.1396182700182376
20
0.95375299719804685
30
0
11
7.0654414816881594
21
0.37889033822053836
31
0
0
LINE
5
415
100
AcDbEntity
8
0
100
AcDbLine
10
9.4164036437059817
20
-0.19391193719869859
30
0
11
8.9260171576525149
21
-0.19391193719869818
31
0
0
LINE
5
416
100
AcDbEntity
8
0
100
AcDbLine
10
8.9260171576525149
20
-0.19391193719869859
30
0
11
8.7343977614427963
21
-1.2921263250923753
31
0
0
LINE
5
417
100
AcDbEntity
8
0
100
AcDbLine
10
8.7343977614427928
20
-1.2921263250923749
30
0
11
8.1306885405565623
21
-1.2921263250923742
31
0
0
LINE
5
418
100
AcDbEntity
8
0
100
AcDbLine
10
8.1306885405565623
20
-1.2921263250923742
30
0
11
8.6519788428331772
21
1.7078737941169146
31
0
0
LINE
5
419
100
AcDbEntity
8
0
100
AcDbLine
10
8.651978842833179
20
1.7078737941169146
30
0
11
9.6966217680956301
21
1.7058132615470287
31
0
0
SPLINE
5
420
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
9.6966217680956301
20
1.7058132615470285
30
0
10
9.9026678725267825
20
1.7016924944304819
30
0
10
10.083985201933521
20
1.6470907655143137
30
0
0
SPLINE
5
421
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
10.083985201933521
20
1.6470907655143137
30
0
10
10.26530491552605
20
1.592489036598145
30
0
10
10.397171847441333
20
1.4843161430739749
30
0
0
SPLINE
5
422
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
10.397171847441333
20
1.4843161430739749
30
0
10
10.529041163542407
20
1.3761429515265811
30
0
10
10.598065726378101
20
1.210277530231415
30
0
0
SPLINE
5
423
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
10.598065726378101
20
1.210277530231415
30
0
10
10.667090289213794
20
1.044412108936249
30
0
10
10.650606028654712
20
0.81776380805009485
30
0
0
SPLINE
5
424
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
10.650606028654712
20
0.81776380805009485
30
0
10
10.627941958525318
20
0.49633518127435328
30
0
10
10.456924311735767
20
0.28514012960427881
30
0
0
SPLINE
5
425
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
10.456924311735767
20
0.28514012960427881
30
0
10
10.285909049132007
20
0.073945077934204351
30
0
10
9.9912666007067141
20
-0.041439679584563405
30
0
0
LINE
5
426
100
AcDbEntity
8
0
100
AcDbLine
10
9.9912666007067141
20
-0.041439679584563405
30
0
11
10.413656108000415
21
-1.2591592940903318
31
0
0
LINE
5
427
100
AcDbEntity
8
0
100
AcDbLine
10
10.41365610800041
20
-1.2591592940903318
30
0
11
10.41365610800041
21
-1.2921263250923765
31
0
0
LINE
5
428
100
AcDbEntity
8
0
100
AcDbLine
10
10.41365610800041
20
-1.2921263250923765
30
0
11
9.7707985564257029
21
-1.2921263250923758
31
0
0
LINE
5
429
100
AcDbEntity
8
0
100
AcDbLine
10
9.7707985564257029
20
-1.2921263250923758
30
0
11
9.4164036437059782
21
-0.19391193719869887
31
0
0
LINE
5
430
100
AcDbEntity
8
0
100
AcDbLine
10
9.0125559493090091
20
0.30677482751840374
30
0
11
9.4617317839647708
21
0.30265391139024478
31
0
0
SPLINE
5
431
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
9.4617317839647708
20
0.30265391139024461
30
0
10
9.572996966459888
20
0.30471429494851793
30
0
10
9.6708677931810794
20
0.33459067610734666
30
0
0
SPLINE
5
432
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
9.6708677931810794
20
0.33459067610734666
30
0
10
9.7687386199022708
20
0.36446705726617512
30
0
10
9.8460053130175051
20
0.4231897023105019
30
0
0
SPLINE
5
433
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
9.8460053130175051
20
0.4231897023105019
30
0
10
9.9232720061327395
20
0.48191219834321675
30
0
10
9.9747823401476321
20
0.56845069197648701
30
0
0
SPLINE
5
434
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
9.9747823401476321
20
0.56845069197648701
30
0
10
10.026292674162525
20
0.65498903659814534
30
0
10
10.042776934721607
20
0.77037364510530137
30
0
0
SPLINE
5
435
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
10.042776934721607
20
0.77037364510530137
30
0
10
10.071623198607105
20
0.97023636368745469
30
0
10
9.9789022131945071
20
1.0835605886363382
30
0
0
SPLINE
5
436
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
9.9789022131945071
20
1.0835605886363382
30
0
10
9.8861836119677005
20
1.1968846645736093
30
0
10
9.6842597647692141
20
1.2051264968299267
30
0
0
LINE
5
437
100
AcDbEntity
8
0
100
AcDbLine
10
9.6842597647692141
20
1.2051264968299267
30
0
11
9.1691492720629153
21
1.2071868803882004
31
0
0
LINE
5
438
100
AcDbEntity
8
0
100
AcDbLine
10
9.1691492720629153
20
1.2071868803882002
30
0
11
9.0125559493090073
21
0.30677482751840357
31
0
0
SPLINE
5
439
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
13.160221449949873
20
-0.91300531955725295
30
0
10
13.0633805914904
20
-1.0366319093323384
30
0
10
12.923269145109785
20
-1.1190493378258382
30
0
0
SPLINE
5
440
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
12.923269145109785
20
-1.1190493378258382
30
0
10
12.783160082914961
20
-1.2014670643425611
30
0
10
12.624506823637617
20
-1.2488572272873548
30
0
0
SPLINE
5
441
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
12.624506823637617
20
-1.2488572272873548
30
0
10
12.465851180174482
20
-1.2962470922089246
30
0
10
12.301018111326826
20
-1.3147912892914442
30
0
0
SPLINE
5
442
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
12.301018111326826
20
-1.3147912892914442
30
0
10
12.136182658293379
20
-1.3333351883507394
30
0
10
11.989891402342451
20
-1.3312746557808541
30
0
0
SPLINE
5
443
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.989891402342451
20
-1.3312746557808541
30
0
10
11.78384768209709
20
-1.3292141232109689
30
0
10
11.620042197325361
20
-1.2725521597481393
30
0
0
SPLINE
5
444
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.620042197325361
20
-1.2725521597481393
30
0
10
11.456236712553633
20
-1.2158901962853093
30
0
10
11.331579558470381
20
-1.1159588369942326
30
0
0
SPLINE
5
445
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.331579558470381
20
-1.1159588369942326
30
0
10
11.20692478857292
20
-1.0160274777031559
30
0
10
11.122445933439863
20
-0.88106855484014923
30
0
0
SPLINE
5
446
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.122445933439863
20
-0.88106855484014923
30
0
10
11.037967078306806
20
-0.74610963197714264
30
0
10
10.98954664907707
20
-0.58539554210668976
30
0
0
SPLINE
5
447
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
10.98954664907707
20
-0.58539554210668976
30
0
10
10.941126219847339
20
-0.424681154213013
30
0
10
10.929794184782642
20
-0.24645313354498322
30
0
0
SPLINE
5
448
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
10.929794184782642
20
-0.24645313354498322
30
0
10
10.918462149717945
20
-0.068225112876953431
30
0
10
10.941126219847339
20
0.11721417573922699
30
0
0
LINE
5
449
100
AcDbEntity
8
0
100
AcDbLine
10
10.941126219847339
20
0.11721417573922699
30
0
11
10.965852610685962
21
0.29441222814553797
31
0
0
SPLINE
5
450
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
10.965852610685962
20
0.2944122281455383
30
0
10
10.992638938048023
20
0.4880934980296478
30
0
10
11.050331465819019
20
0.6714727011107785
30
0
0
SPLINE
5
451
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.050331465819019
20
0.6714727011107785
30
0
10
11.108021609404224
20
0.85485175518029755
30
0
10
11.196620337584156
20
1.0176265266322475
30
0
0
SPLINE
5
452
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.196620337584156
20
1.0176265266322475
30
0
10
11.285221449949878
20
1.1804012980841976
30
0
10
11.403696410277027
20
1.3163901892089227
30
0
0
SPLINE
5
453
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.403696410277027
20
1.3163901892089227
30
0
10
11.522171370604175
20
1.4523793783568719
30
0
10
11.672582499601978
20
1.5502502050780631
30
0
0
SPLINE
5
454
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.672582499601978
20
1.5502502050780631
30
0
10
11.822996012785572
20
1.6481210317992545
30
0
10
12.00431334219231
20
1.7006622281455375
30
0
0
SPLINE
5
455
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
12.00431334219231
20
1.7006622281455375
30
0
10
12.185633055784839
20
1.7532034244918202
30
0
10
12.397858969786304
20
1.7490826573752734
30
0
0
SPLINE
5
456
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
12.397858969786304
20
1.7490826573752734
30
0
10
12.638928763487476
20
1.7449618902587267
30
0
10
12.82436835012688
20
1.675937029399809
30
0
0
SPLINE
5
457
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
12.82436835012688
20
1.675937029399809
30
0
10
13.009807936766284
20
1.6069121685408916
30
0
10
13.13961493215813
20
1.4791651096724834
30
0
0
SPLINE
5
458
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
13.13961493215813
20
1.4791651096724834
30
0
10
13.269424311735767
20
1.3514177527808513
30
0
10
13.343598715880054
20
1.1680386987113323
30
0
0
SPLINE
5
459
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
13.343598715880054
20
1.1680386987113323
30
0
10
13.417775504210132
20
0.98465949563020105
30
0
10
13.436319701292652
20
0.74976936248772974
30
0
0
LINE
5
460
100
AcDbEntity
8
0
100
AcDbLine
10
13.436319701292652
20
0.74976936248772974
30
0
11
12.855274550535816
21
0.75182974604600339
31
0
0
SPLINE
5
461
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
12.855274550535816
20
0.7518297460460035
30
0
10
12.844972483732837
20
0.86309358743661324
30
0
10
12.816126219847339
20
0.95375284818643014
30
0
0
SPLINE
5
462
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
12.816126219847339
20
0.95375284818643014
30
0
10
12.787279955961841
20
1.044412257947859
30
0
10
12.732679717161792
20
1.1093160536670057
30
0
0
SPLINE
5
463
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
12.732679717161792
20
1.1093160536670057
30
0
10
12.678077094175952
20
1.1742199983977648
30
0
10
12.593600623228687
20
1.2102775302314135
30
0
0
SPLINE
5
464
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
12.593600623228687
20
1.2102775302314135
30
0
10
12.50912176809563
20
1.246335360088286
30
0
10
12.389616839506763
20
1.2504561272048327
30
0
0
SPLINE
5
465
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
12.389616839506763
20
1.2504561272048327
30
0
10
12.257747523405689
20
1.2545771923446034
30
0
10
12.150604598143238
20
1.2174890962027882
30
0
0
SPLINE
5
466
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
12.150604598143238
20
1.2174890962027882
30
0
10
12.043461672880786
20
1.1804012980841969
30
0
10
11.958985201933521
20
1.1113765862368918
30
0
0
SPLINE
5
467
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.958985201933521
20
1.1113765862368918
30
0
10
11.874506346800464
20
1.0423518743895865
30
0
10
11.810631625273365
20
0.94860181478494177
30
0
0
SPLINE
5
468
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.810631625273365
20
0.94860181478494177
30
0
10
11.746759287932056
20
0.85485175518029699
30
0
10
11.700398795225757
20
0.74667871264451535
30
0
0
SPLINE
5
469
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.700398795225757
20
0.74667871264451535
30
0
10
11.654038302519458
20
0.63850567010873349
30
0
10
11.62519203863396
20
0.52415117887490781
30
0
0
SPLINE
5
470
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.62519203863396
20
0.52415117887490781
30
0
10
11.596345774748462
20
0.40979683665269412
30
0
10
11.579863898375171
20
0.29853314427369632
30
0
0
LINE
5
471
100
AcDbEntity
8
0
100
AcDbLine
10
11.579863898375171
20
0.29853314427369632
30
0
11
11.555137507536548
21
0.11515394119256536
31
0
0
SPLINE
5
472
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.555137507536548
20
0.11515394119256506
30
0
10
11.542775504210132
20
0.016252848186431024
30
0
10
11.537623278715747
20
-0.091920045337738898
30
0
0
SPLINE
5
473
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.537623278715747
20
-0.091920045337738898
30
0
10
11.532473437407154
20
-0.20009323688513214
30
0
10
11.542775504210132
20
-0.30517562957769861
30
0
0
SPLINE
5
474
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.542775504210132
20
-0.30517562957769861
30
0
10
11.553077571013111
20
-0.41025802227026453
30
0
10
11.583983771422041
20
-0.50503834815985194
30
0
0
SPLINE
5
475
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.583983771422041
20
-0.50503834815985194
30
0
10
11.614889971830976
20
-0.59981867404943934
30
0
10
11.672582499601972
20
-0.67193403573996058
30
0
0
SPLINE
5
476
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.672582499601972
20
-0.67193403573996058
30
0
10
11.730275027372969
20
-0.74404939743048182
30
0
10
11.819903723814619
20
-0.78834876152044764
30
0
0
SPLINE
5
477
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
11.819903723814619
20
-0.78834876152044764
30
0
10
11.90953480444206
20
-0.83264842363363734
30
0
10
12.039341799833906
20
-0.83470865818029871
30
0
0
SPLINE
5
478
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
12.039341799833906
20
-0.83470865818029871
30
0
10
12.181510798552168
20
-0.83882942529684534
30
0
10
12.313380114653242
20
-0.8058626923180251
30
0
0
SPLINE
5
479
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
12.313380114653242
20
-0.8058626923180251
30
0
10
12.445247046568525
20
-0.77289536329275654
30
0
10
12.562692038633955
20
-0.68841740222937153
30
0
0
LINE
5
480
100
AcDbEntity
8
0
100
AcDbLine
10
12.562692038633955
20
-0.68841740222937153
30
0
11
12.663655154326094
21
-0.17124727102285914
31
0
0
LINE
5
481
100
AcDbEntity
8
0
100
AcDbLine
10
12.663655154326099
20
-0.17124727102285908
30
0
11
12.115578524687427
21
-0.17124727102285864
31
0
0
LINE
5
482
100
AcDbEntity
8
0
100
AcDbLine
10
12.115578524687427
20
-0.17124727102285853
30
0
11
12.195935122587818
21
0.28411001233094696
31
0
0
LINE
5
483
100
AcDbEntity
8
0
100
AcDbLine
10
12.195935122587818
20
0.28411001233094674
30
0
11
13.341538779356616
21
0.28411001233094579
31
0
0
LINE
5
484
100
AcDbEntity
8
0
100
AcDbLine
10
13.341538779356616
20
0.2841100123309459
30
0
11
13.160221449949878
21
-0.91300531955725284
31
0
0
LINE
5
485
100
AcDbEntity
8
0
100
AcDbLine
10
13.572308890440596
20
-1.2921263250923793
30
0
11
14.09359919271721
21
1.7078737941169098
31
0
0
LINE
5
486
100
AcDbEntity
8
0
100
AcDbLine
10
14.093599192717212
20
1.7078737941169102
30
0
11
15.076429717161792
21
1.7058132615470243
31
0
0
SPLINE
5
487
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.076429717161792
20
1.7058132615470241
30
0
10
15.2680514975573
20
1.7016924944304774
30
0
10
15.450398795225757
20
1.6604836311721152
30
0
0
SPLINE
5
488
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.450398795225757
20
1.6604836311721152
30
0
10
15.632748477080005
20
1.619275065936977
30
0
10
15.770797602751392
20
1.5244947400473896
30
0
0
SPLINE
5
489
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.770797602751392
20
1.5244947400473896
30
0
10
15.908846728422779
20
1.4297144141578022
30
0
10
15.986113421538013
20
1.2772418585204426
30
0
0
SPLINE
5
490
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.986113421538013
20
1.2772418585204426
30
0
10
16.063380114653249
20
1.1247696009063066
30
0
10
16.048958174803396
20
0.90224206713669908
30
0
0
SPLINE
5
491
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
16.048958174803396
20
0.90224206713669908
30
0
10
16.040716044523855
20
0.77655524281495225
30
0
10
15.998475424864429
20
0.6745634999656025
30
0
0
SPLINE
5
492
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.998475424864429
20
0.6745634999656025
30
0
10
15.956237189390796
20
0.57257175711625252
30
0
10
15.888242594816822
20
0.49118429688447152
30
0
0
SPLINE
5
493
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.888242594816822
20
0.49118429688447152
30
0
10
15.820248000242847
20
0.40979698566430245
30
0
10
15.72752939901604
20
0.34695357350342904
30
0
0
SPLINE
5
494
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.72752939901604
20
0.34695357350342904
30
0
10
15.634808413603443
20
0.2841101613425559
30
0
10
15.523545615294116
20
0.2367199983977622
30
0
0
SPLINE
5
495
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.523545615294116
20
0.2367199983977622
30
0
10
15.624506346800464
20
0.20169243482583199
30
0
10
15.695593230345386
20
0.13678863910668526
30
0
0
SPLINE
5
496
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.695593230345386
20
0.13678863910668526
30
0
10
15.766677729704517
20
0.071884843387538533
30
0
10
15.812005869963306
20
-0.012593415699070354
30
0
0
SPLINE
5
497
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.812005869963306
20
-0.012593415699070354
30
0
10
15.857336394407886
20
-0.097071376762455364
30
0
10
15.874850623228687
20
-0.1959724697685894
30
0
0
SPLINE
5
498
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.874850623228687
20
-0.1959724697685894
30
0
10
15.892364852049488
20
-0.29487356277472343
30
0
10
15.886182658293384
20
-0.39583518835074272
30
0
0
SPLINE
5
499
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.886182658293384
20
-0.39583518835074272
30
0
10
15.869698397734297
20
-0.63690647216803398
30
0
10
15.769767634489668
20
-0.80792292686468925
30
0
0
SPLINE
5
500
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.769767634489668
20
-0.80792292686468925
30
0
10
15.669836871245039
20
-0.97893938156134452
30
0
10
15.511183611967695
20
-1.0871125731087377
30
0
0
SPLINE
5
501
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.511183611967695
20
-1.0871125731087377
30
0
10
15.35252796850456
20
-1.1952857646561315
30
0
10
15.149576537230146
20
-1.2447361621475865
30
0
0
SPLINE
5
502
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.149576537230146
20
-1.2447361621475865
30
0
10
14.946622721769941
20
-1.2941868576622655
30
0
10
14.726154677488935
20
-1.2921263250923798
30
0
0
LINE
5
503
100
AcDbEntity
8
0
100
AcDbLine
10
14.726154677488935
20
-1.2921263250923798
30
0
11
13.572308890440596
21
-1.2921263250923789
31
0
0
LINE
5
504
100
AcDbEntity
8
0
100
AcDbLine
10
14.404725901701587
20
0.014192315616543549
30
0
11
14.262556902983325
21
-0.79556032749182426
31
0
0
LINE
5
505
100
AcDbEntity
8
0
100
AcDbLine
10
14.26255690298332
20
-0.79556032749182437
30
0
11
14.738516680815351
21
-0.79762086006171007
31
0
0
SPLINE
5
506
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
14.738516680815351
20
-0.79762086006170962
30
0
10
14.837419859984053
20
-0.79762086006170962
30
0
10
14.930138461210859
20
-0.77289566131598264
30
0
0
SPLINE
5
507
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
14.930138461210859
20
-0.77289566131598264
30
0
10
15.022859446623457
20
-0.74817016454703122
30
0
10
15.097033850767744
20
-0.69768950077063352
30
0
0
SPLINE
5
508
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.097033850767744
20
-0.69768950077063352
30
0
10
15.171210639097822
20
-0.64720883699423581
30
0
10
15.222720973112715
20
-0.57097241016394407
30
0
0
SPLINE
5
509
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.222720973112715
20
-0.57097241016394407
30
0
10
15.274231307127607
20
-0.49473598333365232
30
0
10
15.290715567686695
20
-0.3896535906410864
30
0
0
SPLINE
5
510
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.290715567686695
20
-0.3896535906410864
30
0
10
15.319561831572193
20
-0.2042140040016821
30
0
10
15.240235201933521
20
-0.10016187759405881
30
0
0
SPLINE
5
511
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.240235201933521
20
-0.10016187759405881
30
0
10
15.160908572294849
20
0.0038902488135644786
30
0
10
14.973409049132007
20
0.012132081069881617
30
0
0
LINE
5
512
100
AcDbEntity
8
0
100
AcDbLine
10
14.973409049132007
20
0.012132081069881617
30
0
11
14.404725901701587
21
0.01419231561654347
31
0
0
LINE
5
513
100
AcDbEntity
8
0
100
AcDbLine
10
14.478902690031665
20
0.45100569991105344
30
0
11
14.88893019399895
21
0.44688493279450647
31
0
0
SPLINE
5
514
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
14.88893019399895
20
0.44688493279450653
30
0
10
14.985771052458423
20
0.44894531635277984
30
0
10
15.077459685423511
20
0.47161013154023379
30
0
0
SPLINE
5
515
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.077459685423511
20
0.47161013154023379
30
0
10
15.16915070257439
20
0.49427494672768801
30
0
10
15.243325106718677
20
0.54063484338753909
30
0
0
SPLINE
5
516
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.243325106718677
20
0.54063484338753909
30
0
10
15.317501895048755
20
0.58699474004739016
30
0
10
15.369012229063648
20
0.66117063430779632
30
0
0
SPLINE
5
517
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.369012229063648
20
0.66117063430779632
30
0
10
15.42052256307854
20
0.73534637955659088
30
0
10
15.437006823637622
20
0.84042892126076874
30
0
0
SPLINE
5
518
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.437006823637622
20
0.84042892126076874
30
0
10
15.451428763487476
20
0.94139039782517608
30
0
10
15.430824629881519
20
1.0104151096724814
30
0
0
SPLINE
5
519
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.430824629881519
20
1.0104151096724814
30
0
10
15.410220496275562
20
1.0794398215197867
30
0
10
15.358710162260669
20
1.1216788020514796
30
0
0
SPLINE
5
520
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.358710162260669
20
1.1216788020514796
30
0
10
15.307199828245777
20
1.1639179315947841
30
0
10
15.23199307165398
20
1.1834920969390224
30
0
0
SPLINE
5
521
100
AcDbEntity
8
0
100
AcDbSpline
70
0
71
2
72
6
73
3
74
0
42
0.000000001
43
0.0000000001
44
0.0000000001
40
0
40
0
40
0
40
1
40
1
40
1
10
15.23199307165398
20
1.1834920969390224
30
0
10
15.156786315062183
20
1.2030662622832606
30
0
10
15.064067713835376
20
1.2051266458415339
30
0
0
LINE
5
522
100
AcDbEntity
8
0
100
AcDbLine
10
15.064067713835376
20
1.2051266458415339
30
0
11
14.610769621946949
21
1.2071871784114194
31
0
0
LINE
5
523
100
AcDbEntity
8
0
100
AcDbLine
10
14.610769621946949
20
1.2071871784114196
30
0
11
14.478902690031665
21
0.45100569991105355
31
0
0
ENDSEC
0
SECTION
2
OBJECTS
0
DICTIONARY
5
C
100
AcDbDictionary
3
ACAD_GROUP
350
D
3
ACAD_MLINESTYLE
350
17
0
DICTIONARY
5
D
100
AcDbDictionary
0
DICTIONARY
5
1A
330
C
100
AcDbDictionary
0
DICTIONARY
5
17
100
AcDbDictionary
0
ENDSEC
0
EOF


================================================
FILE: LICENSE
================================================
                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the abo
Download .txt
gitextract_sdp86rks/

├── .gitignore
├── Doc/
│   ├── JBC245分度表.xlsx
│   ├── V2.0功率板修改/
│   │   └── 功率板V2.0硬件版本修改方法.md
│   ├── V2.5.x组装教程/
│   │   ├── SnailHeater使用说明书.md
│   │   ├── SnailHeater硬件V2.5.x版本组装教程.md
│   │   └── 一车升级二车教程.md
│   ├── V2.6.x组装教程/
│   │   └── SnailHeater硬件V2.6.x版本组装教程.md
│   ├── other.md
│   ├── 新版优化记录.md
│   ├── 组装教程/
│   │   └── SnailHeater接线教程.md
│   ├── 蜗牛台使用说明书/
│   │   └── 蜗牛台使用说明书.md
│   ├── 蜗牛台全系接线引脚定义/
│   │   └── 蜗牛台全系接线引脚定义.md
│   └── 重量统计.md
├── Images/
│   ├── .gitignore
│   ├── ico/
│   │   ├── img_type_text_C245_215x81.psd
│   │   ├── img_wake_type_None.psd
│   │   ├── img_wake_type_change.psd
│   │   └── 烙铁芯.psd
│   └── 面板图标元素/
│       ├── SnailHeater.psd
│       ├── SnailHeater2字体roboto medium italic.psd
│       ├── SnailHeater字体roboto medium italic.psd
│       └── snailHeater字样.dxf
├── LICENSE
├── Model/
│   ├── SnailHeater电源支架 v6.stl
│   └── 屏幕辅助贴合固定板 v1.stl
├── Multisim/
│   ├── mos分压.ms14
│   ├── 拉高电阻干扰处理.ms14
│   ├── 拉高电阻干扰处理.ms14 (Security copy)
│   ├── 滤波.ms14
│   ├── 烙铁mos管驱动.ms14
│   └── 烙铁电压切换.ms14
├── README.md
├── Software/
│   └── firmware_demo/
│       ├── .gitignore
│       ├── include/
│       │   └── README
│       ├── lib/
│       │   ├── ESP32Time/
│       │   │   ├── ESP32Time.cpp
│       │   │   ├── ESP32Time.h
│       │   │   ├── LICENSE
│       │   │   ├── README.md
│       │   │   ├── examples/
│       │   │   │   └── esp32_time/
│       │   │   │       └── esp32_time.ino
│       │   │   ├── keywords.txt
│       │   │   ├── library.json
│       │   │   └── library.properties
│       │   ├── FastLED/
│       │   │   ├── .gitignore
│       │   │   ├── LICENSE
│       │   │   ├── PORTING.md
│       │   │   ├── README.md
│       │   │   ├── ci/
│       │   │   │   ├── ci-compile
│       │   │   │   └── ci-flags.py
│       │   │   ├── code_of_conduct.md
│       │   │   ├── component.mk
│       │   │   ├── docs/
│       │   │   │   ├── Doxyfile
│       │   │   │   └── mainpage.dox
│       │   │   ├── examples/
│       │   │   │   ├── AnalogOutput/
│       │   │   │   │   └── AnalogOutput.ino
│       │   │   │   ├── Blink/
│       │   │   │   │   └── Blink.ino
│       │   │   │   ├── ColorPalette/
│       │   │   │   │   └── ColorPalette.ino
│       │   │   │   ├── ColorTemperature/
│       │   │   │   │   └── ColorTemperature.ino
│       │   │   │   ├── Cylon/
│       │   │   │   │   └── Cylon.ino
│       │   │   │   ├── DemoReel100/
│       │   │   │   │   └── DemoReel100.ino
│       │   │   │   ├── Fire2012/
│       │   │   │   │   └── Fire2012.ino
│       │   │   │   ├── Fire2012WithPalette/
│       │   │   │   │   └── Fire2012WithPalette.ino
│       │   │   │   ├── FirstLight/
│       │   │   │   │   └── FirstLight.ino
│       │   │   │   ├── Multiple/
│       │   │   │   │   ├── ArrayOfLedArrays/
│       │   │   │   │   │   └── ArrayOfLedArrays.ino
│       │   │   │   │   ├── MirroringSample/
│       │   │   │   │   │   └── MirroringSample.ino
│       │   │   │   │   ├── MultiArrays/
│       │   │   │   │   │   └── MultiArrays.ino
│       │   │   │   │   ├── MultipleStripsInOneArray/
│       │   │   │   │   │   └── MultipleStripsInOneArray.ino
│       │   │   │   │   ├── OctoWS2811Demo/
│       │   │   │   │   │   └── OctoWS2811Demo.ino
│       │   │   │   │   └── ParallelOutputDemo/
│       │   │   │   │       └── ParallelOutputDemo.ino
│       │   │   │   ├── Noise/
│       │   │   │   │   └── Noise.ino
│       │   │   │   ├── NoisePlayground/
│       │   │   │   │   └── NoisePlayground.ino
│       │   │   │   ├── NoisePlusPalette/
│       │   │   │   │   └── NoisePlusPalette.ino
│       │   │   │   ├── 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.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/
│       │   │   │   │   ├── math8.h
│       │   │   │   │   ├── random8.h
│       │   │   │   │   ├── scale8.h
│       │   │   │   │   └── trig8.h
│       │   │   │   ├── lib8tion.cpp
│       │   │   │   ├── lib8tion.h
│       │   │   │   ├── noise.cpp
│       │   │   │   ├── noise.h
│       │   │   │   ├── pixelset.h
│       │   │   │   ├── pixeltypes.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
│       │   │   │   │   │   ├── 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
│       │   │   │   ├── platforms.cpp
│       │   │   │   ├── platforms.h
│       │   │   │   ├── power_mgt.cpp
│       │   │   │   ├── power_mgt.h
│       │   │   │   └── wiring.cpp
│       │   │   └── workspace.code-workspace
│       │   ├── README
│       │   ├── TFT_eSPI/
│       │   │   ├── .gitattributes
│       │   │   ├── .github/
│       │   │   │   └── ISSUE_TEMPLATE/
│       │   │   │       └── issue-template.md
│       │   │   ├── .gitignore
│       │   │   ├── CMakeLists.txt
│       │   │   ├── Extensions/
│       │   │   │   ├── Button.cpp
│       │   │   │   ├── Button.h
│       │   │   │   ├── Smooth_font.cpp
│       │   │   │   ├── Smooth_font.h
│       │   │   │   ├── Sprite.cpp
│       │   │   │   ├── Sprite.h
│       │   │   │   ├── Touch.cpp
│       │   │   │   └── Touch.h
│       │   │   ├── Fonts/
│       │   │   │   ├── Custom/
│       │   │   │   │   ├── Orbitron_Light_24.h
│       │   │   │   │   ├── Orbitron_Light_32.h
│       │   │   │   │   ├── Roboto_Thin_24.h
│       │   │   │   │   ├── Satisfy_24.h
│       │   │   │   │   └── Yellowtail_32.h
│       │   │   │   ├── Font16.c
│       │   │   │   ├── Font16.h
│       │   │   │   ├── Font32rle.c
│       │   │   │   ├── Font32rle.h
│       │   │   │   ├── Font64rle.c
│       │   │   │   ├── Font64rle.h
│       │   │   │   ├── Font72rle.c
│       │   │   │   ├── Font72rle.h
│       │   │   │   ├── Font72x53rle.c
│       │   │   │   ├── Font72x53rle.h
│       │   │   │   ├── Font7srle.c
│       │   │   │   ├── Font7srle.h
│       │   │   │   ├── GFXFF/
│       │   │   │   │   ├── FreeMono12pt7b.h
│       │   │   │   │   ├── FreeMono18pt7b.h
│       │   │   │   │   ├── FreeMono24pt7b.h
│       │   │   │   │   ├── FreeMono9pt7b.h
│       │   │   │   │   ├── FreeMonoBold12pt7b.h
│       │   │   │   │   ├── FreeMonoBold18pt7b.h
│       │   │   │   │   ├── FreeMonoBold24pt7b.h
│       │   │   │   │   ├── FreeMonoBold9pt7b.h
│       │   │   │   │   ├── FreeMonoBoldOblique12pt7b.h
│       │   │   │   │   ├── FreeMonoBoldOblique18pt7b.h
│       │   │   │   │   ├── FreeMonoBoldOblique24pt7b.h
│       │   │   │   │   ├── FreeMonoBoldOblique9pt7b.h
│       │   │   │   │   ├── FreeMonoOblique12pt7b.h
│       │   │   │   │   ├── FreeMonoOblique18pt7b.h
│       │   │   │   │   ├── FreeMonoOblique24pt7b.h
│       │   │   │   │   ├── FreeMonoOblique9pt7b.h
│       │   │   │   │   ├── FreeSans12pt7b.h
│       │   │   │   │   ├── FreeSans18pt7b.h
│       │   │   │   │   ├── FreeSans24pt7b.h
│       │   │   │   │   ├── FreeSans9pt7b.h
│       │   │   │   │   ├── FreeSansBold12pt7b.h
│       │   │   │   │   ├── FreeSansBold18pt7b.h
│       │   │   │   │   ├── FreeSansBold24pt7b.h
│       │   │   │   │   ├── FreeSansBold9pt7b.h
│       │   │   │   │   ├── FreeSansBoldOblique12pt7b.h
│       │   │   │   │   ├── FreeSansBoldOblique18pt7b.h
│       │   │   │   │   ├── FreeSansBoldOblique24pt7b.h
│       │   │   │   │   ├── FreeSansBoldOblique9pt7b.h
│       │   │   │   │   ├── FreeSansOblique12pt7b.h
│       │   │   │   │   ├── FreeSansOblique18pt7b.h
│       │   │   │   │   ├── FreeSansOblique24pt7b.h
│       │   │   │   │   ├── FreeSansOblique9pt7b.h
│       │   │   │   │   ├── FreeSerif12pt7b.h
│       │   │   │   │   ├── FreeSerif18pt7b.h
│       │   │   │   │   ├── FreeSerif24pt7b.h
│       │   │   │   │   ├── FreeSerif9pt7b.h
│       │   │   │   │   ├── FreeSerifBold12pt7b.h
│       │   │   │   │   ├── FreeSerifBold18pt7b.h
│       │   │   │   │   ├── FreeSerifBold24pt7b.h
│       │   │   │   │   ├── FreeSerifBold9pt7b.h
│       │   │   │   │   ├── FreeSerifBoldItalic12pt7b.h
│       │   │   │   │   ├── FreeSerifBoldItalic18pt7b.h
│       │   │   │   │   ├── FreeSerifBoldItalic24pt7b.h
│       │   │   │   │   ├── FreeSerifBoldItalic9pt7b.h
│       │   │   │   │   ├── FreeSerifItalic12pt7b.h
│       │   │   │   │   ├── FreeSerifItalic18pt7b.h
│       │   │   │   │   ├── FreeSerifItalic24pt7b.h
│       │   │   │   │   ├── FreeSerifItalic9pt7b.h
│       │   │   │   │   ├── TomThumb.h
│       │   │   │   │   ├── gfxfont.h
│       │   │   │   │   ├── license.txt
│       │   │   │   │   └── print.txt
│       │   │   │   ├── TrueType/
│       │   │   │   │   └── Not_yet_supported.txt
│       │   │   │   └── glcdfont.c
│       │   │   ├── Kconfig
│       │   │   ├── Processors/
│       │   │   │   ├── TFT_eSPI_ESP32.c
│       │   │   │   ├── TFT_eSPI_ESP32.h
│       │   │   │   ├── TFT_eSPI_ESP32_C3.c
│       │   │   │   ├── TFT_eSPI_ESP32_C3.h
│       │   │   │   ├── TFT_eSPI_ESP32_S3.c
│       │   │   │   ├── TFT_eSPI_ESP32_S3.h
│       │   │   │   ├── TFT_eSPI_ESP8266.c
│       │   │   │   ├── TFT_eSPI_ESP8266.h
│       │   │   │   ├── TFT_eSPI_Generic.c
│       │   │   │   ├── TFT_eSPI_Generic.h
│       │   │   │   ├── TFT_eSPI_RP2040.c
│       │   │   │   ├── TFT_eSPI_RP2040.h
│       │   │   │   ├── TFT_eSPI_STM32.c
│       │   │   │   ├── TFT_eSPI_STM32.h
│       │   │   │   ├── pio_16bit_parallel.pio
│       │   │   │   ├── pio_16bit_parallel.pio.h
│       │   │   │   ├── pio_8bit_parallel.pio
│       │   │   │   ├── pio_8bit_parallel.pio.h
│       │   │   │   ├── pio_SPI.pio
│       │   │   │   ├── pio_SPI.pio.h
│       │   │   │   ├── pio_SPI_18bit.pio
│       │   │   │   └── pio_SPI_18bit.pio.h
│       │   │   ├── README.md
│       │   │   ├── README.txt
│       │   │   ├── TFT_Drivers/
│       │   │   │   ├── EPD_Defines.h
│       │   │   │   ├── GC9A01_Defines.h
│       │   │   │   ├── GC9A01_Init.h
│       │   │   │   ├── GC9A01_Rotation.h
│       │   │   │   ├── HX8357B_Defines.h
│       │   │   │   ├── HX8357B_Init.h
│       │   │   │   ├── HX8357B_Rotation.h
│       │   │   │   ├── HX8357C_Defines.h
│       │   │   │   ├── HX8357C_Init.h
│       │   │   │   ├── HX8357C_Rotation.h
│       │   │   │   ├── HX8357D_Defines.h
│       │   │   │   ├── HX8357D_Init.h
│       │   │   │   ├── HX8357D_Rotation.h
│       │   │   │   ├── ILI9163_Defines.h
│       │   │   │   ├── ILI9163_Init.h
│       │   │   │   ├── ILI9163_Rotation.h
│       │   │   │   ├── ILI9225_Defines.h
│       │   │   │   ├── ILI9225_Init.h
│       │   │   │   ├── ILI9225_Rotation.h
│       │   │   │   ├── ILI9341_Defines.h
│       │   │   │   ├── ILI9341_Init.h
│       │   │   │   ├── ILI9341_Rotation.h
│       │   │   │   ├── ILI9481_Defines.h
│       │   │   │   ├── ILI9481_Init.h
│       │   │   │   ├── ILI9481_Rotation.h
│       │   │   │   ├── ILI9486_Defines.h
│       │   │   │   ├── ILI9486_Init.h
│       │   │   │   ├── ILI9486_Rotation.h
│       │   │   │   ├── ILI9488_Defines.h
│       │   │   │   ├── ILI9488_Init.h
│       │   │   │   ├── ILI9488_Rotation.h
│       │   │   │   ├── R61581_Defines.h
│       │   │   │   ├── R61581_Init.h
│       │   │   │   ├── R61581_Rotation.h
│       │   │   │   ├── RM68120_Defines.h
│       │   │   │   ├── RM68120_Init.h
│       │   │   │   ├── RM68120_Rotation.h
│       │   │   │   ├── RM68140_Defines.h
│       │   │   │   ├── RM68140_Init.h
│       │   │   │   ├── RM68140_Rotation.h
│       │   │   │   ├── S6D02A1_Defines.h
│       │   │   │   ├── S6D02A1_Init.h
│       │   │   │   ├── S6D02A1_Rotation.h
│       │   │   │   ├── SSD1351_Defines.h
│       │   │   │   ├── SSD1351_Init.h
│       │   │   │   ├── SSD1351_Rotation.h
│       │   │   │   ├── SSD1963_Defines.h
│       │   │   │   ├── SSD1963_Init.h
│       │   │   │   ├── SSD1963_Rotation.h
│       │   │   │   ├── ST7735_Defines.h
│       │   │   │   ├── ST7735_Init.h
│       │   │   │   ├── ST7735_Rotation.h
│       │   │   │   ├── ST7789_2_Defines.h
│       │   │   │   ├── ST7789_2_Init.h
│       │   │   │   ├── ST7789_2_Rotation.h
│       │   │   │   ├── ST7789_Defines.h
│       │   │   │   ├── ST7789_Init.h
│       │   │   │   ├── ST7789_Rotation.h
│       │   │   │   ├── ST7796_Defines.h
│       │   │   │   ├── ST7796_Init.h
│       │   │   │   └── ST7796_Rotation.h
│       │   │   ├── TFT_config.h
│       │   │   ├── TFT_eSPI.cpp
│       │   │   ├── TFT_eSPI.h
│       │   │   ├── Tools/
│       │   │   │   ├── Create_Smooth_Font/
│       │   │   │   │   └── Create_font/
│       │   │   │   │       ├── Create_font.pde
│       │   │   │   │       └── FontFiles/
│       │   │   │   │           └── Final-Frontier28.vlw
│       │   │   │   ├── Screenshot_client/
│       │   │   │   │   └── Screenshot_client.pde
│       │   │   │   └── bmp2array4bit/
│       │   │   │       ├── README.md
│       │   │   │       └── bmp2array4bit.py
│       │   │   ├── User_Setup.h
│       │   │   ├── User_Setup_Select.h
│       │   │   ├── User_Setups/
│       │   │   │   ├── Setup100_RP2040_ILI9488_parallel.h
│       │   │   │   ├── Setup101_RP2040_ILI9481_parallel.h
│       │   │   │   ├── Setup102_RP2040_ILI9341_parallel.h
│       │   │   │   ├── Setup103_RP2040_ILI9486_parallel.h
│       │   │   │   ├── Setup104_RP2040_ST7796_parallel.h
│       │   │   │   ├── Setup105_RP2040_ST7796_16bit_parallel.h
│       │   │   │   ├── Setup106_RP2040_ILI9481_16bit_parallel.h
│       │   │   │   ├── Setup107_RP2040_ILI9341_16bit_parallel.h
│       │   │   │   ├── Setup10_RPi_touch_ILI9486.h
│       │   │   │   ├── Setup11_RPi_touch_ILI9486.h
│       │   │   │   ├── Setup12_M5Stack_Basic_Core.h
│       │   │   │   ├── Setup135_ST7789.h
│       │   │   │   ├── Setup136_LilyGo_TTV.h
│       │   │   │   ├── Setup137_LilyGo_TDisplay_RP2040.h
│       │   │   │   ├── Setup13_ILI9481_Parallel.h
│       │   │   │   ├── Setup14_ILI9341_Parallel.h
│       │   │   │   ├── Setup15_HX8357D.h
│       │   │   │   ├── Setup16_ILI9488_Parallel.h
│       │   │   │   ├── Setup17_ePaper.h
│       │   │   │   ├── Setup18_ST7789.h
│       │   │   │   ├── Setup19_RM68140_Parallel.h
│       │   │   │   ├── Setup1_ILI9341.h
│       │   │   │   ├── Setup200_GC9A01.h
│       │   │   │   ├── Setup201_WT32_SC01.h
│       │   │   │   ├── Setup202_SSD1351_128.h
│       │   │   │   ├── Setup203_ST7789.h
│       │   │   │   ├── Setup204_ESP32_TouchDown.h
│       │   │   │   ├── Setup205_ESP32_TouchDown_S3.h
│       │   │   │   ├── Setup20_ILI9488.h
│       │   │   │   ├── Setup21_ILI9488.h
│       │   │   │   ├── Setup22_TTGO_T4.h
│       │   │   │   ├── Setup22_TTGO_T4_v1.3.h
│       │   │   │   ├── Setup23_TTGO_TM.h
│       │   │   │   ├── Setup24_ST7789.h
│       │   │   │   ├── Setup25_TTGO_T_Display.h
│       │   │   │   ├── Setup26_TTGO_T_Wristband.h
│       │   │   │   ├── Setup27_RPi_ST7796_ESP32.h
│       │   │   │   ├── Setup28_RPi_ST7796_ESP8266.h
│       │   │   │   ├── Setup29_ILI9341_STM32.h
│       │   │   │   ├── Setup2_ST7735.h
│       │   │   │   ├── Setup30_ILI9341_Parallel_STM32.h
│       │   │   │   ├── Setup31_ST7796_Parallel_STM32.h
│       │   │   │   ├── Setup32_ILI9341_STM32F103.h
│       │   │   │   ├── Setup33_RPi_ILI9486_STM32.h
│       │   │   │   ├── Setup34_ILI9481_Parallel_STM32.h
│       │   │   │   ├── Setup35_ILI9341_STM32_Port_Bus.h
│       │   │   │   ├── Setup36_RPi_touch_ST7796.h
│       │   │   │   ├── Setup3_ILI9163.h
│       │   │   │   ├── Setup43_ST7735.h
│       │   │   │   ├── Setup44_TTGO_CameraPlus.h
│       │   │   │   ├── Setup45_TTGO_T_Watch.h
│       │   │   │   ├── Setup46_GC9A01_ESP32.h
│       │   │   │   ├── Setup47_ST7735.h
│       │   │   │   ├── Setup4_S6D02A1.h
│       │   │   │   ├── Setup50_SSD1963_Parallel.h
│       │   │   │   ├── Setup51_LilyPi_ILI9481.h
│       │   │   │   ├── Setup52_LilyPi_ST7796.h
│       │   │   │   ├── Setup5_RPi_ILI9486.h
│       │   │   │   ├── Setup60_RP2040_ILI9341.h
│       │   │   │   ├── Setup61_RP2040_ILI9341_PIO_SPI.h
│       │   │   │   ├── Setup62_RP2040_Nano_Connect_ILI9341.h
│       │   │   │   ├── Setup6_RPi_Wr_ILI9486.h
│       │   │   │   ├── Setup70_ESP32_S2_ILI9341.h
│       │   │   │   ├── Setup70b_ESP32_S3_ILI9341.h
│       │   │   │   ├── Setup70c_ESP32_C3_ILI9341.h
│       │   │   │   ├── Setup70d_ILI9488_S3_Parallel.h
│       │   │   │   ├── Setup71_ESP32_S2_ST7789.h
│       │   │   │   ├── Setup72_ESP32_ST7789_172x320.h
│       │   │   │   ├── Setup7_ST7735_128x128.h
│       │   │   │   ├── Setup8_ILI9163_128x128.h
│       │   │   │   ├── Setup9_ST7735_Overlap.h
│       │   │   │   ├── SetupX_Template.h
│       │   │   │   └── User_Custom_Fonts.h
│       │   │   ├── docs/
│       │   │   │   └── PlatformIO/
│       │   │   │       └── Configuring options.txt
│       │   │   ├── examples/
│       │   │   │   ├── 160 x 128/
│       │   │   │   │   ├── Arduino_Life/
│       │   │   │   │   │   └── Arduino_Life.ino
│       │   │   │   │   ├── Pong_v3/
│       │   │   │   │   │   └── Pong_v3.ino
│       │   │   │   │   ├── RLE_Font_test/
│       │   │   │   │   │   └── RLE_Font_test.ino
│       │   │   │   │   ├── TFT_Char_times/
│       │   │   │   │   │   └── TFT_Char_times.ino
│       │   │   │   │   ├── TFT_Clock/
│       │   │   │   │   │   └── TFT_Clock.ino
│       │   │   │   │   ├── TFT_Clock_Digital/
│       │   │   │   │   │   └── TFT_Clock_Digital.ino
│       │   │   │   │   ├── TFT_Ellipse/
│       │   │   │   │   │   └── TFT_Ellipse.ino
│       │   │   │   │   ├── TFT_Meter_5/
│       │   │   │   │   │   └── TFT_Meter_5.ino
│       │   │   │   │   ├── TFT_Print_Test/
│       │   │   │   │   │   └── TFT_Print_Test.ino
│       │   │   │   │   ├── TFT_Rainbow/
│       │   │   │   │   │   └── TFT_Rainbow.ino
│       │   │   │   │   ├── TFT_flash_jpg/
│       │   │   │   │   │   ├── TFT_flash_jpg.ino
│       │   │   │   │   │   ├── jpeg1.h
│       │   │   │   │   │   ├── jpeg2.h
│       │   │   │   │   │   ├── jpeg3.h
│       │   │   │   │   │   └── jpeg4.h
│       │   │   │   │   ├── TFT_graphicstest_PDQ3/
│       │   │   │   │   │   └── TFT_graphicstest_PDQ3.ino
│       │   │   │   │   ├── TFT_graphicstest_small/
│       │   │   │   │   │   └── TFT_graphicstest_small.ino
│       │   │   │   │   └── UTFT_demo_fast/
│       │   │   │   │       └── UTFT_demo_fast.ino
│       │   │   │   ├── 320 x 240/
│       │   │   │   │   ├── All_Free_Fonts_Demo/
│       │   │   │   │   │   ├── All_Free_Fonts_Demo.ino
│       │   │   │   │   │   └── Free_Fonts.h
│       │   │   │   │   ├── Cellular_Automata/
│       │   │   │   │   │   └── Cellular_Automata.ino
│       │   │   │   │   ├── Free_Font_Demo/
│       │   │   │   │   │   ├── Free_Font_Demo.ino
│       │   │   │   │   │   └── Free_Fonts.h
│       │   │   │   │   ├── Keypad_240x320/
│       │   │   │   │   │   └── Keypad_240x320.ino
│       │   │   │   │   ├── RLE_Font_test/
│       │   │   │   │   │   └── RLE_Font_test.ino
│       │   │   │   │   ├── Read_ID_bitbash/
│       │   │   │   │   │   └── Read_ID_bitbash.ino
│       │   │   │   │   ├── TFT_ArcFill/
│       │   │   │   │   │   └── TFT_ArcFill.ino
│       │   │   │   │   ├── TFT_Char_times/
│       │   │   │   │   │   └── TFT_Char_times.ino
│       │   │   │   │   ├── TFT_Clock/
│       │   │   │   │   │   └── TFT_Clock.ino
│       │   │   │   │   ├── TFT_Clock_Digital/
│       │   │   │   │   │   └── TFT_Clock_Digital.ino
│       │   │   │   │   ├── TFT_Custom_Fonts/
│       │   │   │   │   │   └── TFT_Custom_Fonts.ino
│       │   │   │   │   ├── TFT_Ellipse/
│       │   │   │   │   │   └── TFT_Ellipse.ino
│       │   │   │   │   ├── TFT_FillArcSpiral/
│       │   │   │   │   │   └── TFT_FillArcSpiral.ino
│       │   │   │   │   ├── TFT_Float_Test/
│       │   │   │   │   │   └── TFT_Float_Test.ino
│       │   │   │   │   ├── TFT_Mandlebrot/
│       │   │   │   │   │   └── TFT_Mandlebrot.ino
│       │   │   │   │   ├── TFT_Matrix/
│       │   │   │   │   │   └── TFT_Matrix.ino
│       │   │   │   │   ├── TFT_Meter_linear/
│       │   │   │   │   │   └── TFT_Meter_linear.ino
│       │   │   │   │   ├── TFT_Meters/
│       │   │   │   │   │   └── TFT_Meters.ino
│       │   │   │   │   ├── TFT_Pie_Chart/
│       │   │   │   │   │   └── TFT_Pie_Chart.ino
│       │   │   │   │   ├── TFT_Pong/
│       │   │   │   │   │   └── TFT_Pong.ino
│       │   │   │   │   ├── TFT_Print_Test/
│       │   │   │   │   │   └── TFT_Print_Test.ino
│       │   │   │   │   ├── TFT_Rainbow_one_lib/
│       │   │   │   │   │   └── TFT_Rainbow_one_lib.ino
│       │   │   │   │   ├── TFT_Read_Reg/
│       │   │   │   │   │   └── TFT_Read_Reg.ino
│       │   │   │   │   ├── TFT_Spiro/
│       │   │   │   │   │   └── TFT_Spiro.ino
│       │   │   │   │   ├── TFT_Starfield/
│       │   │   │   │   │   └── TFT_Starfield.ino
│       │   │   │   │   ├── TFT_String_Align/
│       │   │   │   │   │   └── TFT_String_Align.ino
│       │   │   │   │   ├── TFT_Terminal/
│       │   │   │   │   │   └── TFT_Terminal.ino
│       │   │   │   │   ├── TFT_graphicstest_PDQ/
│       │   │   │   │   │   └── TFT_graphicstest_PDQ.ino
│       │   │   │   │   ├── TFT_graphicstest_one_lib/
│       │   │   │   │   │   └── TFT_graphicstest_one_lib.ino
│       │   │   │   │   └── UTFT_demo/
│       │   │   │   │       └── UTFT_demo.ino
│       │   │   │   ├── 480 x 320/
│       │   │   │   │   ├── Cellular_Automata/
│       │   │   │   │   │   └── Cellular_Automata.ino
│       │   │   │   │   ├── Demo_3D_cube/
│       │   │   │   │   │   └── Demo_3D_cube.ino
│       │   │   │   │   ├── Free_Font_Demo/
│       │   │   │   │   │   ├── Free_Font_Demo.ino
│       │   │   │   │   │   └── Free_Fonts.h
│       │   │   │   │   ├── Graph_2/
│       │   │   │   │   │   └── Graph_2.ino
│       │   │   │   │   ├── Keypad_480x320/
│       │   │   │   │   │   └── Keypad_480x320.ino
│       │   │   │   │   ├── TFT_Char_times/
│       │   │   │   │   │   └── TFT_Char_times.ino
│       │   │   │   │   ├── TFT_Ellipse/
│       │   │   │   │   │   └── TFT_Ellipse.ino
│       │   │   │   │   ├── TFT_Meter_4/
│       │   │   │   │   │   └── TFT_Meter_4.ino
│       │   │   │   │   ├── TFT_Meters/
│       │   │   │   │   │   └── TFT_Meters.ino
│       │   │   │   │   ├── TFT_Padding_demo/
│       │   │   │   │   │   └── TFT_Padding_demo.ino
│       │   │   │   │   ├── TFT_Print_Test/
│       │   │   │   │   │   └── TFT_Print_Test.ino
│       │   │   │   │   ├── TFT_Rainbow480/
│       │   │   │   │   │   └── TFT_Rainbow480.ino
│       │   │   │   │   ├── TFT_String_Align/
│       │   │   │   │   │   └── TFT_String_Align.ino
│       │   │   │   │   ├── TFT_flash_jpg/
│       │   │   │   │   │   ├── TFT_flash_jpg.ino
│       │   │   │   │   │   ├── jpeg1.h
│       │   │   │   │   │   ├── jpeg2.h
│       │   │   │   │   │   ├── jpeg3.h
│       │   │   │   │   │   └── jpeg4.h
│       │   │   │   │   ├── TFT_graphicstest_one_lib/
│       │   │   │   │   │   └── TFT_graphicstest_one_lib.ino
│       │   │   │   │   ├── TFT_ring_meter/
│       │   │   │   │   │   ├── Alert.h
│       │   │   │   │   │   └── TFT_ring_meter.ino
│       │   │   │   │   ├── Touch_Controller_Demo/
│       │   │   │   │   │   └── Touch_Controller_Demo.ino
│       │   │   │   │   └── UTFT_Demo_480x320/
│       │   │   │   │       └── UTFT_Demo_480x320.ino
│       │   │   │   ├── DMA test/
│       │   │   │   │   ├── Bouncy_Circles/
│       │   │   │   │   │   └── Bouncy_Circles.ino
│       │   │   │   │   ├── Flash_Jpg_DMA/
│       │   │   │   │   │   ├── Flash_Jpg_DMA.ino
│       │   │   │   │   │   └── panda.h
│       │   │   │   │   ├── SpriteRotatingCube/
│       │   │   │   │   │   └── SpriteRotatingCube.ino
│       │   │   │   │   └── boing_ball/
│       │   │   │   │       ├── boing_ball.ino
│       │   │   │   │       └── graphic.h
│       │   │   │   ├── Generic/
│       │   │   │   │   ├── Animated_Eyes_1/
│       │   │   │   │   │   ├── Animated_Eyes_1.ino
│       │   │   │   │   │   ├── config.h
│       │   │   │   │   │   ├── data/
│       │   │   │   │   │   │   ├── catEye.h
│       │   │   │   │   │   │   ├── defaultEye.h
│       │   │   │   │   │   │   ├── doeEye.h
│       │   │   │   │   │   │   ├── dragonEye.h
│       │   │   │   │   │   │   ├── goatEye.h
│       │   │   │   │   │   │   ├── logo.h
│       │   │   │   │   │   │   ├── naugaEye.h
│       │   │   │   │   │   │   ├── newtEye.h
│       │   │   │   │   │   │   ├── noScleraEye.h
│       │   │   │   │   │   │   ├── owlEye.h
│       │   │   │   │   │   │   └── terminatorEye.h
│       │   │   │   │   │   ├── eye_functions.ino
│       │   │   │   │   │   ├── user.cpp
│       │   │   │   │   │   ├── user_bat.cpp
│       │   │   │   │   │   └── user_xmas.cpp
│       │   │   │   │   ├── Animated_Eyes_2/
│       │   │   │   │   │   ├── Animated_Eyes_2.ino
│       │   │   │   │   │   ├── config.h
│       │   │   │   │   │   ├── data/
│       │   │   │   │   │   │   ├── catEye.h
│       │   │   │   │   │   │   ├── defaultEye.h
│       │   │   │   │   │   │   ├── doeEye.h
│       │   │   │   │   │   │   ├── dragonEye.h
│       │   │   │   │   │   │   ├── goatEye.h
│       │   │   │   │   │   │   ├── logo.h
│       │   │   │   │   │   │   ├── naugaEye.h
│       │   │   │   │   │   │   ├── newtEye.h
│       │   │   │   │   │   │   ├── noScleraEye.h
│       │   │   │   │   │   │   ├── owlEye.h
│       │   │   │   │   │   │   └── terminatorEye.h
│       │   │   │   │   │   ├── eye_functions.ino
│       │   │   │   │   │   ├── user.cpp
│       │   │   │   │   │   ├── user_bat.cpp
│       │   │   │   │   │   ├── user_xmas.cpp
│       │   │   │   │   │   └── wiring.ino
│       │   │   │   │   ├── ESP32_SDcard_jpeg/
│       │   │   │   │   │   └── ESP32_SDcard_jpeg.ino
│       │   │   │   │   ├── ESP8266_uncannyEyes/
│       │   │   │   │   │   ├── ESP8266_uncannyEyes.ino
│       │   │   │   │   │   ├── defaultEye.h
│       │   │   │   │   │   ├── dragonEye.h
│       │   │   │   │   │   ├── goatEye.h
│       │   │   │   │   │   ├── noScleraEye.h
│       │   │   │   │   │   └── screenshotToConsole.ino
│       │   │   │   │   ├── Gradient_Fill/
│       │   │   │   │   │   └── Gradient_Fill.ino
│       │   │   │   │   ├── Local_Custom_Fonts/
│       │   │   │   │   │   ├── Local_Custom_Fonts.ino
│       │   │   │   │   │   └── MyFont.h
│       │   │   │   │   ├── On_Off_Button/
│       │   │   │   │   │   └── On_Off_Button.ino
│       │   │   │   │   ├── TFT_Button_Label_Datum/
│       │   │   │   │   │   └── TFT_Button_Label_Datum.ino
│       │   │   │   │   ├── TFT_Flash_Bitmap/
│       │   │   │   │   │   ├── Alert.h
│       │   │   │   │   │   ├── Close.h
│       │   │   │   │   │   ├── Info.h
│       │   │   │   │   │   └── TFT_Flash_Bitmap.ino
│       │   │   │   │   ├── TFT_SPIFFS_BMP/
│       │   │   │   │   │   ├── BMP_functions.ino
│       │   │   │   │   │   └── TFT_SPIFFS_BMP.ino
│       │   │   │   │   ├── TFT_Screen_Capture/
│       │   │   │   │   │   ├── TFT_Screen_Capture.ino
│       │   │   │   │   │   ├── processing_sketch.ino
│       │   │   │   │   │   └── screenServer.ino
│       │   │   │   │   ├── Touch_calibrate/
│       │   │   │   │   │   └── Touch_calibrate.ino
│       │   │   │   │   ├── Viewport_Demo/
│       │   │   │   │   │   ├── Viewport_Demo.ino
│       │   │   │   │   │   └── Viewport_commands.ino
│       │   │   │   │   ├── Viewport_graphicstest/
│       │   │   │   │   │   └── Viewport_graphicstest.ino
│       │   │   │   │   ├── alphaBlend_Test/
│       │   │   │   │   │   └── alphaBlend_Test.ino
│       │   │   │   │   └── drawXBitmap/
│       │   │   │   │       ├── drawXBitmap.ino
│       │   │   │   │       └── xbm.h
│       │   │   │   ├── PNG Images/
│       │   │   │   │   ├── Flash_PNG/
│       │   │   │   │   │   ├── Flash_PNG.ino
│       │   │   │   │   │   └── panda.h
│       │   │   │   │   ├── LittleFS_PNG/
│       │   │   │   │   │   ├── LittleFS_PNG.ino
│       │   │   │   │   │   └── PNG_FS_Support.ino
│       │   │   │   │   └── LittleFS_PNG_DMA/
│       │   │   │   │       ├── LittleFS_PNG_DMA.ino
│       │   │   │   │       └── PNG_FS_Support.ino
│       │   │   │   ├── Smooth Fonts/
│       │   │   │   │   ├── FLASH_Array/
│       │   │   │   │   │   ├── Font_Demo_1_Array/
│       │   │   │   │   │   │   ├── Font_Demo_1_Array.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   ├── NotoSansBold15.h
│       │   │   │   │   │   │   └── NotoSansBold36.h
│       │   │   │   │   │   ├── Font_Demo_2_Array/
│       │   │   │   │   │   │   ├── Font_Demo_2_Array.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   ├── NotoSansBold15.h
│       │   │   │   │   │   │   └── NotoSansBold36.h
│       │   │   │   │   │   ├── Font_Demo_3_Array/
│       │   │   │   │   │   │   ├── Font_Demo_3_Array.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   ├── NotoSansBold15.h
│       │   │   │   │   │   │   ├── NotoSansBold36.h
│       │   │   │   │   │   │   └── NotoSansMonoSCB20.h
│       │   │   │   │   │   ├── Font_Demo_4_Array/
│       │   │   │   │   │   │   ├── Font_Demo_4_Array.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   ├── NotoSansBold15.h
│       │   │   │   │   │   │   └── NotoSansBold36.h
│       │   │   │   │   │   ├── Print_Smooth_Font/
│       │   │   │   │   │   │   ├── Final_Frontier_28.h
│       │   │   │   │   │   │   └── Print_Smooth_Font.ino
│       │   │   │   │   │   ├── Smooth_font_gradient/
│       │   │   │   │   │   │   ├── NotoSansBold15.h
│       │   │   │   │   │   │   ├── NotoSansBold36.h
│       │   │   │   │   │   │   └── Smooth_font_gradient.ino
│       │   │   │   │   │   ├── Smooth_font_reading_TFT/
│       │   │   │   │   │   │   ├── NotoSansBold15.h
│       │   │   │   │   │   │   ├── NotoSansBold36.h
│       │   │   │   │   │   │   └── Smooth_font_reading_TFT.ino
│       │   │   │   │   │   └── Unicode_test/
│       │   │   │   │   │       ├── Final_Frontier_28.h
│       │   │   │   │   │       ├── Latin_Hiragana_24.h
│       │   │   │   │   │       ├── Unicode_Test_72.h
│       │   │   │   │   │       ├── Unicode_test.ino
│       │   │   │   │   │       └── data/
│       │   │   │   │   │           ├── Final-Frontier-28.vlw
│       │   │   │   │   │           ├── Latin-Hiragana-24.vlw
│       │   │   │   │   │           └── Unicode-Test-72.vlw
│       │   │   │   │   ├── LittleFS/
│       │   │   │   │   │   ├── Font_Demo_1/
│       │   │   │   │   │   │   ├── Font_Demo_1.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   └── data/
│       │   │   │   │   │   │       ├── NotoSansBold15.vlw
│       │   │   │   │   │   │       └── NotoSansBold36.vlw
│       │   │   │   │   │   ├── Font_Demo_2/
│       │   │   │   │   │   │   ├── Font_Demo_2.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   └── data/
│       │   │   │   │   │   │       ├── NotoSansBold15.vlw
│       │   │   │   │   │   │       └── NotoSansBold36.vlw
│       │   │   │   │   │   ├── Font_Demo_3/
│       │   │   │   │   │   │   ├── Font_Demo_3.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   └── data/
│       │   │   │   │   │   │       ├── NotoSansBold15.vlw
│       │   │   │   │   │   │       ├── NotoSansBold36.vlw
│       │   │   │   │   │   │       └── NotoSansMonoSCB20.vlw
│       │   │   │   │   │   ├── Font_Demo_4/
│       │   │   │   │   │   │   ├── Font_Demo_4.ino
│       │   │   │   │   │   │   ├── Notes.ino
│       │   │   │   │   │   │   └── data/
│       │   │   │   │   │   │       ├── NotoSansBold15.vlw
│       │   │   │   │   │   │       └── NotoSansBold36.vlw
│       │   │   │   │   │   ├── Print_Smooth_Font/
│       │   │   │   │   │   │   ├── Print_Smooth_Font.ino
│       │   │   │   │   │   │   └── data/
│       │   │   │   │   │   │       └── Final-Frontier-28.vlw
│       │   │   │   │   │   ├── Smooth_font_gradient/
│       │   │   │   │   │   │   ├── Smooth_font_gradient.ino
│       │   │   │   │   │   │   └── data/
│       │   │   │   │   │   │       ├── NotoSansBold15.vlw
│       │   │   │   │   │   │       └── NotoSansBold36.vlw
│       │   │   │   │   │   ├── Smooth_font_reading_TFT/
│       │   │   │   │   │   │   ├── Smooth_font_reading_TFT.ino
│       │   │   │   │   │   │   └── data/
│       │   │   │   │   │   │       ├── NotoSansBold15.vlw
│       │   │   │   │   │   │       └── NotoSansBold36.vlw
│       │   │   │   │   │   └── Unicode_test/
│       │   │   │   │   │       ├── LittleFS_functions.ino
│       │   │   │   │   │       ├── Unicode_test.ino
│       │   │   │   │   │       └── data/
│       │   │   │   │   │           ├── Final-Frontier-28.vlw
│       │   │   │   │   │           ├── Latin-Hiragana-24.vlw
│       │   │   │   │   │           └── Unicode-Test-72.vlw
│       │   │   │   │   ├── SD_Card/
│       │   │   │   │   │   └── ESP32_Smooth_Font_SD/
│       │   │   │   │   │       ├── ESP32_Smooth_Font_SD.ino
│       │   │   │   │   │       └── data/
│       │   │   │   │   │           └── Final-Frontier-28.vlw
│       │   │   │   │   └── SPIFFS/
│       │   │   │   │       ├── Font_Demo_1/
│       │   │   │   │       │   ├── Font_Demo_1.ino
│       │   │   │   │       │   ├── Notes.ino
│       │   │   │   │       │   └── data/
│       │   │   │   │       │       ├── NotoSansBold15.vlw
│       │   │   │   │       │       └── NotoSansBold36.vlw
│       │   │   │   │       ├── Font_Demo_2/
│       │   │   │   │       │   ├── Font_Demo_2.ino
│       │   │   │   │       │   ├── Notes.ino
│       │   │   │   │       │   └── data/
│       │   │   │   │       │       ├── NotoSansBold15.vlw
│       │   │   │   │       │       └── NotoSansBold36.vlw
│       │   │   │   │       ├── Font_Demo_3/
│       │   │   │   │       │   ├── Font_Demo_3.ino
│       │   │   │   │       │   ├── Notes.ino
│       │   │   │   │       │   └── data/
│       │   │   │   │       │       ├── NotoSansBold15.vlw
│       │   │   │   │       │       ├── NotoSansBold36.vlw
│       │   │   │   │       │       └── NotoSansMonoSCB20.vlw
│       │   │   │   │       ├── Font_Demo_4/
│       │   │   │   │       │   ├── Font_Demo_4.ino
│       │   │   │   │       │   ├── Notes.ino
│       │   │   │   │       │   └── data/
│       │   │   │   │       │       ├── NotoSansBold15.vlw
│       │   │   │   │       │       └── NotoSansBold36.vlw
│       │   │   │   │       ├── Print_Smooth_Font/
│       │   │   │   │       │   ├── Print_Smooth_Font.ino
│       │   │   │   │       │   └── data/
│       │   │   │   │       │       └── Final-Frontier-28.vlw
│       │   │   │   │       ├── Smooth_font_gradient/
│       │   │   │   │       │   ├── Smooth_font_gradient.ino
│       │   │   │   │       │   └── data/
│       │   │   │   │       │       ├── NotoSansBold15.vlw
│       │   │   │   │       │       └── NotoSansBold36.vlw
│       │   │   │   │       ├── Smooth_font_reading_TFT/
│       │   │   │   │       │   ├── Smooth_font_reading_TFT.ino
│       │   │   │   │       │   └── data/
│       │   │   │   │       │       ├── NotoSansBold15.vlw
│       │   │   │   │       │       └── NotoSansBold36.vlw
│       │   │   │   │       └── Unicode_test/
│       │   │   │   │           ├── SPIFFS_functions.ino
│       │   │   │   │           ├── Unicode_test.ino
│       │   │   │   │           └── data/
│       │   │   │   │               ├── Final-Frontier-28.vlw
│       │   │   │   │               ├── Latin-Hiragana-24.vlw
│       │   │   │   │               └── Unicode-Test-72.vlw
│       │   │   │   ├── Smooth Graphics/
│       │   │   │   │   ├── Anti-aliased_Clock/
│       │   │   │   │   │   ├── Anti-aliased_Clock.ino
│       │   │   │   │   │   ├── NTP_Time.h
│       │   │   │   │   │   └── NotoSansBold15.h
│       │   │   │   │   └── Smooth_Graphics_Demo/
│       │   │   │   │       └── Smooth_Graphics_Demo.ino
│       │   │   │   ├── Sprite/
│       │   │   │   │   ├── Animated_dial/
│       │   │   │   │   │   ├── Animated_dial.ino
│       │   │   │   │   │   ├── NotoSansBold36.h
│       │   │   │   │   │   └── dial.h
│       │   │   │   │   ├── One_bit_Sprite_Demo/
│       │   │   │   │   │   └── One_bit_Sprite_Demo.ino
│       │   │   │   │   ├── One_bit_Yin_Yang/
│       │   │   │   │   │   └── One_bit_Yin_Yang.ino
│       │   │   │   │   ├── Orrery/
│       │   │   │   │   │   ├── Orrery.ino
│       │   │   │   │   │   ├── astronomy.c
│       │   │   │   │   │   └── astronomy.h
│       │   │   │   │   ├── Rotated_Sprite_1/
│       │   │   │   │   │   └── Rotated_Sprite_1.ino
│       │   │   │   │   ├── Rotated_Sprite_2/
│       │   │   │   │   │   └── Rotated_Sprite_2.ino
│       │   │   │   │   ├── Rotated_Sprite_3/
│       │   │   │   │   │   └── Rotated_Sprite_3.ino
│       │   │   │   │   ├── Sprite_RLE_Font_test/
│       │   │   │   │   │   └── Sprite_RLE_Font_test.ino
│       │   │   │   │   ├── Sprite_TFT_Rainbow/
│       │   │   │   │   │   └── Sprite_TFT_Rainbow.ino
│       │   │   │   │   ├── Sprite_draw/
│       │   │   │   │   │   └── Sprite_draw.ino
│       │   │   │   │   ├── Sprite_draw_4bit/
│       │   │   │   │   │   └── Sprite_draw_4bit.ino
│       │   │   │   │   ├── Sprite_image_4bit/
│       │   │   │   │   │   ├── Sprite_image_4bit.ino
│       │   │   │   │   │   ├── sample_images.h
│       │   │   │   │   │   └── starImage.cpp
│       │   │   │   │   ├── Sprite_scroll/
│       │   │   │   │   │   └── Sprite_scroll.ino
│       │   │   │   │   ├── Sprite_scroll_16bit/
│       │   │   │   │   │   └── Sprite_scroll_16bit.ino
│       │   │   │   │   ├── Sprite_scroll_1bit/
│       │   │   │   │   │   └── Sprite_scroll_1bit.ino
│       │   │   │   │   ├── Sprite_scroll_4bit/
│       │   │   │   │   │   └── Sprite_scroll_4bit.ino
│       │   │   │   │   ├── Sprite_scroll_8bit/
│       │   │   │   │   │   └── Sprite_scroll_8bit.ino
│       │   │   │   │   ├── Sprite_scroll_wrap_1bit/
│       │   │   │   │   │   └── Sprite_scroll_wrap_1bit.ino
│       │   │   │   │   ├── Transparent_Sprite_Demo/
│       │   │   │   │   │   └── Transparent_Sprite_Demo.ino
│       │   │   │   │   └── Transparent_Sprite_Demo_4bit/
│       │   │   │   │       └── Transparent_Sprite_Demo_4bit.ino
│       │   │   │   ├── Test and diagnostics/
│       │   │   │   │   ├── Colour_Test/
│       │   │   │   │   │   └── Colour_Test.ino
│       │   │   │   │   ├── Read_User_Setup/
│       │   │   │   │   │   └── Read_User_Setup.ino
│       │   │   │   │   ├── TFT_ReadWrite_Test/
│       │   │   │   │   │   └── TFT_ReadWrite_Test.ino
│       │   │   │   │   └── Test_Touch_Controller/
│       │   │   │   │       └── Test_Touch_Controller.ino
│       │   │   │   └── ePaper/
│       │   │   │       └── Floyd_Steinberg/
│       │   │   │           ├── EPD_Support.h
│       │   │   │           ├── Floyd_Steinberg.ino
│       │   │   │           ├── Floyd_Steinberg_BMP.ino
│       │   │   │           └── SPIFFS.ino
│       │   │   ├── keywords.txt
│       │   │   ├── library.json
│       │   │   ├── library.properties
│       │   │   └── license.txt
│       │   ├── TJpg_Decoder/
│       │   │   ├── README.md
│       │   │   ├── examples/
│       │   │   │   ├── All_SPIFFS/
│       │   │   │   │   └── All_SPIFFS.ino
│       │   │   │   ├── Flash_Jpg/
│       │   │   │   │   ├── Flash_Jpg.ino
│       │   │   │   │   └── panda.h
│       │   │   │   ├── Flash_Jpg_GFX/
│       │   │   │   │   ├── Flash_Jpg_GFX.ino
│       │   │   │   │   └── panda.h
│       │   │   │   ├── SD_Jpg/
│       │   │   │   │   └── SD_Jpg.ino
│       │   │   │   ├── SPIFFS_Jpg/
│       │   │   │   │   └── SPIFFS_Jpg.ino
│       │   │   │   └── Web_Jpg/
│       │   │   │       ├── List_SPIFFS.h
│       │   │   │       ├── Web_Fetch.h
│       │   │   │       └── Web_Jpg.ino
│       │   │   ├── keywords.txt
│       │   │   ├── library.json
│       │   │   ├── library.properties
│       │   │   ├── license.txt
│       │   │   └── src/
│       │   │       ├── TJpg_Decoder.cpp
│       │   │       ├── TJpg_Decoder.h
│       │   │       ├── User_Config.h
│       │   │       ├── tjpgd.c
│       │   │       └── tjpgd.h
│       │   └── lvgl/
│       │       ├── .codecov.yml
│       │       ├── .editorconfig
│       │       ├── .github/
│       │       │   ├── FUNDING.yml
│       │       │   ├── ISSUE_TEMPLATE/
│       │       │   │   ├── bug-report.md
│       │       │   │   ├── config.yml
│       │       │   │   └── dev-discussion.md
│       │       │   ├── auto-comment.yml
│       │       │   ├── pull_request_template.md
│       │       │   └── workflows/
│       │       │       ├── arduino.yml
│       │       │       ├── build_micropython.yml
│       │       │       ├── ccpp.yml
│       │       │       ├── check_conf.yml
│       │       │       ├── check_style.yml
│       │       │       ├── close_old_issues.yml
│       │       │       ├── compile_docs.yml
│       │       │       ├── esp_upload_component.yml
│       │       │       ├── main.yml
│       │       │       └── release.yml
│       │       ├── .gitignore
│       │       ├── CMakeLists.txt
│       │       ├── Kconfig
│       │       ├── LICENCE.txt
│       │       ├── README.md
│       │       ├── README_zh.md
│       │       ├── SConscript
│       │       ├── component.mk
│       │       ├── demos/
│       │       │   ├── README.md
│       │       │   ├── benchmark/
│       │       │   │   ├── README.md
│       │       │   │   ├── assets/
│       │       │   │   │   ├── img_benchmark_cogwheel_alpha16.c
│       │       │   │   │   ├── img_benchmark_cogwheel_argb.c
│       │       │   │   │   ├── img_benchmark_cogwheel_chroma_keyed.c
│       │       │   │   │   ├── img_benchmark_cogwheel_indexed16.c
│       │       │   │   │   ├── img_benchmark_cogwheel_rgb.c
│       │       │   │   │   ├── lv_font_bechmark_montserrat_12_compr_az.c.c
│       │       │   │   │   ├── lv_font_bechmark_montserrat_16_compr_az.c.c
│       │       │   │   │   └── lv_font_bechmark_montserrat_28_compr_az.c.c
│       │       │   │   ├── lv_demo_benchmark.c
│       │       │   │   └── lv_demo_benchmark.h
│       │       │   ├── keypad_encoder/
│       │       │   │   ├── README.md
│       │       │   │   ├── lv_demo_keypad_encoder.c
│       │       │   │   └── lv_demo_keypad_encoder.h
│       │       │   ├── lv_demos.h
│       │       │   ├── lv_demos.mk
│       │       │   ├── music/
│       │       │   │   ├── README.md
│       │       │   │   ├── assets/
│       │       │   │   │   ├── img_lv_demo_music_btn_corner_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_list_pause.c
│       │       │   │   │   ├── img_lv_demo_music_btn_list_pause_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_list_play.c
│       │       │   │   │   ├── img_lv_demo_music_btn_list_play_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_loop.c
│       │       │   │   │   ├── img_lv_demo_music_btn_loop_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_next.c
│       │       │   │   │   ├── img_lv_demo_music_btn_next_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_pause.c
│       │       │   │   │   ├── img_lv_demo_music_btn_pause_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_play.c
│       │       │   │   │   ├── img_lv_demo_music_btn_play_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_prev.c
│       │       │   │   │   ├── img_lv_demo_music_btn_prev_large.c
│       │       │   │   │   ├── img_lv_demo_music_btn_rnd.c
│       │       │   │   │   ├── img_lv_demo_music_btn_rnd_large.c
│       │       │   │   │   ├── img_lv_demo_music_corner_left.c
│       │       │   │   │   ├── img_lv_demo_music_corner_left_large.c
│       │       │   │   │   ├── img_lv_demo_music_corner_right.c
│       │       │   │   │   ├── img_lv_demo_music_corner_right_large.c
│       │       │   │   │   ├── img_lv_demo_music_cover_1.c
│       │       │   │   │   ├── img_lv_demo_music_cover_1_large.c
│       │       │   │   │   ├── img_lv_demo_music_cover_2.c
│       │       │   │   │   ├── img_lv_demo_music_cover_2_large.c
│       │       │   │   │   ├── img_lv_demo_music_cover_3.c
│       │       │   │   │   ├── img_lv_demo_music_cover_3_large.c
│       │       │   │   │   ├── img_lv_demo_music_icon_1.c
│       │       │   │   │   ├── img_lv_demo_music_icon_1_large.c
│       │       │   │   │   ├── img_lv_demo_music_icon_2.c
│       │       │   │   │   ├── img_lv_demo_music_icon_2_large.c
│       │       │   │   │   ├── img_lv_demo_music_icon_3.c
│       │       │   │   │   ├── img_lv_demo_music_icon_3_large.c
│       │       │   │   │   ├── img_lv_demo_music_icon_4.c
│       │       │   │   │   ├── img_lv_demo_music_icon_4_large.c
│       │       │   │   │   ├── img_lv_demo_music_list_border.c
│       │       │   │   │   ├── img_lv_demo_music_list_border_large.c
│       │       │   │   │   ├── img_lv_demo_music_logo.c
│       │       │   │   │   ├── img_lv_demo_music_slider_knob.c
│       │       │   │   │   ├── img_lv_demo_music_slider_knob_large.c
│       │       │   │   │   ├── img_lv_demo_music_wave_bottom.c
│       │       │   │   │   ├── img_lv_demo_music_wave_bottom_large.c
│       │       │   │   │   ├── img_lv_demo_music_wave_top.c
│       │       │   │   │   ├── img_lv_demo_music_wave_top_large.c
│       │       │   │   │   ├── spectrum.py
│       │       │   │   │   ├── spectrum_1.h
│       │       │   │   │   ├── spectrum_2.h
│       │       │   │   │   └── spectrum_3.h
│       │       │   │   ├── lv_demo_music.c
│       │       │   │   ├── lv_demo_music.h
│       │       │   │   ├── lv_demo_music_list.c
│       │       │   │   ├── lv_demo_music_list.h
│       │       │   │   ├── lv_demo_music_main.c
│       │       │   │   └── lv_demo_music_main.h
│       │       │   ├── stress/
│       │       │   │   ├── README.md
│       │       │   │   ├── assets/
│       │       │   │   │   ├── lv_font_montserrat_12_compr_az.c
│       │       │   │   │   ├── lv_font_montserrat_16_compr_az.c
│       │       │   │   │   └── lv_font_montserrat_28_compr_az.c
│       │       │   │   ├── lv_demo_stress.c
│       │       │   │   └── lv_demo_stress.h
│       │       │   └── widgets/
│       │       │       ├── assets/
│       │       │       │   ├── img_clothes.c
│       │       │       │   ├── img_demo_widgets_avatar.c
│       │       │       │   └── img_lvgl_logo.c
│       │       │       ├── lv_demo_widgets.c
│       │       │       ├── lv_demo_widgets.h
│       │       │       └── lv_demo_widgets.py
│       │       ├── docs/
│       │       │   ├── CHANGELOG.md
│       │       │   ├── CODE_OF_CONDUCT.md
│       │       │   ├── CODING_STYLE.md
│       │       │   ├── CONTRIBUTING.md
│       │       │   ├── ROADMAP.md
│       │       │   ├── _ext/
│       │       │   │   └── lv_example.py
│       │       │   ├── _static/
│       │       │   │   └── css/
│       │       │   │       └── custom.css
│       │       │   ├── _templates/
│       │       │   │   ├── layout.html
│       │       │   │   └── page.html
│       │       │   ├── build.py
│       │       │   ├── conf.py
│       │       │   ├── example_list.py
│       │       │   ├── get-started/
│       │       │   │   ├── arduino.md
│       │       │   │   ├── cmake.md
│       │       │   │   ├── espressif.md
│       │       │   │   ├── index.md
│       │       │   │   ├── micropython.md
│       │       │   │   ├── nuttx.md
│       │       │   │   ├── nxp.md
│       │       │   │   ├── pc-simulator.md
│       │       │   │   ├── quick-overview.md
│       │       │   │   ├── rt-thread.md
│       │       │   │   ├── stm32.md
│       │       │   │   └── tasmota-berry.md
│       │       │   ├── header.rst
│       │       │   ├── index.md
│       │       │   ├── intro/
│       │       │   │   └── index.md
│       │       │   ├── layouts/
│       │       │   │   ├── flex.md
│       │       │   │   ├── grid.md
│       │       │   │   └── index.md
│       │       │   ├── libs/
│       │       │   │   ├── bmp.md
│       │       │   │   ├── ffmpeg.md
│       │       │   │   ├── freetype.md
│       │       │   │   ├── fsdrv.md
│       │       │   │   ├── gif.md
│       │       │   │   ├── index.md
│       │       │   │   ├── png.md
│       │       │   │   ├── qrcode.md
│       │       │   │   ├── rlottie.md
│       │       │   │   └── sjpg.md
│       │       │   ├── others/
│       │       │   │   ├── gridnav.md
│       │       │   │   ├── index.md
│       │       │   │   ├── monkey.md
│       │       │   │   └── snapshot.md
│       │       │   ├── overview/
│       │       │   │   ├── animation.md
│       │       │   │   ├── color.md
│       │       │   │   ├── coords.md
│       │       │   │   ├── display.md
│       │       │   │   ├── drawing.md
│       │       │   │   ├── event.md
│       │       │   │   ├── file-system.md
│       │       │   │   ├── font.md
│       │       │   │   ├── image.md
│       │       │   │   ├── indev.md
│       │       │   │   ├── index.md
│       │       │   │   ├── layer.md
│       │       │   │   ├── new_widget.md
│       │       │   │   ├── object.md
│       │       │   │   ├── scroll.md
│       │       │   │   ├── style-props.md
│       │       │   │   ├── style.md
│       │       │   │   └── timer.md
│       │       │   ├── porting/
│       │       │   │   ├── display.md
│       │       │   │   ├── gpu.md
│       │       │   │   ├── indev.md
│       │       │   │   ├── index.md
│       │       │   │   ├── log.md
│       │       │   │   ├── os.md
│       │       │   │   ├── project.md
│       │       │   │   ├── sleep.md
│       │       │   │   ├── task-handler.md
│       │       │   │   └── tick.md
│       │       │   ├── requirements.txt
│       │       │   └── widgets/
│       │       │       ├── core/
│       │       │       │   ├── arc.md
│       │       │       │   ├── bar.md
│       │       │       │   ├── btn.md
│       │       │       │   ├── btnmatrix.md
│       │       │       │   ├── canvas.md
│       │       │       │   ├── checkbox.md
│       │       │       │   ├── dropdown.md
│       │       │       │   ├── img.md
│       │       │       │   ├── index.md
│       │       │       │   ├── label.md
│       │       │       │   ├── line.md
│       │       │       │   ├── roller.md
│       │       │       │   ├── slider.md
│       │       │       │   ├── switch.md
│       │       │       │   ├── table.md
│       │       │       │   └── textarea.md
│       │       │       ├── extra/
│       │       │       │   ├── animimg.md
│       │       │       │   ├── calendar.md
│       │       │       │   ├── chart.md
│       │       │       │   ├── colorwheel.md
│       │       │       │   ├── imgbtn.md
│       │       │       │   ├── index.md
│       │       │       │   ├── keyboard.md
│       │       │       │   ├── led.md
│       │       │       │   ├── list.md
│       │       │       │   ├── menu.md
│       │       │       │   ├── meter.md
│       │       │       │   ├── msgbox.md
│       │       │       │   ├── span.md
│       │       │       │   ├── spinbox.md
│       │       │       │   ├── spinner.md
│       │       │       │   ├── tabview.md
│       │       │       │   ├── tileview.md
│       │       │       │   └── win.md
│       │       │       ├── index.md
│       │       │       └── obj.md
│       │       ├── env_support/
│       │       │   ├── cmake/
│       │       │   │   ├── custom.cmake
│       │       │   │   ├── esp.cmake
│       │       │   │   ├── micropython.cmake
│       │       │   │   └── zephyr.cmake
│       │       │   ├── cmsis-pack/
│       │       │   │   ├── LVGL.lvgl.1.0.0.pack
│       │       │   │   ├── LVGL.lvgl.pdsc
│       │       │   │   ├── README.md
│       │       │   │   ├── gen_pack.sh
│       │       │   │   ├── lv_cmsis_pack.txt
│       │       │   │   └── lv_conf_cmsis.h
│       │       │   ├── rt-thread/
│       │       │   │   ├── SConscript
│       │       │   │   ├── lv_rt_thread_conf.h
│       │       │   │   └── lv_rt_thread_port.c
│       │       │   └── zephyr/
│       │       │       └── module.yml
│       │       ├── examples/
│       │       │   ├── anim/
│       │       │   │   ├── index.rst
│       │       │   │   ├── lv_example_anim.h
│       │       │   │   ├── lv_example_anim_1.c
│       │       │   │   ├── lv_example_anim_1.py
│       │       │   │   ├── lv_example_anim_2.c
│       │       │   │   ├── lv_example_anim_2.py
│       │       │   │   ├── lv_example_anim_3.c
│       │       │   │   ├── lv_example_anim_3.py
│       │       │   │   ├── lv_example_anim_timeline_1.c
│       │       │   │   └── lv_example_anim_timeline_1.py
│       │       │   ├── arduino/
│       │       │   │   └── LVGL_Arduino/
│       │       │   │       └── LVGL_Arduino.ino
│       │       │   ├── assets/
│       │       │   │   ├── animimg001.c
│       │       │   │   ├── animimg002.c
│       │       │   │   ├── animimg003.c
│       │       │   │   ├── font/
│       │       │   │   │   ├── lv_font_simsun_16_cjk.fnt
│       │       │   │   │   ├── montserrat-16.fnt
│       │       │   │   │   └── montserrat-22.fnt
│       │       │   │   ├── img_caret_down.c
│       │       │   │   ├── img_cogwheel_alpha16.c
│       │       │   │   ├── img_cogwheel_argb.c
│       │       │   │   ├── img_cogwheel_chroma_keyed.c
│       │       │   │   ├── img_cogwheel_indexed16.c
│       │       │   │   ├── img_cogwheel_rgb.c
│       │       │   │   ├── img_hand.c
│       │       │   │   ├── img_skew_strip.c
│       │       │   │   ├── img_skew_strip_80x20_argb8888.fnt
│       │       │   │   ├── img_star.c
│       │       │   │   ├── imgbtn_left.c
│       │       │   │   ├── imgbtn_mid.c
│       │       │   │   └── imgbtn_right.c
│       │       │   ├── event/
│       │       │   │   ├── index.rst
│       │       │   │   ├── lv_example_event.h
│       │       │   │   ├── lv_example_event_1.c
│       │       │   │   ├── lv_example_event_1.py
│       │       │   │   ├── lv_example_event_2.c
│       │       │   │   ├── lv_example_event_2.py
│       │       │   │   ├── lv_example_event_3.c
│       │       │   │   ├── lv_example_event_3.py
│       │       │   │   └── lv_example_event_4.c
│       │       │   ├── examples.mk
│       │       │   ├── get_started/
│       │       │   │   ├── index.rst
│       │       │   │   ├── lv_example_get_started.h
│       │       │   │   ├── lv_example_get_started_1.c
│       │       │   │   ├── lv_example_get_started_1.py
│       │       │   │   ├── lv_example_get_started_2.c
│       │       │   │   ├── lv_example_get_started_2.py
│       │       │   │   ├── lv_example_get_started_3.c
│       │       │   │   └── lv_example_get_started_3.py
│       │       │   ├── header.py
│       │       │   ├── layouts/
│       │       │   │   ├── flex/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_flex.h
│       │       │   │   │   ├── lv_example_flex_1.c
│       │       │   │   │   ├── lv_example_flex_1.py
│       │       │   │   │   ├── lv_example_flex_2.c
│       │       │   │   │   ├── lv_example_flex_2.py
│       │       │   │   │   ├── lv_example_flex_3.c
│       │       │   │   │   ├── lv_example_flex_3.py
│       │       │   │   │   ├── lv_example_flex_4.c
│       │       │   │   │   ├── lv_example_flex_4.py
│       │       │   │   │   ├── lv_example_flex_5.c
│       │       │   │   │   ├── lv_example_flex_5.py
│       │       │   │   │   ├── lv_example_flex_6.c
│       │       │   │   │   └── lv_example_flex_6.py
│       │       │   │   ├── grid/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_grid.h
│       │       │   │   │   ├── lv_example_grid_1.c
│       │       │   │   │   ├── lv_example_grid_1.py
│       │       │   │   │   ├── lv_example_grid_2.c
│       │       │   │   │   ├── lv_example_grid_2.py
│       │       │   │   │   ├── lv_example_grid_3.c
│       │       │   │   │   ├── lv_example_grid_3.py
│       │       │   │   │   ├── lv_example_grid_4.c
│       │       │   │   │   ├── lv_example_grid_4.py
│       │       │   │   │   ├── lv_example_grid_5.c
│       │       │   │   │   ├── lv_example_grid_5.py
│       │       │   │   │   ├── lv_example_grid_6.c
│       │       │   │   │   └── lv_example_grid_6.py
│       │       │   │   └── lv_example_layout.h
│       │       │   ├── libs/
│       │       │   │   ├── bmp/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_bmp.h
│       │       │   │   │   ├── lv_example_bmp_1.c
│       │       │   │   │   └── lv_example_bmp_1.py
│       │       │   │   ├── ffmpeg/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_ffmpeg.h
│       │       │   │   │   ├── lv_example_ffmpeg_1.c
│       │       │   │   │   └── lv_example_ffmpeg_2.c
│       │       │   │   ├── freetype/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_freetype.h
│       │       │   │   │   ├── lv_example_freetype_1.c
│       │       │   │   │   └── lv_example_freetype_1.py
│       │       │   │   ├── gif/
│       │       │   │   │   ├── img_bulb_gif.c
│       │       │   │   │   ├── img_bulb_gif.py
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_gif.h
│       │       │   │   │   ├── lv_example_gif_1.c
│       │       │   │   │   └── lv_example_gif_1.py
│       │       │   │   ├── lv_example_libs.h
│       │       │   │   ├── png/
│       │       │   │   │   ├── img_wink_png.c
│       │       │   │   │   ├── img_wink_png.py
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_png.h
│       │       │   │   │   ├── lv_example_png_1.c
│       │       │   │   │   └── lv_example_png_1.py
│       │       │   │   ├── qrcode/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_qrcode.h
│       │       │   │   │   ├── lv_example_qrcode_1.c
│       │       │   │   │   └── lv_example_qrcode_1.py
│       │       │   │   ├── rlottie/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_rlottie.h
│       │       │   │   │   ├── lv_example_rlottie_1.c
│       │       │   │   │   ├── lv_example_rlottie_1.py
│       │       │   │   │   ├── lv_example_rlottie_2.c
│       │       │   │   │   ├── lv_example_rlottie_2.py
│       │       │   │   │   ├── lv_example_rlottie_approve.c
│       │       │   │   │   ├── lv_example_rlottie_approve.json
│       │       │   │   │   └── lv_example_rlottie_approve.py
│       │       │   │   └── sjpg/
│       │       │   │       ├── index.rst
│       │       │   │       ├── lv_example_sjpg.h
│       │       │   │       ├── lv_example_sjpg_1.c
│       │       │   │       ├── lv_example_sjpg_1.py
│       │       │   │       └── small_image.sjpg
│       │       │   ├── lv_examples.h
│       │       │   ├── others/
│       │       │   │   ├── gridnav/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_gridnav.h
│       │       │   │   │   ├── lv_example_gridnav_1.c
│       │       │   │   │   ├── lv_example_gridnav_2.c
│       │       │   │   │   ├── lv_example_gridnav_3.c
│       │       │   │   │   └── lv_example_gridnav_4.c
│       │       │   │   ├── lv_example_others.h
│       │       │   │   ├── monkey/
│       │       │   │   │   ├── index.rst
│       │       │   │   │   ├── lv_example_monkey.h
│       │       │   │   │   ├── lv_example_monkey_1.c
│       │       │   │   │   ├── lv_example_monkey_2.c
│       │       │   │   │   └── lv_example_monkey_3.c
│       │       │   │   └── snapshot/
│       │       │   │       ├── index.rst
│       │       │   │       ├── lv_example_snapshot.h
│       │       │   │       ├── lv_example_snapshot_1.c
│       │       │   │       └── lv_example_snapshot_1.py
│       │       │   ├── porting/
│       │       │   │   ├── lv_port_disp_template.c
│       │       │   │   ├── lv_port_disp_template.h
│       │       │   │   ├── lv_port_fs_template.c
│       │       │   │   ├── lv_port_fs_template.h
│       │       │   │   ├── lv_port_indev_template.c
│       │       │   │   └── lv_port_indev_template.h
│       │       │   ├── scroll/
│       │       │   │   ├── index.rst
│       │       │   │   ├── lv_example_scroll.h
│       │       │   │   ├── lv_example_scroll_1.c
│       │       │   │   ├── lv_example_scroll_1.py
│       │       │   │   ├── lv_example_scroll_2.c
│       │       │   │   ├── lv_example_scroll_2.py
│       │       │   │   ├── lv_example_scroll_3.c
│       │       │   │   ├── lv_example_scroll_3.py
│       │       │   │   ├── lv_example_scroll_4.c
│       │       │   │   ├── lv_example_scroll_4.py
│       │       │   │   ├── lv_example_scroll_5.c
│       │       │   │   ├── lv_example_scroll_5.py
│       │       │   │   ├── lv_example_scroll_6.c
│       │       │   │   └── lv_example_scroll_6.py
│       │       │   ├── styles/
│       │       │   │   ├── index.rst
│       │       │   │   ├── lv_example_style.h
│       │       │   │   ├── lv_example_style_1.c
│       │       │   │   ├── lv_example_style_1.py
│       │       │   │   ├── lv_example_style_10.c
│       │       │   │   ├── lv_example_style_10.py
│       │       │   │   ├── lv_example_style_11.c
│       │       │   │   ├── lv_example_style_11.py
│       │       │   │   ├── lv_example_style_12.c
│       │       │   │   ├── lv_example_style_12.py
│       │       │   │   ├── lv_example_style_13.c
│       │       │   │   ├── lv_example_style_13.py
│       │       │   │   ├── lv_example_style_14.c
│       │       │   │   ├── lv_example_style_14.py
│       │       │   │   ├── lv_example_style_2.c
│       │       │   │   ├── lv_example_style_2.py
│       │       │   │   ├── lv_example_style_3.c
│       │       │   │   ├── lv_example_style_3.py
│       │       │   │   ├── lv_example_style_4.c
│       │       │   │   ├── lv_example_style_4.py
│       │       │   │   ├── lv_example_style_5.c
│       │       │   │   ├── lv_example_style_5.py
│       │       │   │   ├── lv_example_style_6.c
│       │       │   │   ├── lv_example_style_6.py
│       │       │   │   ├── lv_example_style_7.c
│       │       │   │   ├── lv_example_style_7.py
│       │       │   │   ├── lv_example_style_8.c
│       │       │   │   ├── lv_example_style_8.py
│       │       │   │   ├── lv_example_style_9.c
│       │       │   │   └── lv_example_style_9.py
│       │       │   ├── test_ex.sh
│       │       │   └── widgets/
│       │       │       ├── animimg/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_animimg_1.c
│       │       │       │   └── lv_example_animimg_1.py
│       │       │       ├── arc/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_arc_1.c
│       │       │       │   ├── lv_example_arc_1.py
│       │       │       │   ├── lv_example_arc_2.c
│       │       │       │   └── lv_example_arc_2.py
│       │       │       ├── bar/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_bar_1.c
│       │       │       │   ├── lv_example_bar_1.py
│       │       │       │   ├── lv_example_bar_2.c
│       │       │       │   ├── lv_example_bar_2.py
│       │       │       │   ├── lv_example_bar_3.c
│       │       │       │   ├── lv_example_bar_3.py
│       │       │       │   ├── lv_example_bar_4.c
│       │       │       │   ├── lv_example_bar_4.py
│       │       │       │   ├── lv_example_bar_5.c
│       │       │       │   ├── lv_example_bar_5.py
│       │       │       │   ├── lv_example_bar_6.c
│       │       │       │   ├── lv_example_bar_6.py
│       │       │       │   └── test.py
│       │       │       ├── btn/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_btn_1.c
│       │       │       │   ├── lv_example_btn_1.py
│       │       │       │   ├── lv_example_btn_2.c
│       │       │       │   ├── lv_example_btn_2.py
│       │       │       │   ├── lv_example_btn_3.c
│       │       │       │   └── lv_example_btn_3.py
│       │       │       ├── btnmatrix/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_btnmatrix_1.c
│       │       │       │   ├── lv_example_btnmatrix_1.py
│       │       │       │   ├── lv_example_btnmatrix_2.c
│       │       │       │   ├── lv_example_btnmatrix_2.py
│       │       │       │   ├── lv_example_btnmatrix_3.c
│       │       │       │   └── lv_example_btnmatrix_3.py
│       │       │       ├── calendar/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_calendar_1.c
│       │       │       │   └── lv_example_calendar_1.py
│       │       │       ├── canvas/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_canvas_1.c
│       │       │       │   ├── lv_example_canvas_1.py
│       │       │       │   ├── lv_example_canvas_2.c
│       │       │       │   └── lv_example_canvas_2.py
│       │       │       ├── chart/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_chart_1.c
│       │       │       │   ├── lv_example_chart_1.py
│       │       │       │   ├── lv_example_chart_2.c
│       │       │       │   ├── lv_example_chart_2.py
│       │       │       │   ├── lv_example_chart_3.c
│       │       │       │   ├── lv_example_chart_3.py
│       │       │       │   ├── lv_example_chart_4.c
│       │       │       │   ├── lv_example_chart_4.py
│       │       │       │   ├── lv_example_chart_5.c
│       │       │       │   ├── lv_example_chart_5.py
│       │       │       │   ├── lv_example_chart_6.c
│       │       │       │   ├── lv_example_chart_6.py
│       │       │       │   ├── lv_example_chart_7.c
│       │       │       │   ├── lv_example_chart_7.py
│       │       │       │   ├── lv_example_chart_8.c
│       │       │       │   ├── lv_example_chart_8.py
│       │       │       │   ├── lv_example_chart_9.c
│       │       │       │   └── lv_example_chart_9.py
│       │       │       ├── checkbox/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_checkbox_1.c
│       │       │       │   ├── lv_example_checkbox_1.py
│       │       │       │   └── lv_example_checkbox_2.c
│       │       │       ├── colorwheel/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_colorwheel_1.c
│       │       │       │   └── lv_example_colorwheel_1.py
│       │       │       ├── dropdown/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_dropdown_1.c
│       │       │       │   ├── lv_example_dropdown_1.py
│       │       │       │   ├── lv_example_dropdown_2.c
│       │       │       │   ├── lv_example_dropdown_2.py
│       │       │       │   ├── lv_example_dropdown_3.c
│       │       │       │   └── lv_example_dropdown_3.py
│       │       │       ├── img/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_img_1.c
│       │       │       │   ├── lv_example_img_1.py
│       │       │       │   ├── lv_example_img_2.c
│       │       │       │   ├── lv_example_img_2.py
│       │       │       │   ├── lv_example_img_3.c
│       │       │       │   ├── lv_example_img_3.py
│       │       │       │   ├── lv_example_img_4.c
│       │       │       │   └── lv_example_img_4.py
│       │       │       ├── imgbtn/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_imgbtn_1.c
│       │       │       │   └── lv_example_imgbtn_1.py
│       │       │       ├── keyboard/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_keyboard_1.c
│       │       │       │   └── lv_example_keyboard_1.py
│       │       │       ├── label/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_label_1.c
│       │       │       │   ├── lv_example_label_1.py
│       │       │       │   ├── lv_example_label_2.c
│       │       │       │   ├── lv_example_label_2.py
│       │       │       │   ├── lv_example_label_3.c
│       │       │       │   ├── lv_example_label_3.py
│       │       │       │   └── lv_example_label_4.c
│       │       │       ├── led/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_led_1.c
│       │       │       │   └── lv_example_led_1.py
│       │       │       ├── line/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_line_1.c
│       │       │       │   └── lv_example_line_1.py
│       │       │       ├── list/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_list_1.c
│       │       │       │   ├── lv_example_list_1.py
│       │       │       │   ├── lv_example_list_2.c
│       │       │       │   ├── lv_example_list_2.py
│       │       │       │   └── test.py
│       │       │       ├── lv_example_widgets.h
│       │       │       ├── menu/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_menu_1.c
│       │       │       │   ├── lv_example_menu_1.py
│       │       │       │   ├── lv_example_menu_2.c
│       │       │       │   ├── lv_example_menu_2.py
│       │       │       │   ├── lv_example_menu_3.c
│       │       │       │   ├── lv_example_menu_3.py
│       │       │       │   ├── lv_example_menu_4.c
│       │       │       │   ├── lv_example_menu_4.py
│       │       │       │   └── lv_example_menu_5.c
│       │       │       ├── meter/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_meter_1.c
│       │       │       │   ├── lv_example_meter_1.py
│       │       │       │   ├── lv_example_meter_2.c
│       │       │       │   ├── lv_example_meter_2.py
│       │       │       │   ├── lv_example_meter_3.c
│       │       │       │   ├── lv_example_meter_3.py
│       │       │       │   ├── lv_example_meter_4.c
│       │       │       │   └── lv_example_meter_4.py
│       │       │       ├── msgbox/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_msgbox_1.c
│       │       │       │   └── lv_example_msgbox_1.py
│       │       │       ├── obj/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_obj_1.c
│       │       │       │   ├── lv_example_obj_1.py
│       │       │       │   ├── lv_example_obj_2.c
│       │       │       │   └── lv_example_obj_2.py
│       │       │       ├── roller/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_roller_1.c
│       │       │       │   ├── lv_example_roller_1.py
│       │       │       │   ├── lv_example_roller_2.c
│       │       │       │   ├── lv_example_roller_2.py
│       │       │       │   ├── lv_example_roller_3.c
│       │       │       │   └── lv_example_roller_3.py
│       │       │       ├── slider/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_slider_1.c
│       │       │       │   ├── lv_example_slider_1.py
│       │       │       │   ├── lv_example_slider_2.c
│       │       │       │   ├── lv_example_slider_2.py
│       │       │       │   ├── lv_example_slider_3.c
│       │       │       │   └── lv_example_slider_3.py
│       │       │       ├── span/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_span_1.c
│       │       │       │   └── lv_example_span_1.py
│       │       │       ├── spinbox/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_spinbox_1.c
│       │       │       │   └── lv_example_spinbox_1.py
│       │       │       ├── spinner/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_spinner_1.c
│       │       │       │   └── lv_example_spinner_1.py
│       │       │       ├── switch/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_switch_1.c
│       │       │       │   └── lv_example_switch_1.py
│       │       │       ├── table/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_table_1.c
│       │       │       │   ├── lv_example_table_1.py
│       │       │       │   ├── lv_example_table_2.c
│       │       │       │   └── lv_example_table_2.py
│       │       │       ├── tabview/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_tabview_1.c
│       │       │       │   ├── lv_example_tabview_1.py
│       │       │       │   ├── lv_example_tabview_2.c
│       │       │       │   └── lv_example_tabview_2.py
│       │       │       ├── textarea/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_textarea_1.c
│       │       │       │   ├── lv_example_textarea_1.py
│       │       │       │   ├── lv_example_textarea_2.c
│       │       │       │   ├── lv_example_textarea_2.py
│       │       │       │   ├── lv_example_textarea_3.c
│       │       │       │   └── lv_example_textarea_3.py
│       │       │       ├── tileview/
│       │       │       │   ├── index.rst
│       │       │       │   ├── lv_example_tileview_1.c
│       │       │       │   └── lv_example_tileview_1.py
│       │       │       └── win/
│       │       │           ├── index.rst
│       │       │           ├── lv_example_win_1.c
│       │       │           └── lv_example_win_1.py
│       │       ├── idf_component.yml
│       │       ├── library.json
│       │       ├── library.properties
│       │       ├── lv_conf.h
│       │       ├── lv_conf_template.h
│       │       ├── lvgl.h
│       │       ├── lvgl.mk
│       │       ├── scripts/
│       │       │   ├── .gitignore
│       │       │   ├── Doxyfile
│       │       │   ├── build_html_examples.sh
│       │       │   ├── built_in_font/
│       │       │   │   ├── built_in_font_gen.py
│       │       │   │   └── generate_all.py
│       │       │   ├── changelog-template.hbs
│       │       │   ├── changelog_gen.sh
│       │       │   ├── code-format.cfg
│       │       │   ├── code-format.py
│       │       │   ├── cppcheck_run.sh
│       │       │   ├── filetohex.py
│       │       │   ├── find_version.sh
│       │       │   ├── genexamplelist.sh
│       │       │   ├── infer_run.sh
│       │       │   ├── install-prerequisites.sh
│       │       │   ├── jpg_to_sjpg.py
│       │       │   ├── lv_conf_internal_gen.py
│       │       │   ├── release/
│       │       │   │   ├── com.py
│       │       │   │   ├── commits.txt
│       │       │   │   ├── patch.py
│       │       │   │   └── release.py
│       │       │   └── style_api_gen.py
│       │       ├── src/
│       │       │   ├── core/
│       │       │   │   ├── lv_core.mk
│       │       │   │   ├── lv_disp.c
│       │       │   │   ├── lv_disp.h
│       │       │   │   ├── lv_event.c
│       │       │   │   ├── lv_event.h
│       │       │   │   ├── lv_group.c
│       │       │   │   ├── lv_group.h
│       │       │   │   ├── lv_indev.c
│       │       │   │   ├── lv_indev.h
│       │       │   │   ├── lv_indev_scroll.c
│       │       │   │   ├── lv_indev_scroll.h
│       │       │   │   ├── lv_obj.c
│       │       │   │   ├── lv_obj.h
│       │       │   │   ├── lv_obj_class.c
│       │       │   │   ├── lv_obj_class.h
│       │       │   │   ├── lv_obj_draw.c
│       │       │   │   ├── lv_obj_draw.h
│       │       │   │   ├── lv_obj_pos.c
│       │       │   │   ├── lv_obj_pos.h
│       │       │   │   ├── lv_obj_scroll.c
│       │       │   │   ├── lv_obj_scroll.h
│       │       │   │   ├── lv_obj_style.c
│       │       │   │   ├── lv_obj_style.h
│       │       │   │   ├── lv_obj_style_gen.c
│       │       │   │   ├── lv_obj_style_gen.h
│       │       │   │   ├── lv_obj_tree.c
│       │       │   │   ├── lv_obj_tree.h
│       │       │   │   ├── lv_refr.c
│       │       │   │   ├── lv_refr.h
│       │       │   │   ├── lv_theme.c
│       │       │   │   └── lv_theme.h
│       │       │   ├── draw/
│       │       │   │   ├── lv_draw.c
│       │       │   │   ├── lv_draw.h
│       │       │   │   ├── lv_draw.mk
│       │       │   │   ├── lv_draw_arc.c
│       │       │   │   ├── lv_draw_arc.h
│       │       │   │   ├── lv_draw_img.c
│       │       │   │   ├── lv_draw_img.h
│       │       │   │   ├── lv_draw_label.c
│       │       │   │   ├── lv_draw_label.h
│       │       │   │   ├── lv_draw_line.c
│       │       │   │   ├── lv_draw_line.h
│       │       │   │   ├── lv_draw_mask.c
│       │       │   │   ├── lv_draw_mask.h
│       │       │   │   ├── lv_draw_rect.c
│       │       │   │   ├── lv_draw_rect.h
│       │       │   │   ├── lv_draw_triangle.c
│       │       │   │   ├── lv_draw_triangle.h
│       │       │   │   ├── lv_img_buf.c
│       │       │   │   ├── lv_img_buf.h
│       │       │   │   ├── lv_img_cache.c
│       │       │   │   ├── lv_img_cache.h
│       │       │   │   ├── lv_img_decoder.c
│       │       │   │   ├── lv_img_decoder.h
│       │       │   │   ├── nxp_pxp/
│       │       │   │   │   ├── lv_gpu_nxp_pxp.c
│       │       │   │   │   ├── lv_gpu_nxp_pxp.h
│       │       │   │   │   ├── lv_gpu_nxp_pxp_osa.c
│       │       │   │   │   └── lv_gpu_nxp_pxp_osa.h
│       │       │   │   ├── nxp_vglite/
│       │       │   │   │   ├── lv_gpu_nxp_vglite.c
│       │       │   │   │   └── lv_gpu_nxp_vglite.h
│       │       │   │   ├── sdl/
│       │       │   │   │   ├── README.md
│       │       │   │   │   ├── lv_draw_sdl.c
│       │       │   │   │   ├── lv_draw_sdl.h
│       │       │   │   │   ├── lv_draw_sdl.mk
│       │       │   │   │   ├── lv_draw_sdl_arc.c
│       │       │   │   │   ├── lv_draw_sdl_bg.c
│       │       │   │   │   ├── lv_draw_sdl_composite.c
│       │       │   │   │   ├── lv_draw_sdl_composite.h
│       │       │   │   │   ├── lv_draw_sdl_img.c
│       │       │   │   │   ├── lv_draw_sdl_img.h
│       │       │   │   │   ├── lv_draw_sdl_label.c
│       │       │   │   │   ├── lv_draw_sdl_line.c
│       │       │   │   │   ├── lv_draw_sdl_mask.c
│       │       │   │   │   ├── lv_draw_sdl_mask.h
│       │       │   │   │   ├── lv_draw_sdl_polygon.c
│       │       │   │   │   ├── lv_draw_sdl_priv.h
│       │       │   │   │   ├── lv_draw_sdl_rect.c
│       │       │   │   │   ├── lv_draw_sdl_rect.h
│       │       │   │   │   ├── lv_draw_sdl_stack_blur.c
│       │       │   │   │   ├── lv_draw_sdl_stack_blur.h
│       │       │   │   │   ├── lv_draw_sdl_texture_cache.c
│       │       │   │   │   ├── lv_draw_sdl_texture_cache.h
│       │       │   │   │   ├── lv_draw_sdl_utils.c
│       │       │   │   │   └── lv_draw_sdl_utils.h
│       │       │   │   ├── stm32_dma2d/
│       │       │   │   │   ├── lv_gpu_stm32_dma2d.c
│       │       │   │   │   └── lv_gpu_stm32_dma2d.h
│       │       │   │   └── sw/
│       │       │   │       ├── lv_draw_sw.c
│       │       │   │       ├── lv_draw_sw.h
│       │       │   │       ├── lv_draw_sw.mk
│       │       │   │       ├── lv_draw_sw_arc.c
│       │       │   │       ├── lv_draw_sw_blend.c
│       │       │   │       ├── lv_draw_sw_blend.h
│       │       │   │       ├── lv_draw_sw_dither.c
│       │       │   │       ├── lv_draw_sw_dither.h
│       │       │   │       ├── lv_draw_sw_gradient.c
│       │       │   │       ├── lv_draw_sw_gradient.h
│       │       │   │       ├── lv_draw_sw_img.c
│       │       │   │       ├── lv_draw_sw_letter.c
│       │       │   │       ├── lv_draw_sw_line.c
│       │       │   │       ├── lv_draw_sw_polygon.c
│       │       │   │       └── lv_draw_sw_rect.c
│       │       │   ├── extra/
│       │       │   │   ├── README.md
│       │       │   │   ├── extra.mk
│       │       │   │   ├── layouts/
│       │       │   │   │   ├── flex/
│       │       │   │   │   │   ├── lv_flex.c
│       │       │   │   │   │   └── lv_flex.h
│       │       │   │   │   ├── grid/
│       │       │   │   │   │   ├── lv_grid.c
│       │       │   │   │   │   └── lv_grid.h
│       │       │   │   │   └── lv_layouts.h
│       │       │   │   ├── libs/
│       │       │   │   │   ├── bmp/
│       │       │   │   │   │   ├── lv_bmp.c
│       │       │   │   │   │   └── lv_bmp.h
│       │       │   │   │   ├── ffmpeg/
│       │       │   │   │   │   ├── lv_ffmpeg.c
│       │       │   │   │   │   └── lv_ffmpeg.h
│       │       │   │   │   ├── freetype/
│       │       │   │   │   │   ├── lv_freetype.c
│       │       │   │   │   │   └── lv_freetype.h
│       │       │   │   │   ├── fsdrv/
│       │       │   │   │   │   ├── lv_fs_fatfs.c
│       │       │   │   │   │   ├── lv_fs_posix.c
│       │       │   │   │   │   ├── lv_fs_stdio.c
│       │       │   │   │   │   ├── lv_fs_win32.c
│       │       │   │   │   │   └── lv_fsdrv.h
│       │       │   │   │   ├── gif/
│       │       │   │   │   │   ├── gifdec.c
│       │       │   │   │   │   ├── gifdec.h
│       │       │   │   │   │   ├── lv_gif.c
│       │       │   │   │   │   └── lv_gif.h
│       │       │   │   │   ├── lv_libs.h
│       │       │   │   │   ├── png/
│       │       │   │   │   │   ├── lodepng.c
│       │       │   │   │   │   ├── lodepng.h
│       │       │   │   │   │   ├── lv_png.c
│       │       │   │   │   │   └── lv_png.h
│       │       │   │   │   ├── qrcode/
│       │       │   │   │   │   ├── lv_qrcode.c
│       │       │   │   │   │   ├── lv_qrcode.h
│       │       │   │   │   │   ├── qrcodegen.c
│       │       │   │   │   │   └── qrcodegen.h
│       │       │   │   │   ├── rlottie/
│       │       │   │   │   │   ├── lv_rlottie.c
│       │       │   │   │   │   └── lv_rlottie.h
│       │       │   │   │   └── sjpg/
│       │       │   │   │       ├── lv_sjpg.c
│       │       │   │   │       ├── lv_sjpg.h
│       │       │   │   │       ├── tjpgd.c
│       │       │   │   │       ├── tjpgd.h
│       │       │   │   │       └── tjpgdcnf.h
│       │       │   │   ├── lv_extra.c
│       │       │   │   ├── lv_extra.h
│       │       │   │   ├── others/
│       │       │   │   │   ├── gridnav/
│       │       │   │   │   │   ├── lv_gridnav.c
│       │       │   │   │   │   └── lv_gridnav.h
│       │       │   │   │   ├── lv_others.h
│       │       │   │   │   ├── monkey/
│       │       │   │   │   │   ├── lv_monkey.c
│       │       │   │   │   │   └── lv_monkey.h
│       │       │   │   │   └── snapshot/
│       │       │   │   │       ├── lv_snapshot.c
│       │       │   │   │       └── lv_snapshot.h
│       │       │   │   ├── themes/
│       │       │   │   │   ├── basic/
│       │       │   │   │   │   ├── lv_theme_basic.c
│       │       │   │   │   │   └── lv_theme_basic.h
│       │       │   │   │   ├── default/
│       │       │   │   │   │   ├── lv_theme_default.c
│       │       │   │   │   │   └── lv_theme_default.h
│       │       │   │   │   ├── lv_themes.h
│       │       │   │   │   └── mono/
│       │       │   │   │       ├── lv_theme_mono.c
│       │       │   │   │       └── lv_theme_mono.h
│       │       │   │   └── widgets/
│       │       │   │       ├── animimg/
│       │       │   │       │   ├── lv_animimg.c
│       │       │   │       │   └── lv_animimg.h
│       │       │   │       ├── calendar/
│       │       │   │       │   ├── lv_calendar.c
│       │       │   │       │   ├── lv_calendar.h
│       │       │   │       │   ├── lv_calendar_header_arrow.c
│       │       │   │       │   ├── lv_calendar_header_arrow.h
│       │       │   │       │   ├── lv_calendar_header_dropdown.c
│       │       │   │       │   └── lv_calendar_header_dropdown.h
│       │       │   │       ├── chart/
│       │       │   │       │   ├── lv_chart.c
│       │       │   │       │   └── lv_chart.h
│       │       │   │       ├── colorwheel/
│       │       │   │       │   ├── lv_colorwheel.c
│       │       │   │       │   └── lv_colorwheel.h
│       │       │   │       ├── imgbtn/
│       │       │   │       │   ├── lv_imgbtn.c
│       │       │   │       │   └── lv_imgbtn.h
│       │       │   │       ├── keyboard/
│       │       │   │       │   ├── lv_keyboard.c
│       │       │   │       │   └── lv_keyboard.h
│       │       │   │       ├── led/
│       │       │   │       │   ├── lv_led.c
│       │       │   │       │   └── lv_led.h
│       │       │   │       ├── list/
│       │       │   │       │   ├── lv_list.c
│       │       │   │       │   └── lv_list.h
│       │       │   │       ├── lv_widgets.h
│       │       │   │       ├── menu/
│       │       │   │       │   ├── lv_menu.c
│       │       │   │       │   └── lv_menu.h
│       │       │   │       ├── meter/
│       │       │   │       │   ├── lv_meter.c
│       │       │   │       │   └── lv_meter.h
│       │       │   │       ├── msgbox/
│       │       │   │       │   ├── lv_msgbox.c
│       │       │   │       │   └── lv_msgbox.h
│       │       │   │       ├── span/
│       │       │   │       │   ├── lv_span.c
│       │       │   │       │   └── lv_span.h
│       │       │   │       ├── spinbox/
│       │       │   │       │   ├── lv_spinbox.c
│       │       │   │       │   └── lv_spinbox.h
│       │       │   │       ├── spinner/
│       │       │   │       │   ├── lv_spinner.c
│       │       │   │       │   └── lv_spinner.h
│       │       │   │       ├── tabview/
│       │       │   │       │   ├── lv_tabview.c
│       │       │   │       │   └── lv_tabview.h
│       │       │   │       ├── tileview/
│       │       │   │       │   ├── lv_tileview.c
│       │       │   │       │   └── lv_tileview.h
│       │       │   │       └── win/
│       │       │   │           ├── lv_win.c
│       │       │   │           └── lv_win.h
│       │       │   ├── font/
│       │       │   │   ├── lv_font.c
│       │       │   │   ├── lv_font.h
│       │       │   │   ├── lv_font.mk
│       │       │   │   ├── lv_font_dejavu_16_persian_hebrew.c
│       │       │   │   ├── lv_font_fmt_txt.c
│       │       │   │   ├── lv_font_fmt_txt.h
│       │       │   │   ├── lv_font_loader.c
│       │       │   │   ├── lv_font_loader.h
│       │       │   │   ├── lv_font_montserrat_10.c
│       │       │   │   ├── lv_font_montserrat_12.c
│       │       │   │   ├── lv_font_montserrat_12_subpx.c
│       │       │   │   ├── lv_font_montserrat_14.c
│       │       │   │   ├── lv_font_montserrat_16.c
│       │       │   │   ├── lv_font_montserrat_18.c
│       │       │   │   ├── lv_font_montserrat_20.c
│       │       │   │   ├── lv_font_montserrat_22.c
│       │       │   │   ├── lv_font_montserrat_24.c
│       │       │   │   ├── lv_font_montserrat_26.c
│       │       │   │   ├── lv_font_montserrat_28.c
│       │       │   │   ├── lv_font_montserrat_28_compressed.c
│       │       │   │   ├── lv_font_montserrat_30.c
│       │       │   │   ├── lv_font_montserrat_32.c
│       │       │   │   ├── lv_font_montserrat_34.c
│       │       │   │   ├── lv_font_montserrat_36.c
│       │       │   │   ├── lv_font_montserrat_38.c
│       │       │   │   ├── lv_font_montserrat_40.c
│       │       │   │   ├── lv_font_montserrat_42.c
│       │       │   │   ├── lv_font_montserrat_44.c
│       │       │   │   ├── lv_font_montserrat_46.c
│       │       │   │   ├── lv_font_montserrat_48.c
│       │       │   │   ├── lv_font_montserrat_8.c
│       │       │   │   ├── lv_font_simsun_16_cjk.c
│       │       │   │   ├── lv_font_unscii_16.c
│       │       │   │   ├── lv_font_unscii_8.c
│       │       │   │   └── lv_symbol_def.h
│       │       │   ├── gpu/
│       │       │   │   └── lv_gpu.mk
│       │       │   ├── hal/
│       │       │   │   ├── lv_hal.h
│       │       │   │   ├── lv_hal.mk
│       │       │   │   ├── lv_hal_disp.c
│       │       │   │   ├── lv_hal_disp.h
│       │       │   │   ├── lv_hal_indev.c
│       │       │   │   ├── lv_hal_indev.h
│       │       │   │   ├── lv_hal_tick.c
│       │       │   │   └── lv_hal_tick.h
│       │       │   ├── lv_api_map.h
│       │       │   ├── lv_conf_internal.h
│       │       │   ├── lv_conf_kconfig.h
│       │       │   ├── lvgl.h
│       │       │   ├── misc/
│       │       │   │   ├── lv_anim.c
│       │       │   │   ├── lv_anim.h
│       │       │   │   ├── lv_anim_timeline.c
│       │       │   │   ├── lv_anim_timeline.h
│       │       │   │   ├── lv_area.c
│       │       │   │   ├── lv_area.h
│       │       │   │   ├── lv_assert.h
│       │       │   │   ├── lv_async.c
│       │       │   │   ├── lv_async.h
│       │       │   │   ├── lv_bidi.c
│       │       │   │   ├── lv_bidi.h
│       │       │   │   ├── lv_color.c
│       │       │   │   ├── lv_color.h
│       │       │   │   ├── lv_fs.c
│       │       │   │   ├── lv_fs.h
│       │       │   │   ├── lv_gc.c
│       │       │   │   ├── lv_gc.h
│       │       │   │   ├── lv_ll.c
│       │       │   │   ├── lv_ll.h
│       │       │   │   ├── lv_log.c
│       │       │   │   ├── lv_log.h
│       │       │   │   ├── lv_lru.c
│       │       │   │   ├── lv_lru.h
│       │       │   │   ├── lv_math.c
│       │       │   │   ├── lv_math.h
│       │       │   │   ├── lv_mem.c
│       │       │   │   ├── lv_mem.h
│       │       │   │   ├── lv_misc.mk
│       │       │   │   ├── lv_printf.c
│       │       │   │   ├── lv_printf.h
│       │       │   │   ├── lv_style.c
│       │       │   │   ├── lv_style.h
│       │       │   │   ├── lv_style_gen.c
│       │       │   │   ├── lv_style_gen.h
│       │       │   │   ├── lv_templ.c
│       │       │   │   ├── lv_templ.h
│       │       │   │   ├── lv_timer.c
│       │       │   │   ├── lv_timer.h
│       │       │   │   ├── lv_tlsf.c
│       │       │   │   ├── lv_tlsf.h
│       │       │   │   ├── lv_txt.c
│       │       │   │   ├── lv_txt.h
│       │       │   │   ├── lv_txt_ap.c
│       │       │   │   ├── lv_txt_ap.h
│       │       │   │   ├── lv_types.h
│       │       │   │   ├── lv_utils.c
│       │       │   │   └── lv_utils.h
│       │       │   └── widgets/
│       │       │       ├── lv_arc.c
│       │       │       ├── lv_arc.h
│       │       │       ├── lv_bar.c
│       │       │       ├── lv_bar.h
│       │       │       ├── lv_btn.c
│       │       │       ├── lv_btn.h
│       │       │       ├── lv_btnmatrix.c
│       │       │       ├── lv_btnmatrix.h
│       │       │       ├── lv_canvas.c
│       │       │       ├── lv_canvas.h
│       │       │       ├── lv_checkbox.c
│       │       │       ├── lv_checkbox.h
│       │       │       ├── lv_dropdown.c
│       │       │       ├── lv_dropdown.h
│       │       │       ├── lv_img.c
│       │       │       ├── lv_img.h
│       │       │       ├── lv_label.c
│       │       │       ├── lv_label.h
│       │       │       ├── lv_line.c
│       │       │       ├── lv_line.h
│       │       │       ├── lv_objx_templ.c
│       │       │       ├── lv_objx_templ.h
│       │       │       ├── lv_roller.c
│       │       │       ├── lv_roller.h
│       │       │       ├── lv_slider.c
│       │       │       ├── lv_slider.h
│       │       │       ├── lv_switch.c
│       │       │       ├── lv_switch.h
│       │       │       ├── lv_table.c
│       │       │       ├── lv_table.h
│       │       │       ├── lv_textarea.c
│       │       │       ├── lv_textarea.h
│       │       │       └── lv_widgets.mk
│       │       └── tests/
│       │           ├── .gitignore
│       │           ├── CMakeLists.txt
│       │           ├── README.md
│       │           ├── config.yml
│       │           ├── main.py
│       │           ├── src/
│       │           │   ├── lv_test_conf.h
│       │           │   ├── lv_test_helpers.h
│       │           │   ├── lv_test_indev.c
│       │           │   ├── lv_test_indev.h
│       │           │   ├── lv_test_init.c
│       │           │   ├── lv_test_init.h
│       │           │   ├── test_cases/
│       │           │   │   ├── _test_template.c
│       │           │   │   ├── test_arc.c
│       │           │   │   ├── test_bar.c
│       │           │   │   ├── test_checkbox.c
│       │           │   │   ├── test_config.c
│       │           │   │   ├── test_demo_stress.c
│       │           │   │   ├── test_demo_widgets.c
│       │           │   │   ├── test_dropdown.c
│       │           │   │   ├── test_event.c
│       │           │   │   ├── test_font_loader.c
│       │           │   │   ├── test_obj_tree.c
│       │           │   │   ├── test_snapshot.c
│       │           │   │   ├── test_style.c
│       │           │   │   ├── test_switch.c
│       │           │   │   └── test_txt.c
│       │           │   └── test_fonts/
│       │           │       ├── font_1.c
│       │           │       ├── font_1.fnt
│       │           │       ├── font_2.c
│       │           │       ├── font_2.fnt
│       │           │       ├── font_3.c
│       │           │       └── font_3.fnt
│       │           └── unity/
│       │               ├── generate_test_runner.rb
│       │               ├── run_test.erb
│       │               ├── type_sanitizer.rb
│       │               ├── unity.c
│       │               ├── unity.h
│       │               ├── unity_internals.h
│       │               ├── unity_support.c
│       │               └── unity_support.h
│       ├── partitions-no-ota.csv
│       ├── platformio.ini
│       ├── src/
│       │   ├── common.cpp
│       │   ├── common.h
│       │   ├── controller/
│       │   │   ├── base/
│       │   │   │   ├── controller_base.h
│       │   │   │   └── heat_ctrl_base.h
│       │   │   ├── heat_platform/
│       │   │   │   ├── heat_platform.cpp
│       │   │   │   ├── heat_platform.h
│       │   │   │   └── heat_platform_cfg.cpp
│       │   │   ├── hot_air/
│       │   │   │   ├── hot_air.cpp
│       │   │   │   ├── hot_air.h
│       │   │   │   └── hot_air_cfg.cpp
│       │   │   ├── osc/
│       │   │   │   ├── oscilloscope.cpp
│       │   │   │   └── oscilloscope.h
│       │   │   ├── power/
│       │   │   │   ├── adjustable_power.cpp
│       │   │   │   └── adjustable_power.h
│       │   │   ├── pwm/
│       │   │   │   ├── pwm_controller.cpp
│       │   │   │   └── pwm_controller.h
│       │   │   ├── signal_generator/
│       │   │   │   ├── signal_generator.cpp
│       │   │   │   └── signal_generator.h
│       │   │   └── solder/
│       │   │       ├── solder.cpp
│       │   │       ├── solder.h
│       │   │       └── solder_cfg.cpp
│       │   ├── driver/
│       │   │   ├── buzzer.cpp
│       │   │   ├── buzzer.h
│       │   │   ├── display.cpp
│       │   │   ├── display.h
│       │   │   ├── flash_fs.cpp
│       │   │   ├── flash_fs.h
│       │   │   ├── knobs.cpp
│       │   │   ├── knobs.h
│       │   │   ├── lv_port_fatfs.cpp
│       │   │   ├── lv_port_fatfs.h
│       │   │   ├── lv_port_indev.cpp
│       │   │   ├── lv_port_indev.h
│       │   │   ├── max6675.cpp
│       │   │   ├── max6675.h
│       │   │   ├── rgb_led.cpp
│       │   │   └── rgb_led.h
│       │   ├── main.cpp
│       │   ├── network.cpp
│       │   ├── network.h
│       │   ├── pid.cpp
│       │   ├── pid.h
│       │   └── sys/
│       │       ├── interface.h
│       │       ├── snail_manager.cpp
│       │       ├── snail_manager.h
│       │       └── snail_manager_cfg.cpp
│       └── test/
│           └── README
└── Tool/
    ├── .gitignore
    ├── GS_Hbed_Generator.py
    ├── QT_Tool/
    │   ├── .gitignore
    │   ├── MyRtttl.py
    │   ├── MyRtttl_1.py
    │   ├── MyRtttl_2_delete.py
    │   ├── MyRtttl_3_delete.py
    │   ├── SnailHeater_Tool.py
    │   ├── SnailHeater_Tool.spec
    │   ├── SnailHeater_Tool.yaml
    │   ├── SnailHeater_Tool_EL.yaml
    │   ├── SnailHeater_WinTool_pyqt5.py
    │   ├── SnailHeater_WinTool_pyqt5_EL.py
    │   ├── SnailHeater_WinTool_pyside2.py
    │   ├── SnailHeater_WinTool_pyside2_EL.py
    │   ├── ToRtttl.md
    │   ├── apprcc.qrc
    │   ├── apprcc_rc.py
    │   ├── choose_ver.py
    │   ├── common.py
    │   ├── createWallpaperClean.py
    │   ├── download.py
    │   ├── download.ui
    │   ├── download_EL.py
    │   ├── lvgl_image_converter/
    │   │   ├── .github/
    │   │   │   └── workflows/
    │   │   │       └── python-app.yml
    │   │   ├── .gitignore
    │   │   ├── LICENSE
    │   │   ├── README.md
    │   │   ├── __init__.py
    │   │   ├── lv_img_conv.py
    │   │   ├── lv_img_conv_win_spec/
    │   │   │   ├── README.md
    │   │   │   ├── config
    │   │   │   └── main.py
    │   │   ├── lv_img_converter/
    │   │   │   ├── __init__.py
    │   │   │   └── lv_img_converter.py
    │   │   └── requirements.txt
    │   ├── massagehead.py
    │   ├── midi2rtttl.py
    │   ├── midi2rtttl_0.py
    │   ├── midi2rtttl_simple.py
    │   ├── mywidgets.py
    │   ├── requirements.txt
    │   ├── requirements_pyqt5_venv.txt
    │   ├── requirements_pyside_venv.txt
    │   ├── spiffsgen.py
    │   ├── stub_flasher/
    │   │   ├── stub_flasher_32.json
    │   │   ├── stub_flasher_32c2.json
    │   │   ├── stub_flasher_32c3.json
    │   │   ├── stub_flasher_32c6.json
    │   │   ├── stub_flasher_32c6beta.json
    │   │   ├── stub_flasher_32h2.json
    │   │   ├── stub_flasher_32h2beta1.json
    │   │   ├── stub_flasher_32h2beta2.json
    │   │   ├── stub_flasher_32p4.json
    │   │   ├── stub_flasher_32s2.json
    │   │   ├── stub_flasher_32s3.json
    │   │   ├── stub_flasher_32s3beta2.json
    │   │   └── stub_flasher_8266.json
    │   ├── temporary_sn_recode.txt
    │   └── 视频素材.lnk
    ├── SnailHeater_SN.cfg
    ├── SnailHeater_WinTool.cfg
    ├── lceda_gerber_create/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── lceda_gerber.py
    │   └── task.yaml
    └── sn_recode.txt
Download .txt
Showing preview only (458K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (4711 symbols across 525 files)

FILE: Software/firmware_demo/lib/ESP32Time/ESP32Time.cpp
  type tm (line 54) | struct tm
  type timeval (line 73) | struct timeval
  function tm (line 82) | tm ESP32Time::getTimeStruct(){
  function String (line 94) | String ESP32Time::getDateTime(bool mode){
  function String (line 114) | String ESP32Time::getTimeDate(bool mode){
  function String (line 131) | String ESP32Time::getTime(){
  function String (line 144) | String ESP32Time::getTime(String format){
  function String (line 159) | String ESP32Time::getDate(bool mode){
  function String (line 179) | String ESP32Time::getDate(String format){
  type timeval (line 192) | struct timeval
  type timeval (line 201) | struct timeval
  type timeval (line 210) | struct timeval
  type tm (line 219) | struct tm
  type tm (line 227) | struct tm
  type tm (line 238) | struct tm
  function String (line 264) | String ESP32Time::getAmPm(bool lowercase){
  type tm (line 294) | struct tm
  type tm (line 302) | struct tm
  type tm (line 310) | struct tm
  type tm (line 318) | struct tm
  type tm (line 326) | struct tm

FILE: Software/firmware_demo/lib/ESP32Time/ESP32Time.h
  function class (line 30) | class ESP32Time {

FILE: Software/firmware_demo/lib/FastLED/src/FastLED.cpp
  function CLEDController (line 33) | CLEDController &CFastLED::addLeds(CLEDController *pLed,
  function CLEDController (line 76) | CLEDController & CFastLED::operator[](int x) {
  type CRGB (line 88) | struct CRGB
  type CRGB (line 137) | struct CRGB
  type CRGB (line 145) | struct CRGB
  function atexit (line 236) | int atexit(void (* /*func*/ )()) { return 0; }
  function yield (line 239) | void yield(void) { }
  type __cxxabiv1 (line 243) | namespace __cxxabiv1
    function __cxa_pure_virtual (line 246) | void __cxa_pure_virtual (void) {}
    function __cxa_guard_acquire (line 258) | int __cxa_guard_acquire (__guard *g)
    function __cxa_guard_release (line 263) | void __cxa_guard_release (__guard *g)
    function __cxa_guard_abort (line 268) | void __cxa_guard_abort (__guard *)

FILE: Software/firmware_demo/lib/FastLED/src/FastLED.h
  type ESM (line 85) | enum ESM { SMART_MATRIX }
  type OWS2811 (line 86) | enum OWS2811 { OCTOWS2811,OCTOWS2811_400, OCTOWS2813}
  type SWS2812 (line 87) | enum SWS2812 { WS2812SERIAL }
  type EBlockChipsets (line 130) | enum EBlockChipsets {
  function class (line 180) | class CFastLED {

FILE: Software/firmware_demo/lib/FastLED/src/bitswap.cpp
  function transpose8x1_noinline (line 6) | void transpose8x1_noinline(unsigned char *A, unsigned char *B) {

FILE: Software/firmware_demo/lib/FastLED/src/bitswap.h
  type just8bits (line 16) | typedef union {
  type sub4 (line 31) | typedef struct {
  type bitswap_type (line 67) | typedef union {
  function swapbits8 (line 98) | __attribute__((always_inline)) inline void swapbits8(bitswap_type in, bi...
  function slowswap (line 146) | __attribute__((always_inline)) inline void slowswap(unsigned char *A, un...
  function transpose8x1 (line 175) | __attribute__((always_inline)) inline void transpose8x1(unsigned char *A...
  function transpose8x1_MSB (line 200) | __attribute__((always_inline)) inline void transpose8x1_MSB(unsigned cha...
  function transpose8 (line 233) | inline void transpose8(unsigned char *A, unsigned char *B) {

FILE: Software/firmware_demo/lib/FastLED/src/chipsets.h
  function class (line 85) | class LPD8806_ADJUST {
  function postBlock (line 89) | __attribute__((always_inline)) inline static void postBlock(int len) {
  function virtual (line 99) | virtual void init() {
  function virtual (line 131) | virtual void init() {
  function startBoundary (line 160) | void startBoundary() { mSPI.writeByte(0); mSPI.writeByte(0); mSPI.writeB...
  function virtual (line 165) | virtual void init() {
  function startBoundary (line 209) | void startBoundary() { mSPI.writeWord(0); mSPI.writeWord(0); }
  function endBoundary (line 210) | void endBoundary(int nLeds) { int nDWords = (nLeds/32); do { mSPI.writeB...
  function writeLed (line 212) | inline void writeLed(uint8_t brightness, uint8_t b0, uint8_t b1, uint8_t...
  function virtual (line 230) | virtual void init() {
  function startBoundary (line 273) | void startBoundary() { mSPI.writeWord(0); mSPI.writeWord(0); }
  function endBoundary (line 274) | void endBoundary(int nLeds) { int nLongWords = (nLeds/32); do { mSPI.wri...
  function writeLed (line 276) | inline void writeLed(uint8_t brightness, uint8_t b0, uint8_t b1, uint8_t...
  function virtual (line 294) | virtual void init() {
  function writeBoundary (line 346) | void writeBoundary() { mSPI.writeWord(0); mSPI.writeWord(0); }
  function writeLed (line 348) | inline void writeLed(uint8_t r, uint8_t g, uint8_t b) __attribute__((alw...
  function virtual (line 356) | virtual void init() {
  function writeHeader (line 395) | void writeHeader() {
  function virtual (line 413) | virtual void init() {

FILE: Software/firmware_demo/lib/FastLED/src/color.h
  type ColorTemperature (line 35) | typedef enum {

FILE: Software/firmware_demo/lib/FastLED/src/colorutils.cpp
  function FASTLED_NAMESPACE_BEGIN (line 9) | FASTLED_NAMESPACE_BEGIN
  function fill_solid (line 21) | void fill_solid( struct CHSV * targetArray, int numToFill,
  function fill_rainbow (line 36) | void fill_rainbow( struct CRGB * pFirstLED, int numToFill,
  function fill_rainbow (line 50) | void fill_rainbow( struct CHSV * targetArray, int numToFill,
  function fill_rainbow_circular (line 65) | void fill_rainbow_circular(struct CRGB* targetArray, int numToFill, uint...
  function fill_rainbow_circular (line 85) | void fill_rainbow_circular(struct CHSV* targetArray, int numToFill, uint...
  function fill_gradient_RGB (line 106) | void fill_gradient_RGB( CRGB* leds,
  function fill_gradient (line 151) | void fill_gradient( const CHSV& c1, const CHSV& c2)
  function fill_gradient (line 156) | void fill_gradient( const CHSV& c1, const CHSV& c2, const CHSV& c3)
  function fill_gradient (line 161) | void fill_gradient( const CHSV& c1, const CHSV& c2, const CHSV& c3, cons...
  function fill_gradient_RGB (line 166) | void fill_gradient_RGB( const CRGB& c1, const CRGB& c2)
  function fill_gradient_RGB (line 171) | void fill_gradient_RGB( const CRGB& c1, const CRGB& c2, const CRGB& c3)
  function fill_gradient_RGB (line 176) | void fill_gradient_RGB( const CRGB& c1, const CRGB& c2, const CRGB& c3, ...
  function fill_gradient_RGB (line 185) | void fill_gradient_RGB( CRGB* leds, uint16_t numLeds, const CRGB& c1, co...
  function fill_gradient_RGB (line 192) | void fill_gradient_RGB( CRGB* leds, uint16_t numLeds, const CRGB& c1, co...
  function fill_gradient_RGB (line 200) | void fill_gradient_RGB( CRGB* leds, uint16_t numLeds, const CRGB& c1, co...
  function nscale8_video (line 213) | void nscale8_video( CRGB* leds, uint16_t num_leds, uint8_t scale)
  function fade_video (line 220) | void fade_video(CRGB* leds, uint16_t num_leds, uint8_t fadeBy)
  function fadeLightBy (line 225) | void fadeLightBy(CRGB* leds, uint16_t num_leds, uint8_t fadeBy)
  function fadeToBlackBy (line 231) | void fadeToBlackBy( CRGB* leds, uint16_t num_leds, uint8_t fadeBy)
  function fade_raw (line 236) | void fade_raw( CRGB* leds, uint16_t num_leds, uint8_t fadeBy)
  function nscale8_raw (line 241) | void nscale8_raw( CRGB* leds, uint16_t num_leds, uint8_t scale)
  function nscale8 (line 246) | void nscale8( CRGB* leds, uint16_t num_leds, uint8_t scale)
  function fadeUsingColor (line 253) | void fadeUsingColor( CRGB* leds, uint16_t numLeds, const CRGB& colormask)
  function CRGB (line 268) | CRGB& nblend( CRGB& existing, const CRGB& overlay, fract8 amountOfOverlay )
  function nblend (line 303) | void nblend( CRGB* existing, CRGB* overlay, uint16_t count, fract8 amoun...
  function CRGB (line 312) | CRGB blend( const CRGB& p1, const CRGB& p2, fract8 amountOfP2 )
  function CRGB (line 319) | CRGB* blend( const CRGB* src1, const CRGB* src2, CRGB* dest, uint16_t co...
  function CHSV (line 329) | CHSV& nblend( CHSV& existing, const CHSV& overlay, fract8 amountOfOverla...
  function nblend (line 379) | void nblend( CHSV* existing, CHSV* overlay, uint16_t count, fract8 amoun...
  function CHSV (line 389) | CHSV blend( const CHSV& p1, const CHSV& p2, fract8 amountOfP2, TGradient...
  function CHSV (line 396) | CHSV* blend( const CHSV* src1, const CHSV* src2, CHSV* dest, uint16_t co...
  function blur1d (line 424) | void blur1d( CRGB* leds, uint16_t numLeds, fract8 blur_amount)
  function blur2d (line 441) | void blur2d( CRGB* leds, uint8_t width, uint8_t height, fract8 blur_amount)
  function blurRows (line 447) | void blurRows( CRGB* leds, uint8_t width, uint8_t height, fract8 blur_am...
  function blurColumns (line 473) | void blurColumns(CRGB* leds, uint8_t width, uint8_t height, fract8 blur_...
  function CRGB (line 506) | CRGB HeatColor( uint8_t temperature)
  function lsrX4 (line 549) | inline uint8_t lsrX4( uint8_t dividend)
  function CRGB (line 563) | CRGB ColorFromPalette( const CRGBPalette16& pal, uint8_t index, uint8_t ...
  function CRGB (line 648) | CRGB ColorFromPalette( const TProgmemRGBPalette16& pal, uint8_t index, u...
  function CRGB (line 727) | CRGB ColorFromPalette( const CRGBPalette32& pal, uint8_t index, uint8_t ...
  function CRGB (line 818) | CRGB ColorFromPalette( const TProgmemRGBPalette32& pal, uint8_t index, u...
  function CRGB (line 903) | CRGB ColorFromPalette( const CRGBPalette256& pal, uint8_t index, uint8_t...
  function CHSV (line 923) | CHSV ColorFromPalette( const struct CHSVPalette16& pal, uint8_t index, u...
  function CHSV (line 1007) | CHSV ColorFromPalette( const struct CHSVPalette32& pal, uint8_t index, u...
  function CHSV (line 1096) | CHSV ColorFromPalette( const struct CHSVPalette256& pal, uint8_t index, ...
  function UpscalePalette (line 1108) | void UpscalePalette(const struct CRGBPalette16& srcpal16, struct CRGBPal...
  function UpscalePalette (line 1115) | void UpscalePalette(const struct CHSVPalette16& srcpal16, struct CHSVPal...
  function UpscalePalette (line 1123) | void UpscalePalette(const struct CRGBPalette16& srcpal16, struct CRGBPal...
  function UpscalePalette (line 1132) | void UpscalePalette(const struct CHSVPalette16& srcpal16, struct CHSVPal...
  function UpscalePalette (line 1141) | void UpscalePalette(const struct CRGBPalette32& srcpal32, struct CRGBPal...
  function UpscalePalette (line 1148) | void UpscalePalette(const struct CHSVPalette32& srcpal32, struct CHSVPal...
  function SetupPartyColors (line 1159) | void SetupPartyColors(CRGBPalette16& pal)
  function nblendPaletteTowardPalette (line 1167) | void nblendPaletteTowardPalette( CRGBPalette16& current, CRGBPalette16& ...
  function applyGamma_video (line 1197) | uint8_t applyGamma_video( uint8_t brightness, float gamma)
  function CRGB (line 1210) | CRGB applyGamma_video( const CRGB& orig, float gamma)
  function CRGB (line 1219) | CRGB applyGamma_video( const CRGB& orig, float gammaR, float gammaG, flo...
  function CRGB (line 1228) | CRGB& napplyGamma_video( CRGB& rgb, float gamma)
  function CRGB (line 1234) | CRGB& napplyGamma_video( CRGB& rgb, float gammaR, float gammaG, float ga...
  function napplyGamma_video (line 1240) | void napplyGamma_video( CRGB* rgbarray, uint16_t count, float gamma)
  function napplyGamma_video (line 1247) | void napplyGamma_video( CRGB* rgbarray, uint16_t count, float gammaR, fl...

FILE: Software/firmware_demo/lib/FastLED/src/colorutils.h
  type CRGB (line 18) | struct CRGB
  type CRGB (line 19) | struct CRGB
  type CHSV (line 23) | struct CHSV
  type CHSV (line 24) | struct CHSV
  type CRGB (line 29) | struct CRGB
  type CHSV (line 35) | struct CHSV
  type CRGB (line 44) | struct CRGB
  type CHSV (line 51) | struct CHSV
  type TGradientDirectionCode (line 78) | typedef enum { FORWARD_HUES, BACKWARD_HUES, SHORTEST_HUES, LONGEST_HUES ...
  type TProgmemRGBGradientPalette_byte (line 422) | typedef const uint8_t TProgmemRGBGradientPalette_byte ;
  type TProgmemRGBGradientPalette_byte (line 423) | typedef const TProgmemRGBGradientPalette_byte *TProgmemRGBGradientPalett...
  type TProgmemRGBGradientPalette_bytes (line 424) | typedef TProgmemRGBGradientPalette_bytes TProgmemRGBGradientPalettePtr;
  type TRGBGradientPaletteEntryUnion (line 425) | typedef union {
  type TDynamicRGBGradientPalette_byte (line 436) | typedef uint8_t TDynamicRGBGradientPalette_byte ;
  type TDynamicRGBGradientPalette_byte (line 437) | typedef const TDynamicRGBGradientPalette_byte *TDynamicRGBGradientPalett...
  type TDynamicRGBGradientPalette_bytes (line 438) | typedef TDynamicRGBGradientPalette_bytes TDynamicRGBGradientPalettePtr;
  type CRGBPalette16 (line 441) | struct CRGBPalette16
  type CRGBPalette256 (line 441) | struct CRGBPalette256
  type CHSVPalette16 (line 442) | struct CHSVPalette16
  type CHSVPalette256 (line 442) | struct CHSVPalette256
  type CRGBPalette16 (line 445) | struct CRGBPalette16
  type CRGBPalette32 (line 445) | struct CRGBPalette32
  type CHSVPalette16 (line 446) | struct CHSVPalette16
  type CHSVPalette32 (line 446) | struct CHSVPalette32
  type CRGBPalette32 (line 449) | struct CRGBPalette32
  type CRGBPalette256 (line 449) | struct CRGBPalette256
  type CHSVPalette32 (line 450) | struct CHSVPalette32
  type CHSVPalette256 (line 450) | struct CHSVPalette256
  function class (line 453) | class CHSVPalette16 {
  function class (line 557) | class CHSVPalette256 {
  function class (line 661) | class CRGBPalette16 {
  function CRGBPalette16 (line 736) | const CRGBPalette16 rhs)
  function CRGBPalette16 (line 748) | const CRGBPalette16 rhs)
  function CRGB (line 753) | inline CRGB& operator[] (uint8_t x) __attribute__((always_inline))
  function CRGB (line 757) | inline const CRGB& operator[] (uint8_t x) const __attribute__((always_in...
  function CRGB (line 762) | inline CRGB& operator[] (int x) __attribute__((always_inline))
  function CRGB (line 766) | inline const CRGB& operator[] (int x) const __attribute__((always_inline))
  function operator (line 771) | operator CRGB*()
  function class (line 927) | class CHSVPalette32 {
  function class (line 1033) | class CRGBPalette32 {
  function CRGBPalette32 (line 1110) | const CRGBPalette32 rhs)
  function CRGBPalette32 (line 1122) | const CRGBPalette32 rhs)
  function CRGB (line 1127) | inline CRGB& operator[] (uint8_t x) __attribute__((always_inline))
  function CRGB (line 1131) | inline const CRGB& operator[] (uint8_t x) const __attribute__((always_in...
  function CRGB (line 1136) | inline CRGB& operator[] (int x) __attribute__((always_inline))
  function CRGB (line 1140) | inline const CRGB& operator[] (int x) const __attribute__((always_inline))
  function operator (line 1145) | operator CRGB*()
  function class (line 1324) | class CRGBPalette256 {
  function CRGBPalette256 (line 1406) | const CRGBPalette256 rhs)
  function CRGBPalette256 (line 1418) | const CRGBPalette256 rhs)
  function CRGB (line 1423) | inline CRGB& operator[] (uint8_t x) __attribute__((always_inline))
  function CRGB (line 1427) | inline const CRGB& operator[] (uint8_t x) const __attribute__((always_in...
  function CRGB (line 1432) | inline CRGB& operator[] (int x) __attribute__((always_inline))
  function CRGB (line 1436) | inline const CRGB& operator[] (int x) const __attribute__((always_inline))
  function operator (line 1441) | operator CRGB*()
  type TBlendType (line 1526) | typedef enum { NOBLEND=0, LINEARBLEND=1 } TBlendType;

FILE: Software/firmware_demo/lib/FastLED/src/controller.h
  type EDitherMode (line 26) | typedef uint8_t EDitherMode;
  function class (line 39) | class CLEDController {
  type CRGB (line 94) | struct CRGB
  function CLEDController (line 99) | static CLEDController *head() { return m_pHead; }
  function CLEDController (line 101) | CLEDController *next() { return m_pNext; }
  function clearLedData (line 111) | void clearLedData() {
  function virtual (line 118) | virtual int size() { return m_nLeds; }
  function CRGB (line 121) | CRGB* leds() { return m_Data; }
  function CLEDController (line 127) | inline CLEDController & setDither(uint8_t ditherMode = BINARY_DITHER) { ...
  function getDither (line 129) | inline uint8_t getDither() { return m_DitherMode; }
  function CRGB (line 136) | CRGB getCorrection() { return m_ColorCorrection; }
  function CRGB (line 143) | CRGB getTemperature() { return m_ColorTemperature; }
  function CRGB (line 146) | CRGB getAdjustment(uint8_t scale) {
  function CRGB (line 150) | static CRGB computeAdjustment(uint8_t scale, const CRGB & colorCorrectio...
  function initOffsets (line 202) | void initOffsets(int len) {
  function init_binary_dithering (line 229) | void init_binary_dithering() {
  function has (line 309) | __attribute__((always_inline)) inline bool has(int n) {
  function enable_dithering (line 314) | void enable_dithering(EDitherMode dither) {
  function size (line 321) | __attribute__((always_inline)) inline int size() { return mLen; }
  function advanceBy (line 324) | __attribute__((always_inline)) inline int advanceBy() { return mAdvance; }
  function advanceData (line 327) | __attribute__((always_inline)) inline void advanceData() { mData += mAdv...
  function stepDithering (line 330) | __attribute__((always_inline)) inline void stepDithering() {
  function preStepFirstByteDithering (line 339) | __attribute__((always_inline)) inline void preStepFirstByteDithering() {
  function loadByte (line 343) | inline static uint8_t loadByte(PixelController & pc) { return pc.mData[R...
  function loadByte (line 344) | inline static uint8_t loadByte(PixelController & pc, int lane) { return ...
  function dither (line 346) | inline static uint8_t dither(PixelController & pc, uint8_t b) { return b...
  function dither (line 347) | inline static uint8_t dither(PixelController & , uint8_t b, uint8_t d) {...
  function scale (line 349) | inline static uint8_t scale(PixelController & pc, uint8_t b) { return sc...
  function scale (line 350) | inline static uint8_t scale(PixelController & , uint8_t b, uint8_t scale...
  function loadAndScale (line 353) | inline static uint8_t loadAndScale(PixelController & pc) { return scale<...
  function loadAndScale (line 354) | inline static uint8_t loadAndScale(PixelController & pc, int lane) { ret...
  function loadAndScale (line 355) | inline static uint8_t loadAndScale(PixelController & pc, int lane, uint8...
  function loadAndScale (line 356) | inline static uint8_t loadAndScale(PixelController & pc, int lane, uint8...
  function advanceAndLoadAndScale (line 358) | inline static uint8_t advanceAndLoadAndScale(PixelController & pc) { pc....
  function advanceAndLoadAndScale (line 359) | inline static uint8_t advanceAndLoadAndScale(PixelController & pc, int l...
  function advanceAndLoadAndScale (line 360) | inline static uint8_t advanceAndLoadAndScale(PixelController & pc, int l...
  function getd (line 362) | inline static uint8_t getd(PixelController & pc) { return pc.d[RO(SLOT)]; }
  function getscale (line 363) | inline static uint8_t getscale(PixelController & pc) { return pc.mScale....
  function loadAndScale0 (line 366) | __attribute__((always_inline)) inline uint8_t loadAndScale0(int lane, ui...
  function loadAndScale1 (line 367) | __attribute__((always_inline)) inline uint8_t loadAndScale1(int lane, ui...
  function loadAndScale2 (line 368) | __attribute__((always_inline)) inline uint8_t loadAndScale2(int lane, ui...
  function advanceAndLoadAndScale0 (line 369) | __attribute__((always_inline)) inline uint8_t advanceAndLoadAndScale0(in...
  function stepAdvanceAndLoadAndScale0 (line 370) | __attribute__((always_inline)) inline uint8_t stepAdvanceAndLoadAndScale...
  function loadAndScale0 (line 372) | __attribute__((always_inline)) inline uint8_t loadAndScale0(int lane) { ...
  function loadAndScale1 (line 373) | __attribute__((always_inline)) inline uint8_t loadAndScale1(int lane) { ...
  function loadAndScale2 (line 374) | __attribute__((always_inline)) inline uint8_t loadAndScale2(int lane) { ...
  function advanceAndLoadAndScale0 (line 375) | __attribute__((always_inline)) inline uint8_t advanceAndLoadAndScale0(in...
  function stepAdvanceAndLoadAndScale0 (line 376) | __attribute__((always_inline)) inline uint8_t stepAdvanceAndLoadAndScale...
  function loadAndScale0 (line 378) | __attribute__((always_inline)) inline uint8_t loadAndScale0() { return l...
  function loadAndScale1 (line 379) | __attribute__((always_inline)) inline uint8_t loadAndScale1() { return l...
  function loadAndScale2 (line 380) | __attribute__((always_inline)) inline uint8_t loadAndScale2() { return l...
  function advanceAndLoadAndScale0 (line 381) | __attribute__((always_inline)) inline uint8_t advanceAndLoadAndScale0() ...
  function stepAdvanceAndLoadAndScale0 (line 382) | __attribute__((always_inline)) inline uint8_t stepAdvanceAndLoadAndScale...
  function getScale0 (line 384) | __attribute__((always_inline)) inline uint8_t getScale0() { return getsc...
  function getScale1 (line 385) | __attribute__((always_inline)) inline uint8_t getScale1() { return getsc...
  function getScale2 (line 386) | __attribute__((always_inline)) inline uint8_t getScale2() { return getsc...
  function virtual (line 397) | virtual void showColor(const struct CRGB & data, int nLeds, CRGB scale) {
  function virtual (line 406) | virtual void show(const struct CRGB *data, int nLeds, CRGB scale) {

FILE: Software/firmware_demo/lib/FastLED/src/fastled_delay.h
  function wait (line 22) | void wait() {
  function mark (line 29) | void mark() { mLastMicros = micros() & 0xFFFF; }
  function wait (line 38) | void wait() { }
  function mark (line 39) | void mark() {}
  function delaycycles_min1 (line 69) | void delaycycles_min1() {
  function _delaycycles_AVR (line 80) | void _delaycycles_AVR() {
  function delaycycles (line 95) | inline void delaycycles() {
  function delaycycles (line 115) | inline void delaycycles() {
  function delaycycles (line 123) | inline void delaycycles<-10>() {}
  function delaycycles (line 124) | inline void delaycycles<-9>() {}
  function delaycycles (line 125) | inline void delaycycles<-8>() {}
  function delaycycles (line 126) | inline void delaycycles<-7>() {}
  function delaycycles (line 127) | inline void delaycycles<-6>() {}
  function delaycycles (line 128) | inline void delaycycles<-5>() {}
  function delaycycles (line 129) | inline void delaycycles<-4>() {}
  function delaycycles (line 130) | inline void delaycycles<-3>() {}
  function delaycycles (line 131) | inline void delaycycles<-2>() {}
  function delaycycles (line 132) | inline void delaycycles<-1>() {}
  function delaycycles (line 133) | inline void delaycycles<0>() {}
  function delaycycles (line 134) | inline void delaycycles<1>() {FL_NOP;}
  function delaycycles (line 135) | inline void delaycycles<2>() {FL_NOP2;}
  function delaycycles (line 136) | inline void delaycycles<3>() {FL_NOP;FL_NOP2;}
  function delaycycles (line 137) | inline void delaycycles<4>() {FL_NOP2;FL_NOP2;}
  function delaycycles (line 138) | inline void delaycycles<5>() {FL_NOP2;FL_NOP2;FL_NOP;}

FILE: Software/firmware_demo/lib/FastLED/src/fastpin.h
  function class (line 25) | class Selectable {
  function class (line 34) | class Pin : public Selectable {
  type RwReg (line 49) | typedef volatile RwReg * port_ptr_t;
  type RwReg (line 50) | typedef RwReg port_t;
  function setOutput (line 52) | inline void setOutput() { pinMode(mPin, OUTPUT); }
  function setInput (line 53) | inline void setInput() { pinMode(mPin, INPUT); }
  function hi (line 55) | inline void hi() __attribute__ ((always_inline)) { *mPort |= mPinMask; }
  function lo (line 56) | inline void lo() __attribute__ ((always_inline)) { *mPort &= ~mPinMask; }
  function strobe (line 58) | inline void strobe() __attribute__ ((always_inline)) { toggle(); toggle(...
  function toggle (line 59) | inline void toggle() __attribute__ ((always_inline)) { *mInPort = mPinMa...
  function hi (line 61) | inline void hi(register port_ptr_t port) __attribute__ ((always_inline))...
  function lo (line 62) | inline void lo(register port_ptr_t port) __attribute__ ((always_inline))...
  function set (line 63) | inline void set(register port_t val) __attribute__ ((always_inline)) { *...
  function fastset (line 65) | inline void fastset(register port_ptr_t port, register port_t val) __att...
  function port_t (line 67) | port_t hival() __attribute__ ((always_inline)) { return *mPort | mPinMas...
  function port_t (line 68) | port_t loval() __attribute__ ((always_inline)) { return *mPort & ~mPinMa...
  function port_ptr_t (line 69) | port_ptr_t  port() __attribute__ ((always_inline)) { return mPort; }
  function port_t (line 70) | port_t mask() __attribute__ ((always_inline)) { return mPinMask; }
  function virtual (line 72) | virtual void select() { hi(); }
  function virtual (line 73) | virtual void release() { lo(); }
  function virtual (line 74) | virtual bool isSelected() { return (*mPort & mPinMask) == mPinMask; }
  function class (line 77) | class OutputPin : public Pin {
  function class (line 82) | class InputPin : public Pin {
  function class (line 90) | class Pin : public Selectable {
  function setPin (line 106) | void setPin(int pin) { mPin = pin; _init(); }
  type RwReg (line 108) | typedef volatile RwReg * port_ptr_t;
  type RwReg (line 109) | typedef RwReg port_t;
  function setOutput (line 111) | inline void setOutput() { /* TODO: Set pin output */ }
  function setInput (line 112) | inline void setInput() { /* TODO: Set pin input */ }
  function hi (line 114) | inline void hi() __attribute__ ((always_inline)) { *mPort |= mPinMask; }
  function lo (line 115) | inline void lo() __attribute__ ((always_inline)) { *mPort &= ~mPinMask; }
  function strobe (line 117) | inline void strobe() __attribute__ ((always_inline)) { toggle(); toggle(...
  function toggle (line 118) | inline void toggle() __attribute__ ((always_inline)) { *mInPort = mPinMa...
  function hi (line 120) | inline void hi(register port_ptr_t port) __attribute__ ((always_inline))...
  function lo (line 121) | inline void lo(register port_ptr_t port) __attribute__ ((always_inline))...
  function set (line 122) | inline void set(register port_t val) __attribute__ ((always_inline)) { *...
  function fastset (line 124) | inline void fastset(register port_ptr_t port, register port_t val) __att...
  function port_t (line 126) | port_t hival() __attribute__ ((always_inline)) { return *mPort | mPinMas...
  function port_t (line 127) | port_t loval() __attribute__ ((always_inline)) { return *mPort & ~mPinMa...
  function port_ptr_t (line 128) | port_ptr_t  port() __attribute__ ((always_inline)) { return mPort; }
  function port_t (line 129) | port_t mask() __attribute__ ((always_inline)) { return mPinMask; }
  function virtual (line 131) | virtual void select() { hi(); }
  function virtual (line 132) | virtual void release() { lo(); }
  function virtual (line 133) | virtual bool isSelected() { return (*mPort & mPinMask) == mPinMask; }
  function class (line 136) | class OutputPin : public Pin {
  function class (line 141) | class InputPin : public Pin {
  function _init (line 167) | static void _init() {
  type RwReg (line 177) | typedef RwReg port_t;
  function setOutput (line 179) | inline static void setOutput() { _init(); pinMode(PIN, OUTPUT); }
  function setInput (line 180) | inline static void setInput() { _init(); pinMode(PIN, INPUT); }
  function hi (line 182) | inline static void hi() __attribute__ ((always_inline)) { *sPort |= sPin...
  function lo (line 183) | inline static void lo() __attribute__ ((always_inline)) { *sPort &= ~sPi...
  function strobe (line 185) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 187) | inline static void toggle() __attribute__ ((always_inline)) { *sInPort =...
  function hi (line 189) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 190) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function set (line 191) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function fastset (line 193) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 195) | static port_t hival() __attribute__ ((always_inline)) { return *sPort | ...
  function port_t (line 196) | static port_t loval() __attribute__ ((always_inline)) { return *sPort & ...
  function port_ptr_t (line 197) | static port_ptr_t  port() __attribute__ ((always_inline)) { return sPort; }
  function port_t (line 198) | static port_t mask() __attribute__ ((always_inline)) { return sPinMask; }
  function validpin (line 208) | constexpr static bool validpin() { return false; }
  function _init (line 212) | static void _init() { }
  type RwReg (line 216) | typedef RwReg port_t;
  function setOutput (line 218) | inline static void setOutput() { }
  function setInput (line 219) | inline static void setInput() { }
  function hi (line 221) | inline static void hi() __attribute__ ((always_inline)) { }
  function lo (line 222) | inline static void lo() __attribute__ ((always_inline)) { }
  function strobe (line 224) | inline static void strobe() __attribute__ ((always_inline)) { }
  function toggle (line 226) | inline static void toggle() __attribute__ ((always_inline)) { }
  function hi (line 228) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 229) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function set (line 230) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function fastset (line 232) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 234) | static port_t hival() __attribute__ ((always_inline)) { return 0; }
  function port_t (line 235) | static port_t loval() __attribute__ ((always_inline)) { return 0;}
  function port_ptr_t (line 236) | static port_ptr_t  port() __attribute__ ((always_inline)) { return NULL; }
  function port_t (line 237) | static port_t mask() __attribute__ ((always_inline)) { return 0; }
  type reg32_t (line 244) | typedef volatile uint32_t & reg32_t;
  function hasPort (line 249) | static bool hasPort() { return 0; }

FILE: Software/firmware_demo/lib/FastLED/src/fastspi_bitbang.h
  type typename (line 23) | typedef typename FastPin<CLOCK_PIN>::port_ptr_t clock_ptr_t;
  type typename (line 27) | typedef typename FastPin<DATA_PIN>::port_t data_t;
  type typename (line 28) | typedef typename FastPin<CLOCK_PIN>::port_t clock_t;
  function setSelect (line 34) | void setSelect(Selectable *pSelect) { m_pSelect = pSelect; }
  function init (line 36) | void init() {
  function stop (line 45) | static void stop() { }
  function wait (line 48) | static void wait() __attribute__((always_inline)) { }
  function waitFully (line 49) | static void waitFully() __attribute__((always_inline)) { wait(); }
  function writeByteNoWait (line 51) | static void writeByteNoWait(uint8_t b) __attribute__((always_inline)) { ...
  function writeBytePostWait (line 52) | static void writeBytePostWait(uint8_t b) __attribute__((always_inline)) ...
  function writeWord (line 54) | static void writeWord(uint16_t w) __attribute__((always_inline)) { write...
  function writeByte (line 57) | static void writeByte(uint8_t b) {
  function writeByte (line 84) | static void writeByte(uint8_t b, data_ptr_t datapin,
  function writeByte (line 100) | static void writeByte(uint8_t b, clock_ptr_t clockpin, data_ptr_t datapin,
  function writeBit (line 128) | inline static void writeBit(uint8_t b) {
  function writeBit (line 156) | inline static void writeBit(uint8_t b, clock_ptr_t clockpin, data_ptr_t ...
  function writeBit (line 171) | inline static void writeBit(uint8_t b, clock_ptr_t clockpin, data_ptr_t ...
  function writeBit (line 188) | inline static void writeBit(uint8_t b, data_ptr_t clockdatapin,
  function release (line 214) | void release() { if(m_pSelect != NULL) { m_pSelect->release(); } }
  function writeBytesValue (line 217) | void writeBytesValue(uint8_t value, int len) {
  function writeBytesValueRaw (line 223) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytes (line 307) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...

FILE: Software/firmware_demo/lib/FastLED/src/fastspi_nop.h
  function setSelect (line 22) | void setSelect(Selectable *pSelect) { m_pSelect = pSelect;  }
  function init (line 25) | void init() { /* TODO */ }
  function select (line 28) | void select() { /* TODO */ }
  function release (line 31) | void release() { /* TODO */ }
  function writeBit (line 37) | static void writeBit(uint8_t b) { /* TODO */ }
  function writeByte (line 40) | void writeByte(uint8_t b) { /* TODO */ }
  function writeWord (line 42) | void writeWord(uint16_t w) { /* TODO */ }
  function writeBytesValueRaw (line 45) | static void writeBytesValueRaw(uint8_t value, int len) { /* TODO */ }
  function writeBytesValue (line 48) | void writeBytesValue(uint8_t value, int len) { /* TODO */ }
  function writeBytes (line 51) | void writeBytes(uint8_t *data, int len) { /* TODO */ }
  function writeBit (line 54) | static void writeBit(uint8_t b) { /* TODO */ }

FILE: Software/firmware_demo/lib/FastLED/src/fastspi_ref.h
  function setSelect (line 20) | void setSelect(Selectable *pSelect) { /* TODO */ }
  function init (line 23) | void init() { /* TODO */ }
  function select (line 26) | void inline select() __attribute__((always_inline)) { if(m_pSelect != NU...
  function release (line 29) | void inline release() __attribute__((always_inline)) { if(m_pSelect != N...
  function waitFully (line 32) | static void waitFully() { /* TODO */ }
  function writeByte (line 35) | static void writeByte(uint8_t b) { /* TODO */ }
  function writeWord (line 38) | static void writeWord(uint16_t w) { /* TODO */ }
  function writeBytesValueRaw (line 41) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytesValue (line 46) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 64) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...
  function writeBit (line 67) | static void writeBit(uint8_t b) { /* TODO */ }

FILE: Software/firmware_demo/lib/FastLED/src/fastspi_types.h
  function class (line 20) | class DATA_NOP {
  function adjust (line 23) | static __attribute__((always_inline)) inline uint8_t adjust(register uin...
  function postBlock (line 24) | static __attribute__((always_inline)) inline void postBlock(int /* len *...

FILE: Software/firmware_demo/lib/FastLED/src/hsv2rgb.cpp
  type CHSV (line 50) | struct CHSV
  type CRGB (line 50) | struct CRGB
  type CHSV (line 51) | struct CHSV
  type CRGB (line 51) | struct CRGB
  function hsv2rgb_raw (line 54) | void hsv2rgb_raw(const struct CHSV & hsv, struct CRGB & rgb)
  function hsv2rgb_raw (line 59) | void hsv2rgb_raw(const struct CHSV & hsv, struct CRGB & rgb)
  function hsv2rgb_raw_C (line 71) | void hsv2rgb_raw_C (const struct CHSV & hsv, struct CRGB & rgb)
  function hsv2rgb_raw_avr (line 160) | void hsv2rgb_raw_avr(const struct CHSV & hsv, struct CRGB & rgb)
  function hsv2rgb_spectrum (line 256) | void hsv2rgb_spectrum( const CHSV& hsv, CRGB& rgb)
  function hsv2rgb_rainbow (line 278) | void hsv2rgb_rainbow( const CHSV& hsv, CRGB& rgb)
  function hsv2rgb_raw (line 500) | void hsv2rgb_raw(const struct CHSV * phsv, struct CRGB * prgb, int numLe...
  function hsv2rgb_rainbow (line 506) | void hsv2rgb_rainbow( const struct CHSV* phsv, struct CRGB * prgb, int n...
  function hsv2rgb_spectrum (line 512) | void hsv2rgb_spectrum( const struct CHSV* phsv, struct CRGB * prgb, int ...
  function CHSV (line 525) | CHSV rgb2hsv_approximate( const CRGB& rgb)

FILE: Software/firmware_demo/lib/FastLED/src/hsv2rgb.h
  type CHSV (line 18) | struct CHSV
  type CRGB (line 18) | struct CRGB
  type CHSV (line 19) | struct CHSV
  type CRGB (line 19) | struct CRGB
  type CHSV (line 31) | struct CHSV
  type CRGB (line 31) | struct CRGB
  type CHSV (line 32) | struct CHSV
  type CRGB (line 32) | struct CRGB
  type CHSV (line 47) | struct CHSV
  type CRGB (line 47) | struct CRGB
  type CHSV (line 48) | struct CHSV
  type CRGB (line 48) | struct CRGB

FILE: Software/firmware_demo/lib/FastLED/src/lib8tion.cpp
  function test1abs (line 135) | void test1abs( int8_t i)
  function testabs (line 142) | void testabs()
  function testmul8 (line 152) | void testmul8()
  function testscale8 (line 172) | void testscale8()
  function testqadd8 (line 207) | void testqadd8()
  function testnscale8x3 (line 224) | void testnscale8x3()

FILE: Software/firmware_demo/lib/FastLED/src/lib8tion.h
  type fract8 (line 372) | typedef uint8_t   fract8;
  type sfract7 (line 376) | typedef int8_t    sfract7;
  type fract16 (line 380) | typedef uint16_t  fract16;
  type sfract15 (line 384) | typedef int16_t   sfract15;
  type accum88 (line 391) | typedef uint16_t  accum88;
  type saccum78 (line 392) | typedef int16_t   saccum78;
  type accum1616 (line 393) | typedef uint32_t  accum1616;
  type saccum1516 (line 394) | typedef int32_t   saccum1516;
  type accum124 (line 395) | typedef uint16_t  accum124;
  type saccum114 (line 396) | typedef int32_t   saccum114;
  type IEEE754binary32_t (line 400) | typedef union {
  function LIB8STATIC (line 442) | LIB8STATIC float sfract15ToFloat( sfract15 y)
  function LIB8STATIC (line 451) | LIB8STATIC sfract15 floatToSfract15( float f)
  function LIB8STATIC (line 494) | LIB8STATIC uint8_t lerp8by8( uint8_t a, uint8_t b, fract8 frac)
  function LIB8STATIC (line 511) | LIB8STATIC uint16_t lerp16by16( uint16_t a, uint16_t b, fract16 frac)
  function LIB8STATIC (line 528) | LIB8STATIC uint16_t lerp16by8( uint16_t a, uint16_t b, fract8 frac)
  function LIB8STATIC (line 545) | LIB8STATIC int16_t lerp15by8( int16_t a, int16_t b, fract8 frac)
  function LIB8STATIC (line 562) | LIB8STATIC int16_t lerp15by16( int16_t a, int16_t b, fract16 frac)
  function LIB8STATIC (line 594) | LIB8STATIC uint8_t map8( uint8_t in, uint8_t rangeStart, uint8_t rangeEnd)
  function LIB8STATIC (line 611) | LIB8STATIC uint8_t ease8InOutQuad( uint8_t i)
  function LIB8STATIC (line 629) | LIB8STATIC uint8_t ease8InOutQuad(uint8_t val) {
  function LIB8STATIC (line 656) | LIB8STATIC uint16_t ease16InOutQuad( uint16_t i)
  function LIB8STATIC (line 673) | LIB8STATIC fract8 ease8InOutCubic( fract8 i)
  function LIB8STATIC (line 702) | LIB8STATIC fract8 ease8InOutApprox( fract8 i)
  function LIB8STATIC (line 723) | LIB8STATIC uint8_t ease8InOutApprox( fract8 i)
  function LIB8STATIC (line 767) | LIB8STATIC uint8_t triwave8(uint8_t in)
  function LIB8STATIC (line 788) | LIB8STATIC uint8_t quadwave8(uint8_t in)
  function LIB8STATIC (line 795) | LIB8STATIC uint8_t cubicwave8(uint8_t in)
  type q (line 861) | typedef q<uint8_t, 4,4> q44;
  type q (line 863) | typedef q<uint8_t, 6,2> q62;
  type q (line 865) | typedef q<uint16_t, 8,8> q88;
  type q (line 867) | typedef q<uint16_t, 12,4> q124;
  function LIB8STATIC (line 1011) | LIB8STATIC uint16_t seconds16()
  function LIB8STATIC (line 1021) | LIB8STATIC uint16_t minutes16()
  function LIB8STATIC (line 1031) | LIB8STATIC uint8_t hours8()
  function LIB8STATIC (line 1050) | LIB8STATIC uint16_t div1024_32_16( uint32_t in32)
  function LIB8STATIC (line 1075) | LIB8STATIC uint16_t bseconds16()
  function setPeriod (line 1133) | void setPeriod( timeType period) { mPeriod = period; }
  function timeType (line 1134) | timeType getTime() { return (timeType)(timeGetter()); }
  function timeType (line 1135) | timeType getPeriod() { return mPeriod; }
  function timeType (line 1136) | timeType getElapsed() { return getTime() - mPrevTrigger; }
  function timeType (line 1137) | timeType getRemaining() { return mPeriod - getElapsed(); }
  function timeType (line 1138) | timeType getLastTriggerTime() { return mPrevTrigger; }
  function ready (line 1139) | bool ready() {
  function reset (line 1144) | void reset() { mPrevTrigger = getTime(); }
  function trigger (line 1145) | void trigger() { mPrevTrigger = getTime() - mPeriod; }
  function operator (line 1147) | operator bool() { return ready(); }
  type CEveryNTimePeriods (line 1149) | typedef CEveryNTimePeriods<uint16_t,seconds16> CEveryNSeconds;
  type CEveryNTimePeriods (line 1150) | typedef CEveryNTimePeriods<uint16_t,bseconds16> CEveryNBSeconds;
  type CEveryNTimePeriods (line 1151) | typedef CEveryNTimePeriods<uint32_t,millis> CEveryNMillis;
  type CEveryNTimePeriods (line 1152) | typedef CEveryNTimePeriods<uint16_t,minutes16> CEveryNMinutes;
  type CEveryNTimePeriods (line 1153) | typedef CEveryNTimePeriods<uint8_t,hours8> CEveryNHours;

FILE: Software/firmware_demo/lib/FastLED/src/lib8tion/math8.h
  function LIB8STATIC_ALWAYS_INLINE (line 23) | LIB8STATIC_ALWAYS_INLINE uint8_t qadd8( uint8_t i, uint8_t j)
  function LIB8STATIC_ALWAYS_INLINE (line 57) | LIB8STATIC_ALWAYS_INLINE int8_t qadd7( int8_t i, int8_t j)
  function LIB8STATIC_ALWAYS_INLINE (line 94) | LIB8STATIC_ALWAYS_INLINE uint8_t qsub8( uint8_t i, uint8_t j)
  function LIB8STATIC_ALWAYS_INLINE (line 123) | LIB8STATIC_ALWAYS_INLINE uint8_t add8( uint8_t i, uint8_t j)
  function LIB8STATIC_ALWAYS_INLINE (line 138) | LIB8STATIC_ALWAYS_INLINE uint16_t add8to16( uint8_t i, uint16_t j)
  function LIB8STATIC_ALWAYS_INLINE (line 159) | LIB8STATIC_ALWAYS_INLINE uint8_t sub8( uint8_t i, uint8_t j)
  function LIB8STATIC_ALWAYS_INLINE (line 176) | LIB8STATIC_ALWAYS_INLINE uint8_t avg8( uint8_t i, uint8_t j)
  function LIB8STATIC_ALWAYS_INLINE (line 198) | LIB8STATIC_ALWAYS_INLINE uint16_t avg16( uint16_t i, uint16_t j)
  function LIB8STATIC_ALWAYS_INLINE (line 224) | LIB8STATIC_ALWAYS_INLINE uint8_t avg8r( uint8_t i, uint8_t j)
  function LIB8STATIC_ALWAYS_INLINE (line 248) | LIB8STATIC_ALWAYS_INLINE uint16_t avg16r( uint16_t i, uint16_t j)
  function LIB8STATIC_ALWAYS_INLINE (line 279) | LIB8STATIC_ALWAYS_INLINE int8_t avg7( int8_t i, int8_t j)
  function LIB8STATIC_ALWAYS_INLINE (line 301) | LIB8STATIC_ALWAYS_INLINE int16_t avg15( int16_t i, int16_t j)
  function LIB8STATIC_ALWAYS_INLINE (line 334) | LIB8STATIC_ALWAYS_INLINE uint8_t mod8( uint8_t a, uint8_t m)
  function LIB8STATIC (line 361) | LIB8STATIC uint8_t addmod8( uint8_t a, uint8_t b, uint8_t m)
  function LIB8STATIC (line 383) | LIB8STATIC uint8_t submod8( uint8_t a, uint8_t b, uint8_t m)
  function LIB8STATIC_ALWAYS_INLINE (line 402) | LIB8STATIC_ALWAYS_INLINE uint8_t mul8( uint8_t i, uint8_t j)
  function LIB8STATIC_ALWAYS_INLINE (line 427) | LIB8STATIC_ALWAYS_INLINE uint8_t qmul8( uint8_t i, uint8_t j)
  function LIB8STATIC_ALWAYS_INLINE (line 459) | LIB8STATIC_ALWAYS_INLINE int8_t abs8( int8_t i)
  function LIB8STATIC (line 483) | LIB8STATIC uint8_t sqrt16(uint16_t x)
  function LIB8STATIC (line 519) | LIB8STATIC uint8_t blend8( uint8_t a, uint8_t b, uint8_t amountOfB)
  function LIB8STATIC (line 627) | LIB8STATIC uint8_t blend8( uint8_t a, uint8_t b, uint8_t amountOfB)

FILE: Software/firmware_demo/lib/FastLED/src/lib8tion/random8.h
  function LIB8STATIC (line 25) | LIB8STATIC uint8_t random8()
  function LIB8STATIC (line 35) | LIB8STATIC uint16_t random16()
  function LIB8STATIC (line 43) | LIB8STATIC uint8_t random8(uint8_t lim)
  function LIB8STATIC (line 53) | LIB8STATIC uint8_t random8(uint8_t min, uint8_t lim)
  function LIB8STATIC (line 62) | LIB8STATIC uint16_t random16( uint16_t lim)
  function LIB8STATIC (line 73) | LIB8STATIC uint16_t random16( uint16_t min, uint16_t lim)
  function LIB8STATIC (line 81) | LIB8STATIC void random16_set_seed( uint16_t seed)
  function LIB8STATIC (line 87) | LIB8STATIC uint16_t random16_get_seed()
  function LIB8STATIC (line 93) | LIB8STATIC void random16_add_entropy( uint16_t entropy)

FILE: Software/firmware_demo/lib/FastLED/src/lib8tion/scale8.h
  function LIB8STATIC_ALWAYS_INLINE (line 20) | LIB8STATIC_ALWAYS_INLINE uint8_t scale8( uint8_t i, fract8 scale)
  function LIB8STATIC_ALWAYS_INLINE (line 98) | LIB8STATIC_ALWAYS_INLINE uint8_t scale8_video( uint8_t i, fract8 scale)
  function LIB8STATIC_ALWAYS_INLINE (line 144) | LIB8STATIC_ALWAYS_INLINE uint8_t scale8_LEAVING_R1_DIRTY( uint8_t i, fra...
  function LIB8STATIC_ALWAYS_INLINE (line 228) | LIB8STATIC_ALWAYS_INLINE uint8_t scale8_video_LEAVING_R1_DIRTY( uint8_t ...
  function LIB8STATIC_ALWAYS_INLINE (line 296) | LIB8STATIC_ALWAYS_INLINE void cleanup_R1()
  function LIB8STATIC_ALWAYS_INLINE (line 413) | LIB8STATIC_ALWAYS_INLINE uint16_t scale16by8( uint16_t i, fract8 scale )
  function LIB8STATIC (line 482) | LIB8STATIC uint16_t scale16( uint16_t i, fract16 scale )
  function LIB8STATIC (line 658) | LIB8STATIC uint8_t dim8_raw( uint8_t x)
  function LIB8STATIC (line 664) | LIB8STATIC uint8_t dim8_video( uint8_t x)
  function LIB8STATIC (line 670) | LIB8STATIC uint8_t dim8_lin( uint8_t x )
  function LIB8STATIC (line 682) | LIB8STATIC uint8_t brighten8_raw( uint8_t x)
  function LIB8STATIC (line 689) | LIB8STATIC uint8_t brighten8_video( uint8_t x)
  function LIB8STATIC (line 696) | LIB8STATIC uint8_t brighten8_lin( uint8_t x )

FILE: Software/firmware_demo/lib/FastLED/src/lib8tion/trig8.h
  function LIB8STATIC (line 27) | LIB8STATIC int16_t sin16_avr( uint16_t theta )
  function LIB8STATIC (line 88) | LIB8STATIC int16_t sin16_C( uint16_t theta )
  function LIB8STATIC (line 121) | LIB8STATIC int16_t cos16( uint16_t theta)
  function LIB8STATIC (line 156) | LIB8STATIC uint8_t  sin8_avr( uint8_t theta)
  function LIB8STATIC (line 216) | LIB8STATIC uint8_t sin8_C( uint8_t theta)
  function LIB8STATIC (line 254) | LIB8STATIC uint8_t cos8( uint8_t theta)

FILE: Software/firmware_demo/lib/FastLED/src/noise.cpp
  function avg15_inline_avr_mul (line 37) | static int16_t inline __attribute__((always_inline))  avg15_inline_avr_m...
  function grad16 (line 78) | static int16_t inline __attribute__((always_inline))  grad16(uint8_t has...
  function grad16 (line 109) | static int16_t inline __attribute__((always_inline)) grad16(uint8_t hash...
  function grad16 (line 119) | static int16_t inline __attribute__((always_inline)) grad16(uint8_t hash...
  function selectBasedOnHashBit (line 135) | static int8_t inline __attribute__((always_inline)) selectBasedOnHashBit...
  function grad8 (line 154) | static int8_t  inline __attribute__((always_inline)) grad8(uint8_t hash,...
  function grad8 (line 204) | static int8_t inline __attribute__((always_inline)) grad8(uint8_t hash, ...
  function grad8 (line 223) | static int8_t inline __attribute__((always_inline)) grad8(uint8_t hash, ...
  function logfade12 (line 248) | uint16_t logfade12(uint16_t val) {
  function lerp15by12 (line 252) | static int16_t inline __attribute__((always_inline)) lerp15by12( int16_t...
  function lerp7by8 (line 269) | static int8_t inline __attribute__((always_inline)) lerp7by8( int8_t a, ...
  function inoise16_raw (line 289) | int16_t inoise16_raw(uint32_t x, uint32_t y, uint32_t z)
  function inoise16 (line 332) | uint16_t inoise16(uint32_t x, uint32_t y, uint32_t z) {
  function inoise16_raw (line 348) | int16_t inoise16_raw(uint32_t x, uint32_t y)
  function inoise16 (line 381) | uint16_t inoise16(uint32_t x, uint32_t y) {
  function inoise16_raw (line 396) | int16_t inoise16_raw(uint32_t x)
  function inoise16 (line 421) | uint16_t inoise16(uint32_t x) {
  function inoise8_raw (line 425) | int8_t inoise8_raw(uint16_t x, uint16_t y, uint16_t z)
  function inoise8 (line 466) | uint8_t inoise8(uint16_t x, uint16_t y, uint16_t z) {
  function inoise8_raw (line 474) | int8_t inoise8_raw(uint16_t x, uint16_t y)
  function inoise8 (line 510) | uint8_t inoise8(uint16_t x, uint16_t y) {
  function inoise8_raw (line 519) | int8_t inoise8_raw(uint16_t x)
  function inoise8 (line 544) | uint8_t inoise8(uint16_t x) {
  function fill_raw_noise8 (line 565) | void fill_raw_noise8(uint8_t *pData, uint8_t num_points, uint8_t octaves...
  function fill_raw_noise16into8 (line 578) | void fill_raw_noise16into8(uint8_t *pData, uint8_t num_points, uint8_t o...
  function fill_raw_2dnoise8 (line 594) | void fill_raw_2dnoise8(uint8_t *pData, int width, int height, uint8_t oc...
  function fill_raw_2dnoise8 (line 628) | void fill_raw_2dnoise8(uint8_t *pData, int width, int height, uint8_t oc...
  function fill_raw_2dnoise16 (line 632) | void fill_raw_2dnoise16(uint16_t *pData, int width, int height, uint8_t ...
  function fill_raw_2dnoise16into8 (line 666) | void fill_raw_2dnoise16into8(uint8_t *pData, int width, int height, uint...
  function fill_raw_2dnoise16into8 (line 699) | void fill_raw_2dnoise16into8(uint8_t *pData, int width, int height, uint...
  function fill_noise8 (line 703) | void fill_noise8(CRGB *leds, int num_leds,
  function fill_noise16 (line 721) | void fill_noise16(CRGB *leds, int num_leds,
  function fill_2dnoise8 (line 739) | void fill_2dnoise8(CRGB *leds, int width, int height, bool serpentine,
  function fill_2dnoise16 (line 772) | void fill_2dnoise16(CRGB *leds, int width, int height, bool serpentine,

FILE: Software/firmware_demo/lib/FastLED/src/pixelset.h
  function reversed (line 44) | bool reversed() { return len < 0; }
  function PIXEL_TYPE (line 53) | inline PIXEL_TYPE & operator[](int x) const { if(dir & 0x80) { return le...
  function CPixelView (line 59) | inline CPixelView operator()(int start, int end) { return CPixelView(led...
  function CPixelView (line 100) | inline CPixelView & addToRGB(uint8_t inc) { for(iterator pixel = begin()...
  function CPixelView (line 105) | inline CPixelView & subFromRGB(uint8_t inc) { for(iterator pixel = begin...
  function CPixelView (line 127) | inline CPixelView & nscale8_video(uint8_t scaledown) { for(iterator pixe...
  function CPixelView (line 131) | inline CPixelView & fadeLightBy(uint8_t fadefactor) { return nscale8_vid...
  function CPixelView (line 134) | inline CPixelView & nscale8(uint8_t scaledown) { for(iterator pixel = be...
  function CPixelView (line 141) | inline CPixelView & fadeToBlackBy(uint8_t fade) { return nscale8(255 - f...
  function operator (line 159) | inline operator bool() { for(iterator pixel = begin(), _end = end(); pix...
  function CPixelView (line 162) | inline CPixelView & fill_solid(const PIXEL_TYPE & color) { *this = color...
  function CPixelView (line 163) | inline CPixelView & fill_solid(const CHSV & color) { if(dir>0) { *this =...
  function CPixelView (line 165) | inline CPixelView & fill_rainbow(uint8_t initialhue, uint8_t deltahue=5) {
  function CPixelView (line 174) | inline CPixelView & fill_gradient(const CHSV & startcolor, const CHSV & ...
  function CPixelView (line 183) | inline CPixelView & fill_gradient(const CHSV & c1, const CHSV & c2, cons...
  function CPixelView (line 192) | inline CPixelView & fill_gradient(const CHSV & c1, const CHSV & c2, cons...
  function CPixelView (line 201) | inline CPixelView & fill_gradient_RGB(const PIXEL_TYPE & startcolor, con...
  function CPixelView (line 210) | inline CPixelView & fill_gradient_RGB(const PIXEL_TYPE & c1, const PIXEL...
  function CPixelView (line 219) | inline CPixelView & fill_gradient_RGB(const PIXEL_TYPE & c1, const PIXEL...
  function CPixelView (line 228) | inline CPixelView & nblend(const PIXEL_TYPE & overlay, fract8 amountOfOv...
  function CPixelView (line 229) | inline CPixelView & nblend(const CPixelView & rhs, fract8 amountOfOverla...
  function CPixelView (line 232) | inline CPixelView & blur1d(fract8 blur_amount) {
  function CPixelView (line 241) | inline CPixelView & napplyGamma_video(float gamma) {
  function CPixelView (line 250) | inline CPixelView & napplyGamma_video(float gammaR, float gammaG, float ...
  function other (line 273) | __attribute__((always_inline)) inline bool operator!=(pixelset_iterator_...
  type pixelset_iterator_base (line 279) | typedef pixelset_iterator_base<const PIXEL_TYPE> const_iterator;
  function iterator (line 281) | iterator begin() { return iterator(leds, dir); }
  function iterator (line 282) | iterator end() { return iterator(end_pos, dir); }
  type CPixelView (line 291) | typedef CPixelView<CRGB> CRGBSet;

FILE: Software/firmware_demo/lib/FastLED/src/pixeltypes.h
  type CHSV (line 13) | struct CHSV
  function const (line 23) | struct CHSV {
  function CHSV (line 65) | __attribute__((always_inline)) = default;
  type HSVHue (line 77) | typedef enum {
  function const (line 89) | struct CRGB {
  function r (line 136) | inline CRGB( LEDColorCorrection colorcode) __attribute__((always_inline))
  function CRGB (line 170) | inline CRGB& setRGB (uint8_t nr, uint8_t ng, uint8_t nb) __attribute__((...
  function CRGB (line 179) | inline CRGB& setHSV (uint8_t hue, uint8_t sat, uint8_t val) __attribute_...
  function CRGB (line 186) | inline CRGB& setHue (uint8_t hue) __attribute__((always_inline))
  function CRGB (line 200) | inline CRGB& setColorCode (uint32_t colorcode) __attribute__((always_inl...
  function CRGB (line 222) | inline CRGB& addToRGB (uint8_t d )
  function CRGB (line 243) | inline CRGB& subtractFromRGB(uint8_t d )
  function CRGB (line 259) | inline CRGB operator-- (int )  __attribute__((always_inline))
  function CRGB (line 274) | inline CRGB operator++ (int )  __attribute__((always_inline))
  function CRGB (line 314) | inline CRGB& nscale8_video (uint8_t scaledown )
  function CRGB (line 329) | inline CRGB& fadeLightBy (uint8_t fadefactor )
  function CRGB (line 338) | inline CRGB& nscale8 (uint8_t scaledown )
  function CRGB (line 347) | inline CRGB& nscale8 (const CRGB & scaledown )
  function CRGB (line 356) | inline CRGB scale8 (uint8_t scaledown ) const
  function CRGB (line 364) | inline CRGB scale8 (const CRGB & scaledown ) const
  function CRGB (line 374) | inline CRGB& fadeToBlackBy (uint8_t fadefactor )
  function CRGB (line 423) | inline CRGB operator- () const
  function getLuma (line 444) | inline uint8_t getLuma ( )  const {
  function CRGB (line 485) | inline CRGB lerp8( const CRGB& other, fract8 frac) const
  function CRGB (line 497) | inline CRGB lerp16( const CRGB& other, fract16 frac) const
  function getParity (line 510) | inline uint8_t getParity()
  function setParity (line 539) | inline void setParity( uint8_t parity)
  type HTMLColorCode (line 587) | typedef enum {
  function operator (line 749) | inline __attribute__((always_inline)) bool operator== (const CRGB& lhs, ...
  function operator (line 754) | inline __attribute__((always_inline)) bool operator!= (const CRGB& lhs, ...
  function operator (line 759) | inline __attribute__((always_inline)) bool operator< (const CRGB& lhs, c...
  function operator (line 767) | inline __attribute__((always_inline)) bool operator> (const CRGB& lhs, c...
  function operator (line 775) | inline __attribute__((always_inline)) bool operator>= (const CRGB& lhs, ...
  function operator (line 783) | inline __attribute__((always_inline)) bool operator<= (const CRGB& lhs, ...
  type EOrder (line 852) | enum EOrder {

FILE: Software/firmware_demo/lib/FastLED/src/platforms.cpp
  function PWM0_IRQHandler (line 20) | void PWM0_IRQHandler(void) { ++isrCount; PWM_Arbiter<0>::isr_handler(); }
  function PWM1_IRQHandler (line 23) | void PWM1_IRQHandler(void) { ++isrCount; PWM_Arbiter<1>::isr_handler(); }
  function PWM2_IRQHandler (line 26) | void PWM2_IRQHandler(void) { ++isrCount; PWM_Arbiter<2>::isr_handler(); }
  function PWM3_IRQHandler (line 29) | void PWM3_IRQHandler(void) { ++isrCount; PWM_Arbiter<3>::isr_handler(); }

FILE: Software/firmware_demo/lib/FastLED/src/platforms/apollo3/clockless_apollo3.h
  function __am_hal_systick_count (line 23) | __attribute__ ((always_inline)) inline static uint32_t __am_hal_systick_...
  type typename (line 32) | typedef typename FastPin<DATA_PIN>::port_t data_t;
  function writeBits (line 87) | inline static void writeBits(register uint32_t & next_mark, register uin...
  function showRGBInternal (line 125) | static uint32_t showRGBInternal(PixelController<RGB_ORDER> pixels) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/apollo3/fastpin_apollo3.h
  type port_t (line 16) | typedef uint32_t port_t;
  function setOutput (line 18) | inline static void setOutput() { pinMode(PIN, OUTPUT); am_hal_gpio_fastg...
  function setInput (line 19) | inline static void setInput() { am_hal_gpio_fastgpio_disable(PAD); pinMo...
  function hi (line 21) | inline static void hi() __attribute__ ((always_inline)) { am_hal_gpio_fa...
  function lo (line 22) | inline static void lo() __attribute__ ((always_inline)) { am_hal_gpio_fa...
  function set (line 23) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 25) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 27) | inline static void toggle() __attribute__ ((always_inline)) { if( am_hal...
  function hi (line 29) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 30) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 31) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 33) | inline static port_t hival() __attribute__ ((always_inline)) { return 0; }
  function port_t (line 34) | inline static port_t loval() __attribute__ ((always_inline)) { return 0; }
  function port_ptr_t (line 35) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_t (line 36) | inline static port_t mask() __attribute__ ((always_inline)) { return 0; }

FILE: Software/firmware_demo/lib/FastLED/src/platforms/apollo3/fastspi_apollo3.h
  function setSelect (line 25) | void setSelect(Selectable *pSelect) { m_pSelect = pSelect; }
  function init (line 28) | void init() {
  function select (line 36) | void inline select() { /* TODO */ }
  function release (line 39) | void inline release() { /* TODO */ }
  function waitFully (line 42) | static void waitFully() { /* TODO */ }
  function writeByte (line 45) | static void writeByte(uint8_t b) {
  function writeWord (line 57) | static void writeWord(uint16_t w) {
  function writeBytesValueRaw (line 63) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytesValue (line 68) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 88) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...
  function writeBit (line 91) | static void writeBit(uint8_t b) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/apollo3/led_sysdefs_apollo3.h
  type RoReg (line 29) | typedef volatile uint8_t RoReg;
  type RwReg (line 30) | typedef volatile uint8_t RwReg;

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/common/m0clockless.h
  type M0ClocklessData (line 4) | struct M0ClocklessData {
  type M0ClocklessData (line 17) | struct M0ClocklessData

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/d21/clockless_arm_d21.h
  type typename (line 11) | typedef typename FastPinBB<DATA_PIN>::port_t data_t;
  function showRGBInternal (line 39) | static uint32_t showRGBInternal(PixelController<RGB_ORDER> pixels) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/d21/fastpin_arm_d21.h
  type port_t (line 21) | typedef uint32_t port_t;
  function setOutput (line 24) | inline static void setOutput() {
  function setInput (line 31) | inline static void setInput() { /* TODO */ }
  function setOutput (line 34) | inline static void setOutput() { pinMode(PIN, OUTPUT); }
  function setInput (line 35) | inline static void setInput() { pinMode(PIN, INPUT); }
  function hi (line 37) | inline static void hi() __attribute__ ((always_inline)) { PORT_IOBUS->Gr...
  function lo (line 38) | inline static void lo() __attribute__ ((always_inline)) { PORT_IOBUS->Gr...
  function set (line 39) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 41) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 43) | inline static void toggle() __attribute__ ((always_inline)) { PORT_IOBUS...
  function hi (line 45) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 46) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 47) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 49) | inline static port_t hival() __attribute__ ((always_inline)) { return PO...
  function port_t (line 50) | inline static port_t loval() __attribute__ ((always_inline)) { return PO...
  function port_ptr_t (line 51) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_ptr_t (line 52) | inline static port_ptr_t sport() __attribute__ ((always_inline)) { retur...
  function port_ptr_t (line 53) | inline static port_ptr_t cport() __attribute__ ((always_inline)) { retur...
  function port_t (line 54) | inline static port_t mask() __attribute__ ((always_inline)) { return _MA...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/d51/clockless_arm_d51.h
  type typename (line 20) | typedef typename FastPin<DATA_PIN>::port_t data_t;
  function writeBits (line 45) | inline static void writeBits(register uint32_t & next_mark, register dat...
  function showRGBInternal (line 75) | static uint32_t showRGBInternal(PixelController<RGB_ORDER> pixels) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/d51/fastpin_arm_d51.h
  type port_t (line 21) | typedef uint32_t port_t;
  function setOutput (line 24) | inline static void setOutput() {
  function setInput (line 31) | inline static void setInput() { /* TODO */ }
  function setOutput (line 34) | inline static void setOutput() { pinMode(PIN, OUTPUT); }
  function setInput (line 35) | inline static void setInput() { pinMode(PIN, INPUT); }
  function hi (line 37) | inline static void hi() __attribute__ ((always_inline)) { PORT->Group[_G...
  function lo (line 38) | inline static void lo() __attribute__ ((always_inline)) { PORT->Group[_G...
  function set (line 39) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 41) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 43) | inline static void toggle() __attribute__ ((always_inline)) { PORT->Grou...
  function hi (line 45) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 46) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 47) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 49) | inline static port_t hival() __attribute__ ((always_inline)) { return PO...
  function port_t (line 50) | inline static port_t loval() __attribute__ ((always_inline)) { return PO...
  function port_ptr_t (line 51) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_ptr_t (line 52) | inline static port_ptr_t sport() __attribute__ ((always_inline)) { retur...
  function port_ptr_t (line 53) | inline static port_ptr_t cport() __attribute__ ((always_inline)) { retur...
  function port_t (line 54) | inline static port_t mask() __attribute__ ((always_inline)) { return _MA...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/clockless_arm_k20.h
  type typename (line 15) | typedef typename FastPin<DATA_PIN>::port_t data_t;
  function writeBits (line 40) | inline static void writeBits(register uint32_t & next_mark, register dat...
  function showRGBInternal (line 70) | static uint32_t showRGBInternal(PixelController<RGB_ORDER> pixels) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/clockless_block_arm_k20.h
  type typename (line 25) | typedef typename FastPin<FIRST_PIN>::port_t data_t;
  function virtual (line 46) | virtual void init() {
  type Lines (line 80) | typedef union {
  function writeBits (line 86) | inline static void writeBits(register uint32_t & next_mark, register Lin...
  function showRGBInternal (line 143) | static uint32_t showRGBInternal(PixelController<RGB_ORDER, LANES, PORT_M...
  type typename (line 196) | typedef typename FastPin<PORTC_FIRST_PIN>::port_t data_t;
  type Lines (line 242) | typedef union {
  function writeBits (line 248) | inline static void writeBits(register uint32_t & next_mark, register Lin...
  function showRGBInternal (line 280) | static uint32_t showRGBInternal(PixelController<RGB_ORDER,LANES, PMASK> ...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/fastpin_arm_k20.h
  type port_t (line 21) | typedef uint32_t port_t;
  function setOutput (line 23) | inline static void setOutput() { pinMode(PIN, OUTPUT); }
  function setInput (line 24) | inline static void setInput() { pinMode(PIN, INPUT); }
  function hi (line 26) | inline static void hi() __attribute__ ((always_inline)) { _PSOR::r() = _...
  function lo (line 27) | inline static void lo() __attribute__ ((always_inline)) { _PCOR::r() = _...
  function set (line 28) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 30) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 32) | inline static void toggle() __attribute__ ((always_inline)) { _PTOR::r()...
  function hi (line 34) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 35) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 36) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 38) | inline static port_t hival() __attribute__ ((always_inline)) { return _P...
  function port_t (line 39) | inline static port_t loval() __attribute__ ((always_inline)) { return _P...
  function port_ptr_t (line 40) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_ptr_t (line 41) | inline static port_ptr_t sport() __attribute__ ((always_inline)) { retur...
  function port_ptr_t (line 42) | inline static port_ptr_t cport() __attribute__ ((always_inline)) { retur...
  function port_t (line 43) | inline static port_t mask() __attribute__ ((always_inline)) { return _MA...
  type port_t (line 51) | typedef uint32_t port_t;
  function setOutput (line 53) | inline static void setOutput() { pinMode(PIN, OUTPUT); }
  function setInput (line 54) | inline static void setInput() { pinMode(PIN, INPUT); }
  function hi (line 56) | inline static void hi() __attribute__ ((always_inline)) { *_PDOR::templa...
  function lo (line 57) | inline static void lo() __attribute__ ((always_inline)) { *_PDOR::templa...
  function set (line 58) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 60) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 62) | inline static void toggle() __attribute__ ((always_inline)) { *_PTOR::te...
  function hi (line 64) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 65) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 66) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 68) | inline static port_t hival() __attribute__ ((always_inline)) { return 1; }
  function port_t (line 69) | inline static port_t loval() __attribute__ ((always_inline)) { return 0; }
  function port_ptr_t (line 70) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_t (line 71) | inline static port_t mask() __attribute__ ((always_inline)) { return 1; }

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/fastspi_arm_k20.h
  type SPIState (line 42) | struct SPIState {
  function enable_pins (line 105) | inline void enable_pins(void) __attribute__((always_inline)) {
  function disable_pins (line 131) | inline void disable_pins(void) __attribute__((always_inline)) {
  function update_ctars (line 143) | static inline void update_ctars(uint32_t ctar0, uint32_t ctar1) __attrib...
  function update_ctar0 (line 157) | static inline void update_ctar0(uint32_t ctar) __attribute__((always_inl...
  function update_ctar1 (line 170) | static inline void update_ctar1(uint32_t ctar) __attribute__((always_inl...
  function setSPIRate (line 183) | void setSPIRate() {
  function save_spi_state (line 221) | void inline save_spi_state() __attribute__ ((always_inline)) {
  function restore_spi_state (line 233) | void inline restore_spi_state() __attribute__ ((always_inline)) {
  function setSelect (line 248) | void setSelect(Selectable *pSelect) { m_pSelect = pSelect; }
  function init (line 250) | void init() {
  function waitFully (line 278) | static void waitFully() __attribute__((always_inline)) {
  function needwait (line 298) | static bool needwait() __attribute__((always_inline)) { return (SPIX.SR ...
  function wait (line 299) | static void wait() __attribute__((always_inline)) { while( (SPIX.SR & 0x...
  function wait1 (line 300) | static void wait1() __attribute__((always_inline)) { while( (SPIX.SR & 0...
  type ECont (line 302) | enum ECont { CONT, NOCONT }
  type EWait (line 303) | enum EWait { PRE, POST, NONE }
  type ELast (line 304) | enum ELast { NOTLAST, LAST }
  function writeByte (line 326) | static void writeByte(uint8_t b) __attribute__((always_inline)) {
  function writeWord (line 338) | static void writeWord(uint16_t w) __attribute__((always_inline)) { wait(...
  function writeWordNoWait (line 339) | static void writeWordNoWait(uint16_t w) __attribute__((always_inline)) {...
  function writeByte (line 341) | static void writeByte(uint8_t b) __attribute__((always_inline)) { wait()...
  function writeBytePostWait (line 342) | static void writeBytePostWait(uint8_t b) __attribute__((always_inline)) ...
  function writeByteNoWait (line 343) | static void writeByteNoWait(uint8_t b) __attribute__((always_inline)) { ...
  function writeWordCont (line 345) | static void writeWordCont(uint16_t w) __attribute__((always_inline)) { w...
  function writeWordContNoWait (line 346) | static void writeWordContNoWait(uint16_t w) __attribute__((always_inline...
  function writeByteCont (line 348) | static void writeByteCont(uint8_t b) __attribute__((always_inline)) { wa...
  function writeByteContPostWait (line 349) | static void writeByteContPostWait(uint8_t b) __attribute__((always_inlin...
  function writeByteContNoWait (line 350) | static void writeByteContNoWait(uint8_t b) __attribute__((always_inline)...
  function writeBit (line 353) | static void writeBit(uint8_t b) {
  function select (line 365) | void inline select() __attribute__((always_inline)) {
  function release (line 372) | void inline release() __attribute__((always_inline)) {
  function writeBytesValueRaw (line 378) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytesValue (line 382) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 404) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/led_sysdefs_arm_k20.h
  type RoReg (line 30) | typedef volatile       uint8_t RoReg;
  type RwReg (line 31) | typedef volatile       uint8_t RwReg;

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/octows2811_controller.h
  function _init (line 15) | void _init(int nLeds) {
  function virtual (line 31) | virtual int size() { return CLEDController::size() * 8; }
  function virtual (line 33) | virtual void init() { /* do nothing yet */ }
  type Lines (line 35) | typedef union {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/smartmatrix_t3.h
  function class (line 12) | class CSmartMatrixController : public CPixelLEDController<RGB_ORDER> {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/ws2812serial_controller.h
  function _init (line 13) | void _init(int nLeds) {
  function virtual (line 25) | virtual void init() { /* do nothing yet */ }

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/k66/clockless_arm_k66.h
  type typename (line 15) | typedef typename FastPin<DATA_PIN>::port_t data_t;
  function writeBits (line 40) | inline static void writeBits(register uint32_t & next_mark, register dat...
  function showRGBInternal (line 70) | static uint32_t showRGBInternal(PixelController<RGB_ORDER> pixels) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/k66/clockless_block_arm_k66.h
  type typename (line 28) | typedef typename FastPin<FIRST_PIN>::port_t data_t;
  function virtual (line 49) | virtual void init() {
  type Lines (line 94) | typedef union {
  function writeBits (line 100) | inline static void writeBits(register uint32_t & next_mark, register Lin...
  function showRGBInternal (line 157) | static uint32_t showRGBInternal(PixelController<RGB_ORDER, LANES, LANE_M...
  type typename (line 210) | typedef typename FastPin<PORTC_FIRST_PIN>::port_t data_t;
  type Lines (line 256) | typedef union {
  function writeBits (line 262) | inline static void writeBits(register uint32_t & next_mark, register Lin...
  function showRGBInternal (line 293) | static uint32_t showRGBInternal(PixelController<RGB_ORDER,LANES, PMASK> ...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/k66/fastpin_arm_k66.h
  type port_t (line 21) | typedef uint32_t port_t;
  function setOutput (line 23) | inline static void setOutput() { pinMode(PIN, OUTPUT); }
  function setInput (line 24) | inline static void setInput() { pinMode(PIN, INPUT); }
  function hi (line 26) | inline static void hi() __attribute__ ((always_inline)) { _PSOR::r() = _...
  function lo (line 27) | inline static void lo() __attribute__ ((always_inline)) { _PCOR::r() = _...
  function set (line 28) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 30) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 32) | inline static void toggle() __attribute__ ((always_inline)) { _PTOR::r()...
  function hi (line 34) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 35) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 36) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 38) | inline static port_t hival() __attribute__ ((always_inline)) { return _P...
  function port_t (line 39) | inline static port_t loval() __attribute__ ((always_inline)) { return _P...
  function port_ptr_t (line 40) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_ptr_t (line 41) | inline static port_ptr_t sport() __attribute__ ((always_inline)) { retur...
  function port_ptr_t (line 42) | inline static port_ptr_t cport() __attribute__ ((always_inline)) { retur...
  function port_t (line 43) | inline static port_t mask() __attribute__ ((always_inline)) { return _MA...
  type port_t (line 51) | typedef uint32_t port_t;
  function setOutput (line 53) | inline static void setOutput() { pinMode(PIN, OUTPUT); }
  function setInput (line 54) | inline static void setInput() { pinMode(PIN, INPUT); }
  function hi (line 56) | inline static void hi() __attribute__ ((always_inline)) { *_PDOR::templa...
  function lo (line 57) | inline static void lo() __attribute__ ((always_inline)) { *_PDOR::templa...
  function set (line 58) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 60) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 62) | inline static void toggle() __attribute__ ((always_inline)) { *_PTOR::te...
  function hi (line 64) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 65) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 66) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 68) | inline static port_t hival() __attribute__ ((always_inline)) { return 1; }
  function port_t (line 69) | inline static port_t loval() __attribute__ ((always_inline)) { return 0; }
  function port_ptr_t (line 70) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_t (line 71) | inline static port_t mask() __attribute__ ((always_inline)) { return 1; }

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/k66/fastspi_arm_k66.h
  type SPIState (line 50) | struct SPIState {
  function enable_pins (line 113) | inline void enable_pins(void) __attribute__((always_inline)) {
  function disable_pins (line 139) | inline void disable_pins(void) __attribute__((always_inline)) {
  function update_ctars (line 151) | static inline void update_ctars(uint32_t ctar0, uint32_t ctar1) __attrib...
  function update_ctar0 (line 165) | static inline void update_ctar0(uint32_t ctar) __attribute__((always_inl...
  function update_ctar1 (line 178) | static inline void update_ctar1(uint32_t ctar) __attribute__((always_inl...
  function setSPIRate (line 191) | void setSPIRate() {
  function save_spi_state (line 229) | void inline save_spi_state() __attribute__ ((always_inline)) {
  function restore_spi_state (line 241) | void inline restore_spi_state() __attribute__ ((always_inline)) {
  function setSelect (line 255) | void setSelect(Selectable *pSelect) { m_pSelect = pSelect; }
  function init (line 258) | void init() {
  function waitFully (line 286) | static void waitFully() __attribute__((always_inline)) {
  function needwait (line 306) | static bool needwait() __attribute__((always_inline)) { return (SPIX.SR ...
  function wait (line 307) | static void wait() __attribute__((always_inline)) { while( (SPIX.SR & 0x...
  function wait1 (line 308) | static void wait1() __attribute__((always_inline)) { while( (SPIX.SR & 0...
  type ECont (line 310) | enum ECont { CONT, NOCONT }
  type EWait (line 311) | enum EWait { PRE, POST, NONE }
  type ELast (line 312) | enum ELast { NOTLAST, LAST }
  function writeByte (line 332) | static void writeByte(uint8_t b) __attribute__((always_inline)) {
  function writeWord (line 342) | static void writeWord(uint16_t w) __attribute__((always_inline)) { wait(...
  function writeWordNoWait (line 343) | static void writeWordNoWait(uint16_t w) __attribute__((always_inline)) {...
  function writeByte (line 345) | static void writeByte(uint8_t b) __attribute__((always_inline)) { wait()...
  function writeBytePostWait (line 346) | static void writeBytePostWait(uint8_t b) __attribute__((always_inline)) ...
  function writeByteNoWait (line 347) | static void writeByteNoWait(uint8_t b) __attribute__((always_inline)) { ...
  function writeWordCont (line 349) | static void writeWordCont(uint16_t w) __attribute__((always_inline)) { w...
  function writeWordContNoWait (line 350) | static void writeWordContNoWait(uint16_t w) __attribute__((always_inline...
  function writeByteCont (line 352) | static void writeByteCont(uint8_t b) __attribute__((always_inline)) { wa...
  function writeByteContPostWait (line 353) | static void writeByteContPostWait(uint8_t b) __attribute__((always_inlin...
  function writeByteContNoWait (line 354) | static void writeByteContNoWait(uint8_t b) __attribute__((always_inline)...
  function writeBit (line 357) | static void writeBit(uint8_t b) {
  function select (line 369) | void inline select() __attribute__((always_inline)) {
  function release (line 376) | void inline release() __attribute__((always_inline)) {
  function writeBytesValueRaw (line 382) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytesValue (line 386) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 408) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/k66/led_sysdefs_arm_k66.h
  type RoReg (line 30) | typedef volatile       uint8_t RoReg;
  type RwReg (line 31) | typedef volatile       uint8_t RwReg;

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/kl26/clockless_arm_kl26.h
  type typename (line 11) | typedef typename FastPinBB<DATA_PIN>::port_t data_t;
  function showRGBInternal (line 41) | static uint32_t showRGBInternal(PixelController<RGB_ORDER> pixels) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/kl26/fastpin_arm_kl26.h
  type port_t (line 21) | typedef uint32_t port_t;
  function setOutput (line 23) | inline static void setOutput() { pinMode(PIN, OUTPUT); }
  function setInput (line 24) | inline static void setInput() { pinMode(PIN, INPUT); }
  function hi (line 26) | inline static void hi() __attribute__ ((always_inline)) { _PSOR::r() = _...
  function lo (line 27) | inline static void lo() __attribute__ ((always_inline)) { _PCOR::r() = _...
  function set (line 28) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 30) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 32) | inline static void toggle() __attribute__ ((always_inline)) { _PTOR::r()...
  function hi (line 34) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 35) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 36) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 38) | inline static port_t hival() __attribute__ ((always_inline)) { return _P...
  function port_t (line 39) | inline static port_t loval() __attribute__ ((always_inline)) { return _P...
  function port_ptr_t (line 40) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_ptr_t (line 41) | inline static port_ptr_t sport() __attribute__ ((always_inline)) { retur...
  function port_ptr_t (line 42) | inline static port_ptr_t cport() __attribute__ ((always_inline)) { retur...
  function port_t (line 43) | inline static port_t mask() __attribute__ ((always_inline)) { return _MA...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/kl26/fastspi_arm_kl26.h
  function FASTLED_NAMESPACE_BEGIN (line 4) | FASTLED_NAMESPACE_BEGIN
  function enable_pins (line 89) | static inline void enable_pins(void) __attribute__((always_inline)) {
  function disable_pins (line 107) | static inline void disable_pins(void) __attribute((always_inline)) {
  function setSPIRate (line 125) | void setSPIRate() {
  function setSelect (line 142) | void setSelect(Selectable *pSelect) { m_pSelect = pSelect; }
  function init (line 145) | void init() {
  function select (line 165) | void inline select() __attribute__((always_inline)) {
  function release (line 173) | void inline release() __attribute__((always_inline)) {
  function wait (line 179) | static void wait() __attribute__((always_inline)) { while(!(SPIX.S & SPI...
  function waitFully (line 182) | void waitFully() { wait(); }
  function writeBit (line 185) | static void writeBit(uint8_t b) { /* TODO */ }
  function writeByte (line 188) | static void writeByte(uint8_t b) __attribute__((always_inline)) { wait()...
  function writeWord (line 190) | static void writeWord(uint16_t w) __attribute__((always_inline)) { write...
  function writeBytesValueRaw (line 193) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytesValue (line 198) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 222) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/kl26/led_sysdefs_arm_kl26.h
  type RoReg (line 33) | typedef volatile       uint8_t RoReg;
  type RwReg (line 34) | typedef volatile       uint8_t RwReg;

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/mxrt1062/block_clockless_arm_mxrt1062.h
  function virtual (line 37) | virtual void init() {
  type _outlines (line 111) | typedef union {
  function writeBits (line 119) | inline void writeBits(register uint32_t & next_mark, register _outlines ...
  function showRGBInternal (line 158) | uint32_t showRGBInternal(PixelController<RGB_ORDER,LANES, __FL_T4_MASK> ...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/mxrt1062/clockless_arm_mxrt1062.h
  type typename (line 17) | typedef typename FastPin<DATA_PIN>::port_t data_t;
  function __T1 (line 26) | static constexpr int __T1() { return T1; }
  function __T2 (line 27) | static constexpr int __T2() { return T2; }
  function __T3 (line 28) | static constexpr int __T3() { return T3; }
  function EOrder (line 29) | static constexpr EOrder __RGB_ORDER() { return RGB_ORDER; }
  function __XTRA0 (line 30) | static constexpr int __XTRA0() { return XTRA0; }
  function __FLIP (line 31) | static constexpr bool __FLIP() { return FLIP; }
  function __WAIT_TIME (line 32) | static constexpr int __WAIT_TIME() { return WAIT_TIME; }
  function virtual (line 34) | virtual void init() {
  function writeBits (line 53) | inline void writeBits(register uint32_t & next_mark, register uint32_t &...
  function showRGBInternal (line 81) | uint32_t showRGBInternal(PixelController<RGB_ORDER> pixels) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/mxrt1062/fastpin_arm_mxrt1062.h
  type port_t (line 19) | typedef uint32_t port_t;
  function setOutput (line 21) | inline static void setOutput() { pinMode(PIN, OUTPUT); }
  function setInput (line 22) | inline static void setInput() { pinMode(PIN, INPUT); }
  function hi (line 24) | inline static void hi() __attribute__ ((always_inline)) { _GPIO_DR_SET::...
  function lo (line 25) | inline static void lo() __attribute__ ((always_inline)) { _GPIO_DR_CLEAR...
  function set (line 26) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 28) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 30) | inline static void toggle() __attribute__ ((always_inline)) { _GPIO_DR_T...
  function hi (line 32) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 33) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 34) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 36) | inline static port_t hival() __attribute__ ((always_inline)) { return _G...
  function port_t (line 37) | inline static port_t loval() __attribute__ ((always_inline)) { return _G...
  function port_ptr_t (line 38) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_ptr_t (line 39) | inline static port_ptr_t sport() __attribute__ ((always_inline)) { retur...
  function port_ptr_t (line 40) | inline static port_ptr_t cport() __attribute__ ((always_inline)) { retur...
  function port_t (line 41) | inline static port_t mask() __attribute__ ((always_inline)) { return _MA...
  function pinbit (line 42) | inline static uint32_t pinbit() __attribute__ ((always_inline)) { return...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/mxrt1062/fastspi_arm_mxrt1062.h
  function IMXRT_LPSPI_t (line 14) | inline IMXRT_LPSPI_t & port() __attribute__((always_inline)) {
  function setSelect (line 30) | void setSelect(Selectable *pSelect) { /* TODO */ }
  function init (line 33) | void init() { _SPIObject.begin(); }
  function select (line 36) | void inline select() __attribute__((always_inline)) {
  function release (line 43) | void inline release() __attribute__((always_inline)) {
  function waitFully (line 49) | static void waitFully() { /* TODO */ }
  function writeByte (line 52) | void inline writeByte(uint8_t b) __attribute__((always_inline)) {
  function writeWord (line 69) | void inline writeWord(uint16_t w) __attribute__((always_inline)) {
  function writeBytesValueRaw (line 75) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytesValue (line 80) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 98) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...
  function writeBit (line 101) | void writeBit(uint8_t b) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/mxrt1062/led_sysdefs_arm_mxrt1062.h
  type RoReg (line 30) | typedef volatile       uint32_t RoReg;
  type RwReg (line 31) | typedef volatile       uint32_t RwReg;

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/mxrt1062/octows2811_controller.h
  function _init (line 15) | void _init(int nLeds) {
  function virtual (line 31) | virtual int size() { return CLEDController::size() * 8; }
  function virtual (line 33) | virtual void init() { /* do nothing yet */ }

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf51/clockless_arm_nrf51.h
  type typename (line 24) | typedef typename FastPinBB<DATA_PIN>::port_t data_t;
  function showRGBInternal (line 52) | static uint32_t showRGBInternal(PixelController<RGB_ORDER> pixels) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf51/fastpin_arm_nrf51.h
  type port_t (line 13) | typedef uint32_t port_t;
  function setOutput (line 15) | inline static void setOutput() { _DIRSET::r() = _MASK; }
  function setInput (line 16) | inline static void setInput() { _DIRCLR::r() = _MASK; }
  function hi (line 18) | inline static void hi() __attribute__ ((always_inline)) { _OUTSET::r() =...
  function lo (line 19) | inline static void lo() __attribute__ ((always_inline)) { _OUTCLR::r() =...
  function set (line 20) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 22) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 24) | inline static void toggle() __attribute__ ((always_inline)) { _OUT::r() ...
  function hi (line 26) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 27) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 28) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 30) | inline static port_t hival() __attribute__ ((always_inline)) { return _O...
  function port_t (line 31) | inline static port_t loval() __attribute__ ((always_inline)) { return _O...
  function port_ptr_t (line 32) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_t (line 33) | inline static port_t mask() __attribute__ ((always_inline)) { return _MA...
  type FL_NRF_GPIO_Type (line 56) | typedef struct {                                    /*!< GPIO Structure ...
  type port_t (line 75) | typedef uint32_t port_t;
  function setOutput (line 77) | inline static void setOutput() { FL_NRF_GPIO->DIRSET = _MASK; }
  function setInput (line 78) | inline static void setInput() { FL_NRF_GPIO->DIRCLR = _MASK; }
  function hi (line 80) | inline static void hi() __attribute__ ((always_inline)) { FL_NRF_GPIO->O...
  function lo (line 81) | inline static void lo() __attribute__ ((always_inline)) { FL_NRF_GPIO->O...
  function set (line 82) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 84) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 86) | inline static void toggle() __attribute__ ((always_inline)) { FL_NRF_GPI...
  function hi (line 88) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 89) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 90) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 92) | inline static port_t hival() __attribute__ ((always_inline)) { return FL...
  function port_t (line 93) | inline static port_t loval() __attribute__ ((always_inline)) { return FL...
  function port_ptr_t (line 94) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_t (line 95) | inline static port_t mask() __attribute__ ((always_inline)) { return _MA...
  function isset (line 97) | inline static bool isset() __attribute__ ((always_inline)) { return (FL_...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf51/fastspi_arm_nrf51.h
  type saveData (line 15) | struct saveData {
  function saveSPIData (line 23) | void saveSPIData() {
  function restoreSPIData (line 31) | void restoreSPIData() {
  function setSelect (line 44) | void setSelect(Selectable *pSelect) { /* TODO */ }
  function init (line 47) | void init() {
  function select (line 59) | void select() { saveSPIData(); init(); }
  function release (line 62) | void release() { shouldWait(); restoreSPIData(); }
  function waitFully (line 74) | static void waitFully() __attribute__((always_inline)){ if(shouldWait())...
  function wait (line 75) | static void wait() __attribute__((always_inline)){ if(shouldWait()) { wh...
  function writeByte (line 78) | static void writeByte(uint8_t b) __attribute__((always_inline)) { wait()...
  function writeWord (line 81) | static void writeWord(uint16_t w) __attribute__((always_inline)){ writeB...
  function writeBytesValueRaw (line 84) | static void writeBytesValueRaw(uint8_t value, int len) { while(len--) { ...
  function writeBytesValue (line 87) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 108) | void writeBytes(uint8_t *data, int len) {
  function writeBit (line 113) | static void writeBit(uint8_t b) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf51/led_sysdefs_arm_nrf51.h
  type RoReg (line 25) | typedef volatile uint32_t RoReg;
  type RwReg (line 26) | typedef volatile uint32_t RwReg;
  type prog_uint32_t (line 27) | typedef uint32_t prog_uint32_t;
  type boolean (line 28) | typedef uint8_t boolean;

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf52/arbiter_nrf52.h
  type FASTLED_NRF52_ENABLED_PWM_INSTANCES (line 19) | typedef enum _FASTLED_NRF52_ENABLED_PWM_INSTANCE {
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 52) | FASTLED_NRF52_INLINE_ATTRIBUTE static bool            isAcquired() {
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 55) | FASTLED_NRF52_INLINE_ATTRIBUTE static void            acquire(FASTLED_NR...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 58) | FASTLED_NRF52_INLINE_ATTRIBUTE static bool            tryAcquire(FASTLED...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 66) | FASTLED_NRF52_INLINE_ATTRIBUTE static void            releaseFromIsr() {
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 75) | FASTLED_NRF52_INLINE_ATTRIBUTE static NRF_PWM_Type *  getPWM() {
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 78) | FASTLED_NRF52_INLINE_ATTRIBUTE static IRQn_Type       getIRQn() { return...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf52/clockless_arm_nrf52.h
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 51) | FASTLED_NRF52_INLINE_ATTRIBUTE static void startPwmPlayback_InitializePi...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 59) | FASTLED_NRF52_INLINE_ATTRIBUTE static void startPwmPlayback_InitializePw...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 82) | FASTLED_NRF52_INLINE_ATTRIBUTE static void startPwmPlayback_ConfigurePwm...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 94) | FASTLED_NRF52_INLINE_ATTRIBUTE static void startPwmPlayback_EnableInterr...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 122) | FASTLED_NRF52_INLINE_ATTRIBUTE static void startPwmPlayback_StartTask(NR...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 125) | FASTLED_NRF52_INLINE_ATTRIBUTE static void spinAcquireSequenceBuffer() {
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 128) | FASTLED_NRF52_INLINE_ATTRIBUTE static bool tryAcquireSequenceBuffer() {
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 131) | FASTLED_NRF52_INLINE_ATTRIBUTE static void releaseSequenceBuffer() {
  function virtual (line 167) | virtual void init() {
  function WriteBitToSequence (line 191) | static void WriteBitToSequence(uint8_t byte, uint16_t * e) {
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 260) | FASTLED_NRF52_INLINE_ATTRIBUTE static void startPwmPlayback(uint16_t byt...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 277) | FASTLED_NRF52_INLINE_ATTRIBUTE static uint16_t* getRawSequenceBuffer() {...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 278) | FASTLED_NRF52_INLINE_ATTRIBUTE static uint16_t getRawSequenceBufferSize(...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 279) | FASTLED_NRF52_INLINE_ATTRIBUTE static uint16_t getSequenceBufferInUse() ...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 280) | FASTLED_NRF52_INLINE_ATTRIBUTE static void sendRawSequenceBuffer(uint16_...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 284) | FASTLED_NRF52_INLINE_ATTRIBUTE static void sendRawBytes(uint8_t * arrayO...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf52/fastpin_arm_nrf52.h
  type __generated_struct_NRF_P0 (line 75) | struct __generated_struct_NRF_P0 {
  type __generated_struct_NRF_P1 (line 82) | struct __generated_struct_NRF_P1 {
  type port_t (line 94) | typedef uint32_t port_t;
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 96) | FASTLED_NRF52_INLINE_ATTRIBUTE static void       setOutput() {
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 107) | FASTLED_NRF52_INLINE_ATTRIBUTE static void       setInput()  {
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 118) | FASTLED_NRF52_INLINE_ATTRIBUTE static void       hi()        { (reinterp...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 119) | FASTLED_NRF52_INLINE_ATTRIBUTE static void       lo()        { (reinterp...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 120) | FASTLED_NRF52_INLINE_ATTRIBUTE static void       toggle()    { (reinterp...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 121) | FASTLED_NRF52_INLINE_ATTRIBUTE static void       strobe()    { toggle();...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 122) | FASTLED_NRF52_INLINE_ATTRIBUTE static port_t     hival()     { return (r...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 123) | FASTLED_NRF52_INLINE_ATTRIBUTE static port_t     loval()     { return (r...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 124) | FASTLED_NRF52_INLINE_ATTRIBUTE static port_ptr_t port()      { return &(...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 125) | FASTLED_NRF52_INLINE_ATTRIBUTE static port_ptr_t cport()     { return &(...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 126) | FASTLED_NRF52_INLINE_ATTRIBUTE static port_ptr_t sport()     { return &(...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 127) | FASTLED_NRF52_INLINE_ATTRIBUTE static port_t     mask()      { return _M...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 128) | FASTLED_NRF52_INLINE_ATTRIBUTE static void hi (register port_ptr_t port)...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 129) | FASTLED_NRF52_INLINE_ATTRIBUTE static void lo (register port_ptr_t port)...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 130) | FASTLED_NRF52_INLINE_ATTRIBUTE static void set(register port_t     val )...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 131) | FASTLED_NRF52_INLINE_ATTRIBUTE static void fastset(register port_ptr_t p...
  function nrf_pin2 (line 132) | constexpr                      static uint32_t   nrf_pin2() { return NRF...
  function LowSpeedOnlyRecommended (line 133) | constexpr                      static bool       LowSpeedOnlyRecommended...
  function FASTLED_NRF52_INLINE_ATTRIBUTE (line 140) | FASTLED_NRF52_INLINE_ATTRIBUTE static uint32_t   nrf_pin()  { return NRF...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf52/fastspi_arm_nrf52.h
  type spim_config (line 49) | struct spim_config {
  function saveSpimConfig (line 70) | void saveSpimConfig() {
  function restoreSpimConfig (line 88) | void restoreSpimConfig() {
  function init (line 118) | void init() {
  function select (line 152) | void select() {
  function release (line 160) | void release() {
  function waitFully (line 168) | static void waitFully() {
  function wait (line 180) | static void wait() {
  function writeByte (line 188) | static void writeByte(uint8_t b) {
  function writeWord (line 210) | static void writeWord(uint16_t w) {
  function writeBytesValueRaw (line 233) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytesValue (line 238) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 246) | void writeBytes(uint8_t *data, int len) {
  function writeBit (line 282) | static void writeBit(uint8_t b) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf52/led_sysdefs_arm_nrf52.h
  type __I (line 43) | typedef __I  uint32_t RoReg;
  type __IO (line 44) | typedef __IO uint32_t RwReg;

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/sam/clockless_arm_sam.h
  type typename (line 20) | typedef typename FastPinBB<DATA_PIN>::port_t data_t;
  function writeBits (line 45) | inline static void writeBits(register uint32_t & next_mark, register dat...
  function showRGBInternal (line 73) | static uint32_t showRGBInternal(PixelController<RGB_ORDER> pixels) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/sam/clockless_block_arm_sam.h
  type Lines (line 23) | typedef union {
  type typename (line 35) | typedef typename FastPin<FIRST_PIN>::port_t data_t;
  function virtual (line 43) | virtual void init() {
  function showRGBInternal (line 92) | static uint32_t showRGBInternal(PixelController<RGB_ORDER, LANES, PORT_M...
  function writeBits (line 143) | inline static void writeBits(register uint32_t & next_mark, register Lin...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/sam/fastpin_arm_sam.h
  type port_t (line 21) | typedef uint32_t port_t;
  function setOutput (line 23) | inline static void setOutput() { pinMode(PIN, OUTPUT); }
  function setInput (line 24) | inline static void setInput() { pinMode(PIN, INPUT); }
  function hi (line 26) | inline static void hi() __attribute__ ((always_inline)) { _PSOR::r() = _...
  function lo (line 27) | inline static void lo() __attribute__ ((always_inline)) { _PCOR::r() = _...
  function set (line 28) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 30) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 32) | inline static void toggle() __attribute__ ((always_inline)) { _PDOR::r()...
  function hi (line 34) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 35) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 36) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 38) | inline static port_t hival() __attribute__ ((always_inline)) { return _P...
  function port_t (line 39) | inline static port_t loval() __attribute__ ((always_inline)) { return _P...
  function port_ptr_t (line 40) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_ptr_t (line 41) | inline static port_ptr_t sport() __attribute__ ((always_inline)) { retur...
  function port_ptr_t (line 42) | inline static port_ptr_t cport() __attribute__ ((always_inline)) { retur...
  function port_t (line 43) | inline static port_t mask() __attribute__ ((always_inline)) { return _MA...
  type port_t (line 52) | typedef uint32_t port_t;
  function setOutput (line 54) | inline static void setOutput() { pinMode(PIN, OUTPUT); }
  function setInput (line 55) | inline static void setInput() { pinMode(PIN, INPUT); }
  function hi (line 57) | inline static void hi() __attribute__ ((always_inline)) { *_PDOR::templa...
  function lo (line 58) | inline static void lo() __attribute__ ((always_inline)) { *_PDOR::templa...
  function set (line 59) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 61) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 63) | inline static void toggle() __attribute__ ((always_inline)) { *_PDOR::te...
  function hi (line 65) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 66) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 67) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 69) | inline static port_t hival() __attribute__ ((always_inline)) { return 1; }
  function port_t (line 70) | inline static port_t loval() __attribute__ ((always_inline)) { return 0; }
  function port_ptr_t (line 71) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_t (line 72) | inline static port_t mask() __attribute__ ((always_inline)) { return 1; }

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/sam/fastspi_arm_sam.h
  function waitForEmpty (line 13) | static inline void waitForEmpty() { while ((m_SPI->SPI_SR & SPI_SR_TDRE)...
  function enableConfig (line 15) | void enableConfig() { m_SPI->SPI_WPMR &= ~SPI_WPMR_WPEN; }
  function disableConfig (line 16) | void disableConfig() { m_SPI->SPI_WPMR |= SPI_WPMR_WPEN; }
  function enableSPI (line 18) | void enableSPI() { m_SPI->SPI_CR = SPI_CR_SPIEN; }
  function disableSPI (line 19) | void disableSPI() { m_SPI->SPI_CR = SPI_CR_SPIDIS; }
  function resetSPI (line 20) | void resetSPI() { m_SPI->SPI_CR = SPI_CR_SWRST; }
  function readyTransferBits (line 22) | static inline void readyTransferBits(register uint32_t bits) {
  function writeBits (line 29) | inline void writeBits(uint16_t w) {
  function setSelect (line 39) | void setSelect(Selectable *pSelect) { /* TODO */ }
  function init (line 42) | void init() {
  function select (line 73) | void inline select() __attribute__((always_inline)) { if(m_pSelect != NU...
  function release (line 76) | void inline release() __attribute__((always_inline)) { if(m_pSelect != N...
  function waitFully (line 79) | void waitFully() { while((m_SPI->SPI_SR & SPI_SR_TXEMPTY) == 0); }
  function writeByte (line 82) | static void writeByte(uint8_t b) {
  function writeWord (line 87) | static void writeWord(uint16_t w) {
  function writeBytesValueRaw (line 92) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytesValue (line 97) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 113) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...
  function writeBit (line 117) | void writeBit(uint8_t b) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/stm32/clockless_arm_stm32.h
  type typename (line 20) | typedef typename FastPin<DATA_PIN>::port_t data_t;
  function writeBits (line 47) | inline static void writeBits(register uint32_t & next_mark, register dat...
  function showRGBInternal (line 77) | static uint32_t showRGBInternal(PixelController<RGB_ORDER> pixels) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/stm32/cm3_regs.h
  type CoreDebug_Type (line 15) | typedef struct
  type DWT_Type (line 29) | typedef struct

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/stm32/fastpin_arm_stm32.h
  type port_t (line 22) | typedef uint32_t port_t;
  function setOutput (line 25) | inline static void setOutput() {
  function setInput (line 32) | inline static void setInput() { /* TODO */ }
  function setOutput (line 35) | inline static void setOutput() { pinMode(PIN, OUTPUT); }
  function setInput (line 36) | inline static void setInput() { pinMode(PIN, INPUT); }
  function hi (line 39) | inline static void hi() __attribute__ ((always_inline)) { _GPIO::r()->BS...
  function lo (line 40) | inline static void lo() __attribute__ ((always_inline)) { _GPIO::r()->BS...
  function hi (line 42) | inline static void hi() __attribute__ ((always_inline)) { _GPIO::r()->BS...
  function lo (line 43) | inline static void lo() __attribute__ ((always_inline)) { _GPIO::r()->BR...
  function set (line 46) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 48) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 50) | inline static void toggle() __attribute__ ((always_inline)) { if(_GPIO::...
  function hi (line 52) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 53) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 54) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 56) | inline static port_t hival() __attribute__ ((always_inline)) { return _G...
  function port_t (line 57) | inline static port_t loval() __attribute__ ((always_inline)) { return _G...
  function port_ptr_t (line 58) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_ptr_t (line 61) | inline static port_ptr_t sport() __attribute__ ((always_inline)) { retur...
  function port_ptr_t (line 62) | inline static port_ptr_t cport() __attribute__ ((always_inline)) { retur...
  function port_ptr_t (line 64) | inline static port_ptr_t sport() __attribute__ ((always_inline)) { retur...
  function port_ptr_t (line 65) | inline static port_ptr_t cport() __attribute__ ((always_inline)) { retur...
  function port_t (line 68) | inline static port_t mask() __attribute__ ((always_inline)) { return _MA...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/arm/stm32/led_sysdefs_arm_stm32.h
  type RoReg (line 53) | typedef volatile       uint8_t RoReg;
  type RwReg (line 54) | typedef volatile       uint8_t RwReg;

FILE: Software/firmware_demo/lib/FastLED/src/platforms/avr/clockless_trinket.h
  function _dc_AVR (line 30) | inline void _dc_AVR(register uint8_t & loopvar) {
  function _dc (line 41) | inline void _dc(register uint8_t & loopvar) {
  type typename (line 107) | typedef typename FastPin<DATA_PIN>::port_ptr_t data_ptr_t;
  type typename (line 108) | typedef typename FastPin<DATA_PIN>::port_t data_t;
  function PRESCALEB4 (line 403) | PRESCALEA2(d0)

FILE: Software/firmware_demo/lib/FastLED/src/platforms/avr/fastpin_avr.h
  type port_t (line 20) | typedef uint8_t port_t;
  function setOutput (line 22) | inline static void setOutput() { _DDR::r() |= _MASK; }
  function setInput (line 23) | inline static void setInput() { _DDR::r() &= ~_MASK; }
  function hi (line 25) | inline static void hi() __attribute__ ((always_inline)) { _PORT::r() |= ...
  function lo (line 26) | inline static void lo() __attribute__ ((always_inline)) { _PORT::r() &= ...
  function set (line 27) | inline static void set(register uint8_t val) __attribute__ ((always_inli...
  function strobe (line 29) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 31) | inline static void toggle() __attribute__ ((always_inline)) { _PIN::r() ...
  function hi (line 33) | inline static void hi(register port_ptr_t /*port*/) __attribute__ ((alwa...
  function lo (line 34) | inline static void lo(register port_ptr_t /*port*/) __attribute__ ((alwa...
  function fastset (line 35) | inline static void fastset(register port_ptr_t /*port*/, register uint8_...
  function port_t (line 37) | inline static port_t hival() __attribute__ ((always_inline)) { return _P...
  function port_t (line 38) | inline static port_t loval() __attribute__ ((always_inline)) { return _P...
  function port_ptr_t (line 39) | inline static port_ptr_t port() __attribute__ ((always_inline)) { return...
  function port_t (line 41) | inline static port_t mask() __attribute__ ((always_inline)) { return _MA...
  type reg8_t (line 49) | typedef volatile uint8_t & reg8_t;

FILE: Software/firmware_demo/lib/FastLED/src/platforms/avr/fastspi_avr.h
  function setSelect (line 30) | void setSelect(Selectable *pSelect) { m_pSelect = pSelect; }
  function init (line 32) | void init() {
  function setSPIRate (line 47) | void setSPIRate() {
  function stop (line 56) | static void stop() {
  function wait (line 69) | static void wait() __attribute__((always_inline)) {
  function waitFully (line 74) | static void waitFully() __attribute__((always_inline)) { wait(); }
  function writeWord (line 76) | static void writeWord(uint16_t w) __attribute__((always_inline)) { write...
  function writeByte (line 78) | static void writeByte(uint8_t b) __attribute__((always_inline)) { wait()...
  function writeBytePostWait (line 79) | static void writeBytePostWait(uint8_t b) __attribute__((always_inline)) ...
  function writeByteNoWait (line 80) | static void writeByteNoWait(uint8_t b) __attribute__((always_inline)) { ...
  function writeBit (line 83) | static void writeBit(uint8_t b) {
  function enable_pins (line 94) | void enable_pins() { }
  function disable_pins (line 95) | void disable_pins() { }
  function select (line 97) | void select() {
  function release (line 105) | void release() {
  function writeBytesValueRaw (line 112) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytesValue (line 118) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 139) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...
  function setSelect (line 177) | void setSelect(Selectable *pSelect) { m_pSelect = pSelect; }
  function init (line 179) | void init() {
  function setSPIRate (line 194) | void setSPIRate() {
  function stop (line 202) | static void stop() {
  function wait (line 215) | static void wait() __attribute__((always_inline)) {
  function waitFully (line 220) | static void waitFully() __attribute__((always_inline)) { wait(); }
  function writeWord (line 222) | static void writeWord(uint16_t w) __attribute__((always_inline)) { write...
  function writeByte (line 224) | static void writeByte(uint8_t b) __attribute__((always_inline)) { wait()...
  function writeBytePostWait (line 225) | static void writeBytePostWait(uint8_t b) __attribute__((always_inline)) ...
  function writeByteNoWait (line 226) | static void writeByteNoWait(uint8_t b) __attribute__((always_inline)) { ...
  function writeBit (line 229) | static void writeBit(uint8_t b) {
  function enable_pins (line 240) | void enable_pins() { }
  function disable_pins (line 241) | void disable_pins() { }
  function select (line 243) | void select() {
  function release (line 251) | void release() {
  function writeBytesValueRaw (line 258) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytesValue (line 264) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 285) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...
  function setSelect (line 326) | void setSelect(Selectable *pSelect) { m_pSelect = pSelect; }
  function init (line 328) | void init() {
  function setSPIRate (line 352) | void setSPIRate() {
  function stop (line 364) | static void stop() {
  function wait (line 376) | static void wait() __attribute__((always_inline)) {
  function waitFully (line 381) | static void waitFully() __attribute__((always_inline)) { wait(); }
  function writeWord (line 383) | static void writeWord(uint16_t w) __attribute__((always_inline)) { write...
  function writeByte (line 385) | static void writeByte(uint8_t b) __attribute__((always_inline)) { wait()...
  function writeBytePostWait (line 386) | static void writeBytePostWait(uint8_t b) __attribute__((always_inline)) ...
  function writeByteNoWait (line 387) | static void writeByteNoWait(uint8_t b) __attribute__((always_inline)) { ...
  function writeBit (line 390) | static void writeBit(uint8_t b) {
  function enable_pins (line 401) | void enable_pins() { }
  function disable_pins (line 402) | void disable_pins() { }
  function select (line 404) | void select() {
  function release (line 412) | void release() {
  function writeBytesValueRaw (line 419) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytesValue (line 425) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 446) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...
  function setSelect (line 498) | void setSelect(Selectable *pSelect) { m_pSelect = pSelect; }
  function setSPIRate (line 500) | void setSPIRate() {
  function init (line 517) | void init() {
  function wait (line 559) | static void wait() __attribute__((always_inline)) { if(shouldWait()) { w...
  function waitFully (line 560) | static void waitFully() __attribute__((always_inline)) { wait(); }
  function writeWord (line 562) | static void writeWord(uint16_t w) __attribute__((always_inline)) { write...
  function writeByte (line 564) | static void writeByte(uint8_t b) __attribute__((always_inline)) { wait()...
  function writeBytePostWait (line 565) | static void writeBytePostWait(uint8_t b) __attribute__((always_inline)) ...
  function writeByteNoWait (line 566) | static void writeByteNoWait(uint8_t b) __attribute__((always_inline)) { ...
  function writeBit (line 568) | static void writeBit(uint8_t b) {
  function enable_pins (line 582) | void enable_pins() {
  function disable_pins (line 586) | void disable_pins() {
  function select (line 590) | void select() {
  function release (line 596) | void release() {
  function writeBytesValueRaw (line 601) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytesValue (line 605) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 626) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...
  function setSelect (line 676) | void setSelect(Selectable *pSelect) { m_pSelect = pSelect; }
  function setSPIRate (line 678) | void setSPIRate() {
  function init (line 695) | void init() {
  function wait (line 737) | static void wait() __attribute__((always_inline)) { if(shouldWait()) { w...
  function waitFully (line 738) | static void waitFully() __attribute__((always_inline)) { wait(); }
  function writeWord (line 740) | static void writeWord(uint16_t w) __attribute__((always_inline)) { write...
  function writeByte (line 742) | static void writeByte(uint8_t b) __attribute__((always_inline)) { wait()...
  function writeBytePostWait (line 743) | static void writeBytePostWait(uint8_t b) __attribute__((always_inline)) ...
  function writeByteNoWait (line 744) | static void writeByteNoWait(uint8_t b) __attribute__((always_inline)) { ...
  function writeBit (line 746) | static void writeBit(uint8_t b) {
  function enable_pins (line 760) | void enable_pins() {
  function disable_pins (line 764) | void disable_pins() {
  function select (line 768) | void select() {
  function release (line 774) | void release() {
  function writeBytesValueRaw (line 779) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytesValue (line 783) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 804) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/avr/led_sysdefs_avr.h
  type RoReg (line 16) | typedef volatile       uint8_t RoReg;
  type RwReg (line 17) | typedef volatile       uint8_t RwReg;

FILE: Software/firmware_demo/lib/FastLED/src/platforms/esp/32/clockless_block_esp32.h
  type typename (line 22) | typedef typename FastPin<FIRST_PIN>::port_t data_t;
  function initPin (line 55) | void initPin() {
  function virtual (line 62) | virtual void init() {
  type Lines (line 77) | typedef union {
  function writeBits (line 85) | inline static void writeBits(register uint32_t & last_mark, register Lin...
  function showRGBInternal (line 123) | static uint32_t showRGBInternal(PixelController<RGB_ORDER, LANES, PORT_M...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/esp/32/clockless_i2s_esp32.h
  function __clock_cycles (line 121) | __attribute__ ((always_inline)) inline static uint32_t __clock_cycles() {
  type DMABuffer (line 169) | struct DMABuffer {
  function initBitPatterns (line 268) | static void initBitPatterns()
  function DMABuffer (line 421) | static DMABuffer * allocateDMABuffer(int bytes)
  function i2sInit (line 441) | static void i2sInit()
  function empty (line 540) | static void empty( uint32_t *buf)
  function IRAM_ATTR (line 607) | static IRAM_ATTR void interruptHandler(void *arg)
  function fillBuffer (line 628) | static void fillBuffer()
  function transpose32 (line 687) | static void transpose32(uint8_t * pixels, uint8_t * bits)
  function transpose8rS32 (line 698) | static void transpose8rS32(uint8_t * A, int m, int n, uint8_t * B)
  function i2sStart (line 723) | static void i2sStart()
  function i2sReset (line 747) | static void i2sReset()
  function i2sReset_DMA (line 759) | static void i2sReset_DMA()
  function i2sReset_FIFO (line 765) | static void i2sReset_FIFO()
  function i2sStop (line 771) | static void i2sStop()

FILE: Software/firmware_demo/lib/FastLED/src/platforms/esp/32/clockless_rmt_esp32.cpp
  class ESP32RMTController (line 10) | class ESP32RMTController

FILE: Software/firmware_demo/lib/FastLED/src/platforms/esp/32/clockless_rmt_esp32.h
  function __clock_cycles (line 144) | __attribute__ ((always_inline)) inline static uint32_t __clock_cycles() {
  function class (line 238) | class ESP32RMTController
  function init (line 366) | void init()
  function convertAllPixelData (line 412) | void convertAllPixelData(PixelController<RGB_ORDER> & pixels)

FILE: Software/firmware_demo/lib/FastLED/src/platforms/esp/32/fastpin_esp32.h
  type port_t (line 8) | typedef uint32_t port_t;
  function validpin (line 10) | static constexpr bool validpin() { return VALIDPIN; }
  function setOutput (line 22) | inline static void setOutput() {
  function setInput (line 26) | inline static void setInput() { pinMode(PIN, INPUT); }
  function hi (line 28) | inline static void hi() __attribute__ ((always_inline)) {
  function lo (line 32) | inline static void lo() __attribute__ ((always_inline)) {
  function set (line 36) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 40) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 42) | inline static void toggle() __attribute__ ((always_inline)) {
  function hi (line 46) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 47) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 48) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 50) | inline static port_t hival() __attribute__ ((always_inline)) {
  function port_t (line 54) | inline static port_t loval() __attribute__ ((always_inline)) {
  function port_ptr_t (line 58) | inline static port_ptr_t port() __attribute__ ((always_inline)) {
  function port_ptr_t (line 62) | inline static port_ptr_t sport() __attribute__ ((always_inline)) {
  function port_ptr_t (line 66) | inline static port_ptr_t cport() __attribute__ ((always_inline)) {
  function port_t (line 70) | inline static port_t mask() __attribute__ ((always_inline)) { return MAS...
  function isset (line 72) | inline static bool isset() __attribute__ ((always_inline)) {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/esp/32/fastspi_esp32.h
  function setSelect (line 77) | void setSelect(Selectable *pSelect) { m_pSelect = pSelect; }
  function init (line 79) | void init() {
  function stop (line 87) | static void stop() { }
  function wait (line 90) | static void wait() __attribute__((always_inline)) { }
  function waitFully (line 91) | static void waitFully() __attribute__((always_inline)) { wait(); }
  function writeByteNoWait (line 93) | static void writeByteNoWait(uint8_t b) __attribute__((always_inline)) { ...
  function writeBytePostWait (line 94) | static void writeBytePostWait(uint8_t b) __attribute__((always_inline)) ...
  function writeWord (line 96) | static void writeWord(uint16_t w) __attribute__((always_inline)) { write...
  function writeByte (line 99) | static void writeByte(uint8_t b) {
  function release (line 113) | void release() {
  function writeBytesValue (line 119) | void writeBytesValue(uint8_t value, int len) {
  function writeBytesValueRaw (line 125) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytes (line 144) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/esp/32/led_sysdefs_esp32.h
  type RoReg (line 27) | typedef volatile uint32_t RoReg;
  type RwReg (line 28) | typedef volatile uint32_t RwReg;
  type prog_uint32_t (line 29) | typedef unsigned long prog_uint32_t;

FILE: Software/firmware_demo/lib/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h
  type typename (line 23) | typedef typename FastPin<FIRST_PIN>::port_t data_t;
  function initPin (line 51) | void initPin() {
  function virtual (line 55) | virtual void init() {
  type Lines (line 65) | typedef union {
  function writeBits (line 73) | inline static void writeBits(register uint32_t & last_mark, register Lin...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/esp/8266/clockless_esp8266.h
  function __clock_cycles (line 11) | __attribute__ ((always_inline)) inline static uint32_t __clock_cycles() {
  type typename (line 22) | typedef typename FastPin<DATA_PIN>::port_t data_t;
  function writeBits (line 53) | static bool writeBits(register uint32_t & last_mark, register uint32_t b...
  function InterruptLock (line 91) | struct InterruptLock {
  function Unlock (line 98) | void Unlock() {
  function Lock (line 101) | void Lock() {

FILE: Software/firmware_demo/lib/FastLED/src/platforms/esp/8266/fastpin_esp8266.h
  function FASTLED_NAMESPACE_BEGIN (line 3) | FASTLED_NAMESPACE_BEGIN
  type port_t (line 17) | typedef uint32_t port_t;
  function setOutput (line 19) | inline static void setOutput() { pinMode(PIN, OUTPUT); }
  function setInput (line 20) | inline static void setInput() { pinMode(PIN, INPUT); }
  function hi (line 22) | inline static void hi() __attribute__ ((always_inline)) { if(PIN < 16) {...
  function lo (line 23) | inline static void lo() __attribute__ ((always_inline)) { if(PIN < 16) {...
  function set (line 24) | inline static void set(register port_t val) __attribute__ ((always_inlin...
  function strobe (line 26) | inline static void strobe() __attribute__ ((always_inline)) { toggle(); ...
  function toggle (line 28) | inline static void toggle() __attribute__ ((always_inline)) { if(PIN < 1...
  function hi (line 30) | inline static void hi(register port_ptr_t port) __attribute__ ((always_i...
  function lo (line 31) | inline static void lo(register port_ptr_t port) __attribute__ ((always_i...
  function fastset (line 32) | inline static void fastset(register port_ptr_t port, register port_t val...
  function port_t (line 34) | inline static port_t hival() __attribute__ ((always_inline)) { if (PIN<1...
  function port_t (line 35) | inline static port_t loval() __attribute__ ((always_inline)) { if (PIN<1...
  function port_ptr_t (line 36) | inline static port_ptr_t port() __attribute__ ((always_inline)) { if(PIN...
  function port_ptr_t (line 37) | inline static port_ptr_t sport() __attribute__ ((always_inline)) { retur...
  function port_ptr_t (line 38) | inline static port_ptr_t cport() __attribute__ ((always_inline)) { retur...
  function port_t (line 39) | inline static port_t mask() __attribute__ ((always_inline)) { return MAS...
  function isset (line 41) | inline static bool isset() __attribute__ ((always_inline)) { return (PIN...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/esp/8266/fastspi_esp8266.h
  function setSelect (line 50) | void setSelect(Selectable *pSelect) { m_pSelect = pSelect; }
  function init (line 52) | void init() {
  function stop (line 60) | static void stop() { }
  function wait (line 63) | static void wait() __attribute__((always_inline)) { }
  function waitFully (line 64) | static void waitFully() __attribute__((always_inline)) { wait(); }
  function writeByteNoWait (line 66) | static void writeByteNoWait(uint8_t b) __attribute__((always_inline)) { ...
  function writeBytePostWait (line 67) | static void writeBytePostWait(uint8_t b) __attribute__((always_inline)) ...
  function writeWord (line 69) | static void writeWord(uint16_t w) __attribute__((always_inline)) { write...
  function writeByte (line 72) | static void writeByte(uint8_t b) {
  function release (line 86) | void release() {
  function writeBytesValue (line 92) | void writeBytesValue(uint8_t value, int len) {
  function writeBytesValueRaw (line 98) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytes (line 117) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...

FILE: Software/firmware_demo/lib/FastLED/src/platforms/esp/8266/led_sysdefs_esp8266.h
  type RoReg (line 12) | typedef volatile uint32_t RoReg;
  type RwReg (line 13) | typedef volatile uint32_t RwReg;
  type prog_uint32_t (line 14) | typedef uint32_t prog_uint32_t;

FILE: Software/firmware_demo/lib/FastLED/src/platforms/fastspi_ardunio_core.h
  function setSelect (line 16) | void setSelect(Selectable *pSelect) { /* TODO */ }
  function init (line 19) | void init() { _SPIObject.begin(); }
  function select (line 22) | void inline select() __attribute__((always_inline)) {
  function release (line 28) | void inline release() __attribute__((always_inline)) {
  function waitFully (line 33) | static void waitFully() { /* TODO */ }
  function writeByte (line 36) | void inline writeByte(uint8_t b) __attribute__((always_inline)) {
  function writeWord (line 41) | void inline writeWord(uint16_t w) __attribute__((always_inline)) {
  function writeBytesValueRaw (line 46) | static void writeBytesValueRaw(uint8_t value, int len) {
  function writeBytesValue (line 51) | void writeBytesValue(uint8_t value, int len) {
  function writeBytes (line 69) | void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(...
  function writeBit (line 72) | void writeBit(uint8_t b) {

FILE: Software/firmware_demo/lib/FastLED/src/power_mgt.cpp
  function calculate_unscaled_power_mW (line 50) | uint32_t calculate_unscaled_power_mW( const CRGB* ledbuffer, uint16_t nu...
  function calculate_max_brightness_for_power_vmA (line 80) | uint8_t calculate_max_brightness_for_power_vmA(const CRGB* ledbuffer, ui...
  function calculate_max_brightness_for_power_mW (line 84) | uint8_t calculate_max_brightness_for_power_mW(const CRGB* ledbuffer, uin...
  function calculate_max_brightness_for_power_mW (line 100) | uint8_t calculate_max_brightness_for_power_mW( uint8_t target_brightness...
  function set_max_power_indicator_LED (line 159) | void set_max_power_indicator_LED( uint8_t pinNumber)
  function set_max_power_in_volts_and_milliamps (line 164) | void set_max_power_in_volts_and_milliamps( uint8_t volts, uint32_t milli...
  function set_max_power_in_milliwatts (line 169) | void set_max_power_in_milliwatts( uint32_t powerInmW)
  function show_at_max_brightness_for_power (line 174) | void show_at_max_brightness_for_power()
  function delay_at_max_brightness_for_power (line 180) | void delay_at_max_brightness_for_power( uint16_t ms)

FILE: Software/firmware_demo/lib/FastLED/src/wiring.cpp
  function fastinc32 (line 19) | __attribute__((always_inline)) fastinc32 (volatile uint32_t & _long) {
  function millis (line 43) | unsigned long millis()
  function micros (line 57) | unsigned long micros() {
  function delay (line 85) | void delay(unsigned long ms)
  function init (line 98) | void init()

FILE: Software/firmware_demo/lib/TFT_eSPI/Extensions/Button.h
  function class (line 9) | class TFT_eSPI_Button : public TFT_eSPI {

FILE: Software/firmware_demo/lib/TFT_eSPI/Extensions/Smooth_font.h
  type fontMetrics (line 20) | typedef struct

FILE: Software/firmware_demo/lib/TFT_eSPI/Extensions/Sprite.h
  function class (line 8) | class TFT_eSprite : public TFT_eSPI {

FILE: Software/firmware_demo/lib/TFT_eSPI/Fonts/GFXFF/gfxfont.h
  type GFXglyph (line 14) | typedef struct { // Data stored PER GLYPH
  type GFXfont (line 21) | typedef struct { // Data stored for FONT AS A WHOLE:

FILE: Software/firmware_demo/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32.c
  function begin_SDA_Read (line 70) | void TFT_eSPI::begin_SDA_Read(void)
  function end_SDA_Read (line 82) | void TFT_eSPI::end_SDA_Read(void)
  function readByte (line 100) | uint8_t TFT_eSPI::readByte(void)
  function busDir (line 134) | void TFT_eSPI::busDir(uint32_t mask, uint8_t mode)
  function gpioMode (line 151) | void TFT_eSPI::gpioMode(uint8_t gpio, uint8_t mode)
  function pushBlock (line 169) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushPixels (line 180) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len)
  function pushBlock (line 249) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){
  function pushSwapBytePixels (line 288) | void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){
  function pushPixels (line 365) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function pushBlock (line 419) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushPixels (line 489) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function pushSwapBytePixels (line 501) | void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){
  function pushSwapBytePixels (line 541) | void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){
  function pushPixels (line 551) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function dmaBusy (line 571) | bool TFT_eSPI::dmaBusy(void)
  function dmaWait (line 594) | void TFT_eSPI::dmaWait(void)
  function pushPixelsDMA (line 613) | void TFT_eSPI::pushPixelsDMA(uint16_t* image, uint32_t len)
  function pushImageDMA (line 645) | void TFT_eSPI::pushImageDMA(int32_t x, int32_t y, int32_t w, int32_t h, ...
  function pushImageDMA (line 677) | void TFT_eSPI::pushImageDMA(int32_t x, int32_t y, int32_t w, int32_t h, ...
  function dc_callback (line 758) | void IRAM_ATTR dc_callback(spi_transaction_t *spi_tx)
  function initDMA (line 768) | bool TFT_eSPI::initDMA(bool ctrl_cs)
  function deInitDMA (line 817) | void TFT_eSPI::deInitDMA(void)

FILE: Software/firmware_demo/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_C3.c
  function begin_SDA_Read (line 72) | void TFT_eSPI::begin_SDA_Read(void)
  function end_SDA_Read (line 84) | void TFT_eSPI::end_SDA_Read(void)
  function readByte (line 102) | uint8_t TFT_eSPI::readByte(void)
  function busDir (line 136) | void TFT_eSPI::busDir(uint32_t mask, uint8_t mode)
  function gpioMode (line 153) | void TFT_eSPI::gpioMode(uint8_t gpio, uint8_t mode)
  function pushBlock (line 171) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushPixels (line 182) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len)
  function pushBlock (line 251) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){
  function pushSwapBytePixels (line 298) | void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){
  function pushPixels (line 387) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function pushBlock (line 449) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushPixels (line 526) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function pushSwapBytePixels (line 538) | void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){
  function pushBlock (line 553) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){
  function pushSwapBytePixels (line 574) | void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){
  function pushPixels (line 584) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function dmaBusy (line 604) | bool TFT_eSPI::dmaBusy(void)
  function dmaWait (line 627) | void TFT_eSPI::dmaWait(void)
  function pushPixelsDMA (line 646) | void TFT_eSPI::pushPixelsDMA(uint16_t* image, uint32_t len)
  function pushImageDMA (line 678) | void TFT_eSPI::pushImageDMA(int32_t x, int32_t y, int32_t w, int32_t h, ...
  function pushImageDMA (line 710) | void TFT_eSPI::pushImageDMA(int32_t x, int32_t y, int32_t w, int32_t h, ...
  function dc_callback (line 791) | void IRAM_ATTR dc_callback(spi_transaction_t *spi_tx)
  function initDMA (line 801) | bool TFT_eSPI::initDMA(bool ctrl_cs)
  function deInitDMA (line 850) | void TFT_eSPI::deInitDMA(void)

FILE: Software/firmware_demo/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.c
  function begin_SDA_Read (line 72) | void TFT_eSPI::begin_SDA_Read(void)
  function end_SDA_Read (line 84) | void TFT_eSPI::end_SDA_Read(void)
  function readByte (line 102) | uint8_t TFT_eSPI::readByte(void)
  function busDir (line 136) | void TFT_eSPI::busDir(uint32_t mask, uint8_t mode)
  function gpioMode (line 153) | void TFT_eSPI::gpioMode(uint8_t gpio, uint8_t mode)
  function pushBlock (line 171) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushPixels (line 182) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len)
  function pushBlock (line 251) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){
  function pushSwapBytePixels (line 298) | void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){
  function pushPixels (line 387) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function pushBlock (line 449) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushPixels (line 526) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function pushSwapBytePixels (line 538) | void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){
  function pushBlock (line 553) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){
  function pushSwapBytePixels (line 574) | void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){
  function pushPixels (line 584) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function dmaBusy (line 604) | bool TFT_eSPI::dmaBusy(void)
  function dmaWait (line 627) | void TFT_eSPI::dmaWait(void)
  function pushPixelsDMA (line 646) | void TFT_eSPI::pushPixelsDMA(uint16_t* image, uint32_t len)
  function pushImageDMA (line 678) | void TFT_eSPI::pushImageDMA(int32_t x, int32_t y, int32_t w, int32_t h, ...
  function pushImageDMA (line 710) | void TFT_eSPI::pushImageDMA(int32_t x, int32_t y, int32_t w, int32_t h, ...
  function dc_callback (line 791) | void IRAM_ATTR dc_callback(spi_transaction_t *spi_tx)
  function initDMA (line 801) | bool TFT_eSPI::initDMA(bool ctrl_cs)
  function deInitDMA (line 850) | void TFT_eSPI::deInitDMA(void)

FILE: Software/firmware_demo/lib/TFT_eSPI/Processors/TFT_eSPI_ESP8266.c
  function tft_Read_8 (line 21) | uint8_t TFT_eSPI::tft_Read_8(void)
  function begin_SDA_Read (line 40) | void TFT_eSPI::begin_SDA_Read(void)
  function end_SDA_Read (line 53) | void TFT_eSPI::end_SDA_Read(void)
  function readByte (line 70) | uint8_t TFT_eSPI::readByte(void)
  function pushBlock (line 84) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushPixels (line 95) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function pushSwapBytePixels (line 106) | void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){
  function pushBlock (line 119) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushPixels (line 183) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function pushSwapBytePixels (line 237) | void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){
  function pushBlock (line 258) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushPixels (line 331) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function pushSwapBytePixels (line 392) | void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){

FILE: Software/firmware_demo/lib/TFT_eSPI/Processors/TFT_eSPI_Generic.c
  function tft_Read_8 (line 24) | uint8_t TFT_eSPI::tft_Read_8(void)
  function begin_SDA_Read (line 42) | void TFT_eSPI::begin_SDA_Read(void)
  function end_SDA_Read (line 52) | void TFT_eSPI::end_SDA_Read(void)
  function pushBlock (line 71) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){
  function pushPixels (line 81) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function busDir (line 98) | void TFT_eSPI::busDir(uint32_t mask, uint8_t mode)
  function gpioMode (line 117) | void TFT_eSPI::gpioMode(uint8_t gpio, uint8_t mode)
  function readByte (line 126) | uint8_t TFT_eSPI::readByte(void)
  function pushBlock (line 156) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){
  function pushPixels (line 166) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len)
  function pushBlock (line 182) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushPixels (line 196) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function pushBlock (line 226) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){
  function pushPixels (line 235) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){

FILE: Software/firmware_demo/lib/TFT_eSPI/Processors/TFT_eSPI_RP2040.c
  function tft_Read_8 (line 78) | uint8_t TFT_eSPI::tft_Read_8(void)
  function begin_SDA_Read (line 100) | void TFT_eSPI::begin_SDA_Read(void)
  function end_SDA_Read (line 110) | void TFT_eSPI::end_SDA_Read(void)
  function pioinit (line 124) | void pioinit(uint32_t clock_freq) {
  function pioinit (line 196) | void pioinit(uint16_t clock_div, uint16_t fract_div) {
  function pushBlock (line 280) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushBlock (line 303) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){
  function pushPixels (line 329) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function busDir (line 392) | void TFT_eSPI::busDir(uint32_t mask, uint8_t mode)
  function gpioMode (line 415) | void TFT_eSPI::gpioMode(uint8_t gpio, uint8_t mode)
  function readByte (line 427) | uint8_t TFT_eSPI::readByte(void)
  function pushBlock (line 457) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){
  function pushPixels (line 467) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len)
  function pushBlock (line 483) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushPixels (line 516) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function pushBlock (line 541) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){
  function pushPixels (line 553) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function dmaBusy (line 592) | bool TFT_eSPI::dmaBusy(void) {
  function dmaWait (line 610) | void TFT_eSPI::dmaWait(void)
  function pushPixelsDMA (line 625) | void TFT_eSPI::pushPixelsDMA(uint16_t* image, uint32_t len)
  function pushImageDMA (line 645) | void TFT_eSPI::pushImageDMA(int32_t x, int32_t y, int32_t w, int32_t h, ...
  function initDMA (line 697) | bool TFT_eSPI::initDMA(bool ctrl_cs)
  function deInitDMA (line 724) | void TFT_eSPI::deInitDMA(void)

FILE: Software/firmware_demo/lib/TFT_eSPI/Processors/TFT_eSPI_STM32.c
  function tft_Read_8 (line 38) | uint8_t TFT_eSPI::tft_Read_8(void)
  function begin_SDA_Read (line 57) | void TFT_eSPI::begin_SDA_Read(void)
  function end_SDA_Read (line 67) | void TFT_eSPI::end_SDA_Read(void)
  function pushBlock (line 86) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){
  function pushPixels (line 131) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
  function busDir (line 150) | void TFT_eSPI::busDir(uint32_t mask, uint8_t mode)
  function gpioMode (line 213) | void TFT_eSPI::gpioMode(uint8_t gpio, uint8_t mode)
  function readByte (line 226) | uint8_t TFT_eSPI::readByte(void)
  function pushBlock (line 270) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushPixels (line 280) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len)
  function pushBlock (line 297) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushPixels (line 332) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len)
  function pushBlock (line 367) | void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
  function pushPixels (line 392) | void TFT_eSPI::pushPixels(const void* data_in, uint32_t len)
  function dmaBusy (line 431) | bool TFT_eSPI::dmaBusy(void)
  function dmaWait (line 442) | void TFT_eSPI::dmaWait(void)
  function pushPixelsDMA (line 454) | void TFT_eSPI::pushPixelsDMA(uint16_t* image, uint32_t len)
  function pushImageDMA (line 474) | void TFT_eSPI::pushImageDMA(int32_t x, int32_t y, int32_t w, int32_t h, ...
  function DMA1_Stream5_IRQHandler (line 556) | void DMA1_Stream5_IRQHandler(void)
  function initDMA (line 570) | bool TFT_eSPI::initDMA(bool ctrl_cs)
  function DMA1_Channel5_IRQHandler (line 618) | void DMA1_Channel5_IRQHandler(void)
  function initDMA (line 630) | bool TFT_eSPI::initDMA(bool ctrl_cs)
  function deInitDMA (line 667) | void TFT_eSPI::deInitDMA(void)

FILE: Software/firmware_demo/lib/TFT_eSPI/Processors/pio_16bit_parallel.pio.h
  type pio_program (line 50) | struct pio_program
  function pio_sm_config (line 56) | static inline pio_sm_config tft_io_program_get_default_config(uint offse...

FILE: Software/firmware_demo/lib/TFT_eSPI/Processors/pio_8bit_parallel.pio.h
  type pio_program (line 57) | struct pio_program
  function pio_sm_config (line 63) | static inline pio_sm_config tft_io_program_get_default_config(uint offse...

FILE: Software/firmware_demo/lib/TFT_eSPI/Processors/pio_SPI.pio.h
  type pio_program (line 61) | struct pio_program
  function pio_sm_config (line 67) | static inline pio_sm_config tft_io_program_get_default_config(uint offse...

FILE: Software/firmware_demo/lib/TFT_eSPI/Processors/pio_SPI_18bit.pio.h
  type pio_program (line 61) | struct pio_program
  function pio_sm_config (line 67) | static inline pio_sm_config tft_io_program_get_default_config(uint offse...

FILE: Software/firmware_demo/lib/TFT_eSPI/TFT_eSPI.cpp
  function SPIClass (line 5359) | SPIClass& TFT_eSPI::getSPIinstance(void)

FILE: Software/firmware_demo/lib/TFT_eSPI/TFT_eSPI.h
  type fontinfo (line 186) | typedef struct {
  type setup_t (line 322) | typedef struct
  function swap_coord (line 380) | inline void
  function class (line 387) | class TFT_eSPI : public Print { friend class TFT_eSprite; // Sprite clas...

FILE: Software/firmware_demo/lib/TFT_eSPI/Tools/bmp2array4bit/bmp2array4bit.py
  function debugOut (line 35) | def debugOut(s):

FILE: Software/firmware_demo/lib/TFT_eSPI/examples/Generic/Animated_Eyes_1/user.cpp
  function user_setup (line 13) | void user_setup(void) {
  function user_loop (line 28) | void user_loop(void) {

FILE: Software/firmware_demo/lib/TFT_eSPI/examples/Generic/Animated_Eyes_1/user_bat.cpp
  function user_setup (line 22) | void user_setup(void) {
  function user_loop (line 48) | void user_loop(void) {

FILE: Software/firmware_demo/lib/TFT_eSPI/examples/Generic/Animated_Eyes_1/user_xmas.cpp
  function user_setup (line 25) | void user_setup(void) {
  function user_loop (line 32) | void user_loop(void) {

FILE: Software/firmware_demo/lib/TFT_eSPI/examples/Generic/Animated_Eyes_2/user.cpp
  function user_setup (line 13) | void user_setup(void) {
  function user_loop (line 28) | void user_loop(void) {

FILE: Software/firmware_demo/lib/TFT_eSPI/examples/Generic/Animated_Eyes_2/user_bat.cpp
  function user_setup (line 22) | void user_setup(void) {
  function user_loop (line 48) | void user_loop(void) {

FILE: Software/firmware_demo/lib/TFT_eSPI/examples/Generic/Animated_Eyes_2/user_xmas.cpp
  function user_setup (line 25) | void user_setup(void) {
  function user_loop (line 32) | void user_loop(void) {

FILE: Software/firmware_demo/lib/TFT_eSPI/examples/Smooth Graphics/Anti-aliased_Clock/NTP_Time.h
  function syncTime (line 140) | void syncTime(void)
  function sendNTPpacket (line 187) | void sendNTPpacket(IPAddress& address)
  function decodeNTP (line 216) | void decodeNTP(void)
  function String (line 296) | String timeString(uint32_t t_secs)
  function printTime (line 319) | void printTime(time_t t, char *tzCode)

FILE: Software/firmware_demo/lib/TFT_eSPI/examples/Sprite/Orrery/astronomy.c
  type terse_vector_t (line 42) | typedef struct
  function terse_vector_t (line 52) | static terse_vector_t VecAdd(terse_vector_t a, terse_vector_t b)
  function terse_vector_t (line 61) | static terse_vector_t VecSub(terse_vector_t a, terse_vector_t b)
  function VecIncr (line 70) | static void VecIncr(terse_vector_t *target, terse_vector_t source)
  function VecDecr (line 77) | static void VecDecr(terse_vector_t *target, terse_vector_t source)
  function terse_vector_t (line 84) | static terse_vector_t VecMul(double s, terse_vector_t v)
  function VecScale (line 93) | static void VecScale(terse_vector_t *target, double scalar)
  function terse_vector_t (line 100) | static terse_vector_t VecRamp(terse_vector_t a, terse_vector_t b, double...
  function terse_vector_t (line 109) | static terse_vector_t VecMean(terse_vector_t a, terse_vector_t b)
  function astro_vector_t (line 118) | static astro_vector_t PublicVec(astro_time_t time, terse_vector_t terse)
  type body_state_t (line 131) | typedef struct
  function LongitudeOffset (line 204) | static double LongitudeOffset(double diff)
  function NormalizeLongitude (line 217) | static double NormalizeLongitude(double lon)
  function Astronomy_VectorLength (line 238) | double Astronomy_VectorLength(astro_vector_t vector)
  function astro_body_t (line 274) | astro_body_t Astronomy_BodyCode(const char *name)
  function IsSuperiorPlanet (line 298) | static int IsSuperiorPlanet(astro_body_t body)
  function PlanetOrbitalPeriod (line 318) | static double PlanetOrbitalPeriod(astro_body_t body)
  function FatalError (line 335) | static void FatalError(const char *message)
  function astro_vector_t (line 341) | static astro_vector_t VecError(astro_status_t status, astro_time_t time)
  function astro_spherical_t (line 350) | static astro_spherical_t SphereError(astro_status_t status)
  function astro_equatorial_t (line 358) | static astro_equatorial_t EquError(astro_status_t status)
  function astro_ecliptic_t (line 366) | static astro_ecliptic_t EclError(astro_status_t status)
  function astro_angle_result_t (line 374) | static astro_angle_result_t AngleError(astro_status_t status)
  function astro_func_result_t (line 382) | static astro_func_result_t FuncError(astro_status_t status)
  function astro_time_t (line 390) | static astro_time_t TimeError(void)
  function astro_rotation_t (line 397) | static astro_rotation_t RotationErr(astro_status_t status)
  function astro_moon_quarter_t (line 410) | static astro_moon_quarter_t MoonQuarterError(astro_status_t status)
  function astro_elongation_t (line 419) | static astro_elongation_t ElongError(astro_status_t status)
  function astro_hour_angle_t (line 432) | static astro_hour_angle_t HourAngleError(astro_status_t status)
  function astro_illum_t (line 443) | static astro_illum_t IllumError(astro_status_t status)
  function astro_apsis_t (line 457) | static astro_apsis_t ApsisError(astro_status_t status)
  function astro_search_result_t (line 469) | static astro_search_result_t SearchError(astro_status_t status)
  function astro_constellation_t (line 477) | static astro_constellation_t ConstelErr(astro_status_t status)
  function astro_transit_t (line 486) | static astro_transit_t TransitErr(astro_status_t status)
  function astro_func_result_t (line 495) | static astro_func_result_t SynodicPeriod(astro_body_t body)
  function astro_angle_result_t (line 520) | static astro_angle_result_t AngleBetween(astro_vector_t a, astro_vector_...
  function Astronomy_DeltaT_EspenakMeeus (line 556) | double Astronomy_DeltaT_EspenakMeeus(double ut)
  function Astronomy_DeltaT_JplHorizons (line 676) | double Astronomy_DeltaT_JplHorizons(double ut)
  function Astronomy_SetDeltaTFunction (line 701) | void Astronomy_SetDeltaTFunction(astro_deltat_func func)
  function TerrestrialTime (line 706) | static double TerrestrialTime(double ut)
  function astro_time_t (line 724) | astro_time_t Astronomy_TimeFromDays(double ut)
  function astro_time_t (line 741) | astro_time_t Astronomy_CurrentTime(void)
  function astro_time_t (line 775) | astro_time_t Astronomy_MakeTime(int year, int month, int day, int hour, ...
  function astro_time_t (line 814) | astro_time_t Astronomy_AddDays(astro_time_t time, double days)
  function astro_time_t (line 846) | astro_time_t Astronomy_TimeFromUtc(astro_utc_t utc)
  function astro_utc_t (line 863) | astro_utc_t Astronomy_UtcFromTime(astro_time_t time)
  function astro_status_t (line 933) | astro_status_t Astronomy_FormatTime(
  function astro_observer_t (line 1046) | astro_observer_t Astronomy_MakeObserver(double latitude, double longitud...
  function iau2000b (line 1057) | static void iau2000b(astro_time_t *time)
  function mean_obliq (line 1177) | static double mean_obliq(double tt)
  type earth_tilt_t (line 1191) | typedef struct
  function earth_tilt_t (line 1203) | static earth_tilt_t e_tilt(astro_time_t *time)
  function ecl2equ_vec (line 1218) | static void ecl2equ_vec(astro_time_t time, const double ecl[3], double e...
  function astro_rotation_t (line 1230) | static astro_rotation_t precession_rot(double tt1, double tt2)
  function precession (line 1318) | static void precession(double tt1, const double pos1[3], double tt2, dou...
  function astro_equatorial_t (line 1327) | static astro_equatorial_t vector2radec(const double pos[3])
  function astro_rotation_t (line 1366) | static astro_rotation_t nutation_rot(astro_time_t *time, int direction)
  function nutation (line 1421) | static void nutation(astro_time_t *time, int direction, const double inp...
  function era (line 1429) | static double era(double ut)        /* Earth Rotation Angle */
  function sidereal_time (line 1440) | static double sidereal_time(astro_time_t *time)
  function terra (line 1459) | static void terra(astro_observer_t observer, double st, double pos[3])
  function geo_pos (line 1487) | static void geo_pos(astro_time_t *time, astro_observer_t observer, doubl...
  function spin (line 1497) | static void spin(double angle, const double pos1[3], double vec2[3])
  type MoonContext (line 1523) | typedef struct
  function Frac (line 1556) | static double Frac(double x)
  function AddThe (line 1561) | static void AddThe(
  function Sine (line 1569) | static double Sine(double phi)
  function LongPeriodic (line 1575) | static void LongPeriodic(MoonContext *ctx)
  function Init (line 1595) | static void Init(MoonContext *ctx)
  function Term (line 1635) | static void Term(MoonContext *ctx, int p, int q, int r, int s, double *x...
  function AddSol (line 1655) | static void AddSol(
  function SolarN (line 1676) | static void SolarN(MoonContext *ctx)
  function Planetary (line 1693) | static void Planetary(MoonContext *ctx)
  function CalcMoon (line 1706) | static void CalcMoon(
  function astro_vector_t (line 1875) | astro_vector_t Astronomy_GeoMoon(astro_time_t time)
  type vsop_term_t (line 1909) | typedef struct
  type vsop_series_t (line 1917) | typedef struct
  type vsop_formula_t (line 1924) | typedef struct
  type vsop_model_t (line 1931) | typedef struct
  function VsopCoords (line 2793) | static void VsopCoords(const vsop_model_t *model, double t, double spher...
  function terse_vector_t (line 2818) | static terse_vector_t VsopRotate(const double ecl[3])
  function VsopSphereToRect (line 2836) | static void VsopSphereToRect(double lon, double lat, double radius, doub...
  function astro_vector_t (line 2847) | static astro_vector_t CalcVsop(const vsop_model_t *model, astro_time_t t...
  function VsopDeriv (line 2875) | static void VsopDeriv(const vsop_model_t *model, double t, double deriv[3])
  function body_state_t (line 2906) | static body_state_t CalcVsopPosVel(const vsop_model_t *model, double tt)
  function VsopHelioDistance (line 2955) | static double VsopHelioDistance(const vsop_model_t *model, astro_time_t ...
  function AdjustBarycenter (line 2985) | static void AdjustBarycenter(astro_vector_t *ssb, astro_time_t time, ast...
  function astro_vector_t (line 2998) | static astro_vector_t CalcSolarSystemBarycenter(astro_time_t time)
  type body_grav_calc_t (line 3017) | typedef struct
  function terse_vector_t (line 3075) | static terse_vector_t UpdatePosition(double dt, terse_vector_t r, terse_...
  function body_state_t (line 3084) | static body_state_t AdjustBarycenterPosVel(body_state_t *ssb, double tt,...
  function MajorBodyBary (line 3104) | static void MajorBodyBary(body_state_t bary[5], double tt)
  function AddAcceleration (line 3132) | static void AddAcceleration(terse_vector_t *acc, terse_vector_t small_po...
  function terse_vector_t (line 3149) | static terse_vector_t SmallBodyAcceleration(terse_vector_t small_pos, co...
  function body_grav_calc_t (line 3164) | body_grav_calc_t GravSim(           /* out: [pos, vel, acc] of the simul...
  type body_segment_t (line 3205) | typedef struct
  function ClampIndex (line 3217) | static int ClampIndex(double frac, int nsteps)
  function body_grav_calc_t (line 3228) | static body_grav_calc_t GravFromState(body_state_t bary[5], const body_s...
  function astro_status_t (line 3243) | static astro_status_t GetSegment(int *seg_index, body_segment_t *cache[]...
  function terse_vector_t (line 3301) | static terse_vector_t CalcPlutoOneWay(body_state_t bary[5], const body_s...
  function astro_vector_t (line 3315) | static astro_vector_t CalcPluto(astro_time_t time)
  function astro_vector_t (line 3388) | astro_vector_t Astronomy_HelioVector(astro_body_t body, astro_time_t time)
  function astro_func_result_t (line 3458) | astro_func_result_t Astronomy_HelioDistance(astro_body_t body, astro_tim...
  function astro_vector_t (line 3520) | astro_vector_t Astronomy_GeoVector(astro_body_t body, astro_time_t time,...
  function astro_equatorial_t (line 3627) | astro_equatorial_t Astronomy_Equator(
  function astro_horizon_t (line 3714) | astro_horizon_t Astronomy_Horizon(
  function astro_ecliptic_t (line 3838) | astro_ecliptic_t Astronomy_SunPosition(astro_time_t time)
  function astro_ecliptic_t (line 3883) | astro_ecliptic_t Astronomy_Ecliptic(astro_vector_t equ)
  function astro_angle_result_t (line 3918) | astro_angle_result_t Astronomy_EclipticLongitude(astro_body_t body, astr...
  function astro_ecliptic_t (line 3937) | static astro_ecliptic_t RotateEquatorialToEcliptic(const double pos[3], ...
  function astro_func_result_t (line 3965) | static astro_func_result_t sun_offset(void *context, astro_time_t time)
  function astro_search_result_t (line 4014) | astro_search_result_t Astronomy_SearchSunLongitude(
  function astro_search_result_t (line 4110) | astro_search_result_t Astronomy_Search(
  function QuadInterp (line 4221) | static int QuadInterp(
  function astro_status_t (line 4268) | static astro_status_t FindSeasonChange(double targetLon, int year, int m...
  function astro_seasons_t (line 4313) | astro_seasons_t Astronomy_Seasons(int year)
  function astro_angle_result_t (line 4356) | astro_angle_result_t Astronomy_AngleFromSun(astro_body_t body, astro_tim...
  function astro_elongation_t (line 4405) | astro_elongation_t Astronomy_Elongation(astro_body_t body, astro_time_t ...
  function astro_func_result_t (line 4436) | static astro_func_result_t neg_elong_slope(void *context, astro_time_t t...
  function astro_elongation_t (line 4486) | astro_elongation_t Astronomy_SearchMaxElongation(astro_body_t body, astr...
  function astro_angle_result_t (line 4654) | astro_angle_result_t Astronomy_LongitudeFromSun(astro_body_t body, astro...
  function astro_angle_result_t (line 4702) | astro_angle_result_t Astronomy_MoonPhase(astro_time_t time)
  function astro_func_result_t (line 4707) | static astro_func_result_t moon_offset(void *context, astro_time_t time)
  function astro_search_result_t (line 4755) | astro_search_result_t Astronomy_SearchMoonPhase(double targetLon, astro_...
  function astro_moon_quarter_t (line 4813) | astro_moon_quarter_t Astronomy_SearchMoonQuarter(astro_time_t startTime)
  function astro_moon_quarter_t (line 4852) | astro_moon_quarter_t Astronomy_NextMoonQuarter(astro_moon_quarter_t mq)
  function astro_func_result_t (line 4875) | static astro_func_result_t rlon_offset(astro_body_t body, astro_time_t t...
  function astro_search_result_t (line 4940) | astro_search_result_t Astronomy_SearchRelativeLongitude(astro_body_t bod...
  function astro_hour_angle_t (line 5049) | astro_hour_angle_t Astronomy_SearchHourAngle(
  type context_peak_altitude_t (line 5120) | typedef struct
  function astro_func_result_t (line 5130) | static astro_func_result_t peak_altitude(void *context, astro_time_t time)
  function astro_search_result_t (line 5207) | astro_search_result_t Astronomy_SearchRiseSet(
  function MoonMagnitude (line 5330) | static double MoonMagnitude(double phase, double helio_dist, double geo_...
  function astro_status_t (line 5343) | static astro_status_t SaturnMagnitude(
  function astro_status_t (line 5384) | static astro_status_t VisualMagnitude(
  function astro_illum_t (line 5450) | astro_illum_t Astronomy_Illumination(astro_body_t body, astro_time_t time)
  function astro_func_result_t (line 5557) | static astro_func_result_t mag_slope(void *context, astro_time_t time)
  function astro_illum_t (line 5611) | astro_illum_t Astronomy_SearchPeakMagnitude(astro_body_t body, astro_tim...
  function MoonDistance (line 5726) | static double MoonDistance(astro_time_t t)
  function astro_func_result_t (line 5733) | static astro_func_result_t moon_distance_slope(void *context, astro_time...
  function astro_apsis_t (line 5778) | astro_apsis_t Astronomy_SearchLunarApsis(astro_time_t startTime)
  function astro_apsis_t (line 5872) | astro_apsis_t Astronomy_NextLunarApsis(astro_apsis_t apsis)
  type planet_distance_context_t (line 5897) | typedef struct
  function astro_func_result_t (line 5906) | static astro_func_result_t planet_distance_slope(void *context, astro_ti...
  function astro_apsis_t (line 5927) | static astro_apsis_t PlanetExtreme(
  function astro_apsis_t (line 5982) | static astro_apsis_t BruteSearchPlanetApsis(astro_body_t body, astro_tim...
  function astro_apsis_t (line 6110) | astro_apsis_t Astronomy_SearchPlanetApsis(astro_body_t body, astro_time_...
  function astro_apsis_t (line 6218) | astro_apsis_t Astronomy_NextPlanetApsis(astro_body_t body, astro_apsis_t...
  function astro_rotation_t (line 6258) | astro_rotation_t Astronomy_InverseRotation(astro_rotation_t rotation)
  function astro_rotation_t (line 6294) | astro_rotation_t Astronomy_CombineRotation(astro_rotation_t a, astro_rot...
  function astro_vector_t (line 6338) | astro_vector_t Astronomy_VectorFromSphere(astro_spherical_t sphere, astr...
  function astro_spherical_t (line 6371) | astro_spherical_t Astronomy_SphereFromVector(astro_vector_t vector)
  function astro_vector_t (line 6417) | astro_vector_t Astronomy_VectorFromEquator(astro_equatorial_t equ, astro...
  function astro_equatorial_t (line 6443) | astro_equatorial_t Astronomy_EquatorFromVector(astro_vector_t vector)
  function ToggleAzimuthDirection (line 6461) | static double ToggleAzimuthDirection(double az)
  function astro_spherical_t (line 6506) | astro_spherical_t Astronomy_HorizonFromVector(astro_vector_t vector, ast...
  function astro_vector_t (line 6543) | astro_vector_t Astronomy_VectorFromHorizon(astro_spherical_t sphere, ast...
  function Astronomy_Refraction (line 6580) | double Astronomy_Refraction(astro_refraction_t refraction, double altitude)
  function Astronomy_InverseRefraction (line 6644) | double Astronomy_InverseRefraction(astro_refraction_t refraction, double...
  function astro_vector_t (line 6680) | astro_vector_t Astronomy_RotateVector(astro_rotation_t rotation, astro_v...
  function astro_rotation_t (line 6709) | astro_rotation_t Astronomy_Rotation_EQJ_ECL(void)
  function astro_rotation_t (line 6735) | astro_rotation_t Astronomy_Rotation_ECL_EQJ(void)
  function astro_rotation_t (line 6764) | astro_rotation_t Astronomy_Rotation_EQJ_EQD(astro_time_t time)
  function astro_rotation_t (line 6788) | astro_rotation_t Astronomy_Rotation_EQD_EQJ(astro_time_t time)
  function astro_rotation_t (line 6820) | astro_rotation_t Astronomy_Rotation_EQD_HOR(astro_time_t time, astro_obs...
  function astro_rotation_t (line 6876) | astro_rotation_t Astronomy_Rotation_HOR_EQD(astro_time_t time, astro_obs...
  function astro_rotation_t (line 6901) | astro_rotation_t Astronomy_Rotation_HOR_EQJ(astro_time_t time, astro_obs...
  function astro_rotation_t (line 6933) | astro_rotation_t Astronomy_Rotation_EQJ_HOR(astro_time_t time, astro_obs...
  function astro_rotation_t (line 6955) | astro_rotation_t Astronomy_Rotation_EQD_ECL(astro_time_t time)
  function astro_rotation_t (line 6981) | astro_rotation_t Astronomy_Rotation_ECL_EQD(astro_time_t time)
  function astro_rotation_t (line 7009) | astro_rotation_t Astronomy_Rotation_ECL_HOR(astro_time_t time, astro_obs...
  function astro_rotation_t (line 7034) | astro_rotation_t Astronomy_Rotation_HOR_ECL(astro_time_t time, astro_obs...
  type constel_info_t (line 7042) | typedef struct
  type constel_boundary_t (line 7050) | typedef struct
  function astro_constellation_t (line 7535) | astro_constellation_t Astronomy_Constellation(double ra, double dec)
  function astro_lunar_eclipse_t (line 7617) | static astro_lunar_eclipse_t LunarEclipseError(astro_status_t status)
  type shadow_t (line 7629) | typedef struct
  type shadow_context_t (line 7642) | typedef struct
  function shadow_t (line 7651) | static shadow_t ShadowError(astro_status_t status)
  function shadow_t (line 7660) | static shadow_t CalcShadow(
  function shadow_t (line 7688) | static shadow_t PlanetShadow(astro_body_t body, double planet_radius_km,...
  function shadow_t (line 7717) | static shadow_t EarthShadow(astro_time_t time)
  function shadow_t (line 7729) | static shadow_t MoonShadow(astro_time_t time)
  type shadow_t (line 7761) | typedef shadow_t (* shadow_func_t) (astro_time_t time);
  function astro_func_result_t (line 7765) | static astro_func_result_t shadow_distance_slope(void *context, astro_ti...
  function shadow_t (line 7790) | static shadow_t PeakEarthShadow(astro_time_t search_center_time)
  function shadow_t (line 7809) | static shadow_t PeakMoonShadow(astro_time_t search_center_time)
  type planet_shadow_context_t (line 7829) | typedef struct
  function astro_func_result_t (line 7839) | static astro_func_result_t planet_shadow_distance_slope(void *context, a...
  function shadow_t (line 7864) | static shadow_t PeakPlanetShadow(astro_body_t body, double planet_radius...
  function astro_func_result_t (line 7888) | static astro_func_result_t shadow_distance(void *context, astro_time_t t...
  function ShadowSemiDurationMinutes (line 7902) | static double ShadowSemiDurationMinutes(astro_time_t center_time, double...
  function astro_lunar_eclipse_t (line 7945) | astro_lunar_eclipse_t Astronomy_SearchLunarEclipse(astro_time_t startTime)
  function astro_lunar_eclipse_t (line 8033) | astro_lunar_eclipse_t Astronomy_NextLunarEclipse(astro_time_t prevEclips...
  function astro_global_solar_eclipse_t (line 8040) | static astro_global_solar_eclipse_t GlobalSolarEclipseError(astro_status...
  function astro_global_solar_eclipse_t (line 8057) | static astro_global_solar_eclipse_t GeoidIntersect(shadow_t shadow)
  function astro_global_solar_eclipse_t (line 8197) | astro_global_solar_eclipse_t Astronomy_SearchGlobalSolarEclipse(astro_ti...
  function astro_global_solar_eclipse_t (line 8260) | astro_global_solar_eclipse_t Astronomy_NextGlobalSolarEclipse(astro_time...
  function astro_eclipse_event_t (line 8267) | static astro_eclipse_event_t EclipseEventError(void)
  function astro_local_solar_eclipse_t (line 8276) | static astro_local_solar_eclipse_t LocalSolarEclipseError(astro_status_t...
  function shadow_t (line 8293) | static shadow_t LocalMoonShadow(astro_time_t time, astro_observer_t obse...
  function astro_func_result_t (line 8322) | static astro_func_result_t local_shadow_distance_slope(void *context, as...
  function shadow_t (line 8347) | static shadow_t PeakLocalMoonShadow(astro_time_t search_center_time, ast...
  function local_partial_distance (line 8369) | static double local_partial_distance(const shadow_t *shadow)
  function local_total_distance (line 8374) | static double local_total_distance(const shadow_t *shadow)
  type eclipse_transition_t (line 8384) | typedef struct
  function astro_func_result_t (line 8394) | static astro_func_result_t local_eclipse_func(void *context, astro_time_...
  function astro_func_result_t (line 8410) | astro_func_result_t SunAltitude(
  function astro_status_t (line 8429) | static astro_status_t CalcEvent(
  function astro_status_t (line 8450) | static astro_status_t LocalEclipseTransition(
  function astro_local_solar_eclipse_t (line 8477) | static astro_local_solar_eclipse_t LocalEclipse(
  function astro_local_solar_eclipse_t (line 8552) | astro_local_solar_eclipse_t Astronomy_SearchLocalSolarEclipse(
  function astro_local_solar_eclipse_t (line 8625) | astro_local_solar_eclipse_t Astronomy_NextLocalSolarEclipse(
  function astro_func_result_t (line 8634) | static astro_func_result_t planet_transit_bound(void *context, astro_tim...
  function astro_search_result_t (line 8650) | static astro_search_result_t PlanetTransitBoundary(
  function astro_transit_t (line 8688) | astro_transit_t Astronomy_SearchTransit(astro_body_t body, astro_time_t ...
  function astro_transit_t (line 8788) | astro_transit_t Astronomy_NextTransit(astro_body_t body, astro_time_t pr...
  function Astronomy_Reset (line 8809) | void Astronomy_Reset(void)

FILE: Software/firmware_demo/lib/TFT_eSPI/examples/Sprite/Orrery/astronomy.h
  type astro_status_t (line 42) | typedef enum
  type astro_time_t (line 93) | typedef struct
  type astro_utc_t (line 154) | typedef struct
  type astro_vector_t (line 168) | typedef struct
  type astro_spherical_t (line 181) | typedef struct
  type astro_angle_result_t (line 193) | typedef struct
  type astro_body_t (line 203) | typedef enum
  type astro_observer_t (line 237) | typedef struct
  type astro_equatorial_t (line 251) | typedef struct
  type astro_ecliptic_t (line 266) | typedef struct
  type astro_horizon_t (line 284) | typedef struct
  type astro_rotation_t (line 296) | typedef struct
  type astro_refraction_t (line 306) | typedef enum
  type astro_search_result_t (line 317) | typedef struct
  type astro_seasons_t (line 329) | typedef struct
  type astro_moon_quarter_t (line 342) | typedef struct
  type astro_func_result_t (line 362) | typedef struct
  type astro_func_result_t (line 389) | typedef astro_func_result_t (* astro_search_func_t) (void *context, astr...
  type astro_visibility_t (line 413) | typedef enum
  type astro_elongation_t (line 426) | typedef struct
  type astro_hour_angle_t (line 442) | typedef struct
  type astro_illum_t (line 456) | typedef struct
  type astro_apsis_kind_t (line 470) | typedef enum
  type astro_apsis_t (line 493) | typedef struct
  type astro_eclipse_kind_t (line 506) | typedef enum
  type astro_lunar_eclipse_t (line 541) | typedef struct
  type astro_global_solar_eclipse_t (line 584) | typedef struct
  type astro_eclipse_event_t (line 610) | typedef struct
  type astro_local_solar_eclipse_t (line 645) | typedef struct
  type astro_transit_t (line 675) | typedef struct
  type astro_aberration_t (line 705) | typedef enum
  type astro_equator_date_t (line 728) | typedef enum
  type astro_direction_t (line 741) | typedef enum
  type astro_constellation_t (line 758) | typedef struct
  type astro_time_format_t (line 772) | typedef enum

FILE: Software/firmware_demo/lib/TFT_eSPI/examples/ePaper/Floyd_Steinberg/EPD_Support.h
  function updateDisplay (line 105) | void updateDisplay(uint8_t* blackFrame = framePtr)

FILE: Software/firmware_demo/lib/TJpg_Decoder/examples/Web_Jpg/List_SPIFFS.h
  function listSPIFFS (line 6) | void listSPIFFS(void) {
  function listSPIFFS (line 40) | void listSPIFFS(void) {

FILE: Software/firmware_demo/lib/TJpg_Decoder/examples/Web_Jpg/Web_Fetch.h
  function getFile (line 3) | bool getFile(String url, String filename) {

FILE: Software/firmware_demo/lib/TJpg_Decoder/src/TJpg_Decoder.cpp
  function JRESULT (line 166) | JRESULT TJpg_Decoder::drawJpg(int32_t x, int32_t y, const char *pFilename){
  function JRESULT (line 187) | JRESULT TJpg_Decoder::drawJpg(int32_t x, int32_t y, const String& pFilen...
  function JRESULT (line 208) | JRESULT TJpg_Decoder::getJpgSize(uint16_t *w, uint16_t *h, const char *p...
  function JRESULT (line 229) | JRESULT TJpg_Decoder::getJpgSize(uint16_t *w, uint16_t *h, const String&...
  function JRESULT (line 254) | JRESULT TJpg_Decoder::drawFsJpg(int32_t x, int32_t y, const char *pFilen...
  function JRESULT (line 280) | JRESULT TJpg_Decoder::drawFsJpg(int32_t x, int32_t y, const String& pFil...
  function JRESULT (line 305) | JRESULT TJpg_Decoder::drawFsJpg(int32_t x, int32_t y, fs::File inFile) {
  function JRESULT (line 336) | JRESULT TJpg_Decoder::getFsJpgSize(uint16_t *w, uint16_t *h, const char ...
  function JRESULT (line 362) | JRESULT TJpg_Decoder::getFsJpgSize(uint16_t *w, uint16_t *h, const Strin...
  function JRESULT (line 388) | JRESULT TJpg_Decoder::getFsJpgSize(uint16_t *w, uint16_t *h, fs::File in...
  function JRESULT (line 422) | JRESULT TJpg_Decoder::drawSdJpg(int32_t x, int32_t y, const char *pFilen...
  function JRESULT (line 438) | JRESULT TJpg_Decoder::drawSdJpg(int32_t x, int32_t y, const String& pFil...
  function JRESULT (line 454) | JRESULT TJpg_Decoder::drawSdJpg(int32_t x, int32_t y, File inFile) {
  function JRESULT (line 485) | JRESULT TJpg_Decoder::getSdJpgSize(uint16_t *w, uint16_t *h, const char ...
  function JRESULT (line 501) | JRESULT TJpg_Decoder::getSdJpgSize(uint16_t *w, uint16_t *h, const Strin...
  function JRESULT (line 517) | JRESULT TJpg_Decoder::getSdJpgSize(uint16_t *w, uint16_t *h, File inFile) {
  function JRESULT (line 547) | JRESULT TJpg_Decoder::drawJpg(int32_t x, int32_t y, const uint8_t jpeg_d...
  function JRESULT (line 576) | JRESULT TJpg_Decoder::getJpgSize(uint16_t *w, uint16_t *h, const uint8_t...

FILE: Software/firmware_demo/lib/TJpg_Decoder/src/TJpg_Decoder.h
  function class (line 46) | class TJpg_Decoder {

FILE: Software/firmware_demo/lib/TJpg_Decoder/src/tjpgd.c
  function BYTECLIP (line 133) | inline uint8_t BYTECLIP (
  function create_qt_tbl (line 177) | static int create_qt_tbl (  /* 0:OK, !0:Failed */
  function create_huffman_tbl (line 213) | static int create_huffman_tbl ( /* 0:OK, !0:Failed */
  function bitext (line 268) | static int bitext ( /* >=0: extracted data, <0: error code */
  function huffext (line 318) | static int16_t huffext (  /* >=0: decoded data, <0: error code */
  function block_idct (line 378) | static void block_idct (
  function JRESULT (line 490) | static JRESULT mcu_load (
  function JRESULT (line 573) | static JRESULT mcu_output (
  function JRESULT (line 723) | static JRESULT restart (
  function JRESULT (line 770) | JRESULT jd_prepare (
  function JRESULT (line 946) | JRESULT jd_decomp (
  function BYTECLIP (line 1093) | inline uint8_t BYTECLIP (
  function create_qt_tbl (line 1137) | static int create_qt_tbl (  /* 0:OK, !0:Failed */
  function create_huffman_tbl (line 1173) | static int create_huffman_tbl ( /* 0:OK, !0:Failed */
  function bitext (line 1228) | static int bitext ( /* >=0: extracted data, <0: error code */
  function huffext (line 1278) | static int16_t huffext (  /* >=0: decoded data, <0: error code */
  function block_idct (line 1338) | static void block_idct (
  function JRESULT (line 1450) | static JRESULT mcu_load (
  function JRESULT (line 1533) | static JRESULT mcu_output (
  function JRESULT (line 1695) | static JRESULT restart (
  function JRESULT (line 1742) | JRESULT jd_prepare (
  function JRESULT (line 1918) | JRESULT jd_decomp (

FILE: Software/firmware_demo/lib/TJpg_Decoder/src/tjpgd.h
  type JRESULT (line 34) | typedef enum {
  type JRECT (line 49) | typedef struct {
  type JDEC (line 56) | typedef struct JDEC_s JDEC;
  type JDEC_s (line 57) | struct JDEC_s {

FILE: Software/firmware_demo/lib/lvgl/demos/benchmark/lv_demo_benchmark.c
  type scene_dsc_t (line 49) | typedef struct {
  function rectangle_cb (line 89) | static void rectangle_cb(void)
  function rectangle_rounded_cb (line 96) | static void rectangle_rounded_cb(void)
  function rectangle_circle_cb (line 104) | static void rectangle_circle_cb(void)
  function border_cb (line 112) | static void border_cb(void)
  function border_rounded_cb (line 120) | static void border_rounded_cb(void)
  function border_circle_cb (line 130) | static void border_circle_cb(void)
  function border_top_cb (line 139) | static void border_top_cb(void)
  function border_left_cb (line 150) | static void border_left_cb(void)
  function border_top_left_cb (line 160) | static void border_top_left_cb(void)
  function border_left_right_cb (line 170) | static void border_left_right_cb(void)
  function border_top_bottom_cb (line 180) | static void border_top_bottom_cb(void)
  function shadow_small_cb (line 191) | static void shadow_small_cb(void)
  function shadow_small_ofs_cb (line 202) | static void shadow_small_ofs_cb(void)
  function shadow_large_cb (line 216) | static void shadow_large_cb(void)
  function shadow_large_ofs_cb (line 226) | static void shadow_large_ofs_cb(void)
  function img_rgb_cb (line 240) | static void img_rgb_cb(void)
  function img_argb_cb (line 247) | static void img_argb_cb(void)
  function img_ckey_cb (line 255) | static void img_ckey_cb(void)
  function img_index_cb (line 263) | static void img_index_cb(void)
  function img_alpha_cb (line 271) | static void img_alpha_cb(void)
  function img_rgb_recolor_cb (line 279) | static void img_rgb_recolor_cb(void)
  function img_argb_recolor_cb (line 288) | static void img_argb_recolor_cb(void)
  function img_ckey_recolor_cb (line 296) | static void img_ckey_recolor_cb(void)
  function img_index_recolor_cb (line 304) | static void img_index_recolor_cb(void)
  function img_rgb_rot_cb (line 313) | static void img_rgb_rot_cb(void)
  function img_rgb_rot_aa_cb (line 320) | static void img_rgb_rot_aa_cb(void)
  function img_argb_rot_cb (line 327) | static void img_argb_rot_cb(void)
  function img_argb_rot_aa_cb (line 334) | static void img_argb_rot_aa_cb(void)
  function img_rgb_zoom_cb (line 341) | static void img_rgb_zoom_cb(void)
  function img_rgb_zoom_aa_cb (line 349) | static void img_rgb_zoom_aa_cb(void)
  function img_argb_zoom_cb (line 358) | static void img_argb_zoom_cb(void)
  function img_argb_zoom_aa_cb (line 366) | static void img_argb_zoom_aa_cb(void)
  function txt_small_cb (line 373) | static void txt_small_cb(void)
  function txt_medium_cb (line 382) | static void txt_medium_cb(void)
  function txt_large_cb (line 391) | static void txt_large_cb(void)
  function txt_small_compr_cb (line 400) | static void txt_small_compr_cb(void)
  function txt_medium_compr_cb (line 409) | static void txt_medium_compr_cb(void)
  function txt_large_compr_cb (line 418) | static void txt_large_compr_cb(void)
  function line_cb (line 428) | static void line_cb(void)
  function arc_think_cb (line 437) | static void arc_think_cb(void)
  function arc_thick_cb (line 446) | static void arc_thick_cb(void)
  function sub_rectangle_cb (line 456) | static void sub_rectangle_cb(void)
  function sub_border_cb (line 465) | static void sub_border_cb(void)
  function sub_shadow_cb (line 476) | static void sub_shadow_cb(void)
  function sub_img_cb (line 489) | static void sub_img_cb(void)
  function sub_line_cb (line 497) | static void sub_line_cb(void)
  function sub_arc_cb (line 507) | static void sub_arc_cb(void)
  function sub_text_cb (line 516) | static void sub_text_cb(void)
  function lv_demo_benchmark (line 626) | void lv_demo_benchmark(void)
  function monitor_cb (line 658) | static void monitor_cb(lv_disp_drv_t * drv, uint32_t time, uint32_t px)
  function scene_next_task_cb (line 673) | static void scene_next_task_cb(lv_timer_t * timer)
  function rect_create (line 867) | static void rect_create(lv_style_t * style)
  function img_create (line 885) | static void img_create(lv_style_t * style, const void * src, bool rotate...
  function txt_create (line 904) | static void txt_create(lv_style_t * style)
  function line_create (line 920) | static void line_create(lv_style_t * style)
  function arc_create (line 948) | static void arc_create(lv_style_t * style)
  function fall_anim (line 977) | static void fall_anim(lv_obj_t * obj)
  function rnd_reset (line 996) | static void rnd_reset(void)
  function rnd_next (line 1001) | static int32_t rnd_next(int32_t min, int32_t max)

FILE: Software/firmware_demo/lib/lvgl/demos/keypad_encoder/lv_demo_keypad_encoder.c
  function lv_demo_keypad_encoder (line 47) | void lv_demo_keypad_encoder(void)
  function selectors_create (line 83) | static void selectors_create(lv_obj_t * parent)
  function text_input_create (line 141) | static void text_input_create(lv_obj_t * parent)
  function msgbox_create (line 162) | static void msgbox_create(void)
  function msgbox_event_cb (line 181) | static void msgbox_event_cb(lv_event_t * e)
  function ta_event_cb (line 198) | static void ta_event_cb(lv_event_t * e)

FILE: Software/firmware_demo/lib/lvgl/demos/music/lv_demo_music.c
  function lv_demo_music (line 114) | void lv_demo_music(void)
  function _lv_demo_music_get_track_length (line 144) | uint32_t _lv_demo_music_get_track_length(uint32_t track_id)
  function auto_step_cb (line 155) | static void auto_step_cb(lv_timer_t * t)

FILE: Software/firmware_demo/lib/lvgl/demos/music/lv_demo_music_list.c
  function lv_obj_t (line 53) | lv_obj_t * _lv_demo_music_list_create(lv_obj_t * parent)
  function _lv_demo_music_list_btn_check (line 133) | void _lv_demo_music_list_btn_check(uint32_t track_id, bool state)
  function lv_obj_t (line 153) | static lv_obj_t * add_list_btn(lv_obj_t * parent, uint32_t track_id)
  function btn_click_event_cb (line 209) | static void btn_click_event_cb(lv_event_t * e)

FILE: Software/firmware_demo/lib/lvgl/demos/music/lv_demo_music_main.c
  function _img_set_zoom_anim_cb (line 109) | static void _img_set_zoom_anim_cb(void * obj, int32_t zoom) {
  function _obj_set_x_anim_cb (line 117) | static void _obj_set_x_anim_cb(void * obj, int32_t x) {
  function lv_obj_t (line 121) | lv_obj_t * _lv_demo_music_main_create(lv_obj_t * parent)
  function _lv_demo_music_album_next (line 289) | void _lv_demo_music_album_next(bool next)
  function _lv_demo_music_play (line 310) | void _lv_demo_music_play(uint32_t id)
  function _lv_demo_music_resume (line 317) | void _lv_demo_music_resume(void)
  function _lv_demo_music_pause (line 338) | void _lv_demo_music_pause(void)
  function lv_obj_t (line 354) | static lv_obj_t * create_cont(lv_obj_t * parent)
  function create_wave_images (line 421) | static void create_wave_images(lv_obj_t * parent)
  function lv_obj_t (line 458) | static lv_obj_t * create_title_box(lv_obj_t * parent)
  function lv_obj_t (line 487) | static lv_obj_t * create_icon_box(lv_obj_t * parent)
  function lv_obj_t (line 513) | static lv_obj_t * create_spectrum_obj(lv_obj_t * parent)
  function lv_obj_t (line 530) | static lv_obj_t * create_ctrl_box(lv_obj_t * parent)
  function lv_obj_t (line 611) | static lv_obj_t * create_handle(lv_obj_t * parent)
  function track_load (line 640) | static void track_load(uint32_t id)
  function get_cos (line 707) | int32_t get_cos(int32_t deg, int32_t a)
  function get_sin (line 715) | int32_t get_sin(int32_t deg, int32_t a)
  function spectrum_draw_event_cb (line 724) | static void spectrum_draw_event_cb(lv_event_t * e)
  function spectrum_anim_cb (line 847) | static void spectrum_anim_cb(void * a, int32_t v)
  function start_anim_cb (line 877) | static void start_anim_cb(void * a, int32_t v)
  function lv_obj_t (line 884) | static lv_obj_t * album_img_create(lv_obj_t * parent)
  function album_gesture_event_cb (line 920) | static void album_gesture_event_cb(lv_event_t * e)
  function play_event_click_cb (line 927) | static void play_event_click_cb(lv_event_t * e)
  function prev_click_event_cb (line 937) | static void prev_click_event_cb(lv_event_t * e)
  function next_click_event_cb (line 943) | static void next_click_event_cb(lv_event_t * e)
  function timer_cb (line 952) | static void timer_cb(lv_timer_t * t)
  function spectrum_end_cb (line 960) | static void spectrum_end_cb(lv_anim_t * a)
  function stop_start_anim (line 967) | static void stop_start_anim(lv_timer_t * t)

FILE: Software/firmware_demo/lib/lvgl/demos/stress/lv_demo_stress.c
  function lv_demo_stress (line 45) | void lv_demo_stress(void)
  function obj_test_task_cb (line 54) | static void obj_test_task_cb(lv_timer_t * tmr)
  function auto_del (line 430) | static void auto_del(lv_obj_t * obj, uint32_t delay)
  function msgbox_del (line 442) | static void msgbox_del(lv_timer_t * tmr)
  function set_y_anim (line 447) | static void set_y_anim(void * obj, int32_t v)
  function set_width_anim (line 452) | static void set_width_anim(void * obj, int32_t v)
  function arc_set_end_angle_anim (line 457) | static void arc_set_end_angle_anim(void * obj, int32_t v)

FILE: Software/firmware_demo/lib/lvgl/demos/widgets/lv_demo_widgets.c
  type disp_size_t (line 24) | typedef enum {
  function lv_demo_widgets (line 95) | void lv_demo_widgets(void)
  function profile_create (line 198) | static void profile_create(lv_obj_t * parent)
  function analytics_create (line 523) | static void analytics_create(lv_obj_t * parent)
  function shop_create (line 772) | void shop_create(lv_obj_t * parent)
  function color_changer_create (line 947) | static void color_changer_create(lv_obj_t * parent)
  function color_changer_anim_cb (line 998) | static void color_changer_anim_cb(void * var, int32_t v)
  function color_changer_event_cb (line 1023) | static void color_changer_event_cb(lv_event_t *e)
  function color_event_cb (line 1046) | static void color_event_cb(lv_event_t * e)
  function lv_obj_t (line 1077) | static lv_obj_t * create_meter_box(lv_obj_t * parent, const char * title...
  function lv_obj_t (line 1149) | static lv_obj_t * create_shop_item(lv_obj_t * parent, const void * img_s...
  function ta_event_cb (line 1180) | static void ta_event_cb(lv_event_t * e)
  function birthday_event_cb (line 1210) | static void birthday_event_cb(lv_event_t * e)
  function calendar_event_cb (line 1235) | static void calendar_event_cb(lv_event_t * e)
  function slider_event_cb (line 1254) | static void slider_event_cb(lv_event_t * e)
  function chart_event_cb (line 1298) | static void chart_event_cb(lv_event_t * e)
  function shop_chart_event_cb (line 1420) | static void shop_chart_event_cb(lv_event_t * e)
  function meter1_indic1_anim_cb (line 1472) | static void meter1_indic1_anim_cb(void * var, int32_t v)
  function meter1_indic2_anim_cb (line 1481) | static void meter1_indic2_anim_cb(void * var, int32_t v)
  function meter1_indic3_anim_cb (line 1491) | static void meter1_indic3_anim_cb(void * var, int32_t v)
  function meter2_timer_cb (line 1500) | static void meter2_timer_cb(lv_timer_t * timer)
  function meter3_anim_cb (line 1559) | static void meter3_anim_cb(void * var, int32_t v)

FILE: Software/firmware_demo/lib/lvgl/demos/widgets/lv_demo_widgets.py
  function LV_DPX (line 45) | def LV_DPX(n):
  function color_chg_event_cb (line 59) | def color_chg_event_cb(sw, e):
  function slider_event_cb (line 67) | def slider_event_cb(slider, e):
  function linemeter_anim (line 79) | def linemeter_anim(a,lmeter, value):
  function gauge_anim (line 85) | def gauge_anim(a,gauge,val):
  function bar_anim (line 91) | def bar_anim(task,bar):
  function arc_phase1_ready_cb (line 103) | def arc_phase1_ready_cb(a,arc):
  function arc_phase2_ready_cb (line 112) | def arc_phase2_ready_cb(a,arc):
  function anim_phase1 (line 121) | def anim_phase1(a,arc,val):
  function anim_phase2 (line 127) | def anim_phase2(a,arc,val):
  function controls_create (line 133) | def controls_create(parent):
  function visuals_create (line 237) | def visuals_create(parent):
  function selectors_create (line 459) | def selectors_create(parent):

FILE: Software/firmware_demo/lib/lvgl/docs/_ext/lv_example.py
  function excluded_list (line 9) | def excluded_list(argument):
  class LvExample (line 15) | class LvExample(Directive):
    method get_example_code_path (line 22) | def get_example_code_path(self, example_path, language):
    method human_language_name (line 24) | def human_language_name(self, language):
    method github_path (line 31) | def github_path(self, example_path, language):
    method embed_code (line 34) | def embed_code(self, example_file, example_path, language, buttons={}):
    method run (line 51) | def run(self):
  function setup (line 90) | def setup(app):

FILE: Software/firmware_demo/lib/lvgl/docs/build.py
  function cmd (line 16) | def cmd(s):

FILE: Software/firmware_demo/lib/lvgl/docs/conf.py
  function setup (line 232) | def setup(app):

FILE: Software/firmware_demo/lib/lvgl/docs/example_list.py
  function process_index_rst (line 5) | def process_index_rst(path):
  function print_item (line 76) | def print_item(path, lvl, d, fout):
  function exec (line 86) | def exec():

FILE: Software/firmware_demo/lib/lvgl/env_support/rt-thread/lv_rt_thread_port.c
  function lv_rt_log (line 23) | static void lv_rt_log(const char *buf)
  function lv_port_init (line 29) | static int lv_port_init(void)

FILE: Software/firmware_demo/lib/lvgl/examples/anim/lv_example_anim_1.c
  function anim_x_cb (line 4) | static void anim_x_cb(void * var, int32_t v)
  function sw_event_cb (line 9) | static void sw_event_cb(lv_event_t * e)
  function lv_example_anim_1 (line 39) | void lv_example_anim_1(void)

FILE: Software/firmware_demo/lib/lvgl/examples/anim/lv_example_anim_1.py
  function anim_x_cb (line 1) | def anim_x_cb(label, v):
  function sw_event_cb (line 4) | def sw_event_cb(e,label):

FILE: Software/firmware_demo/lib/lvgl/examples/anim/lv_example_anim_2.c
  function anim_x_cb (line 5) | static void anim_x_cb(void * var, int32_t v)
  function anim_size_cb (line 10) | static void anim_size_cb(void * var, int32_t v)
  function lv_example_anim_2 (line 18) | void lv_example_anim_2(void)

FILE: Software/firmware_demo/lib/lvgl/examples/anim/lv_example_anim_2.py
  function anim_x_cb (line 1) | def anim_x_cb(obj, v):
  function anim_size_cb (line 4) | def anim_size_cb(obj, v):

FILE: Software/firmware_demo/lib/lvgl/examples/anim/lv_example_anim_3.c
  function lv_example_anim_3 (line 37) | void lv_example_anim_3(void)
  function anim_path_bezier3_cb (line 65) | static int32_t anim_path_bezier3_cb(const lv_anim_t * a)
  function refer_chart_cubic_bezier (line 76) | static void refer_chart_cubic_bezier(void)
  function anim_x_cb (line 86) | static void anim_x_cb(void * var, int32_t v)
  function run_btn_event_handler (line 91) | static void run_btn_event_handler(lv_event_t * e)
  function slider_event_cb (line 99) | static void slider_event_cb(lv_event_t * e)
  function page_obj_init (line 120) | static void page_obj_init(lv_obj_t * par)

FILE: Software/firmware_demo/lib/lvgl/examples/anim/lv_example_anim_3.py
  class LvExampleAnim_3 (line 11) | class LvExampleAnim_3():
    method __init__ (line 15) | def __init__(self):
    method page_obj_init (line 41) | def page_obj_init(self,par):
    method refer_chart_cubic_bezier (line 84) | def refer_chart_cubic_bezier(self):
    method slider_event_cb (line 91) | def slider_event_cb(self,e):
    method run_btn_event_handler (line 106) | def run_btn_event_handler(self,e):
    method anim_x_cb (line 112) | def anim_x_cb(self, var, v):
    method anim_path_bezier3_cb (line 115) | def anim_path_bezier3_cb(self,a):

FILE: Software/firmware_demo/lib/lvgl/examples/anim/lv_example_anim_timeline_1.c
  function set_width (line 13) | static void set_width(void * var, int32_t v)
  function set_height (line 18) | static void set_height(void * var, int32_t v)
  function anim_timeline_create (line 23) | static void anim_timeline_create(void)
  function btn_start_event_handler (line 92) | static void btn_start_event_handler(lv_event_t * e)
  function btn_del_event_handler (line 105) | static void btn_del_event_handler(lv_event_t * e)
  function btn_stop_event_handler (line 114) | static void btn_stop_event_handler(lv_event_t * e)
  function slider_prg_event_handler (line 122) | static void slider_prg_event_handler(lv_event_t * e)
  function lv_example_anim_timeline_1 (line 137) | void lv_example_anim_timeline_1(void)

FILE: Software/firmware_demo/lib/lvgl/examples/anim/lv_example_anim_timeline_1.py
  class LV_ExampleAnimTimeline_1 (line 1) | class LV_ExampleAnimTimeline_1(object):
    method __init__ (line 3) | def __init__(self):
    method set_width (line 50) | def set_width(self,obj, v):
    method set_height (line 53) | def set_height(self,obj, v):
    method anim_timeline_create (line 56) | def anim_timeline_create(self):
    method slider_prg_event_handler (line 118) | def slider_prg_event_handler(self,e):
    method btn_run_event_handler (line 128) | def btn_run_event_handler(self,e):
    method btn_del_event_handler (line 137) | def btn_del_event_handler(self,e):

FILE: Software/firmware_demo/lib/lvgl/examples/event/lv_example_event_1.c
  function event_cb (line 4) | static void event_cb(lv_event_t * e)
  function lv_example_event_1 (line 18) | void lv_example_event_1(void)

FILE: Software/firmware_demo/lib/lvgl/examples/event/lv_example_event_1.py
  class Event_1 (line 1) | class Event_1():
    method __init__ (line 2) | def __init__(self):
    method event_cb (line 17) | def event_cb(self,e):

FILE: Software/firmware_demo/lib/lvgl/examples/event/lv_example_event_2.c
  function event_cb (line 4) | static void event_cb(lv_event_t * e)
  function lv_example_event_2 (line 30) | void lv_example_event_2(void)

FILE: Software/firmware_demo/lib/lvgl/examples/event/lv_example_event_2.py
  function event_cb (line 1) | def event_cb(e,label):

FILE: Software/firmware_demo/lib/lvgl/examples/event/lv_example_event_3.c
  function event_cb (line 4) | static void event_cb(lv_event_t * e)
  function lv_example_event_3 (line 22) | void lv_example_event_3(void)

FILE: Software/firmware_demo/lib/lvgl/examples/event/lv_example_event_3.py
  function event_cb (line 1) | def event_cb(e):

FILE: Software/firmware_demo/lib/lvgl/examples/event/lv_example_event_4.c
  function timer_cb (line 8) | static void timer_cb(lv_timer_t * timer)
  function event_cb (line 27) | static void event_cb(lv_event_t * e)
  function lv_example_event_4 (line 51) | void lv_example_event_4(void)

FILE: Software/firmware_demo/lib/lvgl/examples/get_started/lv_example_get_started_1.c
  function btn_event_cb (line 4) | static void btn_event_cb(lv_event_t * e)
  function lv_example_get_started_1 (line 21) | void lv_example_get_started_1(void)

FILE: Software/firmware_demo/lib/lvgl/examples/get_started/lv_example_get_started_1.py
  class CounterBtn (line 1) | class CounterBtn():
    method __init__ (line 2) | def __init__(self):
    method btn_event_cb (line 17) | def btn_event_cb(self,evt):

FILE: Software/firmware_demo/lib/lvgl/examples/get_started/lv_example_get_started_2.c
  function lv_color_t (line 8) | static lv_color_t darken(const lv_color_filter_dsc_t * dsc, lv_color_t c...
  function style_init (line 14) | static void style_init(void)
  function lv_example_get_started_2 (line 47) | void lv_example_get_started_2(void)

FILE: Software/firmware_demo/lib/lvgl/examples/get_started/lv_example_get_started_3.c
  function slider_event_cb (line 6) | static void slider_event_cb(lv_event_t * e)
  function lv_example_get_started_3 (line 18) | void lv_example_get_started_3(void)

FILE: Software/firmware_demo/lib/lvgl/examples/get_started/lv_example_get_started_3.py
  function slider_event_cb (line 1) | def slider_event_cb(evt):

FILE: Software/firmware_demo/lib/lvgl/examples/layouts/flex/lv_example_flex_1.c
  function lv_example_flex_1 (line 7) | void lv_example_flex_1(void)

FILE: Software/firmware_demo/lib/lvgl/examples/layouts/flex/lv_example_flex_2.c
  function lv_example_flex_2 (line 7) | void lv_example_flex_2(void)

FILE: Software/firmware_demo/lib/lvgl/examples/layouts/flex/lv_example_flex_3.c
  function lv_example_flex_3 (line 7) | void lv_example_flex_3(void)

FILE: Software/firmware_demo/lib/lvgl/examples/layouts/flex/lv_example_flex_4.c
  function lv_example_flex_4 (line 7) | void lv_example_flex_4(void)

FILE: Software/firmware_demo/lib/lvgl/examples/layouts/flex/lv_example_flex_5.c
  function row_gap_anim (line 4) | static void row_gap_anim(void * obj, int32_t v)
  function column_gap_anim (line 9) | static void column_gap_anim(void * obj, int32_t v)
  function lv_example_flex_5 (line 17) | void lv_example_flex_5(void)

FILE: Software/firmware_demo/lib/lvgl/examples/layouts/flex/lv_example_flex_5.py
  function row_gap_anim (line 1) | def row_gap_anim(obj, v):
  function column_gap_anim (line 5) | def column_gap_anim(obj, v):

FILE: Software/firmware_demo/lib/lvgl/examples/layouts/flex/lv_example_flex_6.c
  function lv_example_flex_6 (line 8) | void lv_example_flex_6(void)

FILE: Software/firmware_demo/lib/lvgl/examples/layouts/grid/lv_example_grid_1.c
  function lv_example_grid_1 (line 7) | void lv_example_grid_1(void)

FILE: Software/firmware_demo/lib/lvgl/examples/layouts/grid/lv_example_grid_2.c
  function lv_example_grid_2 (line 8) | void lv_example_grid_2(void)

FILE: Software/firmware_demo/lib/lvgl/examples/layouts/grid/lv_example_grid_3.c
  function lv_example_grid_3 (line 7) | void lv_example_grid_3(void)

FILE: Software/firmware_demo/lib/lvgl/examples/layouts/grid/lv_example_grid_4.c
  function lv_example_grid_4 (line 7) | void lv_example_grid_4(void)

FILE: Software/firmware_demo/lib/lvgl/examples/layouts/grid/lv_example_grid_5.c
  function row_gap_anim (line 4) | static void row_gap_anim(void * obj, int32_t v)
  function column_gap_anim (line 9) | static void column_gap_anim(void * obj, int32_t v)
  function lv_example_grid_5 (line 17) | void lv_example_grid_5(void)

FILE: Software/firmware_demo/lib/lvgl/examples/layouts/grid/lv_example_grid_5.py
  function row_gap_anim (line 1) | def row_gap_anim(obj, v):
  function column_gap_anim (line 4) | def column_gap_anim(obj, v):

FILE: Software/firmware_demo/lib/lvgl/examples/layouts/grid/lv_example_grid_6.c
  function lv_example_grid_6 (line 7) | void lv_example_grid_6(void)

FILE: Software/firmware_demo/lib/lvgl/examples/libs/bmp/lv_example_bmp_1.c
  function lv_example_bmp_1 (line 7) | void lv_example_bmp_1(void)

FILE: Software/firmware_demo/lib/lvgl/examples/libs/ffmpeg/lv_example_ffmpeg_1.c
  function lv_ex
Copy disabled (too large) Download .json
Condensed preview — 1890 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (106,511K chars).
[
  {
    "path": ".gitignore",
    "chars": 109,
    "preview": "Doc/*.pdf\nHardware/\nHardware/ExtendBoard/History\nHardware/ExtendBoard/History\nHardware/ExtendBoard/__Previews"
  },
  {
    "path": "Doc/V2.0功率板修改/功率板V2.0硬件版本修改方法.md",
    "chars": 1575,
    "preview": "# 功率板V2.0硬件版本修改\n本教程只针对于V2.0版本的功率板的修改,其他任何版本的PCB均不需要此操作!!!\n\n由于功率板V2.0设计上的不完善,导致了容易因为烙铁烧主控引脚,故所有持有功率板V2.0的群友强制要修改。\n\n# 目的\n烙"
  },
  {
    "path": "Doc/V2.5.x组装教程/SnailHeater使用说明书.md",
    "chars": 11157,
    "preview": "# 蜗牛台说明书\n\n## 目录\n<a href=\"#SnailHeater简介\"><font size=\"4\" color=\"#00f\">SnailHeater简介</font></a>\n<a href=\"#注意事项(非常重要)\"><fon"
  },
  {
    "path": "Doc/V2.5.x组装教程/SnailHeater硬件V2.5.x版本组装教程.md",
    "chars": 6210,
    "preview": "# SnailHeater接线教程\n### 免责声明:\n#### 由于本作品涉及到220V交流电,需有一点基础的人员才可操作。未能正确估量自己的能力,发生触电等有损人身安全的事故,均与本项目开发者无关。也提醒大家,接线过程中不要接220V,"
  },
  {
    "path": "Doc/V2.5.x组装教程/一车升级二车教程.md",
    "chars": 7523,
    "preview": "# SnailHeater接线教程\n### 免责声明:\n#### 由于本作品涉及到220V交流电,需有一点基础的人员才可操作。未能正确估量自己的能力,发生触电等有损人身安全的事故,均与本项目开发者无关。也提醒大家,接线过程中不要接220V,"
  },
  {
    "path": "Doc/V2.6.x组装教程/SnailHeater硬件V2.6.x版本组装教程.md",
    "chars": 5528,
    "preview": "# SnailHeater接线教程\n### 免责声明:\n#### 由于本作品涉及到220V交流电,需有一点基础的人员才可操作。未能正确估量自己的能力,发生触电等有损人身安全的事故,均与本项目开发者无关。也提醒大家,接线过程中不要接220V,"
  },
  {
    "path": "Doc/other.md",
    "chars": 2977,
    "preview": "### 华为24V电源\n原24V的R16为4322(43.2k)\n20V的R16为2702(27k)\n\n### 电源纹波\n华为5.284  5.295v  空载浮动0.015\n普通 5.292 5.304v  空载浮动0.016\n\n\n###"
  },
  {
    "path": "Doc/新版优化记录.md",
    "chars": 985,
    "preview": "### 前面板优化:\n- [X] 修改typec正反插\n- [X] 缩小EC11的孔位\n- [X] 优化航空插定位框  11.2  15\n- [X] 修改耳机封装\n\n### 功率板优化\n- [X] 三路Sleep新增二极管\n- [X] 烙铁"
  },
  {
    "path": "Doc/组装教程/SnailHeater接线教程.md",
    "chars": 5727,
    "preview": "# SnailHeater接线教程\n本教程对SnailHeater主机接线提供一个统一的接线规范。SnailHeater主机包含三块PCB板,分别为`屏幕前面板`、`核心板`、`功率板`。接线主要针对于`功率板`上的接口。功率板是的逻辑是由"
  },
  {
    "path": "Doc/蜗牛台使用说明书/蜗牛台使用说明书.md",
    "chars": 16819,
    "preview": "# 蜗牛台说明书\n\n## 目录\n<a href=\"#SnailHeater简介\"><font size=\"4\" color=\"#00f\">SnailHeater简介</font></a>\n<a href=\"#注意事项(非常重要)\"><fon"
  },
  {
    "path": "Doc/蜗牛台全系接线引脚定义/蜗牛台全系接线引脚定义.md",
    "chars": 4542,
    "preview": "# 蜗牛台全系接线引脚定义\n### 免责声明:\n#### 由于本作品涉及到220V交流电,需有一点基础的人员才可操作。未能正确估量自己的能力,发生触电等有损人身安全的事故,均与本项目开发者无关。也提醒大家,接线过程中不要接220V,一定要断"
  },
  {
    "path": "Doc/重量统计.md",
    "chars": 370,
    "preview": "高频焊台总共1350g\n\n#### 外壳 228g\n#### pcba(不含线) 75.9g\n\n#### 整体主机 537.1g\n\n#### 风枪手柄 220g\n#### 风枪架 46.4g\n\n#### 加热板: \n* 上板 242g \n*"
  },
  {
    "path": "Images/.gitignore",
    "chars": 22,
    "preview": "Doc/*.pdf\nlock_screen/"
  },
  {
    "path": "Images/面板图标元素/snailHeater字样.dxf",
    "chars": 113492,
    "preview": "0\nSECTION\n2\nHEADER\n9\n$INSUNITS\n70\n4\n9\n$ACADVER\n1\nAC1014\n9\n$HANDSEED\n5\nFFFF\n0\nENDSEC\n0\nSECTION\n2\nTABLES\n0\nTABLE\n2\nVPORT\n5"
  },
  {
    "path": "LICENSE",
    "chars": 35149,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
  },
  {
    "path": "README.md",
    "chars": 3734,
    "preview": "# SnailHeater简介\n\n#### _项目开源的目的,做一款适合创客的开源焊台,让老外也能用上中国人开源的焊台!_\n\n多功能焊台,简称 __\"蜗牛台\"__ 。平板加热台、风枪、烙铁、可调电源多控。本项目内有220V高压,务必小心,后"
  },
  {
    "path": "Software/firmware_demo/.gitignore",
    "chars": 13,
    "preview": ".pio\n.vscode\n"
  },
  {
    "path": "Software/firmware_demo/include/README",
    "chars": 1386,
    "preview": "\nThis directory is intended for project header files.\n\nA header file is a file containing C declarations and macro defin"
  },
  {
    "path": "Software/firmware_demo/lib/ESP32Time/ESP32Time.cpp",
    "chars": 6981,
    "preview": "/*\n   MIT License\n\n  Copyright (c) 2021 Felix Biego\n\n  Permission is hereby granted, free of charge, to any person obtai"
  },
  {
    "path": "Software/firmware_demo/lib/ESP32Time/ESP32Time.h",
    "chars": 1902,
    "preview": "/*\n   MIT License\n\n  Copyright (c) 2021 Felix Biego\n\n  Permission is hereby granted, free of charge, to any person obtai"
  },
  {
    "path": "Software/firmware_demo/lib/ESP32Time/LICENSE",
    "chars": 1068,
    "preview": "MIT License\n\nCopyright (c) 2021 Felix Biego\n\nPermission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "Software/firmware_demo/lib/ESP32Time/README.md",
    "chars": 1545,
    "preview": "# ESP32Time\nAn Arduino library for setting and retrieving internal RTC time on ESP32 boards\n\n[![arduino-library-badge](h"
  },
  {
    "path": "Software/firmware_demo/lib/ESP32Time/examples/esp32_time/esp32_time.ino",
    "chars": 3203,
    "preview": "/*\n   MIT License\n\n  Copyright (c) 2021 Felix Biego\n\n  Permission is hereby granted, free of charge, to any person obtai"
  },
  {
    "path": "Software/firmware_demo/lib/ESP32Time/keywords.txt",
    "chars": 385,
    "preview": "ESP32Time\t\tKEYWORD1\n\nsetTime\t\t\tKEYWORD2\ngetTime\t\t\tKEYWORD2\ngetTimeStruct\tKEYWORD2\ngetDateTime\t\tKEYWORD2\ngetTimeDate\t\tKEY"
  },
  {
    "path": "Software/firmware_demo/lib/ESP32Time/library.json",
    "chars": 492,
    "preview": "{\n  \"name\": \"ESP32Time\",\n  \"version\": \"1.0.3\",\n  \"keywords\": \"Arduino, ESP32, Time, Internal RTC\",\n  \"description\": \"An "
  },
  {
    "path": "Software/firmware_demo/lib/ESP32Time/library.properties",
    "chars": 287,
    "preview": "name=ESP32Time\nversion=1.0.3\nauthor=fbiego\nmaintainer=fbiego\nsentence=Set and retrieve internal RTC time on ESP32 boards"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/.gitignore",
    "chars": 41,
    "preview": "*.gch\n*~\n/.vscode\n/docs/html\n/docs/latex\n"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/LICENSE",
    "chars": 1074,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2013 FastLED\n\nPermission is hereby granted, free of charge, to any person obtaining"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/PORTING.md",
    "chars": 4137,
    "preview": "New platform porting guide\n==========================\n\n# Fast porting for a new board on existing hardware\n\nSometimes \"p"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/README.md",
    "chars": 6318,
    "preview": "[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/FastLED/public)\n[![arduino-library-badge](https:"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/ci/ci-compile",
    "chars": 1248,
    "preview": "#!/bin/bash\n#\n# compile FastLED examples with platformio for various boards. This script\n# is usually run by the CI, but"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/ci/ci-flags.py",
    "chars": 54,
    "preview": "Import(\"env\")\n\nenv.Append(CXXFLAGS=[\"-Wno-register\"])\n"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/code_of_conduct.md",
    "chars": 5493,
    "preview": "\n# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make particip"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/component.mk",
    "chars": 104,
    "preview": "COMPONENT_ADD_INCLUDEDIRS := ./src src/platforms/esp/32\nCOMPONENT_SRCDIRS := ./src src/platforms/esp/32\n"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/docs/Doxyfile",
    "chars": 110786,
    "preview": "# Doxyfile 1.8.18\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org)"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/docs/mainpage.dox",
    "chars": 171,
    "preview": "/**\n@brief Documentation file for FastLED\n@author dgarcia at fastled dot io\n@file\n*/\n/** @defgroup FastLED  Sources */\n/"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/AnalogOutput/AnalogOutput.ino",
    "chars": 1829,
    "preview": "#include <FastLED.h>\n\n// Example showing how to use FastLED color functions\n// even when you're NOT using a \"pixel-addre"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Blink/Blink.ino",
    "chars": 3667,
    "preview": "#include <FastLED.h>\n\n// How many leds in your strip?\n#define NUM_LEDS 1\n\n// For led chips like WS2812, which have a dat"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/ColorPalette/ColorPalette.ino",
    "chars": 6731,
    "preview": "#include <FastLED.h>\n\n#define LED_PIN     5\n#define NUM_LEDS    50\n#define BRIGHTNESS  64\n#define LED_TYPE    WS2811\n#de"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/ColorTemperature/ColorTemperature.ino",
    "chars": 3069,
    "preview": "#include <FastLED.h>\n\n#define LED_PIN     3\n\n// Information about the LED strip itself\n#define NUM_LEDS    60\n#define CH"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Cylon/Cylon.ino",
    "chars": 1462,
    "preview": "#include <FastLED.h>\n\n// How many leds in your strip?\n#define NUM_LEDS 64 \n\n// For led chips like Neopixels, which have "
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/DemoReel100/DemoReel100.ino",
    "chars": 3430,
    "preview": "#include <FastLED.h>\n\nFASTLED_USING_NAMESPACE\n\n// FastLED \"100-lines-of-code\" demo reel, showing just a few \n// of the k"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Fire2012/Fire2012.ino",
    "chars": 3359,
    "preview": "#include <FastLED.h>\n\n#define LED_PIN     5\n#define COLOR_ORDER GRB\n#define CHIPSET     WS2811\n#define NUM_LEDS    30\n\n#"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Fire2012WithPalette/Fire2012WithPalette.ino",
    "chars": 6227,
    "preview": "#include <FastLED.h>\n\n#define LED_PIN     5\n#define COLOR_ORDER GRB\n#define CHIPSET     WS2811\n#define NUM_LEDS    30\n\n#"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/FirstLight/FirstLight.ino",
    "chars": 4852,
    "preview": "// Use if you want to force the software SPI subsystem to be used for some reason (generally, you don't)\n// #define FAST"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Multiple/ArrayOfLedArrays/ArrayOfLedArrays.ino",
    "chars": 1326,
    "preview": "// ArrayOfLedArrays - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on\n// using"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Multiple/MirroringSample/MirroringSample.ino",
    "chars": 1453,
    "preview": "// MirroringSample - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on\n// using "
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Multiple/MultiArrays/MultiArrays.ino",
    "chars": 1698,
    "preview": "// MultiArrays - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on\n// using mult"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Multiple/MultipleStripsInOneArray/MultipleStripsInOneArray.ino",
    "chars": 1271,
    "preview": "// MultipleStripsInOneArray - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on\n"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Multiple/OctoWS2811Demo/OctoWS2811Demo.ino",
    "chars": 803,
    "preview": "#define USE_OCTOWS2811\n#include <OctoWS2811.h>\n#include <FastLED.h>\n\n#define NUM_LEDS_PER_STRIP 64\n#define NUM_STRIPS 8\n"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Multiple/ParallelOutputDemo/ParallelOutputDemo.ino",
    "chars": 1761,
    "preview": "#include <FastLED.h>\n\n#define NUM_LEDS_PER_STRIP 16\n// Note: this can be 12 if you're using a teensy 3 and don't mind so"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Noise/Noise.ino",
    "chars": 3270,
    "preview": "#include <FastLED.h>\n\n//\n// Mark's xy coordinate mapping code.  See the XYMatrix for more information on it.\n//\n\n// Para"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/NoisePlayground/NoisePlayground.ino",
    "chars": 2003,
    "preview": "#include <FastLED.h>\n\n// Params for width and height\nconst uint8_t kMatrixWidth = 16;\nconst uint8_t kMatrixHeight = 16;\n"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/NoisePlusPalette/NoisePlusPalette.ino",
    "chars": 9539,
    "preview": "#include <FastLED.h>\n\n#define LED_PIN     3\n#define BRIGHTNESS  96\n#define LED_TYPE    WS2811\n#define COLOR_ORDER GRB\n\n/"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Pacifica/Pacifica.ino",
    "chars": 5762,
    "preview": "//\n//  \"Pacifica\"\n//  Gentle, blue-green ocean waves.\n//  December 2019, Mark Kriegsman and Mary Corey March.\n//  For Da"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Pintest/Pintest.ino",
    "chars": 5146,
    "preview": "\n#include <FastLED.h>\n\nchar fullstrBuffer[64];\n\nconst char *getPort(void *portPtr) {\n// AVR port checks\n#ifdef PORTA\n\tif"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Ports/PJRCSpectrumAnalyzer/PJRCSpectrumAnalyzer.ino",
    "chars": 4275,
    "preview": "// LED Audio Spectrum Analyzer Display\n//\n// Creates an impressive LED light show to music input\n//   using Teensy 3.1 w"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/Pride2015/Pride2015.ino",
    "chars": 2054,
    "preview": "#include \"FastLED.h\"\n\n// Pride2015\n// Animated, ever-changing rainbows.\n// by Mark Kriegsman\n\n#if FASTLED_VERSION < 3001"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/RGBCalibrate/RGBCalibrate.ino",
    "chars": 4936,
    "preview": "#include \"FastLED.h\"\n\n\n/////////////////////////////////////////////////////////////////////////////////////////////////"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/RGBSetDemo/RGBSetDemo.ino",
    "chars": 475,
    "preview": "#include <FastLED.h>\n#define NUM_LEDS 40\n\nCRGBArray<NUM_LEDS> leds;\n\nvoid setup() { FastLED.addLeds<NEOPIXEL,2>(leds, NU"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/SmartMatrix/SmartMatrix.ino",
    "chars": 3885,
    "preview": "/* This example demos a rectangular LED matrix with moving noise. \n   It requires the SmartMatrix library in addition to"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/TwinkleFox/TwinkleFox.ino",
    "chars": 14010,
    "preview": "#include \"FastLED.h\"\n\n\n#define NUM_LEDS      100\n#define LED_TYPE   WS2811\n#define COLOR_ORDER   GRB\n#define DATA_PIN   "
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/examples/XYMatrix/XYMatrix.ino",
    "chars": 7039,
    "preview": "#include <FastLED.h>\n\n#define LED_PIN  3\n\n#define COLOR_ORDER GRB\n#define CHIPSET     WS2811\n\n#define BRIGHTNESS 64\n\n// "
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/extras/AppleII.s65",
    "chars": 690,
    "preview": "KBD\t\t=\t$C000\t;Read keydown\nKBDSTRB\t=\t$C010\t;Reset keybd\n\nSPKR\t=\t$C030\t;Toggle speaker\n\n; TTL digital output pins on\n; 16"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/extras/FastLED6502.s65",
    "chars": 12720,
    "preview": "/////////////////////////////////\n//\n//    FastLED6502\n//    by Mark Kriegsman\n//\n// Device driver and animation \n// lib"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/extras/RainbowDemo.s65",
    "chars": 1349,
    "preview": "; \"Rainbow with glitter\" demo\n; for \"FastLED6502\"\n;\n; Runs on an Apple ][, ][+, //e, or //gs\n;\n; Supports APA102, Adafru"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/keywords.txt",
    "chars": 8518,
    "preview": "#######################################\n# Syntax Coloring Map For FastLED\n#######################################\n\n#####"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/library.json",
    "chars": 1677,
    "preview": "{\n    \"name\": \"FastLED\",\n    \"description\": \"FastLED is a library for programming addressable rgb led strips (APA102/Dot"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/library.properties",
    "chars": 462,
    "preview": "name=FastLED\nversion=3.5.0\nauthor=Daniel Garcia\nmaintainer=Daniel Garcia <dgarcia@fastled.io>\nsentence=Multi-platform li"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/release_notes.md",
    "chars": 10280,
    "preview": "FastLED 3.5.0\n=============\nThis release incorporates dozens of valuable improvements from FastLED contributors, tested "
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/FastLED.cpp",
    "chars": 6541,
    "preview": "#define FASTLED_INTERNAL\n#include \"FastLED.h\"\n\n\n#if defined(__SAM3X8E__)\nvolatile uint32_t fuckit;\n#endif\n\nFASTLED_NAMES"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/FastLED.h",
    "chars": 31839,
    "preview": "#ifndef __INC_FASTSPI_LED2_H\n#define __INC_FASTSPI_LED2_H\n\n///@file FastLED.h\n/// central include file for FastLED, defi"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/bitswap.cpp",
    "chars": 971,
    "preview": "#define FASTLED_INTERNAL\n#include \"FastLED.h\"\n\n/// Simplified form of bits rotating function.  Based on code found here "
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/bitswap.h",
    "chars": 6846,
    "preview": "#ifndef __INC_BITSWAP_H\n#define __INC_BITSWAP_H\n\n#include \"FastLED.h\"\n\nFASTLED_NAMESPACE_BEGIN\n\n///@file bitswap.h\n///Fu"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/chipsets.h",
    "chars": 23892,
    "preview": "#ifndef __INC_CHIPSETS_H\n#define __INC_CHIPSETS_H\n\n#include \"FastLED.h\"\n#include \"pixeltypes.h\"\n\n///@file chipsets.h\n///"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/color.h",
    "chars": 2660,
    "preview": "#ifndef __INC_COLOR_H\n#define __INC_COLOR_H\n\n#include \"FastLED.h\"\n\nFASTLED_NAMESPACE_BEGIN\n\n///@file color.h\n/// contain"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/colorpalettes.cpp",
    "chars": 4248,
    "preview": "#ifndef __INC_COLORPALETTES_H\n#define __INC_COLORPALETTES_H\n#define FASTLED_INTERNAL\n#include \"FastLED.h\"\n#include \"colo"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/colorpalettes.h",
    "chars": 1925,
    "preview": "#ifndef __INC_COLORPALETTES_H\n#define __INC_COLORPALETTES_H\n\n#include \"FastLED.h\"\n#include \"colorutils.h\"\n\n///@file colo"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/colorutils.cpp",
    "chars": 35522,
    "preview": "#define FASTLED_INTERNAL\n#define __PROG_TYPES_COMPAT__\n\n#include <stdint.h>\n#include <math.h>\n\n#include \"FastLED.h\"\n\nFAS"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/colorutils.h",
    "chars": 60762,
    "preview": "#ifndef __INC_COLORUTILS_H\n#define __INC_COLORUTILS_H\n\n///@file colorutils.h\n/// functions for color fill, paletters, bl"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/controller.h",
    "chars": 20667,
    "preview": "#ifndef __INC_CONTROLLER_H\n#define __INC_CONTROLLER_H\n\n///@file controller.h\n/// base definitions used by led controller"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/cpp_compat.h",
    "chars": 257,
    "preview": "#ifndef __INC_CPP_COMPAT_H\n#define __INC_CPP_COMPAT_H\n\n#include \"FastLED.h\"\n\n#if __cplusplus <= 199711L\n\n#define static_"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/dmx.h",
    "chars": 1536,
    "preview": "#ifndef __INC_DMX_H\n#define __INC_DMX_H\n\n#include \"FastLED.h\"\n\n#ifdef DmxSimple_h\n#include <DmxSimple.h>\n#define HAS_DMX"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/fastled_config.h",
    "chars": 3682,
    "preview": "#ifndef __INC_FASTLED_CONFIG_H\n#define __INC_FASTLED_CONFIG_H\n\n#include \"FastLED.h\"\n\n///@file fastled_config.h\n/// conta"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/fastled_delay.h",
    "chars": 5027,
    "preview": "#ifndef __INC_FL_DELAY_H\n#define __INC_FL_DELAY_H\n\n#include \"FastLED.h\"\n\n///@file fastled_delay.h\n///Utility functions a"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/fastled_progmem.h",
    "chars": 2403,
    "preview": "#ifndef __INC_FL_PROGMEM_H\n#define __INC_FL_PROGMEM_H\n\n#include \"FastLED.h\"\n\n///@file fastled_progmem.h\n/// wrapper defi"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/fastpin.h",
    "chars": 10698,
    "preview": "#ifndef __INC_FASTPIN_H\n#define __INC_FASTPIN_H\n\n#include \"FastLED.h\"\n\n#include \"led_sysdefs.h\"\n#include <stddef.h>\n\n#pr"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/fastspi.h",
    "chars": 6583,
    "preview": "#ifndef __INC_FASTSPI_H\n#define __INC_FASTSPI_H\n\n#include \"FastLED.h\"\n\n#include \"controller.h\"\n#include \"lib8tion.h\"\n\n#i"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/fastspi_bitbang.h",
    "chars": 16932,
    "preview": "#ifndef __INC_FASTSPI_BITBANG_H\n#define __INC_FASTSPI_BITBANG_H\n\n#include \"FastLED.h\"\n\n#include \"fastled_delay.h\"\n\nFASTL"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/fastspi_dma.h",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/fastspi_nop.h",
    "chars": 2458,
    "preview": "#ifndef __INC_FASTSPI_NOP_H\n#define __INC_FASTSPI_NOP_H\n\n#if 0 // Guard against the arduino ide idiotically including ev"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/fastspi_ref.h",
    "chars": 3277,
    "preview": "#ifndef __INC_FASTSPI_ARM_SAM_H\n#define __INC_FASTSPI_ARM_SAM_H\n\n#if 0 // guard against the arduino ide idiotically incl"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/fastspi_types.h",
    "chars": 1492,
    "preview": "#ifndef __INC_FASTSPI_TYPES_H\n#define __INC_FASTSPI_TYPES_H\n\n#include \"FastLED.h\"\n\nFASTLED_NAMESPACE_BEGIN\n\n// Some help"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/hsv2rgb.cpp",
    "chars": 23374,
    "preview": "#define FASTLED_INTERNAL\n#include <stdint.h>\n\n#include \"FastLED.h\"\n\nFASTLED_NAMESPACE_BEGIN\n\n// Functions to convert HSV"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/hsv2rgb.h",
    "chars": 3652,
    "preview": "#ifndef __INC_HSV2RGB_H\n#define __INC_HSV2RGB_H\n\n#include \"FastLED.h\"\n\n#include \"pixeltypes.h\"\n\nFASTLED_NAMESPACE_BEGIN\n"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/led_sysdefs.h",
    "chars": 2688,
    "preview": "#ifndef __INC_LED_SYSDEFS_H\n#define __INC_LED_SYSDEFS_H\n\n#include \"FastLED.h\"\n\n#include \"fastled_config.h\"\n\n#if defined("
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/lib8tion/math8.h",
    "chars": 18039,
    "preview": "#ifndef __INC_LIB8TION_MATH_H\n#define __INC_LIB8TION_MATH_H\n\n#include \"scale8.h\"\n\n///@ingroup lib8tion\n\n///@defgroup Mat"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/lib8tion/random8.h",
    "chars": 2699,
    "preview": "#ifndef __INC_LIB8TION_RANDOM_H\n#define __INC_LIB8TION_RANDOM_H\n///@ingroup lib8tion\n\n///@defgroup Random Fast random nu"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/lib8tion/scale8.h",
    "chars": 22573,
    "preview": "#ifndef __INC_LIB8TION_SCALE_H\n#define __INC_LIB8TION_SCALE_H\n\n///@ingroup lib8tion\n\n///@defgroup Scaling Scaling functi"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/lib8tion/trig8.h",
    "chars": 6991,
    "preview": "#ifndef __INC_LIB8TION_TRIG_H\n#define __INC_LIB8TION_TRIG_H\n\n///@ingroup lib8tion\n\n///@defgroup Trig Fast trig functions"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/lib8tion.cpp",
    "chars": 6546,
    "preview": "#define FASTLED_INTERNAL\n#include <stdint.h>\n#include \"FastLED.h\"\n\nFASTLED_NAMESPACE_BEGIN\n\n#define RAND16_SEED  1337\nui"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/lib8tion.h",
    "chars": 37684,
    "preview": "#ifndef __INC_LIB8TION_H\n#define __INC_LIB8TION_H\n\n#include \"FastLED.h\"\n\n#ifndef __INC_LED_SYSDEFS_H\n#error WTH?  led_sy"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/noise.cpp",
    "chars": 24870,
    "preview": "#define FASTLED_INTERNAL\n#include \"FastLED.h\"\n#include <string.h>\n\nFASTLED_NAMESPACE_BEGIN\n\n#define P(x) FL_PGM_READ_BYT"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/noise.h",
    "chars": 4712,
    "preview": "#ifndef __INC_NOISE_H\n#define __INC_NOISE_H\n\n#include \"FastLED.h\"\n\nFASTLED_NAMESPACE_BEGIN\n\n///@file noise.h\n/// Noise f"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/pixelset.h",
    "chars": 16862,
    "preview": "#ifndef __INC_PIXELSET_H\n#define __INC_PIXELSET_H\n\n#include \"FastLED.h\"\n\n#ifndef abs\n#include <stdlib.h>\n#endif\n\n/////  "
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/pixeltypes.h",
    "chars": 24030,
    "preview": "#ifndef __INC_PIXELS_H\n#define __INC_PIXELS_H\n\n#include \"FastLED.h\"\n\n#include <stdint.h>\n#include \"lib8tion.h\"\n#include "
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/apollo3/clockless_apollo3.h",
    "chars": 6662,
    "preview": "#ifndef __INC_CLOCKLESS_APOLLO3_H\n#define __INC_CLOCKLESS_APOLLO3_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined(FASTLED_APOLLO"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/apollo3/fastled_apollo3.h",
    "chars": 162,
    "preview": "#ifndef __INC_FASTLED_APOLLO3_H\n#define __INC_FASTLED_APOLLO3_H\n\n#include \"fastpin_apollo3.h\"\n#include \"fastspi_apollo3."
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/apollo3/fastpin_apollo3.h",
    "chars": 8035,
    "preview": "#ifndef __INC_FASTPIN_APOLLO3_H\n#define __INC_FASTPIN_APOLLO3_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined(FASTLED_FORCE_SOFT"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/apollo3/fastspi_apollo3.h",
    "chars": 3740,
    "preview": "#ifndef __INC_FASTSPI_APOLLO3_H\n#define __INC_FASTSPI_APOLLO3_H\n\n// This is the implementation of fastspi for the Apollo"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/apollo3/led_sysdefs_apollo3.h",
    "chars": 960,
    "preview": "#ifndef __INC_LED_SYSDEFS_APOLLO3_H\n#define __INC_LED_SYSDEFS_APOLLO3_H\n\n#define FASTLED_APOLLO3\n\n#ifndef INTERRUPT_THRE"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/common/m0clockless.h",
    "chars": 14515,
    "preview": "#ifndef __INC_M0_CLOCKLESS_H\n#define __INC_M0_CLOCKLESS_H\n\nstruct M0ClocklessData {\n  uint8_t d[3];\n  uint8_t e[3];\n  ui"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/d21/clockless_arm_d21.h",
    "chars": 2013,
    "preview": "#ifndef __INC_CLOCKLESS_ARM_D21\n#define __INC_CLOCKLESS_ARM_D21\n\n#include \"../common/m0clockless.h\"\nFASTLED_NAMESPACE_BE"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/d21/fastled_arm_d21.h",
    "chars": 133,
    "preview": "#ifndef __INC_FASTLED_ARM_D21_H\n#define __INC_FASTLED_ARM_D21_H\n\n#include \"fastpin_arm_d21.h\"\n#include \"clockless_arm_d2"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/d21/fastpin_arm_d21.h",
    "chars": 11653,
    "preview": "#ifndef __INC_FASTPIN_ARM_SAM_H\n#define __INC_FASTPIN_ARM_SAM_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined(FASTLED_FORCE_SOFT"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/d21/led_sysdefs_arm_d21.h",
    "chars": 483,
    "preview": "#ifndef __INC_LED_SYSDEFS_ARM_D21_H\n#define __INC_LED_SYSDEFS_ARM_D21_H\n\n\n#define FASTLED_ARM\n#define FASTLED_ARM_M0_PLU"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/d51/README.txt",
    "chars": 231,
    "preview": "FastLED updates for adafruit FEATHER M4 and fixes to ITSBITSY M4 compiles\n  SAMD51\n\nTested on \n  - FEATHER M4 with DOTST"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/d51/clockless_arm_d51.h",
    "chars": 4289,
    "preview": "#ifndef __INC_CLOCKLESS_ARM_D51\n#define __INC_CLOCKLESS_ARM_D51\n\nFASTLED_NAMESPACE_BEGIN\n\n// Definition for a single cha"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/d51/fastled_arm_d51.h",
    "chars": 173,
    "preview": "#ifndef __INC_FASTLED_ARM_D51_H\n#define __INC_FASTLED_ARM_D51_H\n\n#include \"fastpin_arm_d51.h\"\n#include \"../../fastspi_ar"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/d51/fastpin_arm_d51.h",
    "chars": 7699,
    "preview": "#ifndef __INC_FASTPIN_ARM_D51_H\n#define __INC_FASTPIN_ARM_D51_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined(FASTLED_FORCE_SOFT"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/d51/led_sysdefs_arm_d51.h",
    "chars": 455,
    "preview": "#ifndef __INC_LED_SYSDEFS_ARM_D51_H\n#define __INC_LED_SYSDEFS_ARM_D51_H\n\n\n#define FASTLED_ARM\n\n#ifndef INTERRUPT_THRESHO"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/clockless_arm_k20.h",
    "chars": 3909,
    "preview": "#ifndef __INC_CLOCKLESS_ARM_K20_H\n#define __INC_CLOCKLESS_ARM_K20_H\n\nFASTLED_NAMESPACE_BEGIN\n\n// Definition for a single"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/clockless_block_arm_k20.h",
    "chars": 10552,
    "preview": "#ifndef __INC_BLOCK_CLOCKLESS_ARM_K20_H\n#define __INC_BLOCK_CLOCKLESS_ARM_K20_H\n\n// Definition for a single channel cloc"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/fastled_arm_k20.h",
    "chars": 326,
    "preview": "#ifndef __INC_FASTLED_ARM_K20_H\n#define __INC_FASTLED_ARM_K20_H\n\n// Include the k20 headers\n#include \"fastpin_arm_k20.h\""
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/fastpin_arm_k20.h",
    "chars": 6792,
    "preview": "#ifndef __FASTPIN_ARM_K20_H\n#define __FASTPIN_ARM_K20_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined(FASTLED_FORCE_SOFTWARE_PIN"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/fastspi_arm_k20.h",
    "chars": 16389,
    "preview": "#ifndef __INC_FASTSPI_ARM_H\n#define __INC_FASTSPI_ARM_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined(FASTLED_TEENSY3) && define"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/led_sysdefs_arm_k20.h",
    "chars": 1118,
    "preview": "#ifndef __INC_LED_SYSDEFS_ARM_K20_H\n#define __INC_LED_SYSDEFS_ARM_K20_H\n\n#define FASTLED_TEENSY3\n#define FASTLED_ARM\n\n#i"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/octows2811_controller.h",
    "chars": 1653,
    "preview": "#ifndef __INC_OCTOWS2811_CONTROLLER_H\n#define __INC_OCTOWS2811_CONTROLLER_H\n\n#ifdef USE_OCTOWS2811\n\n// #include \"OctoWS2"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/smartmatrix_t3.h",
    "chars": 1388,
    "preview": "#ifndef __INC_SMARTMATRIX_T3_H\n#define __INC_SMARTMATRIX_T3_H\n\n#ifdef SmartMatrix_h\n#include <SmartMatrix.h>\n\nFASTLED_NA"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k20/ws2812serial_controller.h",
    "chars": 1247,
    "preview": "#ifndef __INC_WS2812SERIAL_CONTROLLER_H\n#define __INC_WS2812SERIAL_CONTROLLER_H\n\n#ifdef USE_WS2812SERIAL\n\nFASTLED_NAMESP"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k66/clockless_arm_k66.h",
    "chars": 3905,
    "preview": "#ifndef __INC_CLOCKLESS_ARM_K66_H\n#define __INC_CLOCKLESS_ARM_K66_H\n\nFASTLED_NAMESPACE_BEGIN\n\n// Definition for a single"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k66/clockless_block_arm_k66.h",
    "chars": 11079,
    "preview": "#ifndef __INC_BLOCK_CLOCKLESS_ARM_K66_H\n#define __INC_BLOCK_CLOCKLESS_ARM_K66_H\n\n// Definition for a single channel cloc"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k66/fastled_arm_k66.h",
    "chars": 348,
    "preview": "#ifndef __INC_FASTLED_ARM_K66_H\n#define __INC_FASTLED_ARM_K66_H\n\n// Include the k66 headers\n#include \"fastpin_arm_k66.h\""
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k66/fastpin_arm_k66.h",
    "chars": 7472,
    "preview": "#ifndef __FASTPIN_ARM_K66_H\n#define __FASTPIN_ARM_K66_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined(FASTLED_FORCE_SOFTWARE_PIN"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k66/fastspi_arm_k66.h",
    "chars": 16406,
    "preview": "#ifndef __INC_FASTSPI_ARM_H\n#define __INC_FASTSPI_ARM_H\n\n//\n// copied from k20 code\n// changed SPI1 define to KINETISK_S"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/k66/led_sysdefs_arm_k66.h",
    "chars": 1119,
    "preview": "#ifndef __INC_LED_SYSDEFS_ARM_K66_H\n#define __INC_LED_SYSDEFS_ARM_K66_H\n\n#define FASTLED_TEENSY3\n#define FASTLED_ARM\n\n#i"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/kl26/clockless_arm_kl26.h",
    "chars": 2077,
    "preview": "#ifndef __INC_CLOCKLESS_ARM_KL26\n#define __INC_CLOCKLESS_ARM_KL26\n\n#include \"../common/m0clockless.h\"\nFASTLED_NAMESPACE_"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/kl26/fastled_arm_kl26.h",
    "chars": 238,
    "preview": "#ifndef __INC_FASTLED_ARM_KL26_H\n#define __INC_FASTLED_ARM_KL26_H\n\n// Include the k20 headers\n#include \"fastpin_arm_kl26"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/kl26/fastpin_arm_kl26.h",
    "chars": 4747,
    "preview": "#ifndef __FASTPIN_ARM_KL26_H\n#define __FASTPIN_ARM_KL26_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined(FASTLED_FORCE_SOFTWARE_P"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/kl26/fastspi_arm_kl26.h",
    "chars": 8683,
    "preview": "#ifndef __INC_FASTSPI_ARM_KL26_H\n#define __INC_FASTSPI_ARM_KL26_h\n\nFASTLED_NAMESPACE_BEGIN\n\ntemplate <int VAL> void getS"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/kl26/led_sysdefs_arm_kl26.h",
    "chars": 1182,
    "preview": "#ifndef __INC_LED_SYSDEFS_ARM_KL26_H\n#define __INC_LED_SYSDEFS_ARM_KL26_H\n\n#define FASTLED_TEENSYLC\n#define FASTLED_ARM\n"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/mxrt1062/block_clockless_arm_mxrt1062.h",
    "chars": 7446,
    "preview": "#ifndef __INC_BLOCK_CLOCKLESS_ARM_MXRT1062_H\n#define __INC_BLOCK_CLOCKLESS_ARM_MXRT1062_H\n\nFASTLED_NAMESPACE_BEGIN\n\n// D"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/mxrt1062/clockless_arm_mxrt1062.h",
    "chars": 3777,
    "preview": "#ifndef __INC_CLOCKLESS_ARM_MXRT1062_H\n#define __INC_CLOCKLESS_ARM_MXRT1062_H\n\nFASTLED_NAMESPACE_BEGIN\n\n// Definition fo"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/mxrt1062/fastled_arm_mxrt1062.h",
    "chars": 343,
    "preview": "#ifndef __INC_FASTLED_ARM_MXRT1062_H\n#define __INC_FASTLED_ARM_MXRT1062_H\n\n#include \"fastpin_arm_mxrt1062.h\"\n#include \"f"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/mxrt1062/fastpin_arm_mxrt1062.h",
    "chars": 4820,
    "preview": "#ifndef __FASTPIN_ARM_MXRT1062_H\n#define __FASTPIN_ARM_MXRT1062_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined(FASTLED_FORCE_SO"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/mxrt1062/fastspi_arm_mxrt1062.h",
    "chars": 4482,
    "preview": "#ifndef __INC_FASTSPI_ARM_MXRT1062_H\n#define __INC_FASTSPI_ARM_MXRT1062_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined (FASTLED"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/mxrt1062/led_sysdefs_arm_mxrt1062.h",
    "chars": 1009,
    "preview": "#ifndef __INC_LED_SYSDEFS_ARM_MXRT1062_H\n#define __INC_LED_SYSDEFS_ARM_MXRT1062_H\n\n#define FASTLED_TEENSY4\n#define FASTL"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/mxrt1062/octows2811_controller.h",
    "chars": 1543,
    "preview": "#ifndef __INC_OCTOWS2811_CONTROLLER_H\n#define __INC_OCTOWS2811_CONTROLLER_H\n\n#ifdef USE_OCTOWS2811\n\n// #include \"OctoWS2"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf51/clockless_arm_nrf51.h",
    "chars": 2797,
    "preview": "#ifndef __INC_CLOCKLESS_ARM_NRF51\n#define __INC_CLOCKLESS_ARM_NRF51\n\n#if defined(NRF51)\n\n#include <nrf51_bitfields.h>\n#d"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf51/fastled_arm_nrf51.h",
    "chars": 199,
    "preview": "#ifndef __INC_FASTLED_ARM_NRF51_H\n#define __INC_FASTLED_ARM_NRF51_H\n\n// Include the k20 headers\n#include \"fastpin_arm_nr"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf51/fastpin_arm_nrf51.h",
    "chars": 6650,
    "preview": "#ifndef __FASTPIN_ARM_NRF51_H\n#define __FASTPIN_ARM_NRF51_H\n\n#if defined(NRF51)\n/// Template definition for teensy 3.0 s"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf51/fastspi_arm_nrf51.h",
    "chars": 5378,
    "preview": "#ifndef __INC_FASTSPI_NRF_H\n#define __INC_FASTSPI_NRF_H\n\n#ifdef NRF51\n\n#ifndef FASTLED_FORCE_SOFTWARE_SPI\n#define FASTLE"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf51/led_sysdefs_arm_nrf51.h",
    "chars": 800,
    "preview": "#ifndef __LED_SYSDEFS_ARM_NRF51\n#define __LED_SYSDEFS_ARM_NRF51\n\n#ifndef NRF51\n#define NRF51\n#endif\n\n#define LED_TIMER N"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf52/arbiter_nrf52.h",
    "chars": 4213,
    "preview": "#ifndef __INC_ARBITER_NRF52\n#define __INC_ARBITER_NRF52\n\n#if defined(NRF52_SERIES)\n\n#include \"led_sysdefs_arm_nrf52.h\"\n\n"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf52/clockless_arm_nrf52.h",
    "chars": 18290,
    "preview": "#ifndef __INC_CLOCKLESS_ARM_NRF52\n#define __INC_CLOCKLESS_ARM_NRF52\n\n#if defined(NRF52_SERIES)\n\n\n//FASTLED_NAMESPACE_BEG"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf52/fastled_arm_nrf52.h",
    "chars": 272,
    "preview": "#ifndef __INC_FASTLED_ARM_NRF52_H\n#define __INC_FASTLED_ARM_NRF52_H\n\n#include \"led_sysdefs_arm_nrf52.h\"\n#include \"arbite"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf52/fastpin_arm_nrf52.h",
    "chars": 10044,
    "preview": "#ifndef __FASTPIN_ARM_NRF52_H\n#define __FASTPIN_ARM_NRF52_H\n\n\n/*\n//\n// Background:\n// ===========\n// the nRF52 has more "
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf52/fastpin_arm_nrf52_variants.h",
    "chars": 34766,
    "preview": "#ifndef __FASTPIN_ARM_NRF52_VARIANTS_H\n#define __FASTPIN_ARM_NRF52_VARIANTS_H\n\n// use this to determine if found variant"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf52/fastspi_arm_nrf52.h",
    "chars": 14383,
    "preview": "#ifndef __FASTSPI_ARM_NRF52_H\n#define __FASTSPI_ARM_NRF52_H\n\n\n#ifndef FASTLED_FORCE_SOFTWARE_SPI\n\n    #include <nrf_spim"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/nrf52/led_sysdefs_arm_nrf52.h",
    "chars": 1505,
    "preview": "#ifndef __LED_SYSDEFS_ARM_NRF52\n#define __LED_SYSDEFS_ARM_NRF52\n\n#define FASTLED_ARM\n\n#ifndef F_CPU\n    #define F_CPU 64"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/sam/clockless_arm_sam.h",
    "chars": 3801,
    "preview": "#ifndef __INC_CLOCKLESS_ARM_SAM_H\n#define __INC_CLOCKLESS_ARM_SAM_H\n\nFASTLED_NAMESPACE_BEGIN\n\n// Definition for a single"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/sam/clockless_block_arm_sam.h",
    "chars": 6733,
    "preview": " #ifndef __INC_BLOCK_CLOCKLESS_H\n#define __INC_BLOCK_CLOCKLESS_H\n\nFASTLED_NAMESPACE_BEGIN\n\n/////////////////////////////"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/sam/fastled_arm_sam.h",
    "chars": 226,
    "preview": "#ifndef __INC_FASTLED_ARM_SAM_H\n#define __INC_FASTLED_ARM_SAM_H\n\n// Include the sam headers\n#include \"fastpin_arm_sam.h\""
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/sam/fastpin_arm_sam.h",
    "chars": 8004,
    "preview": "#ifndef __INC_FASTPIN_ARM_SAM_H\n#define __INC_FASTPIN_ARM_SAM_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined(FASTLED_FORCE_SOFT"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/sam/fastspi_arm_sam.h",
    "chars": 5258,
    "preview": "#ifndef __INC_FASTSPI_ARM_SAM_H\n#define __INC_FASTSPI_ARM_SAM_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined(__SAM3X8E__)\n#defi"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/sam/led_sysdefs_arm_sam.h",
    "chars": 995,
    "preview": "#ifndef __INC_LED_SYSDEFS_ARM_SAM_H\n#define __INC_LED_SYSDEFS_ARM_SAM_H\n\n\n#define FASTLED_ARM\n\n// Setup DUE timer define"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/stm32/clockless_arm_stm32.h",
    "chars": 4444,
    "preview": "#ifndef __INC_CLOCKLESS_ARM_STM32_H\n#define __INC_CLOCKLESS_ARM_STM32_H\n\nFASTLED_NAMESPACE_BEGIN\n// Definition for a sin"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/stm32/cm3_regs.h",
    "chars": 4367,
    "preview": "#ifndef __CM3_REGS\n#define __CM3_REGS\n\n#include <stdint.h>\n\n#ifdef __cplusplus\n#define   __I     volatile             /*"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/stm32/fastled_arm_stm32.h",
    "chars": 198,
    "preview": "#ifndef __INC_FASTLED_ARM_SAM_H\n#define __INC_FASTLED_ARM_SAM_H\n\n// Include the sam headers\n#include \"fastpin_arm_stm32."
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/stm32/fastpin_arm_stm32.h",
    "chars": 6918,
    "preview": "#ifndef __FASTPIN_ARM_STM32_H\n#define __FASTPIN_ARM_STM32_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined(FASTLED_FORCE_SOFTWARE"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/arm/stm32/led_sysdefs_arm_stm32.h",
    "chars": 1646,
    "preview": "#ifndef __INC_LED_SYSDEFS_ARM_SAM_H\n#define __INC_LED_SYSDEFS_ARM_SAM_H\n\n#if defined(STM32F10X_MD) || defined(STM32F2XX)"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/avr/clockless_trinket.h",
    "chars": 23422,
    "preview": "#ifndef __INC_CLOCKLESS_TRINKET_H\n#define __INC_CLOCKLESS_TRINKET_H\n\n#include \"../../controller.h\"\n#include \"../../lib8t"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/avr/fastled_avr.h",
    "chars": 240,
    "preview": "#ifndef __INC_FASTLED_AVR_H\n#define __INC_FASTLED_AVR_H\n\n#include \"fastpin_avr.h\"\n#include \"fastspi_avr.h\"\n#include \"clo"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/avr/fastpin_avr.h",
    "chars": 17107,
    "preview": "#ifndef __INC_FASTPIN_AVR_H\n#define __INC_FASTPIN_AVR_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined(FASTLED_FORCE_SOFTWARE_PIN"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/avr/fastspi_avr.h",
    "chars": 24703,
    "preview": "#ifndef __INC_FASTSPI_AVR_H\n#define __INC_FASTSPI_AVR_H\n\nFASTLED_NAMESPACE_BEGIN\n\n//////////////////////////////////////"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/avr/led_sysdefs_avr.h",
    "chars": 2386,
    "preview": "#ifndef __INC_LED_SYSDEFS_AVR_H\n#define __INC_LED_SYSDEFS_AVR_H\n\n#define FASTLED_AVR\n\n#ifndef INTERRUPT_THRESHOLD\n#defin"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/esp/32/clockless_block_esp32.h",
    "chars": 5423,
    "preview": "#ifndef __INC_CLOCKLESS_BLOCK_ESP8266_H\n#define __INC_CLOCKLESS_BLOCK_ESP8266_H\n\n#define FASTLED_HAS_BLOCKLESS 1\n\n#defin"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/esp/32/clockless_i2s_esp32.h",
    "chars": 29428,
    "preview": "/*\n * I2S Driver\n *\n * Copyright (c) 2019 Yves Bazin\n * Copyright (c) 2019 Samuel Z. Guyer\n * Derived from lots of code "
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/esp/32/clockless_rmt_esp32.cpp",
    "chars": 19876,
    "preview": "\n#ifdef ESP32\n\n#ifndef FASTLED_ESP32_I2S\n\n#define FASTLED_INTERNAL\n#include \"FastLED.h\"\n\n// -- Forward reference\nclass E"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/esp/32/clockless_rmt_esp32.h",
    "chars": 16388,
    "preview": "/*\n * Integration into FastLED ClocklessController\n * Copyright (c) 2018,2019,2020 Samuel Z. Guyer\n * Copyright (c) 2017"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/esp/32/fastled_esp32.h",
    "chars": 257,
    "preview": "#pragma once\n\n#include \"fastpin_esp32.h\"\n\n#ifdef FASTLED_ALL_PINS_HARDWARE_SPI\n#include \"fastspi_esp32.h\"\n#endif\n\n#ifdef"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/esp/32/fastpin_esp32.h",
    "chars": 6666,
    "preview": "#pragma once\n\nFASTLED_NAMESPACE_BEGIN\n\ntemplate<uint8_t PIN, uint32_t MASK, bool VALIDPIN> class _ESPPIN {\npublic:\n  typ"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/esp/32/fastspi_esp32.h",
    "chars": 6310,
    "preview": "#pragma once\n#pragma message \"ESP32 Hardware SPI support added\"\n\nFASTLED_NAMESPACE_BEGIN\n\n/*\n * ESP32 Hardware SPI Drive"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/esp/32/led_sysdefs_esp32.h",
    "chars": 1062,
    "preview": "#pragma once\n#include \"esp32-hal.h\"\n#ifndef ESP32\n#define ESP32\n#endif\n\n#define FASTLED_ESP32\n\n#if CONFIG_IDF_TARGET_ARC"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h",
    "chars": 4843,
    "preview": "#ifndef __INC_CLOCKLESS_BLOCK_ESP8266_H\n#define __INC_CLOCKLESS_BLOCK_ESP8266_H\n\n#define FASTLED_HAS_BLOCKLESS 1\n\n#defin"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/esp/8266/clockless_esp8266.h",
    "chars": 4335,
    "preview": "#pragma once\n\nFASTLED_NAMESPACE_BEGIN\n\n#ifdef FASTLED_DEBUG_COUNT_FRAME_RETRIES\nextern uint32_t _frame_cnt;\nextern uint3"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/esp/8266/fastled_esp8266.h",
    "chars": 186,
    "preview": "#pragma once\n\n#include \"fastpin_esp8266.h\"\n\n#ifdef FASTLED_ALL_PINS_HARDWARE_SPI\n#include \"fastspi_esp8266.h\"\n#endif\n\n#i"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/esp/8266/fastpin_esp8266.h",
    "chars": 3799,
    "preview": "#pragma once\n\nFASTLED_NAMESPACE_BEGIN\n\nstruct FASTLED_ESP_IO {\n    volatile uint32_t _GPO;\n    volatile uint32_t _GPOS;\n"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/esp/8266/fastspi_esp8266.h",
    "chars": 5213,
    "preview": "#pragma once\n#pragma message \"ESP8266 Hardware SPI support added\"\n\n#include <SPI.h>\n\nFASTLED_NAMESPACE_BEGIN\n\n/*\n * ESP8"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/esp/8266/led_sysdefs_esp8266.h",
    "chars": 770,
    "preview": "#pragma once\n\n#ifndef ESP8266\n#define ESP8266\n#endif\n\n#define FASTLED_ESP8266\n\n// Use system millis timer\n#define FASTLE"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms/fastspi_ardunio_core.h",
    "chars": 3095,
    "preview": "#ifndef __INC_FASTSPI_ARDUNIO_CORE_H\n#define __INC_FASTSPI_ARDUNIO_CORE_H\n\nFASTLED_NAMESPACE_BEGIN\n\n#if defined(ARDUNIO_"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms.cpp",
    "chars": 1346,
    "preview": "#define FASTLED_INTERNAL\n\n\n// Interrupt handlers cannot be defined in the header.\n// They must be defined as C functions"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/platforms.h",
    "chars": 1525,
    "preview": "#ifndef __INC_PLATFORMS_H\n#define __INC_PLATFORMS_H\n\n#include \"FastLED.h\"\n\n#include \"fastled_config.h\"\n\n#if defined(NRF5"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/power_mgt.cpp",
    "chars": 5793,
    "preview": "#define FASTLED_INTERNAL\n#include \"FastLED.h\"\n#include \"power_mgt.h\"\n\nFASTLED_NAMESPACE_BEGIN\n\n//// POWER MANAGEMENT\n\n//"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/power_mgt.h",
    "chars": 3679,
    "preview": "#ifndef POWER_MGT_H\n#define POWER_MGT_H\n\n#include \"FastLED.h\"\n\n#include \"pixeltypes.h\"\n\nFASTLED_NAMESPACE_BEGIN\n\n///@def"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/src/wiring.cpp",
    "chars": 6844,
    "preview": "#define FASTLED_INTERNAL\n#include \"FastLED.h\"\n\nFASTLED_USING_NAMESPACE\n\n#if 0\n\n#if defined(FASTLED_AVR) && !defined(TEEN"
  },
  {
    "path": "Software/firmware_demo/lib/FastLED/workspace.code-workspace",
    "chars": 70,
    "preview": "{\n    \"folders\": [\n        {\n            \"path\": \".\"\n        }\n    ]\n}"
  },
  {
    "path": "Software/firmware_demo/lib/README",
    "chars": 1037,
    "preview": "\nThis directory is intended for project specific (private) libraries.\nPlatformIO will compile them to static libraries a"
  },
  {
    "path": "Software/firmware_demo/lib/TFT_eSPI/.gitattributes",
    "chars": 378,
    "preview": "# Auto detect text files and perform LF normalization\n* text=auto\n\n# Custom for Visual Studio\n*.cs     diff=csharp\n\n# St"
  },
  {
    "path": "Software/firmware_demo/lib/TFT_eSPI/.github/ISSUE_TEMPLATE/issue-template.md",
    "chars": 1445,
    "preview": "---\nname: Issue template\nabout: Guide to content\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\nTo minimise effort to resolve "
  }
]

// ... and 1690 more files (download for full content)

About this extraction

This page contains the full source code of the ClimbSnail/SnailHeater GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1890 files (103.0 MB), approximately 26.5M tokens, and a symbol index with 4711 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!