Add platform io sim (#31)

* Lower default SPI Clock

Lowered the default SPI clock as some displays might show glitches with the SPI frequency set above 40MHz.

* Added missing library components

Added the missing library symbols, footprints and 3D-models. These are all in a project-specific library called "omoteLib" (#19)

* Implement MQTT publish in HardwareRevX

Change-Id: I7b6955a662716f83dd8daf34128a353efa26bf80

* add batteryStatus info and allow access to it through the interface.

Change-Id: Ieb748b1478d532f52ffff9edc783de3cbcf9f303

* rename hardwareAbstractionInterface

Change-Id: I39a9bcd7fc4d92b271a40a869faae7870d6d88a1

* rename HardwareAbstractionInterface files

Change-Id: Ifb6a96c38da61cb80aabc6c929e392a2fc91cf29

* fixed a typo

* Re work directory structure to support new architecture

Still need to get the Sim building

* lvgl simulator working.

* put init code into HardwareSimulator Class

* ensure all targets build
remove unused assets.c
add new github actions that reflect new simulator

* clean up build defines by using platform.ini to override default lv_config.
remove unneeded include directory.

Change-Id: Id63baa80dae89977d239a539b5db9ff67266e1d6

* Fix ESP32 Windows build after battling escape characters.
Add esp32 Windows target to Actions.

* Fixed screen height

- corrected the SCREEN_HEIGHT
- small graphical changes in OmoteUI to make it look like in the main branch

---------

Co-authored-by: Max <Max-MKA@web.de>
Co-authored-by: Matthew Colvin <Matthew.Colvin@garmin.com>
Co-authored-by: Matthew Colvin <35540398+Mc067415@users.noreply.github.com>
This commit is contained in:
Matthew Colvin 2023-08-11 17:16:48 -05:00 committed by GitHub
parent f1ff9ed3d2
commit 7a9ee138db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
45 changed files with 65185 additions and 1947 deletions

View File

@ -4,7 +4,10 @@ on: [push]
jobs:
build:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ windows-latest, ubuntu-latest ]
steps:
- uses: actions/checkout@v3
@ -22,4 +25,4 @@ jobs:
- name: Build PlatformIO Project
working-directory: ./Platformio
run: pio run
run: pio run --environment esp32

View File

@ -0,0 +1,29 @@
name: Windows Simulator Build
on: [push]
jobs:
build-windows:
runs-on: windows-latest
steps:
- uses: msys2/setup-msys2@v2
with:
update: true
install: >-
mingw-w64-x86_64-gcc
mingw-w64-x86_64-SDL2
mingw-w64-x86_64-python
python3-pip
- uses: actions/checkout@v3
- name: Install Platform IOCore
run: pip install --upgrade platformio
- name: Put MSYS2_MinGW64 on PATH
# there is not yet an environment variable for this path from msys2/setup-msys2
run: echo "${{ runner.temp }}/msys64/mingw64/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Build PlatformIO Project 64 bit sim
working-directory: ./Platformio
run: pio run --environment x64_sim

View File

@ -1,37 +1,28 @@
name: Simulator Build
name: Ubuntu Simulator Build
on: [push]
jobs:
build-x64:
runs-on: windows-latest
build-ubuntu:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
- uses: actions/cache@v3
with:
msbuild-architecture: x64
# You can test your matrix by printing the current dotnet version
- name: Build
working-directory: ./LVGL Simulator
run: MSBuild.exe ./LVGL.Simulator.sln -target:Build /p:Platform="x64"
build-x86:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
path: |
~/.cache/pip
~/.platformio/.cache
key: ${{ runner.os }}-pio
- uses: actions/setup-python@v4
with:
msbuild-architecture: x86
python-version: "3.9"
- name: Install PlatformIO Core
run: pip install --upgrade platformio
- name: Build
working-directory: ./LVGL Simulator
run: MSBuild.exe ./LVGL.Simulator.sln -target:Build /p:Platform="x86"
- name: Install SDL2
run : sudo apt-get update && sudo apt-get install -y libsdl2-dev
- name: Build PlatformIO Project 64 bit sim
working-directory: ./Platformio
run: pio run --environment x64_sim

View File

@ -1,30 +1,29 @@
#pragma once
#include "HardwareAbstractionInterface.h"
#include <string>
#include "HardwareInterface.h"
#include <iostream>
#include <string>
class HardwareSimulator :
public HardwareAbstractionInterface
{
public:
class HardwareSimulator : public HardwareInterface {
public:
HardwareSimulator() = default;
HardwareSimulator() = default;
virtual void debugPrint(std::string message) override {
std::cout << message;
}
virtual void debugPrint(std::string message) override {
std::cout << message;
}
virtual void sendIR() override {}
virtual void sendIR() override {
virtual void MQTTPublish(const char *topic, const char *payload) override{
}
};
virtual void MQTTPublish(const char* topic, const char* payload) override {
};
virtual void init() override {
lv_init();
}
virtual void init() override { lv_init(); }
virtual batteryStatus getBatteryPercentage() {
batteryStatus fakeStatus;
fakeStatus.isCharging = false;
fakeStatus.percentage = 100;
fakeStatus.voltage = 4200;
return fakeStatus;
}
};

View File

@ -44,7 +44,7 @@
<Import Project="LVGL.Portable.vcxitems" />
<Import Project="LVGL.Drivers.vcxitems" />
<ItemGroup>
<ClInclude Include="..\..\Platformio\include\OmoteUI\HardwareAbstractionInterface.h" />
<ClInclude Include="..\..\Platformio\include\OmoteUI\HardwareInterface.h" />
<ClInclude Include="..\..\Platformio\include\OmoteUI\Images.hpp" />
<ClInclude Include="..\..\Platformio\include\OmoteUI\OmoteUI.hpp" />
<ClInclude Include="HardwareSimulator.hpp" />
@ -62,7 +62,6 @@
<ClInclude Include="resource.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Platformio\src\HardwareAbstractionInterface.cpp" />
<ClCompile Include="..\..\Platformio\src\OmoteUI.cpp" />
<ClCompile Include="HardwareSimulator.cpp" />
<ClCompile Include="LVGL.Simulator.cpp">

View File

@ -6,9 +6,6 @@
<ClInclude Include="lv_conf.h" />
<ClInclude Include="lv_drv_conf.h" />
<ClInclude Include="HardwareSimulator.hpp" />
<ClInclude Include="..\..\Platformio\include\OmoteUI\HardwareAbstractionInterface.h">
<Filter>OmoteUI</Filter>
</ClInclude>
<ClInclude Include="..\..\Platformio\include\OmoteUI\OmoteUI.hpp">
<Filter>OmoteUI</Filter>
</ClInclude>
@ -16,6 +13,9 @@
<ClInclude Include="..\..\Platformio\include\OmoteUI\Images.hpp">
<Filter>OmoteUI</Filter>
</ClInclude>
<ClInclude Include="..\..\Platformio\include\OmoteUI\HardwareInterface.h">
<Filter>OmoteUI</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Manifest Include="LVGL.Simulator.manifest" />
@ -27,9 +27,6 @@
<ItemGroup>
<ClCompile Include="LVGL.Simulator.cpp" />
<ClCompile Include="HardwareSimulator.cpp" />
<ClCompile Include="..\..\Platformio\src\HardwareAbstractionInterface.cpp">
<Filter>OmoteUI</Filter>
</ClCompile>
<ClCompile Include="..\..\Platformio\src\OmoteUI.cpp">
<Filter>OmoteUI</Filter>
</ClCompile>

View File

@ -379,7 +379,7 @@
(stroke (width 0) (type solid)) (fill solid) (layer "F.SilkS") (tstamp 51db3da6-9e43-47ce-9571-e63cf05ae317))
)
(footprint "mkern:LED_5mm_Side_Mount" locked (layer "F.Cu")
(footprint "omoteLib:LED_5mm_Side_Mount" locked (layer "F.Cu")
(tstamp 028982f1-ec49-4f15-a3a1-367832d00d71)
(at 59.676677 102 90)
(descr "5mm LED for horizontal soldering to the board edge")
@ -466,7 +466,7 @@
(net 48 "GND") (pinfunction "K") (pintype "passive") (tstamp 71289672-541a-40f3-bb92-b36055f6b1d6))
(pad "2" smd rect locked (at -1.275 3.5 90) (size 1.5 5) (layers "F.Cu" "F.Paste" "F.Mask")
(net 14 "Net-(D2-A)") (pinfunction "A") (pintype "passive") (tstamp ffb8b095-3661-40af-83bd-a02a8d8ca89c))
(model "${KICAD_USER_3DMODEL_DIR}/Side Mount LED v1.step"
(model "${KIPRJMOD}/project_libraries/3D-models/Side Mount LED v1.step"
(offset (xyz 0 0 0.25))
(scale (xyz 1 1 1))
(rotate (xyz 90 0 0))
@ -648,7 +648,7 @@
)
)
(footprint "mkern:JST_PH_B2B-PH-SM4-TB_1x02-1MP_P2.00mm_Vertical" (layer "F.Cu")
(footprint "omoteLib:JST_PH_B2B-PH-SM4-TB_1x02-1MP_P2.00mm_Vertical" (layer "F.Cu")
(tstamp 06c0ec99-fe4f-4c5e-9492-8f7abb1bea3e)
(at 224.9 113.5 90)
(descr "JST PH series connector, B2B-PH-SM4-TB (http://www.jst-mfg.com/product/pdf/eng/ePH.pdf), generated with kicad-footprint-generator")
@ -729,7 +729,7 @@
(net 48 "GND") (pinfunction "Pin_2") (pintype "passive") (tstamp a8674511-9189-4417-9af0-7e68e5f383e2))
(pad "MP" smd roundrect (at -3.4 -1.75 90) (size 1.6 3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.15625) (tstamp 7ec99062-2840-4ac6-8a0d-545eb56296d1))
(pad "MP" smd roundrect (at 3.4 -1.75 90) (size 1.6 3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.15625) (tstamp 2c9323e8-8263-4b88-b05b-7ff99f5bc2b5))
(model "${KICAD_USER_3DMODEL_DIR}/B2B-PH-SM4-TB.STEP"
(model "${KIPRJMOD}/project_libraries/3D-models/B2B-PH-SM4-TB.STEP"
(offset (xyz -4 3.25 0))
(scale (xyz 1 1 1))
(rotate (xyz -90 0 0))
@ -1370,7 +1370,7 @@
)
)
(footprint "mkern:QFN-48-1EP_7x7mm_P0.5mm_EP5.3x5.3mm_ThermalVias_MR" (layer "F.Cu")
(footprint "omoteLib:QFN-48-1EP_7x7mm_P0.5mm_EP5.3x5.3mm_ThermalVias_MR" (layer "F.Cu")
(tstamp 21878e1b-21e2-436e-9384-827df816db75)
(at 76.85 91.55)
(descr "QFN, 48 Pin (https://www.trinamic.com/fileadmin/assets/Products/ICs_Documents/TMC2041_datasheet.pdf#page=62), generated with kicad-footprint-generator ipc_noLead_generator.py")
@ -1615,7 +1615,7 @@
)
)
(footprint "mkern:XDCR_LIS3DHTR" (layer "F.Cu")
(footprint "omoteLib:XDCR_LIS3DHTR" (layer "F.Cu")
(tstamp 230440db-a366-4510-924d-f45962ca2d45)
(at 89.75 84.786992 90)
(property "MANUFACTURER" "STMicroelectronics")
@ -1694,7 +1694,7 @@
(net 97 "unconnected-(U5-ADC2-Pad15)") (pinfunction "ADC2") (pintype "input+no_connect") (solder_paste_margin_ratio -0.05) (tstamp 0d3a3e5a-4358-4958-b320-6834c31fe10c))
(pad "16" smd rect (at -0.5 -1.3 180) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(net 98 "unconnected-(U5-ADC1-Pad16)") (pinfunction "ADC1") (pintype "input+no_connect") (solder_paste_margin_ratio -0.05) (tstamp 9aa4f2f5-5d32-456f-89d1-63571efbe5d2))
(model "${KICAD_USER_3DMODEL_DIR}/LIS3DHTR.step"
(model "${KIPRJMOD}/project_libraries/3D-models/LIS3DHTR.step"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz -90 0 0))
@ -4052,7 +4052,7 @@
(stroke (width 0) (type solid)) (fill solid) (layer "F.Mask") (tstamp 299dc0c1-5c29-4cd1-b7d9-0cce8367cfa3))
)
(footprint "mkern:TFT_2.83IN_240X320_50PIN" locked (layer "F.Cu")
(footprint "omoteLib:TFT_2.83IN_240X320_50PIN" locked (layer "F.Cu")
(tstamp 5a621486-0b9c-4ec0-862b-29bd1b417bb9)
(at 91.622852 102 90)
(property "Sheetfile" "Remote.kicad_sch")
@ -4766,12 +4766,12 @@
(net 48 "GND") (pinfunction "MP") (pintype "passive") (solder_mask_margin 0.1016) (tstamp 4eb426d9-e540-47c5-9b76-3e1d32abc52e))
(pad "MP" smd roundrect locked (at 14.35 13.09 270) (size 2.4 2.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.125)
(net 48 "GND") (pinfunction "MP") (pintype "passive") (solder_mask_margin 0.1016) (tstamp 2e81d339-fff0-4f74-96c2-d969d63a15e6))
(model "${KICAD_USER_3DMODEL_DIR}/541325062_colored.step"
(model "${KIPRJMOD}/project_libraries/3D-models/541325062_colored.step"
(offset (xyz 0 -15.5 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KICAD_USER_3DMODEL_DIR}/280QV10 v5.step"
(model "${KIPRJMOD}/project_libraries/3D-models/280QV10 v5.step"
(offset (xyz 0 -22.25 -6))
(scale (xyz 1 1 1))
(rotate (xyz 180 0 180))
@ -4932,7 +4932,7 @@
)
)
(footprint "mkern:Heimdall vertical" (layer "F.Cu")
(footprint "omoteLib:Heimdall vertical" (layer "F.Cu")
(tstamp 5d2b74c8-ea79-4f25-99fd-c78691bddaa1)
(at 55.4 116.3 90)
(descr "VISHAY Heimdall for TSSP77038")
@ -4989,7 +4989,7 @@
(net 87 "IR_VCC") (pinfunction "Vs") (pintype "power_in") (tstamp 122ac044-9956-47ad-90b3-cd90dd9d6e84))
(pad "4" smd rect (at 1.9 0.7 180) (size 2 0.8) (layers "F.Cu" "F.Paste" "F.Mask")
(net 48 "GND") (pinfunction "GND") (pintype "power_in") (tstamp a399ed69-ca57-4198-ac99-c2971749e3d2))
(model "${KICAD_USER_3DMODEL_DIR}/82672Heimdall.stp"
(model "${KIPRJMOD}/project_libraries/3D-models/82672Heimdall.stp"
(offset (xyz 0 -1.2 1.6))
(scale (xyz 1 1 1))
(rotate (xyz -90 0 -180))
@ -8289,7 +8289,7 @@
)
)
(footprint "mkern:RFANT5220110A2T" (layer "F.Cu")
(footprint "omoteLib:RFANT5220110A2T" (layer "F.Cu")
(tstamp cdd38a2c-3189-4b09-aa8d-b7b99e8e71b9)
(at 55.500146 85.711992)
(descr "Walsin RFANT5220110A2T SMD antenna 2400-2500Mhz, 2dBi, http://www.passivecomponent.com/wp-content/uploads/2013/12/ASC_RFANT5220110A2T_V03.pdf")
@ -8339,7 +8339,7 @@
(pad "" smd roundrect (at -2.7 0) (size 1 2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.208333) (tstamp cc86c1ac-e652-4e6f-8b3b-2ad7dcf806b0))
(pad "1" smd roundrect (at 2.7 0 180) (size 1 2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.208333)
(net 3 "Net-(AE1-A)") (pinfunction "A") (pintype "input") (tstamp 5f31508e-8dcd-4d96-b5f5-cf3f4a95c613))
(model "${KICAD_USER_3DMODEL_DIR}/Walsin RFANT5220110A2T v1.step"
(model "${KIPRJMOD}/project_libraries/3D-models/Walsin RFANT5220110A2T v1.step"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz -90 0 -90))
@ -8955,7 +8955,7 @@
)
)
(footprint "mkern:USB_C_Receptacle_HRO_TYPE-C-31-M-12" (layer "F.Cu")
(footprint "omoteLib:USB_C_Receptacle_HRO_TYPE-C-31-M-12" (layer "F.Cu")
(tstamp ed154c17-7f27-4787-a05a-0859bc96f71a)
(at 241 102 90)
(descr "USB Type-C receptacle for USB 2.0 and PD, http://www.krhro.com/uploads/soft/180320/1-1P320120243.pdf")

View File

@ -486,10 +486,10 @@
},
"libraries": {
"pinned_footprint_libs": [
"mkern"
"omoteLib"
],
"pinned_symbol_libs": [
"mkern"
"omoteLib"
]
},
"meta": {

View File

@ -2801,7 +2801,7 @@
(property "Value" "TSSP77038" (at -1.27 8.89 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "mkern:Heimdall vertical" (at -1.27 -11.43 0)
(property "Footprint" "omoteLib:Heimdall vertical" (at -1.27 -11.43 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://www.vishay.com/docs/82470/tssp770.pdf" (at 16.51 7.62 0)
@ -3023,14 +3023,14 @@
)
)
)
(symbol "mkern:Conn_01x50" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
(symbol "omoteLib:Conn_01x50" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
(property "Reference" "J" (at 0 63.5 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "Conn_01x50" (at 0 -66.04 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "mkern:TFT_2.83IN_240X320_50PIN" (at 1.27 -68.58 0)
(property "Footprint" "omoteLib:TFT_2.83IN_240X320_50PIN" (at 1.27 -68.58 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 0 12.7 0)
@ -3456,7 +3456,7 @@
)
)
)
(symbol "mkern:LIS3DHTR" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
(symbol "omoteLib:LIS3DHTR" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
(property "Reference" "U5" (at 0 19.05 0)
(effects (font (size 1.27 1.27)))
)
@ -3552,7 +3552,7 @@
)
)
)
(symbol "mkern:USBLC6-2P6" (in_bom yes) (on_board yes)
(symbol "omoteLib:USBLC6-2P6" (in_bom yes) (on_board yes)
(property "Reference" "U4" (at -7.62 8.89 0)
(effects (font (size 1.27 1.27)) (justify left))
)
@ -8755,7 +8755,7 @@
(property "Value" "TSSP77038" (at 256.54 193.04 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "mkern:Heimdall vertical" (at 256.54 213.36 0)
(property "Footprint" "omoteLib:Heimdall vertical" (at 256.54 213.36 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://www.vishay.com/docs/82470/tssp770.pdf" (at 274.32 194.31 0)
@ -8880,7 +8880,7 @@
)
)
(symbol (lib_id "mkern:LIS3DHTR") (at 360.68 49.53 0) (mirror y) (unit 1)
(symbol (lib_id "omoteLib:LIS3DHTR") (at 360.68 49.53 0) (mirror y) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 55d86592-c3da-4fa7-ba6d-9e58f1452184)
(property "Reference" "U5" (at 360.68 30.48 0)
@ -9677,7 +9677,7 @@
(property "Value" "USB_C_Receptacle_USB2.0" (at 35.56 30.48 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "mkern:USB_C_Receptacle_HRO_TYPE-C-31-M-12" (at 39.37 50.8 0)
(property "Footprint" "omoteLib:USB_C_Receptacle_HRO_TYPE-C-31-M-12" (at 39.37 50.8 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://www.usb.org/sites/default/files/documents/usb_type-c.zip" (at 39.37 50.8 0)
@ -9978,7 +9978,7 @@
(property "Value" "JST_PH_B2B-PH" (at 118.11 172.7199 0)
(effects (font (size 1.27 1.27)) (justify right))
)
(property "Footprint" "mkern:JST_PH_B2B-PH-SM4-TB_1x02-1MP_P2.00mm_Vertical" (at 116.84 170.18 0)
(property "Footprint" "omoteLib:JST_PH_B2B-PH-SM4-TB_1x02-1MP_P2.00mm_Vertical" (at 116.84 170.18 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 116.84 170.18 0)
@ -10207,7 +10207,7 @@
)
)
(symbol (lib_id "mkern:USBLC6-2P6") (at 78.74 46.99 0) (unit 1)
(symbol (lib_id "omoteLib:USBLC6-2P6") (at 78.74 46.99 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no)
(uuid 885c377e-7c82-4de5-841b-480084fa7f04)
(property "Reference" "U4" (at 71.12 38.1 0)
@ -10581,7 +10581,7 @@
(property "Value" "SFH4346" (at 207.01 219.5829 90)
(effects (font (size 1.27 1.27)) (justify right))
)
(property "Footprint" "mkern:LED_5mm_Side_Mount" (at 200.025 217.17 0)
(property "Footprint" "omoteLib:LED_5mm_Side_Mount" (at 200.025 217.17 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://cdn-reichelt.de/documents/datenblatt/A500/SFH4346.pdf" (at 204.47 218.44 0)
@ -10627,7 +10627,7 @@
)
)
(symbol (lib_id "mkern:Conn_01x50") (at 384.81 172.72 0) (unit 1)
(symbol (lib_id "omoteLib:Conn_01x50") (at 384.81 172.72 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no)
(uuid 91bb894d-766b-45a5-9f77-face96a8d77b)
(property "Reference" "J2" (at 378.46 105.41 0)
@ -10636,7 +10636,7 @@
(property "Value" "Conn_01x50" (at 378.46 107.95 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "mkern:TFT_2.83IN_240X320_50PIN" (at 386.08 241.3 0)
(property "Footprint" "omoteLib:TFT_2.83IN_240X320_50PIN" (at 386.08 241.3 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 384.81 160.02 0)
@ -10765,7 +10765,7 @@
(property "Value" "ESP32-PICO-D4" (at 240.7794 119.38 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "mkern:QFN-48-1EP_7x7mm_P0.5mm_EP5.3x5.3mm_ThermalVias_MR" (at 238.76 119.38 0)
(property "Footprint" "omoteLib:QFN-48-1EP_7x7mm_P0.5mm_EP5.3x5.3mm_ThermalVias_MR" (at 238.76 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://www.espressif.com/sites/default/files/documentation/esp32-pico-d4_datasheet_en.pdf" (at 245.11 101.6 0)
@ -10965,7 +10965,7 @@
(property "Value" "Antenna" (at 275.59 24.13 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "mkern:RFANT5220110A2T" (at 285.75 24.13 0)
(property "Footprint" "omoteLib:RFANT5220110A2T" (at 285.75 24.13 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 285.75 24.13 0)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,519 @@
ISO-10303-21;
HEADER;
/* Generated by software containing ST-Developer
* from STEP Tools, Inc. (www.steptools.com)
*/
FILE_DESCRIPTION(
/* description */ (''),
/* implementation_level */ '2;1');
FILE_NAME(
/* name */ 'Side Mount LED v1.step',
/* time_stamp */ '2023-01-06T17:22:44+01:00',
/* author */ (''),
/* organization */ (''),
/* preprocessor_version */ 'ST-DEVELOPER v19.2',
/* originating_system */ 'Autodesk Translation Framework v11.17.0.187',
/* authorisation */ '');
FILE_SCHEMA (('AUTOMOTIVE_DESIGN { 1 0 10303 214 3 1 1 }'));
ENDSEC;
DATA;
#10=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#25,#26,
#27,#28,#29,#30),#430);
#11=SHAPE_REPRESENTATION_RELATIONSHIP('SRR','None',#437,#12);
#12=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#13),#429);
#13=MANIFOLD_SOLID_BREP('K\X\F6rper1',#257);
#14=SPHERICAL_SURFACE('',#286,2.5);
#15=FACE_BOUND('',#58,.T.);
#16=FACE_BOUND('',#62,.T.);
#17=FACE_BOUND('',#63,.T.);
#18=CIRCLE('',#282,3.);
#19=CIRCLE('',#283,3.);
#20=CIRCLE('',#285,2.5);
#21=CIRCLE('',#287,2.5);
#22=CIRCLE('',#288,2.5);
#23=CYLINDRICAL_SURFACE('',#281,3.);
#24=CYLINDRICAL_SURFACE('',#289,2.5);
#25=STYLED_ITEM('',(#447),#252);
#26=STYLED_ITEM('',(#447),#253);
#27=STYLED_ITEM('',(#447),#254);
#28=STYLED_ITEM('',(#447),#255);
#29=STYLED_ITEM('',(#447),#256);
#30=STYLED_ITEM('',(#446),#13);
#31=FACE_OUTER_BOUND('',#46,.T.);
#32=FACE_OUTER_BOUND('',#47,.T.);
#33=FACE_OUTER_BOUND('',#48,.T.);
#34=FACE_OUTER_BOUND('',#49,.T.);
#35=FACE_OUTER_BOUND('',#50,.T.);
#36=FACE_OUTER_BOUND('',#51,.T.);
#37=FACE_OUTER_BOUND('',#52,.T.);
#38=FACE_OUTER_BOUND('',#53,.T.);
#39=FACE_OUTER_BOUND('',#54,.T.);
#40=FACE_OUTER_BOUND('',#55,.T.);
#41=FACE_OUTER_BOUND('',#56,.T.);
#42=FACE_OUTER_BOUND('',#57,.T.);
#43=FACE_OUTER_BOUND('',#59,.T.);
#44=FACE_OUTER_BOUND('',#60,.T.);
#45=FACE_OUTER_BOUND('',#61,.T.);
#46=EDGE_LOOP('',(#168,#169,#170,#171));
#47=EDGE_LOOP('',(#172,#173,#174,#175));
#48=EDGE_LOOP('',(#176,#177,#178,#179));
#49=EDGE_LOOP('',(#180,#181,#182,#183));
#50=EDGE_LOOP('',(#184,#185,#186,#187));
#51=EDGE_LOOP('',(#188,#189,#190,#191));
#52=EDGE_LOOP('',(#192,#193,#194,#195));
#53=EDGE_LOOP('',(#196,#197,#198,#199));
#54=EDGE_LOOP('',(#200,#201,#202,#203));
#55=EDGE_LOOP('',(#204,#205,#206,#207));
#56=EDGE_LOOP('',(#208,#209,#210,#211));
#57=EDGE_LOOP('',(#212));
#58=EDGE_LOOP('',(#213));
#59=EDGE_LOOP('',(#214,#215,#216));
#60=EDGE_LOOP('',(#217,#218,#219,#220));
#61=EDGE_LOOP('',(#221));
#62=EDGE_LOOP('',(#222,#223,#224,#225));
#63=EDGE_LOOP('',(#226,#227,#228,#229));
#64=LINE('',#363,#90);
#65=LINE('',#365,#91);
#66=LINE('',#367,#92);
#67=LINE('',#368,#93);
#68=LINE('',#371,#94);
#69=LINE('',#373,#95);
#70=LINE('',#374,#96);
#71=LINE('',#377,#97);
#72=LINE('',#379,#98);
#73=LINE('',#380,#99);
#74=LINE('',#382,#100);
#75=LINE('',#383,#101);
#76=LINE('',#388,#102);
#77=LINE('',#390,#103);
#78=LINE('',#392,#104);
#79=LINE('',#393,#105);
#80=LINE('',#396,#106);
#81=LINE('',#398,#107);
#82=LINE('',#399,#108);
#83=LINE('',#402,#109);
#84=LINE('',#404,#110);
#85=LINE('',#405,#111);
#86=LINE('',#407,#112);
#87=LINE('',#408,#113);
#88=LINE('',#414,#114);
#89=LINE('',#425,#115);
#90=VECTOR('',#295,10.);
#91=VECTOR('',#296,10.);
#92=VECTOR('',#297,10.);
#93=VECTOR('',#298,10.);
#94=VECTOR('',#301,10.);
#95=VECTOR('',#302,10.);
#96=VECTOR('',#303,10.);
#97=VECTOR('',#306,10.);
#98=VECTOR('',#307,10.);
#99=VECTOR('',#308,10.);
#100=VECTOR('',#311,10.);
#101=VECTOR('',#312,10.);
#102=VECTOR('',#317,10.);
#103=VECTOR('',#318,10.);
#104=VECTOR('',#319,10.);
#105=VECTOR('',#320,10.);
#106=VECTOR('',#323,10.);
#107=VECTOR('',#324,10.);
#108=VECTOR('',#325,10.);
#109=VECTOR('',#328,10.);
#110=VECTOR('',#329,10.);
#111=VECTOR('',#330,10.);
#112=VECTOR('',#333,10.);
#113=VECTOR('',#334,10.);
#114=VECTOR('',#341,2.5);
#115=VECTOR('',#356,2.5);
#116=VERTEX_POINT('',#361);
#117=VERTEX_POINT('',#362);
#118=VERTEX_POINT('',#364);
#119=VERTEX_POINT('',#366);
#120=VERTEX_POINT('',#370);
#121=VERTEX_POINT('',#372);
#122=VERTEX_POINT('',#376);
#123=VERTEX_POINT('',#378);
#124=VERTEX_POINT('',#386);
#125=VERTEX_POINT('',#387);
#126=VERTEX_POINT('',#389);
#127=VERTEX_POINT('',#391);
#128=VERTEX_POINT('',#395);
#129=VERTEX_POINT('',#397);
#130=VERTEX_POINT('',#401);
#131=VERTEX_POINT('',#403);
#132=VERTEX_POINT('',#411);
#133=VERTEX_POINT('',#413);
#134=VERTEX_POINT('',#417);
#135=VERTEX_POINT('',#420);
#136=VERTEX_POINT('',#422);
#137=EDGE_CURVE('',#116,#117,#64,.T.);
#138=EDGE_CURVE('',#116,#118,#65,.T.);
#139=EDGE_CURVE('',#119,#118,#66,.T.);
#140=EDGE_CURVE('',#117,#119,#67,.T.);
#141=EDGE_CURVE('',#117,#120,#68,.T.);
#142=EDGE_CURVE('',#121,#119,#69,.T.);
#143=EDGE_CURVE('',#120,#121,#70,.T.);
#144=EDGE_CURVE('',#120,#122,#71,.T.);
#145=EDGE_CURVE('',#123,#121,#72,.T.);
#146=EDGE_CURVE('',#122,#123,#73,.T.);
#147=EDGE_CURVE('',#122,#116,#74,.T.);
#148=EDGE_CURVE('',#118,#123,#75,.T.);
#149=EDGE_CURVE('',#124,#125,#76,.T.);
#150=EDGE_CURVE('',#124,#126,#77,.T.);
#151=EDGE_CURVE('',#127,#126,#78,.T.);
#152=EDGE_CURVE('',#125,#127,#79,.T.);
#153=EDGE_CURVE('',#125,#128,#80,.T.);
#154=EDGE_CURVE('',#129,#127,#81,.T.);
#155=EDGE_CURVE('',#128,#129,#82,.T.);
#156=EDGE_CURVE('',#128,#130,#83,.T.);
#157=EDGE_CURVE('',#131,#129,#84,.T.);
#158=EDGE_CURVE('',#130,#131,#85,.T.);
#159=EDGE_CURVE('',#130,#124,#86,.T.);
#160=EDGE_CURVE('',#126,#131,#87,.T.);
#161=EDGE_CURVE('',#132,#132,#18,.F.);
#162=EDGE_CURVE('',#132,#133,#88,.T.);
#163=EDGE_CURVE('',#133,#133,#19,.F.);
#164=EDGE_CURVE('',#134,#134,#20,.T.);
#165=EDGE_CURVE('',#135,#135,#21,.T.);
#166=EDGE_CURVE('',#136,#135,#22,.T.);
#167=EDGE_CURVE('',#135,#134,#89,.T.);
#168=ORIENTED_EDGE('',*,*,#137,.F.);
#169=ORIENTED_EDGE('',*,*,#138,.T.);
#170=ORIENTED_EDGE('',*,*,#139,.F.);
#171=ORIENTED_EDGE('',*,*,#140,.F.);
#172=ORIENTED_EDGE('',*,*,#141,.F.);
#173=ORIENTED_EDGE('',*,*,#140,.T.);
#174=ORIENTED_EDGE('',*,*,#142,.F.);
#175=ORIENTED_EDGE('',*,*,#143,.F.);
#176=ORIENTED_EDGE('',*,*,#144,.F.);
#177=ORIENTED_EDGE('',*,*,#143,.T.);
#178=ORIENTED_EDGE('',*,*,#145,.F.);
#179=ORIENTED_EDGE('',*,*,#146,.F.);
#180=ORIENTED_EDGE('',*,*,#147,.F.);
#181=ORIENTED_EDGE('',*,*,#146,.T.);
#182=ORIENTED_EDGE('',*,*,#148,.F.);
#183=ORIENTED_EDGE('',*,*,#138,.F.);
#184=ORIENTED_EDGE('',*,*,#148,.T.);
#185=ORIENTED_EDGE('',*,*,#145,.T.);
#186=ORIENTED_EDGE('',*,*,#142,.T.);
#187=ORIENTED_EDGE('',*,*,#139,.T.);
#188=ORIENTED_EDGE('',*,*,#149,.F.);
#189=ORIENTED_EDGE('',*,*,#150,.T.);
#190=ORIENTED_EDGE('',*,*,#151,.F.);
#191=ORIENTED_EDGE('',*,*,#152,.F.);
#192=ORIENTED_EDGE('',*,*,#153,.F.);
#193=ORIENTED_EDGE('',*,*,#152,.T.);
#194=ORIENTED_EDGE('',*,*,#154,.F.);
#195=ORIENTED_EDGE('',*,*,#155,.F.);
#196=ORIENTED_EDGE('',*,*,#156,.F.);
#197=ORIENTED_EDGE('',*,*,#155,.T.);
#198=ORIENTED_EDGE('',*,*,#157,.F.);
#199=ORIENTED_EDGE('',*,*,#158,.F.);
#200=ORIENTED_EDGE('',*,*,#159,.F.);
#201=ORIENTED_EDGE('',*,*,#158,.T.);
#202=ORIENTED_EDGE('',*,*,#160,.F.);
#203=ORIENTED_EDGE('',*,*,#150,.F.);
#204=ORIENTED_EDGE('',*,*,#160,.T.);
#205=ORIENTED_EDGE('',*,*,#157,.T.);
#206=ORIENTED_EDGE('',*,*,#154,.T.);
#207=ORIENTED_EDGE('',*,*,#151,.T.);
#208=ORIENTED_EDGE('',*,*,#161,.F.);
#209=ORIENTED_EDGE('',*,*,#162,.T.);
#210=ORIENTED_EDGE('',*,*,#163,.T.);
#211=ORIENTED_EDGE('',*,*,#162,.F.);
#212=ORIENTED_EDGE('',*,*,#161,.T.);
#213=ORIENTED_EDGE('',*,*,#164,.F.);
#214=ORIENTED_EDGE('',*,*,#165,.T.);
#215=ORIENTED_EDGE('',*,*,#166,.F.);
#216=ORIENTED_EDGE('',*,*,#166,.T.);
#217=ORIENTED_EDGE('',*,*,#165,.F.);
#218=ORIENTED_EDGE('',*,*,#167,.T.);
#219=ORIENTED_EDGE('',*,*,#164,.T.);
#220=ORIENTED_EDGE('',*,*,#167,.F.);
#221=ORIENTED_EDGE('',*,*,#163,.F.);
#222=ORIENTED_EDGE('',*,*,#137,.T.);
#223=ORIENTED_EDGE('',*,*,#141,.T.);
#224=ORIENTED_EDGE('',*,*,#144,.T.);
#225=ORIENTED_EDGE('',*,*,#147,.T.);
#226=ORIENTED_EDGE('',*,*,#149,.T.);
#227=ORIENTED_EDGE('',*,*,#153,.T.);
#228=ORIENTED_EDGE('',*,*,#156,.T.);
#229=ORIENTED_EDGE('',*,*,#159,.T.);
#230=PLANE('',#271);
#231=PLANE('',#272);
#232=PLANE('',#273);
#233=PLANE('',#274);
#234=PLANE('',#275);
#235=PLANE('',#276);
#236=PLANE('',#277);
#237=PLANE('',#278);
#238=PLANE('',#279);
#239=PLANE('',#280);
#240=PLANE('',#284);
#241=PLANE('',#290);
#242=ADVANCED_FACE('',(#31),#230,.T.);
#243=ADVANCED_FACE('',(#32),#231,.T.);
#244=ADVANCED_FACE('',(#33),#232,.T.);
#245=ADVANCED_FACE('',(#34),#233,.T.);
#246=ADVANCED_FACE('',(#35),#234,.T.);
#247=ADVANCED_FACE('',(#36),#235,.T.);
#248=ADVANCED_FACE('',(#37),#236,.T.);
#249=ADVANCED_FACE('',(#38),#237,.T.);
#250=ADVANCED_FACE('',(#39),#238,.T.);
#251=ADVANCED_FACE('',(#40),#239,.T.);
#252=ADVANCED_FACE('',(#41),#23,.T.);
#253=ADVANCED_FACE('',(#42,#15),#240,.T.);
#254=ADVANCED_FACE('',(#43),#14,.T.);
#255=ADVANCED_FACE('',(#44),#24,.T.);
#256=ADVANCED_FACE('',(#45,#16,#17),#241,.F.);
#257=CLOSED_SHELL('',(#242,#243,#244,#245,#246,#247,#248,#249,#250,#251,
#252,#253,#254,#255,#256));
#258=DERIVED_UNIT_ELEMENT(#260,1.);
#259=DERIVED_UNIT_ELEMENT(#432,-3.);
#260=(
MASS_UNIT()
NAMED_UNIT(*)
SI_UNIT(.KILO.,.GRAM.)
);
#261=DERIVED_UNIT((#258,#259));
#262=MEASURE_REPRESENTATION_ITEM('density measure',
POSITIVE_RATIO_MEASURE(7850.),#261);
#263=PROPERTY_DEFINITION_REPRESENTATION(#268,#265);
#264=PROPERTY_DEFINITION_REPRESENTATION(#269,#266);
#265=REPRESENTATION('material name',(#267),#429);
#266=REPRESENTATION('density',(#262),#429);
#267=DESCRIPTIVE_REPRESENTATION_ITEM('Stahl','Stahl');
#268=PROPERTY_DEFINITION('material property','material name',#439);
#269=PROPERTY_DEFINITION('material property','density of part',#439);
#270=AXIS2_PLACEMENT_3D('placement',#359,#291,#292);
#271=AXIS2_PLACEMENT_3D('',#360,#293,#294);
#272=AXIS2_PLACEMENT_3D('',#369,#299,#300);
#273=AXIS2_PLACEMENT_3D('',#375,#304,#305);
#274=AXIS2_PLACEMENT_3D('',#381,#309,#310);
#275=AXIS2_PLACEMENT_3D('',#384,#313,#314);
#276=AXIS2_PLACEMENT_3D('',#385,#315,#316);
#277=AXIS2_PLACEMENT_3D('',#394,#321,#322);
#278=AXIS2_PLACEMENT_3D('',#400,#326,#327);
#279=AXIS2_PLACEMENT_3D('',#406,#331,#332);
#280=AXIS2_PLACEMENT_3D('',#409,#335,#336);
#281=AXIS2_PLACEMENT_3D('',#410,#337,#338);
#282=AXIS2_PLACEMENT_3D('',#412,#339,#340);
#283=AXIS2_PLACEMENT_3D('',#415,#342,#343);
#284=AXIS2_PLACEMENT_3D('',#416,#344,#345);
#285=AXIS2_PLACEMENT_3D('',#418,#346,#347);
#286=AXIS2_PLACEMENT_3D('',#419,#348,#349);
#287=AXIS2_PLACEMENT_3D('',#421,#350,#351);
#288=AXIS2_PLACEMENT_3D('',#423,#352,#353);
#289=AXIS2_PLACEMENT_3D('',#424,#354,#355);
#290=AXIS2_PLACEMENT_3D('',#426,#357,#358);
#291=DIRECTION('axis',(0.,0.,1.));
#292=DIRECTION('refdir',(1.,0.,0.));
#293=DIRECTION('center_axis',(0.,1.,0.));
#294=DIRECTION('ref_axis',(1.,0.,0.));
#295=DIRECTION('',(-1.,0.,0.));
#296=DIRECTION('',(0.,0.,-1.));
#297=DIRECTION('',(1.,0.,0.));
#298=DIRECTION('',(0.,0.,-1.));
#299=DIRECTION('center_axis',(-1.,0.,0.));
#300=DIRECTION('ref_axis',(0.,1.,0.));
#301=DIRECTION('',(0.,-1.,0.));
#302=DIRECTION('',(0.,1.,0.));
#303=DIRECTION('',(0.,0.,-1.));
#304=DIRECTION('center_axis',(2.77555756156289E-16,-1.,0.));
#305=DIRECTION('ref_axis',(-1.,-2.77555756156289E-16,0.));
#306=DIRECTION('',(1.,2.77555756156289E-16,0.));
#307=DIRECTION('',(-1.,-2.77555756156289E-16,0.));
#308=DIRECTION('',(0.,0.,-1.));
#309=DIRECTION('center_axis',(1.,-5.55111512312578E-16,0.));
#310=DIRECTION('ref_axis',(-5.55111512312578E-16,-1.,0.));
#311=DIRECTION('',(5.55111512312578E-16,1.,0.));
#312=DIRECTION('',(-5.55111512312578E-16,-1.,0.));
#313=DIRECTION('center_axis',(0.,0.,-1.));
#314=DIRECTION('ref_axis',(-1.,0.,0.));
#315=DIRECTION('center_axis',(-6.93889390390723E-17,1.,0.));
#316=DIRECTION('ref_axis',(1.,6.93889390390723E-17,0.));
#317=DIRECTION('',(-1.,-6.93889390390723E-17,0.));
#318=DIRECTION('',(0.,0.,-1.));
#319=DIRECTION('',(1.,6.93889390390723E-17,0.));
#320=DIRECTION('',(0.,0.,-1.));
#321=DIRECTION('center_axis',(-1.,0.,0.));
#322=DIRECTION('ref_axis',(0.,1.,0.));
#323=DIRECTION('',(0.,-1.,0.));
#324=DIRECTION('',(0.,1.,0.));
#325=DIRECTION('',(0.,0.,-1.));
#326=DIRECTION('center_axis',(0.,-1.,0.));
#327=DIRECTION('ref_axis',(-1.,0.,0.));
#328=DIRECTION('',(1.,0.,0.));
#329=DIRECTION('',(-1.,0.,0.));
#330=DIRECTION('',(0.,0.,-1.));
#331=DIRECTION('center_axis',(1.,0.,0.));
#332=DIRECTION('ref_axis',(0.,-1.,0.));
#333=DIRECTION('',(0.,1.,0.));
#334=DIRECTION('',(0.,-1.,0.));
#335=DIRECTION('center_axis',(0.,0.,-1.));
#336=DIRECTION('ref_axis',(-1.,0.,0.));
#337=DIRECTION('center_axis',(0.,0.,1.));
#338=DIRECTION('ref_axis',(1.,0.,0.));
#339=DIRECTION('center_axis',(0.,0.,-1.));
#340=DIRECTION('ref_axis',(1.,0.,0.));
#341=DIRECTION('',(0.,0.,-1.));
#342=DIRECTION('center_axis',(0.,0.,-1.));
#343=DIRECTION('ref_axis',(1.,0.,0.));
#344=DIRECTION('center_axis',(0.,0.,1.));
#345=DIRECTION('ref_axis',(1.,0.,0.));
#346=DIRECTION('center_axis',(0.,0.,1.));
#347=DIRECTION('ref_axis',(1.,0.,0.));
#348=DIRECTION('center_axis',(6.12323399573677E-17,0.,1.));
#349=DIRECTION('ref_axis',(1.,0.,0.));
#350=DIRECTION('center_axis',(0.,0.,1.));
#351=DIRECTION('ref_axis',(1.,0.,0.));
#352=DIRECTION('center_axis',(1.22464679914735E-16,-1.,0.));
#353=DIRECTION('ref_axis',(-1.,-1.22464679914735E-16,0.));
#354=DIRECTION('center_axis',(0.,0.,1.));
#355=DIRECTION('ref_axis',(1.,0.,0.));
#356=DIRECTION('',(0.,0.,-1.));
#357=DIRECTION('center_axis',(0.,0.,1.));
#358=DIRECTION('ref_axis',(1.,0.,0.));
#359=CARTESIAN_POINT('',(0.,0.,0.));
#360=CARTESIAN_POINT('Origin',(1.02,0.25,0.));
#361=CARTESIAN_POINT('',(1.52,0.25,0.));
#362=CARTESIAN_POINT('',(1.02,0.25,0.));
#363=CARTESIAN_POINT('',(0.51,0.25,0.));
#364=CARTESIAN_POINT('',(1.52,0.25,-5.));
#365=CARTESIAN_POINT('',(1.52,0.25,0.));
#366=CARTESIAN_POINT('',(1.02,0.25,-5.));
#367=CARTESIAN_POINT('',(1.02,0.25,-5.));
#368=CARTESIAN_POINT('',(1.02,0.25,0.));
#369=CARTESIAN_POINT('Origin',(1.02,-0.25,0.));
#370=CARTESIAN_POINT('',(1.02,-0.25,0.));
#371=CARTESIAN_POINT('',(1.02,-0.125,0.));
#372=CARTESIAN_POINT('',(1.02,-0.25,-5.));
#373=CARTESIAN_POINT('',(1.02,-0.25,-5.));
#374=CARTESIAN_POINT('',(1.02,-0.25,0.));
#375=CARTESIAN_POINT('Origin',(1.52,-0.25,0.));
#376=CARTESIAN_POINT('',(1.52,-0.25,0.));
#377=CARTESIAN_POINT('',(0.76,-0.25,0.));
#378=CARTESIAN_POINT('',(1.52,-0.25,-5.));
#379=CARTESIAN_POINT('',(1.52,-0.25,-5.));
#380=CARTESIAN_POINT('',(1.52,-0.25,0.));
#381=CARTESIAN_POINT('Origin',(1.52,0.25,0.));
#382=CARTESIAN_POINT('',(1.52,0.125,0.));
#383=CARTESIAN_POINT('',(1.52,0.25,-5.));
#384=CARTESIAN_POINT('Origin',(1.27,2.08166817117217E-16,-5.));
#385=CARTESIAN_POINT('Origin',(-1.52,0.25,0.));
#386=CARTESIAN_POINT('',(-1.02,0.25,0.));
#387=CARTESIAN_POINT('',(-1.52,0.25,0.));
#388=CARTESIAN_POINT('',(-0.76,0.25,0.));
#389=CARTESIAN_POINT('',(-1.02,0.25,-5.));
#390=CARTESIAN_POINT('',(-1.02,0.25,0.));
#391=CARTESIAN_POINT('',(-1.52,0.25,-5.));
#392=CARTESIAN_POINT('',(-1.52,0.25,-5.));
#393=CARTESIAN_POINT('',(-1.52,0.25,0.));
#394=CARTESIAN_POINT('Origin',(-1.52,-0.25,0.));
#395=CARTESIAN_POINT('',(-1.52,-0.25,0.));
#396=CARTESIAN_POINT('',(-1.52,-0.125,0.));
#397=CARTESIAN_POINT('',(-1.52,-0.25,-5.));
#398=CARTESIAN_POINT('',(-1.52,-0.25,-5.));
#399=CARTESIAN_POINT('',(-1.52,-0.25,0.));
#400=CARTESIAN_POINT('Origin',(-1.02,-0.25,0.));
#401=CARTESIAN_POINT('',(-1.02,-0.25,0.));
#402=CARTESIAN_POINT('',(-0.51,-0.25,0.));
#403=CARTESIAN_POINT('',(-1.02,-0.25,-5.));
#404=CARTESIAN_POINT('',(-1.02,-0.25,-5.));
#405=CARTESIAN_POINT('',(-1.02,-0.25,0.));
#406=CARTESIAN_POINT('Origin',(-1.02,0.25,0.));
#407=CARTESIAN_POINT('',(-1.02,0.125,0.));
#408=CARTESIAN_POINT('',(-1.02,0.25,-5.));
#409=CARTESIAN_POINT('Origin',(-1.27,-2.42861286636753E-16,-5.));
#410=CARTESIAN_POINT('Origin',(0.,0.,0.));
#411=CARTESIAN_POINT('',(-3.,3.67394039744206E-16,1.));
#412=CARTESIAN_POINT('Origin',(0.,0.,1.));
#413=CARTESIAN_POINT('',(-3.,3.67394039744206E-16,0.));
#414=CARTESIAN_POINT('',(-3.,-3.67394039744206E-16,0.));
#415=CARTESIAN_POINT('Origin',(0.,0.,0.));
#416=CARTESIAN_POINT('Origin',(0.,0.,1.));
#417=CARTESIAN_POINT('',(-2.5,-3.06161699786838E-16,1.));
#418=CARTESIAN_POINT('Origin',(0.,0.,1.));
#419=CARTESIAN_POINT('Origin',(0.,0.,6.5));
#420=CARTESIAN_POINT('',(-2.5,-3.06161699786838E-16,6.5));
#421=CARTESIAN_POINT('Origin',(0.,0.,6.5));
#422=CARTESIAN_POINT('',(-1.53080849893419E-16,-1.87469972832732E-32,9.));
#423=CARTESIAN_POINT('Origin',(0.,0.,6.5));
#424=CARTESIAN_POINT('Origin',(0.,0.,0.));
#425=CARTESIAN_POINT('',(-2.5,-3.06161699786838E-16,0.));
#426=CARTESIAN_POINT('Origin',(0.,0.,0.));
#427=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#431,
'DISTANCE_ACCURACY_VALUE',
'Maximum model space distance between geometric entities at asserted c
onnectivities');
#428=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#431,
'DISTANCE_ACCURACY_VALUE',
'Maximum model space distance between geometric entities at asserted c
onnectivities');
#429=(
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#427))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#431,#433,#434))
REPRESENTATION_CONTEXT('','3D')
);
#430=(
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#428))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#431,#433,#434))
REPRESENTATION_CONTEXT('','3D')
);
#431=(
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT(.MILLI.,.METRE.)
);
#432=(
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($,.METRE.)
);
#433=(
NAMED_UNIT(*)
PLANE_ANGLE_UNIT()
SI_UNIT($,.RADIAN.)
);
#434=(
NAMED_UNIT(*)
SI_UNIT($,.STERADIAN.)
SOLID_ANGLE_UNIT()
);
#435=SHAPE_DEFINITION_REPRESENTATION(#436,#437);
#436=PRODUCT_DEFINITION_SHAPE('',$,#439);
#437=SHAPE_REPRESENTATION('',(#270),#429);
#438=PRODUCT_DEFINITION_CONTEXT('part definition',#443,'design');
#439=PRODUCT_DEFINITION('Side Mount LED','Side Mount LED v1',#440,#438);
#440=PRODUCT_DEFINITION_FORMATION('',$,#445);
#441=PRODUCT_RELATED_PRODUCT_CATEGORY('Side Mount LED v1',
'Side Mount LED v1',(#445));
#442=APPLICATION_PROTOCOL_DEFINITION('international standard',
'automotive_design',2009,#443);
#443=APPLICATION_CONTEXT(
'Core Data for Automotive Mechanical Design Process');
#444=PRODUCT_CONTEXT('part definition',#443,'mechanical');
#445=PRODUCT('Side Mount LED','Side Mount LED v1',$,(#444));
#446=PRESENTATION_STYLE_ASSIGNMENT((#448));
#447=PRESENTATION_STYLE_ASSIGNMENT((#449));
#448=SURFACE_STYLE_USAGE(.BOTH.,#450);
#449=SURFACE_STYLE_USAGE(.BOTH.,#451);
#450=SURFACE_SIDE_STYLE('',(#452));
#451=SURFACE_SIDE_STYLE('',(#453));
#452=SURFACE_STYLE_FILL_AREA(#454);
#453=SURFACE_STYLE_FILL_AREA(#455);
#454=FILL_AREA_STYLE('Stahl - satiniert',(#456));
#455=FILL_AREA_STYLE('Acryl (klar)',(#457));
#456=FILL_AREA_STYLE_COLOUR('Stahl - satiniert',#458);
#457=FILL_AREA_STYLE_COLOUR('Acryl (klar)',#459);
#458=COLOUR_RGB('Stahl - satiniert',0.627450980392157,0.627450980392157,
0.627450980392157);
#459=COLOUR_RGB('Acryl (klar)',0.964705882352941,0.964705882352941,0.952941176470588);
ENDSEC;
END-ISO-10303-21;

View File

@ -0,0 +1,512 @@
ISO-10303-21;
HEADER;
/* Generated by software containing ST-Developer
* from STEP Tools, Inc. (www.steptools.com)
*/
FILE_DESCRIPTION(
/* description */ (''),
/* implementation_level */ '2;1');
FILE_NAME(
/* name */ 'Walsin RFANT5220110A2T v1.step',
/* time_stamp */ '2023-01-20T22:36:29+01:00',
/* author */ (''),
/* organization */ (''),
/* preprocessor_version */ 'ST-DEVELOPER v19.2',
/* originating_system */ 'Autodesk Translation Framework v11.17.0.187',
/* authorisation */ '');
FILE_SCHEMA (('AUTOMOTIVE_DESIGN { 1 0 10303 214 3 1 1 }'));
ENDSEC;
DATA;
#10=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#232,#233,
#234,#235,#236,#237),#413);
#11=SHAPE_REPRESENTATION_RELATIONSHIP('SRR','None',#420,#12);
#12=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#13),#412);
#13=MANIFOLD_SOLID_BREP('K\X\F6rper1',#253);
#14=FACE_OUTER_BOUND('',#29,.T.);
#15=FACE_OUTER_BOUND('',#30,.T.);
#16=FACE_OUTER_BOUND('',#31,.T.);
#17=FACE_OUTER_BOUND('',#32,.T.);
#18=FACE_OUTER_BOUND('',#33,.T.);
#19=FACE_OUTER_BOUND('',#34,.T.);
#20=FACE_OUTER_BOUND('',#35,.T.);
#21=FACE_OUTER_BOUND('',#36,.T.);
#22=FACE_OUTER_BOUND('',#37,.T.);
#23=FACE_OUTER_BOUND('',#38,.T.);
#24=FACE_OUTER_BOUND('',#39,.T.);
#25=FACE_OUTER_BOUND('',#40,.T.);
#26=FACE_OUTER_BOUND('',#41,.T.);
#27=FACE_OUTER_BOUND('',#42,.T.);
#28=FACE_OUTER_BOUND('',#43,.T.);
#29=EDGE_LOOP('',(#155,#156,#157,#158));
#30=EDGE_LOOP('',(#159,#160,#161,#162));
#31=EDGE_LOOP('',(#163,#164,#165,#166));
#32=EDGE_LOOP('',(#167,#168,#169,#170));
#33=EDGE_LOOP('',(#171,#172,#173,#174,#175));
#34=EDGE_LOOP('',(#176,#177,#178,#179));
#35=EDGE_LOOP('',(#180,#181,#182,#183));
#36=EDGE_LOOP('',(#184,#185,#186,#187));
#37=EDGE_LOOP('',(#188,#189,#190,#191));
#38=EDGE_LOOP('',(#192,#193,#194,#195));
#39=EDGE_LOOP('',(#196,#197,#198,#199));
#40=EDGE_LOOP('',(#200,#201,#202,#203,#204));
#41=EDGE_LOOP('',(#205,#206,#207,#208));
#42=EDGE_LOOP('',(#209,#210,#211,#212));
#43=EDGE_LOOP('',(#213,#214,#215,#216));
#44=LINE('',#349,#75);
#45=LINE('',#351,#76);
#46=LINE('',#353,#77);
#47=LINE('',#354,#78);
#48=LINE('',#357,#79);
#49=LINE('',#359,#80);
#50=LINE('',#360,#81);
#51=LINE('',#363,#82);
#52=LINE('',#365,#83);
#53=LINE('',#366,#84);
#54=LINE('',#369,#85);
#55=LINE('',#371,#86);
#56=LINE('',#372,#87);
#57=LINE('',#375,#88);
#58=LINE('',#376,#89);
#59=LINE('',#379,#90);
#60=LINE('',#381,#91);
#61=LINE('',#382,#92);
#62=LINE('',#385,#93);
#63=LINE('',#387,#94);
#64=LINE('',#389,#95);
#65=LINE('',#390,#96);
#66=LINE('',#392,#97);
#67=LINE('',#393,#98);
#68=LINE('',#395,#99);
#69=LINE('',#397,#100);
#70=LINE('',#398,#101);
#71=LINE('',#401,#102);
#72=LINE('',#402,#103);
#73=LINE('',#405,#104);
#74=LINE('',#407,#105);
#75=VECTOR('',#286,10.);
#76=VECTOR('',#287,10.);
#77=VECTOR('',#288,10.);
#78=VECTOR('',#289,10.);
#79=VECTOR('',#292,10.);
#80=VECTOR('',#293,10.);
#81=VECTOR('',#294,10.);
#82=VECTOR('',#297,10.);
#83=VECTOR('',#298,10.);
#84=VECTOR('',#299,10.);
#85=VECTOR('',#302,10.);
#86=VECTOR('',#303,10.);
#87=VECTOR('',#304,10.);
#88=VECTOR('',#307,10.);
#89=VECTOR('',#308,10.);
#90=VECTOR('',#311,10.);
#91=VECTOR('',#312,10.);
#92=VECTOR('',#313,10.);
#93=VECTOR('',#316,10.);
#94=VECTOR('',#317,10.);
#95=VECTOR('',#318,10.);
#96=VECTOR('',#319,10.);
#97=VECTOR('',#322,10.);
#98=VECTOR('',#323,10.);
#99=VECTOR('',#326,10.);
#100=VECTOR('',#327,10.);
#101=VECTOR('',#328,10.);
#102=VECTOR('',#331,10.);
#103=VECTOR('',#332,10.);
#104=VECTOR('',#337,10.);
#105=VECTOR('',#340,10.);
#106=VERTEX_POINT('',#347);
#107=VERTEX_POINT('',#348);
#108=VERTEX_POINT('',#350);
#109=VERTEX_POINT('',#352);
#110=VERTEX_POINT('',#356);
#111=VERTEX_POINT('',#358);
#112=VERTEX_POINT('',#362);
#113=VERTEX_POINT('',#364);
#114=VERTEX_POINT('',#368);
#115=VERTEX_POINT('',#370);
#116=VERTEX_POINT('',#374);
#117=VERTEX_POINT('',#378);
#118=VERTEX_POINT('',#380);
#119=VERTEX_POINT('',#384);
#120=VERTEX_POINT('',#386);
#121=VERTEX_POINT('',#388);
#122=VERTEX_POINT('',#396);
#123=VERTEX_POINT('',#400);
#124=EDGE_CURVE('',#106,#107,#44,.T.);
#125=EDGE_CURVE('',#106,#108,#45,.T.);
#126=EDGE_CURVE('',#108,#109,#46,.T.);
#127=EDGE_CURVE('',#109,#107,#47,.T.);
#128=EDGE_CURVE('',#108,#110,#48,.T.);
#129=EDGE_CURVE('',#110,#111,#49,.T.);
#130=EDGE_CURVE('',#111,#109,#50,.T.);
#131=EDGE_CURVE('',#107,#112,#51,.T.);
#132=EDGE_CURVE('',#112,#113,#52,.T.);
#133=EDGE_CURVE('',#113,#106,#53,.T.);
#134=EDGE_CURVE('',#109,#114,#54,.T.);
#135=EDGE_CURVE('',#115,#111,#55,.T.);
#136=EDGE_CURVE('',#114,#115,#56,.T.);
#137=EDGE_CURVE('',#116,#112,#57,.T.);
#138=EDGE_CURVE('',#116,#114,#58,.T.);
#139=EDGE_CURVE('',#114,#117,#59,.T.);
#140=EDGE_CURVE('',#115,#118,#60,.T.);
#141=EDGE_CURVE('',#118,#117,#61,.T.);
#142=EDGE_CURVE('',#119,#116,#62,.T.);
#143=EDGE_CURVE('',#119,#120,#63,.T.);
#144=EDGE_CURVE('',#120,#121,#64,.T.);
#145=EDGE_CURVE('',#121,#116,#65,.T.);
#146=EDGE_CURVE('',#117,#108,#66,.T.);
#147=EDGE_CURVE('',#118,#110,#67,.T.);
#148=EDGE_CURVE('',#113,#119,#68,.T.);
#149=EDGE_CURVE('',#122,#113,#69,.T.);
#150=EDGE_CURVE('',#120,#122,#70,.T.);
#151=EDGE_CURVE('',#121,#123,#71,.T.);
#152=EDGE_CURVE('',#112,#123,#72,.T.);
#153=EDGE_CURVE('',#117,#119,#73,.T.);
#154=EDGE_CURVE('',#123,#122,#74,.T.);
#155=ORIENTED_EDGE('',*,*,#124,.F.);
#156=ORIENTED_EDGE('',*,*,#125,.T.);
#157=ORIENTED_EDGE('',*,*,#126,.T.);
#158=ORIENTED_EDGE('',*,*,#127,.T.);
#159=ORIENTED_EDGE('',*,*,#126,.F.);
#160=ORIENTED_EDGE('',*,*,#128,.T.);
#161=ORIENTED_EDGE('',*,*,#129,.T.);
#162=ORIENTED_EDGE('',*,*,#130,.T.);
#163=ORIENTED_EDGE('',*,*,#124,.T.);
#164=ORIENTED_EDGE('',*,*,#131,.T.);
#165=ORIENTED_EDGE('',*,*,#132,.T.);
#166=ORIENTED_EDGE('',*,*,#133,.T.);
#167=ORIENTED_EDGE('',*,*,#134,.F.);
#168=ORIENTED_EDGE('',*,*,#130,.F.);
#169=ORIENTED_EDGE('',*,*,#135,.F.);
#170=ORIENTED_EDGE('',*,*,#136,.F.);
#171=ORIENTED_EDGE('',*,*,#137,.T.);
#172=ORIENTED_EDGE('',*,*,#131,.F.);
#173=ORIENTED_EDGE('',*,*,#127,.F.);
#174=ORIENTED_EDGE('',*,*,#134,.T.);
#175=ORIENTED_EDGE('',*,*,#138,.F.);
#176=ORIENTED_EDGE('',*,*,#139,.F.);
#177=ORIENTED_EDGE('',*,*,#136,.T.);
#178=ORIENTED_EDGE('',*,*,#140,.T.);
#179=ORIENTED_EDGE('',*,*,#141,.T.);
#180=ORIENTED_EDGE('',*,*,#142,.F.);
#181=ORIENTED_EDGE('',*,*,#143,.T.);
#182=ORIENTED_EDGE('',*,*,#144,.T.);
#183=ORIENTED_EDGE('',*,*,#145,.T.);
#184=ORIENTED_EDGE('',*,*,#146,.F.);
#185=ORIENTED_EDGE('',*,*,#141,.F.);
#186=ORIENTED_EDGE('',*,*,#147,.T.);
#187=ORIENTED_EDGE('',*,*,#128,.F.);
#188=ORIENTED_EDGE('',*,*,#148,.F.);
#189=ORIENTED_EDGE('',*,*,#149,.F.);
#190=ORIENTED_EDGE('',*,*,#150,.F.);
#191=ORIENTED_EDGE('',*,*,#143,.F.);
#192=ORIENTED_EDGE('',*,*,#137,.F.);
#193=ORIENTED_EDGE('',*,*,#145,.F.);
#194=ORIENTED_EDGE('',*,*,#151,.T.);
#195=ORIENTED_EDGE('',*,*,#152,.F.);
#196=ORIENTED_EDGE('',*,*,#140,.F.);
#197=ORIENTED_EDGE('',*,*,#135,.T.);
#198=ORIENTED_EDGE('',*,*,#129,.F.);
#199=ORIENTED_EDGE('',*,*,#147,.F.);
#200=ORIENTED_EDGE('',*,*,#148,.T.);
#201=ORIENTED_EDGE('',*,*,#153,.F.);
#202=ORIENTED_EDGE('',*,*,#146,.T.);
#203=ORIENTED_EDGE('',*,*,#125,.F.);
#204=ORIENTED_EDGE('',*,*,#133,.F.);
#205=ORIENTED_EDGE('',*,*,#144,.F.);
#206=ORIENTED_EDGE('',*,*,#150,.T.);
#207=ORIENTED_EDGE('',*,*,#154,.F.);
#208=ORIENTED_EDGE('',*,*,#151,.F.);
#209=ORIENTED_EDGE('',*,*,#132,.F.);
#210=ORIENTED_EDGE('',*,*,#152,.T.);
#211=ORIENTED_EDGE('',*,*,#154,.T.);
#212=ORIENTED_EDGE('',*,*,#149,.T.);
#213=ORIENTED_EDGE('',*,*,#142,.T.);
#214=ORIENTED_EDGE('',*,*,#138,.T.);
#215=ORIENTED_EDGE('',*,*,#139,.T.);
#216=ORIENTED_EDGE('',*,*,#153,.T.);
#217=PLANE('',#267);
#218=PLANE('',#268);
#219=PLANE('',#269);
#220=PLANE('',#270);
#221=PLANE('',#271);
#222=PLANE('',#272);
#223=PLANE('',#273);
#224=PLANE('',#274);
#225=PLANE('',#275);
#226=PLANE('',#276);
#227=PLANE('',#277);
#228=PLANE('',#278);
#229=PLANE('',#279);
#230=PLANE('',#280);
#231=PLANE('',#281);
#232=STYLED_ITEM('',(#430),#238);
#233=STYLED_ITEM('',(#431),#240);
#234=STYLED_ITEM('',(#431),#242);
#235=STYLED_ITEM('',(#431),#249);
#236=STYLED_ITEM('',(#431),#252);
#237=STYLED_ITEM('',(#429),#13);
#238=ADVANCED_FACE('',(#14),#217,.T.);
#239=ADVANCED_FACE('',(#15),#218,.T.);
#240=ADVANCED_FACE('',(#16),#219,.T.);
#241=ADVANCED_FACE('',(#17),#220,.T.);
#242=ADVANCED_FACE('',(#18),#221,.T.);
#243=ADVANCED_FACE('',(#19),#222,.F.);
#244=ADVANCED_FACE('',(#20),#223,.F.);
#245=ADVANCED_FACE('',(#21),#224,.T.);
#246=ADVANCED_FACE('',(#22),#225,.T.);
#247=ADVANCED_FACE('',(#23),#226,.T.);
#248=ADVANCED_FACE('',(#24),#227,.T.);
#249=ADVANCED_FACE('',(#25),#228,.T.);
#250=ADVANCED_FACE('',(#26),#229,.T.);
#251=ADVANCED_FACE('',(#27),#230,.T.);
#252=ADVANCED_FACE('',(#28),#231,.F.);
#253=CLOSED_SHELL('',(#238,#239,#240,#241,#242,#243,#244,#245,#246,#247,
#248,#249,#250,#251,#252));
#254=DERIVED_UNIT_ELEMENT(#256,1.);
#255=DERIVED_UNIT_ELEMENT(#415,-3.);
#256=(
MASS_UNIT()
NAMED_UNIT(*)
SI_UNIT(.KILO.,.GRAM.)
);
#257=DERIVED_UNIT((#254,#255));
#258=MEASURE_REPRESENTATION_ITEM('density measure',
POSITIVE_RATIO_MEASURE(7850.),#257);
#259=PROPERTY_DEFINITION_REPRESENTATION(#264,#261);
#260=PROPERTY_DEFINITION_REPRESENTATION(#265,#262);
#261=REPRESENTATION('material name',(#263),#412);
#262=REPRESENTATION('density',(#258),#412);
#263=DESCRIPTIVE_REPRESENTATION_ITEM('Stahl','Stahl');
#264=PROPERTY_DEFINITION('material property','material name',#422);
#265=PROPERTY_DEFINITION('material property','density of part',#422);
#266=AXIS2_PLACEMENT_3D('placement',#345,#282,#283);
#267=AXIS2_PLACEMENT_3D('',#346,#284,#285);
#268=AXIS2_PLACEMENT_3D('',#355,#290,#291);
#269=AXIS2_PLACEMENT_3D('',#361,#295,#296);
#270=AXIS2_PLACEMENT_3D('',#367,#300,#301);
#271=AXIS2_PLACEMENT_3D('',#373,#305,#306);
#272=AXIS2_PLACEMENT_3D('',#377,#309,#310);
#273=AXIS2_PLACEMENT_3D('',#383,#314,#315);
#274=AXIS2_PLACEMENT_3D('',#391,#320,#321);
#275=AXIS2_PLACEMENT_3D('',#394,#324,#325);
#276=AXIS2_PLACEMENT_3D('',#399,#329,#330);
#277=AXIS2_PLACEMENT_3D('',#403,#333,#334);
#278=AXIS2_PLACEMENT_3D('',#404,#335,#336);
#279=AXIS2_PLACEMENT_3D('',#406,#338,#339);
#280=AXIS2_PLACEMENT_3D('',#408,#341,#342);
#281=AXIS2_PLACEMENT_3D('',#409,#343,#344);
#282=DIRECTION('axis',(0.,0.,1.));
#283=DIRECTION('refdir',(1.,0.,0.));
#284=DIRECTION('center_axis',(0.,1.,0.));
#285=DIRECTION('ref_axis',(0.,0.,1.));
#286=DIRECTION('',(1.,0.,1.38777878078145E-16));
#287=DIRECTION('',(0.,0.,1.));
#288=DIRECTION('',(1.,0.,4.16333643540216E-16));
#289=DIRECTION('',(0.,0.,-1.));
#290=DIRECTION('center_axis',(0.,1.,0.));
#291=DIRECTION('ref_axis',(0.,0.,1.));
#292=DIRECTION('',(0.,0.,1.));
#293=DIRECTION('',(1.,0.,0.));
#294=DIRECTION('',(0.,0.,-1.));
#295=DIRECTION('center_axis',(0.,1.,0.));
#296=DIRECTION('ref_axis',(0.,0.,1.));
#297=DIRECTION('',(0.,0.,-1.));
#298=DIRECTION('',(-1.,0.,0.));
#299=DIRECTION('',(0.,0.,1.));
#300=DIRECTION('center_axis',(1.,0.,0.));
#301=DIRECTION('ref_axis',(0.,0.,-1.));
#302=DIRECTION('',(0.,-1.,0.));
#303=DIRECTION('',(0.,1.,0.));
#304=DIRECTION('',(0.,0.,1.));
#305=DIRECTION('center_axis',(1.,0.,0.));
#306=DIRECTION('ref_axis',(0.,0.,-1.));
#307=DIRECTION('',(0.,1.,0.));
#308=DIRECTION('',(0.,0.,1.));
#309=DIRECTION('center_axis',(0.,1.,0.));
#310=DIRECTION('ref_axis',(1.,0.,0.));
#311=DIRECTION('',(-1.,0.,-4.16333643540216E-16));
#312=DIRECTION('',(-1.,0.,0.));
#313=DIRECTION('',(0.,0.,-1.));
#314=DIRECTION('center_axis',(0.,1.,0.));
#315=DIRECTION('ref_axis',(1.,0.,0.));
#316=DIRECTION('',(1.,0.,0.));
#317=DIRECTION('',(0.,0.,-1.));
#318=DIRECTION('',(1.,0.,2.77555756156289E-16));
#319=DIRECTION('',(0.,0.,1.));
#320=DIRECTION('center_axis',(-1.,0.,0.));
#321=DIRECTION('ref_axis',(0.,0.,1.));
#322=DIRECTION('',(0.,1.,0.));
#323=DIRECTION('',(0.,1.,0.));
#324=DIRECTION('center_axis',(-1.,0.,0.));
#325=DIRECTION('ref_axis',(0.,0.,1.));
#326=DIRECTION('',(0.,-1.,0.));
#327=DIRECTION('',(0.,0.,1.));
#328=DIRECTION('',(0.,1.,0.));
#329=DIRECTION('center_axis',(1.,0.,0.));
#330=DIRECTION('ref_axis',(0.,0.,-1.));
#331=DIRECTION('',(0.,1.,0.));
#332=DIRECTION('',(0.,0.,-1.));
#333=DIRECTION('center_axis',(0.,0.,1.));
#334=DIRECTION('ref_axis',(1.,0.,0.));
#335=DIRECTION('center_axis',(-1.,0.,0.));
#336=DIRECTION('ref_axis',(0.,0.,1.));
#337=DIRECTION('',(0.,0.,-1.));
#338=DIRECTION('center_axis',(2.77555756156289E-16,0.,-1.));
#339=DIRECTION('ref_axis',(-1.,0.,-2.77555756156289E-16));
#340=DIRECTION('',(-1.,0.,-2.77555756156289E-16));
#341=DIRECTION('center_axis',(0.,1.,0.));
#342=DIRECTION('ref_axis',(0.,0.,1.));
#343=DIRECTION('center_axis',(0.,1.,0.));
#344=DIRECTION('ref_axis',(1.,0.,0.));
#345=CARTESIAN_POINT('',(0.,0.,0.));
#346=CARTESIAN_POINT('Origin',(1.38777878078145E-16,1.15,5.55111512312578E-16));
#347=CARTESIAN_POINT('',(-1.,1.15,0.800000000000001));
#348=CARTESIAN_POINT('',(1.,1.15,0.800000000000001));
#349=CARTESIAN_POINT('',(2.77555756156289E-17,1.15,0.800000000000001));
#350=CARTESIAN_POINT('',(-1.,1.15,2.2));
#351=CARTESIAN_POINT('',(-1.,1.15,2.6));
#352=CARTESIAN_POINT('',(1.,1.15,2.2));
#353=CARTESIAN_POINT('',(0.5,1.15,2.2));
#354=CARTESIAN_POINT('',(1.,1.15,-2.6));
#355=CARTESIAN_POINT('Origin',(1.38777878078145E-16,1.15,5.55111512312578E-16));
#356=CARTESIAN_POINT('',(-1.,1.15,2.6));
#357=CARTESIAN_POINT('',(-1.,1.15,2.6));
#358=CARTESIAN_POINT('',(1.,1.15,2.6));
#359=CARTESIAN_POINT('',(1.,1.15,2.6));
#360=CARTESIAN_POINT('',(1.,1.15,-2.6));
#361=CARTESIAN_POINT('Origin',(1.38777878078145E-16,1.15,5.55111512312578E-16));
#362=CARTESIAN_POINT('',(1.,1.15,-2.2));
#363=CARTESIAN_POINT('',(1.,1.15,-2.6));
#364=CARTESIAN_POINT('',(-1.,1.15,-2.2));
#365=CARTESIAN_POINT('',(-0.5,1.15,-2.2));
#366=CARTESIAN_POINT('',(-1.,1.15,2.6));
#367=CARTESIAN_POINT('Origin',(1.,0.,2.6));
#368=CARTESIAN_POINT('',(1.,0.,2.2));
#369=CARTESIAN_POINT('',(1.,0.,2.2));
#370=CARTESIAN_POINT('',(1.,0.,2.6));
#371=CARTESIAN_POINT('',(1.,0.,2.6));
#372=CARTESIAN_POINT('',(1.,0.,-2.6));
#373=CARTESIAN_POINT('Origin',(1.,0.,2.6));
#374=CARTESIAN_POINT('',(1.,0.,-2.2));
#375=CARTESIAN_POINT('',(1.,0.,-2.2));
#376=CARTESIAN_POINT('',(1.,0.,-2.6));
#377=CARTESIAN_POINT('Origin',(1.38777878078145E-16,0.,5.55111512312578E-16));
#378=CARTESIAN_POINT('',(-1.,0.,2.2));
#379=CARTESIAN_POINT('',(0.5,0.,2.2));
#380=CARTESIAN_POINT('',(-1.,0.,2.6));
#381=CARTESIAN_POINT('',(1.,0.,2.6));
#382=CARTESIAN_POINT('',(-1.,0.,2.6));
#383=CARTESIAN_POINT('Origin',(1.38777878078145E-16,0.,5.55111512312578E-16));
#384=CARTESIAN_POINT('',(-1.,0.,-2.2));
#385=CARTESIAN_POINT('',(-0.5,0.,-2.2));
#386=CARTESIAN_POINT('',(-1.,0.,-2.6));
#387=CARTESIAN_POINT('',(-1.,0.,2.6));
#388=CARTESIAN_POINT('',(1.,0.,-2.6));
#389=CARTESIAN_POINT('',(-1.,0.,-2.6));
#390=CARTESIAN_POINT('',(1.,0.,-2.6));
#391=CARTESIAN_POINT('Origin',(-1.,0.,-2.6));
#392=CARTESIAN_POINT('',(-1.,0.,2.2));
#393=CARTESIAN_POINT('',(-1.,0.,2.6));
#394=CARTESIAN_POINT('Origin',(-1.,0.,-2.6));
#395=CARTESIAN_POINT('',(-1.,0.,-2.2));
#396=CARTESIAN_POINT('',(-1.,1.15,-2.6));
#397=CARTESIAN_POINT('',(-1.,1.15,2.6));
#398=CARTESIAN_POINT('',(-1.,0.,-2.6));
#399=CARTESIAN_POINT('Origin',(1.,0.,2.6));
#400=CARTESIAN_POINT('',(1.,1.15,-2.6));
#401=CARTESIAN_POINT('',(1.,0.,-2.6));
#402=CARTESIAN_POINT('',(1.,1.15,-2.6));
#403=CARTESIAN_POINT('Origin',(-1.,0.,2.6));
#404=CARTESIAN_POINT('Origin',(-1.,0.,-2.6));
#405=CARTESIAN_POINT('',(-1.,0.,2.6));
#406=CARTESIAN_POINT('Origin',(1.,0.,-2.6));
#407=CARTESIAN_POINT('',(-1.,1.15,-2.6));
#408=CARTESIAN_POINT('Origin',(1.38777878078145E-16,1.15,5.55111512312578E-16));
#409=CARTESIAN_POINT('Origin',(1.38777878078145E-16,0.,5.55111512312578E-16));
#410=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#414,
'DISTANCE_ACCURACY_VALUE',
'Maximum model space distance between geometric entities at asserted c
onnectivities');
#411=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#414,
'DISTANCE_ACCURACY_VALUE',
'Maximum model space distance between geometric entities at asserted c
onnectivities');
#412=(
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#410))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#414,#416,#417))
REPRESENTATION_CONTEXT('','3D')
);
#413=(
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#411))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#414,#416,#417))
REPRESENTATION_CONTEXT('','3D')
);
#414=(
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT(.MILLI.,.METRE.)
);
#415=(
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($,.METRE.)
);
#416=(
NAMED_UNIT(*)
PLANE_ANGLE_UNIT()
SI_UNIT($,.RADIAN.)
);
#417=(
NAMED_UNIT(*)
SI_UNIT($,.STERADIAN.)
SOLID_ANGLE_UNIT()
);
#418=SHAPE_DEFINITION_REPRESENTATION(#419,#420);
#419=PRODUCT_DEFINITION_SHAPE('',$,#422);
#420=SHAPE_REPRESENTATION('',(#266),#412);
#421=PRODUCT_DEFINITION_CONTEXT('part definition',#426,'design');
#422=PRODUCT_DEFINITION('Walsin RFANT5220110A2T',
'Walsin RFANT5220110A2T v0',#423,#421);
#423=PRODUCT_DEFINITION_FORMATION('',$,#428);
#424=PRODUCT_RELATED_PRODUCT_CATEGORY('Walsin RFANT5220110A2T v0',
'Walsin RFANT5220110A2T v0',(#428));
#425=APPLICATION_PROTOCOL_DEFINITION('international standard',
'automotive_design',2009,#426);
#426=APPLICATION_CONTEXT(
'Core Data for Automotive Mechanical Design Process');
#427=PRODUCT_CONTEXT('part definition',#426,'mechanical');
#428=PRODUCT('Walsin RFANT5220110A2T','Walsin RFANT5220110A2T v0',$,(#427));
#429=PRESENTATION_STYLE_ASSIGNMENT((#432));
#430=PRESENTATION_STYLE_ASSIGNMENT((#433));
#431=PRESENTATION_STYLE_ASSIGNMENT((#434));
#432=SURFACE_STYLE_USAGE(.BOTH.,#435);
#433=SURFACE_STYLE_USAGE(.BOTH.,#436);
#434=SURFACE_STYLE_USAGE(.BOTH.,#437);
#435=SURFACE_SIDE_STYLE('',(#438));
#436=SURFACE_SIDE_STYLE('',(#439));
#437=SURFACE_SIDE_STYLE('',(#440));
#438=SURFACE_STYLE_FILL_AREA(#441);
#439=SURFACE_STYLE_FILL_AREA(#442);
#440=SURFACE_STYLE_FILL_AREA(#443);
#441=FILL_AREA_STYLE('Stahl - satiniert',(#444));
#442=FILL_AREA_STYLE('Farbe - Emaille gl\X\E4nzend (Grau)',(#445));
#443=FILL_AREA_STYLE('Farbe - Emaille gl\X\E4nzend (Blau)',(#446));
#444=FILL_AREA_STYLE_COLOUR('Stahl - satiniert',#447);
#445=FILL_AREA_STYLE_COLOUR('Farbe - Emaille gl\X\E4nzend (Grau)',#448);
#446=FILL_AREA_STYLE_COLOUR('Farbe - Emaille gl\X\E4nzend (Blau)',#449);
#447=COLOUR_RGB('Stahl - satiniert',0.627450980392157,0.627450980392157,
0.627450980392157);
#448=COLOUR_RGB('Farbe - Emaille gl\X\E4nzend (Grau)',0.701960784313725,
0.701960784313725,0.701960784313725);
#449=COLOUR_RGB('Farbe - Emaille gl\X\E4nzend (Blau)',0.294117647058824,
0.498039215686275,0.831372549019608);
ENDSEC;
END-ISO-10303-21;

View File

@ -0,0 +1,43 @@
(footprint "Heimdall vertical" (version 20211014) (generator pcbnew)
(layer "F.Cu")
(tedit 5BB39B96)
(descr "VISHAY Heimdall for TSSP77038")
(tags "vishay heimdall IR infrared receiver")
(property "Sheetfile" "Remote.kicad_sch")
(property "Sheetname" "")
(attr smd)
(fp_text reference "U6" (at -4.488008 0.299854 -90) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 99661005-769b-4d0f-aa75-26eeaa5b0c4e)
)
(fp_text value "TSSP77038" (at 0 2.8) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 2c315470-8c5e-49ee-bee1-3d6a109f7de1)
)
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 8b99f715-f8e6-46d4-96e6-7f0569201d47)
)
(fp_line (start 3.4 1.505) (end 3.4 -1.505) (layer "F.SilkS") (width 0.12) (tstamp 255fdb75-f1b7-4bf5-b13f-73da1e61b4cd))
(fp_line (start 3.4 -1.505) (end -3.4 -1.51) (layer "F.SilkS") (width 0.12) (tstamp 3be63fd6-f4ed-4239-a0db-f9ba492eaffc))
(fp_line (start -2.8 1.505) (end -3.4 1.5) (layer "F.SilkS") (width 0.12) (tstamp b22fd62b-97d7-4d22-9380-f9b09acbb3a1))
(fp_line (start 3.4 1.505) (end 2.8 1.5) (layer "F.SilkS") (width 0.12) (tstamp bc52bd0a-e631-4f4a-a5cb-57e3c2c33f20))
(fp_line (start -3.4 1.5) (end -3.4 -1.51) (layer "F.SilkS") (width 0.12) (tstamp eb427f97-534a-4b55-a1fc-cd7512384142))
(fp_line (start -3.6 -1.7) (end -3.6 1.7) (layer "F.CrtYd") (width 0.05) (tstamp 516611f6-57a3-4042-8808-474f9ef80ca9))
(fp_line (start 3.6 -1.7) (end 3.6 1.7) (layer "F.CrtYd") (width 0.05) (tstamp 7aa8c835-b4be-4912-9d31-bd1dc74c5233))
(fp_line (start -3.6 1.7) (end 3.6 1.7) (layer "F.CrtYd") (width 0.05) (tstamp d74462a7-514c-435c-bdd6-f9e949d16f79))
(fp_line (start -3.6 -1.7) (end 3.6 -1.7) (layer "F.CrtYd") (width 0.05) (tstamp f3a21418-5e5d-44aa-b12e-bc9972d6c561))
(fp_line (start -3.4 -1.5) (end -3.4 1.5) (layer "F.Fab") (width 0.1) (tstamp 06de88ae-cc75-47b9-9e4c-b56359c9966e))
(fp_line (start -3.4 1.5) (end 3.4 1.5) (layer "F.Fab") (width 0.1) (tstamp 4cf852b5-80fb-49ef-9c99-d2b74e1c9b51))
(fp_line (start 3.4 -1.5) (end 3.4 1.5) (layer "F.Fab") (width 0.1) (tstamp 55c5bd39-2c09-4221-a860-d0eb1faafefa))
(fp_line (start -3.4 -1.5) (end 3.4 -1.5) (layer "F.Fab") (width 0.1) (tstamp e59679a9-fe2a-477d-b576-837769fdd70c))
(pad "1" smd rect (at -1.905 0.7 90) (size 2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 055c9379-ba0e-424b-a771-defa39eb74b3))
(pad "2" smd rect (at -0.635 0.7 90) (size 2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 028da597-1e73-4bbf-99ce-209e6fa31929))
(pad "3" smd rect (at 0.635 0.7 90) (size 2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp b30c79a4-89cf-486e-b203-e29889d600cf))
(pad "4" smd rect (at 1.9 0.7 90) (size 2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 61518e6f-b8a3-43ff-896a-d7086a3d80ca))
(model "${KICAD_USER_3DMODEL_DIR}/82672Heimdall.stp"
(offset (xyz 0 -1.2 1.6))
(scale (xyz 1 1 1))
(rotate (xyz -90 0 -180))
)
)

View File

@ -0,0 +1,56 @@
(footprint "JST_PH_B2B-PH-SM4-TB_1x02-1MP_P2.00mm_Vertical" (version 20211014) (generator pcbnew)
(layer "F.Cu")
(tedit 5B78AD87)
(descr "JST PH series connector, B2B-PH-SM4-TB (http://www.jst-mfg.com/product/pdf/eng/ePH.pdf), generated with kicad-footprint-generator")
(tags "connector JST PH side entry")
(property "Sheetfile" "Remote.kicad_sch")
(property "Sheetname" "")
(attr smd)
(fp_text reference "J3" (at 0 -5.45) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp b7e1e3c6-b800-4b44-8a4d-eeb1862d3514)
)
(fp_text value "Conn_01x02_Male" (at 0 4.45) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 06e5a78d-8e0f-4809-b533-b4a49b5a629c)
)
(fp_text user "${REFERENCE}" (at 0 -1) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp c4a243ed-6686-4db5-a9fe-19b50e44ab94)
)
(fp_line (start 4.085 -4.36) (end 4.085 -3.51) (layer "F.SilkS") (width 0.12) (tstamp 0227ffb8-82b4-43af-810e-c0c8f988fd80))
(fp_line (start -4.085 -3.51) (end -4.085 -4.36) (layer "F.SilkS") (width 0.12) (tstamp 4b4cd7fa-6d7c-41be-a714-842b1f5e66fd))
(fp_line (start -4.085 0.86) (end -1.76 0.86) (layer "F.SilkS") (width 0.12) (tstamp 4ce2d6a7-aa36-430e-8135-9448ad856824))
(fp_line (start -1.76 0.86) (end -1.76 3.25) (layer "F.SilkS") (width 0.12) (tstamp 5fb70798-2929-4c25-8656-aae725080435))
(fp_line (start -4.085 -4.36) (end 4.085 -4.36) (layer "F.SilkS") (width 0.12) (tstamp 933de47d-58f5-4aee-a30e-c80f7a4128cd))
(fp_line (start 4.085 0.86) (end 1.76 0.86) (layer "F.SilkS") (width 0.12) (tstamp b6f556b6-4b48-4aa8-a28d-ada9a53c80b2))
(fp_line (start -4.085 0.01) (end -4.085 0.86) (layer "F.SilkS") (width 0.12) (tstamp c2ee8f22-2d81-4a3b-bf49-edf03d42c378))
(fp_line (start 4.085 0.01) (end 4.085 0.86) (layer "F.SilkS") (width 0.12) (tstamp ff8802c7-b96a-47e7-9d38-4fb580940895))
(fp_line (start 4.7 -4.75) (end -4.7 -4.75) (layer "F.CrtYd") (width 0.05) (tstamp 2252533e-5a92-4603-815d-b45bd34a8798))
(fp_line (start 4.7 3.75) (end 4.7 -4.75) (layer "F.CrtYd") (width 0.05) (tstamp 5a2032d7-7326-4ae6-9368-e0e91033a364))
(fp_line (start -4.7 -4.75) (end -4.7 3.75) (layer "F.CrtYd") (width 0.05) (tstamp 9799a600-6f38-4fe9-88df-f078b9f894e8))
(fp_line (start -4.7 3.75) (end 4.7 3.75) (layer "F.CrtYd") (width 0.05) (tstamp b35a8c78-e485-4726-a863-8c26b966f857))
(fp_line (start 0.75 -2.75) (end 0.75 -2.25) (layer "F.Fab") (width 0.1) (tstamp 0c2319c0-5863-4f5b-8079-60eb54f2fa3c))
(fp_line (start -1.5 0.75) (end -1 0.042893) (layer "F.Fab") (width 0.1) (tstamp 12883faa-fa7b-4d13-8d81-baa9bb81f4a6))
(fp_line (start -1.25 -2.75) (end -1.25 -2.25) (layer "F.Fab") (width 0.1) (tstamp 15885318-73db-4ebc-8390-ad3e61fb0db6))
(fp_line (start -0.75 -2.25) (end -0.75 -2.75) (layer "F.Fab") (width 0.1) (tstamp 1bcad65c-793d-4f6a-8c9b-e1e0c9855257))
(fp_line (start -1 0.042893) (end -0.5 0.75) (layer "F.Fab") (width 0.1) (tstamp 3a65be0a-a5e1-45b4-bff7-b154567eef50))
(fp_line (start -3.975 -4.25) (end 3.975 -4.25) (layer "F.Fab") (width 0.1) (tstamp 3eb0ab25-cff0-4416-880a-0df9d337fc5c))
(fp_line (start -3.975 0.75) (end 3.975 0.75) (layer "F.Fab") (width 0.1) (tstamp 5efbd4f9-69b1-4a4f-883c-6287aa5deded))
(fp_line (start 3.975 0.75) (end 3.975 -4.25) (layer "F.Fab") (width 0.1) (tstamp 6651168d-2e28-4025-b01a-8bb6ff4d597f))
(fp_line (start -0.75 -2.75) (end -1.25 -2.75) (layer "F.Fab") (width 0.1) (tstamp 6abd37df-8a84-409c-b120-dd47832342dc))
(fp_line (start 1.25 -2.25) (end 1.25 -2.75) (layer "F.Fab") (width 0.1) (tstamp 81a8e172-7628-4fd5-b288-37b3858f81b2))
(fp_line (start -1.25 -2.25) (end -0.75 -2.25) (layer "F.Fab") (width 0.1) (tstamp 923c5b62-0b7d-4239-a081-608d2a0840db))
(fp_line (start 0.75 -2.25) (end 1.25 -2.25) (layer "F.Fab") (width 0.1) (tstamp a8f5cc86-65ff-4505-83d7-0904519dda4b))
(fp_line (start -3.975 0.75) (end -3.975 -4.25) (layer "F.Fab") (width 0.1) (tstamp d5f4d32e-3914-4bd8-bb74-8146e3e94ed9))
(fp_line (start 1.25 -2.75) (end 0.75 -2.75) (layer "F.Fab") (width 0.1) (tstamp f3a7eeb1-cfc3-4404-b92d-bd9192067442))
(pad "1" smd roundrect (at -1 0.5) (size 1 5.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 790110d1-463a-4fd2-85c0-66cce8e76920))
(pad "2" smd roundrect (at 1 0.5) (size 1 5.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp e5598bb2-3eb4-4616-92fc-e48ed6e40c44))
(pad "MP" smd roundrect (at -3.4 -1.75) (size 1.6 3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.15625) (tstamp 2a6398e5-5a44-4a0f-8191-3e0039a605dc))
(pad "MP" smd roundrect (at 3.4 -1.75) (size 1.6 3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.15625) (tstamp ead54c9b-214f-4544-a73e-79df4b5b630f))
(model "${KICAD_USER_3DMODEL_DIR}/B2B-PH-SM4-TB.STEP"
(offset (xyz -4 3.25 0))
(scale (xyz 1 1 1))
(rotate (xyz -90 0 0))
)
)

View File

@ -0,0 +1,60 @@
(footprint "LED_5mm_Side_Mount" (version 20211014) (generator pcbnew)
locked (layer "F.Cu")
(tedit 5E7E470B)
(descr "5mm LED for horizontal soldering to the board edge")
(tags "LED 5mm")
(property "Sheetfile" "Remote.kicad_sch")
(property "Sheetname" "")
(attr smd)
(fp_text reference "D2" (at -0.2 7.123323) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp f2beb290-8b22-480b-af2b-55c5fbe051dc)
)
(fp_text value "SFH4346" (at 0.7 -10.7) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp f55f02f0-58b7-44ff-b5f3-e6b6d172c151)
)
(fp_text user "Board Edge" (at 7.8 -1 unlocked) (layer "Cmts.User")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp d2ee5262-1434-4194-a73a-bdb5df43b4b4)
)
(fp_text user "${REFERENCE}" (at 3.1 3.5 -90) (layer "F.Fab")
(effects (font (size 0.8 0.8) (thickness 0.08)))
(tstamp ee4ad7f2-9145-48c6-87a9-fc1e8bc75547)
)
(fp_line (start -5.6 0) (end 12.4 0) (layer "Cmts.User") (width 0.12) (tstamp e82497c3-98a3-4a90-a30f-7d3057c175bc))
(fp_line (start -2.3 6.2) (end -2.3 0.5) (layer "F.CrtYd") (width 0.05) (tstamp 0c6efed2-0913-4dd2-8f27-821e7c61b32d))
(fp_line (start 2.3 6.2) (end 2.3 0.5) (layer "F.CrtYd") (width 0.05) (tstamp 478a1fd2-50e2-4979-b71f-3afd09c956e4))
(fp_line (start 2.3 0.5) (end 3.2 0.5) (layer "F.CrtYd") (width 0.05) (tstamp 51951242-0b7c-4b2f-a43f-29b2d9e9a95d))
(fp_line (start -2.3 6.2) (end 2.3 6.2) (layer "F.CrtYd") (width 0.05) (tstamp 5d183f5d-628f-42c3-96e3-c3bfb81cf2d4))
(fp_line (start -2.3 0.5) (end -3.2 0.5) (layer "F.CrtYd") (width 0.05) (tstamp 9c2fa047-0796-48df-997d-e2cacca255a8))
(fp_line (start -3.2 0.5) (end -3.2 -9.2) (layer "F.CrtYd") (width 0.05) (tstamp d5991019-e50e-4dfe-858c-67b1661a7648))
(fp_line (start 3.2 -9.2) (end -3.2 -9.2) (layer "F.CrtYd") (width 0.05) (tstamp e5e4607d-5468-4bab-be85-2e45235dfeaa))
(fp_line (start 3.2 0.5) (end 3.2 -9.2) (layer "F.CrtYd") (width 0.05) (tstamp f8602816-359b-47a8-8837-adbe0aa0f419))
(fp_line (start 2.5 -6.5) (end 2.5 -1) (layer "F.Fab") (width 0.1) (tstamp 008e4b84-7e75-43ca-8455-c2e468caad44))
(fp_line (start 0.5 -2.4) (end -0.5 -1.9) (layer "F.Fab") (width 0.1) (tstamp 0147b5ba-3109-402f-90c2-08e2a6bb8ff4))
(fp_line (start 2.8 -1) (end 2.8 0) (layer "F.Fab") (width 0.1) (tstamp 0a9fa915-2fb0-43a3-996f-d5e7cb365732))
(fp_line (start -3 -1) (end -3 0) (layer "F.Fab") (width 0.1) (tstamp 29757356-df90-4a15-9db4-c61c4724e212))
(fp_line (start -3 0) (end 2.8 0) (layer "F.Fab") (width 0.1) (tstamp 375840bf-2e99-4513-8445-0ba86ec953f7))
(fp_line (start 1.025 5) (end 1.525 5) (layer "F.Fab") (width 0.1) (tstamp 49131a50-f9b7-4785-b7f9-af41fec01dab))
(fp_line (start -1.015 0) (end -1.015 5) (layer "F.Fab") (width 0.1) (tstamp 64425b0a-c81f-45c5-876e-1768f77d40ba))
(fp_line (start -0.5 -1.9) (end -0.5 -2.9) (layer "F.Fab") (width 0.1) (tstamp 66c5093e-3f34-4724-9ba9-362d67dd31ff))
(fp_line (start -1.515 0) (end -1.515 5) (layer "F.Fab") (width 0.1) (tstamp 671adeb0-f6f3-4e29-ba18-080885a82e87))
(fp_line (start -0.5 -2.9) (end 0.5 -2.4) (layer "F.Fab") (width 0.1) (tstamp 6d952ea7-1857-41ae-97a4-56a181488971))
(fp_line (start -2.5 -6.5) (end -2.5 -1) (layer "F.Fab") (width 0.1) (tstamp 721953f1-9456-473f-ad35-9737f9729de0))
(fp_line (start 1.525 0) (end 1.525 5) (layer "F.Fab") (width 0.1) (tstamp 99e6b188-595d-402f-9955-ec8b8d559748))
(fp_line (start 1.25 -2.4) (end 0.5 -2.4) (layer "F.Fab") (width 0.1) (tstamp 9b326273-8fda-45bd-a748-25bd83652d12))
(fp_line (start -1.25 -2.4) (end -0.5 -2.4) (layer "F.Fab") (width 0.1) (tstamp b21f8551-4804-4a49-81a9-cc0de7d9198c))
(fp_line (start -3 -1) (end 2.8 -1) (layer "F.Fab") (width 0.1) (tstamp c2f21bd1-5f3c-4996-b3ab-c438498c274d))
(fp_line (start 0.5 -1.9) (end 0.5 -2.9) (layer "F.Fab") (width 0.1) (tstamp c58c120c-84c4-4b9e-9ed0-92b87ea0ef11))
(fp_line (start -1.515 5) (end -1.015 5) (layer "F.Fab") (width 0.1) (tstamp df197acd-43a2-42d0-aad3-7efa74170614))
(fp_line (start 1.025 0) (end 1.025 5) (layer "F.Fab") (width 0.1) (tstamp f31074bf-3a98-4ea8-bbf8-ad11c6be2aaa))
(fp_arc (start -2.5 -6.5) (mid 0 -9) (end 2.5 -6.5) (layer "F.Fab") (width 0.1) (tstamp 63108f7e-31b8-4030-85bb-d8c876610a82))
(pad "1" smd rect locked (at 1.275 3.5) (size 1.5 5) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 30c1fbd0-c96d-467f-9430-894b2db6865d))
(pad "2" smd rect locked (at -1.275 3.5) (size 1.5 5) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 30566d46-1cb5-435a-b1cc-753bef71bfb0))
(model "${KICAD_USER_3DMODEL_DIR}/Side Mount LED v1.step"
(offset (xyz 0 0 0.25))
(scale (xyz 1 1 1))
(rotate (xyz 90 0 0))
)
)

View File

@ -0,0 +1,225 @@
(footprint "QFN-48-1EP_7x7mm_P0.5mm_EP5.3x5.3mm_ThermalVias_MR" (version 20211014) (generator pcbnew)
(layer "F.Cu")
(tedit 5DC5F6A5)
(descr "QFN, 48 Pin (https://www.trinamic.com/fileadmin/assets/Products/ICs_Documents/TMC2041_datasheet.pdf#page=62), generated with kicad-footprint-generator ipc_noLead_generator.py")
(tags "QFN NoLead")
(property "Sheetfile" "Remote.kicad_sch")
(property "Sheetname" "")
(zone_connect 2)
(attr smd)
(fp_text reference "U7" (at 2.35 -4.95) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 7705e9a7-8d84-410d-b2f3-d793d91b5f00)
)
(fp_text value "ESP32-PICO-D4" (at 0 4.8) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp bfbba12a-daed-4675-982a-77c43bac19b1)
)
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 47961ae4-c43b-4702-bdc7-45bd69e64f36)
)
(fp_line (start 3.135 -3.61) (end 3.61 -3.61) (layer "F.SilkS") (width 0.12) (tstamp 82260df7-7cb0-4a05-bc92-24745968f6f3))
(fp_line (start 3.135 3.61) (end 3.61 3.61) (layer "F.SilkS") (width 0.12) (tstamp adfd5f8f-2d29-46d8-8047-03b2aaa9dc6e))
(fp_line (start -3.61 3.61) (end -3.61 3.135) (layer "F.SilkS") (width 0.12) (tstamp b055493d-bf63-4196-98ab-412eab7fa898))
(fp_line (start -3.135 3.61) (end -3.61 3.61) (layer "F.SilkS") (width 0.12) (tstamp c11947d4-e00d-4c9c-b2ed-b8a15919a2bf))
(fp_line (start 3.61 3.61) (end 3.61 3.135) (layer "F.SilkS") (width 0.12) (tstamp f2b5f76c-63bf-4ac7-9fee-ca73aa63cdfd))
(fp_line (start 3.61 -3.61) (end 3.61 -3.135) (layer "F.SilkS") (width 0.12) (tstamp fd40282b-8a6d-412a-a5db-a246efccae17))
(fp_circle (center -3.6 -3.6) (end -3.45 -3.6) (layer "F.SilkS") (width 0.3) (fill none) (tstamp f6ce92d2-8f8a-4b34-be3d-a036cc80b0bf))
(fp_line (start 4.1 4.1) (end 4.1 -4.1) (layer "F.CrtYd") (width 0.05) (tstamp 20c4528d-c018-4151-93b4-332a24de84d6))
(fp_line (start -4.1 4.1) (end 4.1 4.1) (layer "F.CrtYd") (width 0.05) (tstamp 273f3a32-fc79-4d8b-ade3-2e64a1847a1a))
(fp_line (start -4.1 -4.1) (end -4.1 4.1) (layer "F.CrtYd") (width 0.05) (tstamp 3021b803-8940-402a-a778-d13af1e71053))
(fp_line (start 4.1 -4.1) (end -4.1 -4.1) (layer "F.CrtYd") (width 0.05) (tstamp ab59f9af-5f57-40d6-b894-bbb87c406520))
(fp_line (start -3.5 3.5) (end -3.5 -2.5) (layer "F.Fab") (width 0.1) (tstamp 4e4f049b-fc43-42b3-8b80-d04ca9f29b1e))
(fp_line (start 3.5 3.5) (end -3.5 3.5) (layer "F.Fab") (width 0.1) (tstamp 59a8f64b-8fa0-449d-ba41-95b41fdbddd7))
(fp_line (start 3.5 -3.5) (end 3.5 3.5) (layer "F.Fab") (width 0.1) (tstamp 9951cc79-31d0-49eb-b143-5a3b2b8e28cf))
(fp_line (start -3.5 -2.5) (end -2.5 -3.5) (layer "F.Fab") (width 0.1) (tstamp b997296a-33bd-49a5-b806-17018dfe5f0a))
(fp_line (start -2.5 -3.5) (end 3.5 -3.5) (layer "F.Fab") (width 0.1) (tstamp ede8250d-4f07-4a9e-ba45-882b5295db66))
(pad "" smd roundrect (at 1.8 0.6) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp 0045943e-6df3-40ca-9104-3e32ef1c2361))
(pad "" smd roundrect (at -0.6 -0.6) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp 12920999-1739-4177-bd30-7526c2a7c154))
(pad "" smd roundrect (at -1.8 0.6) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp 16a0886d-1c6d-443d-87b7-0ca2476ace0b))
(pad "" smd roundrect (at 0.6 0.6) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp 1d0c3d71-94ac-4b17-b2b8-aa5c7cdf4be0))
(pad "" smd roundrect (at 0.6 -1.8) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp 2ab4815d-1487-4c66-a3f2-b99a62a51a0c))
(pad "" smd roundrect (at -1.8 -1.8) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp 40c666dc-c058-4f23-89c9-623d332d7fec))
(pad "" smd roundrect (at 1.8 -0.6) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp 4b71632f-627e-4565-b89c-0a1a5f3303de))
(pad "" smd roundrect (at -0.6 0.6) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp 5249604f-be81-4ccd-ae00-67c73a7140c7))
(pad "" smd roundrect (at 1.8 -1.8) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp 6520ea53-1d97-441a-a4cc-165e29e56f17))
(pad "" smd roundrect (at 0.6 -0.6) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp 7f7defbb-f8ca-4fd4-9a43-138509d73085))
(pad "" smd roundrect (at 1.8 1.8) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp 8edec0bf-f2bf-45dd-bd87-83807f690a36))
(pad "" smd roundrect (at -1.8 -0.6) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp 9ae5f0a0-fb8d-499b-80fe-cac6a10aca58))
(pad "" smd roundrect (at 0.6 1.8) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp 9fd613eb-74ca-4f00-8cc9-4d57f3238a65))
(pad "" smd roundrect (at -0.6 1.8) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp a6fdef24-a35e-45d8-a27c-f61032313fc2))
(pad "" smd roundrect (at -0.6 -1.8) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp b77d62c4-d30c-4260-a609-2c7b29d578dd))
(pad "" smd roundrect (at -1.8 1.8) (size 1.026341 1.026341) (layers "F.Paste") (roundrect_rratio 0.2435837602)
(zone_connect 2) (tstamp f15ec748-ab3e-4223-8daa-eaf7a3ad412d))
(pad "1" smd roundrect (at -3.28 -2.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 43169ead-e3c0-48c3-a860-0de9bc10341e))
(pad "2" smd roundrect (at -3.28 -2.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp b599b1ac-9d7d-4d52-8f1a-4087459782fa))
(pad "3" smd roundrect (at -3.28 -1.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp d738e266-6392-45b8-9b25-c25c5e16601c))
(pad "4" smd roundrect (at -3.28 -1.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 1a375be6-2e7f-4324-bdf5-a43ab437db8e))
(pad "5" smd roundrect (at -3.28 -0.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 36dab2cd-cf91-4016-a054-c510a912b39b))
(pad "6" smd roundrect (at -3.28 -0.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 534c3c91-04fc-4e09-a61f-c57948ace1cf))
(pad "7" smd roundrect (at -3.28 0.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 0a32d12e-8b03-43fb-91a1-581adfc4aa57))
(pad "8" smd roundrect (at -3.28 0.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 9b50b460-2f13-4fc3-adc5-a634ae0b801a))
(pad "9" smd roundrect (at -3.28 1.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 41b51996-f7b3-46d6-93ff-b1e43ac3bed6))
(pad "10" smd roundrect (at -3.28 1.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 1f8f89f1-7da7-43cc-9d4d-16ef64d245a6))
(pad "11" smd roundrect (at -3.28 2.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 6853c369-dfab-411d-9705-ff1f204c3029))
(pad "12" smd roundrect (at -3.28 2.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp cf47d1c7-f23d-4242-b05b-375e35556b2d))
(pad "13" smd roundrect (at -2.75 3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 1bae595f-595e-4575-8ab1-a60f675617d7))
(pad "14" smd roundrect (at -2.25 3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 17ee9082-dc06-4b77-83f9-48e6a8108154))
(pad "15" smd roundrect (at -1.75 3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp c9674c38-5c9b-4376-a39e-823857119235))
(pad "16" smd roundrect (at -1.25 3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 8f55cf7d-a353-4bc7-a442-463d4176d317))
(pad "17" smd roundrect (at -0.75 3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 55291fe4-d593-4e80-9423-adcaec667ad4))
(pad "18" smd roundrect (at -0.25 3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp a0b359bd-15d9-46ae-a6cd-5e13ecaab75f))
(pad "19" smd roundrect (at 0.25 3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 88319470-3104-4470-b9fc-bf5aa9247624))
(pad "20" smd roundrect (at 0.75 3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 9b849915-740e-482a-95d5-087d9f7bba9d))
(pad "21" smd roundrect (at 1.25 3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 0630074a-3662-4f64-b4a8-3f79a8b6433c))
(pad "22" smd roundrect (at 1.75 3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 5982fcae-2a3c-4fa6-86fc-4928642d130d))
(pad "23" smd roundrect (at 2.25 3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 62444e9e-e8bb-4592-a0b7-1a8a3d45a7d0))
(pad "24" smd roundrect (at 2.75 3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 08bc676c-3623-4434-b2e1-722cc349205a))
(pad "25" smd roundrect (at 3.28 2.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 08f94f28-3e54-4baa-b623-307c23eb2cee))
(pad "26" smd roundrect (at 3.28 2.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 28c12f52-c41f-4090-a4ee-5197bb52442b))
(pad "27" smd roundrect (at 3.28 1.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp d9bdf50f-0ada-40f6-848e-6e604303ba49))
(pad "28" smd roundrect (at 3.28 1.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 9b19a0a3-0c4b-43e0-974c-2ea6f7585b65))
(pad "29" smd roundrect (at 3.28 0.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 29eb24df-25ea-4e19-a102-cbc938297edd))
(pad "30" smd roundrect (at 3.28 0.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 1923b88e-2573-4f06-bbe0-17c33dcc99e5))
(pad "31" smd roundrect (at 3.28 -0.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 18f910d5-9602-4f5c-b3eb-5cb354b6b26e))
(pad "32" smd roundrect (at 3.28 -0.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 8a735efc-f8ce-46c9-a802-5bf894cae6c5))
(pad "33" smd roundrect (at 3.28 -1.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 7fbb9aa9-3faa-4a59-9eee-77f7f27dc643))
(pad "34" smd roundrect (at 3.28 -1.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 7029b909-7155-45a6-afe0-edb4d8e853c5))
(pad "35" smd roundrect (at 3.28 -2.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp f5498447-3b5c-4788-a427-e00b006f86c3))
(pad "36" smd roundrect (at 3.28 -2.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 25217a3e-da1d-44e5-bd8d-1b91d1c757de))
(pad "37" smd roundrect (at 2.75 -3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 8a779b02-070b-4a04-b13c-91f13c535ef6))
(pad "38" smd roundrect (at 2.25 -3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 5344680f-03d1-4cde-a774-d4313edf842a))
(pad "39" smd roundrect (at 1.75 -3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 20880354-0997-4a10-bb7a-e9c51e1cf2bb))
(pad "40" smd roundrect (at 1.25 -3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp cc85cb1b-014f-40b7-a167-38e00819e7d1))
(pad "41" smd roundrect (at 0.75 -3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 6fd0397c-3082-40c3-ac95-4e5e3920f842))
(pad "42" smd roundrect (at 0.25 -3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp c09a90d9-8382-44b4-a5d8-e0328a8fefe0))
(pad "43" smd roundrect (at -0.25 -3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 05582249-0958-41ac-b6c5-ba9aedd73e8b))
(pad "44" smd roundrect (at -0.75 -3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 682599c1-1fc4-4d2f-b481-05eae628df9d))
(pad "45" smd roundrect (at -1.25 -3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp e65fc06d-b11d-480a-8c45-89374b60242d))
(pad "46" smd roundrect (at -1.75 -3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 6c9019a7-9971-4994-9603-b324ddfe473d))
(pad "47" smd roundrect (at -2.25 -3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp d3778f2d-cdf8-4efc-bba6-59156e3e95d6))
(pad "48" smd roundrect (at -2.75 -3.28) (size 0.3 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1)
(zone_connect 2) (tstamp 8929094a-93b6-4f58-9014-aeac5138770c))
(pad "49" thru_hole circle (at -1.2 -1.2) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 051e6a54-8b5f-4265-ac56-3d6377b7ae04))
(pad "49" thru_hole circle (at 1.2 1.2) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 0b607888-5922-47fd-a47e-eca703a66daf))
(pad "49" thru_hole circle (at 1.2 2.4) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 1ec80c71-4fe2-4252-82fa-e619288c9877))
(pad "49" thru_hole circle (at -1.2 0) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 202a8353-df0d-4531-91d0-108aff3c0a03))
(pad "49" thru_hole circle (at 2.4 2.4) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 2232b45e-f070-457d-a8d9-4a472a7f03a7))
(pad "49" thru_hole circle (at 1.2 -2.4) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 288719ec-f74c-43db-8f67-370e454ae9d1))
(pad "49" thru_hole circle (at 2.4 -2.4) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 2f4af0f5-60ee-4658-a6f6-a57240013afb))
(pad "49" thru_hole circle (at -2.4 0) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 4809c405-e5ae-41a4-80b0-e037558edb1f))
(pad "49" thru_hole circle (at -1.2 2.4) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 596804b1-365f-4417-8172-048aa1582c66))
(pad "49" thru_hole circle (at 0 -1.2) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 67dedd75-1029-4a6e-9dab-32184da018ce))
(pad "49" thru_hole circle (at 0 0) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 69fe4f3c-b317-474e-b45a-f7ddf0d8ef36))
(pad "49" thru_hole circle (at 0 2.4) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 6b24ae74-c345-494f-91df-5c58a885337b))
(pad "49" thru_hole circle (at 0 1.2) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 7157b059-b234-496a-934d-3c9f2a03238d))
(pad "49" thru_hole circle (at 2.4 1.2) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 7a9cb4f1-60bb-45ea-ba68-a9c0fb7a9bc9))
(pad "49" thru_hole circle (at -2.4 -2.4) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 849b7cbf-4c82-4c26-9592-c5ef2533b3a5))
(pad "49" thru_hole circle (at 1.2 -1.2) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 8a02b4b3-1b58-40f0-86a5-625289d05d8d))
(pad "49" thru_hole circle (at -2.4 1.2) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp 8e1b528e-c31b-4ab6-aac6-3a9bab7ce9ee))
(pad "49" thru_hole circle (at 2.4 0) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp a1ed522d-538c-4f12-9667-ae046de55c2b))
(pad "49" thru_hole circle (at -2.4 2.4) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp a5c015ed-d7a2-4d0c-b946-8d5a2d23b303))
(pad "49" thru_hole circle (at 1.2 0) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp ab3f2f85-748b-4efb-bbfa-c2c5600046ba))
(pad "49" thru_hole circle (at 0 -2.4) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp abeb7f94-d70e-4476-a09f-2122ade2d151))
(pad "49" thru_hole circle (at 2.4 -1.2) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp afdf5e42-a0f9-46df-b6cd-bff7f5608140))
(pad "49" thru_hole circle (at -1.2 -2.4) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp c9944f72-3222-4c01-ac64-0ee036802ce6))
(pad "49" smd rect (at 0 0) (size 5.3 5.3) (layers "F.Cu" "F.Mask")
(zone_connect 2) (tstamp ca3359f2-cf00-443e-b2ba-f22a094ec451))
(pad "49" smd rect (at 0 0) (size 5.3 5.3) (layers "B.Cu")
(zone_connect 2) (tstamp d006a54e-4e12-47c0-a16a-23930d48db30))
(pad "49" thru_hole circle (at -2.4 -1.2) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp f7af55fc-8270-4072-ac7d-4585563010b0))
(pad "49" thru_hole circle (at -1.2 1.2) (size 0.5 0.5) (drill 0.25) (layers *.Cu)
(zone_connect 2) (tstamp f7fc7b74-5737-4bf4-8d03-c6eb7cbf7fe0))
(model "${KICAD6_3DMODEL_DIR}/Package_DFN_QFN.3dshapes/QFN-48-1EP_7x7mm_P0.5mm_EP5.3x5.3mm.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)

View File

@ -0,0 +1,38 @@
(footprint "RFANT5220110A2T" (version 20211014) (generator pcbnew)
(layer "F.Cu")
(tedit 5E281F47)
(descr "Walsin RFANT5220110A2T SMD antenna 2400-2500Mhz, 2dBi, http://www.passivecomponent.com/wp-content/uploads/2013/12/ASC_RFANT5220110A2T_V03.pdf")
(tags "antenna")
(attr smd)
(fp_text reference "REF**" (at 0.1 -1.9) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 6a7f5046-59f9-4d67-8a9c-0b891389c217)
)
(fp_text value "RFANT5220110A2T" (at 0 1.85) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 46483cc2-97d8-4037-b962-e5c455dff7e1)
)
(fp_text user "${REFERENCE}" (at 0 -1.9) (layer "F.Fab")
(effects (font (size 0.8 0.8) (thickness 0.12)))
(tstamp c532fb02-33df-435b-9d73-6f7d2d64cc62)
)
(fp_line (start 1.05 -1) (end 1.05 1) (layer "F.SilkS") (width 0.12) (tstamp 30de4c82-56dc-47b2-9e75-c973468a8714))
(fp_line (start 1.85 -1) (end 1.85 1) (layer "F.SilkS") (width 0.12) (tstamp 526fe57a-94cd-4f3d-a6e5-756fc2b9245f))
(fp_line (start 1.05 1) (end 1.85 1) (layer "F.SilkS") (width 0.12) (tstamp 7b4fc597-125a-4092-a1d8-4f697244e2c3))
(fp_line (start 1.85 -1) (end 1.05 -1) (layer "F.SilkS") (width 0.12) (tstamp b55b2025-be9e-4fb6-9f3a-5a59f6f3eff1))
(fp_line (start -2.8 -1.2) (end 2.8 -1.2) (layer "F.CrtYd") (width 0.05) (tstamp 3018b8f4-b60c-4768-9eb7-24fe84842cbe))
(fp_line (start 2.8 1.2) (end -2.8 1.2) (layer "F.CrtYd") (width 0.05) (tstamp 39e9941f-cef8-4456-bf1f-5913af203e04))
(fp_line (start -2.8 1.2) (end -2.8 -1.2) (layer "F.CrtYd") (width 0.05) (tstamp 5f1c8048-88a4-4142-b8b6-ac3c306463a7))
(fp_line (start 2.8 -1.2) (end 2.8 1.2) (layer "F.CrtYd") (width 0.05) (tstamp 861c5dde-d059-4f34-ad84-0eaf5595296e))
(fp_line (start 2.6 -1) (end -2.6 -1) (layer "F.Fab") (width 0.1) (tstamp 22f66731-09f9-4c60-b7fd-b87a9f4b12a3))
(fp_line (start -2.6 -1) (end -2.6 1) (layer "F.Fab") (width 0.1) (tstamp 4691bae0-0803-40f9-a46c-eb3967b52180))
(fp_line (start -2.6 1) (end 2.6 1) (layer "F.Fab") (width 0.1) (tstamp 548636b6-1f09-4fe3-b08a-1b5e14b0780f))
(fp_line (start 2.6 1) (end 2.6 -1) (layer "F.Fab") (width 0.1) (tstamp d230770e-c3c1-40ca-bd2c-270beb42c790))
(pad "" smd roundrect (at -2.7 0) (size 1 2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.208333) (tstamp a2974a02-96e1-452f-854a-8d9fcf06d0d5))
(pad "1" smd roundrect (at 2.7 0 180) (size 1 2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.208333) (tstamp 17fa7a8e-0f13-45b9-9255-244464d1d108))
(model "${KICAD_USER_3DMODEL_DIR}/Walsin RFANT5220110A2T v1.step"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz -90 0 -90))
)
)

