Compare commits
19 Commits
Author | SHA1 | Date | |
---|---|---|---|
b446d0fa98 | |||
b9f5394d53 | |||
c8ccd519fc | |||
9ab3da2782 | |||
7ec4fa3394 | |||
1ca611e504 | |||
8b5e23cecb | |||
0124b89fef | |||
61a4072738 | |||
df61b1f24d | |||
b1600ab1d6 | |||
5d013b4273 | |||
72fd1af579 | |||
344e0bd3b0 | |||
73ba3b2750 | |||
be0b4a4872 | |||
271c7de255 | |||
23f432712b | |||
2ff37d5991 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -1 +1,4 @@
|
||||
.pio
|
||||
*.kicad_pcb-bak
|
||||
*.sublime-workspace
|
||||
pcb/plot
|
10
DeskControl.sublime-project
Normal file
10
DeskControl.sublime-project
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"folders":
|
||||
[
|
||||
{
|
||||
"path": ".",
|
||||
"file_exclude_patterns": ["*.sublime-project"],
|
||||
"folder_exclude_patterns": [".pioenvs"]
|
||||
}
|
||||
]
|
||||
}
|
20
README.md
Normal file
20
README.md
Normal file
@ -0,0 +1,20 @@
|
||||
# DeskControl
|
||||
This project is for motorizing a (very specific) manually controlled standing desk. I wanted to call it AutoDesk, but I don't like getting sued :-)
|
||||
|
||||
Contained in this repository are the hardware designs and software source code. I doubt it's useful to anyone but me, but it may contain some interesting bits of code.
|
||||
|
||||
All contents are released under the [Unlicense](https://unlicense.org/). Help yourself!
|
||||
|
||||
## Building and uploading
|
||||
This project uses [PlatformIO](https://platformio.org/). For reference, here are some of the common commands:
|
||||
|
||||
|
||||
|
||||
_Building_
|
||||
```pio run```
|
||||
|
||||
_Building and uploading_
|
||||
```pio run -t upload```
|
||||
|
||||
_Installing the libraries (without building)_
|
||||
```pio lib install```
|
24
UNLICENSE
Normal file
24
UNLICENSE
Normal file
@ -0,0 +1,24 @@
|
||||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <http://unlicense.org/>
|
BIN
doc/DeskControl UI mockup - LCD version.psd
Normal file
BIN
doc/DeskControl UI mockup - LCD version.psd
Normal file
Binary file not shown.
45
doc/pinout.md
Normal file
45
doc/pinout.md
Normal file
@ -0,0 +1,45 @@
|
||||
## ST7789 LCD
|
||||
|
||||
https://learn.adafruit.com/adafruit-1-3-and-1-54-240-x-240-wide-angle-tft-lcd-displays/pinouts
|
||||
|
||||
| Identifier | Description | Arduino pin | ATMega328p pin |
|
||||
|------------|----------------------------|-------------|----------------|
|
||||
| MOSI | SPI master out - slave in | 11 | 15 - PB3 |
|
||||
| SCLK | SPI clock | 13 | 17 - PB5 |
|
||||
| CS | Chip select | N/C | N/C |
|
||||
| RST | Reset | 9 | 13 - PB1 |
|
||||
| DC | SPI data / command select | 8 | 12 - PB0 |
|
||||
| BL | Backlight PWM | 7 | 11 - PD7 |
|
||||
|
||||
|
||||
## Polulu G2 motor driver
|
||||
|
||||
https://www.pololu.com/product/2995
|
||||
|
||||
| Identifier | Description | Arduino pin | ATMega328p pin |
|
||||
|------------|----------------------------|-------------|----------------|
|
||||
| PWM | Motor PWM | 14 / A0 | 23 - PC0 |
|
||||
| DIR | Direction | 15 / A1 | 24 - PC1 |
|
||||
| SLP | Sleep (active low) | 16 | 25 - PC2 |
|
||||
| CS | Current sensing | 17 / A3 | 26 - PC3 |
|
||||
|
||||
CS has a voltage of 50mV + 20mV per A.
|
||||
|
||||
|
||||
## VL53L0X time-of-flight sensor
|
||||
|
||||
https://learn.adafruit.com/adafruit-vl53l0x-micro-lidar-distance-sensor-breakout/pinouts
|
||||
|
||||
| Identifier | Description | Arduino pin | ATMega328p pin |
|
||||
|------------|----------------------------|-------------|----------------|
|
||||
| SCL | I²C clock | 18 / A4 | 28 - PC5 |
|
||||
| SDA | I²C data | 19 / A5 | 27 - PC4 |
|
||||
|
||||
|
||||
## Buttons
|
||||
|
||||
| Description | Arduino pin | ATMega328p pin |
|
||||
|-------------|-------------|----------------|
|
||||
| Up | 3 | 1 - PD3 |
|
||||
| Menu | 5 | 9 - PD5 |
|
||||
| Down | 6 | 10 - PD6 |
|
21
doc/testscript.md
Normal file
21
doc/testscript.md
Normal file
@ -0,0 +1,21 @@
|
||||
# Testscript
|
||||
As I really do not want to explain to my employer how I broke my desk, this document describes the intended behaviour of the software in various scenarios, focusing on the safety guards.
|
||||
|
||||
## Startup
|
||||
|
||||
1. Height sensor must report at least 3 values within 10mm of each other to be considered stable.
|
||||
1. If the EEPROM has not been initialized yet, the height offset setup screen must be displayed.
|
||||
1. Otherwise, the home screen must be displayed.
|
||||
|
||||
|
||||
## Home
|
||||
|
||||
|
||||
## Moving
|
||||
|
||||
1. If the height sensor does not report a valid value for 100ms the move must be aborted and the move error screen shown.
|
||||
|
||||
### Move error screen
|
||||
|
||||
1. This screen can only be closed if the height sensor is considered stable, as described in the startup sequence.
|
||||
1. Pressing any button will close this screen and return to the Home screen.
|
BIN
mount/Cover Right (Right-Mounted).factory
Normal file
BIN
mount/Cover Right (Right-Mounted).factory
Normal file
Binary file not shown.
BIN
mount/Motor.f3d
Normal file
BIN
mount/Motor.f3d
Normal file
Binary file not shown.
BIN
mount/Mount.f3z
Normal file
BIN
mount/Mount.f3z
Normal file
Binary file not shown.
BIN
mount/Mount.factory
Normal file
BIN
mount/Mount.factory
Normal file
Binary file not shown.
@ -1,494 +0,0 @@
|
||||
EESchema Schematic File Version 4
|
||||
EELAYER 26 0
|
||||
EELAYER END
|
||||
$Descr A4 11693 8268
|
||||
encoding utf-8
|
||||
Sheet 1 1
|
||||
Title ""
|
||||
Date ""
|
||||
Rev ""
|
||||
Comp ""
|
||||
Comment1 ""
|
||||
Comment2 ""
|
||||
Comment3 ""
|
||||
Comment4 ""
|
||||
$EndDescr
|
||||
$Comp
|
||||
L MCU_Microchip_ATmega:ATmega328-AU U1
|
||||
U 1 1 5D753A97
|
||||
P 5100 3400
|
||||
F 0 "U1" H 4200 2050 50 0000 C CNN
|
||||
F 1 "ATmega328-AU" H 4200 2150 50 0000 C CNN
|
||||
F 2 "Package_QFP:TQFP-32_7x7mm_P0.8mm" H 5100 3400 50 0001 C CIN
|
||||
F 3 "http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega328_P%20AVR%20MCU%20with%20picoPower%20Technology%20Data%20Sheet%2040001984A.pdf" H 5100 3400 50 0001 C CNN
|
||||
1 5100 3400
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x04 J2
|
||||
U 1 1 5D753B7C
|
||||
P 9400 2250
|
||||
F 0 "J2" H 9479 2242 50 0000 L CNN
|
||||
F 1 "SSD1306" H 9479 2151 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm" H 9400 2250 50 0001 C CNN
|
||||
F 3 "~" H 9400 2250 50 0001 C CNN
|
||||
1 9400 2250
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector_Generic:Conn_02x03_Odd_Even J1
|
||||
U 1 1 5D753DE7
|
||||
P 9350 3100
|
||||
F 0 "J1" H 9400 3417 50 0000 C CNN
|
||||
F 1 "PROG" H 9400 3326 50 0000 C CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_2x03_Pitch2.54mm" H 9350 3100 50 0001 C CNN
|
||||
F 3 "~" H 9350 3100 50 0001 C CNN
|
||||
1 9350 3100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Text GLabel 9150 3000 0 50 Input ~ 0
|
||||
MISO
|
||||
Text GLabel 9150 3100 0 50 Input ~ 0
|
||||
SCK
|
||||
Text GLabel 9150 3200 0 50 Input ~ 0
|
||||
RST
|
||||
Text GLabel 9650 3100 2 50 Input ~ 0
|
||||
MOSI
|
||||
$Comp
|
||||
L power:+5V #PWR08
|
||||
U 1 1 5D753EAE
|
||||
P 9750 3000
|
||||
F 0 "#PWR08" H 9750 2850 50 0001 C CNN
|
||||
F 1 "+5V" H 9765 3173 50 0000 C CNN
|
||||
F 2 "" H 9750 3000 50 0001 C CNN
|
||||
F 3 "" H 9750 3000 50 0001 C CNN
|
||||
1 9750 3000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR09
|
||||
U 1 1 5D753EEB
|
||||
P 9750 3200
|
||||
F 0 "#PWR09" H 9750 2950 50 0001 C CNN
|
||||
F 1 "GND" H 9755 3027 50 0000 C CNN
|
||||
F 2 "" H 9750 3200 50 0001 C CNN
|
||||
F 3 "" H 9750 3200 50 0001 C CNN
|
||||
1 9750 3200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
9650 3000 9750 3000
|
||||
Wire Wire Line
|
||||
9650 3200 9750 3200
|
||||
$Comp
|
||||
L power:+5V #PWR04
|
||||
U 1 1 5D753F2B
|
||||
P 8900 2350
|
||||
F 0 "#PWR04" H 8900 2200 50 0001 C CNN
|
||||
F 1 "+5V" H 8915 2523 50 0000 C CNN
|
||||
F 2 "" H 8900 2350 50 0001 C CNN
|
||||
F 3 "" H 8900 2350 50 0001 C CNN
|
||||
1 8900 2350
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR06
|
||||
U 1 1 5D753F42
|
||||
P 9100 2450
|
||||
F 0 "#PWR06" H 9100 2200 50 0001 C CNN
|
||||
F 1 "GND" H 9105 2277 50 0000 C CNN
|
||||
F 2 "" H 9100 2450 50 0001 C CNN
|
||||
F 3 "" H 9100 2450 50 0001 C CNN
|
||||
1 9100 2450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
9100 2450 9200 2450
|
||||
Wire Wire Line
|
||||
9200 2350 8900 2350
|
||||
Text GLabel 9200 2150 0 50 Input ~ 0
|
||||
SDA
|
||||
Text GLabel 9200 2250 0 50 Input ~ 0
|
||||
SCL
|
||||
$Comp
|
||||
L power:+5V #PWR01
|
||||
U 1 1 5D7540FC
|
||||
P 900 900
|
||||
F 0 "#PWR01" H 900 750 50 0001 C CNN
|
||||
F 1 "+5V" H 915 1073 50 0000 C CNN
|
||||
F 2 "" H 900 900 50 0001 C CNN
|
||||
F 3 "" H 900 900 50 0001 C CNN
|
||||
1 900 900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR03
|
||||
U 1 1 5D754134
|
||||
P 900 1450
|
||||
F 0 "#PWR03" H 900 1200 50 0001 C CNN
|
||||
F 1 "GND" H 905 1277 50 0000 C CNN
|
||||
F 2 "" H 900 1450 50 0001 C CNN
|
||||
F 3 "" H 900 1450 50 0001 C CNN
|
||||
1 900 1450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:PWR_FLAG #FLG02
|
||||
U 1 1 5D754186
|
||||
P 900 1450
|
||||
F 0 "#FLG02" H 900 1525 50 0001 C CNN
|
||||
F 1 "PWR_FLAG" H 900 1624 50 0000 C CNN
|
||||
F 2 "" H 900 1450 50 0001 C CNN
|
||||
F 3 "~" H 900 1450 50 0001 C CNN
|
||||
1 900 1450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:PWR_FLAG #FLG01
|
||||
U 1 1 5D7541A4
|
||||
P 900 900
|
||||
F 0 "#FLG01" H 900 975 50 0001 C CNN
|
||||
F 1 "PWR_FLAG" H 900 1073 50 0000 C CNN
|
||||
F 2 "" H 900 900 50 0001 C CNN
|
||||
F 3 "~" H 900 900 50 0001 C CNN
|
||||
1 900 900
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C3
|
||||
U 1 1 5D754323
|
||||
P 3900 2350
|
||||
F 0 "C3" H 3785 2304 50 0000 R CNN
|
||||
F 1 "100nF" H 3785 2395 50 0000 R CNN
|
||||
F 2 "Capacitors_SMD:C_1206" H 3938 2200 50 0001 C CNN
|
||||
F 3 "~" H 3900 2350 50 0001 C CNN
|
||||
1 3900 2350
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR07
|
||||
U 1 1 5D75441A
|
||||
P 3350 2750
|
||||
F 0 "#PWR07" H 3350 2500 50 0001 C CNN
|
||||
F 1 "GND" H 3355 2577 50 0000 C CNN
|
||||
F 2 "" H 3350 2750 50 0001 C CNN
|
||||
F 3 "" H 3350 2750 50 0001 C CNN
|
||||
1 3350 2750
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C2
|
||||
U 1 1 5D7545D2
|
||||
P 3350 2350
|
||||
F 0 "C2" H 3235 2304 50 0000 R CNN
|
||||
F 1 "100nF" H 3235 2395 50 0000 R CNN
|
||||
F 2 "Capacitors_SMD:C_1206" H 3388 2200 50 0001 C CNN
|
||||
F 3 "~" H 3350 2350 50 0001 C CNN
|
||||
1 3350 2350
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C1
|
||||
U 1 1 5D75463E
|
||||
P 2800 2350
|
||||
F 0 "C1" H 2685 2304 50 0000 R CNN
|
||||
F 1 "10uF" H 2685 2395 50 0000 R CNN
|
||||
F 2 "Capacitors_Tantalum_SMD:CP_Tantalum_Case-D_EIA-7343-31_Reflow" H 2838 2200 50 0001 C CNN
|
||||
F 3 "~" H 2800 2350 50 0001 C CNN
|
||||
1 2800 2350
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
2800 2200 3100 2200
|
||||
Wire Wire Line
|
||||
3900 2200 4500 2200
|
||||
$Comp
|
||||
L power:+5V #PWR02
|
||||
U 1 1 5D754E27
|
||||
P 3100 1400
|
||||
F 0 "#PWR02" H 3100 1250 50 0001 C CNN
|
||||
F 1 "+5V" H 3115 1573 50 0000 C CNN
|
||||
F 2 "" H 3100 1400 50 0001 C CNN
|
||||
F 3 "" H 3100 1400 50 0001 C CNN
|
||||
1 3100 1400
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Connection ~ 3100 2200
|
||||
Wire Wire Line
|
||||
3100 2200 3350 2200
|
||||
Wire Wire Line
|
||||
5200 1900 5200 1750
|
||||
Wire Wire Line
|
||||
5200 1750 5100 1750
|
||||
Wire Wire Line
|
||||
5100 1750 5100 1900
|
||||
Wire Wire Line
|
||||
5100 1750 3100 1750
|
||||
Connection ~ 5100 1750
|
||||
Wire Wire Line
|
||||
3900 2500 3900 2650
|
||||
Wire Wire Line
|
||||
3900 2650 3350 2650
|
||||
Wire Wire Line
|
||||
3350 2650 3350 2750
|
||||
Wire Wire Line
|
||||
3350 2500 3350 2650
|
||||
Connection ~ 3350 2650
|
||||
Wire Wire Line
|
||||
2800 2500 2800 2650
|
||||
Wire Wire Line
|
||||
2800 2650 3350 2650
|
||||
NoConn ~ 4500 2400
|
||||
NoConn ~ 4500 2500
|
||||
Wire Wire Line
|
||||
3100 1400 3100 1750
|
||||
Connection ~ 3100 1750
|
||||
Wire Wire Line
|
||||
3100 1750 3100 2200
|
||||
$Comp
|
||||
L Device:C C4
|
||||
U 1 1 5D75696A
|
||||
P 6800 2700
|
||||
F 0 "C4" V 7052 2700 50 0000 C CNN
|
||||
F 1 "33pF" V 6961 2700 50 0000 C CNN
|
||||
F 2 "Capacitors_SMD:C_1206" H 6838 2550 50 0001 C CNN
|
||||
F 3 "~" H 6800 2700 50 0001 C CNN
|
||||
1 6800 2700
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C5
|
||||
U 1 1 5D756A0E
|
||||
P 6800 3150
|
||||
F 0 "C5" V 7052 3150 50 0000 C CNN
|
||||
F 1 "33pF" V 6961 3150 50 0000 C CNN
|
||||
F 2 "Capacitors_SMD:C_1206" H 6838 3000 50 0001 C CNN
|
||||
F 3 "~" H 6800 3150 50 0001 C CNN
|
||||
1 6800 3150
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR010
|
||||
U 1 1 5D756A8A
|
||||
P 7100 3300
|
||||
F 0 "#PWR010" H 7100 3050 50 0001 C CNN
|
||||
F 1 "GND" H 7105 3127 50 0000 C CNN
|
||||
F 2 "" H 7100 3300 50 0001 C CNN
|
||||
F 3 "" H 7100 3300 50 0001 C CNN
|
||||
1 7100 3300
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6950 3150 7100 3150
|
||||
Wire Wire Line
|
||||
7100 3150 7100 3300
|
||||
Wire Wire Line
|
||||
6950 2700 7100 2700
|
||||
Wire Wire Line
|
||||
7100 2700 7100 3150
|
||||
Connection ~ 7100 3150
|
||||
$Comp
|
||||
L Device:Crystal XTAL1
|
||||
U 1 1 5D756FAB
|
||||
P 6500 2950
|
||||
F 0 "XTAL1" V 6550 3300 50 0000 R CNN
|
||||
F 1 "16 Mhz" V 6450 3350 50 0000 R CNN
|
||||
F 2 "Crystals:Crystal_HC49-U_Vertical" H 6500 2950 50 0001 C CNN
|
||||
F 3 "~" H 6500 2950 50 0001 C CNN
|
||||
1 6500 2950
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6500 2800 6500 2700
|
||||
Wire Wire Line
|
||||
6500 2700 6650 2700
|
||||
Wire Wire Line
|
||||
6500 3100 6500 3150
|
||||
Wire Wire Line
|
||||
6500 3150 6650 3150
|
||||
Wire Wire Line
|
||||
5700 2800 6050 2800
|
||||
Wire Wire Line
|
||||
6050 2800 6050 2700
|
||||
Wire Wire Line
|
||||
6050 2700 6500 2700
|
||||
Connection ~ 6500 2700
|
||||
Wire Wire Line
|
||||
5700 2900 6050 2900
|
||||
Wire Wire Line
|
||||
6050 2900 6050 3150
|
||||
Wire Wire Line
|
||||
6050 3150 6500 3150
|
||||
Connection ~ 6500 3150
|
||||
Text GLabel 5700 3500 2 50 Input ~ 0
|
||||
SDA
|
||||
Text GLabel 5700 3600 2 50 Input ~ 0
|
||||
SCL
|
||||
Text GLabel 5700 2500 2 50 Input ~ 0
|
||||
MOSI
|
||||
Text GLabel 5700 2600 2 50 Input ~ 0
|
||||
MISO
|
||||
Text GLabel 5700 2700 2 50 Input ~ 0
|
||||
SCK
|
||||
$Comp
|
||||
L Device:R R1
|
||||
U 1 1 5D758534
|
||||
P 6250 3550
|
||||
F 0 "R1" H 6320 3596 50 0000 L CNN
|
||||
F 1 "10k" H 6320 3505 50 0000 L CNN
|
||||
F 2 "Resistors_SMD:R_0603" V 6180 3550 50 0001 C CNN
|
||||
F 3 "~" H 6250 3550 50 0001 C CNN
|
||||
1 6250 3550
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+5V #PWR011
|
||||
U 1 1 5D7585CC
|
||||
P 6250 3400
|
||||
F 0 "#PWR011" H 6250 3250 50 0001 C CNN
|
||||
F 1 "+5V" H 6265 3573 50 0000 C CNN
|
||||
F 2 "" H 6250 3400 50 0001 C CNN
|
||||
F 3 "" H 6250 3400 50 0001 C CNN
|
||||
1 6250 3400
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5700 3700 6250 3700
|
||||
Text GLabel 6450 3700 2 50 Input ~ 0
|
||||
RST
|
||||
Wire Wire Line
|
||||
6250 3700 6450 3700
|
||||
Connection ~ 6250 3700
|
||||
$Comp
|
||||
L power:GND #PWR012
|
||||
U 1 1 5D75920D
|
||||
P 5100 4900
|
||||
F 0 "#PWR012" H 5100 4650 50 0001 C CNN
|
||||
F 1 "GND" H 5105 4727 50 0000 C CNN
|
||||
F 2 "" H 5100 4900 50 0001 C CNN
|
||||
F 3 "" H 5100 4900 50 0001 C CNN
|
||||
1 5100 4900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Switch:SW_Push SW1
|
||||
U 1 1 5D759C24
|
||||
P 6250 1600
|
||||
F 0 "SW1" H 6250 1885 50 0000 C CNN
|
||||
F 1 "SW_Push" H 6250 1794 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 6250 1800 50 0001 C CNN
|
||||
F 3 "" H 6250 1800 50 0001 C CNN
|
||||
1 6250 1600
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Switch:SW_Push SW2
|
||||
U 1 1 5D759CB0
|
||||
P 6250 2000
|
||||
F 0 "SW2" H 6250 2285 50 0000 C CNN
|
||||
F 1 "SW_Push" H 6250 2194 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 6250 2200 50 0001 C CNN
|
||||
F 3 "" H 6250 2200 50 0001 C CNN
|
||||
1 6250 2000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Switch:SW_Push SW3
|
||||
U 1 1 5D759CF0
|
||||
P 6250 2400
|
||||
F 0 "SW3" H 6250 2685 50 0000 C CNN
|
||||
F 1 "SW_Push" H 6250 2594 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 6250 2600 50 0001 C CNN
|
||||
F 3 "" H 6250 2600 50 0001 C CNN
|
||||
1 6250 2400
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5700 2200 5800 2200
|
||||
Wire Wire Line
|
||||
5800 2200 5800 1600
|
||||
Wire Wire Line
|
||||
5800 1600 6050 1600
|
||||
Wire Wire Line
|
||||
5700 2300 5850 2300
|
||||
Wire Wire Line
|
||||
5850 2300 5850 2000
|
||||
Wire Wire Line
|
||||
5850 2000 6050 2000
|
||||
Wire Wire Line
|
||||
5700 2400 6050 2400
|
||||
$Comp
|
||||
L power:GND #PWR05
|
||||
U 1 1 5D75B49B
|
||||
P 6550 2400
|
||||
F 0 "#PWR05" H 6550 2150 50 0001 C CNN
|
||||
F 1 "GND" H 6555 2227 50 0000 C CNN
|
||||
F 2 "" H 6550 2400 50 0001 C CNN
|
||||
F 3 "" H 6550 2400 50 0001 C CNN
|
||||
1 6550 2400
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6450 2400 6550 2400
|
||||
Wire Wire Line
|
||||
6450 2000 6550 2000
|
||||
Wire Wire Line
|
||||
6550 2000 6550 2400
|
||||
Connection ~ 6550 2400
|
||||
Wire Wire Line
|
||||
6450 1600 6550 1600
|
||||
Wire Wire Line
|
||||
6550 1600 6550 2000
|
||||
Connection ~ 6550 2000
|
||||
NoConn ~ 5700 3100
|
||||
NoConn ~ 5700 3200
|
||||
NoConn ~ 5700 3300
|
||||
NoConn ~ 5700 3400
|
||||
NoConn ~ 5700 4100
|
||||
NoConn ~ 5700 4200
|
||||
NoConn ~ 5700 4300
|
||||
NoConn ~ 5700 4400
|
||||
NoConn ~ 5700 4500
|
||||
NoConn ~ 5700 4600
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x04 J?
|
||||
U 1 1 5D7651C5
|
||||
P 6500 4000
|
||||
F 0 "J?" H 6650 4050 50 0000 L CNN
|
||||
F 1 "L298" H 6580 3951 50 0000 L CNN
|
||||
F 2 "" H 6500 4000 50 0001 C CNN
|
||||
F 3 "~" H 6500 4000 50 0001 C CNN
|
||||
1 6500 4000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR?
|
||||
U 1 1 5D765563
|
||||
P 6150 4200
|
||||
F 0 "#PWR?" H 6150 3950 50 0001 C CNN
|
||||
F 1 "GND" H 6155 4027 50 0000 C CNN
|
||||
F 2 "" H 6150 4200 50 0001 C CNN
|
||||
F 3 "" H 6150 4200 50 0001 C CNN
|
||||
1 6150 4200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5700 3900 6300 3900
|
||||
Wire Wire Line
|
||||
5700 4000 6300 4000
|
||||
$Comp
|
||||
L power:+5V #PWR?
|
||||
U 1 1 5D767927
|
||||
P 6000 4100
|
||||
F 0 "#PWR?" H 6000 3950 50 0001 C CNN
|
||||
F 1 "+5V" H 6015 4273 50 0000 C CNN
|
||||
F 2 "" H 6000 4100 50 0001 C CNN
|
||||
F 3 "" H 6000 4100 50 0001 C CNN
|
||||
1 6000 4100
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6000 4100 6300 4100
|
||||
Wire Wire Line
|
||||
6150 4200 6300 4200
|
||||
$EndSCHEMATC
|
@ -1,734 +0,0 @@
|
||||
(kicad_pcb (version 20171130) (host pcbnew "(5.0.1)-3")
|
||||
|
||||
(general
|
||||
(thickness 1.6)
|
||||
(drawings 0)
|
||||
(tracks 0)
|
||||
(zones 0)
|
||||
(modules 14)
|
||||
(nets 17)
|
||||
)
|
||||
|
||||
(page A4)
|
||||
(layers
|
||||
(0 F.Cu signal)
|
||||
(31 B.Cu signal)
|
||||
(32 B.Adhes user)
|
||||
(33 F.Adhes user)
|
||||
(34 B.Paste user)
|
||||
(35 F.Paste user)
|
||||
(36 B.SilkS user)
|
||||
(37 F.SilkS user)
|
||||
(38 B.Mask user)
|
||||
(39 F.Mask user)
|
||||
(40 Dwgs.User user)
|
||||
(41 Cmts.User user)
|
||||
(42 Eco1.User user)
|
||||
(43 Eco2.User user)
|
||||
(44 Edge.Cuts user)
|
||||
(45 Margin user)
|
||||
(46 B.CrtYd user)
|
||||
(47 F.CrtYd user)
|
||||
(48 B.Fab user)
|
||||
(49 F.Fab user)
|
||||
)
|
||||
|
||||
(setup
|
||||
(last_trace_width 0.25)
|
||||
(trace_clearance 0.2)
|
||||
(zone_clearance 0.508)
|
||||
(zone_45_only no)
|
||||
(trace_min 0.2)
|
||||
(segment_width 0.2)
|
||||
(edge_width 0.15)
|
||||
(via_size 0.8)
|
||||
(via_drill 0.4)
|
||||
(via_min_size 0.4)
|
||||
(via_min_drill 0.3)
|
||||
(uvia_size 0.3)
|
||||
(uvia_drill 0.1)
|
||||
(uvias_allowed no)
|
||||
(uvia_min_size 0.2)
|
||||
(uvia_min_drill 0.1)
|
||||
(pcb_text_width 0.3)
|
||||
(pcb_text_size 1.5 1.5)
|
||||
(mod_edge_width 0.15)
|
||||
(mod_text_size 1 1)
|
||||
(mod_text_width 0.15)
|
||||
(pad_size 1.524 1.524)
|
||||
(pad_drill 0.762)
|
||||
(pad_to_mask_clearance 0.051)
|
||||
(solder_mask_min_width 0.25)
|
||||
(aux_axis_origin 0 0)
|
||||
(visible_elements FFFFFF7F)
|
||||
(pcbplotparams
|
||||
(layerselection 0x010fc_ffffffff)
|
||||
(usegerberextensions false)
|
||||
(usegerberattributes false)
|
||||
(usegerberadvancedattributes false)
|
||||
(creategerberjobfile false)
|
||||
(excludeedgelayer true)
|
||||
(linewidth 0.100000)
|
||||
(plotframeref false)
|
||||
(viasonmask false)
|
||||
(mode 1)
|
||||
(useauxorigin false)
|
||||
(hpglpennumber 1)
|
||||
(hpglpenspeed 20)
|
||||
(hpglpendiameter 15.000000)
|
||||
(psnegative false)
|
||||
(psa4output false)
|
||||
(plotreference true)
|
||||
(plotvalue true)
|
||||
(plotinvisibletext false)
|
||||
(padsonsilk false)
|
||||
(subtractmaskfromsilk false)
|
||||
(outputformat 1)
|
||||
(mirror false)
|
||||
(drillshape 1)
|
||||
(scaleselection 1)
|
||||
(outputdirectory ""))
|
||||
)
|
||||
|
||||
(net 0 "")
|
||||
(net 1 +5V)
|
||||
(net 2 GND)
|
||||
(net 3 "Net-(C3-Pad2)")
|
||||
(net 4 "Net-(C4-Pad1)")
|
||||
(net 5 "Net-(C5-Pad1)")
|
||||
(net 6 RST)
|
||||
(net 7 MOSI)
|
||||
(net 8 SCK)
|
||||
(net 9 MISO)
|
||||
(net 10 SCL)
|
||||
(net 11 SDA)
|
||||
(net 12 "Net-(J3-Pad1)")
|
||||
(net 13 "Net-(J3-Pad2)")
|
||||
(net 14 "Net-(SW1-Pad1)")
|
||||
(net 15 "Net-(SW2-Pad1)")
|
||||
(net 16 "Net-(SW3-Pad1)")
|
||||
|
||||
(net_class Default "This is the default net class."
|
||||
(clearance 0.2)
|
||||
(trace_width 0.25)
|
||||
(via_dia 0.8)
|
||||
(via_drill 0.4)
|
||||
(uvia_dia 0.3)
|
||||
(uvia_drill 0.1)
|
||||
(add_net +5V)
|
||||
(add_net GND)
|
||||
(add_net MISO)
|
||||
(add_net MOSI)
|
||||
(add_net "Net-(C3-Pad2)")
|
||||
(add_net "Net-(C4-Pad1)")
|
||||
(add_net "Net-(C5-Pad1)")
|
||||
(add_net "Net-(J3-Pad1)")
|
||||
(add_net "Net-(J3-Pad2)")
|
||||
(add_net "Net-(SW1-Pad1)")
|
||||
(add_net "Net-(SW2-Pad1)")
|
||||
(add_net "Net-(SW3-Pad1)")
|
||||
(add_net RST)
|
||||
(add_net SCK)
|
||||
(add_net SCL)
|
||||
(add_net SDA)
|
||||
)
|
||||
|
||||
(module Capacitors_Tantalum_SMD:CP_Tantalum_Case-D_EIA-7343-31_Reflow (layer F.Cu) (tedit 58CC8C08) (tstamp 5D755080)
|
||||
(at 108.458 80.01 270)
|
||||
(descr "Tantalum capacitor, Case D, EIA 7343-31, 7.3x4.3x2.8mm, Reflow soldering footprint")
|
||||
(tags "capacitor tantalum smd")
|
||||
(path /5D75463E)
|
||||
(attr smd)
|
||||
(fp_text reference C1 (at 0 -3.9 270) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value 10uF (at 0 3.9 270) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start -4.75 -2.4) (end -4.75 2.4) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -4.75 2.4) (end 3.65 2.4) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -4.75 -2.4) (end 3.65 -2.4) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -2.555 -2.15) (end -2.555 2.15) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -2.92 -2.15) (end -2.92 2.15) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 3.65 -2.15) (end -3.65 -2.15) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 3.65 2.15) (end 3.65 -2.15) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -3.65 2.15) (end 3.65 2.15) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -3.65 -2.15) (end -3.65 2.15) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 4.85 -2.5) (end -4.85 -2.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 4.85 2.5) (end 4.85 -2.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -4.85 2.5) (end 4.85 2.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -4.85 -2.5) (end -4.85 2.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_text user %R (at 0 0 270) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad 2 smd rect (at 3.175 0 270) (size 2.55 2.7) (layers F.Cu F.Paste F.Mask)
|
||||
(net 1 +5V))
|
||||
(pad 1 smd rect (at -3.175 0 270) (size 2.55 2.7) (layers F.Cu F.Paste F.Mask)
|
||||
(net 2 GND))
|
||||
(model Capacitors_Tantalum_SMD.3dshapes/CP_Tantalum_Case-D_EIA-7343-31.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module Capacitors_SMD:C_1206 (layer F.Cu) (tedit 58AA84B8) (tstamp 5D755091)
|
||||
(at 117.094 85.09)
|
||||
(descr "Capacitor SMD 1206, reflow soldering, AVX (see smccp.pdf)")
|
||||
(tags "capacitor 1206")
|
||||
(path /5D7545D2)
|
||||
(attr smd)
|
||||
(fp_text reference C2 (at 0 -1.75) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value 100nF (at 0 2) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text user %R (at 0 -1.75) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start -1.6 0.8) (end -1.6 -0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1.6 0.8) (end -1.6 0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1.6 -0.8) (end 1.6 0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -1.6 -0.8) (end 1.6 -0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1 -1.02) (end -1 -1.02) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1 1.02) (end 1 1.02) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -2.25 -1.05) (end 2.25 -1.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -2.25 -1.05) (end -2.25 1.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 2.25 1.05) (end 2.25 -1.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 2.25 1.05) (end -2.25 1.05) (layer F.CrtYd) (width 0.05))
|
||||
(pad 1 smd rect (at -1.5 0) (size 1 1.6) (layers F.Cu F.Paste F.Mask)
|
||||
(net 2 GND))
|
||||
(pad 2 smd rect (at 1.5 0) (size 1 1.6) (layers F.Cu F.Paste F.Mask)
|
||||
(net 1 +5V))
|
||||
(model Capacitors_SMD.3dshapes/C_1206.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module Capacitors_SMD:C_1206 (layer F.Cu) (tedit 58AA84B8) (tstamp 5D7550A2)
|
||||
(at 125.984 82.55)
|
||||
(descr "Capacitor SMD 1206, reflow soldering, AVX (see smccp.pdf)")
|
||||
(tags "capacitor 1206")
|
||||
(path /5D754323)
|
||||
(attr smd)
|
||||
(fp_text reference C3 (at 0 -1.75) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value 100nF (at 0 2) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start 2.25 1.05) (end -2.25 1.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 2.25 1.05) (end 2.25 -1.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -2.25 -1.05) (end -2.25 1.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -2.25 -1.05) (end 2.25 -1.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1 1.02) (end 1 1.02) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start 1 -1.02) (end -1 -1.02) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.6 -0.8) (end 1.6 -0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1.6 -0.8) (end 1.6 0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1.6 0.8) (end -1.6 0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -1.6 0.8) (end -1.6 -0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_text user %R (at 0 -1.75) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad 2 smd rect (at 1.5 0) (size 1 1.6) (layers F.Cu F.Paste F.Mask)
|
||||
(net 3 "Net-(C3-Pad2)"))
|
||||
(pad 1 smd rect (at -1.5 0) (size 1 1.6) (layers F.Cu F.Paste F.Mask)
|
||||
(net 2 GND))
|
||||
(model Capacitors_SMD.3dshapes/C_1206.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module Capacitors_SMD:C_1206 (layer F.Cu) (tedit 58AA84B8) (tstamp 5D7550B3)
|
||||
(at 114.554 88.646 90)
|
||||
(descr "Capacitor SMD 1206, reflow soldering, AVX (see smccp.pdf)")
|
||||
(tags "capacitor 1206")
|
||||
(path /5D75696A)
|
||||
(attr smd)
|
||||
(fp_text reference C4 (at 0 -1.75 90) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value 33pF (at 0 2 90) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start 2.25 1.05) (end -2.25 1.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 2.25 1.05) (end 2.25 -1.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -2.25 -1.05) (end -2.25 1.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -2.25 -1.05) (end 2.25 -1.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1 1.02) (end 1 1.02) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start 1 -1.02) (end -1 -1.02) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.6 -0.8) (end 1.6 -0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1.6 -0.8) (end 1.6 0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1.6 0.8) (end -1.6 0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -1.6 0.8) (end -1.6 -0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_text user %R (at 0 -1.75 90) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad 2 smd rect (at 1.5 0 90) (size 1 1.6) (layers F.Cu F.Paste F.Mask)
|
||||
(net 2 GND))
|
||||
(pad 1 smd rect (at -1.5 0 90) (size 1 1.6) (layers F.Cu F.Paste F.Mask)
|
||||
(net 4 "Net-(C4-Pad1)"))
|
||||
(model Capacitors_SMD.3dshapes/C_1206.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module Capacitors_SMD:C_1206 (layer F.Cu) (tedit 58AA84B8) (tstamp 5D7550C4)
|
||||
(at 114.554 96.52 270)
|
||||
(descr "Capacitor SMD 1206, reflow soldering, AVX (see smccp.pdf)")
|
||||
(tags "capacitor 1206")
|
||||
(path /5D756A0E)
|
||||
(attr smd)
|
||||
(fp_text reference C5 (at 0 -1.75 270) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value 33pF (at 0 2 270) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text user %R (at 0 -1.75 270) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start -1.6 0.8) (end -1.6 -0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1.6 0.8) (end -1.6 0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1.6 -0.8) (end 1.6 0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -1.6 -0.8) (end 1.6 -0.8) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1 -1.02) (end -1 -1.02) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1 1.02) (end 1 1.02) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -2.25 -1.05) (end 2.25 -1.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -2.25 -1.05) (end -2.25 1.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 2.25 1.05) (end 2.25 -1.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 2.25 1.05) (end -2.25 1.05) (layer F.CrtYd) (width 0.05))
|
||||
(pad 1 smd rect (at -1.5 0 270) (size 1 1.6) (layers F.Cu F.Paste F.Mask)
|
||||
(net 5 "Net-(C5-Pad1)"))
|
||||
(pad 2 smd rect (at 1.5 0 270) (size 1 1.6) (layers F.Cu F.Paste F.Mask)
|
||||
(net 2 GND))
|
||||
(model Capacitors_SMD.3dshapes/C_1206.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module Pin_Headers:Pin_Header_Straight_2x03_Pitch2.54mm (layer F.Cu) (tedit 59650532) (tstamp 5D7550E0)
|
||||
(at 141.224 69.85)
|
||||
(descr "Through hole straight pin header, 2x03, 2.54mm pitch, double rows")
|
||||
(tags "Through hole pin header THT 2x03 2.54mm double row")
|
||||
(path /5D753DE7)
|
||||
(fp_text reference J1 (at 1.27 -2.33) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value PROG (at 1.27 7.41) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text user %R (at 1.27 2.54 90) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start 4.35 -1.8) (end -1.8 -1.8) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 4.35 6.85) (end 4.35 -1.8) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.8 6.85) (end 4.35 6.85) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.8 -1.8) (end -1.8 6.85) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.33 -1.33) (end 0 -1.33) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 0) (end -1.33 -1.33) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start 1.27 -1.33) (end 3.87 -1.33) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start 1.27 1.27) (end 1.27 -1.33) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 1.27) (end 1.27 1.27) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start 3.87 -1.33) (end 3.87 6.41) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 1.27) (end -1.33 6.41) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 6.41) (end 3.87 6.41) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.27 0) (end 0 -1.27) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -1.27 6.35) (end -1.27 0) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 3.81 6.35) (end -1.27 6.35) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 3.81 -1.27) (end 3.81 6.35) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 0 -1.27) (end 3.81 -1.27) (layer F.Fab) (width 0.1))
|
||||
(pad 6 thru_hole oval (at 2.54 5.08) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 2 GND))
|
||||
(pad 5 thru_hole oval (at 0 5.08) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 6 RST))
|
||||
(pad 4 thru_hole oval (at 2.54 2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 7 MOSI))
|
||||
(pad 3 thru_hole oval (at 0 2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 8 SCK))
|
||||
(pad 2 thru_hole oval (at 2.54 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 1 +5V))
|
||||
(pad 1 thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 9 MISO))
|
||||
(model ${KISYS3DMOD}/Pin_Headers.3dshapes/Pin_Header_Straight_2x03_Pitch2.54mm.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm (layer F.Cu) (tedit 59650532) (tstamp 5D7550F8)
|
||||
(at 145.034 96.266 180)
|
||||
(descr "Through hole straight pin header, 1x04, 2.54mm pitch, single row")
|
||||
(tags "Through hole pin header THT 1x04 2.54mm single row")
|
||||
(path /5D753B7C)
|
||||
(fp_text reference J2 (at 0 -2.33 180) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value SSD1306 (at 0 9.95 180) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text user %R (at 0 3.81 270) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start 1.8 -1.8) (end -1.8 -1.8) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 1.8 9.4) (end 1.8 -1.8) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.8 9.4) (end 1.8 9.4) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.8 -1.8) (end -1.8 9.4) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.33 -1.33) (end 0 -1.33) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 0) (end -1.33 -1.33) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 1.27) (end 1.33 1.27) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start 1.33 1.27) (end 1.33 8.95) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 1.27) (end -1.33 8.95) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 8.95) (end 1.33 8.95) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.27 -0.635) (end -0.635 -1.27) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -1.27 8.89) (end -1.27 -0.635) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1.27 8.89) (end -1.27 8.89) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1.27 -1.27) (end 1.27 8.89) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -0.635 -1.27) (end 1.27 -1.27) (layer F.Fab) (width 0.1))
|
||||
(pad 4 thru_hole oval (at 0 7.62 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 2 GND))
|
||||
(pad 3 thru_hole oval (at 0 5.08 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 1 +5V))
|
||||
(pad 2 thru_hole oval (at 0 2.54 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 10 SCL))
|
||||
(pad 1 thru_hole rect (at 0 0 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 11 SDA))
|
||||
(model ${KISYS3DMOD}/Pin_Headers.3dshapes/Pin_Header_Straight_1x04_Pitch2.54mm.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm (layer F.Cu) (tedit 59650532) (tstamp 5D755110)
|
||||
(at 128.27 75.946 270)
|
||||
(descr "Through hole straight pin header, 1x04, 2.54mm pitch, single row")
|
||||
(tags "Through hole pin header THT 1x04 2.54mm single row")
|
||||
(path /5D7651C5)
|
||||
(fp_text reference J3 (at 0 -2.33 270) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value L298 (at 0 9.95 270) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start -0.635 -1.27) (end 1.27 -1.27) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1.27 -1.27) (end 1.27 8.89) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1.27 8.89) (end -1.27 8.89) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -1.27 8.89) (end -1.27 -0.635) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -1.27 -0.635) (end -0.635 -1.27) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -1.33 8.95) (end 1.33 8.95) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 1.27) (end -1.33 8.95) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start 1.33 1.27) (end 1.33 8.95) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 1.27) (end 1.33 1.27) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 0) (end -1.33 -1.33) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 -1.33) (end 0 -1.33) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.8 -1.8) (end -1.8 9.4) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.8 9.4) (end 1.8 9.4) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 1.8 9.4) (end 1.8 -1.8) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 1.8 -1.8) (end -1.8 -1.8) (layer F.CrtYd) (width 0.05))
|
||||
(fp_text user %R (at 0 3.81) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad 1 thru_hole rect (at 0 0 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 12 "Net-(J3-Pad1)"))
|
||||
(pad 2 thru_hole oval (at 0 2.54 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 13 "Net-(J3-Pad2)"))
|
||||
(pad 3 thru_hole oval (at 0 5.08 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 1 +5V))
|
||||
(pad 4 thru_hole oval (at 0 7.62 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 2 GND))
|
||||
(model ${KISYS3DMOD}/Pin_Headers.3dshapes/Pin_Header_Straight_1x04_Pitch2.54mm.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module Resistors_SMD:R_0603 (layer F.Cu) (tedit 58E0A804) (tstamp 5D755121)
|
||||
(at 122.936 85.852)
|
||||
(descr "Resistor SMD 0603, reflow soldering, Vishay (see dcrcw.pdf)")
|
||||
(tags "resistor 0603")
|
||||
(path /5D758534)
|
||||
(attr smd)
|
||||
(fp_text reference R1 (at 0 -1.45) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value 10k (at 0 1.5) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start 1.25 0.7) (end -1.25 0.7) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 1.25 0.7) (end 1.25 -0.7) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.25 -0.7) (end -1.25 0.7) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.25 -0.7) (end 1.25 -0.7) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -0.5 -0.68) (end 0.5 -0.68) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start 0.5 0.68) (end -0.5 0.68) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1))
|
||||
(fp_text user %R (at 0 0) (layer F.Fab)
|
||||
(effects (font (size 0.4 0.4) (thickness 0.075)))
|
||||
)
|
||||
(pad 2 smd rect (at 0.75 0) (size 0.5 0.9) (layers F.Cu F.Paste F.Mask)
|
||||
(net 6 RST))
|
||||
(pad 1 smd rect (at -0.75 0) (size 0.5 0.9) (layers F.Cu F.Paste F.Mask)
|
||||
(net 1 +5V))
|
||||
(model ${KISYS3DMOD}/Resistors_SMD.3dshapes/R_0603.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM (layer F.Cu) (tedit 5C236DB7) (tstamp 5D755136)
|
||||
(at 118.618 106.68)
|
||||
(path /5D759C24)
|
||||
(attr smd)
|
||||
(fp_text reference SW1 (at 0 0) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value SW_Push (at -0.112861 -0.218191) (layer F.SilkS) hide
|
||||
(effects (font (size 0.501589 0.501589) (thickness 0.05)))
|
||||
)
|
||||
(fp_line (start 2.6 1.46863) (end 1.46863 2.6) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start 1.5 2.6) (end -1.1 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.1 2.6) (end -1.45982 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.45982 2.6) (end -2.6 1.45982) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -2.6 -1.39584) (end -1.39584 -2.6) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -1.4 -2.6) (end 1.5 -2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.43381 -2.6) (end 2.6 -1.43381) (layer Dwgs.User) (width 0.127))
|
||||
(fp_poly (pts (xy -2.50464 -2.6) (xy 2.6 -2.6) (xy 2.6 2.60484) (xy -2.50464 2.60484)) (layer Eco1.User) (width 0))
|
||||
(fp_line (start -1.4 -2.6) (end -2.4 -1.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 -2.6) (end 2.4 -1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 2.6) (end 2.4 1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.45982 2.6) (end -1.5 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.5 2.6) (end -2.4 1.7) (layer F.SilkS) (width 0.127))
|
||||
(pad 1 smd rect (at -3 -1.85) (size 1 0.7) (layers F.Cu F.Paste F.Mask)
|
||||
(net 14 "Net-(SW1-Pad1)"))
|
||||
(pad 3 smd rect (at 3 -1.85) (size 1 0.7) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at -3 1.85) (size 1 0.7) (layers F.Cu F.Paste F.Mask)
|
||||
(net 2 GND))
|
||||
(pad 4 smd rect (at 3 1.85) (size 1 0.7) (layers F.Cu F.Paste F.Mask))
|
||||
(model ${KISYS3DMOD}/Button_Switch_SMD.3dshapes/SW_SPST_TL3342.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM (layer F.Cu) (tedit 5C236DB7) (tstamp 5D75514B)
|
||||
(at 132.08 106.68)
|
||||
(path /5D759CB0)
|
||||
(attr smd)
|
||||
(fp_text reference SW2 (at 0 0) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value SW_Push (at -0.112861 -0.218191) (layer F.SilkS) hide
|
||||
(effects (font (size 0.501589 0.501589) (thickness 0.05)))
|
||||
)
|
||||
(fp_line (start -1.5 2.6) (end -2.4 1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.45982 2.6) (end -1.5 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 2.6) (end 2.4 1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 -2.6) (end 2.4 -1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.4 -2.6) (end -2.4 -1.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_poly (pts (xy -2.50464 -2.6) (xy 2.6 -2.6) (xy 2.6 2.60484) (xy -2.50464 2.60484)) (layer Eco1.User) (width 0))
|
||||
(fp_line (start 1.43381 -2.6) (end 2.6 -1.43381) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -1.4 -2.6) (end 1.5 -2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -2.6 -1.39584) (end -1.39584 -2.6) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -1.45982 2.6) (end -2.6 1.45982) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -1.1 2.6) (end -1.45982 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 2.6) (end -1.1 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 2.6 1.46863) (end 1.46863 2.6) (layer Dwgs.User) (width 0.127))
|
||||
(pad 4 smd rect (at 3 1.85) (size 1 0.7) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at -3 1.85) (size 1 0.7) (layers F.Cu F.Paste F.Mask)
|
||||
(net 2 GND))
|
||||
(pad 3 smd rect (at 3 -1.85) (size 1 0.7) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 1 smd rect (at -3 -1.85) (size 1 0.7) (layers F.Cu F.Paste F.Mask)
|
||||
(net 15 "Net-(SW2-Pad1)"))
|
||||
(model ${KISYS3DMOD}/Button_Switch_SMD.3dshapes/SW_SPST_TL3342.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM (layer F.Cu) (tedit 5C236DB7) (tstamp 5D755160)
|
||||
(at 144.78 106.68)
|
||||
(path /5D759CF0)
|
||||
(attr smd)
|
||||
(fp_text reference SW3 (at 0 0) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value SW_Push (at -0.112861 -0.218191) (layer F.SilkS) hide
|
||||
(effects (font (size 0.501589 0.501589) (thickness 0.05)))
|
||||
)
|
||||
(fp_line (start 2.6 1.46863) (end 1.46863 2.6) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start 1.5 2.6) (end -1.1 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.1 2.6) (end -1.45982 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.45982 2.6) (end -2.6 1.45982) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -2.6 -1.39584) (end -1.39584 -2.6) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -1.4 -2.6) (end 1.5 -2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.43381 -2.6) (end 2.6 -1.43381) (layer Dwgs.User) (width 0.127))
|
||||
(fp_poly (pts (xy -2.50464 -2.6) (xy 2.6 -2.6) (xy 2.6 2.60484) (xy -2.50464 2.60484)) (layer Eco1.User) (width 0))
|
||||
(fp_line (start -1.4 -2.6) (end -2.4 -1.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 -2.6) (end 2.4 -1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 2.6) (end 2.4 1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.45982 2.6) (end -1.5 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.5 2.6) (end -2.4 1.7) (layer F.SilkS) (width 0.127))
|
||||
(pad 1 smd rect (at -3 -1.85) (size 1 0.7) (layers F.Cu F.Paste F.Mask)
|
||||
(net 16 "Net-(SW3-Pad1)"))
|
||||
(pad 3 smd rect (at 3 -1.85) (size 1 0.7) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at -3 1.85) (size 1 0.7) (layers F.Cu F.Paste F.Mask)
|
||||
(net 2 GND))
|
||||
(pad 4 smd rect (at 3 1.85) (size 1 0.7) (layers F.Cu F.Paste F.Mask))
|
||||
(model ${KISYS3DMOD}/Button_Switch_SMD.3dshapes/SW_SPST_TL3342.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module Crystals:Crystal_HC49-U_Vertical (layer F.Cu) (tedit 58CD2E9C) (tstamp 5D755177)
|
||||
(at 108.966 94.996 90)
|
||||
(descr "Crystal THT HC-49/U http://5hertz.com/pdfs/04404_D.pdf")
|
||||
(tags "THT crystalHC-49/U")
|
||||
(path /5D756FAB)
|
||||
(fp_text reference XTAL1 (at 2.44 -3.525 90) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value "16 Mhz" (at 2.44 3.525 90) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_arc (start 5.565 0) (end 5.565 -2.525) (angle 180) (layer F.SilkS) (width 0.12))
|
||||
(fp_arc (start -0.685 0) (end -0.685 -2.525) (angle -180) (layer F.SilkS) (width 0.12))
|
||||
(fp_arc (start 5.44 0) (end 5.44 -2) (angle 180) (layer F.Fab) (width 0.1))
|
||||
(fp_arc (start -0.56 0) (end -0.56 -2) (angle -180) (layer F.Fab) (width 0.1))
|
||||
(fp_arc (start 5.565 0) (end 5.565 -2.325) (angle 180) (layer F.Fab) (width 0.1))
|
||||
(fp_arc (start -0.685 0) (end -0.685 -2.325) (angle -180) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 8.4 -2.8) (end -3.5 -2.8) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 8.4 2.8) (end 8.4 -2.8) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -3.5 2.8) (end 8.4 2.8) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -3.5 -2.8) (end -3.5 2.8) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -0.685 2.525) (end 5.565 2.525) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -0.685 -2.525) (end 5.565 -2.525) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -0.56 2) (end 5.44 2) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -0.56 -2) (end 5.44 -2) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -0.685 2.325) (end 5.565 2.325) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -0.685 -2.325) (end 5.565 -2.325) (layer F.Fab) (width 0.1))
|
||||
(fp_text user %R (at 2.44 0 90) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad 2 thru_hole circle (at 4.88 0 90) (size 1.5 1.5) (drill 0.8) (layers *.Cu *.Mask)
|
||||
(net 4 "Net-(C4-Pad1)"))
|
||||
(pad 1 thru_hole circle (at 0 0 90) (size 1.5 1.5) (drill 0.8) (layers *.Cu *.Mask)
|
||||
(net 5 "Net-(C5-Pad1)"))
|
||||
(model ${KISYS3DMOD}/Crystals.3dshapes/Crystal_HC49-U_Vertical.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 0.393701 0.393701 0.393701))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module Housings_QFP:TQFP-32_7x7mm_Pitch0.8mm (layer F.Cu) (tedit 58CC9A48) (tstamp 5D7558F7)
|
||||
(at 124.206 92.456)
|
||||
(descr "32-Lead Plastic Thin Quad Flatpack (PT) - 7x7x1.0 mm Body, 2.00 mm [TQFP] (see Microchip Packaging Specification 00000049BS.pdf)")
|
||||
(tags "QFP 0.8")
|
||||
(path /5D753A97)
|
||||
(attr smd)
|
||||
(fp_text reference U1 (at 0 -6.05) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value ATmega328-AU (at 0 6.05) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start -3.625 -3.4) (end -5.05 -3.4) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 3.625 -3.625) (end 3.3 -3.625) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 3.625 3.625) (end 3.3 3.625) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -3.625 3.625) (end -3.3 3.625) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -3.625 -3.625) (end -3.3 -3.625) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -3.625 3.625) (end -3.625 3.3) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 3.625 3.625) (end 3.625 3.3) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 3.625 -3.625) (end 3.625 -3.3) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -3.625 -3.625) (end -3.625 -3.4) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -5.3 5.3) (end 5.3 5.3) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -5.3 -5.3) (end 5.3 -5.3) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 5.3 -5.3) (end 5.3 5.3) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -5.3 -5.3) (end -5.3 5.3) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -3.5 -2.5) (end -2.5 -3.5) (layer F.Fab) (width 0.15))
|
||||
(fp_line (start -3.5 3.5) (end -3.5 -2.5) (layer F.Fab) (width 0.15))
|
||||
(fp_line (start 3.5 3.5) (end -3.5 3.5) (layer F.Fab) (width 0.15))
|
||||
(fp_line (start 3.5 -3.5) (end 3.5 3.5) (layer F.Fab) (width 0.15))
|
||||
(fp_line (start -2.5 -3.5) (end 3.5 -3.5) (layer F.Fab) (width 0.15))
|
||||
(fp_text user %R (at 0 0) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad 32 smd rect (at -2.8 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 31 smd rect (at -2 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 13 "Net-(J3-Pad2)"))
|
||||
(pad 30 smd rect (at -1.2 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 12 "Net-(J3-Pad1)"))
|
||||
(pad 29 smd rect (at -0.4 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 6 RST))
|
||||
(pad 28 smd rect (at 0.4 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 10 SCL))
|
||||
(pad 27 smd rect (at 1.2 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 11 SDA))
|
||||
(pad 26 smd rect (at 2 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 25 smd rect (at 2.8 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 24 smd rect (at 4.25 -2.8) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 23 smd rect (at 4.25 -2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 22 smd rect (at 4.25 -1.2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 21 smd rect (at 4.25 -0.4) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 2 GND))
|
||||
(pad 20 smd rect (at 4.25 0.4) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 3 "Net-(C3-Pad2)"))
|
||||
(pad 19 smd rect (at 4.25 1.2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 18 smd rect (at 4.25 2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 1 +5V))
|
||||
(pad 17 smd rect (at 4.25 2.8) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 8 SCK))
|
||||
(pad 16 smd rect (at 2.8 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 9 MISO))
|
||||
(pad 15 smd rect (at 2 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 7 MOSI))
|
||||
(pad 14 smd rect (at 1.2 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 16 "Net-(SW3-Pad1)"))
|
||||
(pad 13 smd rect (at 0.4 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 15 "Net-(SW2-Pad1)"))
|
||||
(pad 12 smd rect (at -0.4 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 14 "Net-(SW1-Pad1)"))
|
||||
(pad 11 smd rect (at -1.2 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 10 smd rect (at -2 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 9 smd rect (at -2.8 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 8 smd rect (at -4.25 2.8) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 5 "Net-(C5-Pad1)"))
|
||||
(pad 7 smd rect (at -4.25 2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 4 "Net-(C4-Pad1)"))
|
||||
(pad 6 smd rect (at -4.25 1.2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 1 +5V))
|
||||
(pad 5 smd rect (at -4.25 0.4) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 2 GND))
|
||||
(pad 4 smd rect (at -4.25 -0.4) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 1 +5V))
|
||||
(pad 3 smd rect (at -4.25 -1.2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask)
|
||||
(net 2 GND))
|
||||
(pad 2 smd rect (at -4.25 -2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 1 smd rect (at -4.25 -2.8) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask))
|
||||
(model ${KISYS3DMOD}/Housings_QFP.3dshapes/TQFP-32_7x7mm_Pitch0.8mm.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
)
|
@ -1,33 +0,0 @@
|
||||
update=22/05/2015 07:44:53
|
||||
version=1
|
||||
last_client=kicad
|
||||
[general]
|
||||
version=1
|
||||
RootSch=
|
||||
BoardNm=
|
||||
[pcbnew]
|
||||
version=1
|
||||
LastNetListRead=
|
||||
UseCmpFile=1
|
||||
PadDrill=0.600000000000
|
||||
PadDrillOvalY=0.600000000000
|
||||
PadSizeH=1.500000000000
|
||||
PadSizeV=1.500000000000
|
||||
PcbTextSizeV=1.500000000000
|
||||
PcbTextSizeH=1.500000000000
|
||||
PcbTextThickness=0.300000000000
|
||||
ModuleTextSizeV=1.000000000000
|
||||
ModuleTextSizeH=1.000000000000
|
||||
ModuleTextSizeThickness=0.150000000000
|
||||
SolderMaskClearance=0.000000000000
|
||||
SolderMaskMinWidth=0.000000000000
|
||||
DrawSegmentWidth=0.200000000000
|
||||
BoardOutlineThickness=0.100000000000
|
||||
ModuleOutlineThickness=0.150000000000
|
||||
[cvpcb]
|
||||
version=1
|
||||
NetIExt=net
|
||||
[eeschema]
|
||||
version=1
|
||||
LibDir=
|
||||
[eeschema/libraries]
|
91
pcb/display/DeskControlDisplay-cache.lib
Normal file
91
pcb/display/DeskControlDisplay-cache.lib
Normal file
@ -0,0 +1,91 @@
|
||||
EESchema-LIBRARY Version 2.4
|
||||
#encoding utf-8
|
||||
#
|
||||
# Connector_Conn_01x07_Female
|
||||
#
|
||||
DEF Connector_Conn_01x07_Female J 0 40 Y N 1 F N
|
||||
F0 "J" 0 400 50 H V C CNN
|
||||
F1 "Connector_Conn_01x07_Female" 0 -400 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
Connector*:*_1x??_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
A 0 -300 20 901 -901 1 1 6 N 0 -280 0 -320
|
||||
A 0 -200 20 901 -901 1 1 6 N 0 -180 0 -220
|
||||
A 0 -100 20 901 -901 1 1 6 N 0 -80 0 -120
|
||||
A 0 0 20 901 -901 1 1 6 N 0 20 0 -20
|
||||
A 0 100 20 901 -901 1 1 6 N 0 120 0 80
|
||||
A 0 200 20 901 -901 1 1 6 N 0 220 0 180
|
||||
A 0 300 20 901 -901 1 1 6 N 0 320 0 280
|
||||
P 2 1 1 6 -50 -300 -20 -300 N
|
||||
P 2 1 1 6 -50 -200 -20 -200 N
|
||||
P 2 1 1 6 -50 -100 -20 -100 N
|
||||
P 2 1 1 6 -50 0 -20 0 N
|
||||
P 2 1 1 6 -50 100 -20 100 N
|
||||
P 2 1 1 6 -50 200 -20 200 N
|
||||
P 2 1 1 6 -50 300 -20 300 N
|
||||
X Pin_1 1 -200 300 150 R 50 50 1 1 P
|
||||
X Pin_2 2 -200 200 150 R 50 50 1 1 P
|
||||
X Pin_3 3 -200 100 150 R 50 50 1 1 P
|
||||
X Pin_4 4 -200 0 150 R 50 50 1 1 P
|
||||
X Pin_5 5 -200 -100 150 R 50 50 1 1 P
|
||||
X Pin_6 6 -200 -200 150 R 50 50 1 1 P
|
||||
X Pin_7 7 -200 -300 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Connector_Generic_Conn_02x05_Counter_Clockwise
|
||||
#
|
||||
DEF Connector_Generic_Conn_02x05_Counter_Clockwise J 0 40 Y N 1 F N
|
||||
F0 "J" 50 300 50 H V C CNN
|
||||
F1 "Connector_Generic_Conn_02x05_Counter_Clockwise" 50 -300 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
Connector*:*_2x??_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -195 0 -205 1 1 6 N
|
||||
S -50 -95 0 -105 1 1 6 N
|
||||
S -50 5 0 -5 1 1 6 N
|
||||
S -50 105 0 95 1 1 6 N
|
||||
S -50 205 0 195 1 1 6 N
|
||||
S -50 250 150 -250 1 1 10 f
|
||||
S 150 -195 100 -205 1 1 6 N
|
||||
S 150 -95 100 -105 1 1 6 N
|
||||
S 150 5 100 -5 1 1 6 N
|
||||
S 150 105 100 95 1 1 6 N
|
||||
S 150 205 100 195 1 1 6 N
|
||||
X Pin_1 1 -200 200 150 R 50 50 1 1 P
|
||||
X Pin_10 10 300 200 150 L 50 50 1 1 P
|
||||
X Pin_2 2 -200 100 150 R 50 50 1 1 P
|
||||
X Pin_3 3 -200 0 150 R 50 50 1 1 P
|
||||
X Pin_4 4 -200 -100 150 R 50 50 1 1 P
|
||||
X Pin_5 5 -200 -200 150 R 50 50 1 1 P
|
||||
X Pin_6 6 300 -200 150 L 50 50 1 1 P
|
||||
X Pin_7 7 300 -100 150 L 50 50 1 1 P
|
||||
X Pin_8 8 300 0 150 L 50 50 1 1 P
|
||||
X Pin_9 9 300 100 150 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Switch_SW_Push
|
||||
#
|
||||
DEF Switch_SW_Push SW 0 40 N N 1 F N
|
||||
F0 "SW" 50 100 50 H V L CNN
|
||||
F1 "Switch_SW_Push" 0 -60 50 H V C CNN
|
||||
F2 "" 0 200 50 H I C CNN
|
||||
F3 "" 0 200 50 H I C CNN
|
||||
DRAW
|
||||
C -80 0 20 0 1 0 N
|
||||
C 80 0 20 0 1 0 N
|
||||
P 2 0 1 0 0 50 0 120 N
|
||||
P 2 0 1 0 100 50 -100 50 N
|
||||
X 1 1 -200 0 100 R 50 50 0 1 P
|
||||
X 2 2 200 0 100 L 50 50 0 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
735
pcb/display/DeskControlDisplay.kicad_pcb
Normal file
735
pcb/display/DeskControlDisplay.kicad_pcb
Normal file
@ -0,0 +1,735 @@
|
||||
(kicad_pcb (version 20171130) (host pcbnew "(5.1.5)-3")
|
||||
|
||||
(general
|
||||
(thickness 1.6)
|
||||
(drawings 4)
|
||||
(tracks 33)
|
||||
(zones 0)
|
||||
(modules 9)
|
||||
(nets 11)
|
||||
)
|
||||
|
||||
(page A4)
|
||||
(layers
|
||||
(0 F.Cu signal)
|
||||
(31 B.Cu signal)
|
||||
(32 B.Adhes user)
|
||||
(33 F.Adhes user)
|
||||
(34 B.Paste user)
|
||||
(35 F.Paste user)
|
||||
(36 B.SilkS user)
|
||||
(37 F.SilkS user)
|
||||
(38 B.Mask user)
|
||||
(39 F.Mask user)
|
||||
(40 Dwgs.User user)
|
||||
(41 Cmts.User user)
|
||||
(42 Eco1.User user)
|
||||
(43 Eco2.User user)
|
||||
(44 Edge.Cuts user)
|
||||
(45 Margin user)
|
||||
(46 B.CrtYd user)
|
||||
(47 F.CrtYd user)
|
||||
(48 B.Fab user)
|
||||
(49 F.Fab user)
|
||||
)
|
||||
|
||||
(setup
|
||||
(last_trace_width 0.25)
|
||||
(user_trace_width 0.5)
|
||||
(trace_clearance 0.2)
|
||||
(zone_clearance 0.508)
|
||||
(zone_45_only yes)
|
||||
(trace_min 0)
|
||||
(via_size 0.8)
|
||||
(via_drill 0.4)
|
||||
(via_min_size 0.4)
|
||||
(via_min_drill 0.3)
|
||||
(uvia_size 0.3)
|
||||
(uvia_drill 0.1)
|
||||
(uvias_allowed no)
|
||||
(uvia_min_size 0.2)
|
||||
(uvia_min_drill 0.1)
|
||||
(edge_width 0.15)
|
||||
(segment_width 0.2)
|
||||
(pcb_text_width 0.3)
|
||||
(pcb_text_size 1.5 1.5)
|
||||
(mod_edge_width 0.15)
|
||||
(mod_text_size 1 1)
|
||||
(mod_text_width 0.15)
|
||||
(pad_size 6 6)
|
||||
(pad_drill 3)
|
||||
(pad_to_mask_clearance 0.051)
|
||||
(solder_mask_min_width 0.25)
|
||||
(aux_axis_origin 0 0)
|
||||
(visible_elements 7FFFFFFF)
|
||||
(pcbplotparams
|
||||
(layerselection 0x010f0_ffffffff)
|
||||
(usegerberextensions false)
|
||||
(usegerberattributes false)
|
||||
(usegerberadvancedattributes false)
|
||||
(creategerberjobfile false)
|
||||
(excludeedgelayer true)
|
||||
(linewidth 0.100000)
|
||||
(plotframeref false)
|
||||
(viasonmask false)
|
||||
(mode 1)
|
||||
(useauxorigin false)
|
||||
(hpglpennumber 1)
|
||||
(hpglpenspeed 20)
|
||||
(hpglpendiameter 15.000000)
|
||||
(psnegative false)
|
||||
(psa4output false)
|
||||
(plotreference true)
|
||||
(plotvalue true)
|
||||
(plotinvisibletext false)
|
||||
(padsonsilk false)
|
||||
(subtractmaskfromsilk false)
|
||||
(outputformat 1)
|
||||
(mirror false)
|
||||
(drillshape 0)
|
||||
(scaleselection 1)
|
||||
(outputdirectory "../plot/"))
|
||||
)
|
||||
|
||||
(net 0 "")
|
||||
(net 1 "Net-(J6-Pad1)")
|
||||
(net 2 "Net-(J6-Pad2)")
|
||||
(net 3 "Net-(J6-Pad3)")
|
||||
(net 4 DM_LCD-BL)
|
||||
(net 5 DM_LCD-DC)
|
||||
(net 6 DM_LCD-RST)
|
||||
(net 7 DM_MOSI)
|
||||
(net 8 DM_GND)
|
||||
(net 9 DM_3v3)
|
||||
(net 10 DM_SCK)
|
||||
|
||||
(net_class Default "This is the default net class."
|
||||
(clearance 0.2)
|
||||
(trace_width 0.25)
|
||||
(via_dia 0.8)
|
||||
(via_drill 0.4)
|
||||
(uvia_dia 0.3)
|
||||
(uvia_drill 0.1)
|
||||
(add_net DM_3v3)
|
||||
(add_net DM_GND)
|
||||
(add_net DM_LCD-BL)
|
||||
(add_net DM_LCD-DC)
|
||||
(add_net DM_LCD-RST)
|
||||
(add_net DM_MOSI)
|
||||
(add_net DM_SCK)
|
||||
(add_net "Net-(J6-Pad1)")
|
||||
(add_net "Net-(J6-Pad2)")
|
||||
(add_net "Net-(J6-Pad3)")
|
||||
)
|
||||
|
||||
(module Mounting_Holes:MountingHole_3mm_Pad (layer F.Cu) (tedit 56D1B4CB) (tstamp 5E3023ED)
|
||||
(at 30.226 46.736)
|
||||
(descr "Mounting Hole 3mm")
|
||||
(tags "mounting hole 3mm")
|
||||
(attr virtual)
|
||||
(fp_text reference REF** (at 0 -4) (layer F.SilkS) hide
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value - (at 0 4) (layer F.Fab) hide
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text user %R (at 0.3 0) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_circle (center 0 0) (end 3 0) (layer Cmts.User) (width 0.15))
|
||||
(fp_circle (center 0 0) (end 3.25 0) (layer F.CrtYd) (width 0.05))
|
||||
(pad 1 thru_hole circle (at 0 0) (size 6 6) (drill 3) (layers *.Cu *.Mask))
|
||||
)
|
||||
|
||||
(module Mounting_Holes:MountingHole_3mm_Pad (layer F.Cu) (tedit 56D1B4CB) (tstamp 5E3023DF)
|
||||
(at 30.226 34.544)
|
||||
(descr "Mounting Hole 3mm")
|
||||
(tags "mounting hole 3mm")
|
||||
(attr virtual)
|
||||
(fp_text reference REF** (at 0 -4) (layer F.SilkS) hide
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value - (at 0.254 4) (layer F.Fab) hide
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_circle (center 0 0) (end 3.25 0) (layer F.CrtYd) (width 0.05))
|
||||
(fp_circle (center 0 0) (end 3 0) (layer Cmts.User) (width 0.15))
|
||||
(fp_text user %R (at 0.3 0) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad 1 thru_hole circle (at 0 0) (size 6 6) (drill 3) (layers *.Cu *.Mask))
|
||||
)
|
||||
|
||||
(module Mounting_Holes:MountingHole_3mm_Pad (layer F.Cu) (tedit 56D1B4CB) (tstamp 5E3022E1)
|
||||
(at 45.212 46.736)
|
||||
(descr "Mounting Hole 3mm")
|
||||
(tags "mounting hole 3mm")
|
||||
(attr virtual)
|
||||
(fp_text reference REF** (at 0 -4) (layer F.SilkS) hide
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value - (at 0 4) (layer F.Fab) hide
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_circle (center 0 0) (end 3.25 0) (layer F.CrtYd) (width 0.05))
|
||||
(fp_circle (center 0 0) (end 3 0) (layer Cmts.User) (width 0.15))
|
||||
(fp_text user %R (at 0.3 0) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad 1 thru_hole circle (at 0 0) (size 6 6) (drill 3) (layers *.Cu *.Mask))
|
||||
)
|
||||
|
||||
(module Mounting_Holes:MountingHole_3mm_Pad (layer F.Cu) (tedit 56D1B4CB) (tstamp 5E3022DA)
|
||||
(at 45.212 34.544)
|
||||
(descr "Mounting Hole 3mm")
|
||||
(tags "mounting hole 3mm")
|
||||
(attr virtual)
|
||||
(fp_text reference REF** (at 0 -4) (layer F.SilkS) hide
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value - (at 0 4) (layer F.Fab) hide
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text user %R (at 0.3 0) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_circle (center 0 0) (end 3 0) (layer Cmts.User) (width 0.15))
|
||||
(fp_circle (center 0 0) (end 3.25 0) (layer F.CrtYd) (width 0.05))
|
||||
(pad 1 thru_hole circle (at 0 0) (size 6 6) (drill 3) (layers *.Cu *.Mask))
|
||||
)
|
||||
|
||||
(module Pin_Headers:Pin_Header_Straight_1x07_Pitch2.54mm (layer F.Cu) (tedit 59650532) (tstamp 5E300FEC)
|
||||
(at 55.372 23.114 90)
|
||||
(descr "Through hole straight pin header, 1x07, 2.54mm pitch, single row")
|
||||
(tags "Through hole pin header THT 1x07 2.54mm single row")
|
||||
(path /5E37279C)
|
||||
(fp_text reference J7 (at 0 -2.33 90) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value ST7789 (at 0 17.57 90) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start -0.635 -1.27) (end 1.27 -1.27) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1.27 -1.27) (end 1.27 16.51) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 1.27 16.51) (end -1.27 16.51) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -1.27 16.51) (end -1.27 -0.635) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -1.27 -0.635) (end -0.635 -1.27) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -1.33 16.57) (end 1.33 16.57) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 1.27) (end -1.33 16.57) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start 1.33 1.27) (end 1.33 16.57) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 1.27) (end 1.33 1.27) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 0) (end -1.33 -1.33) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 -1.33) (end 0 -1.33) (layer F.SilkS) (width 0.12))
|
||||
(fp_line (start -1.8 -1.8) (end -1.8 17.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.8 17.05) (end 1.8 17.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 1.8 17.05) (end 1.8 -1.8) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 1.8 -1.8) (end -1.8 -1.8) (layer F.CrtYd) (width 0.05))
|
||||
(fp_text user %R (at 0 7.62) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad 1 thru_hole rect (at 0 0 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 8 DM_GND))
|
||||
(pad 2 thru_hole oval (at 0 2.54 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 9 DM_3v3))
|
||||
(pad 3 thru_hole oval (at 0 5.08 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 10 DM_SCK))
|
||||
(pad 4 thru_hole oval (at 0 7.62 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 7 DM_MOSI))
|
||||
(pad 5 thru_hole oval (at 0 10.16 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 6 DM_LCD-RST))
|
||||
(pad 6 thru_hole oval (at 0 12.7 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 5 DM_LCD-DC))
|
||||
(pad 7 thru_hole oval (at 0 15.24 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 4 DM_LCD-BL))
|
||||
(model ${KISYS3DMOD}/Pin_Headers.3dshapes/Pin_Header_Straight_1x07_Pitch2.54mm.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module Pin_Headers:Pin_Header_Straight_2x05_Pitch2.54mm (layer B.Cu) (tedit 59650532) (tstamp 5E300FE9)
|
||||
(at 55.372 54.61)
|
||||
(descr "Through hole straight pin header, 2x05, 2.54mm pitch, double rows")
|
||||
(tags "Through hole pin header THT 2x05 2.54mm double row")
|
||||
(path /5E3531D6)
|
||||
(fp_text reference J6 (at 1.27 2.33) (layer B.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)) (justify mirror))
|
||||
)
|
||||
(fp_text value DM-Slave (at 1.27 -12.49) (layer B.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)) (justify mirror))
|
||||
)
|
||||
(fp_line (start 0 1.27) (end 3.81 1.27) (layer B.Fab) (width 0.1))
|
||||
(fp_line (start 3.81 1.27) (end 3.81 -11.43) (layer B.Fab) (width 0.1))
|
||||
(fp_line (start 3.81 -11.43) (end -1.27 -11.43) (layer B.Fab) (width 0.1))
|
||||
(fp_line (start -1.27 -11.43) (end -1.27 0) (layer B.Fab) (width 0.1))
|
||||
(fp_line (start -1.27 0) (end 0 1.27) (layer B.Fab) (width 0.1))
|
||||
(fp_line (start -1.33 -11.49) (end 3.87 -11.49) (layer B.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 -1.27) (end -1.33 -11.49) (layer B.SilkS) (width 0.12))
|
||||
(fp_line (start 3.87 1.33) (end 3.87 -11.49) (layer B.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 -1.27) (end 1.27 -1.27) (layer B.SilkS) (width 0.12))
|
||||
(fp_line (start 1.27 -1.27) (end 1.27 1.33) (layer B.SilkS) (width 0.12))
|
||||
(fp_line (start 1.27 1.33) (end 3.87 1.33) (layer B.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 0) (end -1.33 1.33) (layer B.SilkS) (width 0.12))
|
||||
(fp_line (start -1.33 1.33) (end 0 1.33) (layer B.SilkS) (width 0.12))
|
||||
(fp_line (start -1.8 1.8) (end -1.8 -11.95) (layer B.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.8 -11.95) (end 4.35 -11.95) (layer B.CrtYd) (width 0.05))
|
||||
(fp_line (start 4.35 -11.95) (end 4.35 1.8) (layer B.CrtYd) (width 0.05))
|
||||
(fp_line (start 4.35 1.8) (end -1.8 1.8) (layer B.CrtYd) (width 0.05))
|
||||
(fp_text user %R (at 1.27 -5.08 270) (layer B.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)) (justify mirror))
|
||||
)
|
||||
(pad 1 thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 1 "Net-(J6-Pad1)"))
|
||||
(pad 2 thru_hole oval (at 2.54 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 2 "Net-(J6-Pad2)"))
|
||||
(pad 3 thru_hole oval (at 0 -2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 3 "Net-(J6-Pad3)"))
|
||||
(pad 4 thru_hole oval (at 2.54 -2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 4 DM_LCD-BL))
|
||||
(pad 5 thru_hole oval (at 0 -5.08) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 5 DM_LCD-DC))
|
||||
(pad 6 thru_hole oval (at 2.54 -5.08) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 6 DM_LCD-RST))
|
||||
(pad 7 thru_hole oval (at 0 -7.62) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 7 DM_MOSI))
|
||||
(pad 8 thru_hole oval (at 2.54 -7.62) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 10 DM_SCK))
|
||||
(pad 9 thru_hole oval (at 0 -10.16) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 9 DM_3v3))
|
||||
(pad 10 thru_hole oval (at 2.54 -10.16) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
|
||||
(net 8 DM_GND))
|
||||
(model ${KISYS3DMOD}/Pin_Headers.3dshapes/Pin_Header_Straight_2x05_Pitch2.54mm.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM (layer F.Cu) (tedit 5C236DB7) (tstamp 5D755136)
|
||||
(at 37.592 52.324 180)
|
||||
(path /5D759C24)
|
||||
(attr smd)
|
||||
(fp_text reference SW1 (at 0 0) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value Down (at -0.112861 -0.218191) (layer F.SilkS) hide
|
||||
(effects (font (size 0.501589 0.501589) (thickness 0.05)))
|
||||
)
|
||||
(fp_line (start -1.5 2.6) (end -2.4 1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.45982 2.6) (end -1.5 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 2.6) (end 2.4 1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 -2.6) (end 2.4 -1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.4 -2.6) (end -2.4 -1.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_poly (pts (xy -2.50464 -2.6) (xy 2.6 -2.6) (xy 2.6 2.60484) (xy -2.50464 2.60484)) (layer Eco1.User) (width 0))
|
||||
(fp_line (start 1.43381 -2.6) (end 2.6 -1.43381) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -1.4 -2.6) (end 1.5 -2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -2.6 -1.39584) (end -1.39584 -2.6) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -1.45982 2.6) (end -2.6 1.45982) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -1.1 2.6) (end -1.45982 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 2.6) (end -1.1 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 2.6 1.46863) (end 1.46863 2.6) (layer Dwgs.User) (width 0.127))
|
||||
(pad 4 smd rect (at 3 1.85 180) (size 1 0.7) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at -3 1.85 180) (size 1 0.7) (layers F.Cu F.Paste F.Mask)
|
||||
(net 8 DM_GND))
|
||||
(pad 3 smd rect (at 3 -1.85 180) (size 1 0.7) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 1 smd rect (at -3 -1.85 180) (size 1 0.7) (layers F.Cu F.Paste F.Mask)
|
||||
(net 1 "Net-(J6-Pad1)"))
|
||||
(model ${KISYS3DMOD}/Button_Switch_SMD.3dshapes/SW_SPST_TL3342.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM (layer F.Cu) (tedit 5C236DB7) (tstamp 5D75514B)
|
||||
(at 37.592 40.513 180)
|
||||
(path /5D759CB0)
|
||||
(attr smd)
|
||||
(fp_text reference SW2 (at 0 0) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value Menu (at -0.112861 -0.218191) (layer F.SilkS) hide
|
||||
(effects (font (size 0.501589 0.501589) (thickness 0.05)))
|
||||
)
|
||||
(fp_line (start 2.6 1.46863) (end 1.46863 2.6) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start 1.5 2.6) (end -1.1 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.1 2.6) (end -1.45982 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.45982 2.6) (end -2.6 1.45982) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -2.6 -1.39584) (end -1.39584 -2.6) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -1.4 -2.6) (end 1.5 -2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.43381 -2.6) (end 2.6 -1.43381) (layer Dwgs.User) (width 0.127))
|
||||
(fp_poly (pts (xy -2.50464 -2.6) (xy 2.6 -2.6) (xy 2.6 2.60484) (xy -2.50464 2.60484)) (layer Eco1.User) (width 0))
|
||||
(fp_line (start -1.4 -2.6) (end -2.4 -1.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 -2.6) (end 2.4 -1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 2.6) (end 2.4 1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.45982 2.6) (end -1.5 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.5 2.6) (end -2.4 1.7) (layer F.SilkS) (width 0.127))
|
||||
(pad 1 smd rect (at -3 -1.85 180) (size 1 0.7) (layers F.Cu F.Paste F.Mask)
|
||||
(net 2 "Net-(J6-Pad2)"))
|
||||
(pad 3 smd rect (at 3 -1.85 180) (size 1 0.7) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at -3 1.85 180) (size 1 0.7) (layers F.Cu F.Paste F.Mask)
|
||||
(net 8 DM_GND))
|
||||
(pad 4 smd rect (at 3 1.85 180) (size 1 0.7) (layers F.Cu F.Paste F.Mask))
|
||||
(model ${KISYS3DMOD}/Button_Switch_SMD.3dshapes/SW_SPST_TL3342.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM (layer F.Cu) (tedit 5C236DB7) (tstamp 5D755160)
|
||||
(at 37.592 28.321 180)
|
||||
(path /5D759CF0)
|
||||
(attr smd)
|
||||
(fp_text reference SW3 (at 0 0) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value Up (at -0.112861 -0.218191) (layer F.SilkS) hide
|
||||
(effects (font (size 0.501589 0.501589) (thickness 0.05)))
|
||||
)
|
||||
(fp_line (start -1.5 2.6) (end -2.4 1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.45982 2.6) (end -1.5 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 2.6) (end 2.4 1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 -2.6) (end 2.4 -1.7) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -1.4 -2.6) (end -2.4 -1.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_poly (pts (xy -2.50464 -2.6) (xy 2.6 -2.6) (xy 2.6 2.60484) (xy -2.50464 2.60484)) (layer Eco1.User) (width 0))
|
||||
(fp_line (start 1.43381 -2.6) (end 2.6 -1.43381) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -1.4 -2.6) (end 1.5 -2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start -2.6 -1.39584) (end -1.39584 -2.6) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -1.45982 2.6) (end -2.6 1.45982) (layer Dwgs.User) (width 0.127))
|
||||
(fp_line (start -1.1 2.6) (end -1.45982 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 1.5 2.6) (end -1.1 2.6) (layer F.SilkS) (width 0.127))
|
||||
(fp_line (start 2.6 1.46863) (end 1.46863 2.6) (layer Dwgs.User) (width 0.127))
|
||||
(pad 4 smd rect (at 3 1.85 180) (size 1 0.7) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at -3 1.85 180) (size 1 0.7) (layers F.Cu F.Paste F.Mask)
|
||||
(net 8 DM_GND))
|
||||
(pad 3 smd rect (at 3 -1.85 180) (size 1 0.7) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 1 smd rect (at -3 -1.85 180) (size 1 0.7) (layers F.Cu F.Paste F.Mask)
|
||||
(net 3 "Net-(J6-Pad3)"))
|
||||
(model ${KISYS3DMOD}/Button_Switch_SMD.3dshapes/SW_SPST_TL3342.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(gr_line (start 24.384 61.082) (end 24.384 21.082) (layer Edge.Cuts) (width 0.15))
|
||||
(gr_line (start 74.384 61.082) (end 24.384 61.082) (layer Edge.Cuts) (width 0.15))
|
||||
(gr_line (start 74.384 21.082) (end 74.384 61.082) (layer Edge.Cuts) (width 0.15))
|
||||
(gr_line (start 24.384 21.082) (end 74.384 21.082) (layer Edge.Cuts) (width 0.15))
|
||||
|
||||
(segment (start 54.936 54.174) (end 55.372 54.61) (width 0.25) (layer F.Cu) (net 1))
|
||||
(segment (start 40.592 54.174) (end 54.936 54.174) (width 0.25) (layer F.Cu) (net 1))
|
||||
(segment (start 51.054 49.491002) (end 51.054 47.11841) (width 0.25) (layer F.Cu) (net 2))
|
||||
(segment (start 57.912 54.61) (end 56.736999 53.434999) (width 0.25) (layer F.Cu) (net 2))
|
||||
(segment (start 54.997997 53.434999) (end 51.054 49.491002) (width 0.25) (layer F.Cu) (net 2))
|
||||
(segment (start 56.736999 53.434999) (end 54.997997 53.434999) (width 0.25) (layer F.Cu) (net 2))
|
||||
(segment (start 46.42559 42.49) (end 40.592 42.49) (width 0.25) (layer F.Cu) (net 2))
|
||||
(segment (start 51.054 47.11841) (end 46.42559 42.49) (width 0.25) (layer F.Cu) (net 2))
|
||||
(segment (start 51.562 46.99) (end 51.562 48.26) (width 0.25) (layer F.Cu) (net 3))
|
||||
(segment (start 51.562 48.26) (end 55.372 52.07) (width 0.25) (layer F.Cu) (net 3))
|
||||
(segment (start 40.592 30.171) (end 40.592 36.02) (width 0.25) (layer F.Cu) (net 3))
|
||||
(segment (start 40.592 36.02) (end 51.562 46.99) (width 0.25) (layer F.Cu) (net 3))
|
||||
(segment (start 70.612 39.37) (end 70.612 23.114) (width 0.25) (layer F.Cu) (net 4))
|
||||
(segment (start 57.912 52.07) (end 70.612 39.37) (width 0.25) (layer F.Cu) (net 4))
|
||||
(segment (start 68.072 24.316081) (end 68.072 23.114) (width 0.25) (layer B.Cu) (net 5))
|
||||
(segment (start 68.072 38.569002) (end 68.072 24.316081) (width 0.25) (layer B.Cu) (net 5))
|
||||
(segment (start 56.736999 48.165001) (end 58.476001 48.165001) (width 0.25) (layer B.Cu) (net 5))
|
||||
(segment (start 58.476001 48.165001) (end 68.072 38.569002) (width 0.25) (layer B.Cu) (net 5))
|
||||
(segment (start 55.372 49.53) (end 56.736999 48.165001) (width 0.25) (layer B.Cu) (net 5))
|
||||
(segment (start 65.532 41.91) (end 65.532 23.114) (width 0.25) (layer F.Cu) (net 6))
|
||||
(segment (start 57.912 49.53) (end 65.532 41.91) (width 0.25) (layer F.Cu) (net 6))
|
||||
(segment (start 62.992 24.316081) (end 62.992 23.114) (width 0.25) (layer B.Cu) (net 7))
|
||||
(segment (start 58.286003 45.814999) (end 62.992 41.109002) (width 0.25) (layer B.Cu) (net 7))
|
||||
(segment (start 56.547001 45.814999) (end 58.286003 45.814999) (width 0.25) (layer B.Cu) (net 7))
|
||||
(segment (start 62.992 41.109002) (end 62.992 24.316081) (width 0.25) (layer B.Cu) (net 7))
|
||||
(segment (start 55.372 46.99) (end 56.547001 45.814999) (width 0.25) (layer B.Cu) (net 7))
|
||||
(via (at 37.719 24.638) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 8))
|
||||
(via (at 37.719 36.576) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 8))
|
||||
(via (at 37.719 48.514) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 8))
|
||||
(segment (start 55.372 25.654) (end 57.912 23.114) (width 0.25) (layer F.Cu) (net 9))
|
||||
(segment (start 55.372 44.45) (end 55.372 25.654) (width 0.25) (layer F.Cu) (net 9))
|
||||
(segment (start 60.452 44.45) (end 60.452 23.114) (width 0.25) (layer F.Cu) (net 10))
|
||||
(segment (start 57.912 46.99) (end 60.452 44.45) (width 0.25) (layer F.Cu) (net 10))
|
||||
|
||||
(zone (net 8) (net_name DM_GND) (layer F.Cu) (tstamp 5E302F70) (hatch edge 0.508)
|
||||
(connect_pads (clearance 0.508))
|
||||
(min_thickness 0.254)
|
||||
(fill yes (arc_segments 32) (thermal_gap 0.508) (thermal_bridge_width 0.508))
|
||||
(polygon
|
||||
(pts
|
||||
(xy 74.295 61.087) (xy 24.384 61.087) (xy 24.384 21.082) (xy 74.295 21.082)
|
||||
)
|
||||
)
|
||||
(filled_polygon
|
||||
(pts
|
||||
(xy 54.070815 21.812815) (xy 53.991463 21.909506) (xy 53.932498 22.01982) (xy 53.896188 22.139518) (xy 53.883928 22.264)
|
||||
(xy 53.887 22.82825) (xy 54.04575 22.987) (xy 55.245 22.987) (xy 55.245 22.967) (xy 55.499 22.967)
|
||||
(xy 55.499 22.987) (xy 55.519 22.987) (xy 55.519 23.241) (xy 55.499 23.241) (xy 55.499 23.261)
|
||||
(xy 55.245 23.261) (xy 55.245 23.241) (xy 54.04575 23.241) (xy 53.887 23.39975) (xy 53.883928 23.964)
|
||||
(xy 53.896188 24.088482) (xy 53.932498 24.20818) (xy 53.991463 24.318494) (xy 54.070815 24.415185) (xy 54.167506 24.494537)
|
||||
(xy 54.27782 24.553502) (xy 54.397518 24.589812) (xy 54.522 24.602072) (xy 55.08625 24.599) (xy 55.244998 24.440252)
|
||||
(xy 55.244998 24.599) (xy 55.352198 24.599) (xy 54.860998 25.090201) (xy 54.832 25.113999) (xy 54.808202 25.142997)
|
||||
(xy 54.808201 25.142998) (xy 54.737026 25.229724) (xy 54.666454 25.361754) (xy 54.622998 25.505015) (xy 54.608324 25.654)
|
||||
(xy 54.612001 25.691333) (xy 54.612 43.171821) (xy 54.425368 43.296525) (xy 54.218525 43.503368) (xy 54.05601 43.746589)
|
||||
(xy 53.944068 44.016842) (xy 53.887 44.30374) (xy 53.887 44.59626) (xy 53.944068 44.883158) (xy 54.05601 45.153411)
|
||||
(xy 54.218525 45.396632) (xy 54.425368 45.603475) (xy 54.59976 45.72) (xy 54.425368 45.836525) (xy 54.218525 46.043368)
|
||||
(xy 54.05601 46.286589) (xy 53.944068 46.556842) (xy 53.887 46.84374) (xy 53.887 47.13626) (xy 53.944068 47.423158)
|
||||
(xy 54.05601 47.693411) (xy 54.218525 47.936632) (xy 54.425368 48.143475) (xy 54.59976 48.26) (xy 54.425368 48.376525)
|
||||
(xy 54.218525 48.583368) (xy 54.05601 48.826589) (xy 53.944068 49.096842) (xy 53.887 49.38374) (xy 53.887 49.510199)
|
||||
(xy 52.322 47.945199) (xy 52.322 47.027325) (xy 52.325676 46.99) (xy 52.322 46.952675) (xy 52.322 46.952667)
|
||||
(xy 52.311003 46.841014) (xy 52.267546 46.697753) (xy 52.196974 46.565724) (xy 52.102001 46.449999) (xy 52.073004 46.426202)
|
||||
(xy 43.254857 37.608056) (xy 43.490182 37.765295) (xy 44.15171 38.039309) (xy 44.853984 38.179) (xy 45.570016 38.179)
|
||||
(xy 46.27229 38.039309) (xy 46.933818 37.765295) (xy 47.529177 37.367489) (xy 48.035489 36.861177) (xy 48.433295 36.265818)
|
||||
(xy 48.707309 35.60429) (xy 48.847 34.902016) (xy 48.847 34.185984) (xy 48.707309 33.48371) (xy 48.433295 32.822182)
|
||||
(xy 48.035489 32.226823) (xy 47.529177 31.720511) (xy 46.933818 31.322705) (xy 46.27229 31.048691) (xy 45.570016 30.909)
|
||||
(xy 44.853984 30.909) (xy 44.15171 31.048691) (xy 43.490182 31.322705) (xy 42.894823 31.720511) (xy 42.388511 32.226823)
|
||||
(xy 41.990705 32.822182) (xy 41.716691 33.48371) (xy 41.577 34.185984) (xy 41.577 34.902016) (xy 41.716691 35.60429)
|
||||
(xy 41.990705 36.265818) (xy 42.147944 36.501143) (xy 41.352 35.705199) (xy 41.352 31.102046) (xy 41.446494 31.051537)
|
||||
(xy 41.543185 30.972185) (xy 41.622537 30.875494) (xy 41.681502 30.76518) (xy 41.717812 30.645482) (xy 41.730072 30.521)
|
||||
(xy 41.730072 29.821) (xy 41.717812 29.696518) (xy 41.681502 29.57682) (xy 41.622537 29.466506) (xy 41.543185 29.369815)
|
||||
(xy 41.446494 29.290463) (xy 41.33618 29.231498) (xy 41.216482 29.195188) (xy 41.092 29.182928) (xy 40.092 29.182928)
|
||||
(xy 39.967518 29.195188) (xy 39.84782 29.231498) (xy 39.737506 29.290463) (xy 39.640815 29.369815) (xy 39.561463 29.466506)
|
||||
(xy 39.502498 29.57682) (xy 39.466188 29.696518) (xy 39.453928 29.821) (xy 39.453928 30.521) (xy 39.466188 30.645482)
|
||||
(xy 39.502498 30.76518) (xy 39.561463 30.875494) (xy 39.640815 30.972185) (xy 39.737506 31.051537) (xy 39.832 31.102046)
|
||||
(xy 39.832001 35.982668) (xy 39.828324 36.02) (xy 39.842998 36.168985) (xy 39.886454 36.312246) (xy 39.957026 36.444276)
|
||||
(xy 40.028201 36.531002) (xy 40.052 36.560001) (xy 40.080998 36.583799) (xy 41.180881 37.683682) (xy 41.092 37.674928)
|
||||
(xy 40.87775 37.678) (xy 40.719 37.83675) (xy 40.719 38.536) (xy 41.56825 38.536) (xy 41.727 38.37725)
|
||||
(xy 41.730072 38.313) (xy 41.721318 38.224119) (xy 45.227199 41.73) (xy 41.660752 41.73) (xy 41.622537 41.658506)
|
||||
(xy 41.543185 41.561815) (xy 41.446494 41.482463) (xy 41.33618 41.423498) (xy 41.216482 41.387188) (xy 41.092 41.374928)
|
||||
(xy 40.092 41.374928) (xy 39.967518 41.387188) (xy 39.84782 41.423498) (xy 39.737506 41.482463) (xy 39.640815 41.561815)
|
||||
(xy 39.561463 41.658506) (xy 39.502498 41.76882) (xy 39.466188 41.888518) (xy 39.453928 42.013) (xy 39.453928 42.713)
|
||||
(xy 39.466188 42.837482) (xy 39.502498 42.95718) (xy 39.561463 43.067494) (xy 39.640815 43.164185) (xy 39.737506 43.243537)
|
||||
(xy 39.84782 43.302502) (xy 39.967518 43.338812) (xy 40.092 43.351072) (xy 41.092 43.351072) (xy 41.216482 43.338812)
|
||||
(xy 41.33618 43.302502) (xy 41.434403 43.25) (xy 44.129236 43.25) (xy 43.490182 43.514705) (xy 42.894823 43.912511)
|
||||
(xy 42.388511 44.418823) (xy 41.990705 45.014182) (xy 41.716691 45.67571) (xy 41.577 46.377984) (xy 41.577 47.094016)
|
||||
(xy 41.716691 47.79629) (xy 41.990705 48.457818) (xy 42.388511 49.053177) (xy 42.894823 49.559489) (xy 43.490182 49.957295)
|
||||
(xy 44.15171 50.231309) (xy 44.853984 50.371) (xy 45.570016 50.371) (xy 46.27229 50.231309) (xy 46.933818 49.957295)
|
||||
(xy 47.529177 49.559489) (xy 48.035489 49.053177) (xy 48.433295 48.457818) (xy 48.707309 47.79629) (xy 48.847 47.094016)
|
||||
(xy 48.847 46.377984) (xy 48.749722 45.888933) (xy 50.294001 47.433213) (xy 50.294 49.453679) (xy 50.290324 49.491002)
|
||||
(xy 50.294 49.528324) (xy 50.294 49.528334) (xy 50.304997 49.639987) (xy 50.348454 49.783248) (xy 50.419026 49.915278)
|
||||
(xy 50.451031 49.954276) (xy 50.513999 50.031003) (xy 50.543003 50.054806) (xy 53.902196 53.414) (xy 41.576985 53.414)
|
||||
(xy 41.543185 53.372815) (xy 41.446494 53.293463) (xy 41.33618 53.234498) (xy 41.216482 53.198188) (xy 41.092 53.185928)
|
||||
(xy 40.092 53.185928) (xy 39.967518 53.198188) (xy 39.84782 53.234498) (xy 39.737506 53.293463) (xy 39.640815 53.372815)
|
||||
(xy 39.561463 53.469506) (xy 39.502498 53.57982) (xy 39.466188 53.699518) (xy 39.453928 53.824) (xy 39.453928 54.524)
|
||||
(xy 39.466188 54.648482) (xy 39.502498 54.76818) (xy 39.561463 54.878494) (xy 39.640815 54.975185) (xy 39.737506 55.054537)
|
||||
(xy 39.84782 55.113502) (xy 39.967518 55.149812) (xy 40.092 55.162072) (xy 41.092 55.162072) (xy 41.216482 55.149812)
|
||||
(xy 41.33618 55.113502) (xy 41.446494 55.054537) (xy 41.543185 54.975185) (xy 41.576985 54.934) (xy 53.883928 54.934)
|
||||
(xy 53.883928 55.46) (xy 53.896188 55.584482) (xy 53.932498 55.70418) (xy 53.991463 55.814494) (xy 54.070815 55.911185)
|
||||
(xy 54.167506 55.990537) (xy 54.27782 56.049502) (xy 54.397518 56.085812) (xy 54.522 56.098072) (xy 56.222 56.098072)
|
||||
(xy 56.346482 56.085812) (xy 56.46618 56.049502) (xy 56.576494 55.990537) (xy 56.673185 55.911185) (xy 56.752537 55.814494)
|
||||
(xy 56.811502 55.70418) (xy 56.833513 55.63162) (xy 56.965368 55.763475) (xy 57.208589 55.92599) (xy 57.478842 56.037932)
|
||||
(xy 57.76574 56.095) (xy 58.05826 56.095) (xy 58.345158 56.037932) (xy 58.615411 55.92599) (xy 58.858632 55.763475)
|
||||
(xy 59.065475 55.556632) (xy 59.22799 55.313411) (xy 59.339932 55.043158) (xy 59.397 54.75626) (xy 59.397 54.46374)
|
||||
(xy 59.339932 54.176842) (xy 59.22799 53.906589) (xy 59.065475 53.663368) (xy 58.858632 53.456525) (xy 58.68424 53.34)
|
||||
(xy 58.858632 53.223475) (xy 59.065475 53.016632) (xy 59.22799 52.773411) (xy 59.339932 52.503158) (xy 59.397 52.21626)
|
||||
(xy 59.397 51.92374) (xy 59.353209 51.703592) (xy 71.123004 39.933798) (xy 71.152001 39.910001) (xy 71.246974 39.794276)
|
||||
(xy 71.317546 39.662247) (xy 71.361003 39.518986) (xy 71.372 39.407333) (xy 71.372 39.407324) (xy 71.375676 39.370001)
|
||||
(xy 71.372 39.332678) (xy 71.372 24.392178) (xy 71.558632 24.267475) (xy 71.765475 24.060632) (xy 71.92799 23.817411)
|
||||
(xy 72.039932 23.547158) (xy 72.097 23.26026) (xy 72.097 22.96774) (xy 72.039932 22.680842) (xy 71.92799 22.410589)
|
||||
(xy 71.765475 22.167368) (xy 71.558632 21.960525) (xy 71.315411 21.79801) (xy 71.300902 21.792) (xy 73.674 21.792)
|
||||
(xy 73.674001 60.372) (xy 25.094 60.372) (xy 25.094 53.824) (xy 33.453928 53.824) (xy 33.453928 54.524)
|
||||
(xy 33.466188 54.648482) (xy 33.502498 54.76818) (xy 33.561463 54.878494) (xy 33.640815 54.975185) (xy 33.737506 55.054537)
|
||||
(xy 33.84782 55.113502) (xy 33.967518 55.149812) (xy 34.092 55.162072) (xy 35.092 55.162072) (xy 35.216482 55.149812)
|
||||
(xy 35.33618 55.113502) (xy 35.446494 55.054537) (xy 35.543185 54.975185) (xy 35.622537 54.878494) (xy 35.681502 54.76818)
|
||||
(xy 35.717812 54.648482) (xy 35.730072 54.524) (xy 35.730072 53.824) (xy 35.717812 53.699518) (xy 35.681502 53.57982)
|
||||
(xy 35.622537 53.469506) (xy 35.543185 53.372815) (xy 35.446494 53.293463) (xy 35.33618 53.234498) (xy 35.216482 53.198188)
|
||||
(xy 35.092 53.185928) (xy 34.092 53.185928) (xy 33.967518 53.198188) (xy 33.84782 53.234498) (xy 33.737506 53.293463)
|
||||
(xy 33.640815 53.372815) (xy 33.561463 53.469506) (xy 33.502498 53.57982) (xy 33.466188 53.699518) (xy 33.453928 53.824)
|
||||
(xy 25.094 53.824) (xy 25.094 46.377984) (xy 26.591 46.377984) (xy 26.591 47.094016) (xy 26.730691 47.79629)
|
||||
(xy 27.004705 48.457818) (xy 27.402511 49.053177) (xy 27.908823 49.559489) (xy 28.504182 49.957295) (xy 29.16571 50.231309)
|
||||
(xy 29.867984 50.371) (xy 30.584016 50.371) (xy 31.28629 50.231309) (xy 31.545356 50.124) (xy 33.453928 50.124)
|
||||
(xy 33.453928 50.824) (xy 33.466188 50.948482) (xy 33.502498 51.06818) (xy 33.561463 51.178494) (xy 33.640815 51.275185)
|
||||
(xy 33.737506 51.354537) (xy 33.84782 51.413502) (xy 33.967518 51.449812) (xy 34.092 51.462072) (xy 35.092 51.462072)
|
||||
(xy 35.216482 51.449812) (xy 35.33618 51.413502) (xy 35.446494 51.354537) (xy 35.543185 51.275185) (xy 35.622537 51.178494)
|
||||
(xy 35.681502 51.06818) (xy 35.717812 50.948482) (xy 35.730072 50.824) (xy 39.453928 50.824) (xy 39.466188 50.948482)
|
||||
(xy 39.502498 51.06818) (xy 39.561463 51.178494) (xy 39.640815 51.275185) (xy 39.737506 51.354537) (xy 39.84782 51.413502)
|
||||
(xy 39.967518 51.449812) (xy 40.092 51.462072) (xy 40.30625 51.459) (xy 40.465 51.30025) (xy 40.465 50.601)
|
||||
(xy 40.719 50.601) (xy 40.719 51.30025) (xy 40.87775 51.459) (xy 41.092 51.462072) (xy 41.216482 51.449812)
|
||||
(xy 41.33618 51.413502) (xy 41.446494 51.354537) (xy 41.543185 51.275185) (xy 41.622537 51.178494) (xy 41.681502 51.06818)
|
||||
(xy 41.717812 50.948482) (xy 41.730072 50.824) (xy 41.727 50.75975) (xy 41.56825 50.601) (xy 40.719 50.601)
|
||||
(xy 40.465 50.601) (xy 39.61575 50.601) (xy 39.457 50.75975) (xy 39.453928 50.824) (xy 35.730072 50.824)
|
||||
(xy 35.730072 50.124) (xy 39.453928 50.124) (xy 39.457 50.18825) (xy 39.61575 50.347) (xy 40.465 50.347)
|
||||
(xy 40.465 49.64775) (xy 40.719 49.64775) (xy 40.719 50.347) (xy 41.56825 50.347) (xy 41.727 50.18825)
|
||||
(xy 41.730072 50.124) (xy 41.717812 49.999518) (xy 41.681502 49.87982) (xy 41.622537 49.769506) (xy 41.543185 49.672815)
|
||||
(xy 41.446494 49.593463) (xy 41.33618 49.534498) (xy 41.216482 49.498188) (xy 41.092 49.485928) (xy 40.87775 49.489)
|
||||
(xy 40.719 49.64775) (xy 40.465 49.64775) (xy 40.30625 49.489) (xy 40.092 49.485928) (xy 39.967518 49.498188)
|
||||
(xy 39.84782 49.534498) (xy 39.737506 49.593463) (xy 39.640815 49.672815) (xy 39.561463 49.769506) (xy 39.502498 49.87982)
|
||||
(xy 39.466188 49.999518) (xy 39.453928 50.124) (xy 35.730072 50.124) (xy 35.717812 49.999518) (xy 35.681502 49.87982)
|
||||
(xy 35.622537 49.769506) (xy 35.543185 49.672815) (xy 35.446494 49.593463) (xy 35.33618 49.534498) (xy 35.216482 49.498188)
|
||||
(xy 35.092 49.485928) (xy 34.092 49.485928) (xy 33.967518 49.498188) (xy 33.84782 49.534498) (xy 33.737506 49.593463)
|
||||
(xy 33.640815 49.672815) (xy 33.561463 49.769506) (xy 33.502498 49.87982) (xy 33.466188 49.999518) (xy 33.453928 50.124)
|
||||
(xy 31.545356 50.124) (xy 31.947818 49.957295) (xy 32.543177 49.559489) (xy 33.049489 49.053177) (xy 33.447295 48.457818)
|
||||
(xy 33.721309 47.79629) (xy 33.861 47.094016) (xy 33.861 46.377984) (xy 33.721309 45.67571) (xy 33.447295 45.014182)
|
||||
(xy 33.049489 44.418823) (xy 32.543177 43.912511) (xy 31.947818 43.514705) (xy 31.28629 43.240691) (xy 30.584016 43.101)
|
||||
(xy 29.867984 43.101) (xy 29.16571 43.240691) (xy 28.504182 43.514705) (xy 27.908823 43.912511) (xy 27.402511 44.418823)
|
||||
(xy 27.004705 45.014182) (xy 26.730691 45.67571) (xy 26.591 46.377984) (xy 25.094 46.377984) (xy 25.094 42.013)
|
||||
(xy 33.453928 42.013) (xy 33.453928 42.713) (xy 33.466188 42.837482) (xy 33.502498 42.95718) (xy 33.561463 43.067494)
|
||||
(xy 33.640815 43.164185) (xy 33.737506 43.243537) (xy 33.84782 43.302502) (xy 33.967518 43.338812) (xy 34.092 43.351072)
|
||||
(xy 35.092 43.351072) (xy 35.216482 43.338812) (xy 35.33618 43.302502) (xy 35.446494 43.243537) (xy 35.543185 43.164185)
|
||||
(xy 35.622537 43.067494) (xy 35.681502 42.95718) (xy 35.717812 42.837482) (xy 35.730072 42.713) (xy 35.730072 42.013)
|
||||
(xy 35.717812 41.888518) (xy 35.681502 41.76882) (xy 35.622537 41.658506) (xy 35.543185 41.561815) (xy 35.446494 41.482463)
|
||||
(xy 35.33618 41.423498) (xy 35.216482 41.387188) (xy 35.092 41.374928) (xy 34.092 41.374928) (xy 33.967518 41.387188)
|
||||
(xy 33.84782 41.423498) (xy 33.737506 41.482463) (xy 33.640815 41.561815) (xy 33.561463 41.658506) (xy 33.502498 41.76882)
|
||||
(xy 33.466188 41.888518) (xy 33.453928 42.013) (xy 25.094 42.013) (xy 25.094 38.313) (xy 33.453928 38.313)
|
||||
(xy 33.453928 39.013) (xy 33.466188 39.137482) (xy 33.502498 39.25718) (xy 33.561463 39.367494) (xy 33.640815 39.464185)
|
||||
(xy 33.737506 39.543537) (xy 33.84782 39.602502) (xy 33.967518 39.638812) (xy 34.092 39.651072) (xy 35.092 39.651072)
|
||||
(xy 35.216482 39.638812) (xy 35.33618 39.602502) (xy 35.446494 39.543537) (xy 35.543185 39.464185) (xy 35.622537 39.367494)
|
||||
(xy 35.681502 39.25718) (xy 35.717812 39.137482) (xy 35.730072 39.013) (xy 39.453928 39.013) (xy 39.466188 39.137482)
|
||||
(xy 39.502498 39.25718) (xy 39.561463 39.367494) (xy 39.640815 39.464185) (xy 39.737506 39.543537) (xy 39.84782 39.602502)
|
||||
(xy 39.967518 39.638812) (xy 40.092 39.651072) (xy 40.30625 39.648) (xy 40.465 39.48925) (xy 40.465 38.79)
|
||||
(xy 40.719 38.79) (xy 40.719 39.48925) (xy 40.87775 39.648) (xy 41.092 39.651072) (xy 41.216482 39.638812)
|
||||
(xy 41.33618 39.602502) (xy 41.446494 39.543537) (xy 41.543185 39.464185) (xy 41.622537 39.367494) (xy 41.681502 39.25718)
|
||||
(xy 41.717812 39.137482) (xy 41.730072 39.013) (xy 41.727 38.94875) (xy 41.56825 38.79) (xy 40.719 38.79)
|
||||
(xy 40.465 38.79) (xy 39.61575 38.79) (xy 39.457 38.94875) (xy 39.453928 39.013) (xy 35.730072 39.013)
|
||||
(xy 35.730072 38.313) (xy 39.453928 38.313) (xy 39.457 38.37725) (xy 39.61575 38.536) (xy 40.465 38.536)
|
||||
(xy 40.465 37.83675) (xy 40.30625 37.678) (xy 40.092 37.674928) (xy 39.967518 37.687188) (xy 39.84782 37.723498)
|
||||
(xy 39.737506 37.782463) (xy 39.640815 37.861815) (xy 39.561463 37.958506) (xy 39.502498 38.06882) (xy 39.466188 38.188518)
|
||||
(xy 39.453928 38.313) (xy 35.730072 38.313) (xy 35.717812 38.188518) (xy 35.681502 38.06882) (xy 35.622537 37.958506)
|
||||
(xy 35.543185 37.861815) (xy 35.446494 37.782463) (xy 35.33618 37.723498) (xy 35.216482 37.687188) (xy 35.092 37.674928)
|
||||
(xy 34.092 37.674928) (xy 33.967518 37.687188) (xy 33.84782 37.723498) (xy 33.737506 37.782463) (xy 33.640815 37.861815)
|
||||
(xy 33.561463 37.958506) (xy 33.502498 38.06882) (xy 33.466188 38.188518) (xy 33.453928 38.313) (xy 25.094 38.313)
|
||||
(xy 25.094 34.185984) (xy 26.591 34.185984) (xy 26.591 34.902016) (xy 26.730691 35.60429) (xy 27.004705 36.265818)
|
||||
(xy 27.402511 36.861177) (xy 27.908823 37.367489) (xy 28.504182 37.765295) (xy 29.16571 38.039309) (xy 29.867984 38.179)
|
||||
(xy 30.584016 38.179) (xy 31.28629 38.039309) (xy 31.947818 37.765295) (xy 32.543177 37.367489) (xy 33.049489 36.861177)
|
||||
(xy 33.447295 36.265818) (xy 33.721309 35.60429) (xy 33.861 34.902016) (xy 33.861 34.185984) (xy 33.721309 33.48371)
|
||||
(xy 33.447295 32.822182) (xy 33.049489 32.226823) (xy 32.543177 31.720511) (xy 31.947818 31.322705) (xy 31.28629 31.048691)
|
||||
(xy 30.584016 30.909) (xy 29.867984 30.909) (xy 29.16571 31.048691) (xy 28.504182 31.322705) (xy 27.908823 31.720511)
|
||||
(xy 27.402511 32.226823) (xy 27.004705 32.822182) (xy 26.730691 33.48371) (xy 26.591 34.185984) (xy 25.094 34.185984)
|
||||
(xy 25.094 29.821) (xy 33.453928 29.821) (xy 33.453928 30.521) (xy 33.466188 30.645482) (xy 33.502498 30.76518)
|
||||
(xy 33.561463 30.875494) (xy 33.640815 30.972185) (xy 33.737506 31.051537) (xy 33.84782 31.110502) (xy 33.967518 31.146812)
|
||||
(xy 34.092 31.159072) (xy 35.092 31.159072) (xy 35.216482 31.146812) (xy 35.33618 31.110502) (xy 35.446494 31.051537)
|
||||
(xy 35.543185 30.972185) (xy 35.622537 30.875494) (xy 35.681502 30.76518) (xy 35.717812 30.645482) (xy 35.730072 30.521)
|
||||
(xy 35.730072 29.821) (xy 35.717812 29.696518) (xy 35.681502 29.57682) (xy 35.622537 29.466506) (xy 35.543185 29.369815)
|
||||
(xy 35.446494 29.290463) (xy 35.33618 29.231498) (xy 35.216482 29.195188) (xy 35.092 29.182928) (xy 34.092 29.182928)
|
||||
(xy 33.967518 29.195188) (xy 33.84782 29.231498) (xy 33.737506 29.290463) (xy 33.640815 29.369815) (xy 33.561463 29.466506)
|
||||
(xy 33.502498 29.57682) (xy 33.466188 29.696518) (xy 33.453928 29.821) (xy 25.094 29.821) (xy 25.094 26.121)
|
||||
(xy 33.453928 26.121) (xy 33.453928 26.821) (xy 33.466188 26.945482) (xy 33.502498 27.06518) (xy 33.561463 27.175494)
|
||||
(xy 33.640815 27.272185) (xy 33.737506 27.351537) (xy 33.84782 27.410502) (xy 33.967518 27.446812) (xy 34.092 27.459072)
|
||||
(xy 35.092 27.459072) (xy 35.216482 27.446812) (xy 35.33618 27.410502) (xy 35.446494 27.351537) (xy 35.543185 27.272185)
|
||||
(xy 35.622537 27.175494) (xy 35.681502 27.06518) (xy 35.717812 26.945482) (xy 35.730072 26.821) (xy 39.453928 26.821)
|
||||
(xy 39.466188 26.945482) (xy 39.502498 27.06518) (xy 39.561463 27.175494) (xy 39.640815 27.272185) (xy 39.737506 27.351537)
|
||||
(xy 39.84782 27.410502) (xy 39.967518 27.446812) (xy 40.092 27.459072) (xy 40.30625 27.456) (xy 40.465 27.29725)
|
||||
(xy 40.465 26.598) (xy 40.719 26.598) (xy 40.719 27.29725) (xy 40.87775 27.456) (xy 41.092 27.459072)
|
||||
(xy 41.216482 27.446812) (xy 41.33618 27.410502) (xy 41.446494 27.351537) (xy 41.543185 27.272185) (xy 41.622537 27.175494)
|
||||
(xy 41.681502 27.06518) (xy 41.717812 26.945482) (xy 41.730072 26.821) (xy 41.727 26.75675) (xy 41.56825 26.598)
|
||||
(xy 40.719 26.598) (xy 40.465 26.598) (xy 39.61575 26.598) (xy 39.457 26.75675) (xy 39.453928 26.821)
|
||||
(xy 35.730072 26.821) (xy 35.730072 26.121) (xy 39.453928 26.121) (xy 39.457 26.18525) (xy 39.61575 26.344)
|
||||
(xy 40.465 26.344) (xy 40.465 25.64475) (xy 40.719 25.64475) (xy 40.719 26.344) (xy 41.56825 26.344)
|
||||
(xy 41.727 26.18525) (xy 41.730072 26.121) (xy 41.717812 25.996518) (xy 41.681502 25.87682) (xy 41.622537 25.766506)
|
||||
(xy 41.543185 25.669815) (xy 41.446494 25.590463) (xy 41.33618 25.531498) (xy 41.216482 25.495188) (xy 41.092 25.482928)
|
||||
(xy 40.87775 25.486) (xy 40.719 25.64475) (xy 40.465 25.64475) (xy 40.30625 25.486) (xy 40.092 25.482928)
|
||||
(xy 39.967518 25.495188) (xy 39.84782 25.531498) (xy 39.737506 25.590463) (xy 39.640815 25.669815) (xy 39.561463 25.766506)
|
||||
(xy 39.502498 25.87682) (xy 39.466188 25.996518) (xy 39.453928 26.121) (xy 35.730072 26.121) (xy 35.717812 25.996518)
|
||||
(xy 35.681502 25.87682) (xy 35.622537 25.766506) (xy 35.543185 25.669815) (xy 35.446494 25.590463) (xy 35.33618 25.531498)
|
||||
(xy 35.216482 25.495188) (xy 35.092 25.482928) (xy 34.092 25.482928) (xy 33.967518 25.495188) (xy 33.84782 25.531498)
|
||||
(xy 33.737506 25.590463) (xy 33.640815 25.669815) (xy 33.561463 25.766506) (xy 33.502498 25.87682) (xy 33.466188 25.996518)
|
||||
(xy 33.453928 26.121) (xy 25.094 26.121) (xy 25.094 21.792) (xy 54.096178 21.792)
|
||||
)
|
||||
)
|
||||
(filled_polygon
|
||||
(pts
|
||||
(xy 59.298525 24.060632) (xy 59.505368 24.267475) (xy 59.692001 24.392179) (xy 59.692 44.135197) (xy 59.397 44.430198)
|
||||
(xy 59.397 44.322998) (xy 59.232156 44.322998) (xy 59.353476 44.09311) (xy 59.308825 43.945901) (xy 59.183641 43.68308)
|
||||
(xy 59.009588 43.449731) (xy 58.793355 43.254822) (xy 58.543252 43.105843) (xy 58.268891 43.008519) (xy 58.039 43.129186)
|
||||
(xy 58.039 44.323) (xy 58.059 44.323) (xy 58.059 44.577) (xy 58.039 44.577) (xy 58.039 44.597)
|
||||
(xy 57.785 44.597) (xy 57.785 44.577) (xy 57.765 44.577) (xy 57.765 44.323) (xy 57.785 44.323)
|
||||
(xy 57.785 43.129186) (xy 57.555109 43.008519) (xy 57.280748 43.105843) (xy 57.030645 43.254822) (xy 56.814412 43.449731)
|
||||
(xy 56.6431 43.679406) (xy 56.525475 43.503368) (xy 56.318632 43.296525) (xy 56.132 43.171822) (xy 56.132 25.968801)
|
||||
(xy 57.545593 24.55521) (xy 57.76574 24.599) (xy 58.05826 24.599) (xy 58.345158 24.541932) (xy 58.615411 24.42999)
|
||||
(xy 58.858632 24.267475) (xy 59.065475 24.060632) (xy 59.182 23.88624)
|
||||
)
|
||||
)
|
||||
)
|
||||
(zone (net 8) (net_name DM_GND) (layer B.Cu) (tstamp 5E302F6D) (hatch edge 0.508)
|
||||
(connect_pads (clearance 0.508))
|
||||
(min_thickness 0.254)
|
||||
(fill yes (arc_segments 32) (thermal_gap 0.508) (thermal_bridge_width 0.508))
|
||||
(polygon
|
||||
(pts
|
||||
(xy 74.422 60.96) (xy 24.384 60.96) (xy 24.384 21.082) (xy 74.422 21.082)
|
||||
)
|
||||
)
|
||||
(filled_polygon
|
||||
(pts
|
||||
(xy 54.070815 21.812815) (xy 53.991463 21.909506) (xy 53.932498 22.01982) (xy 53.896188 22.139518) (xy 53.883928 22.264)
|
||||
(xy 53.887 22.82825) (xy 54.04575 22.987) (xy 55.245 22.987) (xy 55.245 22.967) (xy 55.499 22.967)
|
||||
(xy 55.499 22.987) (xy 55.519 22.987) (xy 55.519 23.241) (xy 55.499 23.241) (xy 55.499 24.44025)
|
||||
(xy 55.65775 24.599) (xy 56.222 24.602072) (xy 56.346482 24.589812) (xy 56.46618 24.553502) (xy 56.576494 24.494537)
|
||||
(xy 56.673185 24.415185) (xy 56.752537 24.318494) (xy 56.811502 24.20818) (xy 56.833513 24.13562) (xy 56.965368 24.267475)
|
||||
(xy 57.208589 24.42999) (xy 57.478842 24.541932) (xy 57.76574 24.599) (xy 58.05826 24.599) (xy 58.345158 24.541932)
|
||||
(xy 58.615411 24.42999) (xy 58.858632 24.267475) (xy 59.065475 24.060632) (xy 59.182 23.88624) (xy 59.298525 24.060632)
|
||||
(xy 59.505368 24.267475) (xy 59.748589 24.42999) (xy 60.018842 24.541932) (xy 60.30574 24.599) (xy 60.59826 24.599)
|
||||
(xy 60.885158 24.541932) (xy 61.155411 24.42999) (xy 61.398632 24.267475) (xy 61.605475 24.060632) (xy 61.722 23.88624)
|
||||
(xy 61.838525 24.060632) (xy 62.045368 24.267475) (xy 62.232001 24.392179) (xy 62.232 40.7942) (xy 59.235095 43.791106)
|
||||
(xy 59.183641 43.68308) (xy 59.009588 43.449731) (xy 58.793355 43.254822) (xy 58.543252 43.105843) (xy 58.268891 43.008519)
|
||||
(xy 58.039 43.129186) (xy 58.039 44.323) (xy 58.059 44.323) (xy 58.059 44.577) (xy 58.039 44.577)
|
||||
(xy 58.039 44.597) (xy 57.785 44.597) (xy 57.785 44.577) (xy 57.765 44.577) (xy 57.765 44.323)
|
||||
(xy 57.785 44.323) (xy 57.785 43.129186) (xy 57.555109 43.008519) (xy 57.280748 43.105843) (xy 57.030645 43.254822)
|
||||
(xy 56.814412 43.449731) (xy 56.6431 43.679406) (xy 56.525475 43.503368) (xy 56.318632 43.296525) (xy 56.075411 43.13401)
|
||||
(xy 55.805158 43.022068) (xy 55.51826 42.965) (xy 55.22574 42.965) (xy 54.938842 43.022068) (xy 54.668589 43.13401)
|
||||
(xy 54.425368 43.296525) (xy 54.218525 43.503368) (xy 54.05601 43.746589) (xy 53.944068 44.016842) (xy 53.887 44.30374)
|
||||
(xy 53.887 44.59626) (xy 53.944068 44.883158) (xy 54.05601 45.153411) (xy 54.218525 45.396632) (xy 54.425368 45.603475)
|
||||
(xy 54.59976 45.72) (xy 54.425368 45.836525) (xy 54.218525 46.043368) (xy 54.05601 46.286589) (xy 53.944068 46.556842)
|
||||
(xy 53.887 46.84374) (xy 53.887 47.13626) (xy 53.944068 47.423158) (xy 54.05601 47.693411) (xy 54.218525 47.936632)
|
||||
(xy 54.425368 48.143475) (xy 54.59976 48.26) (xy 54.425368 48.376525) (xy 54.218525 48.583368) (xy 54.05601 48.826589)
|
||||
(xy 53.944068 49.096842) (xy 53.887 49.38374) (xy 53.887 49.67626) (xy 53.944068 49.963158) (xy 54.05601 50.233411)
|
||||
(xy 54.218525 50.476632) (xy 54.425368 50.683475) (xy 54.59976 50.8) (xy 54.425368 50.916525) (xy 54.218525 51.123368)
|
||||
(xy 54.05601 51.366589) (xy 53.944068 51.636842) (xy 53.887 51.92374) (xy 53.887 52.21626) (xy 53.944068 52.503158)
|
||||
(xy 54.05601 52.773411) (xy 54.218525 53.016632) (xy 54.35038 53.148487) (xy 54.27782 53.170498) (xy 54.167506 53.229463)
|
||||
(xy 54.070815 53.308815) (xy 53.991463 53.405506) (xy 53.932498 53.51582) (xy 53.896188 53.635518) (xy 53.883928 53.76)
|
||||
(xy 53.883928 55.46) (xy 53.896188 55.584482) (xy 53.932498 55.70418) (xy 53.991463 55.814494) (xy 54.070815 55.911185)
|
||||
(xy 54.167506 55.990537) (xy 54.27782 56.049502) (xy 54.397518 56.085812) (xy 54.522 56.098072) (xy 56.222 56.098072)
|
||||
(xy 56.346482 56.085812) (xy 56.46618 56.049502) (xy 56.576494 55.990537) (xy 56.673185 55.911185) (xy 56.752537 55.814494)
|
||||
(xy 56.811502 55.70418) (xy 56.833513 55.63162) (xy 56.965368 55.763475) (xy 57.208589 55.92599) (xy 57.478842 56.037932)
|
||||
(xy 57.76574 56.095) (xy 58.05826 56.095) (xy 58.345158 56.037932) (xy 58.615411 55.92599) (xy 58.858632 55.763475)
|
||||
(xy 59.065475 55.556632) (xy 59.22799 55.313411) (xy 59.339932 55.043158) (xy 59.397 54.75626) (xy 59.397 54.46374)
|
||||
(xy 59.339932 54.176842) (xy 59.22799 53.906589) (xy 59.065475 53.663368) (xy 58.858632 53.456525) (xy 58.68424 53.34)
|
||||
(xy 58.858632 53.223475) (xy 59.065475 53.016632) (xy 59.22799 52.773411) (xy 59.339932 52.503158) (xy 59.397 52.21626)
|
||||
(xy 59.397 51.92374) (xy 59.339932 51.636842) (xy 59.22799 51.366589) (xy 59.065475 51.123368) (xy 58.858632 50.916525)
|
||||
(xy 58.68424 50.8) (xy 58.858632 50.683475) (xy 59.065475 50.476632) (xy 59.22799 50.233411) (xy 59.339932 49.963158)
|
||||
(xy 59.397 49.67626) (xy 59.397 49.38374) (xy 59.339932 49.096842) (xy 59.22799 48.826589) (xy 59.092295 48.623508)
|
||||
(xy 68.583004 39.1328) (xy 68.612001 39.109003) (xy 68.638332 39.076919) (xy 68.706974 38.993279) (xy 68.777546 38.861249)
|
||||
(xy 68.777546 38.861248) (xy 68.821003 38.717988) (xy 68.832 38.606335) (xy 68.832 38.606325) (xy 68.835676 38.569002)
|
||||
(xy 68.832 38.531679) (xy 68.832 24.392178) (xy 69.018632 24.267475) (xy 69.225475 24.060632) (xy 69.342 23.88624)
|
||||
(xy 69.458525 24.060632) (xy 69.665368 24.267475) (xy 69.908589 24.42999) (xy 70.178842 24.541932) (xy 70.46574 24.599)
|
||||
(xy 70.75826 24.599) (xy 71.045158 24.541932) (xy 71.315411 24.42999) (xy 71.558632 24.267475) (xy 71.765475 24.060632)
|
||||
(xy 71.92799 23.817411) (xy 72.039932 23.547158) (xy 72.097 23.26026) (xy 72.097 22.96774) (xy 72.039932 22.680842)
|
||||
(xy 71.92799 22.410589) (xy 71.765475 22.167368) (xy 71.558632 21.960525) (xy 71.315411 21.79801) (xy 71.300902 21.792)
|
||||
(xy 73.674 21.792) (xy 73.674001 60.372) (xy 25.094 60.372) (xy 25.094 46.377984) (xy 26.591 46.377984)
|
||||
(xy 26.591 47.094016) (xy 26.730691 47.79629) (xy 27.004705 48.457818) (xy 27.402511 49.053177) (xy 27.908823 49.559489)
|
||||
(xy 28.504182 49.957295) (xy 29.16571 50.231309) (xy 29.867984 50.371) (xy 30.584016 50.371) (xy 31.28629 50.231309)
|
||||
(xy 31.947818 49.957295) (xy 32.543177 49.559489) (xy 33.049489 49.053177) (xy 33.447295 48.457818) (xy 33.721309 47.79629)
|
||||
(xy 33.861 47.094016) (xy 33.861 46.377984) (xy 41.577 46.377984) (xy 41.577 47.094016) (xy 41.716691 47.79629)
|
||||
(xy 41.990705 48.457818) (xy 42.388511 49.053177) (xy 42.894823 49.559489) (xy 43.490182 49.957295) (xy 44.15171 50.231309)
|
||||
(xy 44.853984 50.371) (xy 45.570016 50.371) (xy 46.27229 50.231309) (xy 46.933818 49.957295) (xy 47.529177 49.559489)
|
||||
(xy 48.035489 49.053177) (xy 48.433295 48.457818) (xy 48.707309 47.79629) (xy 48.847 47.094016) (xy 48.847 46.377984)
|
||||
(xy 48.707309 45.67571) (xy 48.433295 45.014182) (xy 48.035489 44.418823) (xy 47.529177 43.912511) (xy 46.933818 43.514705)
|
||||
(xy 46.27229 43.240691) (xy 45.570016 43.101) (xy 44.853984 43.101) (xy 44.15171 43.240691) (xy 43.490182 43.514705)
|
||||
(xy 42.894823 43.912511) (xy 42.388511 44.418823) (xy 41.990705 45.014182) (xy 41.716691 45.67571) (xy 41.577 46.377984)
|
||||
(xy 33.861 46.377984) (xy 33.721309 45.67571) (xy 33.447295 45.014182) (xy 33.049489 44.418823) (xy 32.543177 43.912511)
|
||||
(xy 31.947818 43.514705) (xy 31.28629 43.240691) (xy 30.584016 43.101) (xy 29.867984 43.101) (xy 29.16571 43.240691)
|
||||
(xy 28.504182 43.514705) (xy 27.908823 43.912511) (xy 27.402511 44.418823) (xy 27.004705 45.014182) (xy 26.730691 45.67571)
|
||||
(xy 26.591 46.377984) (xy 25.094 46.377984) (xy 25.094 34.185984) (xy 26.591 34.185984) (xy 26.591 34.902016)
|
||||
(xy 26.730691 35.60429) (xy 27.004705 36.265818) (xy 27.402511 36.861177) (xy 27.908823 37.367489) (xy 28.504182 37.765295)
|
||||
(xy 29.16571 38.039309) (xy 29.867984 38.179) (xy 30.584016 38.179) (xy 31.28629 38.039309) (xy 31.947818 37.765295)
|
||||
(xy 32.543177 37.367489) (xy 33.049489 36.861177) (xy 33.447295 36.265818) (xy 33.721309 35.60429) (xy 33.861 34.902016)
|
||||
(xy 33.861 34.185984) (xy 41.577 34.185984) (xy 41.577 34.902016) (xy 41.716691 35.60429) (xy 41.990705 36.265818)
|
||||
(xy 42.388511 36.861177) (xy 42.894823 37.367489) (xy 43.490182 37.765295) (xy 44.15171 38.039309) (xy 44.853984 38.179)
|
||||
(xy 45.570016 38.179) (xy 46.27229 38.039309) (xy 46.933818 37.765295) (xy 47.529177 37.367489) (xy 48.035489 36.861177)
|
||||
(xy 48.433295 36.265818) (xy 48.707309 35.60429) (xy 48.847 34.902016) (xy 48.847 34.185984) (xy 48.707309 33.48371)
|
||||
(xy 48.433295 32.822182) (xy 48.035489 32.226823) (xy 47.529177 31.720511) (xy 46.933818 31.322705) (xy 46.27229 31.048691)
|
||||
(xy 45.570016 30.909) (xy 44.853984 30.909) (xy 44.15171 31.048691) (xy 43.490182 31.322705) (xy 42.894823 31.720511)
|
||||
(xy 42.388511 32.226823) (xy 41.990705 32.822182) (xy 41.716691 33.48371) (xy 41.577 34.185984) (xy 33.861 34.185984)
|
||||
(xy 33.721309 33.48371) (xy 33.447295 32.822182) (xy 33.049489 32.226823) (xy 32.543177 31.720511) (xy 31.947818 31.322705)
|
||||
(xy 31.28629 31.048691) (xy 30.584016 30.909) (xy 29.867984 30.909) (xy 29.16571 31.048691) (xy 28.504182 31.322705)
|
||||
(xy 27.908823 31.720511) (xy 27.402511 32.226823) (xy 27.004705 32.822182) (xy 26.730691 33.48371) (xy 26.591 34.185984)
|
||||
(xy 25.094 34.185984) (xy 25.094 23.964) (xy 53.883928 23.964) (xy 53.896188 24.088482) (xy 53.932498 24.20818)
|
||||
(xy 53.991463 24.318494) (xy 54.070815 24.415185) (xy 54.167506 24.494537) (xy 54.27782 24.553502) (xy 54.397518 24.589812)
|
||||
(xy 54.522 24.602072) (xy 55.08625 24.599) (xy 55.245 24.44025) (xy 55.245 23.241) (xy 54.04575 23.241)
|
||||
(xy 53.887 23.39975) (xy 53.883928 23.964) (xy 25.094 23.964) (xy 25.094 21.792) (xy 54.096178 21.792)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
135
pcb/display/DeskControlDisplay.net
Normal file
135
pcb/display/DeskControlDisplay.net
Normal file
@ -0,0 +1,135 @@
|
||||
(export (version D)
|
||||
(design
|
||||
(source P:\Electronics\DeskControl\pcb\display\DeskControlDisplay.sch)
|
||||
(date "28-1-2020 11:58:28")
|
||||
(tool "Eeschema (5.1.5)-3")
|
||||
(sheet (number 1) (name /) (tstamps /)
|
||||
(title_block
|
||||
(title)
|
||||
(company)
|
||||
(rev)
|
||||
(date)
|
||||
(source DeskControlDisplay.sch)
|
||||
(comment (number 1) (value ""))
|
||||
(comment (number 2) (value ""))
|
||||
(comment (number 3) (value ""))
|
||||
(comment (number 4) (value "")))))
|
||||
(components
|
||||
(comp (ref SW3)
|
||||
(value Up)
|
||||
(footprint SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM)
|
||||
(libsource (lib Switch) (part SW_Push) (description "Push button switch, generic, two pins"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5D759CF0))
|
||||
(comp (ref SW2)
|
||||
(value Menu)
|
||||
(footprint SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM)
|
||||
(libsource (lib Switch) (part SW_Push) (description "Push button switch, generic, two pins"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5D759CB0))
|
||||
(comp (ref SW1)
|
||||
(value Down)
|
||||
(footprint SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM)
|
||||
(libsource (lib Switch) (part SW_Push) (description "Push button switch, generic, two pins"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5D759C24))
|
||||
(comp (ref J6)
|
||||
(value DM-Slave)
|
||||
(footprint Pin_Headers:Pin_Header_Straight_2x05_Pitch2.54mm)
|
||||
(datasheet ~)
|
||||
(libsource (lib Connector_Generic) (part Conn_02x05_Counter_Clockwise) (description "Generic connector, double row, 02x05, counter clockwise pin numbering scheme (similar to DIP packge numbering), script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5E3531D6))
|
||||
(comp (ref J7)
|
||||
(value ST7789)
|
||||
(footprint Pin_Headers:Pin_Header_Straight_1x07_Pitch2.54mm)
|
||||
(datasheet ~)
|
||||
(libsource (lib Connector) (part Conn_01x07_Female) (description "Generic connector, single row, 01x07, script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5E37279C)))
|
||||
(libparts
|
||||
(libpart (lib Connector) (part Conn_01x07_Female)
|
||||
(description "Generic connector, single row, 01x07, script generated (kicad-library-utils/schlib/autogen/connector/)")
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp Connector*:*_1x??_*))
|
||||
(fields
|
||||
(field (name Reference) J)
|
||||
(field (name Value) Conn_01x07_Female))
|
||||
(pins
|
||||
(pin (num 1) (name Pin_1) (type passive))
|
||||
(pin (num 2) (name Pin_2) (type passive))
|
||||
(pin (num 3) (name Pin_3) (type passive))
|
||||
(pin (num 4) (name Pin_4) (type passive))
|
||||
(pin (num 5) (name Pin_5) (type passive))
|
||||
(pin (num 6) (name Pin_6) (type passive))
|
||||
(pin (num 7) (name Pin_7) (type passive))))
|
||||
(libpart (lib Connector_Generic) (part Conn_02x05_Counter_Clockwise)
|
||||
(description "Generic connector, double row, 02x05, counter clockwise pin numbering scheme (similar to DIP packge numbering), script generated (kicad-library-utils/schlib/autogen/connector/)")
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp Connector*:*_2x??_*))
|
||||
(fields
|
||||
(field (name Reference) J)
|
||||
(field (name Value) Conn_02x05_Counter_Clockwise))
|
||||
(pins
|
||||
(pin (num 1) (name Pin_1) (type passive))
|
||||
(pin (num 2) (name Pin_2) (type passive))
|
||||
(pin (num 3) (name Pin_3) (type passive))
|
||||
(pin (num 4) (name Pin_4) (type passive))
|
||||
(pin (num 5) (name Pin_5) (type passive))
|
||||
(pin (num 6) (name Pin_6) (type passive))
|
||||
(pin (num 7) (name Pin_7) (type passive))
|
||||
(pin (num 8) (name Pin_8) (type passive))
|
||||
(pin (num 9) (name Pin_9) (type passive))
|
||||
(pin (num 10) (name Pin_10) (type passive))))
|
||||
(libpart (lib Switch) (part SW_Push)
|
||||
(description "Push button switch, generic, two pins")
|
||||
(docs ~)
|
||||
(fields
|
||||
(field (name Reference) SW)
|
||||
(field (name Value) SW_Push))
|
||||
(pins
|
||||
(pin (num 1) (name 1) (type passive))
|
||||
(pin (num 2) (name 2) (type passive)))))
|
||||
(libraries
|
||||
(library (logical Connector)
|
||||
(uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Connector.lib"))
|
||||
(library (logical Connector_Generic)
|
||||
(uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Connector_Generic.lib"))
|
||||
(library (logical Switch)
|
||||
(uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Switch.lib")))
|
||||
(nets
|
||||
(net (code 1) (name DM_LCD-DC)
|
||||
(node (ref J7) (pin 6))
|
||||
(node (ref J6) (pin 5)))
|
||||
(net (code 2) (name "Net-(J6-Pad1)")
|
||||
(node (ref SW1) (pin 1))
|
||||
(node (ref J6) (pin 1)))
|
||||
(net (code 3) (name "Net-(J6-Pad2)")
|
||||
(node (ref SW2) (pin 1))
|
||||
(node (ref J6) (pin 2)))
|
||||
(net (code 4) (name "Net-(J6-Pad3)")
|
||||
(node (ref J6) (pin 3))
|
||||
(node (ref SW3) (pin 1)))
|
||||
(net (code 5) (name DM_SCK)
|
||||
(node (ref J6) (pin 8))
|
||||
(node (ref J7) (pin 3)))
|
||||
(net (code 6) (name DM_MOSI)
|
||||
(node (ref J6) (pin 7))
|
||||
(node (ref J7) (pin 4)))
|
||||
(net (code 7) (name DM_LCD-RST)
|
||||
(node (ref J7) (pin 5))
|
||||
(node (ref J6) (pin 6)))
|
||||
(net (code 8) (name DM_3v3)
|
||||
(node (ref J6) (pin 9))
|
||||
(node (ref J7) (pin 2)))
|
||||
(net (code 9) (name DM_LCD-BL)
|
||||
(node (ref J6) (pin 4))
|
||||
(node (ref J7) (pin 7)))
|
||||
(net (code 10) (name DM_GND)
|
||||
(node (ref J6) (pin 10))
|
||||
(node (ref J7) (pin 1))
|
||||
(node (ref SW1) (pin 2))
|
||||
(node (ref SW2) (pin 2))
|
||||
(node (ref SW3) (pin 2)))))
|
249
pcb/display/DeskControlDisplay.pro
Normal file
249
pcb/display/DeskControlDisplay.pro
Normal file
@ -0,0 +1,249 @@
|
||||
update=28-1-2020 10:51:46
|
||||
version=1
|
||||
last_client=kicad
|
||||
[general]
|
||||
version=1
|
||||
RootSch=
|
||||
BoardNm=
|
||||
[cvpcb]
|
||||
version=1
|
||||
NetIExt=net
|
||||
[eeschema]
|
||||
version=1
|
||||
LibDir=
|
||||
[eeschema/libraries]
|
||||
[schematic_editor]
|
||||
version=1
|
||||
PageLayoutDescrFile=
|
||||
PlotDirectoryName=
|
||||
SubpartIdSeparator=0
|
||||
SubpartFirstId=65
|
||||
NetFmtName=Pcbnew
|
||||
SpiceAjustPassiveValues=0
|
||||
LabSize=50
|
||||
ERC_TestSimilarLabels=1
|
||||
[pcbnew]
|
||||
version=1
|
||||
PageLayoutDescrFile=
|
||||
LastNetListRead=
|
||||
CopperLayerCount=2
|
||||
BoardThickness=1.6
|
||||
AllowMicroVias=0
|
||||
AllowBlindVias=0
|
||||
RequireCourtyardDefinitions=0
|
||||
ProhibitOverlappingCourtyards=1
|
||||
MinTrackWidth=0.2
|
||||
MinViaDiameter=0.4
|
||||
MinViaDrill=0.3
|
||||
MinMicroViaDiameter=0.2
|
||||
MinMicroViaDrill=0.09999999999999999
|
||||
MinHoleToHole=0.25
|
||||
TrackWidth1=0.25
|
||||
TrackWidth2=0.5
|
||||
ViaDiameter1=0.8
|
||||
ViaDrill1=0.4
|
||||
dPairWidth1=0.2
|
||||
dPairGap1=0.25
|
||||
dPairViaGap1=0.25
|
||||
SilkLineWidth=0.15
|
||||
SilkTextSizeV=1
|
||||
SilkTextSizeH=1
|
||||
SilkTextSizeThickness=0.15
|
||||
SilkTextItalic=0
|
||||
SilkTextUpright=1
|
||||
CopperLineWidth=0.2
|
||||
CopperTextSizeV=1.5
|
||||
CopperTextSizeH=1.5
|
||||
CopperTextThickness=0.3
|
||||
CopperTextItalic=0
|
||||
CopperTextUpright=1
|
||||
EdgeCutLineWidth=0.15
|
||||
CourtyardLineWidth=0.05
|
||||
OthersLineWidth=0.15
|
||||
OthersTextSizeV=1
|
||||
OthersTextSizeH=1
|
||||
OthersTextSizeThickness=0.15
|
||||
OthersTextItalic=0
|
||||
OthersTextUpright=1
|
||||
SolderMaskClearance=0.051
|
||||
SolderMaskMinWidth=0.25
|
||||
SolderPasteClearance=0
|
||||
SolderPasteRatio=-0
|
||||
[pcbnew/Layer.F.Cu]
|
||||
Name=F.Cu
|
||||
Type=0
|
||||
Enabled=1
|
||||
[pcbnew/Layer.In1.Cu]
|
||||
Name=In1.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In2.Cu]
|
||||
Name=In2.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In3.Cu]
|
||||
Name=In3.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In4.Cu]
|
||||
Name=In4.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In5.Cu]
|
||||
Name=In5.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In6.Cu]
|
||||
Name=In6.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In7.Cu]
|
||||
Name=In7.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In8.Cu]
|
||||
Name=In8.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In9.Cu]
|
||||
Name=In9.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In10.Cu]
|
||||
Name=In10.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In11.Cu]
|
||||
Name=In11.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In12.Cu]
|
||||
Name=In12.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In13.Cu]
|
||||
Name=In13.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In14.Cu]
|
||||
Name=In14.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In15.Cu]
|
||||
Name=In15.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In16.Cu]
|
||||
Name=In16.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In17.Cu]
|
||||
Name=In17.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In18.Cu]
|
||||
Name=In18.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In19.Cu]
|
||||
Name=In19.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In20.Cu]
|
||||
Name=In20.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In21.Cu]
|
||||
Name=In21.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In22.Cu]
|
||||
Name=In22.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In23.Cu]
|
||||
Name=In23.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In24.Cu]
|
||||
Name=In24.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In25.Cu]
|
||||
Name=In25.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In26.Cu]
|
||||
Name=In26.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In27.Cu]
|
||||
Name=In27.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In28.Cu]
|
||||
Name=In28.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In29.Cu]
|
||||
Name=In29.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In30.Cu]
|
||||
Name=In30.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.B.Cu]
|
||||
Name=B.Cu
|
||||
Type=0
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.Adhes]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.Adhes]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.Paste]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.Paste]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.SilkS]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.SilkS]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.Mask]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.Mask]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Dwgs.User]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Cmts.User]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Eco1.User]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Eco2.User]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Edge.Cuts]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Margin]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.CrtYd]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.CrtYd]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.Fab]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.Fab]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Rescue]
|
||||
Enabled=0
|
||||
[pcbnew/Netclasses]
|
||||
[pcbnew/Netclasses/Default]
|
||||
Name=Default
|
||||
Clearance=0.2
|
||||
TrackWidth=0.25
|
||||
ViaDiameter=0.8
|
||||
ViaDrill=0.4
|
||||
uViaDiameter=0.3
|
||||
uViaDrill=0.1
|
||||
dPairWidth=0.2
|
||||
dPairGap=0.25
|
||||
dPairViaGap=0.25
|
131
pcb/display/DeskControlDisplay.sch
Normal file
131
pcb/display/DeskControlDisplay.sch
Normal file
@ -0,0 +1,131 @@
|
||||
EESchema Schematic File Version 4
|
||||
EELAYER 30 0
|
||||
EELAYER END
|
||||
$Descr A4 11693 8268
|
||||
encoding utf-8
|
||||
Sheet 1 1
|
||||
Title ""
|
||||
Date ""
|
||||
Rev ""
|
||||
Comp ""
|
||||
Comment1 ""
|
||||
Comment2 ""
|
||||
Comment3 ""
|
||||
Comment4 ""
|
||||
$EndDescr
|
||||
Wire Wire Line
|
||||
6650 2750 6750 2750
|
||||
Wire Wire Line
|
||||
6750 2750 6750 3150
|
||||
Wire Wire Line
|
||||
6750 3150 6750 3550
|
||||
Connection ~ 6750 3150
|
||||
Wire Wire Line
|
||||
6650 3150 6750 3150
|
||||
Wire Wire Line
|
||||
6650 3550 6750 3550
|
||||
$Comp
|
||||
L Switch:SW_Push SW3
|
||||
U 1 1 5D759CF0
|
||||
P 6450 3550
|
||||
F 0 "SW3" H 6450 3835 50 0000 C CNN
|
||||
F 1 "Up" H 6450 3744 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 6450 3750 50 0001 C CNN
|
||||
F 3 "" H 6450 3750 50 0001 C CNN
|
||||
1 6450 3550
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Switch:SW_Push SW2
|
||||
U 1 1 5D759CB0
|
||||
P 6450 3150
|
||||
F 0 "SW2" H 6450 3435 50 0000 C CNN
|
||||
F 1 "Menu" H 6450 3344 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 6450 3350 50 0001 C CNN
|
||||
F 3 "" H 6450 3350 50 0001 C CNN
|
||||
1 6450 3150
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Switch:SW_Push SW1
|
||||
U 1 1 5D759C24
|
||||
P 6450 2750
|
||||
F 0 "SW1" H 6450 3035 50 0000 C CNN
|
||||
F 1 "Down" H 6450 2944 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 6450 2950 50 0001 C CNN
|
||||
F 3 "" H 6450 2950 50 0001 C CNN
|
||||
1 6450 2750
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Text GLabel 4950 2950 0 50 Input ~ 0
|
||||
DM_SCK
|
||||
Text GLabel 4950 3050 0 50 Input ~ 0
|
||||
DM_MOSI
|
||||
Text GLabel 4950 3150 0 50 Input ~ 0
|
||||
DM_LCD-RST
|
||||
Text GLabel 5450 3150 2 50 Input ~ 0
|
||||
DM_LCD-DC
|
||||
Text GLabel 5450 3050 2 50 Input ~ 0
|
||||
DM_LCD-BL
|
||||
$Comp
|
||||
L Connector_Generic:Conn_02x05_Counter_Clockwise J6
|
||||
U 1 1 5E3531D6
|
||||
P 5250 2950
|
||||
F 0 "J6" H 5250 3300 50 0000 L CNN
|
||||
F 1 "DM-Slave" H 5100 2600 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_2x05_Pitch2.54mm" H 5250 2950 50 0001 C CNN
|
||||
F 3 "~" H 5250 2950 50 0001 C CNN
|
||||
1 5250 2950
|
||||
-1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5450 2750 6250 2750
|
||||
Wire Wire Line
|
||||
5450 2850 6200 2850
|
||||
Wire Wire Line
|
||||
6200 2850 6200 3150
|
||||
Wire Wire Line
|
||||
6200 3150 6250 3150
|
||||
Wire Wire Line
|
||||
5450 2950 6100 2950
|
||||
Wire Wire Line
|
||||
6100 2950 6100 3550
|
||||
Wire Wire Line
|
||||
6100 3550 6250 3550
|
||||
Connection ~ 6750 3550
|
||||
$Comp
|
||||
L Connector:Conn_01x07_Female J7
|
||||
U 1 1 5E37279C
|
||||
P 5800 3850
|
||||
F 0 "J7" H 5828 3876 50 0000 L CNN
|
||||
F 1 "ST7789" H 5828 3785 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_1x07_Pitch2.54mm" H 5800 3850 50 0001 C CNN
|
||||
F 3 "~" H 5800 3850 50 0001 C CNN
|
||||
1 5800 3850
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6750 3700 6750 3550
|
||||
Text GLabel 4950 2850 0 50 Input ~ 0
|
||||
DM_3v3
|
||||
Text Notes 4950 2300 0 50 ~ 0
|
||||
Display / Buttons Module (DM)
|
||||
Text GLabel 4950 2750 0 50 Input ~ 0
|
||||
DM_GND
|
||||
Text GLabel 6750 3700 2 50 Input ~ 0
|
||||
DM_GND
|
||||
Text GLabel 5600 3550 0 50 Input ~ 0
|
||||
DM_GND
|
||||
Text GLabel 5600 3650 0 50 Input ~ 0
|
||||
DM_3v3
|
||||
Text GLabel 5600 3750 0 50 Input ~ 0
|
||||
DM_SCK
|
||||
Text GLabel 5600 3850 0 50 Input ~ 0
|
||||
DM_MOSI
|
||||
Text GLabel 5600 3950 0 50 Input ~ 0
|
||||
DM_LCD-RST
|
||||
Text GLabel 5600 4050 0 50 Input ~ 0
|
||||
DM_LCD-DC
|
||||
Text GLabel 5600 4150 0 50 Input ~ 0
|
||||
DM_LCD-BL
|
||||
$EndSCHEMATC
|
131
pcb/display/DeskControlDisplay.sch-bak
Normal file
131
pcb/display/DeskControlDisplay.sch-bak
Normal file
@ -0,0 +1,131 @@
|
||||
EESchema Schematic File Version 4
|
||||
EELAYER 30 0
|
||||
EELAYER END
|
||||
$Descr A4 11693 8268
|
||||
encoding utf-8
|
||||
Sheet 1 1
|
||||
Title ""
|
||||
Date ""
|
||||
Rev ""
|
||||
Comp ""
|
||||
Comment1 ""
|
||||
Comment2 ""
|
||||
Comment3 ""
|
||||
Comment4 ""
|
||||
$EndDescr
|
||||
Wire Wire Line
|
||||
6650 2750 6750 2750
|
||||
Wire Wire Line
|
||||
6750 2750 6750 3150
|
||||
Wire Wire Line
|
||||
6750 3150 6750 3550
|
||||
Connection ~ 6750 3150
|
||||
Wire Wire Line
|
||||
6650 3150 6750 3150
|
||||
Wire Wire Line
|
||||
6650 3550 6750 3550
|
||||
$Comp
|
||||
L Switch:SW_Push SW3
|
||||
U 1 1 5D759CF0
|
||||
P 6450 3550
|
||||
F 0 "SW3" H 6450 3835 50 0000 C CNN
|
||||
F 1 "Up" H 6450 3744 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 6450 3750 50 0001 C CNN
|
||||
F 3 "" H 6450 3750 50 0001 C CNN
|
||||
1 6450 3550
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Switch:SW_Push SW2
|
||||
U 1 1 5D759CB0
|
||||
P 6450 3150
|
||||
F 0 "SW2" H 6450 3435 50 0000 C CNN
|
||||
F 1 "Menu" H 6450 3344 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 6450 3350 50 0001 C CNN
|
||||
F 3 "" H 6450 3350 50 0001 C CNN
|
||||
1 6450 3150
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Switch:SW_Push SW1
|
||||
U 1 1 5D759C24
|
||||
P 6450 2750
|
||||
F 0 "SW1" H 6450 3035 50 0000 C CNN
|
||||
F 1 "Down" H 6450 2944 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 6450 2950 50 0001 C CNN
|
||||
F 3 "" H 6450 2950 50 0001 C CNN
|
||||
1 6450 2750
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Text GLabel 4950 2950 0 50 Input ~ 0
|
||||
DM_SCK
|
||||
Text GLabel 4950 3050 0 50 Input ~ 0
|
||||
DM_MOSI
|
||||
Text GLabel 4950 3150 0 50 Input ~ 0
|
||||
DM_LCD-RST
|
||||
Text GLabel 5450 3150 2 50 Input ~ 0
|
||||
DM_LCD-DC
|
||||
Text GLabel 5450 3050 2 50 Input ~ 0
|
||||
DM_LCD-BL
|
||||
$Comp
|
||||
L Connector_Generic:Conn_02x05_Counter_Clockwise J6
|
||||
U 1 1 5E3531D6
|
||||
P 5250 2950
|
||||
F 0 "J6" H 5250 3300 50 0000 L CNN
|
||||
F 1 "DM-Slave" H 5100 2600 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_2x05_Pitch2.54mm" H 5250 2950 50 0001 C CNN
|
||||
F 3 "~" H 5250 2950 50 0001 C CNN
|
||||
1 5250 2950
|
||||
-1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5450 2750 6250 2750
|
||||
Wire Wire Line
|
||||
5450 2850 6200 2850
|
||||
Wire Wire Line
|
||||
6200 2850 6200 3150
|
||||
Wire Wire Line
|
||||
6200 3150 6250 3150
|
||||
Wire Wire Line
|
||||
5450 2950 6100 2950
|
||||
Wire Wire Line
|
||||
6100 2950 6100 3550
|
||||
Wire Wire Line
|
||||
6100 3550 6250 3550
|
||||
Connection ~ 6750 3550
|
||||
$Comp
|
||||
L Connector:Conn_01x07_Female J7
|
||||
U 1 1 5E37279C
|
||||
P 5800 3850
|
||||
F 0 "J7" H 5828 3876 50 0000 L CNN
|
||||
F 1 "ST7789" H 5828 3785 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Angled_1x07_Pitch2.54mm" H 5800 3850 50 0001 C CNN
|
||||
F 3 "~" H 5800 3850 50 0001 C CNN
|
||||
1 5800 3850
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6750 3700 6750 3550
|
||||
Text GLabel 4950 2850 0 50 Input ~ 0
|
||||
DM_3v3
|
||||
Text Notes 4950 2300 0 50 ~ 0
|
||||
Display / Buttons Module (DM)
|
||||
Text GLabel 4950 2750 0 50 Input ~ 0
|
||||
DM_GND
|
||||
Text GLabel 6750 3700 2 50 Input ~ 0
|
||||
DM_GND
|
||||
Text GLabel 5600 3550 0 50 Input ~ 0
|
||||
DM_GND
|
||||
Text GLabel 5600 3650 0 50 Input ~ 0
|
||||
DM_3v3
|
||||
Text GLabel 5600 3750 0 50 Input ~ 0
|
||||
DM_SCK
|
||||
Text GLabel 5600 3850 0 50 Input ~ 0
|
||||
DM_MOSI
|
||||
Text GLabel 5600 3950 0 50 Input ~ 0
|
||||
DM_LCD-RST
|
||||
Text GLabel 5600 4050 0 50 Input ~ 0
|
||||
DM_LCD-DC
|
||||
Text GLabel 5600 4150 0 50 Input ~ 0
|
||||
DM_LCD-BL
|
||||
$EndSCHEMATC
|
48602
pcb/display/fp-info-cache
Normal file
48602
pcb/display/fp-info-cache
Normal file
File diff suppressed because it is too large
Load Diff
3
pcb/display/fp-lib-table
Normal file
3
pcb/display/fp-lib-table
Normal file
@ -0,0 +1,3 @@
|
||||
(fp_lib_table
|
||||
(lib (name SMD-BUTTON)(type KiCad)(uri ${KIPRJMOD}/../lib/SMD-BUTTON.pretty)(options "")(descr ""))
|
||||
)
|
3
pcb/display/sym-lib-table
Normal file
3
pcb/display/sym-lib-table
Normal file
@ -0,0 +1,3 @@
|
||||
(sym_lib_table
|
||||
(lib (name SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_)(type Legacy)(uri ${KIPRJMOD}/../lib/SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_.lib)(options "")(descr ""))
|
||||
)
|
@ -1,3 +0,0 @@
|
||||
(fp_lib_table
|
||||
(lib (name SMD-BUTTON)(type KiCad)(uri ${KIPRJMOD}/lib/SMD-BUTTON.pretty)(options "")(descr ""))
|
||||
)
|
3
pcb/lib/AMS1117-5.0.dcm
Normal file
3
pcb/lib/AMS1117-5.0.dcm
Normal file
@ -0,0 +1,3 @@
|
||||
EESchema-DOCLIB Version 2.0
|
||||
#
|
||||
#End Doc Library
|
24
pcb/lib/AMS1117-5.0.lib
Normal file
24
pcb/lib/AMS1117-5.0.lib
Normal file
@ -0,0 +1,24 @@
|
||||
EESchema-LIBRARY Version 2.4
|
||||
#encoding utf-8
|
||||
#
|
||||
# AMS1117-5.0
|
||||
#
|
||||
DEF AMS1117-5.0 U 0 40 Y Y 1 L N
|
||||
F0 "U" -400 220 50 H V L BNN
|
||||
F1 "AMS1117-5.0" -401 -321 50 H V L BNN
|
||||
F2 "SOT229P700X180-4N" 0 0 50 H I L BNN
|
||||
F3 "Sot223/Pkg 1-Amp 5-Volt Low Drop Out Voltage Regulatator" 0 0 50 H I L BNN
|
||||
F4 "Unavailable" 0 0 50 H I L BNN
|
||||
F5 "Advanced Monolithic Systems" 0 0 50 H I L BNN
|
||||
F6 "None" 0 0 50 H I L BNN
|
||||
F7 "None" 0 0 50 H I L BNN
|
||||
F8 "AMS1117-5.0" 0 0 50 H I L BNN
|
||||
DRAW
|
||||
S -400 200 400 -200 0 1 0 f
|
||||
X ADJ/GND 1 600 -100 200 L 40 40 0 0 W
|
||||
X VOUT 2 600 100 200 L 40 40 0 0 O
|
||||
X VIN 3 -600 100 200 R 40 40 0 0 I
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
73
pcb/lib/AMS1117-5.0.mod
Normal file
73
pcb/lib/AMS1117-5.0.mod
Normal file
@ -0,0 +1,73 @@
|
||||
PCBNEW-LibModule-V1
|
||||
# encoding utf-8
|
||||
Units mm
|
||||
$INDEX
|
||||
SOT229P700X180-4N
|
||||
$EndINDEX
|
||||
$MODULE SOT229P700X180-4N
|
||||
Po 0 0 0 15 00000000 00000000 ~~
|
||||
Li SOT229P700X180-4N
|
||||
Cd
|
||||
Sc 00000000
|
||||
At SMD
|
||||
Op 0 0 0
|
||||
.SolderMask 0
|
||||
.SolderPaste 0
|
||||
T0 -1.15242 -5.14581 1.00211 1.00211 0 0.05 N V 21 "SOT229P700X180-4N"
|
||||
T1 -0.516467 5.54073 1.00285 1.00285 0 0.05 N V 21 "VAL**"
|
||||
DS -3.36 1.86 -3.36 -1.86 0.127 24
|
||||
DS -3.36 -1.86 3.36 -1.86 0.127 24
|
||||
DS 3.36 -1.86 3.36 1.86 0.127 24
|
||||
DS 3.36 1.86 -3.36 1.86 0.127 24
|
||||
DS -3.36 1.86 -3.36 -1.86 0.127 21
|
||||
DS 3.36 1.86 3.36 -1.86 0.127 21
|
||||
DS -3.36 1.86 -3.1 1.86 0.127 21
|
||||
DS 3.11 1.86 3.36 1.86 0.127 21
|
||||
DS 3.36 -1.86 1.87 -1.86 0.127 21
|
||||
DS -1.76 -1.86 -3.36 -1.86 0.127 21
|
||||
DC -2.29 4.373 -2.19 4.373 0.2 21
|
||||
DS -3.61 -2.11 -3.61 2.11 0.05 26
|
||||
DS -3.61 2.11 -3.01 2.11 0.05 26
|
||||
DS -3.01 2.11 -3.01 4.25 0.05 26
|
||||
DS -3.01 4.25 3.01 4.25 0.05 26
|
||||
DS 3.01 4.25 3.01 2.11 0.05 26
|
||||
DS 3.01 2.11 3.61 2.11 0.05 26
|
||||
DS 3.61 2.11 3.61 -2.11 0.05 26
|
||||
DS 3.61 -2.11 1.87 -2.11 0.05 26
|
||||
DS 1.87 -2.11 1.87 -4.25 0.05 26
|
||||
DS 1.87 -4.25 -1.87 -4.25 0.05 26
|
||||
DS -1.87 -4.25 -1.87 -2.11 0.05 26
|
||||
DS -1.87 -2.11 -3.61 -2.11 0.05 26
|
||||
$PAD
|
||||
Sh "1" R 0.93 1.31 0 0 0
|
||||
At SMD N 00888000
|
||||
.SolderMask 0
|
||||
.SolderPaste 0
|
||||
Ne 0 ""
|
||||
Po -2.29 3.345
|
||||
$EndPAD
|
||||
$PAD
|
||||
Sh "2" R 0.93 1.31 0 0 0
|
||||
At SMD N 00888000
|
||||
.SolderMask 0
|
||||
.SolderPaste 0
|
||||
Ne 0 ""
|
||||
Po 0 3.345
|
||||
$EndPAD
|
||||
$PAD
|
||||
Sh "3" R 0.93 1.31 0 0 0
|
||||
At SMD N 00888000
|
||||
.SolderMask 0
|
||||
.SolderPaste 0
|
||||
Ne 0 ""
|
||||
Po 2.29 3.345
|
||||
$EndPAD
|
||||
$PAD
|
||||
Sh "4" R 3.24 1.31 0 0 0
|
||||
At SMD N 00888000
|
||||
.SolderMask 0
|
||||
.SolderPaste 0
|
||||
Ne 0 ""
|
||||
Po 0 -3.345
|
||||
$EndPAD
|
||||
$EndMODULE SOT229P700X180-4N
|
14
pcb/lib/DeskControl.pretty/YT2099_2P_straight.kicad_mod
Normal file
14
pcb/lib/DeskControl.pretty/YT2099_2P_straight.kicad_mod
Normal file
@ -0,0 +1,14 @@
|
||||
(module YT2099_2P_straight (layer F.Cu) (tedit 5E2FFBC8)
|
||||
(fp_text reference REF** (at 0 6) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value YT2099_2P_straight (at 0 -5) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start -5.25 -3.5) (end 5.25 -3.5) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 5.25 -3.5) (end 5.25 4.5) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 5.25 4.5) (end -5.25 4.5) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -5.25 4.5) (end -5.25 -3.5) (layer F.SilkS) (width 0.15))
|
||||
(pad 1 thru_hole circle (at -2.5 0) (size 3.5 3.5) (drill 1) (layers *.Cu *.Mask))
|
||||
(pad 2 thru_hole circle (at 2.5 0) (size 3.5 3.5) (drill 1) (layers *.Cu *.Mask))
|
||||
)
|
@ -1,6 +1,25 @@
|
||||
EESchema-LIBRARY Version 2.4
|
||||
#encoding utf-8
|
||||
#
|
||||
# Connector_Generic_Conn_01x02
|
||||
#
|
||||
DEF Connector_Generic_Conn_01x02 J 0 40 Y N 1 F N
|
||||
F0 "J" 0 100 50 H V C CNN
|
||||
F1 "Connector_Generic_Conn_01x02" 0 -200 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
Connector*:*_1x??_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -95 0 -105 1 1 6 N
|
||||
S -50 5 0 -5 1 1 6 N
|
||||
S -50 50 50 -150 1 1 10 f
|
||||
X Pin_1 1 -200 0 150 R 50 50 1 1 P
|
||||
X Pin_2 2 -200 -100 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Connector_Generic_Conn_01x04
|
||||
#
|
||||
DEF Connector_Generic_Conn_01x04 J 0 40 Y N 1 F N
|
||||
@ -24,6 +43,37 @@ X Pin_4 4 -200 -200 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Connector_Generic_Conn_01x08
|
||||
#
|
||||
DEF Connector_Generic_Conn_01x08 J 0 40 Y N 1 F N
|
||||
F0 "J" 0 400 50 H V C CNN
|
||||
F1 "Connector_Generic_Conn_01x08" 0 -500 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
Connector*:*_1x??_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -395 0 -405 1 1 6 N
|
||||
S -50 -295 0 -305 1 1 6 N
|
||||
S -50 -195 0 -205 1 1 6 N
|
||||
S -50 -95 0 -105 1 1 6 N
|
||||
S -50 5 0 -5 1 1 6 N
|
||||
S -50 105 0 95 1 1 6 N
|
||||
S -50 205 0 195 1 1 6 N
|
||||
S -50 305 0 295 1 1 6 N
|
||||
S -50 350 50 -450 1 1 10 f
|
||||
X Pin_1 1 -200 300 150 R 50 50 1 1 P
|
||||
X Pin_2 2 -200 200 150 R 50 50 1 1 P
|
||||
X Pin_3 3 -200 100 150 R 50 50 1 1 P
|
||||
X Pin_4 4 -200 0 150 R 50 50 1 1 P
|
||||
X Pin_5 5 -200 -100 150 R 50 50 1 1 P
|
||||
X Pin_6 6 -200 -200 150 R 50 50 1 1 P
|
||||
X Pin_7 7 -200 -300 150 R 50 50 1 1 P
|
||||
X Pin_8 8 -200 -400 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Connector_Generic_Conn_02x03_Odd_Even
|
||||
#
|
||||
DEF Connector_Generic_Conn_02x03_Odd_Even J 0 40 Y N 1 F N
|
||||
@ -51,6 +101,88 @@ X Pin_6 6 300 -100 150 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Connector_Generic_Conn_02x05_Counter_Clockwise
|
||||
#
|
||||
DEF Connector_Generic_Conn_02x05_Counter_Clockwise J 0 40 Y N 1 F N
|
||||
F0 "J" 50 300 50 H V C CNN
|
||||
F1 "Connector_Generic_Conn_02x05_Counter_Clockwise" 50 -300 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
Connector*:*_2x??_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -195 0 -205 1 1 6 N
|
||||
S -50 -95 0 -105 1 1 6 N
|
||||
S -50 5 0 -5 1 1 6 N
|
||||
S -50 105 0 95 1 1 6 N
|
||||
S -50 205 0 195 1 1 6 N
|
||||
S -50 250 150 -250 1 1 10 f
|
||||
S 150 -195 100 -205 1 1 6 N
|
||||
S 150 -95 100 -105 1 1 6 N
|
||||
S 150 5 100 -5 1 1 6 N
|
||||
S 150 105 100 95 1 1 6 N
|
||||
S 150 205 100 195 1 1 6 N
|
||||
X Pin_1 1 -200 200 150 R 50 50 1 1 P
|
||||
X Pin_10 10 300 200 150 L 50 50 1 1 P
|
||||
X Pin_2 2 -200 100 150 R 50 50 1 1 P
|
||||
X Pin_3 3 -200 0 150 R 50 50 1 1 P
|
||||
X Pin_4 4 -200 -100 150 R 50 50 1 1 P
|
||||
X Pin_5 5 -200 -200 150 R 50 50 1 1 P
|
||||
X Pin_6 6 300 -200 150 L 50 50 1 1 P
|
||||
X Pin_7 7 300 -100 150 L 50 50 1 1 P
|
||||
X Pin_8 8 300 0 150 L 50 50 1 1 P
|
||||
X Pin_9 9 300 100 150 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# DeskControl-rescue_ATmega328-AU-MCU_Microchip_ATmega
|
||||
#
|
||||
DEF DeskControl-rescue_ATmega328-AU-MCU_Microchip_ATmega U 0 20 Y Y 1 F N
|
||||
F0 "U" -500 1450 50 H V L BNN
|
||||
F1 "DeskControl-rescue_ATmega328-AU-MCU_Microchip_ATmega" 100 -1450 50 H V L TNN
|
||||
F2 "Package_QFP:TQFP-32_7x7mm_P0.8mm" 0 0 50 H I C CIN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
TQFP*7x7mm*P0.8mm*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -500 -1400 500 1400 0 1 10 f
|
||||
X PD3 1 600 -800 100 L 50 50 1 1 T
|
||||
X PD6 10 600 -1100 100 L 50 50 1 1 T
|
||||
X PD7 11 600 -1200 100 L 50 50 1 1 T
|
||||
X PB0 12 600 1200 100 L 50 50 1 1 T
|
||||
X PB1 13 600 1100 100 L 50 50 1 1 T
|
||||
X PB2 14 600 1000 100 L 50 50 1 1 T
|
||||
X PB3 15 600 900 100 L 50 50 1 1 T
|
||||
X PB4 16 600 800 100 L 50 50 1 1 T
|
||||
X PB5 17 600 700 100 L 50 50 1 1 T
|
||||
X AVCC 18 100 1500 100 D 50 50 1 1 W
|
||||
X ADC6 19 -600 1000 100 R 50 50 1 1 I
|
||||
X PD4 2 600 -900 100 L 50 50 1 1 T
|
||||
X AREF 20 -600 1200 100 R 50 50 1 1 P
|
||||
X GND 21 0 -1500 100 U 50 50 1 1 P N
|
||||
X ADC7 22 -600 900 100 R 50 50 1 1 I
|
||||
X PC0 23 600 300 100 L 50 50 1 1 T
|
||||
X PC1 24 600 200 100 L 50 50 1 1 T
|
||||
X PC2 25 600 100 100 L 50 50 1 1 T
|
||||
X PC3 26 600 0 100 L 50 50 1 1 T
|
||||
X PC4 27 600 -100 100 L 50 50 1 1 T
|
||||
X PC5 28 600 -200 100 L 50 50 1 1 T
|
||||
X ~RESET~/PC6 29 600 -300 100 L 50 50 1 1 T
|
||||
X GND 3 0 -1500 100 U 50 50 1 1 W
|
||||
X PD0 30 600 -500 100 L 50 50 1 1 T
|
||||
X PD1 31 600 -600 100 L 50 50 1 1 T
|
||||
X PD2 32 600 -700 100 L 50 50 1 1 T
|
||||
X VCC 4 0 1500 100 D 50 50 1 1 W
|
||||
X GND 5 0 -1500 100 U 50 50 1 1 P N
|
||||
X VCC 6 0 1500 100 D 50 50 1 1 P N
|
||||
X XTAL1/PB6 7 600 600 100 L 50 50 1 1 T
|
||||
X XTAL2/PB7 8 600 500 100 L 50 50 1 1 T
|
||||
X PD5 9 600 -1000 100 L 50 50 1 1 T
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Device_C
|
||||
#
|
||||
DEF Device_C C 0 10 N Y 1 F N
|
||||
@ -107,83 +239,53 @@ X ~ 2 0 -150 50 U 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# MCU_Microchip_ATmega_ATmega328-AU
|
||||
# Regulator_Linear_AMS1117-3.3
|
||||
#
|
||||
DEF MCU_Microchip_ATmega_ATmega328-AU U 0 20 Y Y 1 F N
|
||||
F0 "U" -500 1450 50 H V L BNN
|
||||
F1 "MCU_Microchip_ATmega_ATmega328-AU" 100 -1450 50 H V L TNN
|
||||
F2 "Package_QFP:TQFP-32_7x7mm_P0.8mm" 0 0 50 H I C CIN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
ALIAS ATmega48PA-AU ATmega88A-AU ATmega88PA-AU ATmega168A-AU ATmega168PA-AU ATmega328-AU ATmega328P-AU
|
||||
DEF Regulator_Linear_AMS1117-3.3 U 0 10 Y Y 1 F N
|
||||
F0 "U" -150 125 50 H V C CNN
|
||||
F1 "Regulator_Linear_AMS1117-3.3" 0 125 50 H V L CNN
|
||||
F2 "Package_TO_SOT_SMD:SOT-223-3_TabPin2" 0 200 50 H I C CNN
|
||||
F3 "" 100 -250 50 H I C CNN
|
||||
ALIAS AP1117-18 AP1117-25 AP1117-33 AP1117-50 LD1117S33TR_SOT223 LD1117S12TR_SOT223 LD1117S18TR_SOT223 LD1117S25TR_SOT223 LD1117S50TR_SOT223 NCP1117-12_SOT223 NCP1117-1.5_SOT223 NCP1117-1.8_SOT223 NCP1117-2.0_SOT223 NCP1117-2.5_SOT223 NCP1117-2.85_SOT223 NCP1117-3.3_SOT223 NCP1117-5.0_SOT223 AMS1117-1.5 AMS1117-1.8 AMS1117-2.5 AMS1117-2.85 AMS1117-3.3 AMS1117-5.0
|
||||
$FPLIST
|
||||
TQFP*7x7mm*P0.8mm*
|
||||
SOT?223*TabPin2*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -500 -1400 500 1400 0 1 10 f
|
||||
X PD3 1 600 -800 100 L 50 50 1 1 T
|
||||
X PD6 10 600 -1100 100 L 50 50 1 1 T
|
||||
X PD7 11 600 -1200 100 L 50 50 1 1 T
|
||||
X PB0 12 600 1200 100 L 50 50 1 1 T
|
||||
X PB1 13 600 1100 100 L 50 50 1 1 T
|
||||
X PB2 14 600 1000 100 L 50 50 1 1 T
|
||||
X PB3 15 600 900 100 L 50 50 1 1 T
|
||||
X PB4 16 600 800 100 L 50 50 1 1 T
|
||||
X PB5 17 600 700 100 L 50 50 1 1 T
|
||||
X AVCC 18 100 1500 100 D 50 50 1 1 W
|
||||
X ADC6 19 -600 1000 100 R 50 50 1 1 I
|
||||
X PD4 2 600 -900 100 L 50 50 1 1 T
|
||||
X AREF 20 -600 1200 100 R 50 50 1 1 P
|
||||
X GND 21 0 -1500 100 U 50 50 1 1 P N
|
||||
X ADC7 22 -600 900 100 R 50 50 1 1 I
|
||||
X PC0 23 600 300 100 L 50 50 1 1 T
|
||||
X PC1 24 600 200 100 L 50 50 1 1 T
|
||||
X PC2 25 600 100 100 L 50 50 1 1 T
|
||||
X PC3 26 600 0 100 L 50 50 1 1 T
|
||||
X PC4 27 600 -100 100 L 50 50 1 1 T
|
||||
X PC5 28 600 -200 100 L 50 50 1 1 T
|
||||
X ~RESET~/PC6 29 600 -300 100 L 50 50 1 1 T
|
||||
X GND 3 0 -1500 100 U 50 50 1 1 W
|
||||
X PD0 30 600 -500 100 L 50 50 1 1 T
|
||||
X PD1 31 600 -600 100 L 50 50 1 1 T
|
||||
X PD2 32 600 -700 100 L 50 50 1 1 T
|
||||
X VCC 4 0 1500 100 D 50 50 1 1 W
|
||||
X GND 5 0 -1500 100 U 50 50 1 1 P N
|
||||
X VCC 6 0 1500 100 D 50 50 1 1 P N
|
||||
X XTAL1/PB6 7 600 600 100 L 50 50 1 1 T
|
||||
X XTAL2/PB7 8 600 500 100 L 50 50 1 1 T
|
||||
X PD5 9 600 -1000 100 L 50 50 1 1 T
|
||||
S -200 -200 200 75 0 1 10 f
|
||||
X GND 1 0 -300 100 U 50 50 1 1 W
|
||||
X VO 2 300 0 100 L 50 50 1 1 w
|
||||
X VI 3 -300 0 100 R 50 50 1 1 W
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Switch_SW_Push
|
||||
# power_+12V
|
||||
#
|
||||
DEF Switch_SW_Push SW 0 40 N N 1 F N
|
||||
F0 "SW" 50 100 50 H V L CNN
|
||||
F1 "Switch_SW_Push" 0 -60 50 H V C CNN
|
||||
F2 "" 0 200 50 H I C CNN
|
||||
F3 "" 0 200 50 H I C CNN
|
||||
DRAW
|
||||
C -80 0 20 0 1 0 N
|
||||
C 80 0 20 0 1 0 N
|
||||
P 2 0 1 0 0 50 0 120 N
|
||||
P 2 0 1 0 100 50 -100 50 N
|
||||
X 1 1 -200 0 100 R 50 50 0 1 P
|
||||
X 2 2 200 0 100 L 50 50 0 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# power_+5V
|
||||
#
|
||||
DEF power_+5V #PWR 0 0 Y Y 1 F P
|
||||
DEF power_+12V #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -150 50 H I C CNN
|
||||
F1 "power_+5V" 0 140 50 H V C CNN
|
||||
F1 "power_+12V" 0 140 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
DRAW
|
||||
P 2 0 1 0 -30 50 0 100 N
|
||||
P 2 0 1 0 0 0 0 100 N
|
||||
P 2 0 1 0 0 100 30 50 N
|
||||
X +5V 1 0 0 0 U 50 50 1 1 W N
|
||||
X +12V 1 0 0 0 U 50 50 1 1 W N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# power_+3.3V
|
||||
#
|
||||
DEF power_+3.3V #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -150 50 H I C CNN
|
||||
F1 "power_+3.3V" 0 140 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
ALIAS +3.3V
|
||||
DRAW
|
||||
P 2 0 1 0 -30 50 0 100 N
|
||||
P 2 0 1 0 0 0 0 100 N
|
||||
P 2 0 1 0 0 100 30 50 N
|
||||
X +3V3 1 0 0 0 U 50 50 1 1 W N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
3
pcb/main/DeskControl-rescue.dcm
Normal file
3
pcb/main/DeskControl-rescue.dcm
Normal file
@ -0,0 +1,3 @@
|
||||
EESchema-DOCLIB Version 2.0
|
||||
#
|
||||
#End Doc Library
|
51
pcb/main/DeskControl-rescue.lib
Normal file
51
pcb/main/DeskControl-rescue.lib
Normal file
@ -0,0 +1,51 @@
|
||||
EESchema-LIBRARY Version 2.4
|
||||
#encoding utf-8
|
||||
#
|
||||
# ATmega328-AU-MCU_Microchip_ATmega
|
||||
#
|
||||
DEF ATmega328-AU-MCU_Microchip_ATmega U 0 20 Y Y 1 F N
|
||||
F0 "U" -500 1450 50 H V L BNN
|
||||
F1 "ATmega328-AU-MCU_Microchip_ATmega" 100 -1450 50 H V L TNN
|
||||
F2 "Package_QFP:TQFP-32_7x7mm_P0.8mm" 0 0 50 H I C CIN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
TQFP*7x7mm*P0.8mm*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -500 -1400 500 1400 0 1 10 f
|
||||
X PD3 1 600 -800 100 L 50 50 1 1 T
|
||||
X PD6 10 600 -1100 100 L 50 50 1 1 T
|
||||
X PD7 11 600 -1200 100 L 50 50 1 1 T
|
||||
X PB0 12 600 1200 100 L 50 50 1 1 T
|
||||
X PB1 13 600 1100 100 L 50 50 1 1 T
|
||||
X PB2 14 600 1000 100 L 50 50 1 1 T
|
||||
X PB3 15 600 900 100 L 50 50 1 1 T
|
||||
X PB4 16 600 800 100 L 50 50 1 1 T
|
||||
X PB5 17 600 700 100 L 50 50 1 1 T
|
||||
X AVCC 18 100 1500 100 D 50 50 1 1 W
|
||||
X ADC6 19 -600 1000 100 R 50 50 1 1 I
|
||||
X PD4 2 600 -900 100 L 50 50 1 1 T
|
||||
X AREF 20 -600 1200 100 R 50 50 1 1 P
|
||||
X GND 21 0 -1500 100 U 50 50 1 1 P N
|
||||
X ADC7 22 -600 900 100 R 50 50 1 1 I
|
||||
X PC0 23 600 300 100 L 50 50 1 1 T
|
||||
X PC1 24 600 200 100 L 50 50 1 1 T
|
||||
X PC2 25 600 100 100 L 50 50 1 1 T
|
||||
X PC3 26 600 0 100 L 50 50 1 1 T
|
||||
X PC4 27 600 -100 100 L 50 50 1 1 T
|
||||
X PC5 28 600 -200 100 L 50 50 1 1 T
|
||||
X ~RESET~/PC6 29 600 -300 100 L 50 50 1 1 T
|
||||
X GND 3 0 -1500 100 U 50 50 1 1 W
|
||||
X PD0 30 600 -500 100 L 50 50 1 1 T
|
||||
X PD1 31 600 -600 100 L 50 50 1 1 T
|
||||
X PD2 32 600 -700 100 L 50 50 1 1 T
|
||||
X VCC 4 0 1500 100 D 50 50 1 1 W
|
||||
X GND 5 0 -1500 100 U 50 50 1 1 P N
|
||||
X VCC 6 0 1500 100 D 50 50 1 1 P N
|
||||
X XTAL1/PB6 7 600 600 100 L 50 50 1 1 T
|
||||
X XTAL2/PB7 8 600 500 100 L 50 50 1 1 T
|
||||
X PD5 9 600 -1000 100 L 50 50 1 1 T
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
@ -1,4 +1,5 @@
|
||||
EESchema Schematic File Version 4
|
||||
LIBS:DeskControl-cache
|
||||
EELAYER 26 0
|
||||
EELAYER END
|
||||
$Descr A4 11693 8268
|
||||
@ -29,7 +30,7 @@ L Connector_Generic:Conn_01x04 J2
|
||||
U 1 1 5D753B7C
|
||||
P 9400 2250
|
||||
F 0 "J2" H 9479 2242 50 0000 L CNN
|
||||
F 1 "SSD1306" H 9479 2151 50 0000 L CNN
|
||||
F 1 "VL54L0X" H 9479 2151 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm" H 9400 2250 50 0001 C CNN
|
||||
F 3 "~" H 9400 2250 50 0001 C CNN
|
||||
1 9400 2250
|
||||
@ -373,122 +374,241 @@ $EndComp
|
||||
$Comp
|
||||
L Switch:SW_Push SW1
|
||||
U 1 1 5D759C24
|
||||
P 6250 1600
|
||||
F 0 "SW1" H 6250 1885 50 0000 C CNN
|
||||
F 1 "SW_Push" H 6250 1794 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 6250 1800 50 0001 C CNN
|
||||
F 3 "" H 6250 1800 50 0001 C CNN
|
||||
1 6250 1600
|
||||
P 9300 4900
|
||||
F 0 "SW1" H 9300 5185 50 0000 C CNN
|
||||
F 1 "SW_Push" H 9300 5094 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 9300 5100 50 0001 C CNN
|
||||
F 3 "" H 9300 5100 50 0001 C CNN
|
||||
1 9300 4900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Switch:SW_Push SW2
|
||||
U 1 1 5D759CB0
|
||||
P 6250 2000
|
||||
F 0 "SW2" H 6250 2285 50 0000 C CNN
|
||||
F 1 "SW_Push" H 6250 2194 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 6250 2200 50 0001 C CNN
|
||||
F 3 "" H 6250 2200 50 0001 C CNN
|
||||
1 6250 2000
|
||||
P 9300 5300
|
||||
F 0 "SW2" H 9300 5585 50 0000 C CNN
|
||||
F 1 "SW_Push" H 9300 5494 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 9300 5500 50 0001 C CNN
|
||||
F 3 "" H 9300 5500 50 0001 C CNN
|
||||
1 9300 5300
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Switch:SW_Push SW3
|
||||
U 1 1 5D759CF0
|
||||
P 6250 2400
|
||||
F 0 "SW3" H 6250 2685 50 0000 C CNN
|
||||
F 1 "SW_Push" H 6250 2594 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 6250 2600 50 0001 C CNN
|
||||
F 3 "" H 6250 2600 50 0001 C CNN
|
||||
1 6250 2400
|
||||
P 9300 5700
|
||||
F 0 "SW3" H 9300 5985 50 0000 C CNN
|
||||
F 1 "SW_Push" H 9300 5894 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 9300 5900 50 0001 C CNN
|
||||
F 3 "" H 9300 5900 50 0001 C CNN
|
||||
1 9300 5700
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5700 2200 5800 2200
|
||||
Wire Wire Line
|
||||
5800 2200 5800 1600
|
||||
Wire Wire Line
|
||||
5800 1600 6050 1600
|
||||
Wire Wire Line
|
||||
5700 2300 5850 2300
|
||||
Wire Wire Line
|
||||
5850 2300 5850 2000
|
||||
Wire Wire Line
|
||||
5850 2000 6050 2000
|
||||
Wire Wire Line
|
||||
5700 2400 6050 2400
|
||||
$Comp
|
||||
L power:GND #PWR05
|
||||
U 1 1 5D75B49B
|
||||
P 6550 2400
|
||||
F 0 "#PWR05" H 6550 2150 50 0001 C CNN
|
||||
F 1 "GND" H 6555 2227 50 0000 C CNN
|
||||
F 2 "" H 6550 2400 50 0001 C CNN
|
||||
F 3 "" H 6550 2400 50 0001 C CNN
|
||||
1 6550 2400
|
||||
P 9600 5700
|
||||
F 0 "#PWR05" H 9600 5450 50 0001 C CNN
|
||||
F 1 "GND" H 9605 5527 50 0000 C CNN
|
||||
F 2 "" H 9600 5700 50 0001 C CNN
|
||||
F 3 "" H 9600 5700 50 0001 C CNN
|
||||
1 9600 5700
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6450 2400 6550 2400
|
||||
9500 5700 9600 5700
|
||||
Wire Wire Line
|
||||
6450 2000 6550 2000
|
||||
9500 5300 9600 5300
|
||||
Wire Wire Line
|
||||
6550 2000 6550 2400
|
||||
Connection ~ 6550 2400
|
||||
9600 5300 9600 5700
|
||||
Connection ~ 9600 5700
|
||||
Wire Wire Line
|
||||
6450 1600 6550 1600
|
||||
9500 4900 9600 4900
|
||||
Wire Wire Line
|
||||
6550 1600 6550 2000
|
||||
Connection ~ 6550 2000
|
||||
NoConn ~ 5700 3100
|
||||
NoConn ~ 5700 3200
|
||||
NoConn ~ 5700 3300
|
||||
NoConn ~ 5700 3400
|
||||
9600 4900 9600 5300
|
||||
Connection ~ 9600 5300
|
||||
NoConn ~ 5700 4100
|
||||
NoConn ~ 5700 4200
|
||||
NoConn ~ 5700 4300
|
||||
NoConn ~ 5700 4400
|
||||
NoConn ~ 5700 4500
|
||||
NoConn ~ 5700 4600
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x04 J3
|
||||
L Connector_Generic:Conn_01x08 J3
|
||||
U 1 1 5D7651C5
|
||||
P 6500 4000
|
||||
F 0 "J3" H 6650 4050 50 0000 L CNN
|
||||
F 1 "L298" H 6580 3951 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm" H 6500 4000 50 0001 C CNN
|
||||
F 3 "~" H 6500 4000 50 0001 C CNN
|
||||
1 6500 4000
|
||||
P 9650 3850
|
||||
F 0 "J3" H 9800 3900 50 0000 L CNN
|
||||
F 1 "PoluluG2" H 9730 3801 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm" H 9650 3850 50 0001 C CNN
|
||||
F 3 "~" H 9650 3850 50 0001 C CNN
|
||||
1 9650 3850
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR014
|
||||
U 1 1 5D765563
|
||||
P 6150 4200
|
||||
F 0 "#PWR014" H 6150 3950 50 0001 C CNN
|
||||
F 1 "GND" H 6155 4027 50 0000 C CNN
|
||||
F 2 "" H 6150 4200 50 0001 C CNN
|
||||
F 3 "" H 6150 4200 50 0001 C CNN
|
||||
1 6150 4200
|
||||
P 9000 3550
|
||||
F 0 "#PWR014" H 9000 3300 50 0001 C CNN
|
||||
F 1 "GND" H 9005 3377 50 0000 C CNN
|
||||
F 2 "" H 9000 3550 50 0001 C CNN
|
||||
F 3 "" H 9000 3550 50 0001 C CNN
|
||||
1 9000 3550
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5700 3900 6300 3900
|
||||
Wire Wire Line
|
||||
5700 4000 6300 4000
|
||||
9000 3550 9450 3550
|
||||
Text GLabel 5700 2200 2 50 Input ~ 0
|
||||
LCD-DC
|
||||
Text GLabel 5700 2300 2 50 Input ~ 0
|
||||
LCD-RST
|
||||
Text GLabel 5700 4600 2 50 Input ~ 0
|
||||
LCD-BL
|
||||
Text GLabel 5700 3100 2 50 Input ~ 0
|
||||
M-PWM
|
||||
Text GLabel 5700 3200 2 50 Input ~ 0
|
||||
M-DIR
|
||||
Text GLabel 5700 3300 2 50 Input ~ 0
|
||||
M-SLP
|
||||
Text GLabel 5700 3400 2 50 Input ~ 0
|
||||
M-CS
|
||||
Text GLabel 5700 4200 2 50 Input ~ 0
|
||||
BTN-UP
|
||||
Text GLabel 5700 4400 2 50 Input ~ 0
|
||||
BTN-MENU
|
||||
Text GLabel 5700 4500 2 50 Input ~ 0
|
||||
BTN-DOWN
|
||||
Text GLabel 9100 4900 0 50 Input ~ 0
|
||||
BTN-UP
|
||||
Text GLabel 9100 5300 0 50 Input ~ 0
|
||||
BTN-MENU
|
||||
Text GLabel 9100 5700 0 50 Input ~ 0
|
||||
BTN-DOWN
|
||||
Text GLabel 9450 4050 0 50 Input ~ 0
|
||||
M-CS
|
||||
Text GLabel 9450 3850 0 50 Input ~ 0
|
||||
M-SLP
|
||||
Text GLabel 9450 3650 0 50 Input ~ 0
|
||||
M-DIR
|
||||
Text GLabel 9450 3750 0 50 Input ~ 0
|
||||
M-PWM
|
||||
NoConn ~ 9450 3950
|
||||
NoConn ~ 9450 4150
|
||||
$Comp
|
||||
L power:+5V #PWR013
|
||||
U 1 1 5D767927
|
||||
P 6000 4100
|
||||
F 0 "#PWR013" H 6000 3950 50 0001 C CNN
|
||||
F 1 "+5V" H 6015 4273 50 0000 C CNN
|
||||
F 2 "" H 6000 4100 50 0001 C CNN
|
||||
F 3 "" H 6000 4100 50 0001 C CNN
|
||||
1 6000 4100
|
||||
L power:+5V #PWR0101
|
||||
U 1 1 5E2FA39D
|
||||
P 9150 4250
|
||||
F 0 "#PWR0101" H 9150 4100 50 0001 C CNN
|
||||
F 1 "+5V" H 9165 4423 50 0000 C CNN
|
||||
F 2 "" H 9150 4250 50 0001 C CNN
|
||||
F 3 "" H 9150 4250 50 0001 C CNN
|
||||
1 9150 4250
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6000 4100 6300 4100
|
||||
9450 4250 9150 4250
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x02 J4
|
||||
U 1 1 5E2FAE20
|
||||
P 9400 1600
|
||||
F 0 "J4" H 9479 1592 50 0000 L CNN
|
||||
F 1 "PWR" H 9479 1501 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm" H 9400 1600 50 0001 C CNN
|
||||
F 3 "~" H 9400 1600 50 0001 C CNN
|
||||
1 9400 1600
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0102
|
||||
U 1 1 5E2FAFB3
|
||||
P 9100 1700
|
||||
F 0 "#PWR0102" H 9100 1450 50 0001 C CNN
|
||||
F 1 "GND" H 9105 1527 50 0000 C CNN
|
||||
F 2 "" H 9100 1700 50 0001 C CNN
|
||||
F 3 "" H 9100 1700 50 0001 C CNN
|
||||
1 9100 1700
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6150 4200 6300 4200
|
||||
9100 1700 9200 1700
|
||||
Wire Wire Line
|
||||
9200 1600 8900 1600
|
||||
$Comp
|
||||
L power:+12V #PWR0103
|
||||
U 1 1 5E2FB825
|
||||
P 8900 1600
|
||||
F 0 "#PWR0103" H 8900 1450 50 0001 C CNN
|
||||
F 1 "+12V" H 8915 1773 50 0000 C CNN
|
||||
F 2 "" H 8900 1600 50 0001 C CNN
|
||||
F 3 "" H 8900 1600 50 0001 C CNN
|
||||
1 8900 1600
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+12V #PWR0104
|
||||
U 1 1 5E2FBA44
|
||||
P 1400 900
|
||||
F 0 "#PWR0104" H 1400 750 50 0001 C CNN
|
||||
F 1 "+12V" H 1415 1073 50 0000 C CNN
|
||||
F 2 "" H 1400 900 50 0001 C CNN
|
||||
F 3 "" H 1400 900 50 0001 C CNN
|
||||
1 1400 900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:PWR_FLAG #FLG0101
|
||||
U 1 1 5E2FBA8B
|
||||
P 1400 900
|
||||
F 0 "#FLG0101" H 1400 975 50 0001 C CNN
|
||||
F 1 "PWR_FLAG" H 1400 1073 50 0000 C CNN
|
||||
F 2 "" H 1400 900 50 0001 C CNN
|
||||
F 3 "~" H 1400 900 50 0001 C CNN
|
||||
1 1400 900
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
NoConn ~ 5700 3900
|
||||
NoConn ~ 5700 4000
|
||||
NoConn ~ 5700 2400
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x07 J5
|
||||
U 1 1 5E2FE0A5
|
||||
P 7300 5400
|
||||
F 0 "J5" H 7379 5392 50 0000 L CNN
|
||||
F 1 "ST7789" H 7379 5301 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm" H 7300 5400 50 0001 C CNN
|
||||
F 3 "~" H 7300 5400 50 0001 C CNN
|
||||
1 7300 5400
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Text GLabel 7100 5300 0 50 Input ~ 0
|
||||
SCK
|
||||
Text GLabel 7100 5400 0 50 Input ~ 0
|
||||
MOSI
|
||||
Text GLabel 7100 5500 0 50 Input ~ 0
|
||||
LCD-RST
|
||||
Text GLabel 7100 5600 0 50 Input ~ 0
|
||||
LCD-DC
|
||||
$Comp
|
||||
L power:GND #PWR013
|
||||
U 1 1 5E2FE81E
|
||||
P 6450 5100
|
||||
F 0 "#PWR013" H 6450 4850 50 0001 C CNN
|
||||
F 1 "GND" H 6455 4927 50 0000 C CNN
|
||||
F 2 "" H 6450 5100 50 0001 C CNN
|
||||
F 3 "" H 6450 5100 50 0001 C CNN
|
||||
1 6450 5100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+5V #PWR015
|
||||
U 1 1 5E2FEBC9
|
||||
P 6650 5200
|
||||
F 0 "#PWR015" H 6650 5050 50 0001 C CNN
|
||||
F 1 "+5V" H 6665 5373 50 0000 C CNN
|
||||
F 2 "" H 6650 5200 50 0001 C CNN
|
||||
F 3 "" H 6650 5200 50 0001 C CNN
|
||||
1 6650 5200
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6650 5200 7100 5200
|
||||
Wire Wire Line
|
||||
7100 5100 6450 5100
|
||||
Text GLabel 7100 5700 0 50 Input ~ 0
|
||||
LCD-BL
|
||||
$EndSCHEMATC
|
1667
pcb/main/DeskControl.kicad_pcb
Normal file
1667
pcb/main/DeskControl.kicad_pcb
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,8 @@
|
||||
(export (version D)
|
||||
(design
|
||||
(source P:\Electronics\DeskControl\pcb\DeskControl.sch)
|
||||
(date "8-9-2019 20:52:00")
|
||||
(tool "Eeschema (5.0.1)-3")
|
||||
(source P:\Electronics\DeskControl\pcb\main\DeskControl.sch)
|
||||
(date "28-1-2020 11:47:35")
|
||||
(tool "Eeschema (5.1.5)-3")
|
||||
(sheet (number 1) (name /) (tstamps /)
|
||||
(title_block
|
||||
(title)
|
||||
@ -19,12 +19,12 @@
|
||||
(value ATmega328-AU)
|
||||
(footprint Housings_QFP:TQFP-32_7x7mm_Pitch0.8mm)
|
||||
(datasheet http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega328_P%20AVR%20MCU%20with%20picoPower%20Technology%20Data%20Sheet%2040001984A.pdf)
|
||||
(libsource (lib MCU_Microchip_ATmega) (part ATmega328-AU) (description "20MHz, 32kB Flash, 2kB SRAM, 1kB EEPROM, TQFP-32"))
|
||||
(libsource (lib DeskControl-rescue) (part ATmega328-AU-MCU_Microchip_ATmega) (description ""))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5D753A97))
|
||||
(comp (ref J2)
|
||||
(value SSD1306)
|
||||
(footprint Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm)
|
||||
(value VL54L0X)
|
||||
(footprint Connectors_JST:JST_XH_B04B-XH-A_04x2.50mm_Straight)
|
||||
(datasheet ~)
|
||||
(libsource (lib Connector_Generic) (part Conn_01x04) (description "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
@ -85,32 +85,46 @@
|
||||
(libsource (lib Device) (part R) (description Resistor))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5D758534))
|
||||
(comp (ref SW1)
|
||||
(value SW_Push)
|
||||
(footprint SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM)
|
||||
(libsource (lib Switch) (part SW_Push) (description "Push button switch, generic, two pins"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5D759C24))
|
||||
(comp (ref SW2)
|
||||
(value SW_Push)
|
||||
(footprint SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM)
|
||||
(libsource (lib Switch) (part SW_Push) (description "Push button switch, generic, two pins"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5D759CB0))
|
||||
(comp (ref SW3)
|
||||
(value SW_Push)
|
||||
(footprint SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM)
|
||||
(libsource (lib Switch) (part SW_Push) (description "Push button switch, generic, two pins"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5D759CF0))
|
||||
(comp (ref J3)
|
||||
(value L298)
|
||||
(footprint Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm)
|
||||
(comp (ref J4)
|
||||
(value PWR)
|
||||
(footprint DeskControl:YT2099_2P_straight)
|
||||
(datasheet ~)
|
||||
(libsource (lib Connector_Generic) (part Conn_01x04) (description "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(libsource (lib Connector_Generic) (part Conn_01x02) (description "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5D7651C5)))
|
||||
(tstamp 5E2FAE20))
|
||||
(comp (ref J5)
|
||||
(value DM-Master)
|
||||
(footprint Pin_Headers:Pin_Header_Straight_2x05_Pitch2.54mm)
|
||||
(datasheet ~)
|
||||
(libsource (lib Connector_Generic) (part Conn_02x05_Counter_Clockwise) (description "Generic connector, double row, 02x05, counter clockwise pin numbering scheme (similar to DIP packge numbering), script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5E2FE0A5))
|
||||
(comp (ref J3)
|
||||
(value PoluluG2)
|
||||
(footprint Pin_Headers:Pin_Header_Straight_1x08_Pitch2.54mm)
|
||||
(datasheet ~)
|
||||
(libsource (lib Connector_Generic) (part Conn_01x08) (description "Generic connector, single row, 01x08, script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5D7651C5))
|
||||
(comp (ref U2)
|
||||
(value AMS1117-3.3)
|
||||
(footprint TO_SOT_Packages_SMD:SOT-223-3_TabPin2)
|
||||
(datasheet http://www.advanced-monolithic.com/pdf/ds1117.pdf)
|
||||
(libsource (lib Regulator_Linear) (part AMS1117-3.3) (description "1A Low Dropout regulator, positive, 3.3V fixed output, SOT-223"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5E364C51)))
|
||||
(libparts
|
||||
(libpart (lib Connector_Generic) (part Conn_01x02)
|
||||
(description "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)")
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp Connector*:*_1x??_*))
|
||||
(fields
|
||||
(field (name Reference) J)
|
||||
(field (name Value) Conn_01x02))
|
||||
(pins
|
||||
(pin (num 1) (name Pin_1) (type passive))
|
||||
(pin (num 2) (name Pin_2) (type passive))))
|
||||
(libpart (lib Connector_Generic) (part Conn_01x04)
|
||||
(description "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)")
|
||||
(docs ~)
|
||||
@ -124,6 +138,23 @@
|
||||
(pin (num 2) (name Pin_2) (type passive))
|
||||
(pin (num 3) (name Pin_3) (type passive))
|
||||
(pin (num 4) (name Pin_4) (type passive))))
|
||||
(libpart (lib Connector_Generic) (part Conn_01x08)
|
||||
(description "Generic connector, single row, 01x08, script generated (kicad-library-utils/schlib/autogen/connector/)")
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp Connector*:*_1x??_*))
|
||||
(fields
|
||||
(field (name Reference) J)
|
||||
(field (name Value) Conn_01x08))
|
||||
(pins
|
||||
(pin (num 1) (name Pin_1) (type passive))
|
||||
(pin (num 2) (name Pin_2) (type passive))
|
||||
(pin (num 3) (name Pin_3) (type passive))
|
||||
(pin (num 4) (name Pin_4) (type passive))
|
||||
(pin (num 5) (name Pin_5) (type passive))
|
||||
(pin (num 6) (name Pin_6) (type passive))
|
||||
(pin (num 7) (name Pin_7) (type passive))
|
||||
(pin (num 8) (name Pin_8) (type passive))))
|
||||
(libpart (lib Connector_Generic) (part Conn_02x03_Odd_Even)
|
||||
(description "Generic connector, double row, 02x03, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/)")
|
||||
(docs ~)
|
||||
@ -139,55 +170,31 @@
|
||||
(pin (num 4) (name Pin_4) (type passive))
|
||||
(pin (num 5) (name Pin_5) (type passive))
|
||||
(pin (num 6) (name Pin_6) (type passive))))
|
||||
(libpart (lib Device) (part C)
|
||||
(description "Unpolarized capacitor")
|
||||
(libpart (lib Connector_Generic) (part Conn_02x05_Counter_Clockwise)
|
||||
(description "Generic connector, double row, 02x05, counter clockwise pin numbering scheme (similar to DIP packge numbering), script generated (kicad-library-utils/schlib/autogen/connector/)")
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp C_*))
|
||||
(fp Connector*:*_2x??_*))
|
||||
(fields
|
||||
(field (name Reference) C)
|
||||
(field (name Value) C))
|
||||
(field (name Reference) J)
|
||||
(field (name Value) Conn_02x05_Counter_Clockwise))
|
||||
(pins
|
||||
(pin (num 1) (name ~) (type passive))
|
||||
(pin (num 2) (name ~) (type passive))))
|
||||
(libpart (lib Device) (part Crystal)
|
||||
(description "Two pin crystal")
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp Crystal*))
|
||||
(fields
|
||||
(field (name Reference) Y)
|
||||
(field (name Value) Crystal))
|
||||
(pins
|
||||
(pin (num 1) (name 1) (type passive))
|
||||
(pin (num 2) (name 2) (type passive))))
|
||||
(libpart (lib Device) (part R)
|
||||
(description Resistor)
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp R_*))
|
||||
(fields
|
||||
(field (name Reference) R)
|
||||
(field (name Value) R))
|
||||
(pins
|
||||
(pin (num 1) (name ~) (type passive))
|
||||
(pin (num 2) (name ~) (type passive))))
|
||||
(libpart (lib MCU_Microchip_ATmega) (part ATmega48A-AU)
|
||||
(aliases
|
||||
(alias ATmega48PA-AU)
|
||||
(alias ATmega88A-AU)
|
||||
(alias ATmega88PA-AU)
|
||||
(alias ATmega168A-AU)
|
||||
(alias ATmega168PA-AU)
|
||||
(alias ATmega328-AU)
|
||||
(alias ATmega328P-AU))
|
||||
(description "20MHz, 4kB Flash, 512B SRAM, 256B EEPROM, TQFP-32")
|
||||
(docs http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A_88A_168A-Data-Sheet-40002007A.pdf)
|
||||
(pin (num 1) (name Pin_1) (type passive))
|
||||
(pin (num 2) (name Pin_2) (type passive))
|
||||
(pin (num 3) (name Pin_3) (type passive))
|
||||
(pin (num 4) (name Pin_4) (type passive))
|
||||
(pin (num 5) (name Pin_5) (type passive))
|
||||
(pin (num 6) (name Pin_6) (type passive))
|
||||
(pin (num 7) (name Pin_7) (type passive))
|
||||
(pin (num 8) (name Pin_8) (type passive))
|
||||
(pin (num 9) (name Pin_9) (type passive))
|
||||
(pin (num 10) (name Pin_10) (type passive))))
|
||||
(libpart (lib DeskControl-rescue) (part ATmega328-AU-MCU_Microchip_ATmega)
|
||||
(footprints
|
||||
(fp TQFP*7x7mm*P0.8mm*))
|
||||
(fields
|
||||
(field (name Reference) U)
|
||||
(field (name Value) ATmega48A-AU)
|
||||
(field (name Value) ATmega328-AU-MCU_Microchip_ATmega)
|
||||
(field (name Footprint) Package_QFP:TQFP-32_7x7mm_P0.8mm))
|
||||
(pins
|
||||
(pin (num 1) (name PD3) (type 3state))
|
||||
@ -222,115 +229,193 @@
|
||||
(pin (num 30) (name PD0) (type 3state))
|
||||
(pin (num 31) (name PD1) (type 3state))
|
||||
(pin (num 32) (name PD2) (type 3state))))
|
||||
(libpart (lib Switch) (part SW_Push)
|
||||
(description "Push button switch, generic, two pins")
|
||||
(libpart (lib Device) (part C)
|
||||
(description "Unpolarized capacitor")
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp C_*))
|
||||
(fields
|
||||
(field (name Reference) SW)
|
||||
(field (name Value) SW_Push))
|
||||
(field (name Reference) C)
|
||||
(field (name Value) C))
|
||||
(pins
|
||||
(pin (num 1) (name ~) (type passive))
|
||||
(pin (num 2) (name ~) (type passive))))
|
||||
(libpart (lib Device) (part Crystal)
|
||||
(description "Two pin crystal")
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp Crystal*))
|
||||
(fields
|
||||
(field (name Reference) Y)
|
||||
(field (name Value) Crystal))
|
||||
(pins
|
||||
(pin (num 1) (name 1) (type passive))
|
||||
(pin (num 2) (name 2) (type passive)))))
|
||||
(pin (num 2) (name 2) (type passive))))
|
||||
(libpart (lib Device) (part R)
|
||||
(description Resistor)
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp R_*))
|
||||
(fields
|
||||
(field (name Reference) R)
|
||||
(field (name Value) R))
|
||||
(pins
|
||||
(pin (num 1) (name ~) (type passive))
|
||||
(pin (num 2) (name ~) (type passive))))
|
||||
(libpart (lib Regulator_Linear) (part AP1117-15)
|
||||
(aliases
|
||||
(alias AP1117-18)
|
||||
(alias AP1117-25)
|
||||
(alias AP1117-33)
|
||||
(alias AP1117-50)
|
||||
(alias LD1117S33TR_SOT223)
|
||||
(alias LD1117S12TR_SOT223)
|
||||
(alias LD1117S18TR_SOT223)
|
||||
(alias LD1117S25TR_SOT223)
|
||||
(alias LD1117S50TR_SOT223)
|
||||
(alias NCP1117-12_SOT223)
|
||||
(alias NCP1117-1.5_SOT223)
|
||||
(alias NCP1117-1.8_SOT223)
|
||||
(alias NCP1117-2.0_SOT223)
|
||||
(alias NCP1117-2.5_SOT223)
|
||||
(alias NCP1117-2.85_SOT223)
|
||||
(alias NCP1117-3.3_SOT223)
|
||||
(alias NCP1117-5.0_SOT223)
|
||||
(alias AMS1117-1.5)
|
||||
(alias AMS1117-1.8)
|
||||
(alias AMS1117-2.5)
|
||||
(alias AMS1117-2.85)
|
||||
(alias AMS1117-3.3)
|
||||
(alias AMS1117-5.0))
|
||||
(description "1A Low Dropout regulator, positive, 1.5V fixed output, SOT-223")
|
||||
(docs http://www.diodes.com/datasheets/AP1117.pdf)
|
||||
(footprints
|
||||
(fp SOT?223*TabPin2*))
|
||||
(fields
|
||||
(field (name Reference) U)
|
||||
(field (name Value) AP1117-15)
|
||||
(field (name Footprint) Package_TO_SOT_SMD:SOT-223-3_TabPin2))
|
||||
(pins
|
||||
(pin (num 1) (name GND) (type power_in))
|
||||
(pin (num 2) (name VO) (type power_out))
|
||||
(pin (num 3) (name VI) (type power_in)))))
|
||||
(libraries
|
||||
(library (logical Connector_Generic)
|
||||
(uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Connector_Generic.lib"))
|
||||
(library (logical DeskControl-rescue)
|
||||
(uri P:\Electronics\DeskControl\pcb\main/DeskControl-rescue.lib))
|
||||
(library (logical Device)
|
||||
(uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Device.lib"))
|
||||
(library (logical MCU_Microchip_ATmega)
|
||||
(uri "C:\\Program Files\\KiCad\\share\\kicad\\library/MCU_Microchip_ATmega.lib"))
|
||||
(library (logical Switch)
|
||||
(uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Switch.lib")))
|
||||
(library (logical Regulator_Linear)
|
||||
(uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Regulator_Linear.lib")))
|
||||
(nets
|
||||
(net (code 1) (name +5V)
|
||||
(node (ref U1) (pin 6))
|
||||
(node (ref C1) (pin 2))
|
||||
(node (ref C2) (pin 2))
|
||||
(node (ref J1) (pin 2))
|
||||
(node (ref U1) (pin 18))
|
||||
(node (ref J3) (pin 3))
|
||||
(node (ref U1) (pin 4))
|
||||
(node (ref R1) (pin 1))
|
||||
(node (ref J2) (pin 3)))
|
||||
(net (code 2) (name RST)
|
||||
(node (ref U1) (pin 29))
|
||||
(node (ref R1) (pin 2))
|
||||
(node (ref J1) (pin 5)))
|
||||
(net (code 3) (name "Net-(U1-Pad19)")
|
||||
(node (ref U1) (pin 19)))
|
||||
(net (code 4) (name "Net-(U1-Pad22)")
|
||||
(node (ref U1) (pin 22)))
|
||||
(net (code 5) (name GND)
|
||||
(node (ref J2) (pin 4))
|
||||
(node (ref J1) (pin 6))
|
||||
(node (ref U1) (pin 3))
|
||||
(node (ref U1) (pin 5))
|
||||
(node (ref C3) (pin 1))
|
||||
(net (code 1) (name "Net-(J3-Pad5)")
|
||||
(node (ref J3) (pin 5)))
|
||||
(net (code 2) (name "Net-(J3-Pad7)")
|
||||
(node (ref J3) (pin 7)))
|
||||
(net (code 3) (name +12V)
|
||||
(node (ref J4) (pin 1))
|
||||
(node (ref U2) (pin 3)))
|
||||
(net (code 4) (name GND)
|
||||
(node (ref U1) (pin 21))
|
||||
(node (ref C1) (pin 1))
|
||||
(node (ref C2) (pin 1))
|
||||
(node (ref J3) (pin 4))
|
||||
(node (ref J1) (pin 6))
|
||||
(node (ref J5) (pin 1))
|
||||
(node (ref J3) (pin 1))
|
||||
(node (ref U2) (pin 1))
|
||||
(node (ref J2) (pin 2))
|
||||
(node (ref U1) (pin 5))
|
||||
(node (ref J4) (pin 2))
|
||||
(node (ref C5) (pin 2))
|
||||
(node (ref C4) (pin 2))
|
||||
(node (ref SW3) (pin 2))
|
||||
(node (ref SW1) (pin 2))
|
||||
(node (ref SW2) (pin 2)))
|
||||
(net (code 6) (name "Net-(C5-Pad1)")
|
||||
(node (ref C5) (pin 1))
|
||||
(node (ref U1) (pin 8))
|
||||
(node (ref XTAL1) (pin 1)))
|
||||
(net (code 7) (name "Net-(C4-Pad1)")
|
||||
(node (ref XTAL1) (pin 2))
|
||||
(node (ref U1) (pin 7))
|
||||
(node (ref C4) (pin 1)))
|
||||
(net (code 8) (name "Net-(J3-Pad2)")
|
||||
(node (ref U1) (pin 31))
|
||||
(node (ref J3) (pin 2)))
|
||||
(net (code 9) (name "Net-(U1-Pad23)")
|
||||
(node (ref U1) (pin 23)))
|
||||
(net (code 10) (name "Net-(U1-Pad24)")
|
||||
(node (ref U1) (pin 24)))
|
||||
(net (code 11) (name "Net-(U1-Pad25)")
|
||||
(node (ref U1) (pin 25)))
|
||||
(net (code 12) (name "Net-(U1-Pad26)")
|
||||
(node (ref U1) (pin 26)))
|
||||
(net (code 13) (name "Net-(U1-Pad32)")
|
||||
(node (ref C3) (pin 1))
|
||||
(node (ref C2) (pin 1))
|
||||
(node (ref C1) (pin 1))
|
||||
(node (ref U1) (pin 3)))
|
||||
(net (code 5) (name RST)
|
||||
(node (ref U1) (pin 29))
|
||||
(node (ref J1) (pin 5))
|
||||
(node (ref R1) (pin 2)))
|
||||
(net (code 6) (name "Net-(U1-Pad32)")
|
||||
(node (ref U1) (pin 32)))
|
||||
(net (code 14) (name "Net-(U1-Pad1)")
|
||||
(node (ref U1) (pin 1)))
|
||||
(net (code 15) (name "Net-(U1-Pad2)")
|
||||
(net (code 7) (name "Net-(U1-Pad2)")
|
||||
(node (ref U1) (pin 2)))
|
||||
(net (code 16) (name "Net-(U1-Pad9)")
|
||||
(node (ref U1) (pin 9)))
|
||||
(net (code 17) (name "Net-(U1-Pad10)")
|
||||
(node (ref U1) (pin 10)))
|
||||
(net (code 18) (name "Net-(U1-Pad11)")
|
||||
(node (ref U1) (pin 11)))
|
||||
(net (code 19) (name "Net-(J3-Pad1)")
|
||||
(node (ref U1) (pin 30))
|
||||
(node (ref J3) (pin 1)))
|
||||
(net (code 20) (name "Net-(SW2-Pad1)")
|
||||
(node (ref SW2) (pin 1))
|
||||
(node (ref U1) (pin 13)))
|
||||
(net (code 21) (name "Net-(SW3-Pad1)")
|
||||
(node (ref SW3) (pin 1))
|
||||
(net (code 8) (name M-PWM)
|
||||
(node (ref U1) (pin 23))
|
||||
(node (ref J3) (pin 3)))
|
||||
(net (code 9) (name "Net-(U1-Pad30)")
|
||||
(node (ref U1) (pin 30)))
|
||||
(net (code 10) (name "Net-(U1-Pad31)")
|
||||
(node (ref U1) (pin 31)))
|
||||
(net (code 11) (name "Net-(U1-Pad14)")
|
||||
(node (ref U1) (pin 14)))
|
||||
(net (code 22) (name "Net-(SW1-Pad1)")
|
||||
(net (code 12) (name BTN-MENU)
|
||||
(node (ref J5) (pin 9))
|
||||
(node (ref U1) (pin 9)))
|
||||
(net (code 13) (name +3V3)
|
||||
(node (ref U1) (pin 18))
|
||||
(node (ref U1) (pin 4))
|
||||
(node (ref R1) (pin 1))
|
||||
(node (ref C1) (pin 2))
|
||||
(node (ref C2) (pin 2))
|
||||
(node (ref J3) (pin 8))
|
||||
(node (ref U1) (pin 6))
|
||||
(node (ref J5) (pin 2))
|
||||
(node (ref J2) (pin 1))
|
||||
(node (ref U2) (pin 2))
|
||||
(node (ref J1) (pin 2)))
|
||||
(net (code 14) (name BTN-DOWN)
|
||||
(node (ref J5) (pin 10))
|
||||
(node (ref U1) (pin 10)))
|
||||
(net (code 15) (name LCD-BL)
|
||||
(node (ref J5) (pin 7))
|
||||
(node (ref U1) (pin 11)))
|
||||
(net (code 16) (name LCD-DC)
|
||||
(node (ref U1) (pin 12))
|
||||
(node (ref SW1) (pin 1)))
|
||||
(net (code 23) (name MOSI)
|
||||
(node (ref J5) (pin 6)))
|
||||
(net (code 17) (name LCD-RST)
|
||||
(node (ref U1) (pin 13))
|
||||
(node (ref J5) (pin 5)))
|
||||
(net (code 18) (name MOSI)
|
||||
(node (ref J1) (pin 4))
|
||||
(node (ref U1) (pin 15)))
|
||||
(net (code 24) (name MISO)
|
||||
(node (ref J1) (pin 1))
|
||||
(node (ref U1) (pin 16)))
|
||||
(net (code 25) (name SCK)
|
||||
(node (ref U1) (pin 15))
|
||||
(node (ref J5) (pin 4)))
|
||||
(net (code 19) (name MISO)
|
||||
(node (ref U1) (pin 16))
|
||||
(node (ref J1) (pin 1)))
|
||||
(net (code 20) (name SCK)
|
||||
(node (ref U1) (pin 17))
|
||||
(node (ref J5) (pin 3))
|
||||
(node (ref J1) (pin 3)))
|
||||
(net (code 26) (name "Net-(C3-Pad2)")
|
||||
(node (ref C3) (pin 2))
|
||||
(node (ref U1) (pin 20)))
|
||||
(net (code 27) (name SDA)
|
||||
(net (code 21) (name "Net-(U1-Pad19)")
|
||||
(node (ref U1) (pin 19)))
|
||||
(net (code 22) (name "Net-(U1-Pad22)")
|
||||
(node (ref U1) (pin 22)))
|
||||
(net (code 23) (name M-DIR)
|
||||
(node (ref U1) (pin 24))
|
||||
(node (ref J3) (pin 2)))
|
||||
(net (code 24) (name M-SLP)
|
||||
(node (ref J3) (pin 4))
|
||||
(node (ref U1) (pin 25)))
|
||||
(net (code 25) (name M-CS)
|
||||
(node (ref J3) (pin 6))
|
||||
(node (ref U1) (pin 26)))
|
||||
(net (code 26) (name SDA)
|
||||
(node (ref U1) (pin 27))
|
||||
(node (ref J2) (pin 1)))
|
||||
(net (code 28) (name SCL)
|
||||
(node (ref J2) (pin 4)))
|
||||
(net (code 27) (name SCL)
|
||||
(node (ref U1) (pin 28))
|
||||
(node (ref J2) (pin 2)))))
|
||||
(node (ref J2) (pin 3)))
|
||||
(net (code 28) (name "Net-(C5-Pad1)")
|
||||
(node (ref U1) (pin 8))
|
||||
(node (ref XTAL1) (pin 1))
|
||||
(node (ref C5) (pin 1)))
|
||||
(net (code 29) (name "Net-(C4-Pad1)")
|
||||
(node (ref U1) (pin 7))
|
||||
(node (ref XTAL1) (pin 2))
|
||||
(node (ref C4) (pin 1)))
|
||||
(net (code 30) (name "Net-(C3-Pad2)")
|
||||
(node (ref U1) (pin 20))
|
||||
(node (ref C3) (pin 2)))
|
||||
(net (code 31) (name BTN-UP)
|
||||
(node (ref U1) (pin 1))
|
||||
(node (ref J5) (pin 8)))))
|
249
pcb/main/DeskControl.pro
Normal file
249
pcb/main/DeskControl.pro
Normal file
@ -0,0 +1,249 @@
|
||||
update=28-1-2020 10:51:46
|
||||
version=1
|
||||
last_client=kicad
|
||||
[general]
|
||||
version=1
|
||||
RootSch=
|
||||
BoardNm=
|
||||
[cvpcb]
|
||||
version=1
|
||||
NetIExt=net
|
||||
[eeschema]
|
||||
version=1
|
||||
LibDir=
|
||||
[eeschema/libraries]
|
||||
[schematic_editor]
|
||||
version=1
|
||||
PageLayoutDescrFile=
|
||||
PlotDirectoryName=
|
||||
SubpartIdSeparator=0
|
||||
SubpartFirstId=65
|
||||
NetFmtName=Pcbnew
|
||||
SpiceAjustPassiveValues=0
|
||||
LabSize=50
|
||||
ERC_TestSimilarLabels=1
|
||||
[pcbnew]
|
||||
version=1
|
||||
PageLayoutDescrFile=
|
||||
LastNetListRead=
|
||||
CopperLayerCount=2
|
||||
BoardThickness=1.6
|
||||
AllowMicroVias=0
|
||||
AllowBlindVias=0
|
||||
RequireCourtyardDefinitions=0
|
||||
ProhibitOverlappingCourtyards=1
|
||||
MinTrackWidth=0.2
|
||||
MinViaDiameter=0.4
|
||||
MinViaDrill=0.3
|
||||
MinMicroViaDiameter=0.2
|
||||
MinMicroViaDrill=0.09999999999999999
|
||||
MinHoleToHole=0.25
|
||||
TrackWidth1=0.25
|
||||
TrackWidth2=0.5
|
||||
ViaDiameter1=0.8
|
||||
ViaDrill1=0.4
|
||||
dPairWidth1=0.2
|
||||
dPairGap1=0.25
|
||||
dPairViaGap1=0.25
|
||||
SilkLineWidth=0.15
|
||||
SilkTextSizeV=1
|
||||
SilkTextSizeH=1
|
||||
SilkTextSizeThickness=0.15
|
||||
SilkTextItalic=0
|
||||
SilkTextUpright=1
|
||||
CopperLineWidth=0.2
|
||||
CopperTextSizeV=1.5
|
||||
CopperTextSizeH=1.5
|
||||
CopperTextThickness=0.3
|
||||
CopperTextItalic=0
|
||||
CopperTextUpright=1
|
||||
EdgeCutLineWidth=0.15
|
||||
CourtyardLineWidth=0.05
|
||||
OthersLineWidth=0.15
|
||||
OthersTextSizeV=1
|
||||
OthersTextSizeH=1
|
||||
OthersTextSizeThickness=0.15
|
||||
OthersTextItalic=0
|
||||
OthersTextUpright=1
|
||||
SolderMaskClearance=0.051
|
||||
SolderMaskMinWidth=0.25
|
||||
SolderPasteClearance=0
|
||||
SolderPasteRatio=-0
|
||||
[pcbnew/Layer.F.Cu]
|
||||
Name=F.Cu
|
||||
Type=0
|
||||
Enabled=1
|
||||
[pcbnew/Layer.In1.Cu]
|
||||
Name=In1.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In2.Cu]
|
||||
Name=In2.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In3.Cu]
|
||||
Name=In3.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In4.Cu]
|
||||
Name=In4.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In5.Cu]
|
||||
Name=In5.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In6.Cu]
|
||||
Name=In6.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In7.Cu]
|
||||
Name=In7.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In8.Cu]
|
||||
Name=In8.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In9.Cu]
|
||||
Name=In9.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In10.Cu]
|
||||
Name=In10.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In11.Cu]
|
||||
Name=In11.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In12.Cu]
|
||||
Name=In12.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In13.Cu]
|
||||
Name=In13.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In14.Cu]
|
||||
Name=In14.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In15.Cu]
|
||||
Name=In15.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In16.Cu]
|
||||
Name=In16.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In17.Cu]
|
||||
Name=In17.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In18.Cu]
|
||||
Name=In18.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In19.Cu]
|
||||
Name=In19.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In20.Cu]
|
||||
Name=In20.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In21.Cu]
|
||||
Name=In21.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In22.Cu]
|
||||
Name=In22.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In23.Cu]
|
||||
Name=In23.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In24.Cu]
|
||||
Name=In24.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In25.Cu]
|
||||
Name=In25.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In26.Cu]
|
||||
Name=In26.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In27.Cu]
|
||||
Name=In27.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In28.Cu]
|
||||
Name=In28.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In29.Cu]
|
||||
Name=In29.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In30.Cu]
|
||||
Name=In30.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.B.Cu]
|
||||
Name=B.Cu
|
||||
Type=0
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.Adhes]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.Adhes]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.Paste]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.Paste]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.SilkS]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.SilkS]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.Mask]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.Mask]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Dwgs.User]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Cmts.User]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Eco1.User]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Eco2.User]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Edge.Cuts]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Margin]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.CrtYd]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.CrtYd]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.Fab]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.Fab]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Rescue]
|
||||
Enabled=0
|
||||
[pcbnew/Netclasses]
|
||||
[pcbnew/Netclasses/Default]
|
||||
Name=Default
|
||||
Clearance=0.2
|
||||
TrackWidth=0.25
|
||||
ViaDiameter=0.8
|
||||
ViaDrill=0.4
|
||||
uViaDiameter=0.3
|
||||
uViaDrill=0.1
|
||||
dPairWidth=0.2
|
||||
dPairGap=0.25
|
||||
dPairViaGap=0.25
|
579
pcb/main/DeskControl.sch
Normal file
579
pcb/main/DeskControl.sch
Normal file
@ -0,0 +1,579 @@
|
||||
EESchema Schematic File Version 4
|
||||
EELAYER 30 0
|
||||
EELAYER END
|
||||
$Descr A4 11693 8268
|
||||
encoding utf-8
|
||||
Sheet 1 1
|
||||
Title ""
|
||||
Date ""
|
||||
Rev ""
|
||||
Comp ""
|
||||
Comment1 ""
|
||||
Comment2 ""
|
||||
Comment3 ""
|
||||
Comment4 ""
|
||||
$EndDescr
|
||||
$Comp
|
||||
L DeskControl-rescue:ATmega328-AU-MCU_Microchip_ATmega U1
|
||||
U 1 1 5D753A97
|
||||
P 3500 3650
|
||||
F 0 "U1" H 2600 2300 50 0000 C CNN
|
||||
F 1 "ATmega328-AU" H 2600 2400 50 0000 C CNN
|
||||
F 2 "Housings_QFP:TQFP-32_7x7mm_Pitch0.8mm" H 3500 3650 50 0001 C CIN
|
||||
F 3 "http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega328_P%20AVR%20MCU%20with%20picoPower%20Technology%20Data%20Sheet%2040001984A.pdf" H 3500 3650 50 0001 C CNN
|
||||
1 3500 3650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x04 J2
|
||||
U 1 1 5D753B7C
|
||||
P 6600 2850
|
||||
F 0 "J2" H 6679 2842 50 0000 L CNN
|
||||
F 1 "VL54L0X" H 6679 2751 50 0000 L CNN
|
||||
F 2 "Connectors_JST:JST_XH_B04B-XH-A_04x2.50mm_Straight" H 6600 2850 50 0001 C CNN
|
||||
F 3 "~" H 6600 2850 50 0001 C CNN
|
||||
1 6600 2850
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector_Generic:Conn_02x03_Odd_Even J1
|
||||
U 1 1 5D753DE7
|
||||
P 6500 3650
|
||||
F 0 "J1" H 6550 3967 50 0000 C CNN
|
||||
F 1 "PROG" H 6550 3876 50 0000 C CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_2x03_Pitch2.54mm" H 6500 3650 50 0001 C CNN
|
||||
F 3 "~" H 6500 3650 50 0001 C CNN
|
||||
1 6500 3650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Text GLabel 6300 3550 0 50 Input ~ 0
|
||||
MISO
|
||||
Text GLabel 6300 3650 0 50 Input ~ 0
|
||||
SCK
|
||||
Text GLabel 6300 3750 0 50 Input ~ 0
|
||||
RST
|
||||
Text GLabel 6800 3650 2 50 Input ~ 0
|
||||
MOSI
|
||||
$Comp
|
||||
L power:GND #PWR09
|
||||
U 1 1 5D753EEB
|
||||
P 6900 3750
|
||||
F 0 "#PWR09" H 6900 3500 50 0001 C CNN
|
||||
F 1 "GND" H 6905 3577 50 0000 C CNN
|
||||
F 2 "" H 6900 3750 50 0001 C CNN
|
||||
F 3 "" H 6900 3750 50 0001 C CNN
|
||||
1 6900 3750
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6800 3550 6900 3550
|
||||
Wire Wire Line
|
||||
6800 3750 6900 3750
|
||||
$Comp
|
||||
L power:GND #PWR06
|
||||
U 1 1 5D753F42
|
||||
P 6000 2850
|
||||
F 0 "#PWR06" H 6000 2600 50 0001 C CNN
|
||||
F 1 "GND" H 6005 2677 50 0000 C CNN
|
||||
F 2 "" H 6000 2850 50 0001 C CNN
|
||||
F 3 "" H 6000 2850 50 0001 C CNN
|
||||
1 6000 2850
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6000 2850 6400 2850
|
||||
Wire Wire Line
|
||||
6400 2750 6000 2750
|
||||
Text GLabel 6400 3050 0 50 Input ~ 0
|
||||
SDA
|
||||
Text GLabel 6400 2950 0 50 Input ~ 0
|
||||
SCL
|
||||
$Comp
|
||||
L power:GND #PWR03
|
||||
U 1 1 5D754134
|
||||
P 900 1450
|
||||
F 0 "#PWR03" H 900 1200 50 0001 C CNN
|
||||
F 1 "GND" H 905 1277 50 0000 C CNN
|
||||
F 2 "" H 900 1450 50 0001 C CNN
|
||||
F 3 "" H 900 1450 50 0001 C CNN
|
||||
1 900 1450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:PWR_FLAG #FLG02
|
||||
U 1 1 5D754186
|
||||
P 900 1450
|
||||
F 0 "#FLG02" H 900 1525 50 0001 C CNN
|
||||
F 1 "PWR_FLAG" H 900 1624 50 0000 C CNN
|
||||
F 2 "" H 900 1450 50 0001 C CNN
|
||||
F 3 "~" H 900 1450 50 0001 C CNN
|
||||
1 900 1450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C3
|
||||
U 1 1 5D754323
|
||||
P 2300 2600
|
||||
F 0 "C3" H 2185 2554 50 0000 R CNN
|
||||
F 1 "100nF" H 2185 2645 50 0000 R CNN
|
||||
F 2 "Capacitors_SMD:C_1206" H 2338 2450 50 0001 C CNN
|
||||
F 3 "~" H 2300 2600 50 0001 C CNN
|
||||
1 2300 2600
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR07
|
||||
U 1 1 5D75441A
|
||||
P 1750 3000
|
||||
F 0 "#PWR07" H 1750 2750 50 0001 C CNN
|
||||
F 1 "GND" H 1755 2827 50 0000 C CNN
|
||||
F 2 "" H 1750 3000 50 0001 C CNN
|
||||
F 3 "" H 1750 3000 50 0001 C CNN
|
||||
1 1750 3000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C2
|
||||
U 1 1 5D7545D2
|
||||
P 1750 2600
|
||||
F 0 "C2" H 1635 2554 50 0000 R CNN
|
||||
F 1 "100nF" H 1635 2645 50 0000 R CNN
|
||||
F 2 "Capacitors_SMD:C_1206" H 1788 2450 50 0001 C CNN
|
||||
F 3 "~" H 1750 2600 50 0001 C CNN
|
||||
1 1750 2600
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C1
|
||||
U 1 1 5D75463E
|
||||
P 1200 2600
|
||||
F 0 "C1" H 1085 2554 50 0000 R CNN
|
||||
F 1 "10uF" H 1085 2645 50 0000 R CNN
|
||||
F 2 "Capacitors_Tantalum_SMD:CP_Tantalum_Case-D_EIA-7343-31_Reflow" H 1238 2450 50 0001 C CNN
|
||||
F 3 "~" H 1200 2600 50 0001 C CNN
|
||||
1 1200 2600
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
1200 2450 1500 2450
|
||||
Wire Wire Line
|
||||
2300 2450 2900 2450
|
||||
Connection ~ 1500 2450
|
||||
Wire Wire Line
|
||||
1500 2450 1750 2450
|
||||
Wire Wire Line
|
||||
3600 2150 3600 2000
|
||||
Wire Wire Line
|
||||
3600 2000 3500 2000
|
||||
Wire Wire Line
|
||||
3500 2000 3500 2150
|
||||
Wire Wire Line
|
||||
3500 2000 1500 2000
|
||||
Connection ~ 3500 2000
|
||||
Wire Wire Line
|
||||
2300 2750 2300 2900
|
||||
Wire Wire Line
|
||||
2300 2900 1750 2900
|
||||
Wire Wire Line
|
||||
1750 2900 1750 3000
|
||||
Wire Wire Line
|
||||
1750 2750 1750 2900
|
||||
Connection ~ 1750 2900
|
||||
Wire Wire Line
|
||||
1200 2750 1200 2900
|
||||
Wire Wire Line
|
||||
1200 2900 1750 2900
|
||||
NoConn ~ 2900 2650
|
||||
NoConn ~ 2900 2750
|
||||
Wire Wire Line
|
||||
1500 1650 1500 2000
|
||||
Connection ~ 1500 2000
|
||||
Wire Wire Line
|
||||
1500 2000 1500 2450
|
||||
$Comp
|
||||
L Device:C C4
|
||||
U 1 1 5D75696A
|
||||
P 5200 2950
|
||||
F 0 "C4" V 5452 2950 50 0000 C CNN
|
||||
F 1 "33pF" V 5361 2950 50 0000 C CNN
|
||||
F 2 "Capacitors_SMD:C_1206" H 5238 2800 50 0001 C CNN
|
||||
F 3 "~" H 5200 2950 50 0001 C CNN
|
||||
1 5200 2950
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C5
|
||||
U 1 1 5D756A0E
|
||||
P 5200 3400
|
||||
F 0 "C5" V 5452 3400 50 0000 C CNN
|
||||
F 1 "33pF" V 5361 3400 50 0000 C CNN
|
||||
F 2 "Capacitors_SMD:C_1206" H 5238 3250 50 0001 C CNN
|
||||
F 3 "~" H 5200 3400 50 0001 C CNN
|
||||
1 5200 3400
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR010
|
||||
U 1 1 5D756A8A
|
||||
P 5500 3550
|
||||
F 0 "#PWR010" H 5500 3300 50 0001 C CNN
|
||||
F 1 "GND" H 5505 3377 50 0000 C CNN
|
||||
F 2 "" H 5500 3550 50 0001 C CNN
|
||||
F 3 "" H 5500 3550 50 0001 C CNN
|
||||
1 5500 3550
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5350 3400 5500 3400
|
||||
Wire Wire Line
|
||||
5500 3400 5500 3550
|
||||
Wire Wire Line
|
||||
5350 2950 5500 2950
|
||||
Wire Wire Line
|
||||
5500 2950 5500 3400
|
||||
Connection ~ 5500 3400
|
||||
$Comp
|
||||
L Device:Crystal XTAL1
|
||||
U 1 1 5D756FAB
|
||||
P 4900 3200
|
||||
F 0 "XTAL1" V 4950 3550 50 0000 R CNN
|
||||
F 1 "16 Mhz" V 4850 3600 50 0000 R CNN
|
||||
F 2 "Crystals:Crystal_HC49-U_Vertical" H 4900 3200 50 0001 C CNN
|
||||
F 3 "~" H 4900 3200 50 0001 C CNN
|
||||
1 4900 3200
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
4900 3050 4900 2950
|
||||
Wire Wire Line
|
||||
4900 2950 5050 2950
|
||||
Wire Wire Line
|
||||
4900 3350 4900 3400
|
||||
Wire Wire Line
|
||||
4900 3400 5050 3400
|
||||
Wire Wire Line
|
||||
4100 3050 4450 3050
|
||||
Wire Wire Line
|
||||
4450 3050 4450 2950
|
||||
Wire Wire Line
|
||||
4450 2950 4900 2950
|
||||
Connection ~ 4900 2950
|
||||
Wire Wire Line
|
||||
4100 3150 4450 3150
|
||||
Wire Wire Line
|
||||
4450 3150 4450 3400
|
||||
Wire Wire Line
|
||||
4450 3400 4900 3400
|
||||
Connection ~ 4900 3400
|
||||
Text GLabel 4100 3750 2 50 Input ~ 0
|
||||
SDA
|
||||
Text GLabel 4100 3850 2 50 Input ~ 0
|
||||
SCL
|
||||
Text GLabel 4100 2750 2 50 Input ~ 0
|
||||
MOSI
|
||||
Text GLabel 4100 2850 2 50 Input ~ 0
|
||||
MISO
|
||||
Text GLabel 4100 2950 2 50 Input ~ 0
|
||||
SCK
|
||||
$Comp
|
||||
L Device:R R1
|
||||
U 1 1 5D758534
|
||||
P 4650 3800
|
||||
F 0 "R1" H 4720 3846 50 0000 L CNN
|
||||
F 1 "10k" H 4720 3755 50 0000 L CNN
|
||||
F 2 "Resistors_SMD:R_0603" V 4580 3800 50 0001 C CNN
|
||||
F 3 "~" H 4650 3800 50 0001 C CNN
|
||||
1 4650 3800
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
4100 3950 4650 3950
|
||||
Text GLabel 4850 3950 2 50 Input ~ 0
|
||||
RST
|
||||
Wire Wire Line
|
||||
4650 3950 4850 3950
|
||||
Connection ~ 4650 3950
|
||||
$Comp
|
||||
L power:GND #PWR012
|
||||
U 1 1 5D75920D
|
||||
P 3500 5150
|
||||
F 0 "#PWR012" H 3500 4900 50 0001 C CNN
|
||||
F 1 "GND" H 3505 4977 50 0000 C CNN
|
||||
F 2 "" H 3500 5150 50 0001 C CNN
|
||||
F 3 "" H 3500 5150 50 0001 C CNN
|
||||
1 3500 5150
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
NoConn ~ 4100 4350
|
||||
NoConn ~ 4100 4550
|
||||
$Comp
|
||||
L power:GND #PWR014
|
||||
U 1 1 5D765563
|
||||
P 5950 4250
|
||||
F 0 "#PWR014" H 5950 4000 50 0001 C CNN
|
||||
F 1 "GND" H 5955 4077 50 0000 C CNN
|
||||
F 2 "" H 5950 4250 50 0001 C CNN
|
||||
F 3 "" H 5950 4250 50 0001 C CNN
|
||||
1 5950 4250
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5950 4250 6400 4250
|
||||
Text GLabel 4100 2450 2 50 Input ~ 0
|
||||
LCD-DC
|
||||
Text GLabel 4100 2550 2 50 Input ~ 0
|
||||
LCD-RST
|
||||
Text GLabel 4100 4850 2 50 Input ~ 0
|
||||
LCD-BL
|
||||
Text GLabel 4100 3350 2 50 Input ~ 0
|
||||
M-PWM
|
||||
Text GLabel 4100 3450 2 50 Input ~ 0
|
||||
M-DIR
|
||||
Text GLabel 4100 3550 2 50 Input ~ 0
|
||||
M-SLP
|
||||
Text GLabel 4100 3650 2 50 Input ~ 0
|
||||
M-CS
|
||||
Text GLabel 4100 4450 2 50 Input ~ 0
|
||||
BTN-UP
|
||||
Text GLabel 4100 4650 2 50 Input ~ 0
|
||||
BTN-MENU
|
||||
Text GLabel 4100 4750 2 50 Input ~ 0
|
||||
BTN-DOWN
|
||||
Text GLabel 6800 1550 2 50 Input ~ 0
|
||||
BTN-UP
|
||||
Text GLabel 6800 1450 2 50 Input ~ 0
|
||||
BTN-MENU
|
||||
Text GLabel 6800 1350 2 50 Input ~ 0
|
||||
BTN-DOWN
|
||||
Text GLabel 6400 4750 0 50 Input ~ 0
|
||||
M-CS
|
||||
Text GLabel 6400 4550 0 50 Input ~ 0
|
||||
M-SLP
|
||||
Text GLabel 6400 4350 0 50 Input ~ 0
|
||||
M-DIR
|
||||
Text GLabel 6400 4450 0 50 Input ~ 0
|
||||
M-PWM
|
||||
NoConn ~ 6400 4650
|
||||
NoConn ~ 6400 4850
|
||||
Wire Wire Line
|
||||
6400 4950 5950 4950
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x02 J4
|
||||
U 1 1 5E2FAE20
|
||||
P 6600 2200
|
||||
F 0 "J4" H 6679 2192 50 0000 L CNN
|
||||
F 1 "PWR" H 6679 2101 50 0000 L CNN
|
||||
F 2 "DeskControl:YT2099_2P_straight" H 6600 2200 50 0001 C CNN
|
||||
F 3 "~" H 6600 2200 50 0001 C CNN
|
||||
1 6600 2200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0102
|
||||
U 1 1 5E2FAFB3
|
||||
P 6300 2300
|
||||
F 0 "#PWR0102" H 6300 2050 50 0001 C CNN
|
||||
F 1 "GND" H 6305 2127 50 0000 C CNN
|
||||
F 2 "" H 6300 2300 50 0001 C CNN
|
||||
F 3 "" H 6300 2300 50 0001 C CNN
|
||||
1 6300 2300
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6300 2300 6400 2300
|
||||
Wire Wire Line
|
||||
6400 2200 6300 2200
|
||||
$Comp
|
||||
L power:+12V #PWR0103
|
||||
U 1 1 5E2FB825
|
||||
P 6300 2200
|
||||
F 0 "#PWR0103" H 6300 2050 50 0001 C CNN
|
||||
F 1 "+12V" H 6315 2373 50 0000 C CNN
|
||||
F 2 "" H 6300 2200 50 0001 C CNN
|
||||
F 3 "" H 6300 2200 50 0001 C CNN
|
||||
1 6300 2200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+12V #PWR0104
|
||||
U 1 1 5E2FBA44
|
||||
P 900 850
|
||||
F 0 "#PWR0104" H 900 700 50 0001 C CNN
|
||||
F 1 "+12V" H 915 1023 50 0000 C CNN
|
||||
F 2 "" H 900 850 50 0001 C CNN
|
||||
F 3 "" H 900 850 50 0001 C CNN
|
||||
1 900 850
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:PWR_FLAG #FLG0101
|
||||
U 1 1 5E2FBA8B
|
||||
P 900 850
|
||||
F 0 "#FLG0101" H 900 925 50 0001 C CNN
|
||||
F 1 "PWR_FLAG" H 900 1023 50 0000 C CNN
|
||||
F 2 "" H 900 850 50 0001 C CNN
|
||||
F 3 "~" H 900 850 50 0001 C CNN
|
||||
1 900 850
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
NoConn ~ 4100 4150
|
||||
NoConn ~ 4100 4250
|
||||
NoConn ~ 4100 2650
|
||||
$Comp
|
||||
L Connector_Generic:Conn_02x05_Counter_Clockwise J5
|
||||
U 1 1 5E2FE0A5
|
||||
P 6500 1550
|
||||
F 0 "J5" H 6500 1900 50 0000 L CNN
|
||||
F 1 "DM-Master" H 6350 1200 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_2x05_Pitch2.54mm" H 6500 1550 50 0001 C CNN
|
||||
F 3 "~" H 6500 1550 50 0001 C CNN
|
||||
1 6500 1550
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Text GLabel 6300 1550 0 50 Input ~ 0
|
||||
SCK
|
||||
Text GLabel 6300 1650 0 50 Input ~ 0
|
||||
MOSI
|
||||
Text GLabel 6300 1750 0 50 Input ~ 0
|
||||
LCD-RST
|
||||
Text GLabel 6800 1750 2 50 Input ~ 0
|
||||
LCD-DC
|
||||
$Comp
|
||||
L power:GND #PWR013
|
||||
U 1 1 5E2FE81E
|
||||
P 5650 1350
|
||||
F 0 "#PWR013" H 5650 1100 50 0001 C CNN
|
||||
F 1 "GND" H 5655 1177 50 0000 C CNN
|
||||
F 2 "" H 5650 1350 50 0001 C CNN
|
||||
F 3 "" H 5650 1350 50 0001 C CNN
|
||||
1 5650 1350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5850 1450 6300 1450
|
||||
Wire Wire Line
|
||||
6300 1350 5650 1350
|
||||
Text GLabel 6800 1650 2 50 Input ~ 0
|
||||
LCD-BL
|
||||
$Comp
|
||||
L power:+3.3V #PWR0105
|
||||
U 1 1 5E300371
|
||||
P 1500 1650
|
||||
F 0 "#PWR0105" H 1500 1500 50 0001 C CNN
|
||||
F 1 "+3.3V" H 1515 1823 50 0000 C CNN
|
||||
F 2 "" H 1500 1650 50 0001 C CNN
|
||||
F 3 "" H 1500 1650 50 0001 C CNN
|
||||
1 1500 1650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3.3V #PWR0106
|
||||
U 1 1 5E30051D
|
||||
P 6000 2750
|
||||
F 0 "#PWR0106" H 6000 2600 50 0001 C CNN
|
||||
F 1 "+3.3V" H 6015 2923 50 0000 C CNN
|
||||
F 2 "" H 6000 2750 50 0001 C CNN
|
||||
F 3 "" H 6000 2750 50 0001 C CNN
|
||||
1 6000 2750
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3.3V #PWR0107
|
||||
U 1 1 5E3005E9
|
||||
P 6900 3550
|
||||
F 0 "#PWR0107" H 6900 3400 50 0001 C CNN
|
||||
F 1 "+3.3V" H 6915 3723 50 0000 C CNN
|
||||
F 2 "" H 6900 3550 50 0001 C CNN
|
||||
F 3 "" H 6900 3550 50 0001 C CNN
|
||||
1 6900 3550
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3.3V #PWR0108
|
||||
U 1 1 5E300625
|
||||
P 5950 4950
|
||||
F 0 "#PWR0108" H 5950 4800 50 0001 C CNN
|
||||
F 1 "+3.3V" H 5965 5123 50 0000 C CNN
|
||||
F 2 "" H 5950 4950 50 0001 C CNN
|
||||
F 3 "" H 5950 4950 50 0001 C CNN
|
||||
1 5950 4950
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3.3V #PWR0109
|
||||
U 1 1 5E301977
|
||||
P 5850 1450
|
||||
F 0 "#PWR0109" H 5850 1300 50 0001 C CNN
|
||||
F 1 "+3.3V" H 5865 1623 50 0000 C CNN
|
||||
F 2 "" H 5850 1450 50 0001 C CNN
|
||||
F 3 "" H 5850 1450 50 0001 C CNN
|
||||
1 5850 1450
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3.3V #PWR0110
|
||||
U 1 1 5E302F90
|
||||
P 4650 3650
|
||||
F 0 "#PWR0110" H 4650 3500 50 0001 C CNN
|
||||
F 1 "+3.3V" H 4665 3823 50 0000 C CNN
|
||||
F 2 "" H 4650 3650 50 0001 C CNN
|
||||
F 3 "" H 4650 3650 50 0001 C CNN
|
||||
1 4650 3650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x08 J3
|
||||
U 1 1 5D7651C5
|
||||
P 6600 4550
|
||||
F 0 "J3" H 6750 4600 50 0000 L CNN
|
||||
F 1 "PoluluG2" H 6680 4501 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_1x08_Pitch2.54mm" H 6600 4550 50 0001 C CNN
|
||||
F 3 "~" H 6600 4550 50 0001 C CNN
|
||||
1 6600 4550
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Regulator_Linear:AMS1117-3.3 U2
|
||||
U 1 1 5E364C51
|
||||
P 3500 900
|
||||
F 0 "U2" H 3500 1142 50 0000 C CNN
|
||||
F 1 "AMS1117-3.3" H 3500 1051 50 0000 C CNN
|
||||
F 2 "TO_SOT_Packages_SMD:SOT-223-3_TabPin2" H 3500 1100 50 0001 C CNN
|
||||
F 3 "http://www.advanced-monolithic.com/pdf/ds1117.pdf" H 3600 650 50 0001 C CNN
|
||||
1 3500 900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR04
|
||||
U 1 1 5E36C536
|
||||
P 3500 1200
|
||||
F 0 "#PWR04" H 3500 950 50 0001 C CNN
|
||||
F 1 "GND" H 3505 1027 50 0000 C CNN
|
||||
F 2 "" H 3500 1200 50 0001 C CNN
|
||||
F 3 "" H 3500 1200 50 0001 C CNN
|
||||
1 3500 1200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3.3V #PWR02
|
||||
U 1 1 5E36CA78
|
||||
P 3800 900
|
||||
F 0 "#PWR02" H 3800 750 50 0001 C CNN
|
||||
F 1 "+3.3V" H 3815 1073 50 0000 C CNN
|
||||
F 2 "" H 3800 900 50 0001 C CNN
|
||||
F 3 "" H 3800 900 50 0001 C CNN
|
||||
1 3800 900
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+12V #PWR01
|
||||
U 1 1 5E36CE40
|
||||
P 3200 900
|
||||
F 0 "#PWR01" H 3200 750 50 0001 C CNN
|
||||
F 1 "+12V" H 3215 1073 50 0000 C CNN
|
||||
F 2 "" H 3200 900 50 0001 C CNN
|
||||
F 3 "" H 3200 900 50 0001 C CNN
|
||||
1 3200 900
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
$EndSCHEMATC
|
694
pcb/main/DeskControl.sch-bak
Normal file
694
pcb/main/DeskControl.sch-bak
Normal file
@ -0,0 +1,694 @@
|
||||
EESchema Schematic File Version 4
|
||||
EELAYER 30 0
|
||||
EELAYER END
|
||||
$Descr A4 11693 8268
|
||||
encoding utf-8
|
||||
Sheet 1 1
|
||||
Title ""
|
||||
Date ""
|
||||
Rev ""
|
||||
Comp ""
|
||||
Comment1 ""
|
||||
Comment2 ""
|
||||
Comment3 ""
|
||||
Comment4 ""
|
||||
$EndDescr
|
||||
$Comp
|
||||
L DeskControl-rescue:ATmega328-AU-MCU_Microchip_ATmega U1
|
||||
U 1 1 5D753A97
|
||||
P 3500 3650
|
||||
F 0 "U1" H 2600 2300 50 0000 C CNN
|
||||
F 1 "ATmega328-AU" H 2600 2400 50 0000 C CNN
|
||||
F 2 "Housings_QFP:TQFP-32_7x7mm_Pitch0.8mm" H 3500 3650 50 0001 C CIN
|
||||
F 3 "http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega328_P%20AVR%20MCU%20with%20picoPower%20Technology%20Data%20Sheet%2040001984A.pdf" H 3500 3650 50 0001 C CNN
|
||||
1 3500 3650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x04 J2
|
||||
U 1 1 5D753B7C
|
||||
P 6600 2850
|
||||
F 0 "J2" H 6679 2842 50 0000 L CNN
|
||||
F 1 "VL54L0X" H 6679 2751 50 0000 L CNN
|
||||
F 2 "Connectors_JST:JST_XH_B04B-XH-A_04x2.50mm_Straight" H 6600 2850 50 0001 C CNN
|
||||
F 3 "~" H 6600 2850 50 0001 C CNN
|
||||
1 6600 2850
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector_Generic:Conn_02x03_Odd_Even J1
|
||||
U 1 1 5D753DE7
|
||||
P 6500 3650
|
||||
F 0 "J1" H 6550 3967 50 0000 C CNN
|
||||
F 1 "PROG" H 6550 3876 50 0000 C CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_2x03_Pitch2.54mm" H 6500 3650 50 0001 C CNN
|
||||
F 3 "~" H 6500 3650 50 0001 C CNN
|
||||
1 6500 3650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Text GLabel 6300 3550 0 50 Input ~ 0
|
||||
MISO
|
||||
Text GLabel 6300 3650 0 50 Input ~ 0
|
||||
SCK
|
||||
Text GLabel 6300 3750 0 50 Input ~ 0
|
||||
RST
|
||||
Text GLabel 6800 3650 2 50 Input ~ 0
|
||||
MOSI
|
||||
$Comp
|
||||
L power:GND #PWR09
|
||||
U 1 1 5D753EEB
|
||||
P 6900 3750
|
||||
F 0 "#PWR09" H 6900 3500 50 0001 C CNN
|
||||
F 1 "GND" H 6905 3577 50 0000 C CNN
|
||||
F 2 "" H 6900 3750 50 0001 C CNN
|
||||
F 3 "" H 6900 3750 50 0001 C CNN
|
||||
1 6900 3750
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6800 3550 6900 3550
|
||||
Wire Wire Line
|
||||
6800 3750 6900 3750
|
||||
$Comp
|
||||
L power:GND #PWR06
|
||||
U 1 1 5D753F42
|
||||
P 6000 2850
|
||||
F 0 "#PWR06" H 6000 2600 50 0001 C CNN
|
||||
F 1 "GND" H 6005 2677 50 0000 C CNN
|
||||
F 2 "" H 6000 2850 50 0001 C CNN
|
||||
F 3 "" H 6000 2850 50 0001 C CNN
|
||||
1 6000 2850
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6000 2850 6400 2850
|
||||
Wire Wire Line
|
||||
6400 2750 6000 2750
|
||||
Text GLabel 6400 3050 0 50 Input ~ 0
|
||||
SDA
|
||||
Text GLabel 6400 2950 0 50 Input ~ 0
|
||||
SCL
|
||||
$Comp
|
||||
L power:GND #PWR03
|
||||
U 1 1 5D754134
|
||||
P 900 1450
|
||||
F 0 "#PWR03" H 900 1200 50 0001 C CNN
|
||||
F 1 "GND" H 905 1277 50 0000 C CNN
|
||||
F 2 "" H 900 1450 50 0001 C CNN
|
||||
F 3 "" H 900 1450 50 0001 C CNN
|
||||
1 900 1450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:PWR_FLAG #FLG02
|
||||
U 1 1 5D754186
|
||||
P 900 1450
|
||||
F 0 "#FLG02" H 900 1525 50 0001 C CNN
|
||||
F 1 "PWR_FLAG" H 900 1624 50 0000 C CNN
|
||||
F 2 "" H 900 1450 50 0001 C CNN
|
||||
F 3 "~" H 900 1450 50 0001 C CNN
|
||||
1 900 1450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C3
|
||||
U 1 1 5D754323
|
||||
P 2300 2600
|
||||
F 0 "C3" H 2185 2554 50 0000 R CNN
|
||||
F 1 "100nF" H 2185 2645 50 0000 R CNN
|
||||
F 2 "Capacitors_SMD:C_1206" H 2338 2450 50 0001 C CNN
|
||||
F 3 "~" H 2300 2600 50 0001 C CNN
|
||||
1 2300 2600
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR07
|
||||
U 1 1 5D75441A
|
||||
P 1750 3000
|
||||
F 0 "#PWR07" H 1750 2750 50 0001 C CNN
|
||||
F 1 "GND" H 1755 2827 50 0000 C CNN
|
||||
F 2 "" H 1750 3000 50 0001 C CNN
|
||||
F 3 "" H 1750 3000 50 0001 C CNN
|
||||
1 1750 3000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C2
|
||||
U 1 1 5D7545D2
|
||||
P 1750 2600
|
||||
F 0 "C2" H 1635 2554 50 0000 R CNN
|
||||
F 1 "100nF" H 1635 2645 50 0000 R CNN
|
||||
F 2 "Capacitors_SMD:C_1206" H 1788 2450 50 0001 C CNN
|
||||
F 3 "~" H 1750 2600 50 0001 C CNN
|
||||
1 1750 2600
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C1
|
||||
U 1 1 5D75463E
|
||||
P 1200 2600
|
||||
F 0 "C1" H 1085 2554 50 0000 R CNN
|
||||
F 1 "10uF" H 1085 2645 50 0000 R CNN
|
||||
F 2 "Capacitors_Tantalum_SMD:CP_Tantalum_Case-D_EIA-7343-31_Reflow" H 1238 2450 50 0001 C CNN
|
||||
F 3 "~" H 1200 2600 50 0001 C CNN
|
||||
1 1200 2600
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
1200 2450 1500 2450
|
||||
Wire Wire Line
|
||||
2300 2450 2900 2450
|
||||
Connection ~ 1500 2450
|
||||
Wire Wire Line
|
||||
1500 2450 1750 2450
|
||||
Wire Wire Line
|
||||
3600 2150 3600 2000
|
||||
Wire Wire Line
|
||||
3600 2000 3500 2000
|
||||
Wire Wire Line
|
||||
3500 2000 3500 2150
|
||||
Wire Wire Line
|
||||
3500 2000 1500 2000
|
||||
Connection ~ 3500 2000
|
||||
Wire Wire Line
|
||||
2300 2750 2300 2900
|
||||
Wire Wire Line
|
||||
2300 2900 1750 2900
|
||||
Wire Wire Line
|
||||
1750 2900 1750 3000
|
||||
Wire Wire Line
|
||||
1750 2750 1750 2900
|
||||
Connection ~ 1750 2900
|
||||
Wire Wire Line
|
||||
1200 2750 1200 2900
|
||||
Wire Wire Line
|
||||
1200 2900 1750 2900
|
||||
NoConn ~ 2900 2650
|
||||
NoConn ~ 2900 2750
|
||||
Wire Wire Line
|
||||
1500 1650 1500 2000
|
||||
Connection ~ 1500 2000
|
||||
Wire Wire Line
|
||||
1500 2000 1500 2450
|
||||
$Comp
|
||||
L Device:C C4
|
||||
U 1 1 5D75696A
|
||||
P 5200 2950
|
||||
F 0 "C4" V 5452 2950 50 0000 C CNN
|
||||
F 1 "33pF" V 5361 2950 50 0000 C CNN
|
||||
F 2 "Capacitors_SMD:C_1206" H 5238 2800 50 0001 C CNN
|
||||
F 3 "~" H 5200 2950 50 0001 C CNN
|
||||
1 5200 2950
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C5
|
||||
U 1 1 5D756A0E
|
||||
P 5200 3400
|
||||
F 0 "C5" V 5452 3400 50 0000 C CNN
|
||||
F 1 "33pF" V 5361 3400 50 0000 C CNN
|
||||
F 2 "Capacitors_SMD:C_1206" H 5238 3250 50 0001 C CNN
|
||||
F 3 "~" H 5200 3400 50 0001 C CNN
|
||||
1 5200 3400
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR010
|
||||
U 1 1 5D756A8A
|
||||
P 5500 3550
|
||||
F 0 "#PWR010" H 5500 3300 50 0001 C CNN
|
||||
F 1 "GND" H 5505 3377 50 0000 C CNN
|
||||
F 2 "" H 5500 3550 50 0001 C CNN
|
||||
F 3 "" H 5500 3550 50 0001 C CNN
|
||||
1 5500 3550
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5350 3400 5500 3400
|
||||
Wire Wire Line
|
||||
5500 3400 5500 3550
|
||||
Wire Wire Line
|
||||
5350 2950 5500 2950
|
||||
Wire Wire Line
|
||||
5500 2950 5500 3400
|
||||
Connection ~ 5500 3400
|
||||
$Comp
|
||||
L Device:Crystal XTAL1
|
||||
U 1 1 5D756FAB
|
||||
P 4900 3200
|
||||
F 0 "XTAL1" V 4950 3550 50 0000 R CNN
|
||||
F 1 "16 Mhz" V 4850 3600 50 0000 R CNN
|
||||
F 2 "Crystals:Crystal_HC49-U_Vertical" H 4900 3200 50 0001 C CNN
|
||||
F 3 "~" H 4900 3200 50 0001 C CNN
|
||||
1 4900 3200
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
4900 3050 4900 2950
|
||||
Wire Wire Line
|
||||
4900 2950 5050 2950
|
||||
Wire Wire Line
|
||||
4900 3350 4900 3400
|
||||
Wire Wire Line
|
||||
4900 3400 5050 3400
|
||||
Wire Wire Line
|
||||
4100 3050 4450 3050
|
||||
Wire Wire Line
|
||||
4450 3050 4450 2950
|
||||
Wire Wire Line
|
||||
4450 2950 4900 2950
|
||||
Connection ~ 4900 2950
|
||||
Wire Wire Line
|
||||
4100 3150 4450 3150
|
||||
Wire Wire Line
|
||||
4450 3150 4450 3400
|
||||
Wire Wire Line
|
||||
4450 3400 4900 3400
|
||||
Connection ~ 4900 3400
|
||||
Text GLabel 4100 3750 2 50 Input ~ 0
|
||||
SDA
|
||||
Text GLabel 4100 3850 2 50 Input ~ 0
|
||||
SCL
|
||||
Text GLabel 4100 2750 2 50 Input ~ 0
|
||||
MOSI
|
||||
Text GLabel 4100 2850 2 50 Input ~ 0
|
||||
MISO
|
||||
Text GLabel 4100 2950 2 50 Input ~ 0
|
||||
SCK
|
||||
$Comp
|
||||
L Device:R R1
|
||||
U 1 1 5D758534
|
||||
P 4650 3800
|
||||
F 0 "R1" H 4720 3846 50 0000 L CNN
|
||||
F 1 "10k" H 4720 3755 50 0000 L CNN
|
||||
F 2 "Resistors_SMD:R_0603" V 4580 3800 50 0001 C CNN
|
||||
F 3 "~" H 4650 3800 50 0001 C CNN
|
||||
1 4650 3800
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
4100 3950 4650 3950
|
||||
Text GLabel 4850 3950 2 50 Input ~ 0
|
||||
RST
|
||||
Wire Wire Line
|
||||
4650 3950 4850 3950
|
||||
Connection ~ 4650 3950
|
||||
$Comp
|
||||
L power:GND #PWR012
|
||||
U 1 1 5D75920D
|
||||
P 3500 5150
|
||||
F 0 "#PWR012" H 3500 4900 50 0001 C CNN
|
||||
F 1 "GND" H 3505 4977 50 0000 C CNN
|
||||
F 2 "" H 3500 5150 50 0001 C CNN
|
||||
F 3 "" H 3500 5150 50 0001 C CNN
|
||||
1 3500 5150
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
NoConn ~ 4100 4350
|
||||
NoConn ~ 4100 4550
|
||||
$Comp
|
||||
L power:GND #PWR014
|
||||
U 1 1 5D765563
|
||||
P 5950 4250
|
||||
F 0 "#PWR014" H 5950 4000 50 0001 C CNN
|
||||
F 1 "GND" H 5955 4077 50 0000 C CNN
|
||||
F 2 "" H 5950 4250 50 0001 C CNN
|
||||
F 3 "" H 5950 4250 50 0001 C CNN
|
||||
1 5950 4250
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5950 4250 6400 4250
|
||||
Text GLabel 4100 2450 2 50 Input ~ 0
|
||||
LCD-DC
|
||||
Text GLabel 4100 2550 2 50 Input ~ 0
|
||||
LCD-RST
|
||||
Text GLabel 4100 4850 2 50 Input ~ 0
|
||||
LCD-BL
|
||||
Text GLabel 4100 3350 2 50 Input ~ 0
|
||||
M-PWM
|
||||
Text GLabel 4100 3450 2 50 Input ~ 0
|
||||
M-DIR
|
||||
Text GLabel 4100 3550 2 50 Input ~ 0
|
||||
M-SLP
|
||||
Text GLabel 4100 3650 2 50 Input ~ 0
|
||||
M-CS
|
||||
Text GLabel 4100 4450 2 50 Input ~ 0
|
||||
BTN-UP
|
||||
Text GLabel 4100 4650 2 50 Input ~ 0
|
||||
BTN-MENU
|
||||
Text GLabel 4100 4750 2 50 Input ~ 0
|
||||
BTN-DOWN
|
||||
Text GLabel 6800 1550 2 50 Input ~ 0
|
||||
BTN-UP
|
||||
Text GLabel 6800 1450 2 50 Input ~ 0
|
||||
BTN-MENU
|
||||
Text GLabel 6800 1350 2 50 Input ~ 0
|
||||
BTN-DOWN
|
||||
Text GLabel 6400 4750 0 50 Input ~ 0
|
||||
M-CS
|
||||
Text GLabel 6400 4550 0 50 Input ~ 0
|
||||
M-SLP
|
||||
Text GLabel 6400 4350 0 50 Input ~ 0
|
||||
M-DIR
|
||||
Text GLabel 6400 4450 0 50 Input ~ 0
|
||||
M-PWM
|
||||
NoConn ~ 6400 4650
|
||||
NoConn ~ 6400 4850
|
||||
Wire Wire Line
|
||||
6400 4950 5950 4950
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x02 J4
|
||||
U 1 1 5E2FAE20
|
||||
P 6600 2200
|
||||
F 0 "J4" H 6679 2192 50 0000 L CNN
|
||||
F 1 "PWR" H 6679 2101 50 0000 L CNN
|
||||
F 2 "DeskControl:YT2099_2P_straight" H 6600 2200 50 0001 C CNN
|
||||
F 3 "~" H 6600 2200 50 0001 C CNN
|
||||
1 6600 2200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0102
|
||||
U 1 1 5E2FAFB3
|
||||
P 6300 2300
|
||||
F 0 "#PWR0102" H 6300 2050 50 0001 C CNN
|
||||
F 1 "GND" H 6305 2127 50 0000 C CNN
|
||||
F 2 "" H 6300 2300 50 0001 C CNN
|
||||
F 3 "" H 6300 2300 50 0001 C CNN
|
||||
1 6300 2300
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6300 2300 6400 2300
|
||||
Wire Wire Line
|
||||
6400 2200 6300 2200
|
||||
$Comp
|
||||
L power:+12V #PWR0103
|
||||
U 1 1 5E2FB825
|
||||
P 6300 2200
|
||||
F 0 "#PWR0103" H 6300 2050 50 0001 C CNN
|
||||
F 1 "+12V" H 6315 2373 50 0000 C CNN
|
||||
F 2 "" H 6300 2200 50 0001 C CNN
|
||||
F 3 "" H 6300 2200 50 0001 C CNN
|
||||
1 6300 2200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+12V #PWR0104
|
||||
U 1 1 5E2FBA44
|
||||
P 900 850
|
||||
F 0 "#PWR0104" H 900 700 50 0001 C CNN
|
||||
F 1 "+12V" H 915 1023 50 0000 C CNN
|
||||
F 2 "" H 900 850 50 0001 C CNN
|
||||
F 3 "" H 900 850 50 0001 C CNN
|
||||
1 900 850
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:PWR_FLAG #FLG0101
|
||||
U 1 1 5E2FBA8B
|
||||
P 900 850
|
||||
F 0 "#FLG0101" H 900 925 50 0001 C CNN
|
||||
F 1 "PWR_FLAG" H 900 1023 50 0000 C CNN
|
||||
F 2 "" H 900 850 50 0001 C CNN
|
||||
F 3 "~" H 900 850 50 0001 C CNN
|
||||
1 900 850
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
NoConn ~ 4100 4150
|
||||
NoConn ~ 4100 4250
|
||||
NoConn ~ 4100 2650
|
||||
$Comp
|
||||
L Connector_Generic:Conn_02x05_Counter_Clockwise J5
|
||||
U 1 1 5E2FE0A5
|
||||
P 6500 1550
|
||||
F 0 "J5" H 6500 1900 50 0000 L CNN
|
||||
F 1 "DM-Master" H 6350 1200 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_2x05_Pitch2.54mm" H 6500 1550 50 0001 C CNN
|
||||
F 3 "~" H 6500 1550 50 0001 C CNN
|
||||
1 6500 1550
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Text GLabel 6300 1550 0 50 Input ~ 0
|
||||
SCK
|
||||
Text GLabel 6300 1650 0 50 Input ~ 0
|
||||
MOSI
|
||||
Text GLabel 6300 1750 0 50 Input ~ 0
|
||||
LCD-RST
|
||||
Text GLabel 6800 1750 2 50 Input ~ 0
|
||||
LCD-DC
|
||||
$Comp
|
||||
L power:GND #PWR013
|
||||
U 1 1 5E2FE81E
|
||||
P 5650 1350
|
||||
F 0 "#PWR013" H 5650 1100 50 0001 C CNN
|
||||
F 1 "GND" H 5655 1177 50 0000 C CNN
|
||||
F 2 "" H 5650 1350 50 0001 C CNN
|
||||
F 3 "" H 5650 1350 50 0001 C CNN
|
||||
1 5650 1350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5850 1450 6300 1450
|
||||
Wire Wire Line
|
||||
6300 1350 5650 1350
|
||||
Text GLabel 6800 1650 2 50 Input ~ 0
|
||||
LCD-BL
|
||||
$Comp
|
||||
L power:+3.3V #PWR0105
|
||||
U 1 1 5E300371
|
||||
P 1500 1650
|
||||
F 0 "#PWR0105" H 1500 1500 50 0001 C CNN
|
||||
F 1 "+3.3V" H 1515 1823 50 0000 C CNN
|
||||
F 2 "" H 1500 1650 50 0001 C CNN
|
||||
F 3 "" H 1500 1650 50 0001 C CNN
|
||||
1 1500 1650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3.3V #PWR0106
|
||||
U 1 1 5E30051D
|
||||
P 6000 2750
|
||||
F 0 "#PWR0106" H 6000 2600 50 0001 C CNN
|
||||
F 1 "+3.3V" H 6015 2923 50 0000 C CNN
|
||||
F 2 "" H 6000 2750 50 0001 C CNN
|
||||
F 3 "" H 6000 2750 50 0001 C CNN
|
||||
1 6000 2750
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3.3V #PWR0107
|
||||
U 1 1 5E3005E9
|
||||
P 6900 3550
|
||||
F 0 "#PWR0107" H 6900 3400 50 0001 C CNN
|
||||
F 1 "+3.3V" H 6915 3723 50 0000 C CNN
|
||||
F 2 "" H 6900 3550 50 0001 C CNN
|
||||
F 3 "" H 6900 3550 50 0001 C CNN
|
||||
1 6900 3550
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3.3V #PWR0108
|
||||
U 1 1 5E300625
|
||||
P 5950 4950
|
||||
F 0 "#PWR0108" H 5950 4800 50 0001 C CNN
|
||||
F 1 "+3.3V" H 5965 5123 50 0000 C CNN
|
||||
F 2 "" H 5950 4950 50 0001 C CNN
|
||||
F 3 "" H 5950 4950 50 0001 C CNN
|
||||
1 5950 4950
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3.3V #PWR0109
|
||||
U 1 1 5E301977
|
||||
P 5850 1450
|
||||
F 0 "#PWR0109" H 5850 1300 50 0001 C CNN
|
||||
F 1 "+3.3V" H 5865 1623 50 0000 C CNN
|
||||
F 2 "" H 5850 1450 50 0001 C CNN
|
||||
F 3 "" H 5850 1450 50 0001 C CNN
|
||||
1 5850 1450
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3.3V #PWR0110
|
||||
U 1 1 5E302F90
|
||||
P 4650 3650
|
||||
F 0 "#PWR0110" H 4650 3500 50 0001 C CNN
|
||||
F 1 "+3.3V" H 4665 3823 50 0000 C CNN
|
||||
F 2 "" H 4650 3650 50 0001 C CNN
|
||||
F 3 "" H 4650 3650 50 0001 C CNN
|
||||
1 4650 3650
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x08 J3
|
||||
U 1 1 5D7651C5
|
||||
P 6600 4550
|
||||
F 0 "J3" H 6750 4600 50 0000 L CNN
|
||||
F 1 "PoluluG2" H 6680 4501 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_1x08_Pitch2.54mm" H 6600 4550 50 0001 C CNN
|
||||
F 3 "~" H 6600 4550 50 0001 C CNN
|
||||
1 6600 4550
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
10100 1350 10200 1350
|
||||
Wire Wire Line
|
||||
10200 1350 10200 1750
|
||||
Wire Wire Line
|
||||
10200 1750 10200 2150
|
||||
Connection ~ 10200 1750
|
||||
Wire Wire Line
|
||||
10100 1750 10200 1750
|
||||
Wire Wire Line
|
||||
10100 2150 10200 2150
|
||||
$Comp
|
||||
L Switch:SW_Push SW3
|
||||
U 1 1 5D759CF0
|
||||
P 9900 2150
|
||||
F 0 "SW3" H 9900 2435 50 0000 C CNN
|
||||
F 1 "Up" H 9900 2344 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 9900 2350 50 0001 C CNN
|
||||
F 3 "" H 9900 2350 50 0001 C CNN
|
||||
1 9900 2150
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Switch:SW_Push SW2
|
||||
U 1 1 5D759CB0
|
||||
P 9900 1750
|
||||
F 0 "SW2" H 9900 2035 50 0000 C CNN
|
||||
F 1 "Menu" H 9900 1944 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 9900 1950 50 0001 C CNN
|
||||
F 3 "" H 9900 1950 50 0001 C CNN
|
||||
1 9900 1750
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Switch:SW_Push SW1
|
||||
U 1 1 5D759C24
|
||||
P 9900 1350
|
||||
F 0 "SW1" H 9900 1635 50 0000 C CNN
|
||||
F 1 "Down" H 9900 1544 50 0000 C CNN
|
||||
F 2 "SMD-BUTTON:SW4-SMD-5.2X5.2X1.5MM" H 9900 1550 50 0001 C CNN
|
||||
F 3 "" H 9900 1550 50 0001 C CNN
|
||||
1 9900 1350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Text GLabel 8400 1550 0 50 Input ~ 0
|
||||
DM_SCK
|
||||
Text GLabel 8400 1650 0 50 Input ~ 0
|
||||
DM_MOSI
|
||||
Text GLabel 8400 1750 0 50 Input ~ 0
|
||||
DM_LCD-RST
|
||||
Text GLabel 8900 1750 2 50 Input ~ 0
|
||||
DM_LCD-DC
|
||||
Text GLabel 8900 1650 2 50 Input ~ 0
|
||||
DM_LCD-BL
|
||||
$Comp
|
||||
L Connector_Generic:Conn_02x05_Counter_Clockwise J6
|
||||
U 1 1 5E3531D6
|
||||
P 8700 1550
|
||||
F 0 "J6" H 8700 1900 50 0000 L CNN
|
||||
F 1 "DM-Slave" H 8550 1200 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Straight_2x05_Pitch2.54mm" H 8700 1550 50 0001 C CNN
|
||||
F 3 "~" H 8700 1550 50 0001 C CNN
|
||||
1 8700 1550
|
||||
-1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
8900 1350 9700 1350
|
||||
Wire Wire Line
|
||||
8900 1450 9650 1450
|
||||
Wire Wire Line
|
||||
9650 1450 9650 1750
|
||||
Wire Wire Line
|
||||
9650 1750 9700 1750
|
||||
Wire Wire Line
|
||||
8900 1550 9550 1550
|
||||
Wire Wire Line
|
||||
9550 1550 9550 2150
|
||||
Wire Wire Line
|
||||
9550 2150 9700 2150
|
||||
Connection ~ 10200 2150
|
||||
$Comp
|
||||
L Regulator_Linear:AMS1117-3.3 U2
|
||||
U 1 1 5E364C51
|
||||
P 3500 900
|
||||
F 0 "U2" H 3500 1142 50 0000 C CNN
|
||||
F 1 "AMS1117-3.3" H 3500 1051 50 0000 C CNN
|
||||
F 2 "TO_SOT_Packages_SMD:SOT-223-3_TabPin2" H 3500 1100 50 0001 C CNN
|
||||
F 3 "http://www.advanced-monolithic.com/pdf/ds1117.pdf" H 3600 650 50 0001 C CNN
|
||||
1 3500 900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR04
|
||||
U 1 1 5E36C536
|
||||
P 3500 1200
|
||||
F 0 "#PWR04" H 3500 950 50 0001 C CNN
|
||||
F 1 "GND" H 3505 1027 50 0000 C CNN
|
||||
F 2 "" H 3500 1200 50 0001 C CNN
|
||||
F 3 "" H 3500 1200 50 0001 C CNN
|
||||
1 3500 1200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3.3V #PWR02
|
||||
U 1 1 5E36CA78
|
||||
P 3800 900
|
||||
F 0 "#PWR02" H 3800 750 50 0001 C CNN
|
||||
F 1 "+3.3V" H 3815 1073 50 0000 C CNN
|
||||
F 2 "" H 3800 900 50 0001 C CNN
|
||||
F 3 "" H 3800 900 50 0001 C CNN
|
||||
1 3800 900
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+12V #PWR01
|
||||
U 1 1 5E36CE40
|
||||
P 3200 900
|
||||
F 0 "#PWR01" H 3200 750 50 0001 C CNN
|
||||
F 1 "+12V" H 3215 1073 50 0000 C CNN
|
||||
F 2 "" H 3200 900 50 0001 C CNN
|
||||
F 3 "" H 3200 900 50 0001 C CNN
|
||||
1 3200 900
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector:Conn_01x07_Female J7
|
||||
U 1 1 5E37279C
|
||||
P 9250 2450
|
||||
F 0 "J7" H 9278 2476 50 0000 L CNN
|
||||
F 1 "ST7789" H 9278 2385 50 0000 L CNN
|
||||
F 2 "Pin_Headers:Pin_Header_Angled_1x07_Pitch2.54mm" H 9250 2450 50 0001 C CNN
|
||||
F 3 "~" H 9250 2450 50 0001 C CNN
|
||||
1 9250 2450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
10200 2300 10200 2150
|
||||
Text GLabel 8400 1450 0 50 Input ~ 0
|
||||
DM_3v3
|
||||
Text Notes 8400 900 0 50 ~ 0
|
||||
Display / Buttons Module (DM)
|
||||
Text GLabel 8400 1350 0 50 Input ~ 0
|
||||
DM_GND
|
||||
Text GLabel 10200 2300 2 50 Input ~ 0
|
||||
DM_GND
|
||||
Text GLabel 9050 2150 0 50 Input ~ 0
|
||||
DM_GND
|
||||
Text GLabel 9050 2250 0 50 Input ~ 0
|
||||
DM_3v3
|
||||
Text GLabel 9050 2350 0 50 Input ~ 0
|
||||
DM_SCK
|
||||
Text GLabel 9050 2450 0 50 Input ~ 0
|
||||
DM_MOSI
|
||||
Text GLabel 9050 2550 0 50 Input ~ 0
|
||||
DM_LCD-RST
|
||||
Text GLabel 9050 2650 0 50 Input ~ 0
|
||||
DM_LCD-DC
|
||||
Text GLabel 9050 2750 0 50 Input ~ 0
|
||||
DM_LCD-BL
|
||||
$EndSCHEMATC
|
48602
pcb/main/fp-info-cache
Normal file
48602
pcb/main/fp-info-cache
Normal file
File diff suppressed because it is too large
Load Diff
4
pcb/main/fp-lib-table
Normal file
4
pcb/main/fp-lib-table
Normal file
@ -0,0 +1,4 @@
|
||||
(fp_lib_table
|
||||
(lib (name SMD-BUTTON)(type KiCad)(uri ${KIPRJMOD}/../lib/SMD-BUTTON.pretty)(options "")(descr ""))
|
||||
(lib (name DeskControl)(type KiCad)(uri ${KIPRJMOD}/../lib/DeskControl.pretty)(options "")(descr ""))
|
||||
)
|
4
pcb/main/sym-lib-table
Normal file
4
pcb/main/sym-lib-table
Normal file
@ -0,0 +1,4 @@
|
||||
(sym_lib_table
|
||||
(lib (name DeskControl-rescue)(type Legacy)(uri ${KIPRJMOD}/DeskControl-rescue.lib)(options "")(descr ""))
|
||||
(lib (name AMS1117-5.0)(type Legacy)(uri ${KIPRJMOD}/../lib/AMS1117-5.0.lib)(options "")(descr ""))
|
||||
)
|
@ -1,3 +0,0 @@
|
||||
(sym_lib_table
|
||||
(lib (name SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_)(type Legacy)(uri ${KIPRJMOD}/lib/SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_.lib)(options "")(descr ""))
|
||||
)
|
48
platformio.ini
Normal file
48
platformio.ini
Normal file
@ -0,0 +1,48 @@
|
||||
; PlatformIO Project Configuration File
|
||||
;
|
||||
; Build options: build flags, source filter
|
||||
; Upload options: custom upload port, speed and extra flags
|
||||
; Library options: dependencies, extra library storages
|
||||
; Advanced options: extra scripting
|
||||
;
|
||||
; Please visit documentation for the other options and examples
|
||||
; http://docs.platformio.org/page/projectconf.html
|
||||
|
||||
[platformio]
|
||||
default_envs = uno
|
||||
|
||||
|
||||
[env]
|
||||
lib_deps =
|
||||
Bounce2
|
||||
Adafruit GFX Library
|
||||
Adafruit ST7735 and ST7789 Library
|
||||
|
||||
|
||||
[env:uno]
|
||||
platform = atmelavr
|
||||
board = uno
|
||||
framework = arduino
|
||||
|
||||
upload_port = COM3
|
||||
|
||||
[env:atmega328]
|
||||
platform = atmelavr
|
||||
board = pro8MHzatmega328
|
||||
board_build.f_cpu = 8000000L
|
||||
framework = arduino
|
||||
|
||||
upload_protocol = usbtiny
|
||||
upload_flags = -e
|
||||
upload_speed = 19200
|
||||
|
||||
|
||||
; This environment is not actually one I use for the hardware, but
|
||||
; PlatformIO's Home includes a very useful Inspect feature that
|
||||
; requires a debug build. These builds are significantly larger and
|
||||
; will cause the build to fail on the "checkprogsize" step.
|
||||
; Targetting a microprocessor with more space allows the build to succeed.
|
||||
[env:platformio-home-debug]
|
||||
platform = atmelavr
|
||||
board = atmega2560
|
||||
framework = arduino
|
BIN
src/fonts/AdafruitGFXFontTrim.exe
Normal file
BIN
src/fonts/AdafruitGFXFontTrim.exe
Normal file
Binary file not shown.
BIN
src/fonts/AdafruitGFXFontsLib.dll
Normal file
BIN
src/fonts/AdafruitGFXFontsLib.dll
Normal file
Binary file not shown.
480
src/fonts/FreeSansBold18pt7b.h
Normal file
480
src/fonts/FreeSansBold18pt7b.h
Normal file
@ -0,0 +1,480 @@
|
||||
const uint8_t FreeSansBold18pt7bBitmaps[] PROGMEM = {
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xE7, 0x39, 0xCE, 0x73, 0x80,
|
||||
0x0F, 0xFF, 0xFF, 0xF8, 0xF8, 0xFF, 0xC7, 0xFE, 0x3F, 0xF1, 0xFF, 0x8F,
|
||||
0xFC, 0x7D, 0xC1, 0xCE, 0x0E, 0x70, 0x70, 0x03, 0xC3, 0x80, 0x3C, 0x78,
|
||||
0x03, 0xC7, 0x80, 0x38, 0x78, 0x07, 0x87, 0x07, 0xFF, 0xFF, 0x7F, 0xFF,
|
||||
0xF7, 0xFF, 0xFF, 0x7F, 0xFF, 0xF0, 0xF0, 0xE0, 0x0F, 0x0E, 0x00, 0xF1,
|
||||
0xE0, 0x0F, 0x1E, 0x00, 0xE1, 0xE0, 0xFF, 0xFF, 0xCF, 0xFF, 0xFC, 0xFF,
|
||||
0xFF, 0xCF, 0xFF, 0xFC, 0x1C, 0x3C, 0x03, 0xC3, 0x80, 0x3C, 0x78, 0x03,
|
||||
0xC7, 0x80, 0x38, 0x78, 0x03, 0x87, 0x80, 0x00, 0x60, 0x00, 0x7F, 0x80,
|
||||
0x3F, 0xFC, 0x0F, 0xFF, 0xC3, 0xFF, 0xFC, 0xFC, 0xDF, 0x9F, 0x19, 0xFB,
|
||||
0xC3, 0x1F, 0x78, 0x63, 0xEF, 0x8C, 0x01, 0xFD, 0x80, 0x1F, 0xF0, 0x01,
|
||||
0xFF, 0xC0, 0x1F, 0xFE, 0x00, 0x7F, 0xE0, 0x03, 0xFE, 0x00, 0x67, 0xE0,
|
||||
0x0C, 0x7F, 0xE1, 0x8F, 0xFC, 0x31, 0xFF, 0xC6, 0x3E, 0xFC, 0xDF, 0x9F,
|
||||
0xFF, 0xF1, 0xFF, 0xFC, 0x0F, 0xFF, 0x00, 0x7F, 0x80, 0x01, 0x80, 0x00,
|
||||
0x30, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x1C, 0x01, 0xFE, 0x00, 0xE0, 0x1F,
|
||||
0xF8, 0x0E, 0x00, 0xFF, 0xC0, 0x70, 0x0F, 0x0F, 0x07, 0x00, 0x70, 0x38,
|
||||
0x38, 0x03, 0x81, 0xC3, 0x80, 0x1C, 0x0E, 0x3C, 0x00, 0xF0, 0xF1, 0xC0,
|
||||
0x03, 0xFF, 0x1C, 0x00, 0x1F, 0xF8, 0xE0, 0x00, 0x7F, 0x8E, 0x00, 0x00,
|
||||
0xF0, 0x70, 0xF8, 0x00, 0x07, 0x1F, 0xF0, 0x00, 0x39, 0xFF, 0xC0, 0x03,
|
||||
0x8F, 0xFE, 0x00, 0x1C, 0xF0, 0x78, 0x01, 0xC7, 0x01, 0xC0, 0x0C, 0x38,
|
||||
0x0E, 0x00, 0xE1, 0xC0, 0x70, 0x06, 0x0F, 0x07, 0x80, 0x70, 0x3F, 0xF8,
|
||||
0x07, 0x01, 0xFF, 0xC0, 0x38, 0x07, 0xFC, 0x03, 0x80, 0x0F, 0x80, 0x01,
|
||||
0xF0, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0xC0, 0x03, 0xFF, 0x80, 0x1F, 0x1E,
|
||||
0x00, 0x7C, 0x78, 0x01, 0xF1, 0xE0, 0x07, 0xE7, 0x80, 0x0F, 0xBC, 0x00,
|
||||
0x1F, 0xE0, 0x00, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0xF0, 0xF0, 0xFF,
|
||||
0xE3, 0xC7, 0xE7, 0xCF, 0x3F, 0x0F, 0xF8, 0xF8, 0x3F, 0xE3, 0xE0, 0x7F,
|
||||
0x8F, 0x80, 0xFC, 0x3F, 0x03, 0xF0, 0x7E, 0x3F, 0xE1, 0xFF, 0xFF, 0x83,
|
||||
0xFF, 0xFF, 0x07, 0xFE, 0x7E, 0x07, 0xF0, 0xFC, 0xFF, 0xFF, 0xFF, 0xFD,
|
||||
0xCE, 0x70, 0x07, 0x87, 0x83, 0xC3, 0xC1, 0xE1, 0xE0, 0xF0, 0x78, 0x78,
|
||||
0x3C, 0x1E, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E,
|
||||
0x0F, 0x03, 0x81, 0xE0, 0xF0, 0x78, 0x1E, 0x0F, 0x03, 0x81, 0xE0, 0x70,
|
||||
0x3C, 0x0E, 0x07, 0x80, 0xF0, 0x38, 0x1E, 0x07, 0x83, 0xC0, 0xF0, 0x78,
|
||||
0x3C, 0x0F, 0x07, 0x83, 0xC0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83,
|
||||
0xC1, 0xE0, 0xF0, 0x78, 0x78, 0x3C, 0x1E, 0x0F, 0x0F, 0x07, 0x87, 0x83,
|
||||
0xC1, 0xC1, 0xE0, 0xE0, 0xF0, 0x00, 0x06, 0x00, 0x60, 0x06, 0x07, 0x6E,
|
||||
0x7F, 0xE3, 0xFC, 0x0F, 0x01, 0xF8, 0x1F, 0x83, 0x9C, 0x10, 0x80, 0x03,
|
||||
0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, 0x03, 0xC0, 0x03,
|
||||
0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0x8C, 0x63,
|
||||
0x37, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x80, 0x01,
|
||||
0x81, 0xC0, 0xC0, 0x60, 0x70, 0x38, 0x18, 0x0C, 0x0E, 0x06, 0x03, 0x01,
|
||||
0x81, 0xC0, 0xC0, 0x60, 0x30, 0x38, 0x18, 0x0C, 0x0E, 0x07, 0x03, 0x01,
|
||||
0x81, 0xC0, 0xC0, 0x00, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF, 0x87, 0xFF,
|
||||
0xC7, 0xE3, 0xF3, 0xE0, 0xF9, 0xF0, 0x7D, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC,
|
||||
0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F,
|
||||
0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xDF, 0x07, 0xCF, 0x83, 0xE7, 0xE3,
|
||||
0xF1, 0xFF, 0xF0, 0xFF, 0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x01, 0xC0,
|
||||
0xF0, 0x3C, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xC1, 0xF0, 0x7C,
|
||||
0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07,
|
||||
0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC0, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF,
|
||||
0x8F, 0xFF, 0xE7, 0xE3, 0xF7, 0xE0, 0xFF, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8,
|
||||
0x0F, 0x80, 0x07, 0xC0, 0x07, 0xE0, 0x03, 0xE0, 0x03, 0xF0, 0x03, 0xF0,
|
||||
0x07, 0xF0, 0x07, 0xF0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xC0, 0x07, 0xC0,
|
||||
0x03, 0xE0, 0x03, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0xFF, 0x7F, 0xFF, 0x80,
|
||||
0x07, 0xE0, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F, 0xFF, 0xCF, 0xC3, 0xF7, 0xC0,
|
||||
0xFB, 0xE0, 0x7D, 0xF0, 0x3E, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x0F, 0x80,
|
||||
0x3F, 0x80, 0x1F, 0xC0, 0x0F, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F,
|
||||
0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x83, 0xF7, 0xC3, 0xF3, 0xFF, 0xF8, 0xFF,
|
||||
0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0xFC, 0x01, 0xFC,
|
||||
0x01, 0xFC, 0x03, 0xFC, 0x07, 0x7C, 0x07, 0x7C, 0x0E, 0x7C, 0x0E, 0x7C,
|
||||
0x1C, 0x7C, 0x18, 0x7C, 0x38, 0x7C, 0x70, 0x7C, 0x60, 0x7C, 0xE0, 0x7C,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x7C, 0x00, 0x7C,
|
||||
0x00, 0x7C, 0x00, 0x7C, 0x00, 0x7C, 0x00, 0x7C, 0x1F, 0xFF, 0x0F, 0xFF,
|
||||
0x8F, 0xFF, 0xC7, 0xFF, 0xE3, 0xC0, 0x01, 0xE0, 0x00, 0xE0, 0x00, 0x70,
|
||||
0x00, 0x79, 0xF0, 0x3F, 0xFE, 0x1F, 0xFF, 0x8F, 0xFF, 0xE7, 0xC3, 0xF0,
|
||||
0x00, 0xFC, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xFE, 0x03,
|
||||
0xFF, 0x03, 0xFF, 0xC3, 0xF3, 0xFF, 0xF1, 0xFF, 0xF8, 0x3F, 0xF0, 0x07,
|
||||
0xE0, 0x00, 0x03, 0xF8, 0x03, 0xFF, 0x81, 0xFF, 0xF0, 0xFF, 0xFE, 0x3E,
|
||||
0x1F, 0x9F, 0x03, 0xE7, 0xC0, 0x03, 0xE0, 0x00, 0xF8, 0xF8, 0x3E, 0xFF,
|
||||
0x8F, 0xFF, 0xF3, 0xFF, 0xFE, 0xFE, 0x1F, 0xBF, 0x03, 0xFF, 0x80, 0x7F,
|
||||
0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01, 0xF7, 0x80, 0x7D, 0xF0, 0x3E, 0x7E,
|
||||
0x1F, 0x8F, 0xFF, 0xC1, 0xFF, 0xF0, 0x3F, 0xF0, 0x03, 0xF0, 0x00, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0xF0, 0x00, 0xF8,
|
||||
0x00, 0xF8, 0x00, 0x78, 0x00, 0x7C, 0x00, 0x3C, 0x00, 0x3E, 0x00, 0x1E,
|
||||
0x00, 0x1F, 0x00, 0x0F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xC0, 0x03,
|
||||
0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x78, 0x00, 0x7C, 0x00, 0x3E, 0x00,
|
||||
0x1F, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xE0, 0x07, 0xFC, 0x0F, 0xFF, 0x07,
|
||||
0xFF, 0xC7, 0xC3, 0xF3, 0xC0, 0xF9, 0xE0, 0x3C, 0xF0, 0x1E, 0x78, 0x1F,
|
||||
0x1E, 0x1F, 0x07, 0xFF, 0x01, 0xFF, 0x03, 0xFF, 0xE3, 0xF1, 0xF9, 0xF0,
|
||||
0x7D, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x83, 0xF7,
|
||||
0xC3, 0xF3, 0xFF, 0xF8, 0xFF, 0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x07,
|
||||
0xE0, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F, 0xFF, 0xC7, 0xE3, 0xF7, 0xE0, 0xFB,
|
||||
0xE0, 0x3D, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x83,
|
||||
0xF7, 0xE3, 0xFB, 0xFF, 0xFC, 0xFF, 0xFE, 0x3F, 0xDF, 0x07, 0xCF, 0x80,
|
||||
0x07, 0x80, 0x03, 0xDF, 0x03, 0xE7, 0xC3, 0xE3, 0xFF, 0xF0, 0xFF, 0xF0,
|
||||
0x3F, 0xF0, 0x07, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00,
|
||||
0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00,
|
||||
0x00, 0x7F, 0xFF, 0xFF, 0xC6, 0x33, 0x9B, 0xD8, 0x00, 0x00, 0xC0, 0x00,
|
||||
0xF0, 0x01, 0xFC, 0x03, 0xFF, 0x03, 0xFF, 0x07, 0xFE, 0x0F, 0xFC, 0x03,
|
||||
0xF8, 0x00, 0xF0, 0x00, 0x3F, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0xE0, 0x07,
|
||||
0xFF, 0x00, 0x3F, 0xF0, 0x01, 0xFC, 0x00, 0x1F, 0x00, 0x00, 0xC0, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF0, 0xC0, 0x00, 0x3C, 0x00, 0x0F, 0xE0, 0x03, 0xFF, 0x00, 0x3F, 0xF0,
|
||||
0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0x00, 0x03, 0xC0, 0x07, 0xF0,
|
||||
0x0F, 0xFC, 0x1F, 0xF8, 0x3F, 0xF8, 0x3F, 0xF0, 0x0F, 0xE0, 0x03, 0xC0,
|
||||
0x00, 0xC0, 0x00, 0x00, 0x07, 0xF0, 0x07, 0xFF, 0x03, 0xFF, 0xF1, 0xFF,
|
||||
0xFC, 0x7E, 0x3F, 0xBF, 0x03, 0xFF, 0x80, 0x7F, 0xE0, 0x1F, 0xF8, 0x07,
|
||||
0xC0, 0x03, 0xF0, 0x01, 0xFC, 0x00, 0xFE, 0x00, 0x7F, 0x00, 0x3F, 0x80,
|
||||
0x1F, 0xC0, 0x07, 0xC0, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0,
|
||||
0x00, 0xF8, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xC0, 0x01, 0xF8, 0x07, 0xF0, 0x03, 0xE0, 0x01, 0xF8, 0x07,
|
||||
0x80, 0x00, 0x7C, 0x0F, 0x00, 0x00, 0x3C, 0x1E, 0x03, 0xE3, 0x9E, 0x3C,
|
||||
0x0F, 0xF7, 0x8E, 0x38, 0x1F, 0xFF, 0x0E, 0x78, 0x3E, 0x1F, 0x07, 0x70,
|
||||
0x38, 0x0F, 0x07, 0x70, 0x78, 0x0F, 0x07, 0xE0, 0x70, 0x0E, 0x07, 0xE0,
|
||||
0x70, 0x0E, 0x07, 0xE0, 0xE0, 0x0E, 0x07, 0xE0, 0xE0, 0x1E, 0x0F, 0xE0,
|
||||
0xE0, 0x1C, 0x0E, 0xE0, 0xE0, 0x3C, 0x1E, 0xE0, 0xF0, 0x3C, 0x3C, 0xF0,
|
||||
0xF0, 0xFC, 0x7C, 0x70, 0x7F, 0xFF, 0xF8, 0x78, 0x3F, 0xCF, 0xF0, 0x3C,
|
||||
0x1F, 0x07, 0xC0, 0x3E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x0F,
|
||||
0xC0, 0x01, 0x00, 0x07, 0xF0, 0x0F, 0x00, 0x03, 0xFF, 0xFF, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7F,
|
||||
0x00, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x01, 0xFF,
|
||||
0x80, 0x01, 0xFF, 0x80, 0x01, 0xF7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7,
|
||||
0xC0, 0x03, 0xE3, 0xE0, 0x07, 0xC3, 0xE0, 0x07, 0xC3, 0xE0, 0x07, 0xC1,
|
||||
0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0xFF, 0xF8, 0x1F, 0xFF,
|
||||
0xF8, 0x1F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFC, 0x3E, 0x00, 0x7C, 0x3E, 0x00,
|
||||
0x7E, 0x3E, 0x00, 0x3E, 0x7C, 0x00, 0x3E, 0x7C, 0x00, 0x3F, 0x7C, 0x00,
|
||||
0x1F, 0xFF, 0xFC, 0x0F, 0xFF, 0xF0, 0xFF, 0xFF, 0x8F, 0xFF, 0xFC, 0xF8,
|
||||
0x07, 0xEF, 0x80, 0x3E, 0xF8, 0x03, 0xEF, 0x80, 0x3E, 0xF8, 0x03, 0xEF,
|
||||
0x80, 0x3E, 0xF8, 0x07, 0xCF, 0xFF, 0xF8, 0xFF, 0xFF, 0x0F, 0xFF, 0xF8,
|
||||
0xFF, 0xFF, 0xCF, 0x80, 0x7E, 0xF8, 0x01, 0xEF, 0x80, 0x1F, 0xF8, 0x01,
|
||||
0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x3E, 0xFF, 0xFF, 0xEF, 0xFF,
|
||||
0xFC, 0xFF, 0xFF, 0x8F, 0xFF, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0x80,
|
||||
0x3F, 0xFF, 0xC0, 0xFF, 0xFF, 0xC3, 0xF8, 0x1F, 0x87, 0xE0, 0x1F, 0x9F,
|
||||
0x80, 0x1F, 0x3E, 0x00, 0x1F, 0x7C, 0x00, 0x3F, 0xF0, 0x00, 0x03, 0xE0,
|
||||
0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00,
|
||||
0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x7D, 0xF0, 0x00,
|
||||
0xFB, 0xF0, 0x03, 0xF3, 0xF0, 0x0F, 0xC7, 0xF0, 0x3F, 0x87, 0xFF, 0xFE,
|
||||
0x07, 0xFF, 0xF8, 0x03, 0xFF, 0xC0, 0x01, 0xFE, 0x00, 0xFF, 0xFC, 0x07,
|
||||
0xFF, 0xF8, 0x3F, 0xFF, 0xE1, 0xFF, 0xFF, 0x8F, 0x80, 0xFE, 0x7C, 0x01,
|
||||
0xF3, 0xE0, 0x07, 0xDF, 0x00, 0x3E, 0xF8, 0x01, 0xF7, 0xC0, 0x07, 0xFE,
|
||||
0x00, 0x3F, 0xF0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0xE0, 0x03,
|
||||
0xFF, 0x00, 0x1F, 0xF8, 0x00, 0xFF, 0xC0, 0x0F, 0xFE, 0x00, 0x7D, 0xF0,
|
||||
0x03, 0xEF, 0x80, 0x3E, 0x7C, 0x07, 0xF3, 0xFF, 0xFF, 0x1F, 0xFF, 0xF0,
|
||||
0xFF, 0xFF, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xDF, 0xFF, 0xFB, 0xFF,
|
||||
0xFF, 0x7F, 0xFF, 0xEF, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0,
|
||||
0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7F, 0xFF, 0xCF, 0xFF,
|
||||
0xF9, 0xFF, 0xFF, 0x3F, 0xFF, 0xE7, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00,
|
||||
0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3F, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0,
|
||||
0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0xFF, 0xEF, 0xFF, 0xF7,
|
||||
0xFF, 0xFB, 0xFF, 0xFD, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00,
|
||||
0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8,
|
||||
0x00, 0x7C, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x03, 0xFF, 0xE0, 0x07, 0xFF,
|
||||
0xF8, 0x0F, 0xFF, 0xFC, 0x1F, 0xC0, 0xFE, 0x3F, 0x00, 0x7E, 0x7E, 0x00,
|
||||
0x3F, 0x7C, 0x00, 0x1F, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00,
|
||||
0x00, 0xF8, 0x00, 0x00, 0xF8, 0x03, 0xFF, 0xF8, 0x03, 0xFF, 0xF8, 0x03,
|
||||
0xFF, 0xF8, 0x03, 0xFF, 0xFC, 0x00, 0x0F, 0x7C, 0x00, 0x1F, 0x7C, 0x00,
|
||||
0x1F, 0x7E, 0x00, 0x3F, 0x3F, 0x00, 0x7F, 0x1F, 0xC1, 0xFF, 0x0F, 0xFF,
|
||||
0xFF, 0x07, 0xFF, 0xE7, 0x03, 0xFF, 0xC7, 0x00, 0xFF, 0x07, 0xF8, 0x01,
|
||||
0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80,
|
||||
0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x01, 0xFF,
|
||||
0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F,
|
||||
0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01,
|
||||
0xFF, 0x80, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x1F, 0x00, 0x1F,
|
||||
0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F,
|
||||
0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F,
|
||||
0x00, 0x1F, 0x00, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F,
|
||||
0xF8, 0x1F, 0xFC, 0x3F, 0x7F, 0xFE, 0x3F, 0xFC, 0x1F, 0xF8, 0x07, 0xE0,
|
||||
0xF8, 0x01, 0xFB, 0xE0, 0x0F, 0xCF, 0x80, 0x7E, 0x3E, 0x03, 0xF0, 0xF8,
|
||||
0x1F, 0x83, 0xE0, 0xFC, 0x0F, 0x87, 0xE0, 0x3E, 0x3F, 0x00, 0xF8, 0xF8,
|
||||
0x03, 0xE7, 0xE0, 0x0F, 0xBF, 0x00, 0x3F, 0xF8, 0x00, 0xFF, 0xF0, 0x03,
|
||||
0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x3F, 0xBF, 0x00, 0xFC, 0x7E, 0x03, 0xE0,
|
||||
0xFC, 0x0F, 0x81, 0xF8, 0x3E, 0x07, 0xE0, 0xF8, 0x0F, 0xC3, 0xE0, 0x1F,
|
||||
0x8F, 0x80, 0x7F, 0x3E, 0x00, 0xFC, 0xF8, 0x01, 0xFB, 0xE0, 0x03, 0xF0,
|
||||
0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0,
|
||||
0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F,
|
||||
0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00,
|
||||
0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0x00, 0xFF, 0xFF,
|
||||
0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x81, 0xFF, 0xFF,
|
||||
0x81, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x81, 0xFF, 0xFB, 0xC3, 0xDF, 0xFB,
|
||||
0xC3, 0xDF, 0xFB, 0xC3, 0xDF, 0xFB, 0xC3, 0xDF, 0xF9, 0xC7, 0xDF, 0xF9,
|
||||
0xE7, 0x9F, 0xF9, 0xE7, 0x9F, 0xF9, 0xE7, 0x9F, 0xF9, 0xE7, 0x9F, 0xF8,
|
||||
0xFF, 0x1F, 0xF8, 0xFF, 0x1F, 0xF8, 0xFF, 0x1F, 0xF8, 0xFF, 0x1F, 0xF8,
|
||||
0x7F, 0x1F, 0xF8, 0x7E, 0x1F, 0xF8, 0x7E, 0x1F, 0xF8, 0x7E, 0x1F, 0xF8,
|
||||
0x3E, 0x1F, 0xF8, 0x01, 0xFF, 0xC0, 0x1F, 0xFE, 0x01, 0xFF, 0xE0, 0x1F,
|
||||
0xFF, 0x01, 0xFF, 0xF0, 0x1F, 0xFF, 0x81, 0xFF, 0xF8, 0x1F, 0xFF, 0xC1,
|
||||
0xFF, 0xBC, 0x1F, 0xFB, 0xE1, 0xFF, 0x9F, 0x1F, 0xF9, 0xF1, 0xFF, 0x8F,
|
||||
0x9F, 0xF8, 0x79, 0xFF, 0x87, 0xDF, 0xF8, 0x3D, 0xFF, 0x83, 0xFF, 0xF8,
|
||||
0x1F, 0xFF, 0x81, 0xFF, 0xF8, 0x0F, 0xFF, 0x80, 0xFF, 0xF8, 0x07, 0xFF,
|
||||
0x80, 0x3F, 0xF8, 0x03, 0xFF, 0x80, 0x1F, 0x00, 0x7F, 0x00, 0x01, 0xFF,
|
||||
0xF0, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x01, 0xFC, 0x1F, 0xC1, 0xF8,
|
||||
0x03, 0xF1, 0xF8, 0x00, 0xFC, 0xF8, 0x00, 0x3E, 0x7C, 0x00, 0x1F, 0x7C,
|
||||
0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF,
|
||||
0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xF0, 0x00, 0x1F, 0xF8, 0x00, 0x0F,
|
||||
0xBE, 0x00, 0x0F, 0x9F, 0x00, 0x07, 0xCF, 0xC0, 0x07, 0xE3, 0xF0, 0x07,
|
||||
0xE0, 0xFE, 0x0F, 0xE0, 0x7F, 0xFF, 0xE0, 0x0F, 0xFF, 0xE0, 0x03, 0xFF,
|
||||
0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFF, 0xFC, 0x1F, 0xFF, 0xE3, 0xFF, 0xFE,
|
||||
0x7F, 0xFF, 0xEF, 0x80, 0xFF, 0xF0, 0x0F, 0xFE, 0x00, 0xFF, 0xC0, 0x1F,
|
||||
0xF8, 0x03, 0xFF, 0x00, 0x7F, 0xE0, 0x1F, 0xFC, 0x07, 0xEF, 0xFF, 0xFD,
|
||||
0xFF, 0xFF, 0x3F, 0xFF, 0xC7, 0xFF, 0xE0, 0xF8, 0x00, 0x1F, 0x00, 0x03,
|
||||
0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07,
|
||||
0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x01, 0xFF,
|
||||
0xF0, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x01, 0xFC, 0x1F, 0xC1, 0xF8,
|
||||
0x03, 0xF1, 0xF8, 0x00, 0xFC, 0xF8, 0x00, 0x3E, 0x7C, 0x00, 0x1F, 0x7C,
|
||||
0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF,
|
||||
0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xF0, 0x00, 0x1F, 0xF8, 0x01, 0x0F,
|
||||
0xBE, 0x01, 0xCF, 0x9F, 0x01, 0xFF, 0xCF, 0xC0, 0x7F, 0xE3, 0xF0, 0x1F,
|
||||
0xE0, 0xFE, 0x0F, 0xF0, 0x7F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFE, 0x03, 0xFF,
|
||||
0xEF, 0x80, 0x3F, 0xC3, 0x80, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x07, 0xFF,
|
||||
0xFE, 0x3F, 0xFF, 0xF9, 0xFF, 0xFF, 0xCF, 0x80, 0x3F, 0x7C, 0x00, 0xFB,
|
||||
0xE0, 0x07, 0xDF, 0x00, 0x3E, 0xF8, 0x01, 0xF7, 0xC0, 0x0F, 0x3E, 0x00,
|
||||
0xF9, 0xFF, 0xFF, 0x8F, 0xFF, 0xF8, 0x7F, 0xFF, 0xC3, 0xFF, 0xFF, 0x1F,
|
||||
0x00, 0xFC, 0xF8, 0x03, 0xE7, 0xC0, 0x1F, 0x3E, 0x00, 0xF9, 0xF0, 0x07,
|
||||
0xCF, 0x80, 0x3E, 0x7C, 0x01, 0xF3, 0xE0, 0x0F, 0x9F, 0x00, 0x7C, 0xF8,
|
||||
0x03, 0xF7, 0xC0, 0x0F, 0xC0, 0x07, 0xF8, 0x01, 0xFF, 0xF0, 0x3F, 0xFF,
|
||||
0x87, 0xFF, 0xFC, 0x7E, 0x0F, 0xCF, 0xC0, 0x7E, 0xF8, 0x03, 0xEF, 0x80,
|
||||
0x3E, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0xC0, 0x3F,
|
||||
0xFF, 0x81, 0xFF, 0xFC, 0x03, 0xFF, 0xE0, 0x01, 0xFF, 0x00, 0x03, 0xF0,
|
||||
0x00, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xFC, 0x03, 0xFF, 0xE0, 0x7E,
|
||||
0x7F, 0xFF, 0xE3, 0xFF, 0xFC, 0x1F, 0xFF, 0x00, 0x3F, 0xC0, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x1F, 0x00, 0x03, 0xE0,
|
||||
0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0,
|
||||
0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80,
|
||||
0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00,
|
||||
0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00,
|
||||
0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01,
|
||||
0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80,
|
||||
0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8,
|
||||
0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF,
|
||||
0x80, 0x1F, 0x7C, 0x03, 0xE7, 0xE0, 0x7E, 0x3F, 0xFF, 0xC3, 0xFF, 0xFC,
|
||||
0x0F, 0xFF, 0x00, 0x3F, 0xC0, 0xF8, 0x00, 0xFB, 0xE0, 0x03, 0xE7, 0xC0,
|
||||
0x1F, 0x9F, 0x00, 0x7C, 0x7C, 0x01, 0xF0, 0xF8, 0x07, 0xC3, 0xE0, 0x3E,
|
||||
0x0F, 0x80, 0xF8, 0x1E, 0x03, 0xE0, 0x7C, 0x1F, 0x01, 0xF0, 0x7C, 0x03,
|
||||
0xC1, 0xF0, 0x0F, 0x87, 0x80, 0x3E, 0x3E, 0x00, 0xF8, 0xF8, 0x01, 0xE3,
|
||||
0xC0, 0x07, 0xCF, 0x00, 0x1F, 0x7C, 0x00, 0x3D, 0xE0, 0x00, 0xFF, 0x80,
|
||||
0x03, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x00,
|
||||
0xF8, 0x00, 0x03, 0xE0, 0x00, 0xF8, 0x07, 0xC0, 0x3F, 0xF8, 0x07, 0xE0,
|
||||
0x3E, 0xFC, 0x07, 0xE0, 0x3E, 0x7C, 0x0F, 0xE0, 0x3E, 0x7C, 0x0F, 0xE0,
|
||||
0x7E, 0x7C, 0x0F, 0xE0, 0x7C, 0x7C, 0x0F, 0xF0, 0x7C, 0x3E, 0x0F, 0xF0,
|
||||
0x7C, 0x3E, 0x1E, 0xF0, 0x78, 0x3E, 0x1E, 0x70, 0xF8, 0x1E, 0x1E, 0x70,
|
||||
0xF8, 0x1E, 0x1E, 0x78, 0xF8, 0x1F, 0x1E, 0x78, 0xF0, 0x1F, 0x3C, 0x78,
|
||||
0xF0, 0x0F, 0x3C, 0x39, 0xF0, 0x0F, 0x3C, 0x3D, 0xF0, 0x0F, 0x3C, 0x3D,
|
||||
0xE0, 0x0F, 0xBC, 0x3D, 0xE0, 0x07, 0xF8, 0x3D, 0xE0, 0x07, 0xF8, 0x1F,
|
||||
0xE0, 0x07, 0xF8, 0x1F, 0xC0, 0x03, 0xF8, 0x1F, 0xC0, 0x03, 0xF8, 0x1F,
|
||||
0xC0, 0x03, 0xF0, 0x0F, 0x80, 0x03, 0xF0, 0x0F, 0x80, 0x01, 0xF0, 0x0F,
|
||||
0x80, 0xFE, 0x01, 0xF9, 0xF8, 0x07, 0xE3, 0xF0, 0x3F, 0x0F, 0xC0, 0xF8,
|
||||
0x1F, 0x87, 0xE0, 0x7E, 0x3F, 0x00, 0xFC, 0xFC, 0x01, 0xF7, 0xE0, 0x07,
|
||||
0xFF, 0x00, 0x0F, 0xFC, 0x00, 0x3F, 0xE0, 0x00, 0x7F, 0x00, 0x00, 0xFC,
|
||||
0x00, 0x07, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0x80, 0x03, 0xFF, 0x00,
|
||||
0x1F, 0x7E, 0x00, 0xFC, 0xF8, 0x03, 0xE3, 0xF0, 0x1F, 0x87, 0xC0, 0x7C,
|
||||
0x1F, 0x83, 0xF0, 0x3F, 0x1F, 0x80, 0xFC, 0x7E, 0x01, 0xFB, 0xF0, 0x07,
|
||||
0xF0, 0xFC, 0x01, 0xFF, 0xE0, 0x0F, 0x9F, 0x00, 0xFC, 0xFC, 0x07, 0xC3,
|
||||
0xE0, 0x7E, 0x1F, 0x83, 0xE0, 0x7C, 0x1F, 0x03, 0xF1, 0xF0, 0x0F, 0x8F,
|
||||
0x80, 0x7E, 0xF8, 0x01, 0xF7, 0xC0, 0x0F, 0xFC, 0x00, 0x3F, 0xE0, 0x00,
|
||||
0xFE, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0,
|
||||
0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03,
|
||||
0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x7E, 0x00, 0x1F,
|
||||
0x80, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF8,
|
||||
0x00, 0x7E, 0x00, 0x1F, 0x80, 0x07, 0xE0, 0x01, 0xFC, 0x00, 0x3F, 0x00,
|
||||
0x0F, 0xC0, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x1F, 0x80, 0x07, 0xE0, 0x01,
|
||||
0xFC, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
|
||||
0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
|
||||
0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x38, 0x06,
|
||||
0x01, 0x80, 0x70, 0x0C, 0x03, 0x00, 0xE0, 0x18, 0x06, 0x01, 0xC0, 0x30,
|
||||
0x0C, 0x03, 0x00, 0xE0, 0x18, 0x06, 0x01, 0xC0, 0x30, 0x0C, 0x03, 0x80,
|
||||
0x60, 0x18, 0x07, 0x01, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x1F, 0x1F,
|
||||
0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
|
||||
0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x03, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x0F, 0xF0, 0x0F, 0xF0,
|
||||
0x0F, 0x78, 0x1E, 0x78, 0x1E, 0x78, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x1E,
|
||||
0x78, 0x1E, 0x78, 0x1E, 0x70, 0x0F, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFE, 0xF8, 0xF0, 0xF0, 0xE0, 0xE0, 0x07, 0xF8, 0x07,
|
||||
0xFF, 0x83, 0xFF, 0xF1, 0xFF, 0xFE, 0x7C, 0x1F, 0xBE, 0x03, 0xE0, 0x00,
|
||||
0xF8, 0x01, 0xFE, 0x0F, 0xFF, 0x8F, 0xFF, 0xE7, 0xF8, 0xFB, 0xF0, 0x3E,
|
||||
0xF8, 0x0F, 0xBE, 0x07, 0xEF, 0xC3, 0xFB, 0xFF, 0xFE, 0x7F, 0xFF, 0x8F,
|
||||
0xFB, 0xF1, 0xF8, 0xFC, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0,
|
||||
0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE7, 0xE0, 0xFB, 0xFC,
|
||||
0x3F, 0xFF, 0xCF, 0xFF, 0xF3, 0xF8, 0x7E, 0xFC, 0x0F, 0xBF, 0x03, 0xFF,
|
||||
0x80, 0x7F, 0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01, 0xFF, 0x80, 0x7F, 0xF0,
|
||||
0x3F, 0xFC, 0x0F, 0xBF, 0x87, 0xEF, 0xFF, 0xF3, 0xFF, 0xFC, 0xFB, 0xFC,
|
||||
0x3E, 0x7E, 0x00, 0x03, 0xF0, 0x07, 0xFE, 0x0F, 0xFF, 0x87, 0xFF, 0xE7,
|
||||
0xE1, 0xFB, 0xE0, 0x7F, 0xE0, 0x3F, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00,
|
||||
0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0xFB, 0xE0, 0x7D, 0xF8, 0x7E, 0x7F,
|
||||
0xFE, 0x3F, 0xFE, 0x0F, 0xFE, 0x00, 0xFC, 0x00, 0x00, 0x03, 0xE0, 0x00,
|
||||
0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00,
|
||||
0xF8, 0x1F, 0x1F, 0x0F, 0xFB, 0xE3, 0xFF, 0xFC, 0xFF, 0xFF, 0xBF, 0x8F,
|
||||
0xF7, 0xC0, 0x7F, 0xF8, 0x0F, 0xFE, 0x00, 0xFF, 0xC0, 0x1F, 0xF8, 0x03,
|
||||
0xFF, 0x00, 0x7F, 0xE0, 0x0F, 0xFE, 0x03, 0xF7, 0xC0, 0x7E, 0xFC, 0x3F,
|
||||
0xCF, 0xFF, 0xF8, 0xFF, 0xFF, 0x0F, 0xFB, 0xE0, 0xFC, 0x7C, 0x07, 0xE0,
|
||||
0x07, 0xFE, 0x03, 0xFF, 0xE0, 0xFF, 0xF8, 0x7E, 0x1F, 0x1F, 0x03, 0xCF,
|
||||
0x80, 0xFB, 0xE0, 0x1E, 0xFF, 0xFF, 0xBF, 0xFF, 0xEF, 0xFF, 0xFB, 0xE0,
|
||||
0x00, 0xF8, 0x00, 0x3F, 0x03, 0xE7, 0xE1, 0xF9, 0xFF, 0xFC, 0x3F, 0xFE,
|
||||
0x07, 0xFF, 0x00, 0x7F, 0x00, 0x0F, 0xC7, 0xF3, 0xFC, 0xFF, 0x3E, 0x0F,
|
||||
0x83, 0xE3, 0xFE, 0xFF, 0xBF, 0xE3, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0,
|
||||
0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E,
|
||||
0x0F, 0x80, 0x07, 0xC7, 0xC3, 0xFD, 0xF3, 0xFF, 0xFC, 0xFF, 0xFF, 0x7E,
|
||||
0x1F, 0xDF, 0x03, 0xFF, 0xC0, 0xFF, 0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01,
|
||||
0xFF, 0x80, 0x7F, 0xE0, 0x1F, 0xFC, 0x0F, 0xDF, 0x03, 0xF7, 0xE1, 0xFD,
|
||||
0xFF, 0xFF, 0x3F, 0xFF, 0xC7, 0xFD, 0xF0, 0x7C, 0x7C, 0x00, 0x1F, 0x00,
|
||||
0x07, 0xFF, 0x03, 0xF7, 0xE1, 0xF9, 0xFF, 0xFC, 0x3F, 0xFE, 0x01, 0xFE,
|
||||
0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07,
|
||||
0xC0, 0x03, 0xE0, 0x01, 0xF1, 0xF0, 0xFB, 0xFE, 0x7F, 0xFF, 0xBF, 0xFF,
|
||||
0xDF, 0xC3, 0xFF, 0xC0, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8,
|
||||
0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F,
|
||||
0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xC0, 0xFF, 0xFF, 0xF0,
|
||||
0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xC0, 0x3E, 0x7C, 0xF9, 0xF0, 0x00, 0x00, 0x1F, 0x3E, 0x7C, 0xF9,
|
||||
0xF3, 0xE7, 0xCF, 0x9F, 0x3E, 0x7C, 0xF9, 0xF3, 0xE7, 0xCF, 0x9F, 0x3E,
|
||||
0x7C, 0xF9, 0xF3, 0xFF, 0xFF, 0xFE, 0xF8, 0xF8, 0x00, 0x7C, 0x00, 0x3E,
|
||||
0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x3E,
|
||||
0xF8, 0x3E, 0x7C, 0x3F, 0x3E, 0x3F, 0x1F, 0x3F, 0x0F, 0x9F, 0x07, 0xDF,
|
||||
0x03, 0xFF, 0x81, 0xFF, 0xC0, 0xFF, 0xF0, 0x7F, 0xF8, 0x3F, 0x7E, 0x1F,
|
||||
0x1F, 0x0F, 0x87, 0xC7, 0xC3, 0xF3, 0xE0, 0xF9, 0xF0, 0x7E, 0xF8, 0x1F,
|
||||
0x7C, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xF8, 0xF8, 0x3F, 0x1F,
|
||||
0x7F, 0x9F, 0xF3, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xC3, 0xF8,
|
||||
0x7F, 0xF8, 0x3F, 0x07, 0xFE, 0x07, 0xC0, 0xFF, 0xC0, 0xF8, 0x1F, 0xF8,
|
||||
0x1F, 0x03, 0xFF, 0x03, 0xE0, 0x7F, 0xE0, 0x7C, 0x0F, 0xFC, 0x0F, 0x81,
|
||||
0xFF, 0x81, 0xF0, 0x3F, 0xF0, 0x3E, 0x07, 0xFE, 0x07, 0xC0, 0xFF, 0xC0,
|
||||
0xF8, 0x1F, 0xF8, 0x1F, 0x03, 0xFF, 0x03, 0xE0, 0x7F, 0xE0, 0x7C, 0x0F,
|
||||
0x80, 0xF8, 0xF8, 0x7D, 0xFF, 0x3F, 0xFF, 0xDF, 0xFF, 0xEF, 0xE1, 0xFF,
|
||||
0xE0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03,
|
||||
0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8,
|
||||
0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xE0, 0x03, 0xF8, 0x01, 0xFF, 0xC0, 0x7F,
|
||||
0xFC, 0x1F, 0xFF, 0xC7, 0xF0, 0xFC, 0xF8, 0x0F, 0xBF, 0x01, 0xFF, 0xC0,
|
||||
0x1F, 0xF8, 0x03, 0xFF, 0x00, 0x7F, 0xE0, 0x0F, 0xFC, 0x01, 0xFF, 0xC0,
|
||||
0x7E, 0xF8, 0x0F, 0x9F, 0x87, 0xF1, 0xFF, 0xFC, 0x1F, 0xFF, 0x01, 0xFF,
|
||||
0xC0, 0x0F, 0xE0, 0x00, 0xF8, 0xF8, 0x3E, 0xFF, 0x8F, 0xFF, 0xF3, 0xFF,
|
||||
0xFC, 0xFE, 0x1F, 0xBF, 0x03, 0xEF, 0xC0, 0xFF, 0xE0, 0x1F, 0xF8, 0x07,
|
||||
0xFE, 0x01, 0xFF, 0x80, 0x7F, 0xE0, 0x1F, 0xFC, 0x0F, 0xFF, 0x03, 0xEF,
|
||||
0xE1, 0xFB, 0xFF, 0xFC, 0xFF, 0xFF, 0x3E, 0xFF, 0x0F, 0x8F, 0x83, 0xE0,
|
||||
0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00,
|
||||
0x3E, 0x00, 0x00, 0x07, 0xE3, 0xE1, 0xFF, 0x7C, 0x7F, 0xFF, 0x9F, 0xFF,
|
||||
0xF7, 0xF1, 0xFE, 0xF8, 0x0F, 0xFF, 0x01, 0xFF, 0xC0, 0x1F, 0xF8, 0x03,
|
||||
0xFF, 0x00, 0x7F, 0xE0, 0x0F, 0xFC, 0x01, 0xFF, 0xC0, 0x7E, 0xF8, 0x0F,
|
||||
0xDF, 0x83, 0xF9, 0xFF, 0xFF, 0x3F, 0xFF, 0xE1, 0xFF, 0x7C, 0x1F, 0x8F,
|
||||
0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F,
|
||||
0x00, 0x03, 0xE0, 0x00, 0x7C, 0xF8, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xE1,
|
||||
0xF8, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0,
|
||||
0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x00, 0x07, 0xF0, 0x0F, 0xFE,
|
||||
0x0F, 0xFF, 0x87, 0xFF, 0xE7, 0xE1, 0xF3, 0xE0, 0x79, 0xF8, 0x00, 0xFF,
|
||||
0x80, 0x3F, 0xFC, 0x1F, 0xFF, 0x83, 0xFF, 0xC0, 0x3F, 0xF0, 0x01, 0xFF,
|
||||
0xC0, 0x7D, 0xF0, 0x7E, 0xFF, 0xFE, 0x3F, 0xFF, 0x0F, 0xFF, 0x01, 0xFE,
|
||||
0x00, 0x3E, 0x1F, 0x0F, 0x87, 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0x3E, 0x1F,
|
||||
0x0F, 0x87, 0xC3, 0xE1, 0xF0, 0xF8, 0x7C, 0x3E, 0x1F, 0x0F, 0x87, 0xF3,
|
||||
0xF8, 0xFC, 0x3E, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF,
|
||||
0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07,
|
||||
0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0xFF, 0xF0, 0xFF, 0xFF,
|
||||
0xFF, 0x7F, 0xFF, 0x9F, 0xF7, 0xC7, 0xE3, 0xE0, 0x7C, 0x07, 0xCF, 0x80,
|
||||
0xF9, 0xF0, 0x1F, 0x1F, 0x07, 0xC3, 0xE0, 0xF8, 0x7C, 0x1F, 0x07, 0x83,
|
||||
0xC0, 0xF8, 0xF8, 0x1F, 0x1F, 0x01, 0xE3, 0xC0, 0x3E, 0x78, 0x07, 0xDF,
|
||||
0x00, 0x7B, 0xC0, 0x0F, 0xF8, 0x01, 0xFF, 0x00, 0x1F, 0xC0, 0x03, 0xF8,
|
||||
0x00, 0x7F, 0x00, 0x07, 0xC0, 0x00, 0xFC, 0x1F, 0x03, 0xEF, 0x83, 0xE0,
|
||||
0x7D, 0xF0, 0x7E, 0x1F, 0x3E, 0x0F, 0xC3, 0xE3, 0xC3, 0xF8, 0x7C, 0x7C,
|
||||
0x7F, 0x0F, 0x0F, 0x8F, 0xF3, 0xE1, 0xF1, 0xDE, 0x7C, 0x1E, 0x7B, 0xCF,
|
||||
0x83, 0xEF, 0x39, 0xE0, 0x7D, 0xE7, 0x3C, 0x07, 0xB8, 0xFF, 0x80, 0xF7,
|
||||
0x1F, 0xE0, 0x1F, 0xE3, 0xFC, 0x03, 0xFC, 0x3F, 0x80, 0x3F, 0x07, 0xF0,
|
||||
0x07, 0xE0, 0xFC, 0x00, 0xFC, 0x1F, 0x80, 0x0F, 0x83, 0xF0, 0x00, 0xFC,
|
||||
0x1F, 0x9F, 0x07, 0xE7, 0xE3, 0xF0, 0xF8, 0xF8, 0x1F, 0x7E, 0x07, 0xDF,
|
||||
0x00, 0xFF, 0x80, 0x1F, 0xE0, 0x07, 0xF0, 0x00, 0xF8, 0x00, 0x7F, 0x00,
|
||||
0x3F, 0xE0, 0x0F, 0xF8, 0x07, 0xDF, 0x03, 0xF7, 0xE0, 0xF8, 0xF8, 0x7E,
|
||||
0x3F, 0x1F, 0x07, 0xEF, 0xC0, 0xF8, 0x7C, 0x03, 0xEF, 0x80, 0xF9, 0xF8,
|
||||
0x1F, 0x1F, 0x03, 0xE3, 0xE0, 0xF8, 0x7C, 0x1F, 0x07, 0xC3, 0xE0, 0xF8,
|
||||
0x78, 0x0F, 0x1F, 0x01, 0xF3, 0xC0, 0x3E, 0x78, 0x03, 0xDF, 0x00, 0x7F,
|
||||
0xC0, 0x0F, 0xF8, 0x00, 0xFF, 0x00, 0x1F, 0xC0, 0x01, 0xF8, 0x00, 0x3F,
|
||||
0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1E, 0x00, 0x07, 0xC0, 0x07, 0xF8,
|
||||
0x00, 0xFE, 0x00, 0x1F, 0x80, 0x03, 0xE0, 0x00, 0x7F, 0xFE, 0x7F, 0xFE,
|
||||
0x7F, 0xFE, 0x7F, 0xFE, 0x00, 0x7E, 0x00, 0xFC, 0x01, 0xF8, 0x03, 0xF0,
|
||||
0x03, 0xF0, 0x07, 0xE0, 0x0F, 0xC0, 0x1F, 0x80, 0x3F, 0x00, 0x7E, 0x00,
|
||||
0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x87,
|
||||
0xC7, 0xE3, 0xF1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1,
|
||||
0xE0, 0xF0, 0xF9, 0xF8, 0xF0, 0x7E, 0x0F, 0x83, 0xC1, 0xE0, 0xF0, 0x78,
|
||||
0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xFC, 0x7E, 0x1F, 0x07, 0x80,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xE0, 0xF0, 0x7C, 0x3E, 0x1F, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E,
|
||||
0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x7C, 0x1F, 0x83, 0xC7, 0xE7, 0xC3,
|
||||
0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC7, 0xE3, 0xE1,
|
||||
0xF0, 0xF0, 0x00, 0x3C, 0x00, 0xFE, 0x0F, 0xFE, 0x1E, 0x1F, 0xFC, 0x0F,
|
||||
0xC0, 0x0F, 0x00};
|
||||
|
||||
const GFXglyph FreeSansBold18pt7bGlyphs[] PROGMEM = {
|
||||
{0, 0, 0, 10, 0, 1}, // 0x20 ' '
|
||||
{0, 5, 25, 12, 4, -24}, // 0x21 '!'
|
||||
{16, 13, 9, 17, 2, -25}, // 0x22 '"'
|
||||
{31, 20, 24, 19, 0, -23}, // 0x23 '#'
|
||||
{91, 19, 29, 19, 0, -25}, // 0x24 '$'
|
||||
{160, 29, 25, 31, 1, -24}, // 0x25 '%'
|
||||
{251, 22, 25, 25, 2, -24}, // 0x26 '&'
|
||||
{320, 5, 9, 9, 2, -25}, // 0x27 '''
|
||||
{326, 9, 33, 12, 1, -25}, // 0x28 '('
|
||||
{364, 9, 33, 12, 1, -25}, // 0x29 ')'
|
||||
{402, 12, 11, 14, 0, -25}, // 0x2A '*'
|
||||
{419, 16, 16, 20, 2, -15}, // 0x2B '+'
|
||||
{451, 5, 11, 9, 2, -4}, // 0x2C ','
|
||||
{458, 9, 4, 12, 1, -10}, // 0x2D '-'
|
||||
{463, 5, 5, 9, 2, -4}, // 0x2E '.'
|
||||
{467, 9, 25, 10, 0, -24}, // 0x2F '/'
|
||||
{496, 17, 25, 19, 1, -24}, // 0x30 '0'
|
||||
{550, 10, 25, 19, 3, -24}, // 0x31 '1'
|
||||
{582, 17, 25, 19, 1, -24}, // 0x32 '2'
|
||||
{636, 17, 25, 19, 1, -24}, // 0x33 '3'
|
||||
{690, 16, 25, 19, 2, -24}, // 0x34 '4'
|
||||
{740, 17, 25, 19, 1, -24}, // 0x35 '5'
|
||||
{794, 18, 25, 19, 1, -24}, // 0x36 '6'
|
||||
{851, 17, 25, 19, 1, -24}, // 0x37 '7'
|
||||
{905, 17, 25, 19, 1, -24}, // 0x38 '8'
|
||||
{959, 17, 25, 19, 1, -24}, // 0x39 '9'
|
||||
{1013, 5, 18, 9, 2, -17}, // 0x3A ':'
|
||||
{1025, 5, 24, 9, 2, -17}, // 0x3B ';'
|
||||
{1040, 18, 17, 20, 1, -16}, // 0x3C '<'
|
||||
{1079, 17, 12, 20, 2, -13}, // 0x3D '='
|
||||
{1105, 18, 17, 20, 1, -16}, // 0x3E '>'
|
||||
{1144, 18, 26, 21, 2, -25}, // 0x3F '?'
|
||||
{1203, 32, 31, 34, 1, -25}, // 0x40 '@'
|
||||
{1327, 24, 26, 24, 0, -25}, // 0x41 'A'
|
||||
{1405, 20, 26, 25, 3, -25}, // 0x42 'B'
|
||||
{1470, 23, 26, 25, 1, -25}, // 0x43 'C'
|
||||
{1545, 21, 26, 25, 3, -25}, // 0x44 'D'
|
||||
{1614, 19, 26, 23, 3, -25}, // 0x45 'E'
|
||||
{1676, 17, 26, 22, 3, -25}, // 0x46 'F'
|
||||
{1732, 24, 26, 27, 1, -25}, // 0x47 'G'
|
||||
{1810, 20, 26, 26, 3, -25}, // 0x48 'H'
|
||||
{1875, 5, 26, 11, 3, -25}, // 0x49 'I'
|
||||
{1892, 16, 26, 20, 1, -25}, // 0x4A 'J'
|
||||
{1944, 22, 26, 25, 3, -25}, // 0x4B 'K'
|
||||
{2016, 17, 26, 22, 3, -25}, // 0x4C 'L'
|
||||
{2072, 24, 26, 30, 3, -25}, // 0x4D 'M'
|
||||
{2150, 20, 26, 26, 3, -25}, // 0x4E 'N'
|
||||
{2215, 25, 26, 27, 1, -25}, // 0x4F 'O'
|
||||
{2297, 19, 26, 24, 3, -25}, // 0x50 'P'
|
||||
{2359, 25, 27, 27, 1, -25}, // 0x51 'Q'
|
||||
{2444, 21, 26, 25, 3, -25}, // 0x52 'R'
|
||||
{2513, 20, 26, 24, 2, -25}, // 0x53 'S'
|
||||
{2578, 19, 26, 23, 2, -25}, // 0x54 'T'
|
||||
{2640, 20, 26, 26, 3, -25}, // 0x55 'U'
|
||||
{2705, 22, 26, 23, 1, -25}, // 0x56 'V'
|
||||
{2777, 32, 26, 34, 1, -25}, // 0x57 'W'
|
||||
{2881, 22, 26, 24, 1, -25}, // 0x58 'X'
|
||||
{2953, 21, 26, 22, 1, -25}, // 0x59 'Y'
|
||||
{3022, 19, 26, 21, 1, -25}, // 0x5A 'Z'
|
||||
{3084, 8, 33, 12, 2, -25}, // 0x5B '['
|
||||
{3117, 10, 25, 10, 0, -24}, // 0x5C '\'
|
||||
{3149, 8, 33, 12, 1, -25}, // 0x5D ']'
|
||||
{3182, 16, 15, 20, 2, -23}, // 0x5E '^'
|
||||
{3212, 21, 3, 19, -1, 5}, // 0x5F '_'
|
||||
{3220, 7, 5, 9, 1, -25}, // 0x60 '`'
|
||||
{3225, 18, 19, 20, 1, -18}, // 0x61 'a'
|
||||
{3268, 18, 26, 22, 2, -25}, // 0x62 'b'
|
||||
{3327, 17, 19, 20, 1, -18}, // 0x63 'c'
|
||||
{3368, 19, 26, 22, 1, -25}, // 0x64 'd'
|
||||
{3430, 18, 19, 20, 1, -18}, // 0x65 'e'
|
||||
{3473, 10, 26, 12, 1, -25}, // 0x66 'f'
|
||||
{3506, 18, 26, 21, 1, -18}, // 0x67 'g'
|
||||
{3565, 17, 26, 21, 2, -25}, // 0x68 'h'
|
||||
{3621, 5, 26, 10, 2, -25}, // 0x69 'i'
|
||||
{3638, 7, 33, 10, 0, -25}, // 0x6A 'j'
|
||||
{3667, 17, 26, 20, 2, -25}, // 0x6B 'k'
|
||||
{3723, 5, 26, 9, 2, -25}, // 0x6C 'l'
|
||||
{3740, 27, 19, 31, 2, -18}, // 0x6D 'm'
|
||||
{3805, 17, 19, 21, 2, -18}, // 0x6E 'n'
|
||||
{3846, 19, 19, 21, 1, -18}, // 0x6F 'o'
|
||||
{3892, 18, 26, 22, 2, -18}, // 0x70 'p'
|
||||
{3951, 19, 26, 22, 1, -18}, // 0x71 'q'
|
||||
{4013, 11, 19, 14, 2, -18}, // 0x72 'r'
|
||||
{4040, 17, 19, 19, 1, -18}, // 0x73 's'
|
||||
{4081, 9, 23, 12, 1, -22}, // 0x74 't'
|
||||
{4107, 17, 19, 21, 2, -18}, // 0x75 'u'
|
||||
{4148, 19, 19, 19, 0, -18}, // 0x76 'v'
|
||||
{4194, 27, 19, 27, 0, -18}, // 0x77 'w'
|
||||
{4259, 18, 19, 19, 1, -18}, // 0x78 'x'
|
||||
{4302, 19, 26, 19, 0, -18}, // 0x79 'y'
|
||||
{4364, 16, 19, 18, 1, -18}, // 0x7A 'z'
|
||||
{4402, 9, 33, 14, 1, -25}, // 0x7B '{'
|
||||
{4440, 3, 33, 10, 4, -25}, // 0x7C '|'
|
||||
{4453, 9, 33, 14, 3, -25}, // 0x7D '}'
|
||||
{4491, 15, 6, 18, 1, -10}}; // 0x7E '~'
|
||||
|
||||
const GFXfont FreeSansBold18pt7b PROGMEM = {
|
||||
(uint8_t *)FreeSansBold18pt7bBitmaps, (GFXglyph *)FreeSansBold18pt7bGlyphs,
|
||||
0x20, 0x7E, 42};
|
||||
|
||||
// Approx. 5175 bytes
|
228
src/fonts/FreeSansBold18pt7b.trimmed.h
Normal file
228
src/fonts/FreeSansBold18pt7b.trimmed.h
Normal file
@ -0,0 +1,228 @@
|
||||
/*
|
||||
|
||||
Generated by AdafruitGFXFontToBitmap
|
||||
https: //github.com/MvRens/AdafruitGFXFontTools
|
||||
|
||||
Source: FreeSansBold18pt7b.h
|
||||
Filter: [ 0-9\.mSTOPMenuERCalibrt]
|
||||
|
||||
*/
|
||||
|
||||
const uint8_t FreeSansBold18pt7bTrimmedBitmaps[] PROGMEM = {
|
||||
0xFF, 0xFF, 0xFF, 0x80, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF, 0x87, 0xFF,
|
||||
0xC7, 0xE3, 0xF3, 0xE0, 0xF9, 0xF0, 0x7D, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC,
|
||||
0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F,
|
||||
0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xDF, 0x07, 0xCF, 0x83, 0xE7, 0xE3,
|
||||
0xF1, 0xFF, 0xF0, 0xFF, 0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x01, 0xC0,
|
||||
0xF0, 0x3C, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xC1, 0xF0, 0x7C,
|
||||
0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07,
|
||||
0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC0, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF,
|
||||
0x8F, 0xFF, 0xE7, 0xE3, 0xF7, 0xE0, 0xFF, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8,
|
||||
0x0F, 0x80, 0x07, 0xC0, 0x07, 0xE0, 0x03, 0xE0, 0x03, 0xF0, 0x03, 0xF0,
|
||||
0x07, 0xF0, 0x07, 0xF0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xC0, 0x07, 0xC0,
|
||||
0x03, 0xE0, 0x03, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0xFF, 0x7F, 0xFF, 0x80,
|
||||
0x07, 0xE0, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F, 0xFF, 0xCF, 0xC3, 0xF7, 0xC0,
|
||||
0xFB, 0xE0, 0x7D, 0xF0, 0x3E, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x0F, 0x80,
|
||||
0x3F, 0x80, 0x1F, 0xC0, 0x0F, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F,
|
||||
0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x83, 0xF7, 0xC3, 0xF3, 0xFF, 0xF8, 0xFF,
|
||||
0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0xFC, 0x01, 0xFC,
|
||||
0x01, 0xFC, 0x03, 0xFC, 0x07, 0x7C, 0x07, 0x7C, 0x0E, 0x7C, 0x0E, 0x7C,
|
||||
0x1C, 0x7C, 0x18, 0x7C, 0x38, 0x7C, 0x70, 0x7C, 0x60, 0x7C, 0xE0, 0x7C,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x7C, 0x00, 0x7C,
|
||||
0x00, 0x7C, 0x00, 0x7C, 0x00, 0x7C, 0x00, 0x7C, 0x1F, 0xFF, 0x0F, 0xFF,
|
||||
0x8F, 0xFF, 0xC7, 0xFF, 0xE3, 0xC0, 0x01, 0xE0, 0x00, 0xE0, 0x00, 0x70,
|
||||
0x00, 0x79, 0xF0, 0x3F, 0xFE, 0x1F, 0xFF, 0x8F, 0xFF, 0xE7, 0xC3, 0xF0,
|
||||
0x00, 0xFC, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xFE, 0x03,
|
||||
0xFF, 0x03, 0xFF, 0xC3, 0xF3, 0xFF, 0xF1, 0xFF, 0xF8, 0x3F, 0xF0, 0x07,
|
||||
0xE0, 0x00, 0x03, 0xF8, 0x03, 0xFF, 0x81, 0xFF, 0xF0, 0xFF, 0xFE, 0x3E,
|
||||
0x1F, 0x9F, 0x03, 0xE7, 0xC0, 0x03, 0xE0, 0x00, 0xF8, 0xF8, 0x3E, 0xFF,
|
||||
0x8F, 0xFF, 0xF3, 0xFF, 0xFE, 0xFE, 0x1F, 0xBF, 0x03, 0xFF, 0x80, 0x7F,
|
||||
0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01, 0xF7, 0x80, 0x7D, 0xF0, 0x3E, 0x7E,
|
||||
0x1F, 0x8F, 0xFF, 0xC1, 0xFF, 0xF0, 0x3F, 0xF0, 0x03, 0xF0, 0x00, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0xF0, 0x00, 0xF8,
|
||||
0x00, 0xF8, 0x00, 0x78, 0x00, 0x7C, 0x00, 0x3C, 0x00, 0x3E, 0x00, 0x1E,
|
||||
0x00, 0x1F, 0x00, 0x0F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xC0, 0x03,
|
||||
0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x78, 0x00, 0x7C, 0x00, 0x3E, 0x00,
|
||||
0x1F, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xE0, 0x07, 0xFC, 0x0F, 0xFF, 0x07,
|
||||
0xFF, 0xC7, 0xC3, 0xF3, 0xC0, 0xF9, 0xE0, 0x3C, 0xF0, 0x1E, 0x78, 0x1F,
|
||||
0x1E, 0x1F, 0x07, 0xFF, 0x01, 0xFF, 0x03, 0xFF, 0xE3, 0xF1, 0xF9, 0xF0,
|
||||
0x7D, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x83, 0xF7,
|
||||
0xC3, 0xF3, 0xFF, 0xF8, 0xFF, 0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x07,
|
||||
0xE0, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F, 0xFF, 0xC7, 0xE3, 0xF7, 0xE0, 0xFB,
|
||||
0xE0, 0x3D, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x83,
|
||||
0xF7, 0xE3, 0xFB, 0xFF, 0xFC, 0xFF, 0xFE, 0x3F, 0xDF, 0x07, 0xCF, 0x80,
|
||||
0x07, 0x80, 0x03, 0xDF, 0x03, 0xE7, 0xC3, 0xE3, 0xFF, 0xF0, 0xFF, 0xF0,
|
||||
0x3F, 0xF0, 0x07, 0xE0, 0x00, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0x80, 0x3F,
|
||||
0xFF, 0xC0, 0xFF, 0xFF, 0xC3, 0xF8, 0x1F, 0x87, 0xE0, 0x1F, 0x9F, 0x80,
|
||||
0x1F, 0x3E, 0x00, 0x1F, 0x7C, 0x00, 0x3F, 0xF0, 0x00, 0x03, 0xE0, 0x00,
|
||||
0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00,
|
||||
0x7C, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x7D, 0xF0, 0x00, 0xFB,
|
||||
0xF0, 0x03, 0xF3, 0xF0, 0x0F, 0xC7, 0xF0, 0x3F, 0x87, 0xFF, 0xFE, 0x07,
|
||||
0xFF, 0xF8, 0x03, 0xFF, 0xC0, 0x01, 0xFE, 0x00, 0xFF, 0xFF, 0xDF, 0xFF,
|
||||
0xFB, 0xFF, 0xFF, 0x7F, 0xFF, 0xEF, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00,
|
||||
0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7F, 0xFF,
|
||||
0xCF, 0xFF, 0xF9, 0xFF, 0xFF, 0x3F, 0xFF, 0xE7, 0xC0, 0x00, 0xF8, 0x00,
|
||||
0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00,
|
||||
0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0x00,
|
||||
0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x81,
|
||||
0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x81, 0xFF, 0xFB, 0xC3,
|
||||
0xDF, 0xFB, 0xC3, 0xDF, 0xFB, 0xC3, 0xDF, 0xFB, 0xC3, 0xDF, 0xF9, 0xC7,
|
||||
0xDF, 0xF9, 0xE7, 0x9F, 0xF9, 0xE7, 0x9F, 0xF9, 0xE7, 0x9F, 0xF9, 0xE7,
|
||||
0x9F, 0xF8, 0xFF, 0x1F, 0xF8, 0xFF, 0x1F, 0xF8, 0xFF, 0x1F, 0xF8, 0xFF,
|
||||
0x1F, 0xF8, 0x7F, 0x1F, 0xF8, 0x7E, 0x1F, 0xF8, 0x7E, 0x1F, 0xF8, 0x7E,
|
||||
0x1F, 0xF8, 0x3E, 0x1F, 0x00, 0x7F, 0x00, 0x01, 0xFF, 0xF0, 0x01, 0xFF,
|
||||
0xFC, 0x03, 0xFF, 0xFF, 0x01, 0xFC, 0x1F, 0xC1, 0xF8, 0x03, 0xF1, 0xF8,
|
||||
0x00, 0xFC, 0xF8, 0x00, 0x3E, 0x7C, 0x00, 0x1F, 0x7C, 0x00, 0x07, 0xFE,
|
||||
0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x7F,
|
||||
0xE0, 0x00, 0x3F, 0xF0, 0x00, 0x1F, 0xF8, 0x00, 0x0F, 0xBE, 0x00, 0x0F,
|
||||
0x9F, 0x00, 0x07, 0xCF, 0xC0, 0x07, 0xE3, 0xF0, 0x07, 0xE0, 0xFE, 0x0F,
|
||||
0xE0, 0x7F, 0xFF, 0xE0, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xE0, 0x00, 0x3F,
|
||||
0x80, 0x00, 0xFF, 0xFC, 0x1F, 0xFF, 0xE3, 0xFF, 0xFE, 0x7F, 0xFF, 0xEF,
|
||||
0x80, 0xFF, 0xF0, 0x0F, 0xFE, 0x00, 0xFF, 0xC0, 0x1F, 0xF8, 0x03, 0xFF,
|
||||
0x00, 0x7F, 0xE0, 0x1F, 0xFC, 0x07, 0xEF, 0xFF, 0xFD, 0xFF, 0xFF, 0x3F,
|
||||
0xFF, 0xC7, 0xFF, 0xE0, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C,
|
||||
0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8,
|
||||
0x00, 0x1F, 0x00, 0x00, 0xFF, 0xFF, 0x07, 0xFF, 0xFE, 0x3F, 0xFF, 0xF9,
|
||||
0xFF, 0xFF, 0xCF, 0x80, 0x3F, 0x7C, 0x00, 0xFB, 0xE0, 0x07, 0xDF, 0x00,
|
||||
0x3E, 0xF8, 0x01, 0xF7, 0xC0, 0x0F, 0x3E, 0x00, 0xF9, 0xFF, 0xFF, 0x8F,
|
||||
0xFF, 0xF8, 0x7F, 0xFF, 0xC3, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xF8, 0x03,
|
||||
0xE7, 0xC0, 0x1F, 0x3E, 0x00, 0xF9, 0xF0, 0x07, 0xCF, 0x80, 0x3E, 0x7C,
|
||||
0x01, 0xF3, 0xE0, 0x0F, 0x9F, 0x00, 0x7C, 0xF8, 0x03, 0xF7, 0xC0, 0x0F,
|
||||
0xC0, 0x07, 0xF8, 0x01, 0xFF, 0xF0, 0x3F, 0xFF, 0x87, 0xFF, 0xFC, 0x7E,
|
||||
0x0F, 0xCF, 0xC0, 0x7E, 0xF8, 0x03, 0xEF, 0x80, 0x3E, 0xF8, 0x00, 0x0F,
|
||||
0xC0, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0xC0, 0x3F, 0xFF, 0x81, 0xFF, 0xFC,
|
||||
0x03, 0xFF, 0xE0, 0x01, 0xFF, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0xF8, 0x01,
|
||||
0xFF, 0x80, 0x1F, 0xFC, 0x03, 0xFF, 0xE0, 0x7E, 0x7F, 0xFF, 0xE3, 0xFF,
|
||||
0xFC, 0x1F, 0xFF, 0x00, 0x3F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xF0, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F,
|
||||
0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F,
|
||||
0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E,
|
||||
0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C,
|
||||
0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xF8, 0x07, 0xFF,
|
||||
0x83, 0xFF, 0xF1, 0xFF, 0xFE, 0x7C, 0x1F, 0xBE, 0x03, 0xE0, 0x00, 0xF8,
|
||||
0x01, 0xFE, 0x0F, 0xFF, 0x8F, 0xFF, 0xE7, 0xF8, 0xFB, 0xF0, 0x3E, 0xF8,
|
||||
0x0F, 0xBE, 0x07, 0xEF, 0xC3, 0xFB, 0xFF, 0xFE, 0x7F, 0xFF, 0x8F, 0xFB,
|
||||
0xF1, 0xF8, 0xFC, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00,
|
||||
0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE7, 0xE0, 0xFB, 0xFC, 0x3F,
|
||||
0xFF, 0xCF, 0xFF, 0xF3, 0xF8, 0x7E, 0xFC, 0x0F, 0xBF, 0x03, 0xFF, 0x80,
|
||||
0x7F, 0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01, 0xFF, 0x80, 0x7F, 0xF0, 0x3F,
|
||||
0xFC, 0x0F, 0xBF, 0x87, 0xEF, 0xFF, 0xF3, 0xFF, 0xFC, 0xFB, 0xFC, 0x3E,
|
||||
0x7E, 0x00, 0x07, 0xE0, 0x07, 0xFE, 0x03, 0xFF, 0xE0, 0xFF, 0xF8, 0x7E,
|
||||
0x1F, 0x1F, 0x03, 0xCF, 0x80, 0xFB, 0xE0, 0x1E, 0xFF, 0xFF, 0xBF, 0xFF,
|
||||
0xEF, 0xFF, 0xFB, 0xE0, 0x00, 0xF8, 0x00, 0x3F, 0x03, 0xE7, 0xE1, 0xF9,
|
||||
0xFF, 0xFC, 0x3F, 0xFE, 0x07, 0xFF, 0x00, 0x7F, 0x00, 0xFF, 0xFF, 0xF0,
|
||||
0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xF8, 0xF8, 0x3F, 0x1F, 0x7F,
|
||||
0x9F, 0xF3, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xC3, 0xF8, 0x7F,
|
||||
0xF8, 0x3F, 0x07, 0xFE, 0x07, 0xC0, 0xFF, 0xC0, 0xF8, 0x1F, 0xF8, 0x1F,
|
||||
0x03, 0xFF, 0x03, 0xE0, 0x7F, 0xE0, 0x7C, 0x0F, 0xFC, 0x0F, 0x81, 0xFF,
|
||||
0x81, 0xF0, 0x3F, 0xF0, 0x3E, 0x07, 0xFE, 0x07, 0xC0, 0xFF, 0xC0, 0xF8,
|
||||
0x1F, 0xF8, 0x1F, 0x03, 0xFF, 0x03, 0xE0, 0x7F, 0xE0, 0x7C, 0x0F, 0x80,
|
||||
0xF8, 0xF8, 0x7D, 0xFF, 0x3F, 0xFF, 0xDF, 0xFF, 0xEF, 0xE1, 0xFF, 0xE0,
|
||||
0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF,
|
||||
0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F,
|
||||
0xFC, 0x07, 0xFE, 0x03, 0xE0, 0xF8, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xE1,
|
||||
0xF8, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0,
|
||||
0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x00, 0x3E, 0x1F, 0x0F, 0x87,
|
||||
0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0x3E, 0x1F, 0x0F, 0x87, 0xC3, 0xE1, 0xF0,
|
||||
0xF8, 0x7C, 0x3E, 0x1F, 0x0F, 0x87, 0xF3, 0xF8, 0xFC, 0x3E, 0xF8, 0x0F,
|
||||
0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xE0,
|
||||
0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF,
|
||||
0x80, 0xFF, 0xC0, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x9F, 0xF7,
|
||||
0xC7, 0xE3, 0xE0 };
|
||||
|
||||
const GFXglyph FreeSansBold18pt7bTrimmedGlyphs[] PROGMEM = {
|
||||
{ 0, 0, 0, 10, 0, 1 }, // 0x20 ' '
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x21 '!'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x22 '"'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x23 '#'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x24 '$'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x25 '%'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x26 '&'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x27 '''
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x28 '('
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x29 ')'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x2A '*'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x2B '+'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x2C ','
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x2D '-'
|
||||
{ 0, 5, 5, 9, 2, -4 }, // 0x2E '.'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x2F '/'
|
||||
{ 4, 17, 25, 19, 1, -24 }, // 0x30 '0'
|
||||
{ 58, 10, 25, 19, 3, -24 }, // 0x31 '1'
|
||||
{ 90, 17, 25, 19, 1, -24 }, // 0x32 '2'
|
||||
{ 144, 17, 25, 19, 1, -24 }, // 0x33 '3'
|
||||
{ 198, 16, 25, 19, 2, -24 }, // 0x34 '4'
|
||||
{ 248, 17, 25, 19, 1, -24 }, // 0x35 '5'
|
||||
{ 302, 18, 25, 19, 1, -24 }, // 0x36 '6'
|
||||
{ 359, 17, 25, 19, 1, -24 }, // 0x37 '7'
|
||||
{ 413, 17, 25, 19, 1, -24 }, // 0x38 '8'
|
||||
{ 467, 17, 25, 19, 1, -24 }, // 0x39 '9'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x3A ':'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x3B ';'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x3C '<'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x3D '='
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x3E '>'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x3F '?'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x40 '@'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x41 'A'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x42 'B'
|
||||
{ 521, 23, 26, 25, 1, -25 }, // 0x43 'C'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x44 'D'
|
||||
{ 596, 19, 26, 23, 3, -25 }, // 0x45 'E'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x46 'F'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x47 'G'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x48 'H'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x49 'I'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x4A 'J'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x4B 'K'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x4C 'L'
|
||||
{ 658, 24, 26, 30, 3, -25 }, // 0x4D 'M'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x4E 'N'
|
||||
{ 736, 25, 26, 27, 1, -25 }, // 0x4F 'O'
|
||||
{ 818, 19, 26, 24, 3, -25 }, // 0x50 'P'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x51 'Q'
|
||||
{ 880, 21, 26, 25, 3, -25 }, // 0x52 'R'
|
||||
{ 949, 20, 26, 24, 2, -25 }, // 0x53 'S'
|
||||
{ 1014, 19, 26, 23, 2, -25 }, // 0x54 'T'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x55 'U'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x56 'V'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x57 'W'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x58 'X'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x59 'Y'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x5A 'Z'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x5B '['
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x5C '\'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x5D ']'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x5E '^'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x5F '_'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x60 '`'
|
||||
{ 1076, 18, 19, 20, 1, -18 }, // 0x61 'a'
|
||||
{ 1119, 18, 26, 22, 2, -25 }, // 0x62 'b'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x63 'c'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x64 'd'
|
||||
{ 1178, 18, 19, 20, 1, -18 }, // 0x65 'e'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x66 'f'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x67 'g'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x68 'h'
|
||||
{ 1221, 5, 26, 10, 2, -25 }, // 0x69 'i'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x6A 'j'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x6B 'k'
|
||||
{ 1238, 5, 26, 9, 2, -25 }, // 0x6C 'l'
|
||||
{ 1255, 27, 19, 31, 2, -18 }, // 0x6D 'm'
|
||||
{ 1320, 17, 19, 21, 2, -18 }, // 0x6E 'n'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x6F 'o'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x70 'p'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x71 'q'
|
||||
{ 1361, 11, 19, 14, 2, -18 }, // 0x72 'r'
|
||||
{ 0, 0, 0, 0, 0, 0 }, // 0x73 's'
|
||||
{ 1388, 9, 23, 12, 1, -22 }, // 0x74 't'
|
||||
{ 1414, 17, 19, 21, 2, -18 } }; // 0x75 'u'
|
||||
|
||||
const GFXfont FreeSansBold18pt7bTrimmed PROGMEM = {
|
||||
(uint8_t *)FreeSansBold18pt7bTrimmedBitmaps,
|
||||
(GFXglyph *)FreeSansBold18pt7bTrimmedGlyphs,
|
||||
0x20, 0x75, 42 };
|
||||
|
||||
// Approx. 2064 bytes
|
7
src/fonts/trim.bat
Normal file
7
src/fonts/trim.bat
Normal file
@ -0,0 +1,7 @@
|
||||
@Echo Off
|
||||
|
||||
REM It is a nuisance to keep the filter up-to-date with whatever is printed
|
||||
REM in the actual source, but the space savings are worth it.
|
||||
AdafruitGFXFontTrim "[ 0-9\.mSTOPMenuERCalibrt]" FreeSansBold18pt7b.h
|
||||
|
||||
pause
|
191
src/include/config.h
Normal file
191
src/include/config.h
Normal file
@ -0,0 +1,191 @@
|
||||
#ifndef __config
|
||||
#define __config
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Determines if logging over the serial port is enabled.
|
||||
Uses a baud rate of 115200.
|
||||
|
||||
Verbose logging outputs even more, including logging
|
||||
every loop. Only turn on when required.
|
||||
|
||||
|
||||
Due to RAM/flash constraints, most logging lines have
|
||||
been commented out as it would take up around 1.5k of RAM
|
||||
and 4k of flash otherwise, which we don't have.
|
||||
Uncomment those lines as required.
|
||||
|
||||
*/
|
||||
//#define DebugLog
|
||||
//#define VerboseLog
|
||||
|
||||
|
||||
|
||||
class Config
|
||||
{
|
||||
public:
|
||||
/*
|
||||
|
||||
Buttons
|
||||
|
||||
*/
|
||||
static const uint8_t ButtonPinTop = 3;
|
||||
static const uint8_t ButtonPinMiddle = 5;
|
||||
static const uint8_t ButtonPinBottom = 6;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Display
|
||||
Settings for an ST7789 based 240x240 pixel LCD.
|
||||
|
||||
Note that all screen class implementations are only tested against
|
||||
this resolution, changing it may have unexpected results.
|
||||
*/
|
||||
static const uint8_t DisplayWidth = 240;
|
||||
static const uint8_t DisplayHeight = 240;
|
||||
static const uint8_t DisplayRotation = 2;
|
||||
|
||||
|
||||
// Control pins. Data is sent over the hardware SPI pins.
|
||||
static const uint8_t DisplayPinCS = 10;
|
||||
static const uint8_t DisplayPinRST = 9;
|
||||
static const uint8_t DisplayPinDC = 8;
|
||||
static const uint8_t DisplayPinBL = 7;
|
||||
|
||||
|
||||
static const uint16_t DisplayIdleTime = 10000;
|
||||
static const uint16_t DisplayRefreshRate = 1000;
|
||||
|
||||
|
||||
/*
|
||||
Height sensor
|
||||
Settings for a VL53L0X time-of-flight sensor.
|
||||
|
||||
*/
|
||||
// Note that this must correspond to the default address of the module,
|
||||
// the initialisation code skips reassigning the address to save calls.
|
||||
static const uint8_t HeightSensorI2CAddress = 0x29;
|
||||
|
||||
static const uint32_t HeightSensorBudget = 200000;
|
||||
|
||||
|
||||
// Values above this will be disregarded as invalid
|
||||
static const uint16_t HeightMeasurementMax = 1500;
|
||||
|
||||
// How much the measurements can change to still be considered "stable"
|
||||
static const uint8_t HeightMeasurementDeltaStable = 10;
|
||||
static const uint8_t HeightMeasurementDeltaStableCount = 3;
|
||||
static const uint16_t HeightMeasurementDeltaStableMoveTimeout = 2000;
|
||||
|
||||
// How far in advance to stop the motor
|
||||
static const uint8_t HeightMeasurementDeltaStop = 0;
|
||||
|
||||
// How far off we can be from the target height to still be considered on target
|
||||
static const uint8_t HeightMeasurementDeltaOnTarget = 15;
|
||||
|
||||
// How long we allow invalid measurements until the move operation is aborted
|
||||
static const uint16_t HeightMeasurementAbortTimeout = 500;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Motor driver
|
||||
Settings for a Polulu G2 driver board.
|
||||
|
||||
*/
|
||||
static const uint8_t MotorPinPWM = 14;
|
||||
static const uint8_t MotorPinDirection = 15;
|
||||
static const uint8_t MotorPinSleep = 16;
|
||||
static const uint8_t MotorPinCurrentSensing = 17;
|
||||
|
||||
static const constexpr float MotorCurrentLimit = 6.0;
|
||||
static const uint16_t MotorCurrentCheckInterval = 100;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Colors
|
||||
|
||||
*/
|
||||
// A useful RGB565 calculator: http://www.rinkydinkelectronics.com/calc_rgb565.php
|
||||
#define ColorBlack 0x0000
|
||||
#define ColorWhite 0xFFFF
|
||||
#define ColorYellow 0xFFE0
|
||||
#define ColorRed 0xF800
|
||||
#define ColorGreen 0x07E0
|
||||
|
||||
#define ColorLightGray 0x9492
|
||||
#define ColorDarkGray 0x528A
|
||||
#define ColorDarkerGray 0x2965
|
||||
|
||||
#define ColorStopRed 0xF9A6
|
||||
#define ColorDarkRed 0x4861
|
||||
#define ColorSoftGreen 0x2BE7
|
||||
#define ColorSoftBlue 0x3376
|
||||
#define ColorDarkBlue 0x0907
|
||||
|
||||
#define ColorOrange 0xF443
|
||||
|
||||
|
||||
// Init sequence
|
||||
static const uint16_t ColorInitSeqBackground = ColorBlack;
|
||||
static const uint16_t ColorInitSeqTitle = ColorYellow;
|
||||
static const uint16_t ColorInitSeqItems = ColorWhite;
|
||||
static const uint16_t ColorInitSeqSuccess = ColorGreen;
|
||||
static const uint16_t ColorInitSeqError = ColorRed;
|
||||
|
||||
|
||||
// Home
|
||||
static const uint16_t ColorHomeBackground = ColorBlack;
|
||||
|
||||
static const uint16_t ColorHomeMenuText = ColorWhite;
|
||||
static const uint16_t ColorHomeMenuArrow = ColorDarkGray;
|
||||
|
||||
static const uint16_t ColorNonPresetText = ColorLightGray;
|
||||
static const uint16_t ColorNonPresetBackground = ColorBlack;
|
||||
|
||||
static const uint16_t ColorPresetText = ColorLightGray;
|
||||
static const uint16_t ColorPresetBackground = ColorDarkerGray;
|
||||
static const uint16_t ColorPresetArrow = ColorDarkGray;
|
||||
|
||||
static const uint16_t ColorPresetSelectedText = ColorWhite;
|
||||
static const uint16_t ColorPresetSelectedBackground = ColorSoftGreen;
|
||||
|
||||
|
||||
// Move
|
||||
static const uint16_t ColorMoveBackground = ColorBlack;
|
||||
|
||||
static const uint16_t ColorMoveArrow = ColorDarkGray;
|
||||
static const uint16_t ColorMoveTarget = ColorWhite;
|
||||
static const uint16_t ColorMoveCurrent = ColorWhite;
|
||||
static const uint16_t ColorMoveStop = ColorStopRed;
|
||||
|
||||
|
||||
// Move error / overcurrent
|
||||
static const uint16_t ColorErrorBackground = ColorDarkRed;
|
||||
static const uint16_t ColorErrorText = ColorStopRed;
|
||||
|
||||
|
||||
// Menu
|
||||
static const uint16_t ColorMenuHeaderText = ColorWhite;
|
||||
static const uint16_t ColorMenuHeaderBackground = ColorSoftBlue;
|
||||
|
||||
static const uint16_t ColorMenuText = ColorWhite;
|
||||
static const uint16_t ColorMenuBackground = ColorBlack;
|
||||
|
||||
static const uint16_t ColorMenuSelectedText = ColorWhite;
|
||||
static const uint16_t ColorMenuSelectedBackground = ColorDarkBlue;
|
||||
|
||||
static const uint16_t ColorCalibrateBackground = ColorBlack;
|
||||
static const uint16_t ColorCalibrateIndicators = ColorWhite;
|
||||
static const uint16_t ColorCalibrateValue = ColorWhite;
|
||||
static const uint16_t ColorCalibrateInvalidValue = ColorOrange;
|
||||
static const uint16_t ColorCalibrateDigitMarker = ColorWhite;
|
||||
};
|
||||
|
||||
#endif
|
86
src/include/metrics.h
Normal file
86
src/include/metrics.h
Normal file
@ -0,0 +1,86 @@
|
||||
#ifndef __metrics
|
||||
#define __metrics
|
||||
|
||||
#include <stdint.h>
|
||||
//#include "fonts/FreeSansBold18pt7b.trimmed.h"
|
||||
|
||||
class Metrics
|
||||
{
|
||||
public:
|
||||
/*
|
||||
|
||||
Small font
|
||||
Uses the built-in Adafruit GFX 5x8 font.
|
||||
|
||||
*/
|
||||
static constexpr const GFXfont* SmallFont = nullptr;
|
||||
static const uint8_t SmallFontTextSize = 1;
|
||||
|
||||
static const uint16_t SmallFontBaseline = 0;
|
||||
static const uint16_t SmallFontHeight = 8;
|
||||
static const uint16_t SmallFontMaxHeight = Metrics::SmallFontHeight;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Large font
|
||||
Originally used a trimmed version of the FreeSansBold 18pt font.
|
||||
Unfortunately due to program size constraints (I already ordered
|
||||
PCBs based on the ATMega328P) I'll use a scaled version of the
|
||||
built-in font for now.
|
||||
*/
|
||||
static constexpr const GFXfont* LargeFont = nullptr;//&FreeSansBold18pt7bTrimmed;
|
||||
static const uint8_t LargeFontTextSize = 3;
|
||||
|
||||
//static const uint16_t LargeFontBaseline = 25;
|
||||
//static const uint16_t LargeFontHeight = Metrics::LargeFontBaseline;
|
||||
//static const uint16_t LargeFontMaxHeight = 42;
|
||||
|
||||
static const uint16_t LargeFontBaseline = 0;
|
||||
static const uint16_t LargeFontHeight = 24;
|
||||
static const uint16_t LargeFontMaxHeight = 24;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Text line
|
||||
Defines the height of a standard line of text including margins.
|
||||
Suitable for applying a background color.
|
||||
|
||||
*/
|
||||
static const uint16_t LargeTextLineMargin = 7;
|
||||
static const uint16_t LargeTextLineYOffset = Metrics::LargeFontBaseline + Metrics::LargeTextLineMargin;
|
||||
static const uint16_t LargeTextLineHeight = (Metrics::LargeFontHeight + (2 * Metrics::LargeTextLineMargin));
|
||||
|
||||
static const uint16_t SmallTextLineMargin = 7;
|
||||
static const uint16_t SmallTextLineHeight = (Metrics::SmallFontHeight + (2 * Metrics::SmallTextLineMargin));
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Arrows
|
||||
|
||||
*/
|
||||
static const uint16_t HArrowWidth = 10;
|
||||
static const uint16_t HArrowHeight = 20;
|
||||
|
||||
static const uint16_t VArrowWidth = Metrics::HArrowHeight;
|
||||
static const uint16_t VArrowHeight = Metrics::HArrowWidth;
|
||||
|
||||
static const uint16_t ArrowMargin = 8;
|
||||
|
||||
static const uint16_t LargeTextLineHArrowYOffset = (Metrics::LargeTextLineHeight - Metrics::HArrowHeight) / 2;
|
||||
static const uint16_t LargeTextLineVArrowYOffset = (Metrics::LargeTextLineHeight - Metrics::VArrowHeight) / 2;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Screen layout
|
||||
Shared amongst screens for a consistent layout
|
||||
|
||||
*/
|
||||
static const uint16_t MiddleLargeTextLineY = 100;
|
||||
};
|
||||
|
||||
#endif
|
16
src/include/screenids.h
Normal file
16
src/include/screenids.h
Normal file
@ -0,0 +1,16 @@
|
||||
#ifndef __screenids
|
||||
#define __screenids
|
||||
|
||||
enum class ScreenId
|
||||
{
|
||||
Home = 1,
|
||||
Calibrate,
|
||||
Move,
|
||||
MoveOvercurrent,
|
||||
MoveSensorError,
|
||||
Menu,
|
||||
Manual,
|
||||
Presets
|
||||
};
|
||||
|
||||
#endif
|
302
src/lib/control.cpp
Normal file
302
src/lib/control.cpp
Normal file
@ -0,0 +1,302 @@
|
||||
#include "./control.h"
|
||||
#include <Wire.h>
|
||||
#include "./debug.h"
|
||||
#include "./motor.h"
|
||||
#include "./state.h"
|
||||
#include "./settings.h"
|
||||
#include "include/config.h"
|
||||
|
||||
|
||||
ControlManager Control = ControlManager();
|
||||
|
||||
|
||||
VL53L0XInitResult ControlManager::init()
|
||||
{
|
||||
//dln("[ CONTROL ] Initializing");
|
||||
Wire.begin();
|
||||
|
||||
this->heightSensor.setTimeout(500);
|
||||
auto result = this->heightSensor.init();
|
||||
if (result != VL53L0XInitResult::Success)
|
||||
return result;
|
||||
|
||||
this->heightSensor.setMeasurementTimingBudget(Config::HeightSensorBudget);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
ControlUpdateResult ControlManager::update()
|
||||
{
|
||||
// Always read the range if in async reading mode, even if we're not supposed to
|
||||
// be moving anymore, so it clears the status.
|
||||
bool asyncReading = heightSensor.asyncReading();
|
||||
|
||||
uint16_t measurement = asyncReading
|
||||
? heightSensor.asyncReadRangeSingleMillimeters()
|
||||
: VL53L0XRangeNotReady;
|
||||
|
||||
|
||||
//vl("[ CONTROL ] Update: asyncReading = "); vl(asyncReading); vl(", measurement = "); vl(measurement);
|
||||
//vl(", moveDirection = "); vl((uint8_t)this->moveDirection); vl(", stabilizationStart = "); vln(this->stabilizationStart);
|
||||
|
||||
|
||||
bool moving = this->moveDirection != MoveDirection::None && this->stabilizationStart == 0;
|
||||
if (!moving && this->stabilizationStart == 0)
|
||||
{
|
||||
//vl("[ CONTROL ] Idle");
|
||||
return ControlUpdateResult::Idle;
|
||||
}
|
||||
|
||||
|
||||
// Check for over-current
|
||||
if (moving && CurrentTime - lastCurrentCheck >= Config::MotorCurrentCheckInterval)
|
||||
{
|
||||
lastCurrentCheck = CurrentTime;
|
||||
|
||||
if (motorIsOvercurrent())
|
||||
{
|
||||
//dln("[ CONTROL ] Overcurrent detected!");
|
||||
this->moveStop();
|
||||
|
||||
return ControlUpdateResult::Overcurrent;
|
||||
}
|
||||
}
|
||||
|
||||
// Read sensor
|
||||
if (!asyncReading)
|
||||
{
|
||||
//vln("[ CONTROL ] Starting async read");
|
||||
heightSensor.asyncStartReadRangeSingleMillimeters();
|
||||
}
|
||||
|
||||
|
||||
if (measurement != VL53L0XRangeNotReady)
|
||||
{
|
||||
if (measurement > Config::HeightMeasurementMax)
|
||||
// Treat invalid results as a timeout, so the checks further on are more readable
|
||||
measurement = VL53L0XRangeTimeout;
|
||||
|
||||
|
||||
//dl("[ CONTROL ] Measurement: "); dln(measurement);
|
||||
this->lastMeasurement = measurement != VL53L0XRangeTimeout ? measurement : 0;
|
||||
}
|
||||
|
||||
|
||||
if (measurement != VL53L0XRangeNotReady && measurement != VL53L0XRangeTimeout)
|
||||
{
|
||||
this->currentMeasurement = measurement;
|
||||
this->lastValidMeasurement = CurrentTime;
|
||||
|
||||
// TODO: PWM the motor when we're getting close, if overshoot turns out to be an issue in testing
|
||||
|
||||
// Check if target has been reached
|
||||
if (moving && this->targetReached())
|
||||
{
|
||||
this->moveStop();
|
||||
|
||||
return ControlUpdateResult::TargetReached;
|
||||
}
|
||||
}
|
||||
|
||||
if (measurement == VL53L0XRangeTimeout && moving)
|
||||
{
|
||||
// While moving, allow incidental invalid results
|
||||
if (CurrentTime - lastValidMeasurement >= Config::HeightMeasurementAbortTimeout)
|
||||
{
|
||||
//dln("[ CONTROL ] Timeout while moving!");
|
||||
this->moveStop();
|
||||
|
||||
return ControlUpdateResult::SensorError;
|
||||
}
|
||||
}
|
||||
|
||||
if (measurement == VL53L0XRangeTimeout && this->moveDirection == MoveDirection::None)
|
||||
{
|
||||
// In pure stabilization (not pre-move), immediately return the sensor error
|
||||
return ControlUpdateResult::SensorError;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (this->stabilizationStart && this->moveDirection != MoveDirection::None)
|
||||
{
|
||||
// Pre-move stabilization
|
||||
if (this->stabilized())
|
||||
{
|
||||
//dln("[ CONTROL ] Pre-move stabilization successful");
|
||||
|
||||
// Sensor looks good, let's go!
|
||||
motorStart(this->moveDirection == MoveDirection::Up ? MotorDirection::Up : MotorDirection::Down);
|
||||
return ControlUpdateResult::Moving;
|
||||
}
|
||||
else if (CurrentTime - this->stabilizationStart >= Config::HeightMeasurementDeltaStableMoveTimeout)
|
||||
{
|
||||
//dln("[ CONTROL ] Timeout in pre-move stabilization!");
|
||||
|
||||
// Timeout expired, abort the move
|
||||
this->stabilizationStart = 0;
|
||||
this->moveDirection = MoveDirection::None;
|
||||
|
||||
return ControlUpdateResult::SensorError;
|
||||
}
|
||||
}
|
||||
|
||||
return moving ? ControlUpdateResult::Moving : ControlUpdateResult::Stabilizing;
|
||||
}
|
||||
|
||||
|
||||
void ControlManager::stabilizeStart()
|
||||
{
|
||||
//dln("[ CONTROL ] Starting stabilization");
|
||||
|
||||
this->stabilizationStart = CurrentTime;
|
||||
this->stabilizeTargetMeasurement = 0;
|
||||
}
|
||||
|
||||
|
||||
bool ControlManager::stabilized()
|
||||
{
|
||||
if (this->stabilizeTargetMeasurement == 0)
|
||||
{
|
||||
this->stabilizeTargetMeasurement = this->currentMeasurement;
|
||||
this->stabilizationLastCheck = this->lastValidMeasurement;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Only count if we have a new measurement
|
||||
if (this->stabilizationLastCheck == this->lastValidMeasurement)
|
||||
return false;
|
||||
|
||||
this->stabilizationLastCheck = this->lastValidMeasurement;
|
||||
|
||||
|
||||
int16_t delta = this->currentMeasurement - this->stabilizeTargetMeasurement;
|
||||
if (abs(delta) <= Config::HeightMeasurementDeltaStable)
|
||||
{
|
||||
this->stabilizeCount++;
|
||||
|
||||
if (this->stabilizeCount >= Config::HeightMeasurementDeltaStableCount)
|
||||
{
|
||||
//dln("[ CONTROL ] Stable");
|
||||
this->stabilizationStart = 0;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// If it's this much off, chances are the actual value is somewhere in the middle
|
||||
this->stabilizeTargetMeasurement += (delta / 2);
|
||||
this->stabilizeCount = 0;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void ControlManager::moveStart(uint16_t height)
|
||||
{
|
||||
//dl("[ CONTROL ] Starting move to: "); dln(height);
|
||||
|
||||
if (height < Settings.Height.Minimum)
|
||||
{
|
||||
//dl("[ CONTROL ] Target is below minimum, changing to: "); dln(Settings.Height.Minimum);
|
||||
height = Settings.Height.Minimum;
|
||||
}
|
||||
else if (height > Settings.Height.Maximum)
|
||||
{
|
||||
//dl("[ CONTROL ] Target is above maximum, changing to: "); dln(Settings.Height.Maximum);
|
||||
height = Settings.Height.Maximum;
|
||||
}
|
||||
|
||||
this->moveTargetHeight = height;
|
||||
this->moveDirection = height > this->getCurrentHeight() ? MoveDirection::Up : MoveDirection::Down;
|
||||
|
||||
// Wait for a stable result
|
||||
this->stabilizeStart();
|
||||
}
|
||||
|
||||
|
||||
void ControlManager::moveStop()
|
||||
{
|
||||
//dln("[ CONTROL ] Stopping move");
|
||||
|
||||
motorStop();
|
||||
this->moveDirection = MoveDirection::None;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void ControlManager::snapToPreset()
|
||||
{
|
||||
for (uint8_t i = 0; i < 2; i++)
|
||||
{
|
||||
if (abs(this->getCurrentHeight() - Settings.Height.Preset[i]) <= Config::HeightMeasurementDeltaOnTarget)
|
||||
{
|
||||
this->currentMeasurement = Settings.Height.Preset[i] - Settings.Height.Offset;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool ControlManager::targetReached()
|
||||
{
|
||||
auto currentHeight = this->getCurrentHeight();
|
||||
|
||||
// Checks depend on the direction, so it returns true immediately if we've overshot the target
|
||||
switch (this->moveDirection)
|
||||
{
|
||||
case MoveDirection::Up:
|
||||
if (currentHeight >= this->moveTargetHeight - Config::HeightMeasurementDeltaStop)
|
||||
{
|
||||
// Snap to the target
|
||||
if (currentHeight - this->moveTargetHeight <= Config::HeightMeasurementDeltaOnTarget)
|
||||
this->currentMeasurement = this->moveTargetHeight - Settings.Height.Offset;
|
||||
|
||||
//dln("[ CONTROL ] Target reached");
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
|
||||
case MoveDirection::Down:
|
||||
if (currentHeight <= this->moveTargetHeight + Config::HeightMeasurementDeltaStop)
|
||||
{
|
||||
// Snap to the target
|
||||
if (this->moveTargetHeight - currentHeight <= Config::HeightMeasurementDeltaOnTarget)
|
||||
this->currentMeasurement = this->moveTargetHeight - Settings.Height.Offset;
|
||||
|
||||
//dln("[ CONTROL ] Target reached");
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void ControlManager::getDisplayHeight(char* buffer, uint16_t value)
|
||||
{
|
||||
if (value == 0)
|
||||
{
|
||||
buffer[0] = '-';
|
||||
buffer[1] = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
uint8_t displayValue = value / 10;
|
||||
|
||||
if (displayValue > 99)
|
||||
buffer[0] = '0' + ((displayValue / 100) % 10);
|
||||
else
|
||||
buffer[0] = '0';
|
||||
|
||||
buffer[1] = '.';
|
||||
buffer[2] = '0' + ((displayValue / 10) % 10);
|
||||
buffer[3] = '0' + (displayValue % 10);
|
||||
buffer[4] = 'm';
|
||||
buffer[5] = 0;
|
||||
}
|
82
src/lib/control.h
Normal file
82
src/lib/control.h
Normal file
@ -0,0 +1,82 @@
|
||||
#ifndef __control
|
||||
#define __control
|
||||
|
||||
#include <stdint.h>
|
||||
#include "./vl53l0x.h"
|
||||
#include "./settings.h"
|
||||
|
||||
|
||||
enum class ControlUpdateResult
|
||||
{
|
||||
Idle,
|
||||
Stabilizing,
|
||||
Moving,
|
||||
TargetReached,
|
||||
SensorError,
|
||||
Overcurrent
|
||||
};
|
||||
|
||||
|
||||
enum class MoveDirection
|
||||
{
|
||||
None,
|
||||
Up,
|
||||
Down
|
||||
};
|
||||
|
||||
|
||||
|
||||
class ControlManager
|
||||
{
|
||||
public:
|
||||
VL53L0XInitResult init();
|
||||
ControlUpdateResult update();
|
||||
|
||||
|
||||
void stabilizeStart();
|
||||
bool stabilized();
|
||||
|
||||
void moveStart(uint16_t height);
|
||||
void moveStop();
|
||||
|
||||
void snapToPreset();
|
||||
|
||||
|
||||
// Formats a height value as "0.00m" (always exactly 5 characters long).
|
||||
// Buffer must be at least 6 bytes long, a null character is added.
|
||||
// The value is the raw height sensor value, the offset is added by this function.
|
||||
void getDisplayHeight(char* buffer, uint16_t value);
|
||||
|
||||
|
||||
uint16_t getCurrentHeight() { return this->currentMeasurement + Settings.Height.Offset; }
|
||||
uint16_t getCurrentMeasurement() { return this->currentMeasurement; }
|
||||
|
||||
uint16_t getLastMeasurement() { return this->lastMeasurement; }
|
||||
MoveDirection getMoveDirection() { return this->moveDirection; }
|
||||
uint16_t getMoveTargetHeight() { return this->moveTargetHeight; }
|
||||
bool getIsStabilizing() { return this->stabilizationStart != 0; }
|
||||
|
||||
private:
|
||||
bool targetReached();
|
||||
|
||||
VL53L0X heightSensor = VL53L0X();
|
||||
uint16_t currentMeasurement;
|
||||
uint16_t lastMeasurement = 0;
|
||||
uint32_t lastValidMeasurement = 0;
|
||||
|
||||
uint32_t lastCurrentCheck = 0;
|
||||
|
||||
MoveDirection moveDirection;
|
||||
uint16_t moveTargetHeight;
|
||||
|
||||
uint32_t stabilizationStart = 0;
|
||||
uint8_t stabilizeCount = 0;
|
||||
uint16_t stabilizeTargetMeasurement = 0;
|
||||
uint32_t stabilizationLastCheck = 0;
|
||||
};
|
||||
|
||||
|
||||
extern ControlManager Control;
|
||||
|
||||
|
||||
#endif
|
28
src/lib/debug.h
Normal file
28
src/lib/debug.h
Normal file
@ -0,0 +1,28 @@
|
||||
#ifndef __debug
|
||||
#define __debug
|
||||
|
||||
#include <Arduino.h>
|
||||
#include "include/config.h"
|
||||
|
||||
|
||||
#ifdef DebugLog
|
||||
#define DebugInit() Serial.begin(115200)
|
||||
#define dl(value) Serial.print(value)
|
||||
#define dln(value) Serial.println(value)
|
||||
#else
|
||||
#define DebugInit()
|
||||
#define dl(value)
|
||||
#define dln(value)
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef VerboseLog
|
||||
#define vl(value) Serial.print(value)
|
||||
#define vln(value) Serial.println(value)
|
||||
#else
|
||||
#define vl(value)
|
||||
#define vln(value)
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
57
src/lib/motor.cpp
Normal file
57
src/lib/motor.cpp
Normal file
@ -0,0 +1,57 @@
|
||||
#include "./motor.h"
|
||||
#include "include/config.h"
|
||||
#include "./debug.h"
|
||||
#include <Arduino.h>
|
||||
|
||||
|
||||
void motorInit()
|
||||
{
|
||||
pinMode(Config::MotorPinSleep, OUTPUT);
|
||||
digitalWrite(Config::MotorPinSleep, LOW);
|
||||
|
||||
pinMode(Config::MotorPinPWM, OUTPUT);
|
||||
digitalWrite(Config::MotorPinPWM, LOW);
|
||||
|
||||
pinMode(Config::MotorPinDirection, OUTPUT);
|
||||
pinMode(Config::MotorPinCurrentSensing, INPUT);
|
||||
|
||||
// See motorIsOvercurrent
|
||||
analogReference(INTERNAL);
|
||||
delay(10);
|
||||
}
|
||||
|
||||
|
||||
void motorStart(MotorDirection direction)
|
||||
{
|
||||
//dl("[ MOTOR ] Starting in direction: "); dln((uint8_t)direction);
|
||||
|
||||
digitalWrite(Config::MotorPinDirection, direction == MotorDirection::Up ? HIGH : LOW);
|
||||
digitalWrite(Config::MotorPinSleep, HIGH);
|
||||
digitalWrite(Config::MotorPinPWM, HIGH);
|
||||
}
|
||||
|
||||
|
||||
void motorStop()
|
||||
{
|
||||
//dln("[ MOTOR ] Stopping");
|
||||
|
||||
digitalWrite(Config::MotorPinPWM, LOW);
|
||||
digitalWrite(Config::MotorPinSleep, LOW);
|
||||
digitalWrite(Config::MotorPinDirection, LOW);
|
||||
}
|
||||
|
||||
|
||||
bool motorIsOvercurrent()
|
||||
{
|
||||
// The Polugu G2 module outputs 20 mV/A plus a 50 mV offset
|
||||
// The analog reference has been set to internal, which is 1.1v for the ATMega328P,
|
||||
// divided by 1024 units is 1.074mV per unit. This means we can measure up to 52.5A.
|
||||
// I sure hope we never reach that value :-)
|
||||
auto value = analogRead(Config::MotorPinCurrentSensing);
|
||||
float voltage = (float)value * (1100.0 / 1024.0);
|
||||
float current = (voltage - 50) / 20;
|
||||
|
||||
dl("[ MOTOR ] Measured current: value = "); dl(value); dl(", V = "); dl(voltage); dl(", A = "); dln(current);
|
||||
|
||||
return current >= Config::MotorCurrentLimit;
|
||||
}
|
18
src/lib/motor.h
Normal file
18
src/lib/motor.h
Normal file
@ -0,0 +1,18 @@
|
||||
#ifndef __motor
|
||||
#define __motor
|
||||
|
||||
|
||||
// Low-level functions to control the motor
|
||||
enum class MotorDirection
|
||||
{
|
||||
Up,
|
||||
Down
|
||||
};
|
||||
|
||||
|
||||
extern void motorInit();
|
||||
extern void motorStart(MotorDirection direction);
|
||||
extern void motorStop();
|
||||
extern bool motorIsOvercurrent();
|
||||
|
||||
#endif
|
88
src/lib/screen.cpp
Normal file
88
src/lib/screen.cpp
Normal file
@ -0,0 +1,88 @@
|
||||
#include "./screen.h"
|
||||
#include "include/config.h"
|
||||
#include "include/metrics.h"
|
||||
|
||||
|
||||
uint16_t BaseScreen::printCentered(const char* text, int16_t y)
|
||||
{
|
||||
int16_t textX;
|
||||
int16_t textY;
|
||||
uint16_t textW;
|
||||
uint16_t textH;
|
||||
this->display->getTextBounds(text, 0, 0, &textX, &textY, &textW, &textH);
|
||||
|
||||
textX = (Config::DisplayWidth - textW) / 2;
|
||||
this->display->setCursor(textX, y);
|
||||
this->display->print(text);
|
||||
|
||||
return textW;
|
||||
}
|
||||
|
||||
|
||||
void BaseScreen::drawLargeTextLineCentered(const char* text, int16_t y, uint16_t textColor, uint16_t backgroundColor)
|
||||
{
|
||||
this->display->fillRect(0, y, Config::DisplayWidth, Metrics::LargeTextLineHeight, backgroundColor);
|
||||
this->display->setTextColor(textColor);
|
||||
this->printCentered(text, y + Metrics::LargeTextLineYOffset);
|
||||
}
|
||||
|
||||
|
||||
void BaseScreen::drawArrowLeft(int16_t x, int16_t y, uint16_t color)
|
||||
{
|
||||
this->display->fillTriangle(
|
||||
x + Metrics::HArrowWidth, y, // Top right
|
||||
x, y + (Metrics::HArrowHeight / 2), // Middle left
|
||||
x + Metrics::HArrowWidth, y + Metrics::HArrowHeight, // Bottom right
|
||||
color);
|
||||
}
|
||||
|
||||
|
||||
void BaseScreen::drawArrowRight(int16_t x, int16_t y, uint16_t color)
|
||||
{
|
||||
this->display->fillTriangle(
|
||||
x, y, // Top left
|
||||
x + + Metrics::HArrowWidth, y + (Metrics::HArrowHeight / 2), // Middle right
|
||||
x, y + Metrics::HArrowHeight, // Bottom left
|
||||
color);
|
||||
}
|
||||
|
||||
|
||||
void BaseScreen::drawArrowUp(int16_t x, int16_t y, uint16_t color)
|
||||
{
|
||||
this->display->fillTriangle(
|
||||
x + (Metrics::VArrowWidth / 2), y, // Top middle
|
||||
x, y + Metrics::VArrowHeight, // Bottom left
|
||||
x + Metrics::VArrowWidth, y + Metrics::VArrowHeight, // Bottom right
|
||||
color);
|
||||
}
|
||||
|
||||
|
||||
void BaseScreen::drawArrowDown(int16_t x, int16_t y, uint16_t color)
|
||||
{
|
||||
this->display->fillTriangle(
|
||||
x, y, // Top left
|
||||
x + Metrics::VArrowWidth, y, // Top right
|
||||
x + (Metrics::VArrowWidth / 2), y + Metrics::VArrowHeight, // Bottom middle
|
||||
color);
|
||||
}
|
||||
|
||||
|
||||
void ScreenManager::init()
|
||||
{
|
||||
pinMode(Config::DisplayPinBL, OUTPUT);
|
||||
digitalWrite(Config::DisplayPinBL, HIGH);
|
||||
}
|
||||
|
||||
|
||||
void ScreenManager::displayOff()
|
||||
{
|
||||
digitalWrite(Config::DisplayPinBL, LOW);
|
||||
this->display->sendCommand(ST77XX_SLPIN);
|
||||
}
|
||||
|
||||
|
||||
void ScreenManager::displayOn()
|
||||
{
|
||||
this->display->sendCommand(ST77XX_SLPOUT);
|
||||
digitalWrite(Config::DisplayPinBL, HIGH);
|
||||
}
|
96
src/lib/screen.h
Normal file
96
src/lib/screen.h
Normal file
@ -0,0 +1,96 @@
|
||||
#ifndef __screen
|
||||
#define __screen
|
||||
|
||||
#include <Adafruit_ST7789.h>
|
||||
#include "include/config.h"
|
||||
#include "include/screenids.h"
|
||||
|
||||
|
||||
class ScreenManager;
|
||||
|
||||
|
||||
enum class Button
|
||||
{
|
||||
Top,
|
||||
Middle,
|
||||
Bottom
|
||||
};
|
||||
|
||||
|
||||
class BaseScreen
|
||||
{
|
||||
public:
|
||||
BaseScreen(ScreenManager* screenManager, Adafruit_GFX* display)
|
||||
{
|
||||
this->screenManager = screenManager;
|
||||
this->display = display;
|
||||
}
|
||||
|
||||
virtual ~BaseScreen() {}
|
||||
|
||||
virtual void onShow() = 0;
|
||||
virtual void onButton(Button button) = 0;
|
||||
virtual void onTick() = 0;
|
||||
|
||||
virtual ScreenId screenId() = 0;
|
||||
|
||||
protected:
|
||||
uint16_t printCentered(const char* text, int16_t y);
|
||||
|
||||
void drawLargeTextLineCentered(const char* text, int16_t y, uint16_t textColor, uint16_t backgroundColor);
|
||||
|
||||
void drawArrowLeft(int16_t x, int16_t y, uint16_t color);
|
||||
void drawArrowRight(int16_t x, int16_t y, uint16_t color);
|
||||
void drawArrowUp(int16_t x, int16_t y, uint16_t color);
|
||||
void drawArrowDown(int16_t x, int16_t y, uint16_t color);
|
||||
|
||||
ScreenManager* screenManager;
|
||||
Adafruit_GFX* display;
|
||||
};
|
||||
|
||||
|
||||
|
||||
class ScreenManager
|
||||
{
|
||||
public:
|
||||
ScreenManager(Adafruit_ST7789* display)
|
||||
{
|
||||
this->display = display;
|
||||
}
|
||||
|
||||
void init();
|
||||
|
||||
inline void button(Button button) { this->getCurrentScreen()->onButton(button); }
|
||||
inline void tick() { this->getCurrentScreen()->onTick(); }
|
||||
|
||||
inline BaseScreen* getCurrentScreen() { return this->currentScreen; }
|
||||
|
||||
|
||||
template<class T> void show()
|
||||
{
|
||||
if (this->currentScreen != nullptr)
|
||||
{
|
||||
//currentScreen->onHide();
|
||||
delete this->currentScreen;
|
||||
}
|
||||
|
||||
this->currentScreen = new T(this, this->display);
|
||||
this->currentScreen->onShow();
|
||||
}
|
||||
|
||||
template<class T> void show(ScreenId onlyIfNotOn)
|
||||
{
|
||||
if (this->currentScreen == nullptr || this->currentScreen->screenId() != onlyIfNotOn)
|
||||
this->show<T>();
|
||||
}
|
||||
|
||||
|
||||
void displayOff();
|
||||
void displayOn();
|
||||
|
||||
private:
|
||||
Adafruit_ST7789* display;
|
||||
BaseScreen* currentScreen = nullptr;
|
||||
};
|
||||
|
||||
#endif
|
162
src/lib/screen/baseheightentry.cpp
Normal file
162
src/lib/screen/baseheightentry.cpp
Normal file
@ -0,0 +1,162 @@
|
||||
#include "./calibrate.h"
|
||||
#include "./home.h"
|
||||
#include "include/metrics.h"
|
||||
#include "lib/settings.h"
|
||||
|
||||
|
||||
void BaseHeightEntryScreen::onShow()
|
||||
{
|
||||
this->display->setFont(Metrics::LargeFont);
|
||||
this->display->setTextSize(Metrics::LargeFontTextSize);
|
||||
|
||||
this->display->fillScreen(Config::ColorHomeBackground);
|
||||
|
||||
this->drawTitle();
|
||||
this->initHeights();
|
||||
|
||||
this->drawArrowUp(Metrics::ArrowMargin, Metrics::LargeTextLineHeight + Metrics::LargeTextLineVArrowYOffset, Config::ColorCalibrateIndicators);
|
||||
this->drawArrowRight(Metrics::ArrowMargin, Metrics::MiddleLargeTextLineY + Metrics::LargeTextLineHArrowYOffset, Config::ColorCalibrateIndicators);
|
||||
|
||||
this->display->setTextColor(Config::ColorCalibrateIndicators);
|
||||
this->display->setCursor(Metrics::ArrowMargin, Config::DisplayHeight - Metrics::LargeTextLineHeight + Metrics::LargeTextLineYOffset);
|
||||
this->display->print("OK");
|
||||
|
||||
this->drawSetHeight();
|
||||
}
|
||||
|
||||
|
||||
// Credit: https://stackoverflow.com/questions/101439/the-most-efficient-way-to-implement-an-integer-based-power-function-powint-int
|
||||
uint16_t ipow(uint16_t base, uint8_t exp)
|
||||
{
|
||||
int result = 1;
|
||||
for (;;)
|
||||
{
|
||||
if (exp & 1)
|
||||
result *= base;
|
||||
|
||||
exp >>= 1;
|
||||
if (!exp)
|
||||
break;
|
||||
|
||||
base *= base;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
void BaseHeightEntryScreen::onButton(Button button)
|
||||
{
|
||||
switch (button)
|
||||
{
|
||||
case Button::Top:
|
||||
{
|
||||
uint16_t height = this->getHeight();
|
||||
uint16_t increment = ipow(10, 3 - this->editingDigit);
|
||||
uint16_t modulus = increment * 10;
|
||||
|
||||
uint16_t remainder = height % modulus;
|
||||
uint16_t offset = height - remainder;
|
||||
|
||||
height = offset + ((remainder + increment) % modulus);
|
||||
if (height > 1999)
|
||||
height %= 2000;
|
||||
|
||||
this->setHeight(height);
|
||||
this->drawSetHeight();
|
||||
break;
|
||||
}
|
||||
|
||||
case Button::Middle:
|
||||
{
|
||||
this->editingDigit++;
|
||||
if (this->editingDigit > 3)
|
||||
this->editingDigit = 0;
|
||||
|
||||
this->drawSetHeight();
|
||||
break;
|
||||
}
|
||||
|
||||
case Button::Bottom:
|
||||
{
|
||||
if (!this->isValidHeight())
|
||||
return;
|
||||
|
||||
if (this->nextPage())
|
||||
{
|
||||
this->editingDigit = 0;
|
||||
|
||||
this->drawTitle();
|
||||
this->drawSetHeight();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void BaseHeightEntryScreen::onTick()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void BaseHeightEntryScreen::drawTitle()
|
||||
{
|
||||
this->drawLargeTextLineCentered(this->getTitle(), 0, Config::ColorMenuHeaderText, Config::ColorMenuHeaderBackground);
|
||||
}
|
||||
|
||||
|
||||
void BaseHeightEntryScreen::drawSetHeight()
|
||||
{
|
||||
char heightText[7];
|
||||
uint16_t height = this->getHeight();
|
||||
|
||||
if (height > 999)
|
||||
heightText[0] = '0' + ((height / 1000) % 10);
|
||||
else
|
||||
heightText[0] = '0';
|
||||
|
||||
heightText[1] = '.';
|
||||
heightText[2] = '0' + ((height / 100) % 10);
|
||||
heightText[3] = '0' + ((height / 10) % 10);
|
||||
heightText[4] = '0' + (height % 10);
|
||||
heightText[5] = 'm';
|
||||
heightText[6] = 0;
|
||||
|
||||
|
||||
int16_t textX;
|
||||
int16_t textY;
|
||||
uint16_t textW;
|
||||
uint16_t textH;
|
||||
this->display->getTextBounds(&heightText[0], 0, 0, &textX, &textY, &textW, &textH);
|
||||
textX = (Config::DisplayWidth - textW) / 2;
|
||||
|
||||
|
||||
|
||||
uint8_t editingChar = this->editingDigit;
|
||||
|
||||
// Skip the dot
|
||||
if (editingChar > 0)
|
||||
editingChar++;
|
||||
|
||||
|
||||
if (this->lastTextWidth > 0)
|
||||
this->display->fillRect((Config::DisplayWidth - this->lastTextWidth) / 2, Metrics::MiddleLargeTextLineY, this->lastTextWidth, Metrics::LargeTextLineHeight, Config::ColorCalibrateBackground);
|
||||
|
||||
this->lastTextWidth = textW;
|
||||
|
||||
this->display->setTextColor(this->isValidHeight() ? Config::ColorCalibrateValue : Config::ColorCalibrateInvalidValue);
|
||||
this->display->setCursor(textX, Metrics::MiddleLargeTextLineY + Metrics::LargeTextLineYOffset);
|
||||
|
||||
// Draw each character ourselves so we can keep track of where the line should be drawn
|
||||
for (uint8_t i = 0; i < sizeof(heightText); i++)
|
||||
{
|
||||
int16_t cursorStart = this->display->getCursorX();
|
||||
|
||||
this->display->print(heightText[i]);
|
||||
|
||||
if (i == editingChar)
|
||||
this->display->drawFastHLine(cursorStart, Metrics::MiddleLargeTextLineY + Metrics::LargeTextLineHeight - 1, this->display->getCursorX() - cursorStart, Config::ColorCalibrateDigitMarker);
|
||||
}
|
||||
}
|
34
src/lib/screen/baseheightentry.h
Normal file
34
src/lib/screen/baseheightentry.h
Normal file
@ -0,0 +1,34 @@
|
||||
#ifndef __screen_baseheightentry
|
||||
#define __screen_baseheightentry
|
||||
|
||||
#include "../screen.h"
|
||||
#include "../control.h"
|
||||
|
||||
|
||||
class BaseHeightEntryScreen : public BaseScreen
|
||||
{
|
||||
public:
|
||||
BaseHeightEntryScreen(ScreenManager* screenManager, Adafruit_GFX* display) : BaseScreen(screenManager, display) { }
|
||||
|
||||
void onShow();
|
||||
void onButton(Button button);
|
||||
void onTick();
|
||||
|
||||
protected:
|
||||
virtual void initHeights() = 0;
|
||||
virtual uint16_t getHeight() = 0;
|
||||
virtual void setHeight(uint16_t value) = 0;
|
||||
virtual bool nextPage() = 0;
|
||||
|
||||
virtual bool isValidHeight() = 0;
|
||||
virtual const char* getTitle() = 0;
|
||||
|
||||
private:
|
||||
void drawTitle();
|
||||
void drawSetHeight();
|
||||
|
||||
uint16_t lastTextWidth = 0;
|
||||
uint8_t editingDigit = 0;
|
||||
};
|
||||
|
||||
#endif
|
69
src/lib/screen/calibrate.cpp
Normal file
69
src/lib/screen/calibrate.cpp
Normal file
@ -0,0 +1,69 @@
|
||||
#include "./calibrate.h"
|
||||
#include "./home.h"
|
||||
#include "include/metrics.h"
|
||||
#include "lib/settings.h"
|
||||
|
||||
|
||||
|
||||
void CalibrateScreen::initHeights()
|
||||
{
|
||||
this->height[CalibrateStepCurrent] = Control.getCurrentHeight();
|
||||
this->height[CalibrateStepMax] = Settings.Height.Maximum;
|
||||
this->height[CalibrateStepMin] = Settings.Height.Minimum;
|
||||
}
|
||||
|
||||
|
||||
bool CalibrateScreen::nextPage()
|
||||
{
|
||||
this->step = (CalibrateStep)(this->step + 1);
|
||||
if (this->step < __CalibrateStepCount)
|
||||
return true;
|
||||
|
||||
Settings.Height.Offset = this->height[CalibrateStepCurrent] - Control.getCurrentMeasurement();
|
||||
Settings.Height.Maximum = this->height[CalibrateStepMax];
|
||||
Settings.Height.Minimum = this->height[CalibrateStepMin];
|
||||
writeSettingsHeights();
|
||||
|
||||
this->screenManager->show<HomeScreen>();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool CalibrateScreen::isValidHeight()
|
||||
{
|
||||
switch (this->step)
|
||||
{
|
||||
case CalibrateStepCurrent:
|
||||
return this->height[CalibrateStepCurrent] >= Control.getCurrentMeasurement();
|
||||
|
||||
case CalibrateStepMin:
|
||||
return this->height[CalibrateStepMin] <= this->height[CalibrateStepCurrent];
|
||||
|
||||
case CalibrateStepMax:
|
||||
return
|
||||
this->height[CalibrateStepMax] > this->height[CalibrateStepMin] &&
|
||||
this->height[CalibrateStepMax] >= this->height[CalibrateStepCurrent];
|
||||
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const char* CalibrateScreen::getTitle()
|
||||
{
|
||||
switch (this->step)
|
||||
{
|
||||
case CalibrateStepCurrent:
|
||||
return "Calibrate";
|
||||
|
||||
case CalibrateStepMin:
|
||||
return "Minimum";
|
||||
|
||||
case CalibrateStepMax:
|
||||
return "Maximum";
|
||||
|
||||
default:
|
||||
return nullptr;
|
||||
}
|
||||
}
|
47
src/lib/screen/calibrate.h
Normal file
47
src/lib/screen/calibrate.h
Normal file
@ -0,0 +1,47 @@
|
||||
#ifndef __screen_calibrate
|
||||
#define __screen_calibrate
|
||||
|
||||
#include "include/screenids.h"
|
||||
#include "./baseheightentry.h"
|
||||
#include "../screen.h"
|
||||
#include "../control.h"
|
||||
|
||||
|
||||
enum CalibrateStep
|
||||
{
|
||||
CalibrateStepCurrent = 0,
|
||||
CalibrateStepMax,
|
||||
CalibrateStepMin,
|
||||
|
||||
__CalibrateStepCount
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Calibrate screen
|
||||
* Configures the absolute height (calculates the offset) and
|
||||
* the allowed minimum and maximum absolute height.
|
||||
*/
|
||||
class CalibrateScreen : public BaseHeightEntryScreen
|
||||
{
|
||||
public:
|
||||
CalibrateScreen(ScreenManager* screenManager, Adafruit_GFX* display) : BaseHeightEntryScreen(screenManager, display) { }
|
||||
|
||||
ScreenId screenId() { return ScreenId::Calibrate; };
|
||||
|
||||
protected:
|
||||
void initHeights();
|
||||
uint16_t getHeight() { return this->height[this->step]; }
|
||||
void setHeight(uint16_t value) { this->height[this->step] = value; };
|
||||
bool nextPage();
|
||||
|
||||
bool isValidHeight();
|
||||
const char* getTitle();
|
||||
|
||||
private:
|
||||
CalibrateStep step = CalibrateStepCurrent;
|
||||
|
||||
uint16_t height[__CalibrateStepCount];
|
||||
};
|
||||
|
||||
#endif
|
152
src/lib/screen/home.cpp
Normal file
152
src/lib/screen/home.cpp
Normal file
@ -0,0 +1,152 @@
|
||||
#include "./home.h"
|
||||
#include "./move.h"
|
||||
#include "./move-sensorerror.h"
|
||||
#include "include/config.h"
|
||||
#include "include/metrics.h"
|
||||
#include "lib/settings.h"
|
||||
#include "lib/control.h"
|
||||
#include "lib/state.h"
|
||||
#include "./menu.h"
|
||||
|
||||
|
||||
|
||||
void HomeScreen::onShow()
|
||||
{
|
||||
this->showTime = CurrentTime;
|
||||
|
||||
this->display->setFont(Metrics::LargeFont);
|
||||
this->display->setTextSize(Metrics::LargeFontTextSize);
|
||||
|
||||
this->display->fillScreen(Config::ColorHomeBackground);
|
||||
|
||||
this->drawPreset1();
|
||||
this->drawMenu();
|
||||
this->drawPreset2();
|
||||
|
||||
this->drawNonPresetHeight();
|
||||
}
|
||||
|
||||
|
||||
void HomeScreen::onButton(Button button)
|
||||
{
|
||||
this->showTime = CurrentTime;
|
||||
|
||||
if (this->idle)
|
||||
{
|
||||
this->screenManager->displayOn();
|
||||
this->idle = false;
|
||||
|
||||
// Preset buttons activate immediately
|
||||
if (button == Button::Middle)
|
||||
return;
|
||||
}
|
||||
|
||||
uint16_t targetHeight;
|
||||
|
||||
switch (button)
|
||||
{
|
||||
case Button::Top:
|
||||
targetHeight = Settings.Height.Preset[0];
|
||||
break;
|
||||
|
||||
case Button::Bottom:
|
||||
targetHeight = Settings.Height.Preset[1];
|
||||
break;
|
||||
|
||||
case Button::Middle:
|
||||
this->screenManager->show<MenuScreen>();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (targetHeight > 0)
|
||||
{
|
||||
MoveReturnScreen = this->screenId();
|
||||
Control.moveStart(targetHeight);
|
||||
|
||||
this->screenManager->show<MoveScreen>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void HomeScreen::onTick()
|
||||
{
|
||||
if (!this->idle && CurrentTime - this->showTime >= Config::DisplayIdleTime)
|
||||
{
|
||||
this->screenManager->displayOff();
|
||||
this->idle = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void HomeScreen::drawPreset1()
|
||||
{
|
||||
this->drawPreset(0, Settings.Height.Preset[0]);
|
||||
}
|
||||
|
||||
|
||||
void HomeScreen::drawPreset2()
|
||||
{
|
||||
this->drawPreset(Config::DisplayHeight - Metrics::LargeTextLineHeight, Settings.Height.Preset[1]);
|
||||
}
|
||||
|
||||
|
||||
void HomeScreen::drawNonPresetHeight()
|
||||
{
|
||||
auto y = Metrics::LargeTextLineHeight;
|
||||
|
||||
if (Control.getCurrentHeight() != Settings.Height.Preset[0] &&
|
||||
Control.getCurrentHeight() != Settings.Height.Preset[1])
|
||||
{
|
||||
this->display->setTextColor(Config::ColorNonPresetText);
|
||||
this->drawHeight(y, Control.getCurrentHeight());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void HomeScreen::drawPreset(int16_t y, uint16_t value)
|
||||
{
|
||||
uint16_t textColor;
|
||||
uint16_t backgroundColor;
|
||||
uint16_t arrowColor;
|
||||
|
||||
// An exact comparison is enough here, the movement code takes care of that if it's "close enough"
|
||||
if (value == Control.getCurrentHeight())
|
||||
{
|
||||
textColor = Config::ColorPresetSelectedText;
|
||||
backgroundColor = Config::ColorPresetSelectedBackground;
|
||||
arrowColor = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
textColor = Config::ColorPresetText;
|
||||
backgroundColor = Config::ColorPresetBackground;
|
||||
arrowColor = Config::ColorPresetArrow;
|
||||
}
|
||||
|
||||
this->display->fillRect(0, y, Config::DisplayWidth, Metrics::LargeTextLineHeight, backgroundColor);
|
||||
|
||||
if (arrowColor)
|
||||
this->drawArrowLeft(Metrics::ArrowMargin, y + Metrics::LargeTextLineHArrowYOffset, arrowColor);
|
||||
|
||||
this->display->setTextColor(textColor);
|
||||
this->drawHeight(y, value);
|
||||
}
|
||||
|
||||
|
||||
void HomeScreen::drawHeight(int16_t y, uint16_t value)
|
||||
{
|
||||
char textValue[6];
|
||||
Control.getDisplayHeight(&textValue[0], value);
|
||||
|
||||
this->printCentered(&textValue[0], y + Metrics::LargeTextLineYOffset);
|
||||
}
|
||||
|
||||
|
||||
void HomeScreen::drawMenu()
|
||||
{
|
||||
this->drawArrowLeft(Metrics::ArrowMargin, Metrics::MiddleLargeTextLineY + Metrics::LargeTextLineHArrowYOffset, Config::ColorHomeMenuArrow);
|
||||
|
||||
this->display->setTextColor(Config::ColorHomeMenuText);
|
||||
this->printCentered("Menu", Metrics::MiddleLargeTextLineY + Metrics::LargeTextLineYOffset);
|
||||
}
|
37
src/lib/screen/home.h
Normal file
37
src/lib/screen/home.h
Normal file
@ -0,0 +1,37 @@
|
||||
#ifndef __screen_home
|
||||
#define __screen_home
|
||||
|
||||
#include "include/screenids.h"
|
||||
#include "../screen.h"
|
||||
#include "../Control.h"
|
||||
|
||||
|
||||
/*
|
||||
* Home screen
|
||||
* Shows the current presets and an option to go to the menu.
|
||||
*/
|
||||
class HomeScreen : public BaseScreen
|
||||
{
|
||||
public:
|
||||
HomeScreen(ScreenManager* screenManager, Adafruit_GFX* display) : BaseScreen(screenManager, display) { }
|
||||
|
||||
void onShow();
|
||||
void onButton(Button button);
|
||||
void onTick();
|
||||
|
||||
ScreenId screenId() { return ScreenId::Home; };
|
||||
|
||||
private:
|
||||
uint32_t showTime = 0;
|
||||
bool idle = false;
|
||||
|
||||
void drawPreset1();
|
||||
void drawPreset2();
|
||||
void drawNonPresetHeight();
|
||||
|
||||
void drawPreset(int16_t y, uint16_t value);
|
||||
void drawHeight(int16_t y, uint16_t value);
|
||||
void drawMenu();
|
||||
};
|
||||
|
||||
#endif
|
41
src/lib/screen/manual.cpp
Normal file
41
src/lib/screen/manual.cpp
Normal file
@ -0,0 +1,41 @@
|
||||
#include "./manual.h"
|
||||
#include "./home.h"
|
||||
#include "./move.h"
|
||||
#include "include/metrics.h"
|
||||
#include "lib/settings.h"
|
||||
#include "../state.h"
|
||||
|
||||
|
||||
|
||||
void ManualScreen::initHeights()
|
||||
{
|
||||
this->height = Control.getCurrentHeight();
|
||||
}
|
||||
|
||||
|
||||
bool ManualScreen::nextPage()
|
||||
{
|
||||
if (this->height == Control.getCurrentHeight())
|
||||
{
|
||||
this->screenManager->show<HomeScreen>();
|
||||
return false;
|
||||
}
|
||||
|
||||
MoveReturnScreen = this->screenId();
|
||||
Control.moveStart(this->height);
|
||||
|
||||
this->screenManager->show<MoveScreen>();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void ManualScreen::setHeight(uint16_t value)
|
||||
{
|
||||
if (value < Settings.Height.Minimum)
|
||||
this->height = Settings.Height.Minimum;
|
||||
else if (value > Settings.Height.Maximum)
|
||||
this->height = Settings.Height.Maximum;
|
||||
else
|
||||
this->height = value;
|
||||
}
|
34
src/lib/screen/manual.h
Normal file
34
src/lib/screen/manual.h
Normal file
@ -0,0 +1,34 @@
|
||||
#ifndef __screen_manual
|
||||
#define __screen_manual
|
||||
|
||||
#include "include/screenids.h"
|
||||
#include "./baseheightentry.h"
|
||||
#include "../screen.h"
|
||||
#include "../Control.h"
|
||||
|
||||
|
||||
/*
|
||||
* Manual screen
|
||||
* Allows manual entry of the preferred height.
|
||||
*/
|
||||
class ManualScreen : public BaseHeightEntryScreen
|
||||
{
|
||||
public:
|
||||
ManualScreen(ScreenManager* screenManager, Adafruit_GFX* display) : BaseHeightEntryScreen(screenManager, display) { }
|
||||
|
||||
ScreenId screenId() { return ScreenId::Manual; };
|
||||
|
||||
protected:
|
||||
void initHeights();
|
||||
uint16_t getHeight() { return this->height; }
|
||||
void setHeight(uint16_t value);
|
||||
bool nextPage();
|
||||
|
||||
bool isValidHeight() { return true; }
|
||||
const char* getTitle() { return "Manual"; }
|
||||
|
||||
private:
|
||||
uint16_t height;
|
||||
};
|
||||
|
||||
#endif
|
115
src/lib/screen/menu.cpp
Normal file
115
src/lib/screen/menu.cpp
Normal file
@ -0,0 +1,115 @@
|
||||
#include "./menu.h"
|
||||
#include "./home.h"
|
||||
#include "./calibrate.h"
|
||||
#include "./manual.h"
|
||||
#include "./presets.h"
|
||||
#include "include/config.h"
|
||||
#include "include/metrics.h"
|
||||
|
||||
|
||||
void MenuScreen::onShow()
|
||||
{
|
||||
this->display->setFont(Metrics::LargeFont);
|
||||
this->display->setTextSize(Metrics::LargeFontTextSize);
|
||||
|
||||
this->display->fillScreen(Config::ColorHomeBackground);
|
||||
this->drawLargeTextLineCentered("Menu", 0, Config::ColorMenuHeaderText, Config::ColorMenuHeaderBackground);
|
||||
|
||||
for (uint8_t i = 0; i < (uint8_t)MenuItem::__Count; i++)
|
||||
this->drawMenuItem(i);
|
||||
}
|
||||
|
||||
|
||||
void MenuScreen::onButton(Button button)
|
||||
{
|
||||
uint8_t previousIndex = this->itemIndex;
|
||||
|
||||
switch (button)
|
||||
{
|
||||
case Button::Middle:
|
||||
this->activateMenuItem((MenuItem)this->itemIndex);
|
||||
return;
|
||||
|
||||
case Button::Top:
|
||||
if (this->itemIndex == 0)
|
||||
this->itemIndex = (uint8_t)MenuItem::__Count;
|
||||
|
||||
this->itemIndex--;
|
||||
break;
|
||||
|
||||
case Button::Bottom:
|
||||
this->itemIndex++;
|
||||
if (this->itemIndex == (uint8_t)MenuItem::__Count)
|
||||
this->itemIndex = 0;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
this->drawMenuItem(previousIndex);
|
||||
this->drawMenuItem(this->itemIndex);
|
||||
}
|
||||
|
||||
|
||||
void MenuScreen::onTick()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void MenuScreen::drawMenuItem(uint8_t index)
|
||||
{
|
||||
uint16_t y = (index + 2) * Metrics::LargeTextLineHeight;
|
||||
bool isSelected = index == this->itemIndex;
|
||||
|
||||
this->drawLargeTextLineCentered(
|
||||
this->getMenuItemTitle((MenuItem)index), y,
|
||||
isSelected ? Config::ColorMenuSelectedText : Config::ColorMenuText,
|
||||
isSelected ? Config::ColorMenuSelectedBackground : Config::ColorMenuBackground);
|
||||
}
|
||||
|
||||
|
||||
const char* MenuScreen::getMenuItemTitle(MenuItem item)
|
||||
{
|
||||
switch (item)
|
||||
{
|
||||
case MenuItem::Manual:
|
||||
return "Manual";
|
||||
|
||||
case MenuItem::Presets:
|
||||
return "Presets";
|
||||
|
||||
case MenuItem::Calibrate:
|
||||
return "Calibrate";
|
||||
|
||||
case MenuItem::Exit:
|
||||
return "Exit";
|
||||
|
||||
default:
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void MenuScreen::activateMenuItem(MenuItem item)
|
||||
{
|
||||
switch (item)
|
||||
{
|
||||
case MenuItem::Manual:
|
||||
this->screenManager->show<ManualScreen>();
|
||||
break;
|
||||
|
||||
case MenuItem::Presets:
|
||||
this->screenManager->show<PresetsScreen>();
|
||||
break;
|
||||
|
||||
case MenuItem::Calibrate:
|
||||
this->screenManager->show<CalibrateScreen>();
|
||||
break;
|
||||
|
||||
case MenuItem::Exit:
|
||||
this->screenManager->show<HomeScreen>();
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
45
src/lib/screen/menu.h
Normal file
45
src/lib/screen/menu.h
Normal file
@ -0,0 +1,45 @@
|
||||
#ifndef __screen_menu
|
||||
#define __screen_menu
|
||||
|
||||
#include "include/screenids.h"
|
||||
#include "../screen.h"
|
||||
#include "../Control.h"
|
||||
|
||||
|
||||
enum class MenuItem
|
||||
{
|
||||
Manual = 0,
|
||||
Presets,
|
||||
Calibrate,
|
||||
Exit,
|
||||
|
||||
__Count
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Menu screen
|
||||
* Shows the menu which allows access to the calibration and
|
||||
* manual adjustment screens.
|
||||
*/
|
||||
class MenuScreen : public BaseScreen
|
||||
{
|
||||
public:
|
||||
MenuScreen(ScreenManager* screenManager, Adafruit_GFX* display) : BaseScreen(screenManager, display) { }
|
||||
|
||||
void onShow();
|
||||
void onButton(Button button);
|
||||
void onTick();
|
||||
|
||||
ScreenId screenId() { return ScreenId::Menu; };
|
||||
|
||||
private:
|
||||
void drawMenuItem(uint8_t index);
|
||||
const char* getMenuItemTitle(MenuItem item);
|
||||
void activateMenuItem(MenuItem item);
|
||||
|
||||
uint8_t itemIndex = 0;
|
||||
};
|
||||
|
||||
#endif
|
42
src/lib/screen/move-overcurrent.cpp
Normal file
42
src/lib/screen/move-overcurrent.cpp
Normal file
@ -0,0 +1,42 @@
|
||||
#include "./move-overcurrent.h"
|
||||
#include "./home.h"
|
||||
#include "include/config.h"
|
||||
#include "include/metrics.h"
|
||||
#include "lib/control.h"
|
||||
#include "lib/state.h"
|
||||
|
||||
|
||||
void MoveOvercurrentScreen::onShow()
|
||||
{
|
||||
auto y = Metrics::LargeTextLineHeight + Metrics::LargeTextLineYOffset;
|
||||
|
||||
this->display->fillScreen(Config::ColorErrorBackground);
|
||||
|
||||
|
||||
this->display->setFont(Metrics::LargeFont);
|
||||
this->display->setTextSize(Metrics::LargeFontTextSize);
|
||||
|
||||
this->display->setTextColor(Config::ColorErrorText);
|
||||
this->printCentered("ERROR", y);
|
||||
y += Metrics::LargeTextLineHeight;
|
||||
|
||||
this->display->setFont(Metrics::SmallFont);
|
||||
this->display->setTextSize(Metrics::SmallFontTextSize);
|
||||
|
||||
this->printCentered("motor overcurrent", y);
|
||||
y += Metrics::SmallTextLineHeight;
|
||||
|
||||
this->printCentered("press any button", y);
|
||||
y += Metrics::SmallTextLineHeight + Metrics::LargeTextLineHeight;
|
||||
}
|
||||
|
||||
|
||||
void MoveOvercurrentScreen::onButton(Button button)
|
||||
{
|
||||
this->screenManager->show<HomeScreen>();
|
||||
}
|
||||
|
||||
|
||||
void MoveOvercurrentScreen::onTick()
|
||||
{
|
||||
}
|
27
src/lib/screen/move-overcurrent.h
Normal file
27
src/lib/screen/move-overcurrent.h
Normal file
@ -0,0 +1,27 @@
|
||||
#ifndef __screen_move_overcurrent
|
||||
#define __screen_move_overcurrent
|
||||
|
||||
#include "include/screenids.h"
|
||||
#include "../screen.h"
|
||||
#include "../Control.h"
|
||||
|
||||
|
||||
/*
|
||||
* Move overcurrent screen
|
||||
* Displays a warning that the motor driver has reached the set maximum current.
|
||||
*/
|
||||
class MoveOvercurrentScreen : public BaseScreen
|
||||
{
|
||||
public:
|
||||
MoveOvercurrentScreen(ScreenManager* screenManager, Adafruit_GFX* display) : BaseScreen(screenManager, display) { }
|
||||
|
||||
void onShow();
|
||||
void onButton(Button button);
|
||||
void onTick();
|
||||
|
||||
ScreenId screenId() { return ScreenId::MoveOvercurrent; };
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
#endif
|
76
src/lib/screen/move-sensorerror.cpp
Normal file
76
src/lib/screen/move-sensorerror.cpp
Normal file
@ -0,0 +1,76 @@
|
||||
#include "./move-sensorerror.h"
|
||||
#include "./home.h"
|
||||
#include "include/config.h"
|
||||
#include "include/metrics.h"
|
||||
#include "lib/control.h"
|
||||
#include "lib/state.h"
|
||||
|
||||
|
||||
void MoveSensorErrorScreen::onShow()
|
||||
{
|
||||
auto y = Metrics::LargeTextLineHeight + Metrics::LargeTextLineYOffset;
|
||||
|
||||
this->display->fillScreen(Config::ColorErrorBackground);
|
||||
|
||||
|
||||
this->display->setFont(Metrics::LargeFont);
|
||||
this->display->setTextSize(Metrics::LargeFontTextSize);
|
||||
|
||||
this->display->setTextColor(Config::ColorErrorText);
|
||||
this->printCentered("ERROR", y);
|
||||
y += Metrics::LargeTextLineHeight;
|
||||
|
||||
this->display->setFont(Metrics::SmallFont);
|
||||
this->display->setTextSize(Metrics::SmallFontTextSize);
|
||||
|
||||
this->printCentered("height sensor failed", y);
|
||||
y += Metrics::SmallTextLineHeight;
|
||||
|
||||
this->printCentered("waiting for stable value", y);
|
||||
y += Metrics::SmallTextLineHeight + Metrics::LargeTextLineHeight;
|
||||
|
||||
this->currentHeightY = y;
|
||||
|
||||
|
||||
this->display->setFont(Metrics::LargeFont);
|
||||
this->display->setTextSize(Metrics::LargeFontTextSize);
|
||||
|
||||
this->lastRefresh = CurrentTime;
|
||||
this->drawLastMeasurement();
|
||||
|
||||
Control.stabilizeStart();
|
||||
}
|
||||
|
||||
|
||||
void MoveSensorErrorScreen::onButton(Button button)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void MoveSensorErrorScreen::onTick()
|
||||
{
|
||||
if (Control.stabilized())
|
||||
{
|
||||
this->screenManager->show<HomeScreen>();
|
||||
return;
|
||||
}
|
||||
|
||||
if (CurrentTime - this->lastRefresh >= Config::DisplayRefreshRate)
|
||||
{
|
||||
this->drawLastMeasurement();
|
||||
this->lastRefresh = CurrentTime;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void MoveSensorErrorScreen::drawLastMeasurement()
|
||||
{
|
||||
char currentHeightText[6];
|
||||
Control.getDisplayHeight(¤tHeightText[0], Control.getLastMeasurement());
|
||||
|
||||
if (this->lastTextWidth > 0)
|
||||
this->display->fillRect((Config::DisplayWidth - this->lastTextWidth) / 2, this->currentHeightY, this->lastTextWidth, Metrics::LargeTextLineHeight, Config::ColorErrorBackground);
|
||||
|
||||
this->display->setTextColor(Config::ColorMoveTarget);
|
||||
this->lastTextWidth = this->printCentered(¤tHeightText[0], this->currentHeightY + Metrics::LargeFontBaseline);
|
||||
}
|
33
src/lib/screen/move-sensorerror.h
Normal file
33
src/lib/screen/move-sensorerror.h
Normal file
@ -0,0 +1,33 @@
|
||||
#ifndef __screen_move_sensorerror
|
||||
#define __screen_move_sensorerror
|
||||
|
||||
#include "include/screenids.h"
|
||||
#include "../screen.h"
|
||||
#include "../Control.h"
|
||||
|
||||
|
||||
/*
|
||||
* Move sensor error screen
|
||||
* Shows a warning that the height sensor is not providing valid values.
|
||||
* Can only be dismissed after the sensor is stable again.
|
||||
*/
|
||||
class MoveSensorErrorScreen : public BaseScreen
|
||||
{
|
||||
public:
|
||||
MoveSensorErrorScreen(ScreenManager* screenManager, Adafruit_GFX* display) : BaseScreen(screenManager, display) { }
|
||||
|
||||
void onShow();
|
||||
void onButton(Button button);
|
||||
void onTick();
|
||||
|
||||
ScreenId screenId() { return ScreenId::MoveSensorError; };
|
||||
|
||||
private:
|
||||
uint32_t lastRefresh;
|
||||
uint8_t currentHeightY;
|
||||
uint16_t lastTextWidth = 0;
|
||||
|
||||
void drawLastMeasurement();
|
||||
};
|
||||
|
||||
#endif
|
92
src/lib/screen/move.cpp
Normal file
92
src/lib/screen/move.cpp
Normal file
@ -0,0 +1,92 @@
|
||||
#include "./move.h"
|
||||
#include "./home.h"
|
||||
#include "include/config.h"
|
||||
#include "include/metrics.h"
|
||||
#include "lib/settings.h"
|
||||
#include "lib/control.h"
|
||||
#include "lib/state.h"
|
||||
|
||||
|
||||
void MoveScreen::onShow()
|
||||
{
|
||||
auto startY = Metrics::LargeTextLineHeight;
|
||||
auto arrowY = startY + Metrics::LargeTextLineHeight + Metrics::LargeTextLineVArrowYOffset;
|
||||
auto arrowX = (Config::DisplayWidth - Metrics::VArrowWidth) / 2;
|
||||
auto stopY = Config::DisplayHeight - Metrics::LargeTextLineHeight;
|
||||
|
||||
this->display->fillScreen(Config::ColorMoveBackground);
|
||||
|
||||
// Stop
|
||||
this->display->setFont(Metrics::SmallFont);
|
||||
this->display->setTextSize(Metrics::SmallFontTextSize);
|
||||
|
||||
this->display->setTextColor(Config::ColorMoveStop);
|
||||
this->printCentered("Press any button to", stopY - Metrics::SmallTextLineHeight);
|
||||
|
||||
this->display->setFont(Metrics::LargeFont);
|
||||
this->display->setTextSize(Metrics::LargeFontTextSize);
|
||||
|
||||
this->printCentered("STOP", stopY + Metrics::LargeTextLineYOffset);
|
||||
|
||||
char targetHeightText[6];
|
||||
Control.getDisplayHeight(&targetHeightText[0], Control.getMoveTargetHeight());
|
||||
this->display->setTextColor(Config::ColorMoveCurrent);
|
||||
|
||||
// Target and arrow
|
||||
if (Control.getMoveDirection() == MoveDirection::Up)
|
||||
{
|
||||
this->currentHeightY = startY + (Metrics::LargeTextLineHeight * 2);
|
||||
|
||||
this->printCentered(&targetHeightText[0], startY + Metrics::LargeTextLineYOffset);
|
||||
this->drawArrowUp(arrowX, arrowY, Config::ColorMoveArrow);
|
||||
}
|
||||
else
|
||||
{
|
||||
this->currentHeightY = startY;
|
||||
|
||||
this->printCentered(&targetHeightText[0], startY + (Metrics::LargeTextLineHeight * 2) + Metrics::LargeTextLineYOffset);
|
||||
this->drawArrowDown(arrowX, arrowY, Config::ColorMoveArrow);
|
||||
}
|
||||
|
||||
this->lastRefresh = CurrentTime;
|
||||
this->drawCurrentHeight();
|
||||
}
|
||||
|
||||
|
||||
void MoveScreen::onButton(Button button)
|
||||
{
|
||||
Control.moveStop();
|
||||
this->screenManager->show<HomeScreen>();
|
||||
}
|
||||
|
||||
|
||||
void MoveScreen::onTick()
|
||||
{
|
||||
bool isStabilizing = Control.getIsStabilizing();
|
||||
|
||||
// Don't update every tick, monitoring the current height is more
|
||||
// important and the flicker would be unpleasant as well.
|
||||
if (this->lastIsStabilizing != isStabilizing || CurrentTime - this->lastRefresh >= Config::DisplayRefreshRate)
|
||||
{
|
||||
this->drawCurrentHeight();
|
||||
this->lastRefresh = CurrentTime;
|
||||
this->lastIsStabilizing = isStabilizing;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void MoveScreen::drawCurrentHeight()
|
||||
{
|
||||
char currentHeightText[6];
|
||||
|
||||
if (Control.getIsStabilizing())
|
||||
Control.getDisplayHeight(¤tHeightText[0], 0);
|
||||
else
|
||||
Control.getDisplayHeight(¤tHeightText[0], Control.getCurrentHeight());
|
||||
|
||||
if (this->lastTextWidth > 0)
|
||||
this->display->fillRect((Config::DisplayWidth - this->lastTextWidth) / 2, this->currentHeightY, this->lastTextWidth, Metrics::LargeTextLineHeight, Config::ColorMoveBackground);
|
||||
|
||||
this->display->setTextColor(Config::ColorMoveTarget);
|
||||
this->lastTextWidth = this->printCentered(¤tHeightText[0], this->currentHeightY + Metrics::LargeTextLineYOffset);
|
||||
}
|
33
src/lib/screen/move.h
Normal file
33
src/lib/screen/move.h
Normal file
@ -0,0 +1,33 @@
|
||||
#ifndef __screen_move
|
||||
#define __screen_move
|
||||
|
||||
#include "include/screenids.h"
|
||||
#include "../screen.h"
|
||||
#include "../Control.h"
|
||||
|
||||
|
||||
/*
|
||||
* Move screen
|
||||
* Shows the current and target height
|
||||
*/
|
||||
class MoveScreen : public BaseScreen
|
||||
{
|
||||
public:
|
||||
MoveScreen(ScreenManager* screenManager, Adafruit_GFX* display) : BaseScreen(screenManager, display) { }
|
||||
|
||||
void onShow();
|
||||
void onButton(Button button);
|
||||
void onTick();
|
||||
|
||||
ScreenId screenId() { return ScreenId::Move; };
|
||||
|
||||
private:
|
||||
uint32_t lastRefresh;
|
||||
uint8_t currentHeightY;
|
||||
uint16_t lastTextWidth = 0;
|
||||
bool lastIsStabilizing = true;
|
||||
|
||||
void drawCurrentHeight();
|
||||
};
|
||||
|
||||
#endif
|
55
src/lib/screen/presets.cpp
Normal file
55
src/lib/screen/presets.cpp
Normal file
@ -0,0 +1,55 @@
|
||||
#include "./presets.h"
|
||||
#include "./home.h"
|
||||
#include "include/metrics.h"
|
||||
#include "lib/settings.h"
|
||||
|
||||
|
||||
|
||||
void PresetsScreen::initHeights()
|
||||
{
|
||||
this->height[0] = Settings.Height.Preset[0];
|
||||
this->height[1] = Settings.Height.Preset[1];
|
||||
}
|
||||
|
||||
|
||||
bool PresetsScreen::nextPage()
|
||||
{
|
||||
this->preset++;
|
||||
if (this->preset < 2)
|
||||
return true;
|
||||
|
||||
Settings.Height.Preset[0] = this->height[0];
|
||||
Settings.Height.Preset[1] = this->height[1];
|
||||
writeSettingsHeights();
|
||||
|
||||
this->screenManager->show<HomeScreen>();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void PresetsScreen::setHeight(uint16_t value)
|
||||
{
|
||||
if (value < Settings.Height.Minimum)
|
||||
this->height[this->preset] = Settings.Height.Minimum;
|
||||
else if (value > Settings.Height.Maximum)
|
||||
this->height[this->preset] = Settings.Height.Maximum;
|
||||
else
|
||||
this->height[this->preset] = value;
|
||||
}
|
||||
|
||||
|
||||
const char* PresetsScreen::getTitle()
|
||||
{
|
||||
switch (this->preset)
|
||||
{
|
||||
case 0:
|
||||
return "Preset 1";
|
||||
|
||||
case 1:
|
||||
return "Preset 2";
|
||||
|
||||
default:
|
||||
return nullptr;
|
||||
}
|
||||
}
|
35
src/lib/screen/presets.h
Normal file
35
src/lib/screen/presets.h
Normal file
@ -0,0 +1,35 @@
|
||||
#ifndef __screen_presets
|
||||
#define __screen_presets
|
||||
|
||||
#include "include/screenids.h"
|
||||
#include "./baseheightentry.h"
|
||||
#include "../screen.h"
|
||||
#include "../control.h"
|
||||
|
||||
|
||||
/*
|
||||
* Presets screen
|
||||
* Configures the presets.
|
||||
*/
|
||||
class PresetsScreen : public BaseHeightEntryScreen
|
||||
{
|
||||
public:
|
||||
PresetsScreen(ScreenManager* screenManager, Adafruit_GFX* display) : BaseHeightEntryScreen(screenManager, display) { }
|
||||
|
||||
ScreenId screenId() { return ScreenId::Presets; };
|
||||
|
||||
protected:
|
||||
void initHeights();
|
||||
uint16_t getHeight() { return this->height[this->preset]; }
|
||||
void setHeight(uint16_t value);
|
||||
bool nextPage();
|
||||
|
||||
bool isValidHeight() { return true; }
|
||||
const char* getTitle();
|
||||
|
||||
private:
|
||||
uint8_t preset = 0;
|
||||
uint16_t height[2];
|
||||
};
|
||||
|
||||
#endif
|
74
src/lib/settings.cpp
Normal file
74
src/lib/settings.cpp
Normal file
@ -0,0 +1,74 @@
|
||||
#include "./settings.h"
|
||||
#include <EEPROM.h>
|
||||
|
||||
|
||||
#define SettingsIdentifier 0x42
|
||||
#define SettingsVersion1 1
|
||||
|
||||
SettingsContainer Settings;
|
||||
|
||||
|
||||
struct SettingsHeader
|
||||
{
|
||||
uint8_t identifier;
|
||||
uint8_t version;
|
||||
};
|
||||
|
||||
#define SettingsHeightsAddress sizeof(SettingsHeader)
|
||||
|
||||
bool initialized = false;
|
||||
|
||||
|
||||
// Forward declarations
|
||||
void readHeights();
|
||||
|
||||
|
||||
bool readSettings()
|
||||
{
|
||||
memset(&Settings, 0, sizeof(SettingsContainer));
|
||||
|
||||
SettingsHeader header;
|
||||
EEPROM.get(0, header);
|
||||
|
||||
if (header.identifier == SettingsIdentifier)
|
||||
{
|
||||
if (header.version >= 1)
|
||||
readHeights();
|
||||
|
||||
initialized = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool allowPartialWrite()
|
||||
{
|
||||
if (initialized)
|
||||
return true;
|
||||
|
||||
initialized = true;
|
||||
|
||||
SettingsHeader header;
|
||||
header.identifier = SettingsIdentifier;
|
||||
header.version = SettingsVersion1;
|
||||
|
||||
EEPROM.put(0, header);
|
||||
writeSettingsHeights();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void readHeights()
|
||||
{
|
||||
EEPROM.get(SettingsHeightsAddress, Settings.Height);
|
||||
}
|
||||
|
||||
|
||||
void writeSettingsHeights()
|
||||
{
|
||||
if (allowPartialWrite())
|
||||
EEPROM.put(SettingsHeightsAddress, Settings.Height);
|
||||
}
|
27
src/lib/settings.h
Normal file
27
src/lib/settings.h
Normal file
@ -0,0 +1,27 @@
|
||||
#ifndef __settings
|
||||
#define __settings
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
struct SettingsHeights
|
||||
{
|
||||
uint16_t Offset;
|
||||
uint16_t Minimum;
|
||||
uint16_t Maximum;
|
||||
uint16_t Preset[2];
|
||||
};
|
||||
|
||||
|
||||
struct SettingsContainer
|
||||
{
|
||||
SettingsHeights Height;
|
||||
};
|
||||
|
||||
|
||||
extern bool readSettings();
|
||||
extern void writeSettingsHeights();
|
||||
|
||||
extern SettingsContainer Settings;
|
||||
|
||||
#endif
|
4
src/lib/state.cpp
Normal file
4
src/lib/state.cpp
Normal file
@ -0,0 +1,4 @@
|
||||
#include "state.h"
|
||||
|
||||
uint32_t CurrentTime;
|
||||
ScreenId MoveReturnScreen = (ScreenId)0;
|
10
src/lib/state.h
Normal file
10
src/lib/state.h
Normal file
@ -0,0 +1,10 @@
|
||||
#ifndef __state
|
||||
#define __state
|
||||
|
||||
#include "stdint.h"
|
||||
#include "include/screenids.h"
|
||||
|
||||
extern uint32_t CurrentTime;
|
||||
extern ScreenId MoveReturnScreen;
|
||||
|
||||
#endif
|
1124
src/lib/vl53l0x.cpp
Normal file
1124
src/lib/vl53l0x.cpp
Normal file
File diff suppressed because it is too large
Load Diff
204
src/lib/vl53l0x.h
Normal file
204
src/lib/vl53l0x.h
Normal file
@ -0,0 +1,204 @@
|
||||
// Slightly modified version of https://github.com/pololu/vl53l0x-arduino
|
||||
// which returns an error code if initialization fails.
|
||||
|
||||
#ifndef VL53L0X_h
|
||||
#define VL53L0X_h
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
|
||||
enum class VL53L0XInitResult
|
||||
{
|
||||
Success,
|
||||
InvalidIdentification,
|
||||
GetSpadInfoFailed,
|
||||
VHVCalibrationFailed,
|
||||
PhaseCalibrationFailed,
|
||||
};
|
||||
|
||||
|
||||
static const uint16_t VL53L0XRangeNotStarted = 65533;
|
||||
static const uint16_t VL53L0XRangeNotReady = 65534;
|
||||
static const uint16_t VL53L0XRangeTimeout = 65535;
|
||||
|
||||
static const uint8_t VL53L0XAsyncStateNotStarted = 0;
|
||||
static const uint8_t VL53L0XAsyncStateWaitingForStart = 1;
|
||||
static const uint8_t VL53L0XAsyncStateWaitingForStatus = 2;
|
||||
|
||||
|
||||
class VL53L0X
|
||||
{
|
||||
public:
|
||||
// register addresses from API vl53l0x_device.h (ordered as listed there)
|
||||
enum regAddr
|
||||
{
|
||||
SYSRANGE_START = 0x00,
|
||||
|
||||
SYSTEM_THRESH_HIGH = 0x0C,
|
||||
SYSTEM_THRESH_LOW = 0x0E,
|
||||
|
||||
SYSTEM_SEQUENCE_CONFIG = 0x01,
|
||||
SYSTEM_RANGE_CONFIG = 0x09,
|
||||
SYSTEM_INTERMEASUREMENT_PERIOD = 0x04,
|
||||
|
||||
SYSTEM_INTERRUPT_CONFIG_GPIO = 0x0A,
|
||||
|
||||
GPIO_HV_MUX_ACTIVE_HIGH = 0x84,
|
||||
|
||||
SYSTEM_INTERRUPT_CLEAR = 0x0B,
|
||||
|
||||
RESULT_INTERRUPT_STATUS = 0x13,
|
||||
RESULT_RANGE_STATUS = 0x14,
|
||||
|
||||
RESULT_CORE_AMBIENT_WINDOW_EVENTS_RTN = 0xBC,
|
||||
RESULT_CORE_RANGING_TOTAL_EVENTS_RTN = 0xC0,
|
||||
RESULT_CORE_AMBIENT_WINDOW_EVENTS_REF = 0xD0,
|
||||
RESULT_CORE_RANGING_TOTAL_EVENTS_REF = 0xD4,
|
||||
RESULT_PEAK_SIGNAL_RATE_REF = 0xB6,
|
||||
|
||||
ALGO_PART_TO_PART_RANGE_OFFSET_MM = 0x28,
|
||||
|
||||
I2C_SLAVE_DEVICE_ADDRESS = 0x8A,
|
||||
|
||||
MSRC_CONFIG_CONTROL = 0x60,
|
||||
|
||||
PRE_RANGE_CONFIG_MIN_SNR = 0x27,
|
||||
PRE_RANGE_CONFIG_VALID_PHASE_LOW = 0x56,
|
||||
PRE_RANGE_CONFIG_VALID_PHASE_HIGH = 0x57,
|
||||
PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT = 0x64,
|
||||
|
||||
FINAL_RANGE_CONFIG_MIN_SNR = 0x67,
|
||||
FINAL_RANGE_CONFIG_VALID_PHASE_LOW = 0x47,
|
||||
FINAL_RANGE_CONFIG_VALID_PHASE_HIGH = 0x48,
|
||||
FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT = 0x44,
|
||||
|
||||
PRE_RANGE_CONFIG_SIGMA_THRESH_HI = 0x61,
|
||||
PRE_RANGE_CONFIG_SIGMA_THRESH_LO = 0x62,
|
||||
|
||||
PRE_RANGE_CONFIG_VCSEL_PERIOD = 0x50,
|
||||
PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI = 0x51,
|
||||
PRE_RANGE_CONFIG_TIMEOUT_MACROP_LO = 0x52,
|
||||
|
||||
SYSTEM_HISTOGRAM_BIN = 0x81,
|
||||
HISTOGRAM_CONFIG_INITIAL_PHASE_SELECT = 0x33,
|
||||
HISTOGRAM_CONFIG_READOUT_CTRL = 0x55,
|
||||
|
||||
FINAL_RANGE_CONFIG_VCSEL_PERIOD = 0x70,
|
||||
FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI = 0x71,
|
||||
FINAL_RANGE_CONFIG_TIMEOUT_MACROP_LO = 0x72,
|
||||
CROSSTALK_COMPENSATION_PEAK_RATE_MCPS = 0x20,
|
||||
|
||||
MSRC_CONFIG_TIMEOUT_MACROP = 0x46,
|
||||
|
||||
SOFT_RESET_GO2_SOFT_RESET_N = 0xBF,
|
||||
IDENTIFICATION_MODEL_ID = 0xC0,
|
||||
IDENTIFICATION_REVISION_ID = 0xC2,
|
||||
|
||||
OSC_CALIBRATE_VAL = 0xF8,
|
||||
|
||||
GLOBAL_CONFIG_VCSEL_WIDTH = 0x32,
|
||||
GLOBAL_CONFIG_SPAD_ENABLES_REF_0 = 0xB0,
|
||||
GLOBAL_CONFIG_SPAD_ENABLES_REF_1 = 0xB1,
|
||||
GLOBAL_CONFIG_SPAD_ENABLES_REF_2 = 0xB2,
|
||||
GLOBAL_CONFIG_SPAD_ENABLES_REF_3 = 0xB3,
|
||||
GLOBAL_CONFIG_SPAD_ENABLES_REF_4 = 0xB4,
|
||||
GLOBAL_CONFIG_SPAD_ENABLES_REF_5 = 0xB5,
|
||||
|
||||
GLOBAL_CONFIG_REF_EN_START_SELECT = 0xB6,
|
||||
DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD = 0x4E,
|
||||
DYNAMIC_SPAD_REF_EN_START_OFFSET = 0x4F,
|
||||
POWER_MANAGEMENT_GO1_POWER_FORCE = 0x80,
|
||||
|
||||
VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV = 0x89,
|
||||
|
||||
ALGO_PHASECAL_LIM = 0x30,
|
||||
ALGO_PHASECAL_CONFIG_TIMEOUT = 0x30,
|
||||
};
|
||||
|
||||
enum vcselPeriodType { VcselPeriodPreRange, VcselPeriodFinalRange };
|
||||
|
||||
uint8_t last_status; // status of last I2C transmission
|
||||
|
||||
VL53L0X(void);
|
||||
|
||||
void setAddress(uint8_t new_addr);
|
||||
inline uint8_t getAddress(void) { return address; }
|
||||
|
||||
VL53L0XInitResult init(bool io_2v8 = true);
|
||||
|
||||
void writeReg(uint8_t reg, uint8_t value);
|
||||
void writeReg16Bit(uint8_t reg, uint16_t value);
|
||||
void writeReg32Bit(uint8_t reg, uint32_t value);
|
||||
uint8_t readReg(uint8_t reg);
|
||||
uint16_t readReg16Bit(uint8_t reg);
|
||||
uint32_t readReg32Bit(uint8_t reg);
|
||||
|
||||
void writeMulti(uint8_t reg, uint8_t const * src, uint8_t count);
|
||||
void readMulti(uint8_t reg, uint8_t * dst, uint8_t count);
|
||||
|
||||
bool setSignalRateLimit(float limit_Mcps);
|
||||
float getSignalRateLimit(void);
|
||||
|
||||
bool setMeasurementTimingBudget(uint32_t budget_us);
|
||||
uint32_t getMeasurementTimingBudget(void);
|
||||
|
||||
bool setVcselPulsePeriod(vcselPeriodType type, uint8_t period_pclks);
|
||||
uint8_t getVcselPulsePeriod(vcselPeriodType type);
|
||||
|
||||
void startContinuous(uint32_t period_ms = 0);
|
||||
void stopContinuous(void);
|
||||
uint16_t readRangeContinuousMillimeters(void);
|
||||
uint16_t readRangeSingleMillimeters(void);
|
||||
|
||||
void asyncStartReadRangeSingleMillimeters();
|
||||
uint16_t asyncReadRangeSingleMillimeters();
|
||||
bool asyncReading();
|
||||
|
||||
inline void setTimeout(uint16_t timeout) { io_timeout = timeout; }
|
||||
inline uint16_t getTimeout(void) { return io_timeout; }
|
||||
bool timeoutOccurred(void);
|
||||
|
||||
private:
|
||||
// TCC: Target CentreCheck
|
||||
// MSRC: Minimum Signal Rate Check
|
||||
// DSS: Dynamic Spad Selection
|
||||
|
||||
struct SequenceStepEnables
|
||||
{
|
||||
boolean tcc, msrc, dss, pre_range, final_range;
|
||||
};
|
||||
|
||||
struct SequenceStepTimeouts
|
||||
{
|
||||
uint16_t pre_range_vcsel_period_pclks, final_range_vcsel_period_pclks;
|
||||
|
||||
uint16_t msrc_dss_tcc_mclks, pre_range_mclks, final_range_mclks;
|
||||
uint32_t msrc_dss_tcc_us, pre_range_us, final_range_us;
|
||||
};
|
||||
|
||||
uint8_t address;
|
||||
uint16_t io_timeout;
|
||||
bool did_timeout;
|
||||
uint16_t timeout_start_ms;
|
||||
|
||||
uint8_t stop_variable; // read by init and used when starting measurement; is StopVariable field of VL53L0X_DevData_t structure in API
|
||||
uint32_t measurement_timing_budget_us;
|
||||
|
||||
uint8_t async_state = VL53L0XAsyncStateNotStarted;
|
||||
|
||||
bool getSpadInfo(uint8_t * count, bool * type_is_aperture);
|
||||
|
||||
void getSequenceStepEnables(SequenceStepEnables * enables);
|
||||
void getSequenceStepTimeouts(SequenceStepEnables const * enables, SequenceStepTimeouts * timeouts);
|
||||
|
||||
bool performSingleRefCalibration(uint8_t vhv_init_byte);
|
||||
|
||||
static uint16_t decodeTimeout(uint16_t value);
|
||||
static uint16_t encodeTimeout(uint32_t timeout_mclks);
|
||||
static uint32_t timeoutMclksToMicroseconds(uint16_t timeout_period_mclks, uint8_t vcsel_period_pclks);
|
||||
static uint32_t timeoutMicrosecondsToMclks(uint32_t timeout_period_us, uint8_t vcsel_period_pclks);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
295
src/main.cpp
Normal file
295
src/main.cpp
Normal file
@ -0,0 +1,295 @@
|
||||
#include <SPI.h>
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <Adafruit_ST7789.h>
|
||||
#include <Bounce2.h>
|
||||
|
||||
#include "./include/config.h"
|
||||
#include "./include/screenids.h"
|
||||
#include "./lib/debug.h"
|
||||
#include "./lib/settings.h"
|
||||
#include "./lib/screen.h"
|
||||
#include "./lib/vl53l0x.h"
|
||||
#include "./lib/Control.h"
|
||||
#include "./lib/motor.h"
|
||||
#include "./lib/control.h"
|
||||
#include "./lib/state.h"
|
||||
#include "./lib/screen/home.h"
|
||||
#include "./lib/screen/calibrate.h"
|
||||
#include "./lib/screen/manual.h"
|
||||
#include "./lib/screen/move-overcurrent.h"
|
||||
#include "./lib/screen/move-sensorerror.h"
|
||||
|
||||
|
||||
enum class InitSequenceStep
|
||||
{
|
||||
EEPROM = 0,
|
||||
HeightSensorInit,
|
||||
HeightSensorTest,
|
||||
|
||||
Last = HeightSensorTest
|
||||
};
|
||||
|
||||
|
||||
// Forward declarations
|
||||
inline void setupHeightSensor();
|
||||
inline void testHeightSensor();
|
||||
|
||||
void initSequenceStart();
|
||||
void initSequenceSuccess(InitSequenceStep step);
|
||||
void initSequenceError(InitSequenceStep step);
|
||||
void initSequenceDisplayHeight(uint16_t measurement);
|
||||
void initSequenceEnd();
|
||||
|
||||
|
||||
auto display = Adafruit_ST7789(Config::DisplayPinCS, Config::DisplayPinDC, Config::DisplayPinRST);
|
||||
auto screenManager = ScreenManager(&display);
|
||||
|
||||
Bounce buttons[3];
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Setup
|
||||
|
||||
*/
|
||||
void setup()
|
||||
{
|
||||
DebugInit();
|
||||
dln("[ MAIN ] Debug log started");
|
||||
|
||||
buttons[0].attach(Config::ButtonPinTop, INPUT_PULLUP);
|
||||
buttons[1].attach(Config::ButtonPinMiddle, INPUT_PULLUP);
|
||||
buttons[2].attach(Config::ButtonPinBottom, INPUT_PULLUP);
|
||||
|
||||
display.init(Config::DisplayWidth, Config::DisplayHeight, SPI_MODE3);
|
||||
display.setRotation(Config::DisplayRotation);
|
||||
|
||||
screenManager.init();
|
||||
|
||||
initSequenceStart();
|
||||
motorInit();
|
||||
|
||||
// Load settings from EEPROM
|
||||
auto initialized = readSettings();
|
||||
initSequenceSuccess(InitSequenceStep::EEPROM);
|
||||
|
||||
|
||||
// Initialize VL53L0X sensor
|
||||
CurrentTime = millis();
|
||||
|
||||
setupHeightSensor();
|
||||
testHeightSensor();
|
||||
|
||||
initSequenceEnd();
|
||||
|
||||
|
||||
CurrentTime = millis();
|
||||
|
||||
|
||||
if (initialized)
|
||||
{
|
||||
Control.snapToPreset();
|
||||
|
||||
screenManager.show<HomeScreen>();
|
||||
}
|
||||
else
|
||||
{
|
||||
screenManager.show<CalibrateScreen>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
inline void setupHeightSensor()
|
||||
{
|
||||
auto error = Control.init();
|
||||
if (error != VL53L0XInitResult::Success)
|
||||
{
|
||||
initSequenceError(InitSequenceStep::HeightSensorInit);
|
||||
|
||||
switch (error)
|
||||
{
|
||||
case VL53L0XInitResult::InvalidIdentification:
|
||||
display.print("Invalid identification");
|
||||
break;
|
||||
|
||||
case VL53L0XInitResult::GetSpadInfoFailed:
|
||||
display.print("GetSpadInfo failed");
|
||||
break;
|
||||
|
||||
case VL53L0XInitResult::VHVCalibrationFailed:
|
||||
display.print("VHV calibration failed");
|
||||
break;
|
||||
|
||||
case VL53L0XInitResult::PhaseCalibrationFailed:
|
||||
display.print("Phase calibration failed");
|
||||
break;
|
||||
|
||||
default:
|
||||
display.print("Unknown error");
|
||||
break;
|
||||
}
|
||||
|
||||
while(1);
|
||||
}
|
||||
|
||||
initSequenceSuccess(InitSequenceStep::HeightSensorInit);
|
||||
}
|
||||
|
||||
|
||||
|
||||
inline void testHeightSensor()
|
||||
{
|
||||
Control.stabilizeStart();
|
||||
|
||||
while (true)
|
||||
{
|
||||
if (Control.update() != ControlUpdateResult::SensorError)
|
||||
{
|
||||
initSequenceDisplayHeight(Control.getCurrentMeasurement());
|
||||
|
||||
if (Control.stabilized())
|
||||
break;
|
||||
}
|
||||
else
|
||||
initSequenceDisplayHeight(0);
|
||||
|
||||
CurrentTime = millis();
|
||||
}
|
||||
|
||||
initSequenceSuccess(InitSequenceStep::HeightSensorTest);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Loop
|
||||
|
||||
*/
|
||||
void loop()
|
||||
{
|
||||
CurrentTime = millis();
|
||||
|
||||
|
||||
switch (Control.update())
|
||||
{
|
||||
case ControlUpdateResult::TargetReached:
|
||||
switch (MoveReturnScreen)
|
||||
{
|
||||
case ScreenId::Manual:
|
||||
screenManager.show<ManualScreen>();
|
||||
break;
|
||||
|
||||
default:
|
||||
screenManager.show<HomeScreen>();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case ControlUpdateResult::SensorError:
|
||||
screenManager.show<MoveSensorErrorScreen>(ScreenId::MoveSensorError);
|
||||
break;
|
||||
|
||||
case ControlUpdateResult::Overcurrent:
|
||||
screenManager.show<MoveOvercurrentScreen>(ScreenId::MoveOvercurrent);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
buttons[0].update();
|
||||
buttons[1].update();
|
||||
buttons[2].update();
|
||||
|
||||
if (buttons[0].fell())
|
||||
{
|
||||
//dln("[ MAIN ] Button pressed: Top");
|
||||
screenManager.button(Button::Top);
|
||||
}
|
||||
|
||||
if (buttons[1].fell())
|
||||
{
|
||||
//dln("[ MAIN ] Button pressed: Middle");
|
||||
screenManager.button(Button::Middle);
|
||||
}
|
||||
|
||||
if (buttons[2].fell())
|
||||
{
|
||||
//dln("[ MAIN ] Button pressed: Bottom");
|
||||
screenManager.button(Button::Bottom);
|
||||
}
|
||||
|
||||
screenManager.tick();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Helper functions for the status display during the initialization sequence
|
||||
|
||||
*/
|
||||
#define initSequenceTextSize 2
|
||||
|
||||
// Default font is 5x7
|
||||
#define initSequenceTextY(step) ((1 + (uint8_t)step) * ((7 + 3) * initSequenceTextSize))
|
||||
|
||||
|
||||
void initSequenceStart()
|
||||
{
|
||||
display.fillScreen(Config::ColorInitSeqBackground);
|
||||
display.setTextSize(initSequenceTextSize);
|
||||
|
||||
display.setCursor(0, 0);
|
||||
display.setTextColor(Config::ColorInitSeqTitle);
|
||||
display.println("Initializing...");
|
||||
|
||||
display.setTextColor(Config::ColorInitSeqItems, Config::ColorInitSeqBackground);
|
||||
|
||||
display.setCursor(0, initSequenceTextY(0));
|
||||
display.print(" reading EEPROM");
|
||||
|
||||
display.setCursor(0, initSequenceTextY(1));
|
||||
display.print(" height sensor");
|
||||
|
||||
display.setCursor(0, initSequenceTextY(2));
|
||||
display.print(" sensor test");
|
||||
}
|
||||
|
||||
|
||||
void initSequenceSuccess(InitSequenceStep step)
|
||||
{
|
||||
|
||||
display.drawChar(0, initSequenceTextY(step), 'v', Config::ColorInitSeqSuccess, Config::ColorInitSeqBackground, initSequenceTextSize);
|
||||
}
|
||||
|
||||
|
||||
void initSequenceError(InitSequenceStep step)
|
||||
{
|
||||
display.drawChar(0, initSequenceTextY(step), 'x', Config::ColorInitSeqError, Config::ColorInitSeqBackground, initSequenceTextSize);
|
||||
display.setCursor(0, initSequenceTextY(InitSequenceStep::Last + 2));
|
||||
}
|
||||
|
||||
|
||||
void initSequenceDisplayHeight(uint16_t measurement)
|
||||
{
|
||||
display.setCursor(0, initSequenceTextY(InitSequenceStep::Last + 2));
|
||||
|
||||
if (measurement > 0)
|
||||
{
|
||||
display.print(measurement);
|
||||
display.print("mm ");
|
||||
}
|
||||
else
|
||||
display.print("- ");
|
||||
}
|
||||
|
||||
|
||||
void initSequenceEnd()
|
||||
{
|
||||
display.setTextSize(1);
|
||||
delay(1000);
|
||||
}
|
Loading…
Reference in New Issue
Block a user