View File

@ -0,0 +1,502 @@
(footprint "TFT_2.83IN_240X320_50PIN" (version 20211014) (generator pcbnew)
locked (layer "F.Cu")
(tedit 0)
(property "Sheetfile" "Remote.kicad_sch")
(property "Sheetname" "")
(fp_text reference "J2" (at -12 13.177148) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.119969)) (justify left))
(tstamp ff52d2c6-c9bc-400e-86ab-8d6ec1d86fd6)
)
(fp_text value "Conn_01x50" (at -6.979 14.22) (layer "F.Fab")
(effects (font (size 0.979424 0.979424) (thickness 0.036576)) (justify left))
(tstamp a90ad96b-5715-4880-affc-a4f4f48e743b)
)
(fp_text user "1" (at -11.6 16.7) (layer "B.Fab")
(effects (font (size 0.8636 0.8636) (thickness 0.1524)) (justify mirror))
(tstamp 90750a04-6889-4abf-bacd-b17d78552831)
)
(fp_line (start 25.1 -32) (end -25.1 -32) (layer "B.SilkS") (width 0.127) (tstamp 1b82a4ba-10a1-412a-8de0-64e982fedc67))
(fp_line (start 25.1 37.4) (end 25.1 -32) (layer "B.SilkS") (width 0.127) (tstamp 234d0134-6aae-497f-b792-3499237b559c))
(fp_line (start -25.1 -32) (end -25.1 37.4) (layer "B.SilkS") (width 0.127) (tstamp 528e9300-ee3d-4b7e-b57e-737a8e383aa3))
(fp_line (start -25.1 37.4) (end 25.1 37.4) (layer "B.SilkS") (width 0.127) (tstamp cd4a6184-a138-48aa-8dc0-c026866f91e5))
(fp_line (start 12.7 10.29) (end 14.8 10.29) (layer "F.SilkS") (width 0.127) (tstamp 5e9a1eb5-9678-440c-be40-9eb66edec7ad))
(fp_line (start -14.8 10.29) (end -14.8 11.59) (layer "F.SilkS") (width 0.127) (tstamp 77883ff7-2fab-4040-b3ce-f5c5211a9a01))
(fp_line (start -12.6 10.29) (end -14.8 10.29) (layer "F.SilkS") (width 0.127) (tstamp 7a4ad31f-fd61-42c7-a4ea-0241c7f979fa))
(fp_line (start 14.8 10.29) (end 14.8 11.59) (layer "F.SilkS") (width 0.127) (tstamp 8f2a1ef7-aee9-499e-9be5-271e7b65de23))
(fp_line (start -14.8 15.49) (end 14.8 15.49) (layer "F.SilkS") (width 0.127) (tstamp b17ddcc1-2a1c-4e82-b914-dca5bc6038ce))
(fp_line (start 14.8 15.49) (end 14.8 14.59) (layer "F.SilkS") (width 0.127) (tstamp bcd90c36-5b75-4f1c-bb01-80781bd808c1))
(fp_line (start -14.8 14.59) (end -14.8 15.49) (layer "F.SilkS") (width 0.127) (tstamp d93df7e2-3dce-4948-b2ef-eb3032216207))
(fp_poly (pts
(xy -2.1 11.05)
(xy -2.4 11.05)
(xy -2.4 9.75)
(xy -2.1 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 003de3c3-cbde-478c-b0d7-fc9d7aa0cc4d))
(fp_poly (pts
(xy -9.6 11.05)
(xy -9.9 11.05)
(xy -9.9 9.75)
(xy -9.6 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 041dcd1e-0f13-400a-9faf-99a30798cf4b))
(fp_poly (pts
(xy -6.1 11.05)
(xy -6.4 11.05)
(xy -6.4 9.75)
(xy -6.1 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 094c5b8a-4aa2-4722-ab01-b8a952c19b9d))
(fp_poly (pts
(xy 10.9 11.05)
(xy 10.6 11.05)
(xy 10.6 9.75)
(xy 10.9 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 10d31cf2-ae4a-4bc6-8a1e-f339af631131))
(fp_poly (pts
(xy 6.9 11.05)
(xy 6.6 11.05)
(xy 6.6 9.75)
(xy 6.9 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 135eb3e7-d272-45fb-ac2d-86726aad775f))
(fp_poly (pts
(xy 1.4 11.05)
(xy 1.1 11.05)
(xy 1.1 9.75)
(xy 1.4 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 163e7b1f-d0f3-4737-8eef-2c5a9abc22dc))
(fp_poly (pts
(xy 11.4 11.05)
(xy 11.1 11.05)
(xy 11.1 9.75)
(xy 11.4 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 2457bdfa-dd75-45d8-b9cd-0047142ac541))
(fp_poly (pts
(xy 7.9 11.05)
(xy 7.6 11.05)
(xy 7.6 9.75)
(xy 7.9 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 29ab46eb-e789-4546-8078-636c01501995))
(fp_poly (pts
(xy -5.1 11.05)
(xy -5.4 11.05)
(xy -5.4 9.75)
(xy -5.1 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 2f165402-5f65-41c0-9b94-5efa55acc71d))
(fp_poly (pts
(xy 12.4 11.05)
(xy 12.1 11.05)
(xy 12.1 9.75)
(xy 12.4 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 2ff1c929-6239-4719-87a7-d4c6a8ee10a3))
(fp_poly (pts
(xy 4.4 11.05)
(xy 4.1 11.05)
(xy 4.1 9.75)
(xy 4.4 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 303f673b-cb18-4929-9c30-4caabade68ae))
(fp_poly (pts
(xy 10.4 11.05)
(xy 10.1 11.05)
(xy 10.1 9.75)
(xy 10.4 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 30f9fc6f-7538-4d23-9513-9ace13b4a44a))
(fp_poly (pts
(xy 11.9 11.05)
(xy 11.6 11.05)
(xy 11.6 9.75)
(xy 11.9 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 394f26ef-1414-4923-bba2-90294dc30edd))
(fp_poly (pts
(xy 0.4 11.05)
(xy 0.1 11.05)
(xy 0.1 9.75)
(xy 0.4 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 3e676343-6c88-43af-994c-85c03ce0f7bb))
(fp_poly (pts
(xy -0.1 11.05)
(xy -0.4 11.05)
(xy -0.4 9.75)
(xy -0.1 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 3ef9bc41-a614-4d62-86f0-84d6d4466e69))
(fp_poly (pts
(xy -0.6 11.05)
(xy -0.9 11.05)
(xy -0.9 9.75)
(xy -0.6 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 44d015a6-72f6-45c9-8490-fbd20fc564ca))
(fp_poly (pts
(xy 2.9 11.05)
(xy 2.6 11.05)
(xy 2.6 9.75)
(xy 2.9 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 4a939e78-3c2c-42e4-aaf5-3563b703c90d))
(fp_poly (pts
(xy -5.6 11.05)
(xy -5.9 11.05)
(xy -5.9 9.75)
(xy -5.6 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 5052cad4-c7c4-47b4-a399-25e0213bd7f1))
(fp_poly (pts
(xy 4.9 11.05)
(xy 4.6 11.05)
(xy 4.6 9.75)
(xy 4.9 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 51de0c58-4ac1-4fba-9e3f-8ceae794a00a))
(fp_poly (pts
(xy -12.1 11.05)
(xy -12.4 11.05)
(xy -12.4 9.75)
(xy -12.1 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 54cac61f-6027-4320-a511-2ddef41ed4ab))
(fp_poly (pts
(xy 3.4 11.05)
(xy 3.1 11.05)
(xy 3.1 9.75)
(xy 3.4 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 5d817b80-7448-43bb-821c-e93ac76807b1))
(fp_poly (pts
(xy -2.6 11.05)
(xy -2.9 11.05)
(xy -2.9 9.75)
(xy -2.6 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 61c2d62c-d688-49c4-aa9a-f75b91725f80))
(fp_poly (pts
(xy -8.1 11.05)
(xy -8.4 11.05)
(xy -8.4 9.75)
(xy -8.1 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 61fca65d-e8c1-4374-a271-ccde4b2f70c8))
(fp_poly (pts
(xy 9.4 11.05)
(xy 9.1 11.05)
(xy 9.1 9.75)
(xy 9.4 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 638cb56e-2e0d-435a-b6c6-9aa10fdf2c67))
(fp_poly (pts
(xy -3.1 11.05)
(xy -3.4 11.05)
(xy -3.4 9.75)
(xy -3.1 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 6b8de6ba-1db2-4c1d-aee1-36ec39f263cc))
(fp_poly (pts
(xy -1.6 11.05)
(xy -1.9 11.05)
(xy -1.9 9.75)
(xy -1.6 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 6bc92364-a410-449f-b172-12ffd5dc405d))
(fp_poly (pts
(xy 7.4 11.05)
(xy 7.1 11.05)
(xy 7.1 9.75)
(xy 7.4 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 72157056-2124-4037-95bd-6a5d9189cdb1))
(fp_poly (pts
(xy -11.6 11.05)
(xy -11.9 11.05)
(xy -11.9 9.75)
(xy -11.6 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 764ce819-2034-4178-87c4-d1abe2fa43d6))
(fp_poly (pts
(xy 1.9 11.05)
(xy 1.6 11.05)
(xy 1.6 9.75)
(xy 1.9 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 782ea488-f1a3-46be-94dc-fa245895286f))
(fp_poly (pts
(xy -10.6 11.05)
(xy -10.9 11.05)
(xy -10.9 9.75)
(xy -10.6 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 80a90484-bbed-4109-959b-bb8afa05fddb))
(fp_poly (pts
(xy -4.1 11.05)
(xy -4.4 11.05)
(xy -4.4 9.75)
(xy -4.1 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 833e2232-1642-4ddc-a579-c39ca0d66813))
(fp_poly (pts
(xy -8.6 11.05)
(xy -8.9 11.05)
(xy -8.9 9.75)
(xy -8.6 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 83570c82-edae-43f0-82c3-435811542e98))
(fp_poly (pts
(xy -4.6 11.05)
(xy -4.9 11.05)
(xy -4.9 9.75)
(xy -4.6 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 9d3f772e-d90a-42a3-a480-9fe7bf22220e))
(fp_poly (pts
(xy -10.1 11.05)
(xy -10.4 11.05)
(xy -10.4 9.75)
(xy -10.1 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp 9f64881c-0bf4-4a49-84c2-f7dc20d4ec27))
(fp_poly (pts
(xy 3.9 11.05)
(xy 3.6 11.05)
(xy 3.6 9.75)
(xy 3.9 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp a8fd5cb4-f1ca-4915-a279-52ecb3486ead))
(fp_poly (pts
(xy -1.1 11.05)
(xy -1.4 11.05)
(xy -1.4 9.75)
(xy -1.1 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp b1c1ad0f-27b0-4f11-8c40-b199d45a6ec3))
(fp_poly (pts
(xy 6.4 11.05)
(xy 6.1 11.05)
(xy 6.1 9.75)
(xy 6.4 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp b2adee7d-b1b0-4a79-93dd-b6d59eac6591))
(fp_poly (pts
(xy -9.1 11.05)
(xy -9.4 11.05)
(xy -9.4 9.75)
(xy -9.1 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp b49567f8-eb01-4e00-a2fa-3c2608b9c17f))
(fp_poly (pts
(xy -11.1 11.05)
(xy -11.4 11.05)
(xy -11.4 9.75)
(xy -11.1 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp bfd6b178-8974-4313-a0dc-8bf4abae454b))
(fp_poly (pts
(xy 8.4 11.05)
(xy 8.1 11.05)
(xy 8.1 9.75)
(xy 8.4 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp c76ea3b5-561f-4f8e-babc-d03623b1f762))
(fp_poly (pts
(xy 0.9 11.05)
(xy 0.6 11.05)
(xy 0.6 9.75)
(xy 0.9 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp d2a15574-d7fe-47d4-b6d6-545c3ffa5074))
(fp_poly (pts
(xy 8.9 11.05)
(xy 8.6 11.05)
(xy 8.6 9.75)
(xy 8.9 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp dd3e5dc0-f33e-48bb-82df-ee29a7194579))
(fp_poly (pts
(xy -3.6 11.05)
(xy -3.9 11.05)
(xy -3.9 9.75)
(xy -3.6 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp e298a571-81f6-4798-9db0-714278c3c9c6))
(fp_poly (pts
(xy -7.6 11.05)
(xy -7.9 11.05)
(xy -7.9 9.75)
(xy -7.6 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp e46c7932-226b-4bda-b69e-ece525f7a21e))
(fp_poly (pts
(xy 9.9 11.05)
(xy 9.6 11.05)
(xy 9.6 9.75)
(xy 9.9 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp eafb81a0-eb09-4e50-863a-6213e2d5acd8))
(fp_poly (pts
(xy 2.4 11.05)
(xy 2.1 11.05)
(xy 2.1 9.75)
(xy 2.4 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp ecf7b1cd-26ae-46ed-8ab5-0c13e95d71ec))
(fp_poly (pts
(xy -6.6 11.05)
(xy -6.9 11.05)
(xy -6.9 9.75)
(xy -6.6 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp f4b387df-211d-4fb3-86bf-79ec5e5bbef3))
(fp_poly (pts
(xy 5.4 11.05)
(xy 5.1 11.05)
(xy 5.1 9.75)
(xy 5.4 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp f4deea75-4bc8-41d4-a424-b961e5766e37))
(fp_poly (pts
(xy -7.1 11.05)
(xy -7.4 11.05)
(xy -7.4 9.75)
(xy -7.1 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp fda0c67e-51ca-4a2e-abe5-249f08b2b953))
(fp_poly (pts
(xy 5.9 11.05)
(xy 5.6 11.05)
(xy 5.6 9.75)
(xy 5.9 9.75)
) (layer "F.Mask") (width 0) (fill solid) (tstamp ff0215b1-b61e-4dab-8856-e27ddbde0934))
(fp_line (start 20.802074 37.00519) (end 7.19481 37.002074) (layer "Edge.Cuts") (width 0.2) (tstamp 0476137b-0d4c-41fd-b9f2-2fc6050ab7cd))
(fp_line (start 5.997926 25.19481) (end 5.99481 35.802074) (layer "Edge.Cuts") (width 0.2) (tstamp 1def679d-2c42-42dd-855a-d7b046b57ab5))
(fp_line (start 20.80519 23.997926) (end 7.197926 23.99481) (layer "Edge.Cuts") (width 0.2) (tstamp 65353157-2f93-4ec2-ba38-09c13fb6e5ea))
(fp_line (start -13.80519 22.502074) (end 13.802074 22.50519) (layer "Edge.Cuts") (width 0.2) (tstamp 923ac5f4-f161-400c-a62b-87b7471faed0))
(fp_line (start 22.00519 25.197926) (end 22.002074 35.80519) (layer "Edge.Cuts") (width 0.2) (tstamp 938f00b8-05d2-4e18-8ce8-54921b9550aa))
(fp_line (start -13.802074 16.49481) (end 13.80519 16.497926) (layer "Edge.Cuts") (width 0.2) (tstamp 9829d313-8826-43e4-98c7-cf424680bc87))
(fp_line (start -15.00519 21.302074) (end -15.002074 17.69481) (layer "Edge.Cuts") (width 0.2) (tstamp b0e119a3-0fb6-4133-82c8-acdda508895d))
(fp_line (start 15.002074 21.30519) (end 15.00519 17.697926) (layer "Edge.Cuts") (width 0.2) (tstamp e9418b43-4aa4-402c-9d8d-26d928c55d96))
(fp_arc (start 5.997926 25.19481) (mid 6.349398 24.346282) (end 7.197926 23.99481) (layer "Edge.Cuts") (width 0.2) (tstamp 04e8af2c-512b-45f1-9a38-342929c3e290))
(fp_arc (start -13.80519 22.502074) (mid -14.653718 22.150602) (end -15.00519 21.302074) (layer "Edge.Cuts") (width 0.2) (tstamp 3bdfe91c-33d8-4a80-b6b5-06d258a14b25))
(fp_arc (start 20.80519 23.997926) (mid 21.653718 24.349398) (end 22.00519 25.197926) (layer "Edge.Cuts") (width 0.2) (tstamp 4390cb64-d846-4d74-979f-a4ed7291409f))
(fp_arc (start 22.002074 35.80519) (mid 21.650602 36.653718) (end 20.802074 37.00519) (layer "Edge.Cuts") (width 0.2) (tstamp 539c424f-535d-46ac-bded-fb6fa791c809))
(fp_arc (start -15.002074 17.69481) (mid -14.650602 16.846282) (end -13.802074 16.49481) (layer "Edge.Cuts") (width 0.2) (tstamp 542aeeb8-a875-4352-aced-c5df33ffd28b))
(fp_arc (start 7.19481 37.002074) (mid 6.346282 36.650602) (end 5.99481 35.802074) (layer "Edge.Cuts") (width 0.2) (tstamp 79576ecf-a311-41b8-a8ff-3b4496660d06))
(fp_arc (start 15.002074 21.30519) (mid 14.650602 22.153718) (end 13.802074 22.50519) (layer "Edge.Cuts") (width 0.2) (tstamp 95312508-5df4-4fc8-bab9-69cfa2771d0c))
(fp_arc (start 13.80519 16.497926) (mid 14.653718 16.849398) (end 15.00519 17.697926) (layer "Edge.Cuts") (width 0.2) (tstamp e2b1e7f4-0c10-4f97-ab10-25db4cf38a7e))
(fp_line (start 22.6 -29.8) (end -22.6 -29.8) (layer "B.Fab") (width 0.127) (tstamp 0628601b-3b06-4d57-bfec-bc5fdccc181b))
(fp_line (start -21.6 -29.22) (end -21.6 28.38) (layer "B.Fab") (width 0.127) (tstamp 082639eb-d922-443a-a7fa-0c72f0a8a298))
(fp_line (start -17.9 25.8) (end -18.1 25.8) (layer "B.Fab") (width 0.127) (tstamp 12156ff8-e859-4a27-819e-45039f943e3d))
(fp_line (start -25 -31.9) (end -25 37.3) (layer "B.Fab") (width 0.127) (tstamp 18dbf831-f135-4009-8044-bba310be5a43))
(fp_line (start 22.6 30.2) (end 18.2 25.8) (layer "B.Fab") (width 0.127) (tstamp 2b87f9a1-cf91-48c3-87f9-f0b43ac4535c))
(fp_line (start 12.1 36.9) (end 21.7 36.9) (layer "B.Fab") (width 0.127) (tstamp 3684b517-92df-44e5-b246-b48b8eadb9c0))
(fp_line (start -12.5 12.5) (end -12.5 15.8) (layer "B.Fab") (width 0.127) (tstamp 413f5a1b-baad-4830-ab08-ec0c98ac22c2))
(fp_line (start -21.6 36.9) (end -11.7 36.9) (layer "B.Fab") (width 0.127) (tstamp 5a1a9bd9-cd3c-4553-819c-aebb70cb36fb))
(fp_line (start 21.6 -29.22) (end -21.6 -29.22) (layer "B.Fab") (width 0.127) (tstamp 60681e66-da5b-49b4-bb83-d761bfd7b901))
(fp_line (start -13.4 25.8) (end -17.9 25.8) (layer "B.Fab") (width 0.127) (tstamp 6772d0c9-342e-4a0e-8f9b-c87ae0f528a8))
(fp_line (start 12.5 24.8) (end 12.5 15.8) (layer "B.Fab") (width 0.127) (tstamp 6bd30e49-67ad-4f58-b372-29e6b6142a88))
(fp_line (start 12.2 12.2) (end -12.2 12.2) (layer "B.Fab") (width 0.127) (tstamp 7607d556-af34-4015-8d94-01a0b4b108f1))
(fp_line (start -22.6 -29.8) (end -22.6 29.55) (layer "B.Fab") (width 0.127) (tstamp 99255112-9f3b-48cd-af50-29cb5d80b2e1))
(fp_line (start -18.1 25.8) (end -22.6 30.3) (layer "B.Fab") (width 0.127) (tstamp ad02a636-0f59-45f1-9a8d-f61ece16ee50))
(fp_line (start 25 37.3) (end 25 -31.9) (layer "B.Fab") (width 0.127) (tstamp b3f6aec5-7cd0-4bbf-a32e-f58b3c50e466))
(fp_line (start -22.6 30.3) (end -22.6 35.9) (layer "B.Fab") (width 0.127) (tstamp b544f5b2-1db5-4a42-9bc9-b0d446f0d596))
(fp_line (start 11.8 36.9) (end 12.1 36.9) (layer "B.Fab") (width 0.127) (tstamp b6de97a7-0777-492e-84ab-3a100456f7e4))
(fp_line (start -21.6 28.38) (end 21.6 28.38) (layer "B.Fab") (width 0.127) (tstamp b73418c0-b364-4f48-b2cc-6b73aed24a20))
(fp_line (start 22.6 36) (end 22.6 30.2) (layer "B.Fab") (width 0.127) (tstamp d4b029ca-6e42-4b6a-b9db-c034c9a5d43f))
(fp_line (start 12.5 15.8) (end -12.5 15.8) (layer "B.Fab") (width 0.127) (tstamp d747aafd-3d11-426e-8cf4-ecf044d25cec))
(fp_line (start 21.6 28.38) (end 21.6 -29.22) (layer "B.Fab") (width 0.127) (tstamp d7c6e4fd-6575-4a4d-8068-1f22459268e7))
(fp_line (start 25 -31.9) (end -25 -31.9) (layer "B.Fab") (width 0.127) (tstamp d8386bec-aa94-44c9-93e9-50c5e520bf43))
(fp_line (start -12.5 15.8) (end -12.5 24.9) (layer "B.Fab") (width 0.127) (tstamp e6c0245f-8341-47aa-8f18-83d447c2856b))
(fp_line (start 22.6 29.55) (end 22.6 -29.8) (layer "B.Fab") (width 0.127) (tstamp ea6676a4-2fad-46da-97db-f7e6267b4698))
(fp_line (start -22.6 29.55) (end 22.6 29.55) (layer "B.Fab") (width 0.127) (tstamp ec6d35c9-4961-4a21-a516-28bcdd50335d))
(fp_line (start -25 37.3) (end 25 37.3) (layer "B.Fab") (width 0.127) (tstamp f1a0cd7c-3827-4578-b1a7-bc32676dc19c))
(fp_line (start 12.5 15.8) (end 12.5 12.5) (layer "B.Fab") (width 0.127) (tstamp f961676a-d9a9-4649-b1a4-e4a17c946dcd))
(fp_line (start 18.2 25.8) (end 13.5 25.8) (layer "B.Fab") (width 0.127) (tstamp fb95da0b-aa13-4caa-b087-ce6b3d75f37f))
(fp_arc (start -21.6 36.9) (mid -22.307107 36.607107) (end -22.6 35.9) (layer "B.Fab") (width 0.127) (tstamp 25a1b5e2-99ac-4c26-bc67-6ce11d34a351))
(fp_arc (start -12.5 12.5) (mid -12.412132 12.287868) (end -12.2 12.2) (layer "B.Fab") (width 0.127) (tstamp 2b738a34-3d76-49a4-9a4a-803feb497f93))
(fp_arc (start 22.6 36) (mid 22.336396 36.636396) (end 21.7 36.9) (layer "B.Fab") (width 0.127) (tstamp 2fafcb8e-d596-4c36-992f-515aa150ea11))
(fp_arc (start -12.5 24.9) (mid -12.763604 25.536396) (end -13.4 25.8) (layer "B.Fab") (width 0.127) (tstamp 978c8af1-8be4-4f34-92e0-3d29dd706f1b))
(fp_arc (start 12.2 12.2) (mid 12.412132 12.287868) (end 12.5 12.5) (layer "B.Fab") (width 0.127) (tstamp d372aebb-f00c-42be-bac6-e682e0b5e31f))
(fp_arc (start 13.5 25.8) (mid 12.792893 25.507107) (end 12.5 24.8) (layer "B.Fab") (width 0.127) (tstamp f4cff259-d752-460e-8320-b084cdaaee8f))
(fp_line (start -14.65 15.39) (end -14.65 10.39) (layer "F.Fab") (width 0.127) (tstamp 30d78fef-d2ca-47d0-b188-a7071ef1816d))
(fp_line (start -12.4 11.49) (end -12.3 11.39) (layer "F.Fab") (width 0.127) (tstamp 38b093a0-f52a-4aa3-9200-4b5e1966e42a))
(fp_line (start -12.3 11.29) (end -12.1 11.49) (layer "F.Fab") (width 0.127) (tstamp 4acb72aa-a067-4a83-a0bd-aff224bc6cc6))
(fp_line (start -14.65 15.39) (end 14.65 15.39) (layer "F.Fab") (width 0.127) (tstamp 5d970006-8ca9-4785-9c60-66ffc4dc1b3f))
(fp_line (start -12.5 11.49) (end -12.3 11.29) (layer "F.Fab") (width 0.127) (tstamp 710bb1b1-ccc9-4b23-83e0-3430c3705d83))
(fp_line (start -14.65 10.39) (end 14.65 10.39) (layer "F.Fab") (width 0.127) (tstamp 99cf5947-ec49-4197-bd4d-0cd7998983a4))
(fp_line (start 14.65 10.39) (end 14.65 15.39) (layer "F.Fab") (width 0.127) (tstamp b70b8322-a440-44ed-ac12-17a6287cc412))
(fp_line (start -12.1 11.49) (end -12.4 11.49) (layer "F.Fab") (width 0.127) (tstamp cb3c80b6-e8b9-48a1-a239-83a7594038c7))
(fp_line (start -12.5 11.49) (end -12.4 11.49) (layer "F.Fab") (width 0.127) (tstamp e4dcdaa7-8825-4072-ab38-7a1f258ad21c))
(pad "1" smd rect locked (at -12.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp bb612fc8-0230-435c-9890-7a2aa7cd7c03))
(pad "2" smd rect locked (at -11.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 5b3e68d9-d96e-4524-85b8-1b2d68d9ecd1))
(pad "3" smd rect locked (at -11.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 4ebeceef-9614-4bcb-94d4-9af37e409356))
(pad "4" smd rect locked (at -10.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp c22dfda9-070f-4d17-8813-c3509417fa38))
(pad "5" smd rect locked (at -10.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp f1fce783-083c-4957-87c2-ee1a0608c47c))
(pad "6" smd rect locked (at -9.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp ec4e57ab-a512-4204-9b96-d3fc009b2a27))
(pad "7" smd rect locked (at -9.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 82509d92-9691-4afb-ad35-c5130198d00f))
(pad "8" smd rect locked (at -8.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 6038266a-e279-4d83-a44e-2cbd0e9c8660))
(pad "9" smd rect locked (at -8.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp fb72510e-993d-4799-97f7-d1b53dca84f4))
(pad "10" smd rect locked (at -7.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp ab65ad78-10bf-4666-8360-e040fc4e0a88))
(pad "11" smd rect locked (at -7.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 2d0342e2-5879-4770-8283-d807f7a21734))
(pad "12" smd rect locked (at -6.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp a227e72f-edbc-47aa-8810-bca3392fd292))
(pad "13" smd rect locked (at -6.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp b71fbad5-5c6c-44c0-a0a7-5ac74a01ae69))
(pad "14" smd rect locked (at -5.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 70b73780-bed4-4c8e-b6a2-508217d06277))
(pad "15" smd rect locked (at -5.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 17f20097-7f74-41ca-8325-c768a9b8655c))
(pad "16" smd rect locked (at -4.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 992dac85-96c7-4254-ab80-3f7b3c68e567))
(pad "17" smd rect locked (at -4.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 28c898b6-1c96-4dd4-979c-99799261d43a))
(pad "18" smd rect locked (at -3.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp cb1c8448-40e8-40b9-ab18-01f59bf429dc))
(pad "19" smd rect locked (at -3.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 1d0c89c1-119c-483f-8b51-54a80c32762b))
(pad "20" smd rect locked (at -2.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 7367b5aa-bc3b-4fec-869e-b85ad3920d7e))
(pad "21" smd rect locked (at -2.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 3b421b80-5de6-4059-bc40-265defe4046d))
(pad "22" smd rect locked (at -1.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp fbf1bc49-6349-49f7-90a6-dcc862659f8b))
(pad "23" smd rect locked (at -1.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 92c6c38f-dbd4-477b-ac6f-5390011d20eb))
(pad "24" smd rect locked (at -0.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 52104748-4436-460d-8c39-1180ed574bad))
(pad "25" smd rect locked (at -0.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 3423931e-6b11-4131-ad78-a16bff8f773e))
(pad "26" smd rect locked (at 0.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 66665c53-d66b-4105-859f-b9ca3ef18810))
(pad "27" smd rect locked (at 0.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 50a2cfff-8628-491a-b858-cfe8db6437b7))
(pad "28" smd rect locked (at 1.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 5b579e6b-81cb-4ae9-b0ba-07ddc629f5e3))
(pad "29" smd rect locked (at 1.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 08d8946b-a2d1-45b0-b7a3-6e8b945cec67))
(pad "30" smd rect locked (at 2.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 85871820-9e35-4967-aa03-10bddcb2f5fd))
(pad "31" smd rect locked (at 2.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp af86b8ba-1e94-45b0-880a-43ab28ab2e79))
(pad "32" smd rect locked (at 3.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp cf89f04e-872e-4ee7-8507-584bdebf187f))
(pad "33" smd rect locked (at 3.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 6446f55e-c9a0-4e3a-a284-3e81bde619e3))
(pad "34" smd rect locked (at 4.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp b5d5eb1d-e9ac-49a6-a23b-f7c05a3a1ea7))
(pad "35" smd rect locked (at 4.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 3d87c495-23f0-4ec0-9f0d-4d0cc39404d4))
(pad "36" smd rect locked (at 5.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 8fae0fe0-b15e-4ae0-8500-46ac5a4b533b))
(pad "37" smd rect locked (at 5.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 09b47778-701a-42f5-bb27-cb29871b401b))
(pad "38" smd rect locked (at 6.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 1de2db96-0002-4179-bce6-4390addbe0cb))
(pad "39" smd rect locked (at 6.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 170aa499-ab08-480e-a5b1-221859d19e94))
(pad "40" smd rect locked (at 7.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp e11212a1-6916-40b2-bd38-422645a8ea20))
(pad "41" smd rect locked (at 7.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 7e73f4bc-7a60-4a15-85b8-59d7fdce7866))
(pad "42" smd rect locked (at 8.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 4a3c5123-5668-433b-833a-b41dac187898))
(pad "43" smd rect locked (at 8.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 2b20a8c5-f444-44e8-a268-b3ca52d3f0e3))
(pad "44" smd rect locked (at 9.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 31d12518-8498-4d48-93e7-b22e2c322582))
(pad "45" smd rect locked (at 9.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp fb282b66-454d-4357-bf93-68c60b9d0447))
(pad "46" smd rect locked (at 10.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 0955a735-c68f-4482-8a75-4d517a9fd4ac))
(pad "47" smd rect locked (at 10.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 6e0e5b10-90d4-4e5d-8f3b-aca86c7de071))
(pad "48" smd rect locked (at 11.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 652893ad-ff68-444c-9fb1-d10c8b7b75bf))
(pad "49" smd rect locked (at 11.75 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 95d7859b-4a1e-4e56-a441-7944378038e2))
(pad "50" smd rect locked (at 12.25 10.39 180) (size 0.275 1.2) (layers "F.Cu" "F.Paste")
(solder_mask_margin 0.1016) (tstamp 51f513ca-423d-4ec1-8618-ba944d6ca5e9))
(pad "MP" smd roundrect locked (at 14.35 13.09 180) (size 2.4 2.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.125)
(solder_mask_margin 0.1016) (tstamp 582bdb91-1ead-4160-b1bd-6d70f240792c))
(pad "MP" smd roundrect locked (at -14.35 13.09 180) (size 2.4 2.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.125)
(solder_mask_margin 0.1016) (tstamp cc80ee50-cdaa-47f5-8410-09359f16451f))
(model "${KICAD_USER_3DMODEL_DIR}/541325062_colored.step"
(offset (xyz 0 -15.5 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KICAD_USER_3DMODEL_DIR}/280QV10 v5.step"
(offset (xyz 0 -22.25 -6))
(scale (xyz 1 1 1))
(rotate (xyz 180 0 180))
)
)

View File

@ -0,0 +1,59 @@
(footprint "USB_C_Receptacle_HRO_TYPE-C-31-M-12" (version 20211014) (generator pcbnew)
(layer "F.Cu")
(tedit 5D3C0721)
(descr "USB Type-C receptacle for USB 2.0 and PD, http://www.krhro.com/uploads/soft/180320/1-1P320120243.pdf")
(tags "usb usb-c 2.0 pd")
(attr smd)
(fp_text reference "REF**" (at 0 -5.645) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp a144ce76-cc23-44fb-8108-bf18e64a4c3d)
)
(fp_text value "USB_C_Receptacle_HRO_TYPE-C-31-M-12" (at 0 5.1) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 0ca5cf76-e951-4e58-a402-14dc42a864b3)
)
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 9189a13a-f353-4ddb-8257-370c54398cd0)
)
(fp_line (start 4.7 -1.9) (end 4.7 0.1) (layer "F.SilkS") (width 0.12) (tstamp 177e7db1-b916-4e65-ace8-532e6e1f85db))
(fp_line (start -4.7 2) (end -4.7 3.9) (layer "F.SilkS") (width 0.12) (tstamp 7abeef8d-db92-4e88-b3d6-7c7e4efa4938))
(fp_line (start -4.7 -1.9) (end -4.7 0.1) (layer "F.SilkS") (width 0.12) (tstamp 9513b845-7495-41b4-99da-c8a12a5f4b76))
(fp_line (start 4.7 2) (end 4.7 3.9) (layer "F.SilkS") (width 0.12) (tstamp bd122681-67e3-4c23-b564-57e345c7c818))
(fp_line (start -4.7 3.9) (end 4.7 3.9) (layer "F.SilkS") (width 0.12) (tstamp f40329f5-4d09-479c-8f81-97fdcd13c5cd))
(fp_line (start -5.32 -5.27) (end 5.32 -5.27) (layer "F.CrtYd") (width 0.05) (tstamp 3215d7dd-650e-4c6a-86e5-bc970c8d9c6c))
(fp_line (start 5.32 -5.27) (end 5.32 4.15) (layer "F.CrtYd") (width 0.05) (tstamp 3b610068-7f90-495b-a772-9a6b7e6a55c9))
(fp_line (start -5.32 4.15) (end 5.32 4.15) (layer "F.CrtYd") (width 0.05) (tstamp c38cb6a1-740b-49d2-b49e-f8ce3382fe48))
(fp_line (start -5.32 -5.27) (end -5.32 4.15) (layer "F.CrtYd") (width 0.05) (tstamp d939342c-cab3-429e-ad71-738d34173267))
(fp_line (start -4.47 -3.65) (end -4.47 3.65) (layer "F.Fab") (width 0.1) (tstamp 47095738-bb75-4e91-802c-f92840c443b3))
(fp_line (start -4.47 -3.65) (end 4.47 -3.65) (layer "F.Fab") (width 0.1) (tstamp 6142486d-ba8a-4b38-a6ca-d52b6a020ef2))
(fp_line (start -4.47 3.65) (end 4.47 3.65) (layer "F.Fab") (width 0.1) (tstamp 84966fee-864e-4cdc-8345-c62bca33694f))
(fp_line (start 4.47 -3.65) (end 4.47 3.65) (layer "F.Fab") (width 0.1) (tstamp f6b3cf35-21be-4e1f-8c99-3404cfc41d3f))
(pad "" np_thru_hole circle (at 2.89 -2.6) (size 0.65 0.65) (drill 0.65) (layers *.Cu *.Mask) (tstamp 4558f1f0-2fa3-46e1-a220-284fa2707bb5))
(pad "" np_thru_hole circle (at -2.89 -2.6) (size 0.65 0.65) (drill 0.65) (layers *.Cu *.Mask) (tstamp e13b4b37-788a-41d5-87ca-c66be43ee32d))
(pad "A1" smd rect (at -3.25 -4.045) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 245fae56-8b58-4bd8-bbf1-36624dc3fa3e))
(pad "A4" smd rect (at -2.45 -4.045) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 412cd3c1-0d89-4ca6-be0e-1b17d8471f5a))
(pad "A5" smd rect (at -1.25 -4.045) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 93953890-acba-456b-bb6d-b1e79179ffa0))
(pad "A6" smd rect (at -0.25 -4.045) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 6a642da3-3122-4031-a6e9-68498b0f5bb9))
(pad "A7" smd rect (at 0.25 -4.045) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 01b9b129-063c-4bae-b620-9610006254cb))
(pad "A8" smd rect (at 1.25 -4.045) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 46ecdf8a-0917-4257-a388-b77e7451dc23))
(pad "A9" smd rect (at 2.45 -4.045) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp a35f3da7-7460-43f1-99b7-9ed521817778))
(pad "A12" smd rect (at 3.25 -4.045) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 3795b0f1-50f9-473e-9d26-381fc08b3c2d))
(pad "B1" smd rect (at 3.25 -4.045) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp c9e8a0db-2a60-41d9-b783-6c4e64a8fb5d))
(pad "B4" smd rect (at 2.45 -4.045) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 51b193ee-c8c2-4ee6-8d8c-14b79a2c1520))
(pad "B5" smd rect (at 1.75 -4.045) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 45f8f791-f545-4341-9848-fb81a03703a6))
(pad "B6" smd rect (at 0.75 -4.045) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp efc27675-62a0-44de-8210-29c2190dd309))
(pad "B7" smd rect (at -0.75 -4.045) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 96622dcb-c1cc-4b7d-8455-8cd0ce1e5c34))
(pad "B8" smd rect (at -1.75 -4.045) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 09bb6e12-e7e5-4788-b43e-4cc6c50a557a))
(pad "B9" smd rect (at -2.45 -4.045) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 70539c09-2020-4a42-a156-43d1513170d0))
(pad "B12" smd rect (at -3.25 -4.045) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp eda87c04-3a59-4e2c-a9bd-f59ed31672aa))
(pad "S1" thru_hole oval (at -4.32 1.05) (size 1 1.6) (drill oval 0.6 1.2) (layers *.Cu *.Mask) (tstamp 5991ca6f-c5c1-4692-8fe9-cf4b7ca50c4b))
(pad "S1" thru_hole oval (at -4.32 -3.13) (size 1 2.1) (drill oval 0.6 1.7) (layers *.Cu *.Mask) (tstamp 69c3dc88-a37e-49ef-ae4d-497d3191ad5b))
(pad "S1" thru_hole oval (at 4.32 -3.13) (size 1 2.1) (drill oval 0.6 1.7) (layers *.Cu *.Mask) (tstamp af5ae63f-ef36-487e-a6b8-831b84890f25))
(pad "S1" thru_hole oval (at 4.32 1.05) (size 1 1.6) (drill oval 0.6 1.2) (layers *.Cu *.Mask) (tstamp e783dde5-f762-4528-9b55-9220820b0b1c))
(model "${KICAD6_3DMODEL_DIR}/Connector_USB.3dshapes/USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)

View File

@ -0,0 +1,70 @@
(footprint "XDCR_LIS3DHTR" (version 20211014) (generator pcbnew)
(layer "F.Cu")
(tedit 63C5A93A)
(property "MANUFACTURER" "STMicroelectronics")
(property "MAXIMUM_PACKAGE_HEIGHT" "1mm")
(property "PARTREV" "2")
(property "STANDARD" "Manufacturer Recommendations")
(property "Sheetfile" "Remote.kicad_sch")
(property "Sheetname" "")
(attr smd)
(fp_text reference "U5" (at 2.95 0 180) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 374a0097-2de3-4564-b932-de03f826f800)
)
(fp_text value "LIS3DHTR" (at 2.214931 2.197712) (layer "F.Fab")
(effects (font (size 0.480549 0.480549) (thickness 0.15)))
(tstamp 52e1e569-3bfd-4f45-a6db-9e1968d681e6)
)
(fp_line (start -1.5 1.5) (end -0.99 1.5) (layer "F.SilkS") (width 0.127) (tstamp 2081c3ad-5787-4332-ba82-277e5241665b))
(fp_line (start 0.99 1.5) (end 1.5 1.5) (layer "F.SilkS") (width 0.127) (tstamp 2a1b7413-e170-4045-9dac-153a3b21bf7e))
(fp_line (start -0.99 -1.5) (end -1.5 -1.5) (layer "F.SilkS") (width 0.127) (tstamp 9322c011-81bb-41c7-85f5-40c67b722006))
(fp_line (start 0.99 -1.5) (end 1.5 -1.5) (layer "F.SilkS") (width 0.127) (tstamp a2669417-e994-4b1d-b2f2-3dce289d6e30))
(fp_circle (center -2 -1.275) (end -1.9 -1.275) (layer "F.SilkS") (width 0.2) (fill none) (tstamp d50ae10a-f8a6-439b-9dad-9976c141662c))
(fp_line (start 1.75 -1.75) (end -1.75 -1.75) (layer "F.CrtYd") (width 0.05) (tstamp 1da0581e-0634-4f86-a649-40e28a617db1))
(fp_line (start 1.75 1.75) (end 1.75 -1.75) (layer "F.CrtYd") (width 0.05) (tstamp 90778098-11d2-4387-8034-6fb9e7499f01))
(fp_line (start -1.75 -1.75) (end -1.75 1.75) (layer "F.CrtYd") (width 0.05) (tstamp e71ab22f-26b3-470d-9261-9b9561982f75))
(fp_line (start -1.75 1.75) (end 1.75 1.75) (layer "F.CrtYd") (width 0.05) (tstamp fe2760a0-53e7-4010-891f-881eab63f2a9))
(fp_line (start 1.5 1.5) (end 1.5 -1.5) (layer "F.Fab") (width 0.127) (tstamp 47630037-5ac1-48a3-bd98-d1a71262f6f6))
(fp_line (start -1.5 -1.5) (end -1.5 1.5) (layer "F.Fab") (width 0.127) (tstamp 556f507a-48ab-4f3c-8abb-3f0f3d91aa76))
(fp_line (start 1.5 -1.5) (end -1.5 -1.5) (layer "F.Fab") (width 0.127) (tstamp bd3ff0a5-6d77-4d67-8d0b-b4976c46846c))
(fp_line (start -1.5 1.5) (end 1.5 1.5) (layer "F.Fab") (width 0.127) (tstamp ebb0933f-e66f-4aba-880c-7fca8b9f79d8))
(fp_circle (center -2 -1.275) (end -1.9 -1.275) (layer "F.Fab") (width 0.2) (fill none) (tstamp c94c5700-aec0-41d1-a114-505756d804f9))
(pad "1" smd rect (at -1.3 -1 180) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp 7ce2738e-4072-48e7-a518-8a580ecee0f5))
(pad "2" smd rect (at -1.3 -0.5 180) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp 04ea73f6-28d1-4d85-9bb8-4e5a753b3f65))
(pad "3" smd rect (at -1.3 0 180) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp 482ffa32-4456-4c86-b66d-dceb6c27eeac))
(pad "4" smd rect (at -1.3 0.5 180) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp e8e4d6e7-cc95-4968-94fe-07b9bfef73f0))
(pad "5" smd rect (at -1.3 1 180) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp 3b983567-e799-4945-857c-c5f9170ab567))
(pad "6" smd rect (at -0.5 1.3 90) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp 28f8fe79-c66e-4459-92d7-108b74968d32))
(pad "7" smd rect (at 0 1.3 90) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp 914f59c3-ce05-4f40-bfdc-047facb8783a))
(pad "8" smd rect (at 0.5 1.3 90) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp 5f14e7da-b7d5-407f-95b8-eb7749d2a093))
(pad "9" smd rect (at 1.3 1) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp 519d0b87-5fd1-417c-b3ea-eecd61e657e0))
(pad "10" smd rect (at 1.3 0.5) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp d6e846ea-ffd3-4433-90f9-6fa4e33544d3))
(pad "11" smd rect (at 1.3 0) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp a91a8bcf-e4a1-416e-8222-7ea6b67da753))
(pad "12" smd rect (at 1.3 -0.5) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp 6c727f12-b586-47f1-9a08-5eb12ad424b2))
(pad "13" smd rect (at 1.3 -1) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp 90f01d37-428b-4c39-804c-41bccfcd87d4))
(pad "14" smd rect (at 0.5 -1.3 90) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp 7badf7c8-880d-4196-b7b4-8fc3eb5d54f4))
(pad "15" smd rect (at 0 -1.3 90) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp d23e0d93-144a-486b-b85f-df6457adfb2f))
(pad "16" smd rect (at -0.5 -1.3 90) (size 0.8 0.3) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_paste_margin_ratio -0.05) (tstamp ff5fb629-bba5-476c-9a80-43cb06181e4d))
(model "${KICAD_USER_3DMODEL_DIR}/LIS3DHTR.step"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz -90 0 0))
)
)

View File

@ -0,0 +1,815 @@
(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "Conn_01x50" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
(property "Reference" "J" (at 0 63.5 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "Conn_01x50" (at 0 -66.04 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "omoteLib:TFT_2.83IN_240X320_50PIN" (at 1.27 -68.58 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 0 12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "connector" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Generic connector, single row, 01x50" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "Conn_01x50_1_1"
(rectangle (start -1.27 -63.373) (end 0 -63.627)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -60.833) (end 0 -61.087)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -58.293) (end 0 -58.547)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -55.753) (end 0 -56.007)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -53.213) (end 0 -53.467)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -50.673) (end 0 -50.927)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -48.133) (end 0 -48.387)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -45.593) (end 0 -45.847)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -43.053) (end 0 -43.307)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -40.513) (end 0 -40.767)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -37.973) (end 0 -38.227)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -35.433) (end 0 -35.687)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -32.893) (end 0 -33.147)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -30.353) (end 0 -30.607)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -27.813) (end 0 -28.067)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -25.273) (end 0 -25.527)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -22.733) (end 0 -22.987)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -20.193) (end 0 -20.447)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -17.653) (end 0 -17.907)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -15.113) (end 0 -15.367)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -12.573) (end 0 -12.827)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -10.033) (end 0 -10.287)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -7.493) (end 0 -7.747)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -4.953) (end 0 -5.207)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -2.413) (end 0 -2.667)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 0.127) (end 0 -0.127)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 2.667) (end 0 2.413)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 5.207) (end 0 4.953)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 7.747) (end 0 7.493)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 10.287) (end 0 10.033)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 12.827) (end 0 12.573)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 15.367) (end 0 15.113)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 17.907) (end 0 17.653)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 20.447) (end 0 20.193)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 22.987) (end 0 22.733)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 25.527) (end 0 25.273)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 28.067) (end 0 27.813)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 30.607) (end 0 30.353)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 33.147) (end 0 32.893)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 35.687) (end 0 35.433)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 38.227) (end 0 37.973)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 40.767) (end 0 40.513)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 43.307) (end 0 43.053)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 45.847) (end 0 45.593)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 48.387) (end 0 48.133)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 50.927) (end 0 50.673)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 53.467) (end 0 53.213)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 56.007) (end 0 55.753)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 58.547) (end 0 58.293)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 61.087) (end 0 60.833)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 62.23) (end 1.27 -64.77)
(stroke (width 0.254) (type default))
(fill (type background))
)
(pin passive line (at -5.08 60.96 0) (length 3.81)
(name "Pin_1" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 38.1 0) (length 3.81)
(name "Pin_10" (effects (font (size 1.27 1.27))))
(number "10" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 35.56 0) (length 3.81)
(name "Pin_11" (effects (font (size 1.27 1.27))))
(number "11" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 33.02 0) (length 3.81)
(name "Pin_12" (effects (font (size 1.27 1.27))))
(number "12" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 30.48 0) (length 3.81)
(name "Pin_13" (effects (font (size 1.27 1.27))))
(number "13" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 27.94 0) (length 3.81)
(name "Pin_14" (effects (font (size 1.27 1.27))))
(number "14" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 25.4 0) (length 3.81)
(name "Pin_15" (effects (font (size 1.27 1.27))))
(number "15" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 22.86 0) (length 3.81)
(name "Pin_16" (effects (font (size 1.27 1.27))))
(number "16" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 20.32 0) (length 3.81)
(name "Pin_17" (effects (font (size 1.27 1.27))))
(number "17" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 17.78 0) (length 3.81)
(name "Pin_18" (effects (font (size 1.27 1.27))))
(number "18" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 15.24 0) (length 3.81)
(name "Pin_19" (effects (font (size 1.27 1.27))))
(number "19" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 58.42 0) (length 3.81)
(name "Pin_2" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 12.7 0) (length 3.81)
(name "Pin_20" (effects (font (size 1.27 1.27))))
(number "20" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 10.16 0) (length 3.81)
(name "Pin_21" (effects (font (size 1.27 1.27))))
(number "21" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 7.62 0) (length 3.81)
(name "Pin_22" (effects (font (size 1.27 1.27))))
(number "22" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 5.08 0) (length 3.81)
(name "Pin_23" (effects (font (size 1.27 1.27))))
(number "23" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 2.54 0) (length 3.81)
(name "Pin_24" (effects (font (size 1.27 1.27))))
(number "24" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 0 0) (length 3.81)
(name "Pin_25" (effects (font (size 1.27 1.27))))
(number "25" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -2.54 0) (length 3.81)
(name "Pin_26" (effects (font (size 1.27 1.27))))
(number "26" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -5.08 0) (length 3.81)
(name "Pin_27" (effects (font (size 1.27 1.27))))
(number "27" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -7.62 0) (length 3.81)
(name "Pin_28" (effects (font (size 1.27 1.27))))
(number "28" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -10.16 0) (length 3.81)
(name "Pin_29" (effects (font (size 1.27 1.27))))
(number "29" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 55.88 0) (length 3.81)
(name "Pin_3" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -12.7 0) (length 3.81)
(name "Pin_30" (effects (font (size 1.27 1.27))))
(number "30" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -15.24 0) (length 3.81)
(name "Pin_31" (effects (font (size 1.27 1.27))))
(number "31" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -17.78 0) (length 3.81)
(name "Pin_32" (effects (font (size 1.27 1.27))))
(number "32" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -20.32 0) (length 3.81)
(name "Pin_33" (effects (font (size 1.27 1.27))))
(number "33" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -22.86 0) (length 3.81)
(name "Pin_34" (effects (font (size 1.27 1.27))))
(number "34" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -25.4 0) (length 3.81)
(name "Pin_35" (effects (font (size 1.27 1.27))))
(number "35" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -27.94 0) (length 3.81)
(name "Pin_36" (effects (font (size 1.27 1.27))))
(number "36" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -30.48 0) (length 3.81)
(name "Pin_37" (effects (font (size 1.27 1.27))))
(number "37" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -33.02 0) (length 3.81)
(name "Pin_38" (effects (font (size 1.27 1.27))))
(number "38" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -35.56 0) (length 3.81)
(name "Pin_39" (effects (font (size 1.27 1.27))))
(number "39" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 53.34 0) (length 3.81)
(name "Pin_4" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -38.1 0) (length 3.81)
(name "Pin_40" (effects (font (size 1.27 1.27))))
(number "40" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -40.64 0) (length 3.81)
(name "Pin_41" (effects (font (size 1.27 1.27))))
(number "41" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -43.18 0) (length 3.81)
(name "Pin_41" (effects (font (size 1.27 1.27))))
(number "42" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -45.72 0) (length 3.81)
(name "Pin_43" (effects (font (size 1.27 1.27))))
(number "43" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -48.26 0) (length 3.81)
(name "Pin_44" (effects (font (size 1.27 1.27))))
(number "44" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -50.8 0) (length 3.81)
(name "Pin_45" (effects (font (size 1.27 1.27))))
(number "45" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -53.34 0) (length 3.81)
(name "Pin_46" (effects (font (size 1.27 1.27))))
(number "46" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -55.88 0) (length 3.81)
(name "Pin_47" (effects (font (size 1.27 1.27))))
(number "47" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -58.42 0) (length 3.81)
(name "Pin_48" (effects (font (size 1.27 1.27))))
(number "48" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -60.96 0) (length 3.81)
(name "Pin_49" (effects (font (size 1.27 1.27))))
(number "49" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 50.8 0) (length 3.81)
(name "Pin_5" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -63.5 0) (length 3.81)
(name "Pin_50" (effects (font (size 1.27 1.27))))
(number "50" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 48.26 0) (length 3.81)
(name "Pin_6" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 45.72 0) (length 3.81)
(name "Pin_7" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 43.18 0) (length 3.81)
(name "Pin_8" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 40.64 0) (length 3.81)
(name "Pin_9" (effects (font (size 1.27 1.27))))
(number "9" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 0 -68.58 90) (length 3.81)
(name "MP" (effects (font (size 1.27 1.27))))
(number "MP" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "LIS3DHTR" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
(property "Reference" "U5" (at 0 19.05 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "LIS3DHTR" (at 0 16.51 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "XDCR_LIS3DHTR" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)) (justify bottom) hide)
)
(property "Datasheet" "https://www.st.com/content/ccc/resource/technical/document/datasheet/3c/ae/50/85/d6/b1/46/fe/CD00274221.pdf/files/CD00274221.pdf/jcr:content/translations/en.CD00274221.pdf" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "MAXIMUM_PACKAGE_HEIGHT" "1mm" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)) (justify bottom) hide)
)
(property "STANDARD" "Manufacturer Recommendations" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)) (justify bottom) hide)
)
(property "MANUFACTURER" "STMicroelectronics" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)) (justify bottom) hide)
)
(property "PARTREV" "2" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)) (justify bottom) hide)
)
(symbol "LIS3DHTR_0_0"
(rectangle (start -11.43 13.97) (end 11.43 -13.97)
(stroke (width 0.254) (type default))
(fill (type background))
)
(pin power_in line (at 16.51 8.89 180) (length 5.08)
(name "VDD_IO" (effects (font (size 1.016 1.016))))
(number "1" (effects (font (size 1.016 1.016))))
)
(pin passive line (at 16.51 -6.35 180) (length 5.08)
(name "RES" (effects (font (size 1.016 1.016))))
(number "10" (effects (font (size 1.016 1.016))))
)
(pin output line (at 16.51 2.54 180) (length 5.08)
(name "INT1" (effects (font (size 1.016 1.016))))
(number "11" (effects (font (size 1.016 1.016))))
)
(pin power_in line (at 16.51 -11.43 180) (length 5.08)
(name "GND" (effects (font (size 1.016 1.016))))
(number "12" (effects (font (size 1.016 1.016))))
)
(pin input line (at -16.51 6.35 0) (length 5.08)
(name "ADC3" (effects (font (size 1.016 1.016))))
(number "13" (effects (font (size 1.016 1.016))))
)
(pin power_in line (at 16.51 11.43 180) (length 5.08)
(name "VDD" (effects (font (size 1.016 1.016))))
(number "14" (effects (font (size 1.016 1.016))))
)
(pin input line (at -16.51 8.89 0) (length 5.08)
(name "ADC2" (effects (font (size 1.016 1.016))))
(number "15" (effects (font (size 1.016 1.016))))
)
(pin input line (at -16.51 11.43 0) (length 5.08)
(name "ADC1" (effects (font (size 1.016 1.016))))
(number "16" (effects (font (size 1.016 1.016))))
)
(pin input line (at -16.51 2.54 0) (length 5.08)
(name "NC" (effects (font (size 1.016 1.016))))
(number "2" (effects (font (size 1.016 1.016))))
)
(pin input line (at -16.51 0 0) (length 5.08)
(name "NC" (effects (font (size 1.016 1.016))))
(number "3" (effects (font (size 1.016 1.016))))
)
(pin input clock (at -16.51 -6.35 0) (length 5.08)
(name "SCL/SPC" (effects (font (size 1.016 1.016))))
(number "4" (effects (font (size 1.016 1.016))))
)
(pin power_in line (at 16.51 -8.89 180) (length 5.08)
(name "GND" (effects (font (size 1.016 1.016))))
(number "5" (effects (font (size 1.016 1.016))))
)
(pin bidirectional line (at -16.51 -8.89 0) (length 5.08)
(name "SDA/SDI/SDO" (effects (font (size 1.016 1.016))))
(number "6" (effects (font (size 1.016 1.016))))
)
(pin bidirectional line (at -16.51 -11.43 0) (length 5.08)
(name "SDO/SA0" (effects (font (size 1.016 1.016))))
(number "7" (effects (font (size 1.016 1.016))))
)
(pin input line (at -16.51 -3.81 0) (length 5.08)
(name "CS" (effects (font (size 1.016 1.016))))
(number "8" (effects (font (size 1.016 1.016))))
)
(pin output line (at 16.51 0 180) (length 5.08)
(name "INT2" (effects (font (size 1.016 1.016))))
(number "9" (effects (font (size 1.016 1.016))))
)
)
)
(symbol "TSSP77038" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
(property "Reference" "U6" (at -1.27 11.43 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "TSSP77038" (at -1.27 8.89 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "omoteLib:Heimdall vertical" (at -1.27 -11.43 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://www.vishay.com/docs/82470/tssp770.pdf" (at 16.51 7.62 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "opto IR receiver" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "IR Receiver Modules for Remote Control Systems" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "Vishay*MOLD*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "TSSP77038_0_0"
(polyline
(pts
(xy 1.905 -5.08)
(xy 0.127 -5.08)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.905 5.08)
(xy 0.127 5.08)
)
(stroke (width 0) (type default))
(fill (type none))
)
(text "DEMOD" (at -3.175 0.254 900)
(effects (font (size 1.524 1.524)))
)
)
(symbol "TSSP77038_0_1"
(rectangle (start -10.16 6.35) (end 7.62 -8.89)
(stroke (width 0.254) (type default))
(fill (type background))
)
(rectangle (start -6.096 5.588) (end 0.127 -5.588)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.763 0.381)
(xy -9.652 1.27)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.763 0.381)
(xy -9.271 0.381)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.763 0.381)
(xy -8.763 0.889)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.636 -0.635)
(xy -9.525 0.254)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.636 -0.635)
(xy -9.144 -0.635)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.636 -0.635)
(xy -8.636 -0.127)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.382 -1.016)
(xy -6.731 -1.016)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.27 -2.921)
(xy 0.127 -2.921)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.27 -1.905)
(xy 1.27 -3.81)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.397 -3.556)
(xy 1.524 -3.556)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.651 -3.556)
(xy 1.524 -3.556)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.651 -3.556)
(xy 1.651 -3.302)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.905 0)
(xy 1.905 1.27)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.905 4.445)
(xy 1.905 5.08)
(xy 2.54 5.08)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.382 0.635)
(xy -6.731 0.635)
(xy -7.62 -1.016)
(xy -8.382 0.635)
)
(stroke (width 0) (type default))
(fill (type outline))
)
(polyline
(pts
(xy -6.096 1.397)
(xy -7.62 1.397)
(xy -7.62 -1.778)
(xy -6.096 -1.778)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.27 -3.175)
(xy 1.905 -3.81)
(xy 1.905 -5.08)
(xy 2.54 -5.08)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.27 -2.54)
(xy 1.905 -1.905)
(xy 1.905 0)
(xy 2.54 0)
)
(stroke (width 0) (type default))
(fill (type none))
)
(rectangle (start 2.54 1.27) (end 1.27 4.445)
(stroke (width 0) (type default))
(fill (type none))
)
)
(symbol "TSSP77038_1_1"
(pin power_in line (at 10.16 -5.08 180) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin output line (at 10.16 0 180) (length 2.54)
(name "OUT" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 10.16 5.08 180) (length 2.54)
(name "Vs" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 10.16 -7.62 180) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "USBLC6-2P6" (in_bom yes) (on_board yes)
(property "Reference" "U4" (at -7.62 8.89 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "USBLC6-2P6" (at 2.54 -3.81 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "Package_TO_SOT_SMD:SOT-666" (at -1.27 17.78 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://www.st.com/resource/en/datasheet/usblc6-2.pdf" (at 8.89 -6.35 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "usb ethernet video" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Very low capacitance ESD protection diode, 2 data-line, SOT-666" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "SOT?666*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "USBLC6-2P6_0_1"
(rectangle (start -7.62 7.62) (end 7.62 -2.54)
(stroke (width 0.254) (type default))
(fill (type background))
)
)
(symbol "USBLC6-2P6_1_1"
(pin passive line (at -10.16 3.81 0) (length 2.54)
(name "I/O1" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 0 -5.08 90) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -10.16 1.27 0) (length 2.54)
(name "I/O2" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 10.16 1.27 180) (length 2.54)
(name "I/O2" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 0 10.16 270) (length 2.54)
(name "VBUS" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 10.16 3.81 180) (length 2.54)
(name "I/O1" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
)
)
)

View File

@ -0,0 +1,815 @@
(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "Conn_01x50" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
(property "Reference" "J" (at 0 63.5 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "Conn_01x50" (at 0 -66.04 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "omoteLib:TFT_2.83IN_240X320_50PIN" (at 1.27 -68.58 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 0 12.7 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "connector" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Generic connector, single row, 01x50" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "Conn_01x50_1_1"
(rectangle (start -1.27 -63.373) (end 0 -63.627)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -60.833) (end 0 -61.087)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -58.293) (end 0 -58.547)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -55.753) (end 0 -56.007)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -53.213) (end 0 -53.467)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -50.673) (end 0 -50.927)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -48.133) (end 0 -48.387)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -45.593) (end 0 -45.847)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -43.053) (end 0 -43.307)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -40.513) (end 0 -40.767)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -37.973) (end 0 -38.227)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -35.433) (end 0 -35.687)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -32.893) (end 0 -33.147)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -30.353) (end 0 -30.607)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -27.813) (end 0 -28.067)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -25.273) (end 0 -25.527)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -22.733) (end 0 -22.987)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -20.193) (end 0 -20.447)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -17.653) (end 0 -17.907)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -15.113) (end 0 -15.367)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -12.573) (end 0 -12.827)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -10.033) (end 0 -10.287)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -7.493) (end 0 -7.747)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -4.953) (end 0 -5.207)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 -2.413) (end 0 -2.667)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 0.127) (end 0 -0.127)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 2.667) (end 0 2.413)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 5.207) (end 0 4.953)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 7.747) (end 0 7.493)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 10.287) (end 0 10.033)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 12.827) (end 0 12.573)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 15.367) (end 0 15.113)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 17.907) (end 0 17.653)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 20.447) (end 0 20.193)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 22.987) (end 0 22.733)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 25.527) (end 0 25.273)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 28.067) (end 0 27.813)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 30.607) (end 0 30.353)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 33.147) (end 0 32.893)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 35.687) (end 0 35.433)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 38.227) (end 0 37.973)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 40.767) (end 0 40.513)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 43.307) (end 0 43.053)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 45.847) (end 0 45.593)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 48.387) (end 0 48.133)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 50.927) (end 0 50.673)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 53.467) (end 0 53.213)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 56.007) (end 0 55.753)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 58.547) (end 0 58.293)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 61.087) (end 0 60.833)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(rectangle (start -1.27 62.23) (end 1.27 -64.77)
(stroke (width 0.254) (type default))
(fill (type background))
)
(pin passive line (at -5.08 60.96 0) (length 3.81)
(name "Pin_1" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 38.1 0) (length 3.81)
(name "Pin_10" (effects (font (size 1.27 1.27))))
(number "10" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 35.56 0) (length 3.81)
(name "Pin_11" (effects (font (size 1.27 1.27))))
(number "11" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 33.02 0) (length 3.81)
(name "Pin_12" (effects (font (size 1.27 1.27))))
(number "12" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 30.48 0) (length 3.81)
(name "Pin_13" (effects (font (size 1.27 1.27))))
(number "13" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 27.94 0) (length 3.81)
(name "Pin_14" (effects (font (size 1.27 1.27))))
(number "14" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 25.4 0) (length 3.81)
(name "Pin_15" (effects (font (size 1.27 1.27))))
(number "15" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 22.86 0) (length 3.81)
(name "Pin_16" (effects (font (size 1.27 1.27))))
(number "16" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 20.32 0) (length 3.81)
(name "Pin_17" (effects (font (size 1.27 1.27))))
(number "17" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 17.78 0) (length 3.81)
(name "Pin_18" (effects (font (size 1.27 1.27))))
(number "18" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 15.24 0) (length 3.81)
(name "Pin_19" (effects (font (size 1.27 1.27))))
(number "19" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 58.42 0) (length 3.81)
(name "Pin_2" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 12.7 0) (length 3.81)
(name "Pin_20" (effects (font (size 1.27 1.27))))
(number "20" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 10.16 0) (length 3.81)
(name "Pin_21" (effects (font (size 1.27 1.27))))
(number "21" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 7.62 0) (length 3.81)
(name "Pin_22" (effects (font (size 1.27 1.27))))
(number "22" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 5.08 0) (length 3.81)
(name "Pin_23" (effects (font (size 1.27 1.27))))
(number "23" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 2.54 0) (length 3.81)
(name "Pin_24" (effects (font (size 1.27 1.27))))
(number "24" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 0 0) (length 3.81)
(name "Pin_25" (effects (font (size 1.27 1.27))))
(number "25" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -2.54 0) (length 3.81)
(name "Pin_26" (effects (font (size 1.27 1.27))))
(number "26" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -5.08 0) (length 3.81)
(name "Pin_27" (effects (font (size 1.27 1.27))))
(number "27" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -7.62 0) (length 3.81)
(name "Pin_28" (effects (font (size 1.27 1.27))))
(number "28" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -10.16 0) (length 3.81)
(name "Pin_29" (effects (font (size 1.27 1.27))))
(number "29" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 55.88 0) (length 3.81)
(name "Pin_3" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -12.7 0) (length 3.81)
(name "Pin_30" (effects (font (size 1.27 1.27))))
(number "30" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -15.24 0) (length 3.81)
(name "Pin_31" (effects (font (size 1.27 1.27))))
(number "31" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -17.78 0) (length 3.81)
(name "Pin_32" (effects (font (size 1.27 1.27))))
(number "32" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -20.32 0) (length 3.81)
(name "Pin_33" (effects (font (size 1.27 1.27))))
(number "33" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -22.86 0) (length 3.81)
(name "Pin_34" (effects (font (size 1.27 1.27))))
(number "34" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -25.4 0) (length 3.81)
(name "Pin_35" (effects (font (size 1.27 1.27))))
(number "35" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -27.94 0) (length 3.81)
(name "Pin_36" (effects (font (size 1.27 1.27))))
(number "36" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -30.48 0) (length 3.81)
(name "Pin_37" (effects (font (size 1.27 1.27))))
(number "37" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -33.02 0) (length 3.81)
(name "Pin_38" (effects (font (size 1.27 1.27))))
(number "38" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -35.56 0) (length 3.81)
(name "Pin_39" (effects (font (size 1.27 1.27))))
(number "39" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 53.34 0) (length 3.81)
(name "Pin_4" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -38.1 0) (length 3.81)
(name "Pin_40" (effects (font (size 1.27 1.27))))
(number "40" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -40.64 0) (length 3.81)
(name "Pin_41" (effects (font (size 1.27 1.27))))
(number "41" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -43.18 0) (length 3.81)
(name "Pin_41" (effects (font (size 1.27 1.27))))
(number "42" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -45.72 0) (length 3.81)
(name "Pin_43" (effects (font (size 1.27 1.27))))
(number "43" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -48.26 0) (length 3.81)
(name "Pin_44" (effects (font (size 1.27 1.27))))
(number "44" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -50.8 0) (length 3.81)
(name "Pin_45" (effects (font (size 1.27 1.27))))
(number "45" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -53.34 0) (length 3.81)
(name "Pin_46" (effects (font (size 1.27 1.27))))
(number "46" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -55.88 0) (length 3.81)
(name "Pin_47" (effects (font (size 1.27 1.27))))
(number "47" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -58.42 0) (length 3.81)
(name "Pin_48" (effects (font (size 1.27 1.27))))
(number "48" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -60.96 0) (length 3.81)
(name "Pin_49" (effects (font (size 1.27 1.27))))
(number "49" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 50.8 0) (length 3.81)
(name "Pin_5" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -63.5 0) (length 3.81)
(name "Pin_50" (effects (font (size 1.27 1.27))))
(number "50" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 48.26 0) (length 3.81)
(name "Pin_6" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 45.72 0) (length 3.81)
(name "Pin_7" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 43.18 0) (length 3.81)
(name "Pin_8" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 40.64 0) (length 3.81)
(name "Pin_9" (effects (font (size 1.27 1.27))))
(number "9" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 0 -68.58 90) (length 3.81)
(name "MP" (effects (font (size 1.27 1.27))))
(number "MP" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "LIS3DHTR" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
(property "Reference" "U5" (at 0 19.05 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "LIS3DHTR" (at 0 16.51 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "omoteLib:XDCR_LIS3DHTR" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)) (justify bottom) hide)
)
(property "Datasheet" "https://www.st.com/content/ccc/resource/technical/document/datasheet/3c/ae/50/85/d6/b1/46/fe/CD00274221.pdf/files/CD00274221.pdf/jcr:content/translations/en.CD00274221.pdf" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "MAXIMUM_PACKAGE_HEIGHT" "1mm" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)) (justify bottom) hide)
)
(property "STANDARD" "Manufacturer Recommendations" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)) (justify bottom) hide)
)
(property "MANUFACTURER" "STMicroelectronics" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)) (justify bottom) hide)
)
(property "PARTREV" "2" (at 0 -3.81 0)
(effects (font (size 1.27 1.27)) (justify bottom) hide)
)
(symbol "LIS3DHTR_0_0"
(rectangle (start -11.43 13.97) (end 11.43 -13.97)
(stroke (width 0.254) (type default))
(fill (type background))
)
(pin power_in line (at 16.51 8.89 180) (length 5.08)
(name "VDD_IO" (effects (font (size 1.016 1.016))))
(number "1" (effects (font (size 1.016 1.016))))
)
(pin passive line (at 16.51 -6.35 180) (length 5.08)
(name "RES" (effects (font (size 1.016 1.016))))
(number "10" (effects (font (size 1.016 1.016))))
)
(pin output line (at 16.51 2.54 180) (length 5.08)
(name "INT1" (effects (font (size 1.016 1.016))))
(number "11" (effects (font (size 1.016 1.016))))
)
(pin power_in line (at 16.51 -11.43 180) (length 5.08)
(name "GND" (effects (font (size 1.016 1.016))))
(number "12" (effects (font (size 1.016 1.016))))
)
(pin input line (at -16.51 6.35 0) (length 5.08)
(name "ADC3" (effects (font (size 1.016 1.016))))
(number "13" (effects (font (size 1.016 1.016))))
)
(pin power_in line (at 16.51 11.43 180) (length 5.08)
(name "VDD" (effects (font (size 1.016 1.016))))
(number "14" (effects (font (size 1.016 1.016))))
)
(pin input line (at -16.51 8.89 0) (length 5.08)
(name "ADC2" (effects (font (size 1.016 1.016))))
(number "15" (effects (font (size 1.016 1.016))))
)
(pin input line (at -16.51 11.43 0) (length 5.08)
(name "ADC1" (effects (font (size 1.016 1.016))))
(number "16" (effects (font (size 1.016 1.016))))
)
(pin input line (at -16.51 2.54 0) (length 5.08)
(name "NC" (effects (font (size 1.016 1.016))))
(number "2" (effects (font (size 1.016 1.016))))
)
(pin input line (at -16.51 0 0) (length 5.08)
(name "NC" (effects (font (size 1.016 1.016))))
(number "3" (effects (font (size 1.016 1.016))))
)
(pin input clock (at -16.51 -6.35 0) (length 5.08)
(name "SCL/SPC" (effects (font (size 1.016 1.016))))
(number "4" (effects (font (size 1.016 1.016))))
)
(pin power_in line (at 16.51 -8.89 180) (length 5.08)
(name "GND" (effects (font (size 1.016 1.016))))
(number "5" (effects (font (size 1.016 1.016))))
)
(pin bidirectional line (at -16.51 -8.89 0) (length 5.08)
(name "SDA/SDI/SDO" (effects (font (size 1.016 1.016))))
(number "6" (effects (font (size 1.016 1.016))))
)
(pin bidirectional line (at -16.51 -11.43 0) (length 5.08)
(name "SDO/SA0" (effects (font (size 1.016 1.016))))
(number "7" (effects (font (size 1.016 1.016))))
)
(pin input line (at -16.51 -3.81 0) (length 5.08)
(name "CS" (effects (font (size 1.016 1.016))))
(number "8" (effects (font (size 1.016 1.016))))
)
(pin output line (at 16.51 0 180) (length 5.08)
(name "INT2" (effects (font (size 1.016 1.016))))
(number "9" (effects (font (size 1.016 1.016))))
)
)
)
(symbol "TSSP77038" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
(property "Reference" "U6" (at -1.27 11.43 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "TSSP77038" (at -1.27 8.89 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "omoteLib:Heimdall vertical" (at -1.27 -11.43 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://www.vishay.com/docs/82470/tssp770.pdf" (at 16.51 7.62 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "opto IR receiver" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "IR Receiver Modules for Remote Control Systems" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "Vishay*MOLD*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "TSSP77038_0_0"
(polyline
(pts
(xy 1.905 -5.08)
(xy 0.127 -5.08)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.905 5.08)
(xy 0.127 5.08)
)
(stroke (width 0) (type default))
(fill (type none))
)
(text "DEMOD" (at -3.175 0.254 900)
(effects (font (size 1.524 1.524)))
)
)
(symbol "TSSP77038_0_1"
(rectangle (start -10.16 6.35) (end 7.62 -8.89)
(stroke (width 0.254) (type default))
(fill (type background))
)
(rectangle (start -6.096 5.588) (end 0.127 -5.588)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.763 0.381)
(xy -9.652 1.27)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.763 0.381)
(xy -9.271 0.381)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.763 0.381)
(xy -8.763 0.889)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.636 -0.635)
(xy -9.525 0.254)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.636 -0.635)
(xy -9.144 -0.635)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.636 -0.635)
(xy -8.636 -0.127)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.382 -1.016)
(xy -6.731 -1.016)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.27 -2.921)
(xy 0.127 -2.921)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.27 -1.905)
(xy 1.27 -3.81)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.397 -3.556)
(xy 1.524 -3.556)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.651 -3.556)
(xy 1.524 -3.556)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.651 -3.556)
(xy 1.651 -3.302)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.905 0)
(xy 1.905 1.27)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.905 4.445)
(xy 1.905 5.08)
(xy 2.54 5.08)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.382 0.635)
(xy -6.731 0.635)
(xy -7.62 -1.016)
(xy -8.382 0.635)
)
(stroke (width 0) (type default))
(fill (type outline))
)
(polyline
(pts
(xy -6.096 1.397)
(xy -7.62 1.397)
(xy -7.62 -1.778)
(xy -6.096 -1.778)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.27 -3.175)
(xy 1.905 -3.81)
(xy 1.905 -5.08)
(xy 2.54 -5.08)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.27 -2.54)
(xy 1.905 -1.905)
(xy 1.905 0)
(xy 2.54 0)
)
(stroke (width 0) (type default))
(fill (type none))
)
(rectangle (start 2.54 1.27) (end 1.27 4.445)
(stroke (width 0) (type default))
(fill (type none))
)
)
(symbol "TSSP77038_1_1"
(pin power_in line (at 10.16 -5.08 180) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin output line (at 10.16 0 180) (length 2.54)
(name "OUT" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 10.16 5.08 180) (length 2.54)
(name "Vs" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 10.16 -7.62 180) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "USBLC6-2P6" (in_bom yes) (on_board yes)
(property "Reference" "U4" (at -7.62 8.89 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "USBLC6-2P6" (at 2.54 -3.81 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "Package_TO_SOT_SMD:SOT-666" (at -1.27 17.78 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://www.st.com/resource/en/datasheet/usblc6-2.pdf" (at 8.89 -6.35 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "usb ethernet video" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Very low capacitance ESD protection diode, 2 data-line, SOT-666" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "SOT?666*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "USBLC6-2P6_0_1"
(rectangle (start -7.62 7.62) (end 7.62 -2.54)
(stroke (width 0.254) (type default))
(fill (type background))
)
)
(symbol "USBLC6-2P6_1_1"
(pin passive line (at -10.16 3.81 0) (length 2.54)
(name "I/O1" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 0 -5.08 90) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -10.16 1.27 0) (length 2.54)
(name "I/O2" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 10.16 1.27 180) (length 2.54)
(name "I/O2" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 0 10.16 270) (length 2.54)
(name "VBUS" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 10.16 3.81 180) (length 2.54)
(name "I/O1" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
)
)
)

View File

@ -0,0 +1,27 @@
// OMOTE Hardware Abstraction
// 2023 Matthew Colvin
#pragma once
#include <lvgl.h>
#include <string>
class HardwareInterface {
public:
struct batteryStatus {
/// @brief Percent of battery remaining (0-100]
int percentage;
/// @brief Voltage of battery in millivolts
int voltage;
/// @brief True - Battery is Charging
/// False - Battery discharging
bool isCharging;
};
HardwareInterface() = default;
virtual void init() = 0;
virtual void sendIR() = 0;
virtual void MQTTPublish(const char *topic, const char *payload) = 0;
virtual batteryStatus getBatteryPercentage() = 0;
virtual void debugPrint(std::string message) = 0;
};

View File

@ -78,19 +78,29 @@ void HardwareRevX::init() {
setupIMU();
setupIR();
debugPrint(std::string("Finished Hardware Setup in %d",millis()));
debugPrint(std::string("Finished Hardware Setup in %d", millis()));
}
void HardwareRevX::debugPrint(std::string aDebugMessage){
void HardwareRevX::debugPrint(std::string aDebugMessage) {
Serial.print(aDebugMessage.c_str());
}
void HardwareRevX::sendIR(){
void HardwareRevX::sendIR() {}
void HardwareRevX::MQTTPublish(const char *topic, const char *payload) {
#ifdef ENABLE_WIFI
if (client.connected()) {
client.publish(topic, payload);
} else {
debugPrint("MQTT Client Not Connected When Attempting Publish.");
}
#else
debugPrint("Attempting To Publish MQTT with wifi Disabled!");
#endif
}
void HardwareRevX::MQTTPublish(const char *topic, const char *payload){
HardwareInterface::batteryStatus HardwareRevX::getBatteryPercentage() {
return battery;
}
void HardwareRevX::initLVGL() {
@ -116,8 +126,9 @@ void HardwareRevX::initLVGL() {
lv_indev_drv_register(&indev_drv);
}
void HardwareRevX::handleDisplayFlush(lv_disp_drv_t *disp, const lv_area_t *area,
lv_color_t *color_p) {
void HardwareRevX::handleDisplayFlush(lv_disp_drv_t *disp,
const lv_area_t *area,
lv_color_t *color_p) {
uint32_t w = (area->x2 - area->x1 + 1);
uint32_t h = (area->y2 - area->y1 + 1);
@ -130,7 +141,7 @@ void HardwareRevX::handleDisplayFlush(lv_disp_drv_t *disp, const lv_area_t *area
}
void HardwareRevX::handleTouchPadRead(lv_indev_drv_t *indev_driver,
lv_indev_data_t *data) {
lv_indev_data_t *data) {
// int16_t touchX, touchY;
touchPoint = touch.getPoint();
int16_t touchX = touchPoint.x;
@ -372,7 +383,7 @@ void HardwareRevX::slowDisplayWakeup() {
delay(100); // Wait for the LCD driver to power on
}
void HardwareRevX::handleWifiEvent(WiFiEvent_t event){
void HardwareRevX::handleWifiEvent(WiFiEvent_t event) {
#ifdef ENABLE_WIFI
// Serial.printf("[WiFi-event] event: %d\n", event);
if (event == ARDUINO_EVENT_WIFI_STA_GOT_IP) {
@ -391,14 +402,14 @@ void HardwareRevX::handleWifiEvent(WiFiEvent_t event){
#endif
}
void HardwareRevX::setupIR(){
// Setup IR
void HardwareRevX::setupIR() {
// Setup IR
IrSender.begin();
digitalWrite(IR_VCC, HIGH); // Turn on IR receiver
IrReceiver.enableIRIn(); // Start the receiver
}
void HardwareRevX::setupWifi(){
void HardwareRevX::setupWifi() {
#ifdef ENABLE_WIFI
// Setup WiFi
WiFi.setHostname("OMOTE"); // define hostname
@ -408,32 +419,34 @@ void HardwareRevX::setupWifi(){
#endif
}
void HardwareRevX::startTasks(){
if(xTaskCreate(&HardwareRevX::updateBatteryTask,
"Battery Percent Update",1024,nullptr,5,&batteryUpdateTskHndl) != pdPASS){
void HardwareRevX::startTasks() {
if (xTaskCreate(&HardwareRevX::updateBatteryTask, "Battery Percent Update",
1024, nullptr, 5, &batteryUpdateTskHndl) != pdPASS) {
debugPrint("ERROR Could not Create Battery Update Task!");
}
}
void HardwareRevX::updateBatteryTask([[maybe_unused]] void* aData){
while(true){
mInstance->battery_voltage =
void HardwareRevX::updateBatteryTask([[maybe_unused]] void *aData) {
while (true) {
mInstance->battery.voltage =
analogRead(ADC_BAT) * 2 * 3300 / 4095 + 350; // 350mV ADC offset
mInstance->battery_percentage =
constrain(map(mInstance->battery_voltage, 3700, 4200, 0, 100), 0, 100);
mInstance->battery_ischarging = !digitalRead(CRG_STAT);
mInstance->battery.percentage =
constrain(map(mInstance->battery.voltage, 3700, 4200, 0, 100), 0, 100);
mInstance->battery.isCharging = !digitalRead(CRG_STAT);
// Check if battery is charging, fully charged or disconnected
vTaskDelay(1000/ portTICK_PERIOD_MS);
vTaskDelay(1000 / portTICK_PERIOD_MS);
// Update battery at 1Hz
}
}
void HardwareRevX::loopHandler(){
// Update Backlight brightness
void HardwareRevX::loopHandler() {
// TODO Move the backlight handling into task that spawns when the backlight
// setting changes and then gets deleted when the setting is achieved.
// Update Backlight brightness
static int fadeInTimer = millis(); // fadeInTimer = time after setup
if (millis() <
fadeInTimer +
backlight_brightness) { // Fade in the backlight brightness
fadeInTimer + backlight_brightness) { // Fade in the backlight brightness
ledcWrite(5, millis() - fadeInTimer);
} else { // Dim Backlight before entering standby
if (standbyTimer < 2000)
@ -442,6 +455,7 @@ void HardwareRevX::loopHandler(){
ledcWrite(5, backlight_brightness); // Backlight on
}
// TODO move to debug task
// Blink debug LED at 1 Hz
digitalWrite(USER_LED, millis() % 1000 > 500);
@ -460,13 +474,14 @@ void HardwareRevX::loopHandler(){
// TODO Create batter change notification for UI
// if (battery_ischarging || (!battery_ischarging && battery_voltage > 4350)) {
// if (battery_ischarging || (!battery_ischarging && battery_voltage >
// 4350)) {
// lv_label_set_text(objBattPercentage, "");
// lv_label_set_text(objBattIcon, LV_SYMBOL_USB);
// } else {
// // Update status bar battery indicator
// // lv_label_set_text_fmt(objBattPercentage, "%d%%", battery_percentage);
// if (battery_percentage > 95)
// // lv_label_set_text_fmt(objBattPercentage, "%d%%",
// battery_percentage); if (battery_percentage > 95)
// lv_label_set_text(objBattIcon, LV_SYMBOL_BATTERY_FULL);
// else if (battery_percentage > 75)
// lv_label_set_text(objBattIcon, LV_SYMBOL_BATTERY_3);
@ -481,7 +496,8 @@ void HardwareRevX::loopHandler(){
// Keypad Handling
customKeypad.getKey(); // Populate key list
for (int i = 0; i < LIST_MAX; i++) { // Handle multiple keys (Not really necessary in this case)
for (int i = 0; i < LIST_MAX;
i++) { // Handle multiple keys (Not really necessary in this case)
if (customKeypad.key[i].kstate == PRESSED ||
customKeypad.key[i].kstate == HOLD) {
standbyTimer =
@ -489,10 +505,10 @@ void HardwareRevX::loopHandler(){
int keyCode = customKeypad.key[i].kcode;
Serial.println(customKeypad.key[i].kchar);
// Send IR codes depending on the current device (tabview page)
if (currentDevice == 1){
IrSender.sendRC5(IrSender.encodeRC5X(0x00, keyMapTechnisat[keyCode / ROWS][keyCode % ROWS]));
}
else if (currentDevice == 2){
if (currentDevice == 1) {
IrSender.sendRC5(IrSender.encodeRC5X(
0x00, keyMapTechnisat[keyCode / ROWS][keyCode % ROWS]));
} else if (currentDevice == 2) {
IrSender.sendSony((keyCode / ROWS) * (keyCode % ROWS), 15);
}
}

View File

@ -1,8 +1,8 @@
#pragma once
#include "SparkFunLIS3DH.h"
#include "HardwareAbstractionInterface.h"
#include "WiFi.h"
#include "HardwareInterface.h"
#include <WiFi.h>
#include "Wire.h"
#include "lvgl.h"
#include <Adafruit_FT6206.h>
@ -10,16 +10,17 @@
#include <IRremoteESP8266.h>
#include <IRsend.h>
#include <IRutils.h>
#include <PubSubClient.h>
#include <Preferences.h>
#include <TFT_eSPI.h> // Hardware-specific library
#include <Keypad.h> // modified for inverted logic
#include <Preferences.h>
#include <PubSubClient.h>
#include <TFT_eSPI.h> // Hardware-specific library
#include <functional>
#include <memory>
#include "omoteconfig.h"
class HardwareRevX : public HardwareAbstractionInterface {
class HardwareRevX : public HardwareInterface {
public:
enum class WakeReason { RESET, IMU, KEYPAD };
@ -29,15 +30,14 @@ public:
}
return mInstance;
}
static std::weak_ptr<HardwareRevX> getRefrence(){
return getInstance();
}
static std::weak_ptr<HardwareRevX> getRefrence() { return getInstance(); }
HardwareRevX() : HardwareAbstractionInterface(){};
// HardwareAbstractionInterface
HardwareRevX() : HardwareInterface(){};
// HardwareInterface
virtual void init() override;
virtual void sendIR() override;
virtual void MQTTPublish(const char *topic, const char *payload) override;
virtual batteryStatus getBatteryPercentage() override;
virtual void debugPrint(std::string aDebugMessage) override;
void loopHandler();
@ -61,7 +61,7 @@ protected:
// UI/UX Handlers
void handleDisplayFlush(lv_disp_drv_t *disp, const lv_area_t *area,
lv_color_t *color_p);
lv_color_t *color_p);
void handleTouchPadRead(lv_indev_drv_t *indev_driver, lv_indev_data_t *data);
void handleWifiEvent(WiFiEvent_t event);
@ -69,13 +69,12 @@ protected:
// Tasks
void startTasks();
static void updateBatteryTask([[maybe_unused]] void* aData);
static void updateBatteryTask([[maybe_unused]] void *aData);
TaskHandle_t batteryUpdateTskHndl = nullptr;
private:
// Static Wrappers Needed to Satisfy C APIs
static void wiFiEventImpl(WiFiEvent_t event){
static void wiFiEventImpl(WiFiEvent_t event) {
mInstance->handleWifiEvent(event);
}
static void displayFlushImpl(lv_disp_drv_t *disp, const lv_area_t *area,
@ -114,9 +113,7 @@ private:
IRsend IrSender = IRsend(IR_LED, true);
IRrecv IrReceiver = IRrecv(IR_RX);
int battery_voltage = 0;
int battery_percentage = 100;
bool battery_ischarging = false;
HardwareInterface::batteryStatus battery;
// LVGL Screen Buffers
lv_disp_draw_buf_t mdraw_buf;
@ -149,7 +146,7 @@ private:
{0x34, 0x0C, 0x22, 0x50, 0x55},
{'?', 0x35, 0x2F, 0x32, 0x36}};
byte virtualKeyMapTechnisat[10] = {0x1, 0x2, 0x3, 0x4, 0x5,
0x6, 0x7, 0x8, 0x9, 0x0};
0x6, 0x7, 0x8, 0x9, 0x0};
static std::shared_ptr<HardwareRevX> mInstance;
};

View File

@ -17,9 +17,6 @@
// IO34+IO35+IO37+IO38+IO39(+IO13)
#define BUTTON_PIN_BITMASK 0b1110110000000000000000000010000000000000
#define SCREEN_WIDTH 240
#define SCREEN_HEIGHT 360
// Pin assignment
// -----------------------------------------------------------------------------------------------------------------------

View File

@ -0,0 +1,70 @@
#include "HardwareSimulator.hpp"
#include <unistd.h>
#include "SDL2/SDL.h"
#include "display/monitor.h"
#include "indev/mouse.h"
#include "indev/mousewheel.h"
#include "indev/keyboard.h"
#include "sdl/sdl.h"
/**
* A task to measure the elapsed time for LittlevGL
* @param data unused
* @return never return
*/
static int tick_thread(void * data)
{
(void)data;
while(1) {
SDL_Delay(5); /*Sleep for 5 millisecond*/
lv_tick_inc(5); /*Tell LittelvGL that 5 milliseconds were elapsed*/
}
return 0;
}
void HardwareSimulator::init() {
lv_init();
// Workaround for sdl2 `-m32` crash
// https://bugs.launchpad.net/ubuntu/+source/libsdl2/+bug/1775067/comments/7
#ifndef WIN32
setenv("DBUS_FATAL_WARNINGS", "0", 1);
#endif
/* Add a display
* Use the 'monitor' driver which creates window on PC's monitor to simulate a display*/
static lv_disp_draw_buf_t disp_buf;
static lv_color_t buf[SDL_HOR_RES * 10]; /*Declare a buffer for 10 lines*/
lv_disp_draw_buf_init(&disp_buf, buf, NULL, SDL_HOR_RES * 10); /*Initialize the display buffer*/
static lv_disp_drv_t disp_drv;
lv_disp_drv_init(&disp_drv); /*Basic initialization*/
disp_drv.flush_cb = sdl_display_flush; /*Used when `LV_VDB_SIZE != 0` in lv_conf.h (buffered drawing)*/
disp_drv.draw_buf = &disp_buf;
disp_drv.hor_res = SDL_HOR_RES;
disp_drv.ver_res = SDL_VER_RES;
//disp_drv.disp_fill = monitor_fill; /*Used when `LV_VDB_SIZE == 0` in lv_conf.h (unbuffered drawing)*/
//disp_drv.disp_map = monitor_map; /*Used when `LV_VDB_SIZE == 0` in lv_conf.h (unbuffered drawing)*/
lv_disp_drv_register(&disp_drv);
/* Add the mouse as input device
* Use the 'mouse' driver which reads the PC's mouse*/
static lv_indev_drv_t indev_drv;
lv_indev_drv_init(&indev_drv); /*Basic initialization*/
indev_drv.type = LV_INDEV_TYPE_POINTER;
indev_drv.read_cb = sdl_mouse_read; /*This function will be called periodically (by the library) to get the mouse position and state*/
lv_indev_drv_register(&indev_drv);
sdl_init();
/* Tick init.
* You have to call 'lv_tick_inc()' in periodically to inform LittelvGL about how much time were elapsed
* Create an SDL thread to do this*/
SDL_CreateThread(tick_thread, "tick", NULL);
}

View File

@ -0,0 +1,29 @@
#pragma once
#include "HardwareInterface.h"
#include <iostream>
#include <string>
class HardwareSimulator : public HardwareInterface {
public:
HardwareSimulator() = default;
virtual void debugPrint(std::string message) override {
std::cout << message;
}
virtual void sendIR() override {}
virtual void MQTTPublish(const char *topic, const char *payload) override{
};
virtual void init() override;
virtual batteryStatus getBatteryPercentage() {
batteryStatus fakeStatus;
fakeStatus.isCharging = false;
fakeStatus.percentage = 100;
fakeStatus.voltage = 4200;
return fakeStatus;
}
};

View File

@ -0,0 +1,6 @@
#pragma once
#define IS_SIMULATOR true
#define SCREEN_WIDTH 240
#define SCREEN_HEIGHT 360

View File

@ -34,7 +34,7 @@ void OmoteUI::bl_slider_event_cb(lv_event_t *e) {
void OmoteUI::appleKey_event_cb(lv_event_t *e) {
// Send IR command based on the event user data
mHardware->sendIR();
mHardware->debugPrint(std::to_string(50 + (int)e->user_data));
//mHardware->debugPrint(std::to_string(50 + (int)e->user_data));
}
// Wakeup by IMU Switch Event handler
@ -51,10 +51,10 @@ void OmoteUI::smartHomeToggle_event_cb(lv_event_t *e) {
else
strcpy(payload, "false");
// Publish an MQTT message based on the event user data
if ((int)e->user_data == 1)
mHardware->MQTTPublish("bulb1_set", payload);
if ((int)e->user_data == 2)
mHardware->MQTTPublish("bulb2_set", payload);
// if ((int)e->user_data == 1)
// mHardware->MQTTPublish("bulb1_set", payload);
// if ((int)e->user_data == 2)
// mHardware->MQTTPublish("bulb2_set", payload);
}
// Smart Home Toggle Event handler
@ -69,10 +69,10 @@ void OmoteUI::smartHomeSlider_event_cb(lv_event_t *e) {
snprintf(payload, sizeof(payload), "%8.2f", sliderValue);
// Publish an MQTT message based on the event user data
if ((int)e->user_data == 1)
mHardware->MQTTPublish("bulb1_setbrightness", payload);
if ((int)e->user_data == 2)
mHardware->MQTTPublish("bulb2_setbrightness", payload);
// if ((int)e->user_data == 1)
// mHardware->MQTTPublish("bulb1_setbrightness", payload);
// if ((int)e->user_data == 2)
// mHardware->MQTTPublish("bulb2_setbrightness", payload);
}
void OmoteUI::virtualKeypad_event_cb(lv_event_t *e) {
@ -82,9 +82,9 @@ void OmoteUI::virtualKeypad_event_cb(lv_event_t *e) {
return;
char buffer[100];
sprintf(buffer, "check it out: %d\n",
virtualKeyMapTechnisat[(int)target->user_data]);
mHardware->debugPrint(buffer);
// sprintf(buffer, "check it out: %d\n",
// virtualKeyMapTechnisat[(int)target->user_data]);
// mHardware->debugPrint(buffer);
}
void OmoteUI::loopHandler(){
@ -163,7 +163,7 @@ void OmoteUI::layout_UI() {
lv_label_set_text_fmt(buttonLabel, "0", col, row);
lv_obj_set_user_data(obj, (void *)9);
}
lv_obj_set_style_text_font(buttonLabel, &lv_font_montserrat_14,
lv_obj_set_style_text_font(buttonLabel, &lv_font_montserrat_24,
LV_PART_MAIN);
lv_obj_center(buttonLabel);
}
@ -190,6 +190,9 @@ void OmoteUI::layout_UI() {
appleImg = imgs.addAppleBackIcon(button);
lv_obj_align(appleImg, LV_ALIGN_CENTER, -3, 0);
lv_obj_set_style_img_recolor(appleImg, lv_color_white(), LV_PART_MAIN);
lv_obj_set_style_img_recolor_opa(appleImg, LV_OPA_COVER, LV_PART_MAIN);
lv_obj_align(appleImg, LV_ALIGN_CENTER, -3, 0);
button = lv_btn_create(tab3);
lv_obj_align(button, LV_ALIGN_BOTTOM_RIGHT, -10, 0);
@ -202,6 +205,9 @@ void OmoteUI::layout_UI() {
appleImg = imgs.addAppleDisplayImage(button);
lv_obj_align(appleImg, LV_ALIGN_CENTER, 0, 0);
lv_obj_set_style_img_recolor(appleImg, lv_color_white(), LV_PART_MAIN);
lv_obj_set_style_img_recolor_opa(appleImg, LV_OPA_COVER, LV_PART_MAIN);
lv_obj_align(appleImg, LV_ALIGN_CENTER, 0, 0);
// Add content to the settings tab
// With a flex layout, setting groups/boxes will position themselves

View File

@ -1,26 +1,26 @@
// OMOTE UI
// 2023 Matthew Colvin
#pragma once
#define LV_CONF_INCLUDE_SIMPLE
#include "HardwareAbstractionInterface.h"
#include "lvgl.h"
#include "HardwareInterface.h"
#include "Images.hpp"
#include "lvgl.h"
#include <algorithm>
#include <memory>
#include <stdio.h>
#include <string>
/// @brief Singleton to allow UI code to live separately from the Initialization
/// of resources.
class OmoteUI {
public:
OmoteUI(std::shared_ptr<HardwareAbstractionInterface> aHardware)
: mHardware(aHardware) {};
OmoteUI(std::shared_ptr<HardwareInterface> aHardware)
: mHardware(aHardware){};
static std::weak_ptr<OmoteUI> getRefrence() { return getInstance(); };
static std::shared_ptr<OmoteUI> getInstance(
std::shared_ptr<HardwareAbstractionInterface> aHardware = nullptr) {
static std::shared_ptr<OmoteUI>
getInstance(std::shared_ptr<HardwareInterface> aHardware = nullptr) {
if (mInstance) {
return mInstance;
} else if (aHardware) {
@ -54,7 +54,7 @@ public:
private:
static std::shared_ptr<OmoteUI> mInstance;
std::shared_ptr<HardwareAbstractionInterface> mHardware;
std::shared_ptr<HardwareInterface> mHardware;
lv_obj_t *panel = nullptr;
Images imgs = Images();

View File

@ -1,16 +0,0 @@
// OMOTE Hardware Abstraction
// 2023 Matthew Colvin
#pragma once
#include <lvgl.h>
#include <string>
class HardwareAbstractionInterface {
public:
HardwareAbstractionInterface() = default;
virtual void init() = 0;
virtual void sendIR() = 0;
virtual void MQTTPublish(const char *topic, const char *payload) = 0;
virtual void debugPrint(std::string message) = 0;
};

View File

@ -1,39 +0,0 @@
This directory is intended for project header files.
A header file is a file containing C declarations and macro definitions
to be shared between several project source files. You request the use of a
header file in your project source file (C, C++, etc) located in `src` folder
by including it, with the C preprocessing directive `#include'.
```src/main.c
#include "header.h"
int main (void)
{
...
}
```
Including a header file produces the same results as copying the header file
into each source file that needs it. Such copying would be time-consuming
and error-prone. With a header file, the related declarations appear
in only one place. If they need to be changed, they can be changed in one
place, and programs that include the header file will automatically use the
new version when next recompiled. The header file eliminates the labor of
finding and changing all the copies as well as the risk that a failure to
find one copy will result in inconsistencies within a program.
In C, the usual convention is to give header files names that end with `.h'.
It is most portable to use only letters, digits, dashes, and underscores in
header file names, and at most one dot.
Read more about using header files in official GCC documentation:
* Include Syntax
* Include Operation
* Once-Only Headers
* Computed Includes
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html

View File

@ -1,762 +0,0 @@
/**
* @file lv_conf.h
* Configuration file for v8.3.5
*/
/*
* Copy this file as `lv_conf.h`
* 1. simply next to the `lvgl` folder
* 2. or any other places and
* - define `LV_CONF_INCLUDE_SIMPLE`
* - add the path as include path
*/
/* clang-format off */
#if 1 /*Set it to "1" to enable content*/
#ifndef LV_CONF_H
#define LV_CONF_H
#include <stdint.h>
/*====================
COLOR SETTINGS
*====================*/
/*Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)*/
#define LV_COLOR_DEPTH 16
/*Swap the 2 bytes of RGB565 color. Useful if the display has an 8-bit interface (e.g. SPI)*/
#define LV_COLOR_16_SWAP 0
/*Enable features to draw on transparent background.
*It's required if opa, and transform_* style properties are used.
*Can be also used if the UI is above another layer, e.g. an OSD menu or video player.*/
#define LV_COLOR_SCREEN_TRANSP 0
/* Adjust color mix functions rounding. GPUs might calculate color mix (blending) differently.
* 0: round down, 64: round up from x.75, 128: round up from half, 192: round up from x.25, 254: round up */
#define LV_COLOR_MIX_ROUND_OFS 0
/*Images pixels with this color will not be drawn if they are chroma keyed)*/
#define LV_COLOR_CHROMA_KEY lv_color_hex(0x00ff00) /*pure green*/
/*=========================
MEMORY SETTINGS
*=========================*/
/*1: use custom malloc/free, 0: use the built-in `lv_mem_alloc()` and `lv_mem_free()`*/
#define LV_MEM_CUSTOM 0
#if LV_MEM_CUSTOM == 0
/*Size of the memory available for `lv_mem_alloc()` in bytes (>= 2kB)*/
#define LV_MEM_SIZE (32U * 1024U) /*[bytes]*/
/*Set an address for the memory pool instead of allocating it as a normal array. Can be in external SRAM too.*/
#define LV_MEM_ADR 0 /*0: unused*/
/*Instead of an address give a memory allocator that will be called to get a memory pool for LVGL. E.g. my_malloc*/
#if LV_MEM_ADR == 0
#undef LV_MEM_POOL_INCLUDE
#undef LV_MEM_POOL_ALLOC
#endif
#else /*LV_MEM_CUSTOM*/
#define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /*Header for the dynamic memory function*/
#define LV_MEM_CUSTOM_ALLOC malloc
#define LV_MEM_CUSTOM_FREE free
#define LV_MEM_CUSTOM_REALLOC realloc
#endif /*LV_MEM_CUSTOM*/
/*Number of the intermediate memory buffer used during rendering and other internal processing mechanisms.
*You will see an error log message if there wasn't enough buffers. */
#define LV_MEM_BUF_MAX_NUM 16
/*Use the standard `memcpy` and `memset` instead of LVGL's own functions. (Might or might not be faster).*/
#define LV_MEMCPY_MEMSET_STD 0
/*====================
HAL SETTINGS
*====================*/
/*Default display refresh period. LVG will redraw changed areas with this period time*/
#define LV_DISP_DEF_REFR_PERIOD 30 /*[ms]*/
/*Input device read period in milliseconds*/
#define LV_INDEV_DEF_READ_PERIOD 30 /*[ms]*/
/*Use a custom tick source that tells the elapsed time in milliseconds.
*It removes the need to manually update the tick with `lv_tick_inc()`)*/
#define LV_TICK_CUSTOM 1
#if LV_TICK_CUSTOM
#define LV_TICK_CUSTOM_INCLUDE "Arduino.h" /*Header for the system time function*/
#define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis()) /*Expression evaluating to current system time in ms*/
/*If using lvgl as ESP32 component*/
// #define LV_TICK_CUSTOM_INCLUDE "esp_timer.h"
// #define LV_TICK_CUSTOM_SYS_TIME_EXPR ((esp_timer_get_time() / 1000LL))
#endif /*LV_TICK_CUSTOM*/
/*Default Dot Per Inch. Used to initialize default sizes such as widgets sized, style paddings.
*(Not so important, you can adjust it to modify default sizes and spaces)*/
#define LV_DPI_DEF 130 /*[px/inch]*/
/*=======================
* FEATURE CONFIGURATION
*=======================*/
/*-------------
* Drawing
*-----------*/
/*Enable complex draw engine.
*Required to draw shadow, gradient, rounded corners, circles, arc, skew lines, image transformations or any masks*/
#define LV_DRAW_COMPLEX 1
#if LV_DRAW_COMPLEX != 0
/*Allow buffering some shadow calculation.
*LV_SHADOW_CACHE_SIZE is the max. shadow size to buffer, where shadow size is `shadow_width + radius`
*Caching has LV_SHADOW_CACHE_SIZE^2 RAM cost*/
#define LV_SHADOW_CACHE_SIZE 0
/* Set number of maximally cached circle data.
* The circumference of 1/4 circle are saved for anti-aliasing
* radius * 4 bytes are used per circle (the most often used radiuses are saved)
* 0: to disable caching */
#define LV_CIRCLE_CACHE_SIZE 4
#endif /*LV_DRAW_COMPLEX*/
/**
* "Simple layers" are used when a widget has `style_opa < 255` to buffer the widget into a layer
* and blend it as an image with the given opacity.
* Note that `bg_opa`, `text_opa` etc don't require buffering into layer)
* The widget can be buffered in smaller chunks to avoid using large buffers.
*
* - LV_LAYER_SIMPLE_BUF_SIZE: [bytes] the optimal target buffer size. LVGL will try to allocate it
* - LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE: [bytes] used if `LV_LAYER_SIMPLE_BUF_SIZE` couldn't be allocated.
*
* Both buffer sizes are in bytes.
* "Transformed layers" (where transform_angle/zoom properties are used) use larger buffers
* and can't be drawn in chunks. So these settings affects only widgets with opacity.
*/
#define LV_LAYER_SIMPLE_BUF_SIZE (24 * 1024)
#define LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE (3 * 1024)
/*Default image cache size. Image caching keeps the images opened.
*If only the built-in image formats are used there is no real advantage of caching. (I.e. if no new image decoder is added)
*With complex image decoders (e.g. PNG or JPG) caching can save the continuous open/decode of images.
*However the opened images might consume additional RAM.
*0: to disable caching*/
#define LV_IMG_CACHE_DEF_SIZE 0
/*Number of stops allowed per gradient. Increase this to allow more stops.
*This adds (sizeof(lv_color_t) + 1) bytes per additional stop*/
#define LV_GRADIENT_MAX_STOPS 2
/*Default gradient buffer size.
*When LVGL calculates the gradient "maps" it can save them into a cache to avoid calculating them again.
*LV_GRAD_CACHE_DEF_SIZE sets the size of this cache in bytes.
*If the cache is too small the map will be allocated only while it's required for the drawing.
*0 mean no caching.*/
#define LV_GRAD_CACHE_DEF_SIZE 0
/*Allow dithering the gradients (to achieve visual smooth color gradients on limited color depth display)
*LV_DITHER_GRADIENT implies allocating one or two more lines of the object's rendering surface
*The increase in memory consumption is (32 bits * object width) plus 24 bits * object width if using error diffusion */
#define LV_DITHER_GRADIENT 0
#if LV_DITHER_GRADIENT
/*Add support for error diffusion dithering.
*Error diffusion dithering gets a much better visual result, but implies more CPU consumption and memory when drawing.
*The increase in memory consumption is (24 bits * object's width)*/
#define LV_DITHER_ERROR_DIFFUSION 0
#endif
/*Maximum buffer size to allocate for rotation.
*Only used if software rotation is enabled in the display driver.*/
#define LV_DISP_ROT_MAX_BUF (10*1024)
/*-------------
* GPU
*-----------*/
/*Use Arm's 2D acceleration library Arm-2D */
#define LV_USE_GPU_ARM2D 0
/*Use STM32's DMA2D (aka Chrom Art) GPU*/
#define LV_USE_GPU_STM32_DMA2D 0
#if LV_USE_GPU_STM32_DMA2D
/*Must be defined to include path of CMSIS header of target processor
e.g. "stm32f769xx.h" or "stm32f429xx.h"*/
#define LV_GPU_DMA2D_CMSIS_INCLUDE
#endif
/*Use SWM341's DMA2D GPU*/
#define LV_USE_GPU_SWM341_DMA2D 0
#if LV_USE_GPU_SWM341_DMA2D
#define LV_GPU_SWM341_DMA2D_INCLUDE "SWM341.h"
#endif
/*Use NXP's PXP GPU iMX RTxxx platforms*/
#define LV_USE_GPU_NXP_PXP 0
#if LV_USE_GPU_NXP_PXP
/*1: Add default bare metal and FreeRTOS interrupt handling routines for PXP (lv_gpu_nxp_pxp_osa.c)
* and call lv_gpu_nxp_pxp_init() automatically during lv_init(). Note that symbol SDK_OS_FREE_RTOS
* has to be defined in order to use FreeRTOS OSA, otherwise bare-metal implementation is selected.
*0: lv_gpu_nxp_pxp_init() has to be called manually before lv_init()
*/
#define LV_USE_GPU_NXP_PXP_AUTO_INIT 0
#endif
/*Use NXP's VG-Lite GPU iMX RTxxx platforms*/
#define LV_USE_GPU_NXP_VG_LITE 0
/*Use SDL renderer API*/
#define LV_USE_GPU_SDL 0
#if LV_USE_GPU_SDL
#define LV_GPU_SDL_INCLUDE_PATH <SDL2/SDL.h>
/*Texture cache size, 8MB by default*/
#define LV_GPU_SDL_LRU_SIZE (1024 * 1024 * 8)
/*Custom blend mode for mask drawing, disable if you need to link with older SDL2 lib*/
#define LV_GPU_SDL_CUSTOM_BLEND_MODE (SDL_VERSION_ATLEAST(2, 0, 6))
#endif
/*-------------
* Logging
*-----------*/
/*Enable the log module*/
#define LV_USE_LOG 0
#if LV_USE_LOG
/*How important log should be added:
*LV_LOG_LEVEL_TRACE A lot of logs to give detailed information
*LV_LOG_LEVEL_INFO Log important events
*LV_LOG_LEVEL_WARN Log if something unwanted happened but didn't cause a problem
*LV_LOG_LEVEL_ERROR Only critical issue, when the system may fail
*LV_LOG_LEVEL_USER Only logs added by the user
*LV_LOG_LEVEL_NONE Do not log anything*/
#define LV_LOG_LEVEL LV_LOG_LEVEL_WARN
/*1: Print the log with 'printf';
*0: User need to register a callback with `lv_log_register_print_cb()`*/
#define LV_LOG_PRINTF 0
/*Enable/disable LV_LOG_TRACE in modules that produces a huge number of logs*/
#define LV_LOG_TRACE_MEM 1
#define LV_LOG_TRACE_TIMER 1
#define LV_LOG_TRACE_INDEV 1
#define LV_LOG_TRACE_DISP_REFR 1
#define LV_LOG_TRACE_EVENT 1
#define LV_LOG_TRACE_OBJ_CREATE 1
#define LV_LOG_TRACE_LAYOUT 1
#define LV_LOG_TRACE_ANIM 1
#endif /*LV_USE_LOG*/
/*-------------
* Asserts
*-----------*/
/*Enable asserts if an operation is failed or an invalid data is found.
*If LV_USE_LOG is enabled an error message will be printed on failure*/
#define LV_USE_ASSERT_NULL 1 /*Check if the parameter is NULL. (Very fast, recommended)*/
#define LV_USE_ASSERT_MALLOC 1 /*Checks is the memory is successfully allocated or no. (Very fast, recommended)*/
#define LV_USE_ASSERT_STYLE 0 /*Check if the styles are properly initialized. (Very fast, recommended)*/
#define LV_USE_ASSERT_MEM_INTEGRITY 0 /*Check the integrity of `lv_mem` after critical operations. (Slow)*/
#define LV_USE_ASSERT_OBJ 0 /*Check the object's type and existence (e.g. not deleted). (Slow)*/
/*Add a custom handler when assert happens e.g. to restart the MCU*/
#define LV_ASSERT_HANDLER_INCLUDE <stdint.h>
#define LV_ASSERT_HANDLER while(1); /*Halt by default*/
/*-------------
* Others
*-----------*/
/*1: Show CPU usage and FPS count*/
#define LV_USE_PERF_MONITOR 0
#if LV_USE_PERF_MONITOR
#define LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
#endif
/*1: Show the used memory and the memory fragmentation
* Requires LV_MEM_CUSTOM = 0*/
#define LV_USE_MEM_MONITOR 0
#if LV_USE_MEM_MONITOR
#define LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
#endif
/*1: Draw random colored rectangles over the redrawn areas*/
#define LV_USE_REFR_DEBUG 0
/*Change the built in (v)snprintf functions*/
#define LV_SPRINTF_CUSTOM 0
#if LV_SPRINTF_CUSTOM
#define LV_SPRINTF_INCLUDE <stdio.h>
#define lv_snprintf snprintf
#define lv_vsnprintf vsnprintf
#else /*LV_SPRINTF_CUSTOM*/
#define LV_SPRINTF_USE_FLOAT 0
#endif /*LV_SPRINTF_CUSTOM*/
#define LV_USE_USER_DATA 1
/*Garbage Collector settings
*Used if lvgl is bound to higher level language and the memory is managed by that language*/
#define LV_ENABLE_GC 0
#if LV_ENABLE_GC != 0
#define LV_GC_INCLUDE "gc.h" /*Include Garbage Collector related things*/
#endif /*LV_ENABLE_GC*/
/*=====================
* COMPILER SETTINGS
*====================*/
/*For big endian systems set to 1*/
#define LV_BIG_ENDIAN_SYSTEM 0
/*Define a custom attribute to `lv_tick_inc` function*/
#define LV_ATTRIBUTE_TICK_INC
/*Define a custom attribute to `lv_timer_handler` function*/
#define LV_ATTRIBUTE_TIMER_HANDLER
/*Define a custom attribute to `lv_disp_flush_ready` function*/
#define LV_ATTRIBUTE_FLUSH_READY
/*Required alignment size for buffers*/
#define LV_ATTRIBUTE_MEM_ALIGN_SIZE 1
/*Will be added where memories needs to be aligned (with -Os data might not be aligned to boundary by default).
* E.g. __attribute__((aligned(4)))*/
#define LV_ATTRIBUTE_MEM_ALIGN
/*Attribute to mark large constant arrays for example font's bitmaps*/
#define LV_ATTRIBUTE_LARGE_CONST
/*Compiler prefix for a big array declaration in RAM*/
#define LV_ATTRIBUTE_LARGE_RAM_ARRAY
/*Place performance critical functions into a faster memory (e.g RAM)*/
#define LV_ATTRIBUTE_FAST_MEM
/*Prefix variables that are used in GPU accelerated operations, often these need to be placed in RAM sections that are DMA accessible*/
#define LV_ATTRIBUTE_DMA
/*Export integer constant to binding. This macro is used with constants in the form of LV_<CONST> that
*should also appear on LVGL binding API such as Micropython.*/
#define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning /*The default value just prevents GCC warning*/
/*Extend the default -32k..32k coordinate range to -4M..4M by using int32_t for coordinates instead of int16_t*/
#define LV_USE_LARGE_COORD 0
/*==================
* FONT USAGE
*===================*/
/*Montserrat fonts with ASCII range and some symbols using bpp = 4
*https://fonts.google.com/specimen/Montserrat*/
#define LV_FONT_MONTSERRAT_8 0
#define LV_FONT_MONTSERRAT_10 0
#define LV_FONT_MONTSERRAT_12 1
#define LV_FONT_MONTSERRAT_14 1
#define LV_FONT_MONTSERRAT_16 1
#define LV_FONT_MONTSERRAT_18 0
#define LV_FONT_MONTSERRAT_20 0
#define LV_FONT_MONTSERRAT_22 0
#define LV_FONT_MONTSERRAT_24 1
#define LV_FONT_MONTSERRAT_26 0
#define LV_FONT_MONTSERRAT_28 0
#define LV_FONT_MONTSERRAT_30 0
#define LV_FONT_MONTSERRAT_32 0
#define LV_FONT_MONTSERRAT_34 0
#define LV_FONT_MONTSERRAT_36 0
#define LV_FONT_MONTSERRAT_38 0
#define LV_FONT_MONTSERRAT_40 0
#define LV_FONT_MONTSERRAT_42 0
#define LV_FONT_MONTSERRAT_44 0
#define LV_FONT_MONTSERRAT_46 0
#define LV_FONT_MONTSERRAT_48 0
/*Demonstrate special features*/
#define LV_FONT_MONTSERRAT_12_SUBPX 0
#define LV_FONT_MONTSERRAT_28_COMPRESSED 0 /*bpp = 3*/
#define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /*Hebrew, Arabic, Persian letters and all their forms*/
#define LV_FONT_SIMSUN_16_CJK 0 /*1000 most common CJK radicals*/
/*Pixel perfect monospace fonts*/
#define LV_FONT_UNSCII_8 0
#define LV_FONT_UNSCII_16 0
/*Optionally declare custom fonts here.
*You can use these fonts as default font too and they will be available globally.
*E.g. #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) LV_FONT_DECLARE(my_font_2)*/
#define LV_FONT_CUSTOM_DECLARE
/*Always set a default font*/
#define LV_FONT_DEFAULT &lv_font_montserrat_14
/*Enable handling large font and/or fonts with a lot of characters.
*The limit depends on the font size, font face and bpp.
*Compiler error will be triggered if a font needs it.*/
#define LV_FONT_FMT_TXT_LARGE 0
/*Enables/disables support for compressed fonts.*/
#define LV_USE_FONT_COMPRESSED 0
/*Enable subpixel rendering*/
#define LV_USE_FONT_SUBPX 0
#if LV_USE_FONT_SUBPX
/*Set the pixel order of the display. Physical order of RGB channels. Doesn't matter with "normal" fonts.*/
#define LV_FONT_SUBPX_BGR 0 /*0: RGB; 1:BGR order*/
#endif
/*Enable drawing placeholders when glyph dsc is not found*/
#define LV_USE_FONT_PLACEHOLDER 1
/*=================
* TEXT SETTINGS
*=================*/
/**
* Select a character encoding for strings.
* Your IDE or editor should have the same character encoding
* - LV_TXT_ENC_UTF8
* - LV_TXT_ENC_ASCII
*/
#define LV_TXT_ENC LV_TXT_ENC_UTF8
/*Can break (wrap) texts on these chars*/
#define LV_TXT_BREAK_CHARS " ,.;:-_"
/*If a word is at least this long, will break wherever "prettiest"
*To disable, set to a value <= 0*/
#define LV_TXT_LINE_BREAK_LONG_LEN 0
/*Minimum number of characters in a long word to put on a line before a break.
*Depends on LV_TXT_LINE_BREAK_LONG_LEN.*/
#define LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN 3
/*Minimum number of characters in a long word to put on a line after a break.
*Depends on LV_TXT_LINE_BREAK_LONG_LEN.*/
#define LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN 3
/*The control character to use for signalling text recoloring.*/
#define LV_TXT_COLOR_CMD "#"
/*Support bidirectional texts. Allows mixing Left-to-Right and Right-to-Left texts.
*The direction will be processed according to the Unicode Bidirectional Algorithm:
*https://www.w3.org/International/articles/inline-bidi-markup/uba-basics*/
#define LV_USE_BIDI 0
#if LV_USE_BIDI
/*Set the default direction. Supported values:
*`LV_BASE_DIR_LTR` Left-to-Right
*`LV_BASE_DIR_RTL` Right-to-Left
*`LV_BASE_DIR_AUTO` detect texts base direction*/
#define LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_AUTO
#endif
/*Enable Arabic/Persian processing
*In these languages characters should be replaced with an other form based on their position in the text*/
#define LV_USE_ARABIC_PERSIAN_CHARS 0
/*==================
* WIDGET USAGE
*================*/
/*Documentation of the widgets: https://docs.lvgl.io/latest/en/html/widgets/index.html*/
#define LV_USE_ARC 1
#define LV_USE_BAR 1
#define LV_USE_BTN 1
#define LV_USE_BTNMATRIX 1
#define LV_USE_CANVAS 1
#define LV_USE_CHECKBOX 1
#define LV_USE_DROPDOWN 1 /*Requires: lv_label*/
#define LV_USE_IMG 1 /*Requires: lv_label*/
#define LV_USE_LABEL 1
#if LV_USE_LABEL
#define LV_LABEL_TEXT_SELECTION 1 /*Enable selecting text of the label*/
#define LV_LABEL_LONG_TXT_HINT 1 /*Store some extra info in labels to speed up drawing of very long texts*/
#endif
#define LV_USE_LINE 1
#define LV_USE_ROLLER 1 /*Requires: lv_label*/
#if LV_USE_ROLLER
#define LV_ROLLER_INF_PAGES 7 /*Number of extra "pages" when the roller is infinite*/
#endif
#define LV_USE_SLIDER 1 /*Requires: lv_bar*/
#define LV_USE_SWITCH 1
#define LV_USE_TEXTAREA 1 /*Requires: lv_label*/
#if LV_USE_TEXTAREA != 0
#define LV_TEXTAREA_DEF_PWD_SHOW_TIME 1500 /*ms*/
#endif
#define LV_USE_TABLE 1
/*==================
* EXTRA COMPONENTS
*==================*/
/*-----------
* Widgets
*----------*/
#define LV_USE_ANIMIMG 1
#define LV_USE_CALENDAR 0
#if LV_USE_CALENDAR
#define LV_CALENDAR_WEEK_STARTS_MONDAY 0
#if LV_CALENDAR_WEEK_STARTS_MONDAY
#define LV_CALENDAR_DEFAULT_DAY_NAMES {"Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"}
#else
#define LV_CALENDAR_DEFAULT_DAY_NAMES {"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"}
#endif
#define LV_CALENDAR_DEFAULT_MONTH_NAMES {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}
#define LV_USE_CALENDAR_HEADER_ARROW 1
#define LV_USE_CALENDAR_HEADER_DROPDOWN 1
#endif /*LV_USE_CALENDAR*/
#define LV_USE_CHART 1
#define LV_USE_COLORWHEEL 1
#define LV_USE_IMGBTN 0
#define LV_USE_KEYBOARD 1
#define LV_USE_LED 1
#define LV_USE_LIST 1
#define LV_USE_MENU 1
#define LV_USE_METER 1
#define LV_USE_MSGBOX 1
#define LV_USE_SPAN 1
#if LV_USE_SPAN
/*A line text can contain maximum num of span descriptor */
#define LV_SPAN_SNIPPET_STACK_SIZE 64
#endif
#define LV_USE_SPINBOX 1
#define LV_USE_SPINNER 1
#define LV_USE_TABVIEW 1
#define LV_USE_TILEVIEW 1
#define LV_USE_WIN 0
/*-----------
* Themes
*----------*/
/*A simple, impressive and very complete theme*/
#define LV_USE_THEME_DEFAULT 1
#if LV_USE_THEME_DEFAULT
/*0: Light mode; 1: Dark mode*/
#define LV_THEME_DEFAULT_DARK 1
/*1: Enable grow on press*/
#define LV_THEME_DEFAULT_GROW 1
/*Default transition time in [ms]*/
#define LV_THEME_DEFAULT_TRANSITION_TIME 80
#endif /*LV_USE_THEME_DEFAULT*/
/*A very simple theme that is a good starting point for a custom theme*/
#define LV_USE_THEME_BASIC 1
/*A theme designed for monochrome displays*/
#define LV_USE_THEME_MONO 1
/*-----------
* Layouts
*----------*/
/*A layout similar to Flexbox in CSS.*/
#define LV_USE_FLEX 1
/*A layout similar to Grid in CSS.*/
#define LV_USE_GRID 1
/*---------------------
* 3rd party libraries
*--------------------*/
/*File system interfaces for common APIs */
/*API for fopen, fread, etc*/
#define LV_USE_FS_STDIO 0
#if LV_USE_FS_STDIO
#define LV_FS_STDIO_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/
#define LV_FS_STDIO_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/
#define LV_FS_STDIO_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/
#endif
/*API for open, read, etc*/
#define LV_USE_FS_POSIX 0
#if LV_USE_FS_POSIX
#define LV_FS_POSIX_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/
#define LV_FS_POSIX_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/
#define LV_FS_POSIX_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/
#endif
/*API for CreateFile, ReadFile, etc*/
#define LV_USE_FS_WIN32 0
#if LV_USE_FS_WIN32
#define LV_FS_WIN32_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/
#define LV_FS_WIN32_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/
#define LV_FS_WIN32_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/
#endif
/*API for FATFS (needs to be added separately). Uses f_open, f_read, etc*/
#define LV_USE_FS_FATFS 0
#if LV_USE_FS_FATFS
#define LV_FS_FATFS_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/
#define LV_FS_FATFS_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/
#endif
/*PNG decoder library*/
#define LV_USE_PNG 0
/*BMP decoder library*/
#define LV_USE_BMP 0
/* JPG + split JPG decoder library.
* Split JPG is a custom format optimized for embedded systems. */
#define LV_USE_SJPG 0
/*GIF decoder library*/
#define LV_USE_GIF 0
/*QR code library*/
#define LV_USE_QRCODE 0
/*FreeType library*/
#define LV_USE_FREETYPE 0
#if LV_USE_FREETYPE
/*Memory used by FreeType to cache characters [bytes] (-1: no caching)*/
#define LV_FREETYPE_CACHE_SIZE (16 * 1024)
#if LV_FREETYPE_CACHE_SIZE >= 0
/* 1: bitmap cache use the sbit cache, 0:bitmap cache use the image cache. */
/* sbit cache:it is much more memory efficient for small bitmaps(font size < 256) */
/* if font size >= 256, must be configured as image cache */
#define LV_FREETYPE_SBIT_CACHE 0
/* Maximum number of opened FT_Face/FT_Size objects managed by this cache instance. */
/* (0:use system defaults) */
#define LV_FREETYPE_CACHE_FT_FACES 0
#define LV_FREETYPE_CACHE_FT_SIZES 0
#endif
#endif
/*Rlottie library*/
#define LV_USE_RLOTTIE 0
/*FFmpeg library for image decoding and playing videos
*Supports all major image formats so do not enable other image decoder with it*/
#define LV_USE_FFMPEG 0
#if LV_USE_FFMPEG
/*Dump input information to stderr*/
#define LV_FFMPEG_DUMP_FORMAT 0
#endif
/*-----------
* Others
*----------*/
/*1: Enable API to take snapshot for object*/
#define LV_USE_SNAPSHOT 0
/*1: Enable Monkey test*/
#define LV_USE_MONKEY 0
/*1: Enable grid navigation*/
#define LV_USE_GRIDNAV 0
/*1: Enable lv_obj fragment*/
#define LV_USE_FRAGMENT 0
/*1: Support using images as font in label or span widgets */
#define LV_USE_IMGFONT 0
/*1: Enable a published subscriber based messaging system */
#define LV_USE_MSG 0
/*1: Enable Pinyin input method*/
/*Requires: lv_keyboard*/
#define LV_USE_IME_PINYIN 0
#if LV_USE_IME_PINYIN
/*1: Use default thesaurus*/
/*If you do not use the default thesaurus, be sure to use `lv_ime_pinyin` after setting the thesauruss*/
#define LV_IME_PINYIN_USE_DEFAULT_DICT 1
/*Set the maximum number of candidate panels that can be displayed*/
/*This needs to be adjusted according to the size of the screen*/
#define LV_IME_PINYIN_CAND_TEXT_NUM 6
/*Use 9 key input(k9)*/
#define LV_IME_PINYIN_USE_K9_MODE 1
#if LV_IME_PINYIN_USE_K9_MODE == 1
#define LV_IME_PINYIN_K9_CAND_TEXT_NUM 3
#endif // LV_IME_PINYIN_USE_K9_MODE
#endif
/*==================
* EXAMPLES
*==================*/
/*Enable the examples to be built with the library*/
#define LV_BUILD_EXAMPLES 0
/*===================
* DEMO USAGE
====================*/
/*Show some widget. It might be required to increase `LV_MEM_SIZE` */
#define LV_USE_DEMO_WIDGETS 0
#if LV_USE_DEMO_WIDGETS
#define LV_DEMO_WIDGETS_SLIDESHOW 0
#endif
/*Demonstrate the usage of encoder and keyboard*/
#define LV_USE_DEMO_KEYPAD_AND_ENCODER 0
/*Benchmark your system*/
#define LV_USE_DEMO_BENCHMARK 0
#if LV_USE_DEMO_BENCHMARK
/*Use RGB565A8 images with 16 bit color depth instead of ARGB8565*/
#define LV_DEMO_BENCHMARK_RGB565A8 0
#endif
/*Stress test for LVGL*/
#define LV_USE_DEMO_STRESS 0
/*Music player demo*/
#define LV_USE_DEMO_MUSIC 0
#if LV_USE_DEMO_MUSIC
#define LV_DEMO_MUSIC_SQUARE 0
#define LV_DEMO_MUSIC_LANDSCAPE 0
#define LV_DEMO_MUSIC_ROUND 0
#define LV_DEMO_MUSIC_LARGE 0
#define LV_DEMO_MUSIC_AUTO_PLAY 0
#endif
/*--END OF LV_CONF_H--*/
#endif /*LV_CONF_H*/
#endif /*End of "Content enable"*/

View File

@ -8,6 +8,48 @@
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[platformio]
default_envs = x64_sim
; Shared options
[env]
build_flags =
-std=c++17
-std=gnu++17
; Don't use lv_conf.h. Tweak params via platfom.ini.
-D LV_CONF_INCLUDE_SIMPLE
-D LV_CONF_SKIP
;------------- LVGL ------------------------------------------
-D LV_MEM_CUSTOM=1
-D LV_MEM_SIZE="\(48U * 1024U\)"
-D LV_FONT_MONTSERRAT_12=1
-D LV_FONT_MONTSERRAT_16=1
-D LV_FONT_MONTSERRAT_24=1
-D LV_USE_CALENDAR=1
-D LV_USE_IMGBTN=1
-D LV_USE_WIN=1
-D LV_THEME_DEFAULT_DARK=1
-D LV_BUILD_EXAMPLES=0
;------------ OMOTE Defines -----------------------------------
; Currently based on the ILI9341_DRIVER
-D SCREEN_WIDTH=240
-D SCREEN_HEIGHT=320
; ------------- Includes ------------------------------------
-I OmoteUI
-I HAL
-I HAL/Interface
lib_deps =
lvgl/lvgl@^8.3.9
lib_archive = false
build_src_filter =
+<../OmoteUI/*>
[env:esp32]
platform = espressif32
board = esp32dev
@ -17,39 +59,82 @@ board_build.f_flash = 80000000L
board_build.f_cpu = 240000000L
upload_speed = 1000000
lib_deps =
${env.lib_deps}
sparkfun/SparkFun LIS3DH Arduino Library@^1.0.3
crankyoldgit/IRremoteESP8266@^2.8.4
adafruit/Adafruit FT6206 Library@^1.0.6
lvgl/lvgl@^8.3.4
bodmer/TFT_eSPI@^2.5.23
knolleary/PubSubClient@^2.8
Wire
WiFi
SPI
Keypad
Preferences
build_flags =
-std=c++17
-std=gnu++17
-D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
-I include
-I include/OmoteUI
; Include the folder containing lv_conf.h
; The following lines replace the TFT_eSPI User_setup.h-file
${env.build_flags}
-D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
; ---------------- TFT_eSPI Defines replace(User_setup.h-file)---------
-D USER_SETUP_LOADED=1
-D ILI9341_DRIVER=1
-D TFT_WIDTH=240
-D TFT_HEIGHT=320
;-D TFT_WIDTH=SCREEN_WIDTH
;-D TFT_HEIGHT=SCREEN_HEIGHT
-D TFT_MOSI=23
-D TFT_SCLK=18
-D TFT_CS=5
-D TFT_DC=9
-D TFT_RST=-1
-D SPI_FREQUENCY=80000000
-D SPI_FREQUENCY=40000000 ; 40MHz default, some displays might support 80MHz
-D SPI_TOUCH_FREQUENCY=2500000
; TFT_eSPI fonts are disabled by default
;-D LOAD_GLCD=1
;-D LOAD_FONT2=1
;-D LOAD_FONT4=1
;-D LOAD_FONT6=1
;-D LOAD_FONT7=1
;-D LOAD_FONT8=1
;-D LOAD_GFXFF=1
;-D SMOOTH_FONT=1
; --------------- LVGL Defines --------------------------------------
-D LV_TICK_CUSTOM=1
-D LV_TICK_CUSTOM_INCLUDE="\"Arduino.h\""
-D LV_TICK_CUSTOM_SYS_TIME_EXPR="'(millis())'"
; ------------- Includes --------------------------------------------
-I HAL/Targets/ESP32
build_unflags =
-std=gnu++11
build_src_filter =
+<main.cpp>
+<../HAL/Targets/ESP32/*>
${env.build_src_filter}
[env:x64_sim]
platform = native@^1.1.3
build_flags =
${env.build_flags}
;-D LV_LOG_LEVEL=LV_LOG_LEVEL_INFO
;-D LV_LOG_PRINTF=1
-lSDL2 ; SDL2 must be installed on system! Windows:msys2 ubuntu:apt-get
; --------- SDL drivers options -----------------------------
-D LV_LVGL_H_INCLUDE_SIMPLE
-D LV_DRV_NO_CONF
-D USE_SDL
-D SDL_HOR_RES=SCREEN_WIDTH
-D SDL_VER_RES=SCREEN_HEIGHT
-D SDL_ZOOM=1
-D SDL_INCLUDE_PATH="\"SDL2/SDL.h\""
; -------------- Sim Includes ---------------------------
-I HAL/Targets/Simulator
debug_build_flags =
-g ;Allow debugging in vscode
lib_deps =
${env.lib_deps}
; Use direct URL, because package registry is unstable
;lv_drivers@~7.9.0
lv_drivers=https://github.com/lvgl/lv_drivers/archive/refs/tags/v8.2.0.zip
build_src_filter =
+<simMain.cpp>
+<../HAL/Targets/Simulator/*>
+<../OmoteUI/*>
; Force compile LVGL demo, remove when working on your own project

View File

@ -1 +0,0 @@
#include "HardwareAbstractionInterface.h"

View File

@ -1,931 +0,0 @@
#include <lvgl.h>
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_GRADIENTLEFT
#define LV_ATTRIBUTE_IMG_GRADIENTLEFT
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST
LV_ATTRIBUTE_IMG_GRADIENTLEFT uint8_t gradientLeft_map[] = {
0xfa, 0xf2, 0xea, 0xe2, 0xda, 0xd1, 0xc7, 0xbe, 0xb7, 0xae,
0xa6, 0x9e, 0x95, 0x8d, 0x84, 0x7d, 0x74, 0x6c, 0x62, 0x5a,
0x51, 0x48, 0x41, 0x38, 0x2f, 0x28, 0x1f, 0x17, 0x0f, 0x07,
};
const lv_img_dsc_t gradientLeft = {
.header.cf = LV_IMG_CF_ALPHA_8BIT,
.header.always_zero = 0,
.header.reserved = 0,
.header.w = 30,
.header.h = 1,
.data_size = 30,
.data = gradientLeft_map,
};
#ifndef LV_ATTRIBUTE_IMG_GRADIENTRIGHT
#define LV_ATTRIBUTE_IMG_GRADIENTRIGHT
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST
LV_ATTRIBUTE_IMG_GRADIENTRIGHT uint8_t gradientRight_map[] = {
0x07, 0x0f, 0x17, 0x1f, 0x28, 0x2f, 0x38, 0x41, 0x48, 0x51,
0x5a, 0x62, 0x6c, 0x74, 0x7d, 0x84, 0x8d, 0x95, 0x9e, 0xa6,
0xae, 0xb7, 0xbe, 0xc7, 0xd1, 0xda, 0xe2, 0xea, 0xf2, 0xfa,
};
const lv_img_dsc_t gradientRight = {
.header.cf = LV_IMG_CF_ALPHA_8BIT,
.header.always_zero = 0,
.header.reserved = 0,
.header.w = 30,
.header.h = 1,
.data_size = 30,
.data = gradientRight_map,
};
#ifndef LV_ATTRIBUTE_IMG_APPLETVICON
#define LV_ATTRIBUTE_IMG_APPLETVICON
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST uint8_t
appleTvIcon_map[] = {
/*Pixel format: Red: 5 bit, Green: 6 bit, Blue: 5 bit*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x42, 0x55, 0xad,
0xdb, 0xde, 0x1c, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xad, 0xdf, 0xff,
0xff, 0xff, 0xff, 0xff, 0x5d, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0xce, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xde, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x21, 0x34, 0xa5, 0x55, 0xad,
0x55, 0xad, 0x55, 0xad, 0x55, 0xad, 0x55, 0xad, 0x55, 0xad, 0xcf, 0x7b,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xc6, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x76, 0xb5, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x8c, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x69, 0x4a,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x39,
0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xef,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xbd,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xe7, 0x39, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x7b,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5d, 0xef,
0x65, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xb6, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xef,
0x8a, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x59, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9a, 0xd6,
0x08, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x55, 0xad, 0x9a, 0xd6, 0xd7, 0xbd, 0x8e, 0x73,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x73,
0xd7, 0xbd, 0xbb, 0xde, 0x3c, 0xe7, 0xfc, 0xe6, 0x39, 0xce, 0x72, 0x94,
0xa7, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xa3, 0x18, 0x8e, 0x73, 0xd7, 0xbd, 0x1c, 0xe7, 0x9e, 0xf7, 0xbe, 0xf7,
0x5d, 0xef, 0x9a, 0xd6, 0x34, 0xa5, 0x28, 0x42, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x39,
0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x6b, 0xfb, 0xde,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xdf, 0xff, 0x7a, 0xd6, 0x71, 0x8c, 0xa6, 0x31, 0x2d, 0x6b,
0xb6, 0xb5, 0x7d, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xd7, 0xbd,
0xa3, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xa7, 0x39, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x9c, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x3c, 0xe7, 0x49, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xe7, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x38, 0xc6, 0x00, 0x00, 0x00, 0x00,
0x69, 0x4a, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x59, 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xf7,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff,
0x14, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x9c, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3d, 0xef, 0x24, 0x21, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xef,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xce, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xdb, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbe, 0xf7, 0x45, 0x29, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x83,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x1c, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x63, 0xdf, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5d, 0xef, 0xeb, 0x5a,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5d, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xce,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x9c, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x10, 0x84,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x18, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x14, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xde,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xde, 0x86, 0x31,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x5d, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x39, 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x31, 0xbf, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x39, 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x7e, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xdf, 0xff, 0xe7, 0x39, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x73,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3d, 0xef, 0x86, 0x31,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x5d, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x39, 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x59, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xbe, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x8e, 0x73, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x9a, 0xd6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x79, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0x6b,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0xd6, 0x3c, 0xe7, 0x3c, 0xe7,
0x3d, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x9e, 0xf7, 0x3c, 0xe7, 0x3c, 0xe7, 0x3c, 0xe7,
0x3c, 0xe7, 0x3c, 0xe7, 0x96, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xf0, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x83, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xd7, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x8c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x9e, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7a, 0xd6,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xa7, 0x39, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xf7, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0xef, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0xf7, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xec, 0x62, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x71, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0xbd, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xef,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x73, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xc5, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x31, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x49, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x63,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x4d, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, 0xbd, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6e, 0x73,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x9c, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xbf, 0xff, 0xe4, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1c, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xd7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xef,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5d, 0xef,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xad, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x39,
0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x34, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5d, 0xef, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x5a,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x76, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0xa5,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x28, 0x42, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xe7, 0x39, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x39, 0xdf, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2d, 0x6b,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x96, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x29, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x92, 0x94, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xae, 0x73,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0xd6,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x96, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x3d, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xbb, 0xde, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xf0, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf8, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x72, 0x94, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x1c, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xeb, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xd3, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x8a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xbf, 0xff, 0x28, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xbe, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8a, 0x52, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x55, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x45, 0x29, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0xf7, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7a, 0xd6, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xc6, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x75, 0xad, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xe6, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x59, 0xce, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0xd6,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x39,
0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x6b, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe6,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x4a, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x7b, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf4, 0xa4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x59, 0xce, 0x86, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xe7, 0x39, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3d, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x49, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x55, 0xad, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xef, 0xa3, 0x18,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xa6, 0x31, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0xf7, 0xef, 0x7b, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x96, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x14, 0xa5, 0x00, 0x00, 0x00, 0x00, 0xfb, 0xde,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xbd,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0xd6, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x63,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xbd, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x49, 0x4a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xde, 0x00, 0x00, 0x29, 0x4a,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xeb, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x8c, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xde,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xce,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xde, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x39,
0xf3, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfc, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3c, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x10, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x39, 0xdf, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x7d, 0xef, 0x24, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x86, 0x31, 0x29, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x9c,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf3, 0x9c, 0xbb, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x14, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x51, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfc, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x39,
0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfc, 0xe6, 0xd3, 0x9c, 0x51, 0x8c, 0x34, 0xa5,
0x9a, 0xd6, 0xdf, 0xff, 0xf7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xa6, 0x31, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xdb, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xdf, 0xff, 0x08, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xe6, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xcf, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0xe7, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x59, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x9a, 0xd6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x62, 0xdf, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x79, 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3c, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xe7, 0x39,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x7b, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x51, 0x8c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x55, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x9e, 0xf7, 0xe7, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0xbd, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x30, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0xef,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0xf7, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x59, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x10, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x41, 0xdf, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xf7, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xd7, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0xd6, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xb2, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x51, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x39, 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0c, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8e, 0x73,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x18, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x9e, 0xf7, 0x39, 0xce, 0x72, 0x94, 0xcb, 0x5a, 0xa3, 0x18, 0x4d, 0x6b,
0x34, 0xa5, 0xfb, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xbe, 0xf7, 0x72, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xaf, 0x7b, 0x3c, 0xe7, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x7d, 0xef, 0xd7, 0xbd, 0xeb, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xe7, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5d, 0xef,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x6e, 0x73, 0xf8, 0xc5, 0xba, 0xd6, 0xd7, 0xbd,
0xf0, 0x83, 0xa3, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x4a, 0xf3, 0x9c, 0xf8, 0xc5,
0x59, 0xce, 0x55, 0xad, 0x08, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x73,
0x76, 0xb5, 0x39, 0xce, 0x7a, 0xd6, 0x39, 0xce, 0xd7, 0xbd, 0xd3, 0x9c,
0xec, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x4a, 0x0c, 0x63,
0x0c, 0x63, 0x0c, 0x63, 0x0c, 0x63, 0x0c, 0x63, 0x0c, 0x63, 0x0c, 0x63,
0x49, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const lv_img_dsc_t appleTvIcon = {
.header.cf = LV_IMG_CF_TRUE_COLOR,
.header.always_zero = 0,
.header.reserved = 0,
.header.w = 91,
.header.h = 42,
.data_size = 3822 * LV_COLOR_SIZE / 8,
.data = appleTvIcon_map,
};
#ifndef LV_ATTRIBUTE_IMG_APPLEDISPLAYICON
#define LV_ATTRIBUTE_IMG_APPLEDISPLAYICON
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST uint8_t
appleDisplayIcon_map[] = {
0x23, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd8,
0x3d, 0xaa, 0xfd, 0xad, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a,
0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0xa1,
0xf7, 0xd8, 0xd0, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xa1, 0xff, 0xd2, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x9a, 0xff, 0xd2, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x9a, 0xff, 0xd2, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x9a, 0xff, 0xd2, 0xcb, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0xff, 0xd2, 0xcb, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0xff, 0xd2, 0xcb, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0xff, 0xd2, 0xcb, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0xff, 0xd2, 0xcb,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0xff, 0xd2,
0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0xff,
0xd2, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a,
0xff, 0xd2, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x9a, 0xff, 0xc6, 0xea, 0x2a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a,
0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a,
0x1f, 0xcc, 0xf6, 0x6c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x98, 0x00, 0x44, 0x7b, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x7d, 0x56, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x13, 0xb7, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc0,
0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x19, 0xd3, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde,
0xdb, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const lv_img_dsc_t appleDisplayIcon = {
.header.cf = LV_IMG_CF_ALPHA_8BIT,
.header.always_zero = 0,
.header.reserved = 0,
.header.w = 25,
.header.h = 20,
.data_size = 500,
.data = appleDisplayIcon_map,
};
#ifndef LV_ATTRIBUTE_IMG_APPLEBACKICON
#define LV_ATTRIBUTE_IMG_APPLEBACKICON
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST
LV_ATTRIBUTE_IMG_APPLEBACKICON uint8_t appleBackIcon_map[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3d, 0xbe, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3b, 0xe7, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3b, 0xfa, 0xff, 0xf5, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x43, 0xfc, 0xff, 0xea, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x4d, 0xee, 0xff, 0xe6, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x50, 0xed, 0xff, 0xe9, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x55, 0xfc, 0xff, 0xe7, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x59, 0xff, 0xff, 0xe0, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5e, 0xf6, 0xff, 0xdb, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x64, 0xf4, 0xff, 0xd9, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x4d, 0xff, 0xff, 0xce, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x6b, 0xff, 0xff, 0x9e, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x9c, 0xff, 0xff, 0xa8, 0x0f, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x04, 0x8f, 0xff, 0xff, 0xb5, 0x17, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x91, 0xff, 0xff, 0xba, 0x12,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0xff, 0xff,
0xbb, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x87,
0xfc, 0xff, 0xbf, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x7c, 0xfb, 0xff, 0xc5, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x78, 0xff, 0xff, 0xca, 0x1e, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0xff, 0xff, 0xd0, 0x11, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6e, 0xfb, 0xff, 0xcc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0xea, 0xca,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x28,
0x18,
};
const lv_img_dsc_t appleBackIcon = {
.header.cf = LV_IMG_CF_ALPHA_8BIT,
.header.always_zero = 0,
.header.reserved = 0,
.header.w = 13,
.header.h = 25,
.data_size = 325,
.data = appleBackIcon_map,
};
#ifndef LV_ATTRIBUTE_IMG_HIGH_BRIGHTNESS
#define LV_ATTRIBUTE_IMG_HIGH_BRIGHTNESS
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST
LV_ATTRIBUTE_IMG_HIGH_BRIGHTNESS uint8_t high_brightness_map[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xc1, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xd4, 0xd4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x5c, 0x8e, 0x04, 0x00, 0x00, 0x00, 0xc1, 0xc1, 0x00, 0x00,
0x00, 0x04, 0x8e, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x8c, 0xff, 0xa8, 0x01,
0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x01, 0xa8, 0xff, 0x8c, 0x00, 0x00,
0x00, 0x00, 0x04, 0xa9, 0xf5, 0x0d, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00,
0x0d, 0xf5, 0xa9, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0a, 0x00,
0x42, 0xd4, 0xff, 0xff, 0xd4, 0x41, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xfd,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00,
0xbd, 0xcc, 0xbd, 0x0d, 0x11, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0x12, 0x0d, 0xbd, 0xcc, 0xbd, 0xbd, 0xcc, 0xbd, 0x0d, 0x11, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x10, 0x0d, 0xbd, 0xcc, 0xbd,
0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xd2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41,
0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x0a, 0x00, 0x40, 0xd3, 0xff, 0xfe, 0xd2, 0x3f,
0x00, 0x0a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xa9, 0xf5, 0x0d,
0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x0d, 0xf5, 0xa9, 0x04, 0x00, 0x00,
0x00, 0x00, 0x8c, 0xff, 0xa8, 0x01, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00,
0x01, 0xa8, 0xff, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x8e, 0x04, 0x00,
0x00, 0x00, 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x04, 0x8e, 0x5c, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0xd4, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const lv_img_dsc_t high_brightness = {
.header.cf = LV_IMG_CF_ALPHA_8BIT,
.header.always_zero = 0,
.header.reserved = 0,
.header.w = 18,
.header.h = 18,
.data_size = 324,
.data = high_brightness_map,
};
#ifndef LV_ATTRIBUTE_IMG_LOW_BRIGHTNESS
#define LV_ATTRIBUTE_IMG_LOW_BRIGHTNESS
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST
LV_ATTRIBUTE_IMG_LOW_BRIGHTNESS uint8_t low_brightness_map[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x43, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd,
0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x72,
0x01, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x01, 0x72, 0x28, 0x00, 0x00,
0x00, 0x00, 0x71, 0xf5, 0x0f, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x0d,
0xf5, 0x73, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0b, 0x00, 0x42, 0xd4, 0xff,
0xff, 0xd4, 0x41, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x42, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x40, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xd5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3,
0x00, 0x00, 0x00, 0x00, 0x43, 0xbd, 0x0d, 0x11, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x12, 0x0d, 0xbc, 0x44, 0x43, 0xbd, 0x0d, 0x11,
0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x11, 0x0d, 0xbc, 0x44,
0x00, 0x00, 0x00, 0x00, 0xd4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd2,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xfd, 0xff, 0xff,
0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0b,
0x00, 0x40, 0xd3, 0xfe, 0xff, 0xd2, 0x3f, 0x00, 0x0a, 0x01, 0x00, 0x00,
0x00, 0x00, 0x71, 0xf5, 0x0f, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x0d,
0xf5, 0x73, 0x00, 0x00, 0x00, 0x00, 0x27, 0x72, 0x01, 0x00, 0x00, 0x0c,
0x0c, 0x00, 0x00, 0x01, 0x72, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xbd, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x44, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
};
const lv_img_dsc_t low_brightness = {
.header.cf = LV_IMG_CF_ALPHA_8BIT,
.header.always_zero = 0,
.header.reserved = 0,
.header.w = 16,
.header.h = 16,
.data_size = 256,
.data = low_brightness_map,
};
#ifndef LV_ATTRIBUTE_IMG_LIGHTBULB
#define LV_ATTRIBUTE_IMG_LIGHTBULB
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_LIGHTBULB
uint8_t lightbulb_map[] = {
0x00, 0x00, 0x00, 0x00, 0x04, 0x1c, 0x1c, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x16, 0x95, 0xee, 0xff, 0xff, 0xee, 0x94, 0x15, 0x00, 0x00,
0x00, 0x27, 0xe3, 0xff, 0xcc, 0x8d, 0x8d, 0xcd, 0xff, 0xe1, 0x26, 0x00,
0x07, 0xd9, 0xfa, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xfa, 0xd7, 0x06,
0x65, 0xff, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0xff, 0x63,
0xb1, 0xf8, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xf8, 0xaf,
0xcc, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xcd,
0xb1, 0xf5, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xf1, 0xbd,
0x73, 0xff, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0xff, 0x74,
0x0b, 0xd5, 0xfb, 0x40, 0x00, 0x00, 0x00, 0x00, 0x41, 0xfb, 0xd9, 0x0b,
0x00, 0x24, 0xef, 0xdc, 0x01, 0x00, 0x00, 0x01, 0xdd, 0xee, 0x24, 0x00,
0x00, 0x00, 0x83, 0xff, 0x30, 0x00, 0x00, 0x30, 0xff, 0x81, 0x00, 0x00,
0x00, 0x00, 0x12, 0x6c, 0x06, 0x00, 0x00, 0x06, 0x6c, 0x12, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x25, 0xc7, 0xcc, 0xcc, 0xcc, 0xcc, 0xc7, 0x25, 0x00, 0x00,
0x00, 0x00, 0x25, 0xc7, 0xcc, 0xcc, 0xcc, 0xcc, 0xc7, 0x25, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1c, 0x76, 0x77, 0x77, 0x76, 0x1c, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x69, 0xff, 0xff, 0xff, 0xff, 0x69, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x21, 0x22, 0x22, 0x21, 0x01, 0x00, 0x00, 0x00,
};
const lv_img_dsc_t lightbulb = {
.header.cf = LV_IMG_CF_ALPHA_8BIT,
.header.always_zero = 0,
.header.reserved = 0,
.header.w = 12,
.header.h = 20,
.data_size = 240,
.data = lightbulb_map,
};

View File

@ -3,7 +3,7 @@
#include <lvgl.h>
#include "HardwareRevX.hpp"
#include "OmoteUI/OmoteUI.hpp"
#include "OmoteUI.hpp"
#include "omoteconfig.h"
std::shared_ptr<HardwareRevX> hal = nullptr;

View File

@ -0,0 +1,17 @@
#include "HardwareSimulator.hpp"
#include "omoteconfig.h"
#include "OmoteUI.hpp"
#include <memory>
int main(){
auto hwSim = std::make_shared<HardwareSimulator>();
hwSim->init();
auto ui = OmoteUI::getInstance(hwSim);
ui->layout_UI();
while (true){
ui->loopHandler();
lv_task_handler();
}
}

View File

@ -40,10 +40,10 @@ There is still a lot of work left to be done in terms of software. Right now, ne
### To Do
Right now I have no idea if and when this will be done. But these would be the next steps:
Currently I have no idea if and when this will be done. But these would be the next steps:
- [ ] Easier configuration
- [ ] Document the current process of custromization
- [ ] Document the current process of customization
- [ ] Store the configuration in Flash (e.g. as a editable json file)
- [ ] Add an interface for graphically editing the configuration
- [ ] Complete the on-device settings page
@ -81,7 +81,7 @@ The remote can be charged and programmed via its USB-C port. Open the [PlatformI
## Contributing
If you have a suggestion for an improvement, please fork the repo and create a pull request. You can also simply open an issue or for more general feature requests, head over to the discussions.
If you have a suggestion for an improvement, please fork the repo and create a pull request. You can also simply open an issue or for more general feature requests, head over to the [discussions](https://github.com/CoretechR/OMOTE/discussions).
## License