diff --git a/.build.yml b/.build.yml index df72ca3..7ece57b 100644 --- a/.build.yml +++ b/.build.yml @@ -9,43 +9,19 @@ steps: - name: submodules image: alpine/git commands: - - git submodule update --init --recursive - -- name: patch - image: alpine/git - depends_on: [ submodules ] - commands: - - |- - sed -i 's/GNU bash, version (3\\\.\[1-9\]|4)/GNU bash, version (3.[1-9]|4|5)/g' modules/sdk/crosstool-NG/configure.ac - - - mkdir -p modules/sdk/crosstool-NG/.build/tarballs - - wget https://github.com/libexpat/libexpat/releases/download/R_2_1_0/expat-2.1.0.tar.gz -O modules/sdk/crosstool-NG/.build/tarballs/expat-2.1.0.tar.gz - -- name: toolchain - image: debian:sid - depends_on: [ patch ] - commands: - - apt update - - apt install -y make bash gawk g++ gcc libc6-dev flex bison automake autoconf gperf texinfo wget git bzip2 help2man libtool libtool-bin unrar-free unzip ncurses-dev libexpat-dev python-dev python3 - - cd modules/sdk - - export CT_EXPERIMENTAL=y - - export CT_ALLOW_BUILD_AS_ROOT=y - - export CT_ALLOW_BUILD_AS_ROOT_SURE=y - - make standalone=y -j$(nproc) - - wget -N https://raw.githubusercontent.com/espressif/esptool/master/esptool.py -O xtensa-lx106-elf/bin/esptool.py + - git submodule update --init --recursive --depth 1 - name: firmware - image: debian:sid - depends_on: [ toolchain ] + image: docker-repo.service.intern.lab.or.it:5000/fiatlux-build-env + depends_on: [ submodules ] commands: - - apt update - - apt remove --purge -y python2 - - apt install -y make python3 python3-serial python-is-python3 perl - export PATH=$(pwd)/modules/sdk/xtensa-lx106-elf/bin:$PATH + - apt update + - apt install -y minify - make firmware -j$(nproc) - name: pcb - image: setsoft/kicad_auto + image: setsoft/kicad_auto:ki6 commands: - apt update - apt install -y make zip @@ -60,7 +36,7 @@ steps: - name: unittest image: debian:sid - depends_on: [ patch ] + depends_on: [ firmware ] commands: - apt update - apt install -y make @@ -83,9 +59,11 @@ steps: base_url: https://git.neulandlabor.de/ files: - firmware/firmware/fiatlux.bin + - firmware/otaflash.py + - pcb/pcb.zip checksum: - sha512 - md5 - title: buildtest + title: fiatlux when: event: tag diff --git a/.gitmodules b/.gitmodules index f1998a7..5e7dc18 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,9 @@ [submodule "modules/rtos"] path = modules/rtos - url = https://github.com/SuperHouse/esp-open-rtos.git + url = https://git.neulandlabor.de/j3d1/esp-open-rtos.git [submodule "modules/sdk"] path = modules/sdk url = https://github.com/pfalcon/esp-open-sdk.git +[submodule "modules/nix"] + path = modules/nix + url = https://github.com/busti/nixpkgs-esp-dev diff --git a/Makefile b/Makefile index 00690fc..c8f31c2 100644 --- a/Makefile +++ b/Makefile @@ -1,21 +1,9 @@ - .PHONY: firmware flash firmware_docker case pcb all: firmware case pcb firmware: - +@make -C firmware all - -clean: - +@make -C firmware clean - -firmware_docker: - sh -c "docker build -t fiatlux_env docker" - sh -c "docker run --volume "$$(pwd)"/firmware:/app/firmware fiatlux_env make -C firmware all" - -clean_docker: - sh -c "docker build -t fiatlux_env docker" - sh -c "docker run --volume "$$(pwd)"/firmware:/app/firmware fiatlux_env make -C firmware clean" + +@make -C firmware html all flash: +@make -C firmware flash @@ -25,3 +13,27 @@ case: pcb: +@make -C pcb all + +clean: + +@make -C firmware clean + +@make -C pcb clean + +flash_docker: + sh -c "docker build -t fiatlux_firmware_env docker/firmware" + sh -c "docker run --volume "$$(pwd)"/firmware:/app/firmware --device=/dev/ttyUSB0 fiatlux_firmware_env make -C firmware flash" + + +firmware_docker: + sh -c "docker build -t fiatlux_firmware_env docker/firmware" + sh -c "docker run --volume "$$(pwd)"/firmware:/app/firmware fiatlux_firmware_env make -C firmware html all" + +pcb_docker: + sh -c "docker build -t fiatlux_pcb_env docker/pcb" + sh -c "docker run --volume "$$(pwd)"/pcb:/app/pcb fiatlux_pcb_env make -C pcb all" + +clean_docker: + sh -c "docker build -t fiatlux_firmware_env docker/firmware" + sh -c "docker build -t fiatlux_pcb_env docker/pcb" + sh -c "docker run --volume "$$(pwd)"/firmware:/app/firmware fiatlux_firmware_env make -C firmware clean" + sh -c "docker run --volume "$$(pwd)"/pcb:/app/pcb fiatlux_pcb_env make -C pcb clean" + diff --git a/README.md b/README.md index 0495a08..ecb33c2 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ git submodule update --init --recursive ### Build Requirements - make - - bash gawk perl + - bash gawk - g++ gcc - libc6-dev - flex bison @@ -27,6 +27,7 @@ git submodule update --init --recursive - ncurses-dev libexpat-dev - python3 python3-serial python-dev + - pip install websocket-client (for otaflash.py, optional) ### Build Steps @@ -59,4 +60,12 @@ install `docker` on your platform and buil with ```bash make firmware_docker -j$(nproc) -``` \ No newline at end of file +``` + +### Build Steps (using nixos) + +In the project root run: +``` +nix-shell --option sandbox false +make firmware -j$(nproc) +``` diff --git a/docker/Dockerfile b/docker/firmware/Dockerfile similarity index 92% rename from docker/Dockerfile rename to docker/firmware/Dockerfile index 582fe2f..d278775 100644 --- a/docker/Dockerfile +++ b/docker/firmware/Dockerfile @@ -6,7 +6,7 @@ RUN cd app; git clone --recursive https://github.com/SuperHouse/esp-open-rtos.gi RUN cd app; sed -i 's/GNU bash, version (3\\\.\[1-9\]|4)/GNU bash, version (3.[1-9]|4|5)/g' modules/sdk/crosstool-NG/configure.ac; mkdir -p modules/sdk/crosstool-NG/.build/tarballs; wget https://github.com/libexpat/libexpat/releases/download/R_2_1_0/expat-2.1.0.tar.gz -O modules/sdk/crosstool-NG/.build/tarballs/expat-2.1.0.tar.gz RUN cd app/modules/sdk; export CT_EXPERIMENTAL=y; export CT_ALLOW_BUILD_AS_ROOT=y; export CT_ALLOW_BUILD_AS_ROOT_SURE=y; make standalone=y -j$(nproc); wget -N https://raw.githubusercontent.com/espressif/esptool/master/esptool.py -O xtensa-lx106-elf/bin/esptool.py USER 0 -RUN apt remove --purge -y python2 && apt autoremove --purge -y && apt install -y python3 python3-serial perl +RUN apt remove --purge -y python2 && apt autoremove --purge -y && apt install -y python3 python3-serial RUN apt install -y --reinstall python-is-python3 USER 1000 WORKDIR /app diff --git a/docker/pcb/Dockerfile b/docker/pcb/Dockerfile new file mode 100644 index 0000000..24535d5 --- /dev/null +++ b/docker/pcb/Dockerfile @@ -0,0 +1,7 @@ +# syntax=docker/dockerfile:1 +FROM setsoft/kicad_auto +RUN apt update && apt install -y make zip; mkdir /app; chown 1000:1000 /app; cd /app; useradd user +RUN mkdir -p /home/user; cp -r /root/.config /home/user/.config; chown 1000:1000 -R /home/user +RUN ls -la /home/user/.config +USER 1000 +WORKDIR /app \ No newline at end of file diff --git a/firmware/.gitignore b/firmware/.gitignore index e88780c..14041d9 100644 --- a/firmware/.gitignore +++ b/firmware/.gitignore @@ -141,4 +141,6 @@ Mkfile.old dkms.conf *.remove -firmware/ \ No newline at end of file +firmware/ +build/ +compile_commands.json diff --git a/firmware/.idea/.gitignore b/firmware/.idea/.gitignore new file mode 100644 index 0000000..8bf4d45 --- /dev/null +++ b/firmware/.idea/.gitignore @@ -0,0 +1,6 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/firmware/.idea/firmware.iml b/firmware/.idea/firmware.iml new file mode 100644 index 0000000..190a5aa --- /dev/null +++ b/firmware/.idea/firmware.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/firmware/.idea/misc.xml b/firmware/.idea/misc.xml new file mode 100644 index 0000000..8067168 --- /dev/null +++ b/firmware/.idea/misc.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/firmware/.idea/vcs.xml b/firmware/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/firmware/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/firmware/.idea/watcherTasks.xml b/firmware/.idea/watcherTasks.xml new file mode 100644 index 0000000..10c4c1c --- /dev/null +++ b/firmware/.idea/watcherTasks.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/firmware/Makefile b/firmware/Makefile index 8006a40..976b533 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -1,21 +1,21 @@ PROGRAM=fiatlux -EXTRA_CFLAGS=-O3 +EXTRA_CFLAGS=-O3 -Ibuild/gen -DLWIP_NETIF_HOSTNAME=1 -#Enable debugging -#EXTRA_CFLAGS+=-DLWIP_DEBUG=1 -DHTTPD_DEBUG=LWIP_DBG_ON - -EXTRA_COMPONENTS=extras/i2s_dma extras/ws2812_i2s extras/dhcpserver extras/mbedtls extras/sntp extras/cpp_support +EXTRA_COMPONENTS=extras/i2s_dma extras/ws2812_i2s extras/dhcpserver extras/rboot-ota extras/mbedtls extras/httpd extras/sntp extras/cpp_support extras/paho_mqtt_c LIBS = hal m -FLASH_MODE = dio +FLASH_MODE = qio include ../modules/rtos/common.mk -html: +html: build/gen/fsdata.c + +build/gen/fsdata.c: webdir/index.html webdir/404.html webdir/css/picnic.min.css webdir/css/style.css webdir/js/smoothie_min.js @echo "Generating fsdata.." - cd fsdata && ./makefsdata + @mkdir -p $(dir $@) + @./mkwebfs.py --gzip --minify -o $@ $^ test: unittest systest @@ -24,3 +24,5 @@ unittest: systest: true + +.NOTPARALLEL: html all diff --git a/firmware/crc32.c b/firmware/crc32.c new file mode 100644 index 0000000..8107dfa --- /dev/null +++ b/firmware/crc32.c @@ -0,0 +1,71 @@ +// +// Created by jedi on 02.08.21. +// + +#include "crc32.h" + +#define UPDC32(octet, crc) (crc_32_tab[((crc)\ +^ ((uint8_t)octet)) & 0xff] ^ ((crc) >> 8)) + +static uint32_t crc_32_tab[] = { /* CRC polynomial 0xedb88320 */ + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, + 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, + 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, + 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, + 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, + 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, + 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, + 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, + 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, + 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, + 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, + 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, + 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, + 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, + 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, + 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, + 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, + 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, + 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, + 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, + 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, + 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, + 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, + 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, + 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, + 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, + 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, + 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, + 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, + 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, + 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, + 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, + 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, + 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, + 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d +}; + +uint32_t updateCRC32(uint8_t ch, uint32_t crc) { + return UPDC32(ch, crc); +} + +uint32_t crc32_partial(uint32_t init, uint8_t *buf, uint32_t len) { + register uint32_t oldcrc32; + oldcrc32 = ~init; + for (; len; --len, ++buf) { + oldcrc32 = UPDC32(*buf, oldcrc32); + } + return ~oldcrc32; +} + +uint32_t crc32(uint8_t *data, uint32_t len) { + return crc32_partial(0, data, len); +} \ No newline at end of file diff --git a/firmware/crc32.h b/firmware/crc32.h new file mode 100644 index 0000000..16d4ca2 --- /dev/null +++ b/firmware/crc32.h @@ -0,0 +1,14 @@ +// +// Created by jedi on 02.08.21. +// + +#ifndef FIRMWARE_CRC32_H +#define FIRMWARE_CRC32_H + +#include + +uint32_t crc32_partial(uint32_t init, uint8_t *data, uint32_t len); + +uint32_t crc32(uint8_t *data, uint32_t len); + +#endif //FIRMWARE_CRC32_H diff --git a/firmware/fiatlux.c b/firmware/fiatlux.c index a0fb5ea..9e3efeb 100644 --- a/firmware/fiatlux.c +++ b/firmware/fiatlux.c @@ -1,12 +1,15 @@ -#include -#include -#include - +#include "system.h" #include "wifi.h" #include "web.h" #include "mqtt.h" #include "lux.h" +#include +#include +#include + +#include +#include void user_init(void) { @@ -15,5 +18,13 @@ void user_init(void) sdk_wifi_set_sleep_type(WIFI_SLEEP_MODEM); - while(1); + system_init_config(); + + wifi_available_semaphore = xSemaphoreCreateBinary(); + + xTaskCreate(wifi_task, "wifi_task", 1024, NULL, 1, NULL); + + xTaskCreate(&httpd_task, "httpd_task", 1024, NULL, 2, NULL); + + xTaskCreate(&lux_task, "lux_task", 512, NULL, 1, NULL); } diff --git a/firmware/log.cpp b/firmware/log.cpp new file mode 100644 index 0000000..8b268d9 --- /dev/null +++ b/firmware/log.cpp @@ -0,0 +1,49 @@ +// +// Created by jedi on 18.11.21. +// + +#include "log.h" + +#include + +constexpr unsigned syslog_buffer_size = 1024; +char syslog_buf[syslog_buffer_size]; +volatile unsigned head = 0; +volatile unsigned streams = 0; + +extern "C" void syslog(const char *msg) { + printf("syslog> %s", msg); + while (char c = *msg++) { + syslog_buf[head++ % syslog_buffer_size] = c; + } + syslog_buf[head] = 0; +} + +unsigned syslog_current_tail() { + if(head < syslog_buffer_size) + return 0; + return head + 1 - syslog_buffer_size; +} + +unsigned syslog_data_after(unsigned local_tail) { + if(local_tail > head) + return 0; + return (head % syslog_buffer_size) - (local_tail % syslog_buffer_size); +} + +extern "C" int syslog_copy_out(char *out, int len, unsigned local_tail) { + unsigned cnt = 0; + while (cnt < syslog_data_after(local_tail) && cnt < len) { + out[cnt] = syslog_buf[local_tail % syslog_buffer_size + cnt]; + cnt++; + } + return cnt; +} + +extern "C" void syslog_attach() { + streams++; +} + +extern "C" void syslog_detach() { + streams--; +} \ No newline at end of file diff --git a/firmware/log.h b/firmware/log.h new file mode 100644 index 0000000..0cde491 --- /dev/null +++ b/firmware/log.h @@ -0,0 +1,28 @@ +// +// Created by jedi on 18.11.21. +// + +#ifndef FIRMWARE_LOG_H +#define FIRMWARE_LOG_H + +#ifdef __cplusplus +extern "C" { +#endif + +void syslog(const char *); + +unsigned syslog_current_tail(); + +unsigned syslog_data_after(unsigned); + +int syslog_copy_out(char *, int, unsigned); + +void syslog_attach(); + +void syslog_detach(); + +#ifdef __cplusplus +} +#endif + +#endif //FIRMWARE_LOG_H diff --git a/firmware/lux.cpp b/firmware/lux.cpp index 6fd858b..8b775c4 100644 --- a/firmware/lux.cpp +++ b/firmware/lux.cpp @@ -1,3 +1,32 @@ // // Created by jedi on 25.06.21. // + +#include "lux.h" + +#include +#include +#include + +#include + +const int signal_led_pin = 2; + +const int cs0 = 15; +const int gpio4 = 4; +const int gpio5 = 5; + +extern "C" void signal_led(bool state) { + gpio_write(signal_led_pin, !state); +} + +extern "C" void lux_task(void *pvParameters) { + + gpio_enable(signal_led_pin, GPIO_OUTPUT); + gpio_enable(cs0, GPIO_OUTPUT); + gpio_enable(gpio4, GPIO_OUTPUT); + gpio_enable(gpio5, GPIO_OUTPUT); + spi_init(1, SPI_MODE0, SPI_FREQ_DIV_1M, 1, SPI_BIG_ENDIAN, 1); + + vTaskDelete(nullptr); +} \ No newline at end of file diff --git a/firmware/lux.h b/firmware/lux.h index f185111..caf4a88 100644 --- a/firmware/lux.h +++ b/firmware/lux.h @@ -9,6 +9,10 @@ extern "C" { #endif +void lux_task(void *pvParameters); + +void signal_led(bool state); + #ifdef __cplusplus } #endif diff --git a/firmware/mkwebfs.py b/firmware/mkwebfs.py new file mode 100755 index 0000000..e48548c --- /dev/null +++ b/firmware/mkwebfs.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python3 +import os +import gzip +import argparse +import subprocess + +parser = argparse.ArgumentParser() +parser.add_argument('-o', '--output', help='Output file name', default='stdout') +parser.add_argument('-W', '--webroot', help='Output file name', default='webdir/') +parser.add_argument('--gzip', dest='gzip', action='store_true') +parser.add_argument('--no-gzip', dest='gzip', action='store_false') +parser.set_defaults(gzip=False) +parser.add_argument('--minify', dest='minify', action='store_true') +parser.add_argument('--no-minify', dest='minify', action='store_false') +parser.set_defaults(minify=False) +parser.add_argument('--header', dest='header', action='store_true') +parser.add_argument('--no-header', dest='header', action='store_false') +parser.set_defaults(header=True) +parser.add_argument('input', nargs='+', default=os.getcwd()) +args = parser.parse_args() + + +def mimeFromName(name): + if name.endswith(".html") or name.endswith(".htm") or name.endswith(".shtml") or name.endswith( + ".shtm") or name.endswith(".ssi"): + return "text/html" + if name.endswith(".js"): + return "application/x-javascript" + if name.endswith(".css"): + return "text/css" + if name.endswith(".ico"): + return "image/x-icon" + if name.endswith(".gif"): + return "image/gif" + if name.endswith(".png"): + return "image/png" + if name.endswith(".jpg"): + return "image/jpeg" + if name.endswith(".bmp"): + return "image/bmp" + if name.endswith(".class"): + return "application/octet-stream" + if name.endswith(".ram"): + return "audio/x-pn-realaudio" + return "text/plain" + + +def dumpBin2CHex(f, b): + oStr = "\t" + n = 0 + for val in b: + oStr += hex(val) + ", " + n += 1 + if n % 8 == 0: + oStr += "\n\t" + oStr += "\n" + f.write(oStr) + + +f_fsdata_c = open(args.output, 'w') +f_fsdata_c.write('#include "httpd/fsdata.h"\n\n') + +httpFiles = [file for file in args.input if (args.webroot in file)] + +lastFileStruct = "NULL" + +for file in httpFiles: + response = b'' + + webPath = ("/" + file.removeprefix(args.webroot)).replace("//", "/") + print("{} > {}".format(file, webPath)) + + mimeType = mimeFromName(file) + + if args.header: + if ("404" in file): + response = b'HTTP/1.0 404 File not found\r\n' + else: + response = b'HTTP/1.0 200 OK\r\n' + response += b"lwIP/1.4.1 (http://savannah.nongnu.org/projects/lwip)\r\n" + response += b'Content-type: ' + mimeType.encode() + b'\r\n' + + binFile = open(file, 'rb') + binData = binFile.read() + compEff = False + if args.minify: + p = subprocess.Popen(["minify", "--html-keep-document-tags", "--mime", mimeType], stdin=subprocess.PIPE, + stdout=subprocess.PIPE) + minData = p.communicate(binData)[0] + if len(minData) < len(binData): + print("- Minify: {} -> {}".format(len(binData), len(minData))) + compEff = True + binData = minData + + if args.gzip: + compData = gzip.compress(binData, 9) + if len(compData) < len(binData): + compEff = True + print("- Compressed from {} to {}".format(len(binData), len(compData))) + binData = compData + else: + print("- Compression skipped Orig: {} Comp: {}".format(len(binData), len(compData))) + binFile.close() + + if compEff: + response += b'Content-Encoding: gzip\r\n' + response += b"\r\n" + response += binData + binFile.close() + escFile = file.replace("/", "_").replace(".", "_") + escFileData = "data_" + escFile + escFileFile = "file_" + escFile + + f_fsdata_c.write('static const unsigned char {}[] = {{\n'.format(escFileData)) + f_fsdata_c.write('\t/* LOCAL:{} */\n'.format(file)) + f_fsdata_c.write('\t/* WEB: {} */\n'.format(webPath)) + fnameBin = webPath.encode("ascii") + b'\0' + dumpBin2CHex(f_fsdata_c, fnameBin) + dumpBin2CHex(f_fsdata_c, response) + f_fsdata_c.write("};\n\n") + + f_fsdata_c.write("const struct fsdata_file {}[] = {{{{\n {},\n {}, {} + {}, sizeof({}) - {}, 1 }}}};\n\n" + .format(escFileFile, lastFileStruct, escFileData, escFileData, len(fnameBin), escFileData, + len(fnameBin))) + # TODO: The last value is 1 if args.header == True + lastFileStruct = escFileFile + +f_fsdata_c.write("\n") +f_fsdata_c.write("#define FS_ROOT {}\n\n".format(lastFileStruct)) +f_fsdata_c.write("#define FS_NUMFILES {}\n\n".format(len(httpFiles))) diff --git a/firmware/otaflash.py b/firmware/otaflash.py new file mode 100755 index 0000000..2c52133 --- /dev/null +++ b/firmware/otaflash.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 + +import time +import websocket +import argparse +import zlib +from websocket import WebSocketTimeoutException + +parser = argparse.ArgumentParser(description='Update fiatlux firmware via websocket.') +parser.add_argument("binfile") +parser.add_argument("address") + +args = parser.parse_args() + +bs = 1024 + + +def parse_reply(bytes): + cmd = bytes[0:1].decode("utf-8") + ret = int.from_bytes(bytes[1:2], "big") + val = int.from_bytes(bytes[2:4], "big") + return {'cmd': cmd, 'ret': ret, 'val': val} + + +with open(args.binfile, "rb") as f: + try: + ws = websocket.WebSocket() + print("send {}".format(args.binfile)) + ws.connect("ws://" + args.address) + i = 0 + bytes = f.read() + rolling = zlib.crc32(bytes) + total = len(bytes) + while True: + chunk = bytes[bs * i:bs * i + bs] + msg = b'F\x00\x00\x00' + msg += i.to_bytes(2, 'big') + msg += len(chunk).to_bytes(2, 'big') + msg += (zlib.crc32(chunk) & 0xffffffff).to_bytes(4, 'big') + msg += chunk + ws.send(msg) + print("\r{:6.2f}%".format(100 * i * bs / total), end='') + reply = parse_reply(ws.recv()) + if reply['cmd'] == 'F' and reply['ret'] == 0: + i += 1 + elif reply['cmd'] == 'F' and reply['ret'] == 1: + print("Error: SEQUENCE_OUT_OF_ORDER") + i = reply['val'] + elif reply['cmd'] == 'F' and reply['ret'] == 2: + print("Error: CHECKSUM_MISMATCH") + i = reply['val'] + else: + print(reply) + + time.sleep(0.05) + if len(chunk) != bs: + break + + print("\rdone ") + msg = b'C\x00\x00\x00' + msg += total.to_bytes(4, 'big') + msg += (rolling).to_bytes(4, 'big') + ws.settimeout(5) + ws.send(msg) + reply = parse_reply(ws.recv()) + print(reply) + ws.close() + except WebSocketTimeoutException: + pass + except ConnectionResetError: + pass + except KeyboardInterrupt: + pass diff --git a/firmware/system.c b/firmware/system.c index 3de7ada..d190606 100644 --- a/firmware/system.c +++ b/firmware/system.c @@ -3,11 +3,120 @@ // #include "system.h" +#include "crc32.h" +#include "log.h" #include -#include #include #include -#include -#include \ No newline at end of file +#include +#include +#include +#include +#include + +#define min(a, b) \ + ({ __typeof__ (a) _a = (a); \ + __typeof__ (b) _b = (b); \ + _a < _b ? _a : _b; }) + +void system_clear_config() { + vPortEnterCritical(); + uint32_t num_sectors = 0x2000 / sdk_flashchip.sector_size; + uint32_t start = 0x00100000; + for (uint32_t i = 0; i < num_sectors; i++) { + spiflash_erase_sector(start + i * sdk_flashchip.sector_size); + } + if(sysparam_create_area(start, num_sectors, true) == SYSPARAM_OK) { + sysparam_init(start, 0); + } + sysparam_init(start, start + 0x2000); + sdk_system_restart(); +} + +void system_init_config() { + uint32_t base_addr = 0x00100000; + uint32_t num_sectors; + sysparam_init(base_addr, 0); + if(sysparam_get_info(&base_addr, &num_sectors) != SYSPARAM_OK) { + syslog("Warning: WiFi config, sysparam not initialized\n"); + num_sectors = 0x2000 / sdk_flashchip.sector_size; + if(sysparam_create_area(base_addr, num_sectors, true) == SYSPARAM_OK) { + sysparam_init(base_addr, 0); + } + sdk_system_restart(); + } +} + +#define MAX_IMAGE_SIZE 0x100000 + +struct { + rboot_write_status status; + uint32_t head; + uint32_t base; + uint16_t seq; + uint8_t slot; +} otaflash_context; + +void system_otaflash_init() { + rboot_config conf; + conf = rboot_get_config(); + otaflash_context.slot = (conf.current_rom + 1) % conf.count; + otaflash_context.base = rboot_get_slot_offset(otaflash_context.slot); + otaflash_context.status = rboot_write_init(otaflash_context.base); + otaflash_context.head = otaflash_context.base; + otaflash_context.seq = 0; +} + +enum return_code system_otaflash_chunk(uint8_t *data, uint16_t len, uint16_t seq, uint32_t hash, uint16_t *ack) { + uint32_t local_hash = crc32(data, len); + if(hash == local_hash && otaflash_context.seq == seq) { + if(otaflash_context.head % SECTOR_SIZE == 0) { + sdk_spi_flash_erase_sector(otaflash_context.head / SECTOR_SIZE); + } + if(((uint32_t) data) % 4) { + uint32 buf[len / 4]; + memcpy(buf, data, len); + sdk_spi_flash_write(otaflash_context.head, buf, len); + } else { + sdk_spi_flash_write(otaflash_context.head, (uint32_t *) data, len); + } + otaflash_context.head += len; + otaflash_context.seq++; + return OK; + } else if(hash != local_hash) { + return CHECKSUM_MISMATCH; + } else { + if(ack) + *ack = otaflash_context.seq; + return SEQUENCE_OUT_OF_ORDER; + } + +} + +void system_otaflash_verify_chunk(void *ctx, void *data, size_t len) { + uint32_t digest = *(uint32_t *) ctx; + digest = crc32_partial(digest, data, len); + *(uint32_t *) ctx = digest; +} + +enum return_code system_otaflash_verify_and_switch(uint32_t len, uint32_t hash) { + + uint32_t digest = 0; + rboot_digest_image(otaflash_context.base, min(len, MAX_IMAGE_SIZE), system_otaflash_verify_chunk, &digest); + + if(hash != digest) { + syslog("OTA failed to verify firmware\r\n"); + return CHECKSUM_MISMATCH; + } + + vPortEnterCritical(); + if(!rboot_set_current_rom(otaflash_context.slot)) { + syslog("OTA Update failed to set new rboot slot\r\n"); + vPortExitCritical(); + return RBOOT_SWITCH_FAILED; + } + vPortExitCritical(); + return OK; +} \ No newline at end of file diff --git a/firmware/system.h b/firmware/system.h index 42ec187..075bd90 100644 --- a/firmware/system.h +++ b/firmware/system.h @@ -5,10 +5,23 @@ #ifndef FIRMWARE_SYSTEM_H #define FIRMWARE_SYSTEM_H +#include +#include "types.h" + #ifdef __cplusplus extern "C" { #endif +void system_clear_config(); + +void system_init_config(); + +void system_otaflash_init(); + +enum return_code system_otaflash_chunk(uint8_t *data, uint16_t len, uint16_t seq, uint32_t hash, uint16_t *ack); + +enum return_code system_otaflash_verify_and_switch(uint32_t len, uint32_t hash); + #ifdef __cplusplus } #endif diff --git a/firmware/types.h b/firmware/types.h new file mode 100644 index 0000000..726a621 --- /dev/null +++ b/firmware/types.h @@ -0,0 +1,20 @@ +// +// Created by jedi on 09.09.21. +// + +#ifndef FIRMWARE_TYPES_H +#define FIRMWARE_TYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +enum return_code { + OK = 0, SEQUENCE_OUT_OF_ORDER, CHECKSUM_MISMATCH, RBOOT_SWITCH_FAILED, ERROR = 0xFF +}; + +#ifdef __cplusplus +} +#endif + +#endif //FIRMWARE_TYPES_H diff --git a/firmware/web.cpp b/firmware/web.cpp index 1f26158..ed55e2d 100644 --- a/firmware/web.cpp +++ b/firmware/web.cpp @@ -1,3 +1,339 @@ // // Created by jedi on 25.06.21. -// \ No newline at end of file +// + +#include "web.h" +#include "system.h" +#include "lux.h" +#include "wifi.h" +#include "log.h" + +#include +#include +#include + +extern "C" { +#include +#include +} + +#include +#include + +extern "C" { +#include +} + +#define vTaskDelayMs(ms) vTaskDelay((ms) / portTICK_PERIOD_MS) + +struct { + bool global; + bool connection; + bool wifi; +} has_changed; + +void websocket_task(void *pvParameter) { + auto *pcb = (struct tcp_pcb *) pvParameter; + + size_t connstarttime = xTaskGetTickCount(); + has_changed = {true, true, true}; + syslog_attach(); + unsigned local_log_tail = syslog_current_tail(); + + for (;;) { + if(pcb == nullptr || pcb->state != ESTABLISHED) { + syslog("Connection closed, deleting task\n"); + break; + } + + //Syslog + if(syslog_data_after(local_log_tail) != 0) { + char response[128]; + response[0] = 'L'; + size_t len = syslog_copy_out(&response[4], 124, local_log_tail); + response[1] = len; + ((uint16_t &) response[2]) = local_log_tail & 0xFFFF; + if(len < sizeof(response)) { + LOCK_TCPIP_CORE(); + websocket_write(pcb, (unsigned char *) response, len + 4, WS_BIN_MODE); + local_log_tail += len; + UNLOCK_TCPIP_CORE(); + } else + syslog("buffer too small -1\n"); + vTaskDelayMs(1000); + } + + //Global Info + if(has_changed.global) { + timeval tv{}; + gettimeofday(&tv, nullptr); + size_t uptime = xTaskGetTickCount() * portTICK_PERIOD_MS / 1000; + int heap = (int) xPortGetFreeHeapSize(); + uint32_t chip_id = sdk_system_get_chip_id(); + uint32_t flash_id = sdk_spi_flash_get_id(); + uint32_t flash_size = sdk_flashchip.chip_size >> 10; + char *hostname = nullptr; + + sysparam_get_string("hostname", &hostname); + /* Generate response in JSON format */ + char response[192]; + size_t len = snprintf(response, sizeof(response), + "{\"walltime\" : \"%d\"," + "\"uptime\" : \"%d\"," + " \"heap\" : \"%d\"," + " \"chipid\" : \"%08x\"," + " \"flashid\" : \"0x%08x\"," + " \"flashsize\" : \"%u\"," + " \"hostname\" : \"%s\"" + "}", (int) tv.tv_sec, uptime, heap, chip_id, flash_id, flash_size, hostname); + free(hostname); + if(len < sizeof(response)) { + LOCK_TCPIP_CORE(); + websocket_write(pcb, (unsigned char *) response, len, WS_TEXT_MODE); + has_changed.global = false; + UNLOCK_TCPIP_CORE(); + } else + syslog("buffer too small 0\n"); + vTaskDelayMs(1000); + } + + //Connection Info + if(has_changed.connection) { + timeval tv{}; + gettimeofday(&tv, nullptr); + size_t connuptime = (xTaskGetTickCount() - connstarttime) * portTICK_PERIOD_MS / 1000; + + printf("conn %d: " IPSTR " <-> " IPSTR " \n", pcb->netif_idx, IP2STR(&pcb->local_ip), + IP2STR(&pcb->remote_ip)); + char response[192]; + size_t len = snprintf(response, sizeof(response), + "{\"connage\" : \"%d\"," + "\"clientip\" : \"" IPSTR "\"" + "}", connuptime, IP2STR(&pcb->remote_ip)); + if(len < sizeof(response)) { + LOCK_TCPIP_CORE(); + websocket_write(pcb, (unsigned char *) response, len, WS_TEXT_MODE); + has_changed.connection = false; + UNLOCK_TCPIP_CORE(); + } else + syslog("buffer too small 1\n"); + vTaskDelayMs(1000); + } + + if(has_changed.wifi) { + has_changed.wifi = false; + uint8_t opmode = sdk_wifi_get_opmode(); + const char *opmode_str = "??"; + switch (opmode) { + case NULL_MODE: + opmode_str = "Null"; + break; + case STATION_MODE: + opmode_str = "Station"; + break; + case SOFTAP_MODE: + opmode_str = "SoftAP"; + break; + case STATIONAP_MODE: + opmode_str = "StationAP"; + break; + default: + break; + } + + + /*struct sockaddr_storage addr; + socklen_t addr_len = sizeof(addr); + if (getpeername(s, (struct sockaddr *)&addr, &addr_len) == 0) { + printf("peer\n"); + }*/ + + + if(opmode == SOFTAP_MODE || opmode == STATIONAP_MODE) { + uint8_t hwaddr[6]; + sdk_wifi_get_macaddr(SOFTAP_IF, hwaddr); + ip_info info{}; + sdk_wifi_get_ip_info(SOFTAP_IF, &info); + + char *apssid = nullptr; + sysparam_get_string("wifi_ap_ssid", &apssid); + + /* Generate response in JSON format */ + char response[128]; + size_t len = snprintf(response, sizeof(response), + "{\"opmode\" : \"%s\"," + " \"apssid\" : \"%s\"," + " \"apip\" : \"" IPSTR "\"," + " \"apmac\" : \"" MACSTR "\"" + "}", opmode_str, apssid, IP2STR(&info.ip), MAC2STR(hwaddr)); + free(apssid); + if(len < sizeof(response)) { + LOCK_TCPIP_CORE(); + websocket_write(pcb, (unsigned char *) response, len, WS_TEXT_MODE); + UNLOCK_TCPIP_CORE(); + } else + syslog("buffer too small 2\n"); + } + + vTaskDelayMs(1000); + + if(opmode == STATION_MODE || opmode == STATIONAP_MODE) { + uint8_t hwaddr[6]; + sdk_wifi_get_macaddr(STATION_IF, hwaddr); + ip_info info{}; + sdk_wifi_get_ip_info(STATION_IF, &info); + char *stassid = nullptr; + sysparam_get_string("wifi_sta_ssid", &stassid); + + /* Generate response in JSON format */ + char response[128]; + size_t len = snprintf(response, sizeof(response), + "{\"opmode\" : \"%s\"," + " \"stassid\" : \"%s\"," + " \"staip\" : \"" IPSTR "\"," + " \"stamac\" : \"" MACSTR "\"" + "}", opmode_str, stassid, IP2STR(&info.ip), MAC2STR(hwaddr)); + free(stassid); + if(len < sizeof(response)) { + LOCK_TCPIP_CORE(); + websocket_write(pcb, (unsigned char *) response, len, WS_TEXT_MODE); + UNLOCK_TCPIP_CORE(); + } else + syslog("buffer too small 3\n"); + } + + } + + vTaskDelayMs(500); + } + + syslog_detach(); + + vTaskDelete(nullptr); +} + +struct fw_frame { + char t; + uint8_t reserved[3]; + uint16_t seq; + uint16_t len; + uint32_t hash; + uint8_t data[]; +} __attribute__((packed)); + +struct fw_check { + char t; + uint8_t reserved[3]; + uint32_t len; + uint32_t hash; +} __attribute__((packed)); + +/** + * This function is called when websocket frame is received. + * + * Note: this function is executed on TCP thread and should return as soon + * as possible. + */ +void websocket_cb(struct tcp_pcb *pcb, char *data, u16_t data_len, + uint8_t /*mode*/) { //mode should be WS_BIN_MODE or WS_TEXT_MODE + + uint8_t response[4]; + auto &cmd = (char &) response[0]; + auto &ret = response[1]; + auto &val = (uint16_t &) response[2]; + cmd = '0'; + ret = ERROR; + val = 0; + + bool togl = false; + + switch (data[0]) { + case 'R': // Restart + cmd = 'R'; + ret = OK; + break; + case 'X': // Clear Config + cmd = 'X'; + ret = OK; + break; + case 'D': // Disable LED + syslog("G\n"); + signal_led(false); + cmd = 'G'; + ret = OK; + val = 1; + break; + case 'E': // Enable LED + syslog("E\n"); + signal_led(true); + cmd = 'G'; + ret = OK; + val = 0; + break; + case 'F': + togl = !togl; + signal_led(togl); + { + auto *f = (fw_frame *) data; + if(f->seq == 0) { + system_otaflash_init(); + } + uint16_t ack = 0; + ret = system_otaflash_chunk(f->data, ntohs(f->len), ntohs(f->seq), ntohl(f->hash), &ack); + val = htons(ack); + } + cmd = 'F'; + break; + case 'C': + signal_led(false); + { + auto *f = (fw_check *) data; + ret = system_otaflash_verify_and_switch(ntohl(f->len), ntohl(f->hash)); + } + cmd = 'C'; + break; + default: + printf("[websocket_callback]:\n%.*s\n", (int) data_len, (char *) data); + printf("Unknown command %c\n", data[0]); + ret = ERROR; + break; + } + + LOCK_TCPIP_CORE(); + websocket_write(pcb, response, 4, WS_BIN_MODE); + UNLOCK_TCPIP_CORE(); + + if(ret == OK) { + if(cmd == 'R' || cmd == 'C') { // Restart + printf("rebooting now"); + vTaskDelay(1000 / portTICK_PERIOD_MS); + vPortEnterCritical(); + sdk_system_restart(); + } else if(cmd == 'X') { // Clear Config + vTaskDelay(1000 / portTICK_PERIOD_MS); + system_clear_config(); + } + } +} + +/** + * This function is called when new websocket is open and + * creates a new websocket_task if requested URI equals '/stream'. + */ +void websocket_open_cb(struct tcp_pcb *pcb, const char *uri) { + printf("WS URI: %s\n", uri); + if(!strcmp(uri, "/stream")) { + xTaskCreate(&websocket_task, "websocket_task", 512, (void *) pcb, 3, nullptr); + } +} + +extern "C" void httpd_task(void *pvParameters) { + (void) pvParameters; + + while (!uxSemaphoreGetCount(wifi_available_semaphore)) + vTaskDelay(500 / portTICK_PERIOD_MS); + websocket_register_callbacks((tWsOpenHandler) websocket_open_cb, (tWsHandler) websocket_cb); + httpd_init(); + + vTaskDelete(nullptr); +} \ No newline at end of file diff --git a/firmware/web.h b/firmware/web.h index c76754b..831d2f8 100644 --- a/firmware/web.h +++ b/firmware/web.h @@ -9,6 +9,8 @@ extern "C" { #endif +void httpd_task(void *pvParameters); + #ifdef __cplusplus } #endif diff --git a/firmware/webdir/404.html b/firmware/webdir/404.html new file mode 100644 index 0000000..ebea9c6 --- /dev/null +++ b/firmware/webdir/404.html @@ -0,0 +1,22 @@ + + + + + + + HTTP Server + + + + +
+

404 - Page not found

+
Sorry, the page you are requesting was not found on this server.
+
+ + + diff --git a/firmware/webdir/css/picnic.min.css b/firmware/webdir/css/picnic.min.css new file mode 100644 index 0000000..7daf65a --- /dev/null +++ b/firmware/webdir/css/picnic.min.css @@ -0,0 +1 @@ +html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#fff;color:#111}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:0;padding:0}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{box-sizing:inherit}html,body{font-family:Arial, Helvetica, sans-serif;box-sizing:border-box;height:100%}body{color:#111;font-size:1.1em;line-height:1.5;background:#fff}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;padding:.6em 0}li{margin:0 0 .3em}a{color:#0074d9;text-decoration:none;box-shadow:none;transition:all 0.3s}code{padding:.3em .6em;font-size:.8em;background:#f5f5f5}pre{text-align:left;padding:.3em .6em;background:#f5f5f5;border-radius:.2em}pre code{padding:0}blockquote{padding:0 0 0 1em;margin:0 0 0 .1em;box-shadow:inset 5px 0 rgba(17,17,17,0.3)}label{cursor:pointer}[class^="icon-"]:before,[class*=" icon-"]:before{margin:0 .6em 0 0}i[class^="icon-"]:before,i[class*=" icon-"]:before{margin:0}.label,[data-tooltip]:after,button,.button,[type=submit],.dropimage{display:inline-block;text-align:center;letter-spacing:inherit;margin:0;padding:.3em .9em;vertical-align:middle;background:#0074d9;color:#fff;border:0;border-radius:.2em;width:auto;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.success.label,.success[data-tooltip]:after,button.success,.success.button,.success[type=submit],.success.dropimage{background:#2ecc40}.warning.label,.warning[data-tooltip]:after,button.warning,.warning.button,.warning[type=submit],.warning.dropimage{background:#ff851b}.error.label,.error[data-tooltip]:after,button.error,.error.button,.error[type=submit],.error.dropimage{background:#ff4136}.pseudo.label,.pseudo[data-tooltip]:after,button.pseudo,.pseudo.button,.pseudo[type=submit],.pseudo.dropimage{background-color:transparent;color:inherit}.label,[data-tooltip]:after{font-size:.6em;padding:.4em .6em;margin-left:1em;line-height:1}button,.button,[type=submit],.dropimage{margin:.3em 0;cursor:pointer;transition:all 0.3s;border-radius:.2em;height:auto;vertical-align:baseline;box-shadow:0 0 rgba(17,17,17,0) inset}button:hover,.button:hover,:hover[type=submit],.dropimage:hover,button:focus,.button:focus,:focus[type=submit],.dropimage:focus{box-shadow:inset 0 0 0 99em rgba(255,255,255,0.2);border:0}button.pseudo:hover,.pseudo.button:hover,.pseudo:hover[type=submit],.pseudo.dropimage:hover,button.pseudo:focus,.pseudo.button:focus,.pseudo:focus[type=submit],.pseudo.dropimage:focus{box-shadow:inset 0 0 0 99em rgba(17,17,17,0.1)}button.active,.active.button,.active[type=submit],.active.dropimage,button:active,.button:active,:active[type=submit],.dropimage:active,button.pseudo:active,.pseudo.button:active,.pseudo:active[type=submit],.pseudo.dropimage:active{box-shadow:inset 0 0 0 99em rgba(17,17,17,0.2)}button[disabled],.button[disabled],[disabled][type=submit],.dropimage[disabled]{cursor:default;box-shadow:none;background:#aaa}:checked+.toggle,:checked+.toggle:hover{box-shadow:inset 0 0 0 99em rgba(17,17,17,0.2)}[type]+.toggle{padding:.3em .9em;margin-right:0}[type]+.toggle:after,[type]+.toggle:before{display:none}input,textarea,.select select{line-height:1.5;margin:0;height:2.1em;padding:.3em .6em;border:1px solid #aaa;background-color:#fff;border-radius:.2em;transition:all 0.3s;width:100%}input:focus,textarea:focus,.select select:focus{border:1px solid #0074d9;outline:0}textarea{height:auto}[type=file],[type=color]{cursor:pointer}[type=file]{height:auto}select{background:#fff url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjMiPjxwYXRoIGQ9Im0gMCwxIDEsMiAxLC0yIHoiLz48L3N2Zz4=) no-repeat scroll 95% center/10px 15px;background-position:calc(100% - 15px) center;border:1px solid #aaa;border-radius:.2em;cursor:pointer;width:100%;height:2.2em;box-sizing:border-box;padding:.3em .45em;transition:all 0.3s;-moz-appearance:none;-webkit-appearance:none;appearance:none}select::-ms-expand{display:none}select:focus,select:active{border:1px solid #0074d9;transition:outline 0s}select:-moz-focusring{color:transparent;text-shadow:0 0 0 #111}select option{font-size:inherit;padding:.45em}select[multiple]{height:auto;background:none;padding:0}[type=radio],[type=checkbox]{opacity:0;width:0;position:absolute;display:inline-block}[type=radio]+.checkable:hover:before,[type=checkbox]+.checkable:hover:before,:focus[type=radio]+.checkable:before,:focus[type=checkbox]+.checkable:before{border:1px solid #0074d9}[type=radio]+.checkable,[type=checkbox]+.checkable{position:relative;cursor:pointer;padding-left:1.5em;margin-right:.6em}[type=radio]+.checkable:before,[type=checkbox]+.checkable:before,[type=radio]+.checkable:after,[type=checkbox]+.checkable:after{content:'';position:absolute;display:inline-block;left:0;top:50%;transform:translateY(-50%);font-size:1em;line-height:1em;color:transparent;font-family:sans;text-align:center;box-sizing:border-box;width:1em;height:1em;border-radius:50%;transition:all 0.3s}[type=radio]+.checkable:before,[type=checkbox]+.checkable:before{border:1px solid #aaa}:checked[type=radio]+.checkable:after,:checked[type=checkbox]+.checkable:after{background:#111;transform:scale(0.5) translateY(-100%)}[type=checkbox]+.checkable:before{border-radius:.2em}[type=checkbox]+.checkable:after{content:"✔";background:none;transform:scale(2) translateY(-25%);visibility:hidden;opacity:0}:checked[type=checkbox]+.checkable:after{color:#111;background:none;transform:translateY(-50%);transition:all 0.3s;visibility:visible;opacity:1}table{text-align:left}td,th{padding:.3em 2.4em .3em .6em}th{text-align:left;font-weight:900;color:#fff;background-color:#0074d9}.success th{background-color:#2ecc40}.warning th{background-color:#ff851b}.error th{background-color:#ff4136}.dull th{background-color:#aaa}tr:nth-child(even){background:rgba(17,17,17,0.05)}.flex{display:-ms-flexbox;display:flex;margin-left:-.6em;width:calc(100% + .6em);flex-wrap:wrap;transition:all .3s ease}.flex>*{box-sizing:border-box;flex:1 1 auto;padding-left:.6em;padding-bottom:.6em}.flex[class*="one"]>*,.flex[class*="two"]>*,.flex[class*="three"]>*,.flex[class*="four"]>*,.flex[class*="five"]>*,.flex[class*="six"]>*,.flex[class*="seven"]>*,.flex[class*="eight"]>*,.flex[class*="nine"]>*,.flex[class*="ten"]>*,.flex[class*="eleven"]>*,.flex[class*="twelve"]>*{flex-grow:0}.flex.grow>*{flex-grow:1}.center{justify-content:center}.one>*{width:100%}.two>*{width:50%}.three>*{width:33.33333%}.four>*{width:25%}.five>*{width:20%}.six>*{width:16.66666%}.seven>*{width:14.28571%}.eight>*{width:12.5%}.nine>*{width:11.11111%}.ten>*{width:10%}.eleven>*{width:9.09091%}.twelve>*{width:8.33333%}@media all and (min-width: 500px){.one-500>*{width:100%}.two-500>*{width:50%}.three-500>*{width:33.33333%}.four-500>*{width:25%}.five-500>*{width:20%}.six-500>*{width:16.66666%}.seven-500>*{width:14.28571%}.eight-500>*{width:12.5%}.nine-500>*{width:11.11111%}.ten-500>*{width:10%}.eleven-500>*{width:9.09091%}.twelve-500>*{width:8.33333%}}@media all and (min-width: 600px){.one-600>*{width:100%}.two-600>*{width:50%}.three-600>*{width:33.33333%}.four-600>*{width:25%}.five-600>*{width:20%}.six-600>*{width:16.66666%}.seven-600>*{width:14.28571%}.eight-600>*{width:12.5%}.nine-600>*{width:11.11111%}.ten-600>*{width:10%}.eleven-600>*{width:9.09091%}.twelve-600>*{width:8.33333%}}@media all and (min-width: 700px){.one-700>*{width:100%}.two-700>*{width:50%}.three-700>*{width:33.33333%}.four-700>*{width:25%}.five-700>*{width:20%}.six-700>*{width:16.66666%}.seven-700>*{width:14.28571%}.eight-700>*{width:12.5%}.nine-700>*{width:11.11111%}.ten-700>*{width:10%}.eleven-700>*{width:9.09091%}.twelve-700>*{width:8.33333%}}@media all and (min-width: 800px){.one-800>*{width:100%}.two-800>*{width:50%}.three-800>*{width:33.33333%}.four-800>*{width:25%}.five-800>*{width:20%}.six-800>*{width:16.66666%}.seven-800>*{width:14.28571%}.eight-800>*{width:12.5%}.nine-800>*{width:11.11111%}.ten-800>*{width:10%}.eleven-800>*{width:9.09091%}.twelve-800>*{width:8.33333%}}@media all and (min-width: 900px){.one-900>*{width:100%}.two-900>*{width:50%}.three-900>*{width:33.33333%}.four-900>*{width:25%}.five-900>*{width:20%}.six-900>*{width:16.66666%}.seven-900>*{width:14.28571%}.eight-900>*{width:12.5%}.nine-900>*{width:11.11111%}.ten-900>*{width:10%}.eleven-900>*{width:9.09091%}.twelve-900>*{width:8.33333%}}@media all and (min-width: 1000px){.one-1000>*{width:100%}.two-1000>*{width:50%}.three-1000>*{width:33.33333%}.four-1000>*{width:25%}.five-1000>*{width:20%}.six-1000>*{width:16.66666%}.seven-1000>*{width:14.28571%}.eight-1000>*{width:12.5%}.nine-1000>*{width:11.11111%}.ten-1000>*{width:10%}.eleven-1000>*{width:9.09091%}.twelve-1000>*{width:8.33333%}}@media all and (min-width: 1100px){.one-1100>*{width:100%}.two-1100>*{width:50%}.three-1100>*{width:33.33333%}.four-1100>*{width:25%}.five-1100>*{width:20%}.six-1100>*{width:16.66666%}.seven-1100>*{width:14.28571%}.eight-1100>*{width:12.5%}.nine-1100>*{width:11.11111%}.ten-1100>*{width:10%}.eleven-1100>*{width:9.09091%}.twelve-1100>*{width:8.33333%}}@media all and (min-width: 1200px){.one-1200>*{width:100%}.two-1200>*{width:50%}.three-1200>*{width:33.33333%}.four-1200>*{width:25%}.five-1200>*{width:20%}.six-1200>*{width:16.66666%}.seven-1200>*{width:14.28571%}.eight-1200>*{width:12.5%}.nine-1200>*{width:11.11111%}.ten-1200>*{width:10%}.eleven-1200>*{width:9.09091%}.twelve-1200>*{width:8.33333%}}@media all and (min-width: 1300px){.one-1300>*{width:100%}.two-1300>*{width:50%}.three-1300>*{width:33.33333%}.four-1300>*{width:25%}.five-1300>*{width:20%}.six-1300>*{width:16.66666%}.seven-1300>*{width:14.28571%}.eight-1300>*{width:12.5%}.nine-1300>*{width:11.11111%}.ten-1300>*{width:10%}.eleven-1300>*{width:9.09091%}.twelve-1300>*{width:8.33333%}}@media all and (min-width: 1400px){.one-1400>*{width:100%}.two-1400>*{width:50%}.three-1400>*{width:33.33333%}.four-1400>*{width:25%}.five-1400>*{width:20%}.six-1400>*{width:16.66666%}.seven-1400>*{width:14.28571%}.eight-1400>*{width:12.5%}.nine-1400>*{width:11.11111%}.ten-1400>*{width:10%}.eleven-1400>*{width:9.09091%}.twelve-1400>*{width:8.33333%}}@media all and (min-width: 1500px){.one-1500>*{width:100%}.two-1500>*{width:50%}.three-1500>*{width:33.33333%}.four-1500>*{width:25%}.five-1500>*{width:20%}.six-1500>*{width:16.66666%}.seven-1500>*{width:14.28571%}.eight-1500>*{width:12.5%}.nine-1500>*{width:11.11111%}.ten-1500>*{width:10%}.eleven-1500>*{width:9.09091%}.twelve-1500>*{width:8.33333%}}@media all and (min-width: 1600px){.one-1600>*{width:100%}.two-1600>*{width:50%}.three-1600>*{width:33.33333%}.four-1600>*{width:25%}.five-1600>*{width:20%}.six-1600>*{width:16.66666%}.seven-1600>*{width:14.28571%}.eight-1600>*{width:12.5%}.nine-1600>*{width:11.11111%}.ten-1600>*{width:10%}.eleven-1600>*{width:9.09091%}.twelve-1600>*{width:8.33333%}}@media all and (min-width: 1700px){.one-1700>*{width:100%}.two-1700>*{width:50%}.three-1700>*{width:33.33333%}.four-1700>*{width:25%}.five-1700>*{width:20%}.six-1700>*{width:16.66666%}.seven-1700>*{width:14.28571%}.eight-1700>*{width:12.5%}.nine-1700>*{width:11.11111%}.ten-1700>*{width:10%}.eleven-1700>*{width:9.09091%}.twelve-1700>*{width:8.33333%}}@media all and (min-width: 1800px){.one-1800>*{width:100%}.two-1800>*{width:50%}.three-1800>*{width:33.33333%}.four-1800>*{width:25%}.five-1800>*{width:20%}.six-1800>*{width:16.66666%}.seven-1800>*{width:14.28571%}.eight-1800>*{width:12.5%}.nine-1800>*{width:11.11111%}.ten-1800>*{width:10%}.eleven-1800>*{width:9.09091%}.twelve-1800>*{width:8.33333%}}@media all and (min-width: 1900px){.one-1900>*{width:100%}.two-1900>*{width:50%}.three-1900>*{width:33.33333%}.four-1900>*{width:25%}.five-1900>*{width:20%}.six-1900>*{width:16.66666%}.seven-1900>*{width:14.28571%}.eight-1900>*{width:12.5%}.nine-1900>*{width:11.11111%}.ten-1900>*{width:10%}.eleven-1900>*{width:9.09091%}.twelve-1900>*{width:8.33333%}}@media all and (min-width: 2000px){.one-2000>*{width:100%}.two-2000>*{width:50%}.three-2000>*{width:33.33333%}.four-2000>*{width:25%}.five-2000>*{width:20%}.six-2000>*{width:16.66666%}.seven-2000>*{width:14.28571%}.eight-2000>*{width:12.5%}.nine-2000>*{width:11.11111%}.ten-2000>*{width:10%}.eleven-2000>*{width:9.09091%}.twelve-2000>*{width:8.33333%}}.full{width:100%}.half{width:50%}.third{width:33.33333%}.two-third{width:66.66666%}.fourth{width:25%}.three-fourth{width:75%}.fifth{width:20%}.two-fifth{width:40%}.three-fifth{width:60%}.four-fifth{width:80%}.sixth{width:16.66666%}.none{display:none}@media all and (min-width: 500px){.full-500{width:100%;display:block}.half-500{width:50%;display:block}.third-500{width:33.33333%;display:block}.two-third-500{width:66.66666%;display:block}.fourth-500{width:25%;display:block}.three-fourth-500{width:75%;display:block}.fifth-500{width:20%;display:block}.two-fifth-500{width:40%;display:block}.three-fifth-500{width:60%;display:block}.four-fifth-500{width:80%;display:block}.sixth-500{width:16.66666%;display:block}}@media all and (min-width: 600px){.full-600{width:100%;display:block}.half-600{width:50%;display:block}.third-600{width:33.33333%;display:block}.two-third-600{width:66.66666%;display:block}.fourth-600{width:25%;display:block}.three-fourth-600{width:75%;display:block}.fifth-600{width:20%;display:block}.two-fifth-600{width:40%;display:block}.three-fifth-600{width:60%;display:block}.four-fifth-600{width:80%;display:block}.sixth-600{width:16.66666%;display:block}}@media all and (min-width: 700px){.full-700{width:100%;display:block}.half-700{width:50%;display:block}.third-700{width:33.33333%;display:block}.two-third-700{width:66.66666%;display:block}.fourth-700{width:25%;display:block}.three-fourth-700{width:75%;display:block}.fifth-700{width:20%;display:block}.two-fifth-700{width:40%;display:block}.three-fifth-700{width:60%;display:block}.four-fifth-700{width:80%;display:block}.sixth-700{width:16.66666%;display:block}}@media all and (min-width: 800px){.full-800{width:100%;display:block}.half-800{width:50%;display:block}.third-800{width:33.33333%;display:block}.two-third-800{width:66.66666%;display:block}.fourth-800{width:25%;display:block}.three-fourth-800{width:75%;display:block}.fifth-800{width:20%;display:block}.two-fifth-800{width:40%;display:block}.three-fifth-800{width:60%;display:block}.four-fifth-800{width:80%;display:block}.sixth-800{width:16.66666%;display:block}}@media all and (min-width: 900px){.full-900{width:100%;display:block}.half-900{width:50%;display:block}.third-900{width:33.33333%;display:block}.two-third-900{width:66.66666%;display:block}.fourth-900{width:25%;display:block}.three-fourth-900{width:75%;display:block}.fifth-900{width:20%;display:block}.two-fifth-900{width:40%;display:block}.three-fifth-900{width:60%;display:block}.four-fifth-900{width:80%;display:block}.sixth-900{width:16.66666%;display:block}}@media all and (min-width: 1000px){.full-1000{width:100%;display:block}.half-1000{width:50%;display:block}.third-1000{width:33.33333%;display:block}.two-third-1000{width:66.66666%;display:block}.fourth-1000{width:25%;display:block}.three-fourth-1000{width:75%;display:block}.fifth-1000{width:20%;display:block}.two-fifth-1000{width:40%;display:block}.three-fifth-1000{width:60%;display:block}.four-fifth-1000{width:80%;display:block}.sixth-1000{width:16.66666%;display:block}}@media all and (min-width: 1100px){.full-1100{width:100%;display:block}.half-1100{width:50%;display:block}.third-1100{width:33.33333%;display:block}.two-third-1100{width:66.66666%;display:block}.fourth-1100{width:25%;display:block}.three-fourth-1100{width:75%;display:block}.fifth-1100{width:20%;display:block}.two-fifth-1100{width:40%;display:block}.three-fifth-1100{width:60%;display:block}.four-fifth-1100{width:80%;display:block}.sixth-1100{width:16.66666%;display:block}}@media all and (min-width: 1200px){.full-1200{width:100%;display:block}.half-1200{width:50%;display:block}.third-1200{width:33.33333%;display:block}.two-third-1200{width:66.66666%;display:block}.fourth-1200{width:25%;display:block}.three-fourth-1200{width:75%;display:block}.fifth-1200{width:20%;display:block}.two-fifth-1200{width:40%;display:block}.three-fifth-1200{width:60%;display:block}.four-fifth-1200{width:80%;display:block}.sixth-1200{width:16.66666%;display:block}}@media all and (min-width: 1300px){.full-1300{width:100%;display:block}.half-1300{width:50%;display:block}.third-1300{width:33.33333%;display:block}.two-third-1300{width:66.66666%;display:block}.fourth-1300{width:25%;display:block}.three-fourth-1300{width:75%;display:block}.fifth-1300{width:20%;display:block}.two-fifth-1300{width:40%;display:block}.three-fifth-1300{width:60%;display:block}.four-fifth-1300{width:80%;display:block}.sixth-1300{width:16.66666%;display:block}}@media all and (min-width: 1400px){.full-1400{width:100%;display:block}.half-1400{width:50%;display:block}.third-1400{width:33.33333%;display:block}.two-third-1400{width:66.66666%;display:block}.fourth-1400{width:25%;display:block}.three-fourth-1400{width:75%;display:block}.fifth-1400{width:20%;display:block}.two-fifth-1400{width:40%;display:block}.three-fifth-1400{width:60%;display:block}.four-fifth-1400{width:80%;display:block}.sixth-1400{width:16.66666%;display:block}}@media all and (min-width: 1500px){.full-1500{width:100%;display:block}.half-1500{width:50%;display:block}.third-1500{width:33.33333%;display:block}.two-third-1500{width:66.66666%;display:block}.fourth-1500{width:25%;display:block}.three-fourth-1500{width:75%;display:block}.fifth-1500{width:20%;display:block}.two-fifth-1500{width:40%;display:block}.three-fifth-1500{width:60%;display:block}.four-fifth-1500{width:80%;display:block}.sixth-1500{width:16.66666%;display:block}}@media all and (min-width: 1600px){.full-1600{width:100%;display:block}.half-1600{width:50%;display:block}.third-1600{width:33.33333%;display:block}.two-third-1600{width:66.66666%;display:block}.fourth-1600{width:25%;display:block}.three-fourth-1600{width:75%;display:block}.fifth-1600{width:20%;display:block}.two-fifth-1600{width:40%;display:block}.three-fifth-1600{width:60%;display:block}.four-fifth-1600{width:80%;display:block}.sixth-1600{width:16.66666%;display:block}}@media all and (min-width: 1700px){.full-1700{width:100%;display:block}.half-1700{width:50%;display:block}.third-1700{width:33.33333%;display:block}.two-third-1700{width:66.66666%;display:block}.fourth-1700{width:25%;display:block}.three-fourth-1700{width:75%;display:block}.fifth-1700{width:20%;display:block}.two-fifth-1700{width:40%;display:block}.three-fifth-1700{width:60%;display:block}.four-fifth-1700{width:80%;display:block}.sixth-1700{width:16.66666%;display:block}}@media all and (min-width: 1800px){.full-1800{width:100%;display:block}.half-1800{width:50%;display:block}.third-1800{width:33.33333%;display:block}.two-third-1800{width:66.66666%;display:block}.fourth-1800{width:25%;display:block}.three-fourth-1800{width:75%;display:block}.fifth-1800{width:20%;display:block}.two-fifth-1800{width:40%;display:block}.three-fifth-1800{width:60%;display:block}.four-fifth-1800{width:80%;display:block}.sixth-1800{width:16.66666%;display:block}}@media all and (min-width: 1900px){.full-1900{width:100%;display:block}.half-1900{width:50%;display:block}.third-1900{width:33.33333%;display:block}.two-third-1900{width:66.66666%;display:block}.fourth-1900{width:25%;display:block}.three-fourth-1900{width:75%;display:block}.fifth-1900{width:20%;display:block}.two-fifth-1900{width:40%;display:block}.three-fifth-1900{width:60%;display:block}.four-fifth-1900{width:80%;display:block}.sixth-1900{width:16.66666%;display:block}}@media all and (min-width: 2000px){.full-2000{width:100%;display:block}.half-2000{width:50%;display:block}.third-2000{width:33.33333%;display:block}.two-third-2000{width:66.66666%;display:block}.fourth-2000{width:25%;display:block}.three-fourth-2000{width:75%;display:block}.fifth-2000{width:20%;display:block}.two-fifth-2000{width:40%;display:block}.three-fifth-2000{width:60%;display:block}.four-fifth-2000{width:80%;display:block}.sixth-2000{width:16.66666%;display:block}}@media all and (min-width: 500px){.none-500{display:none}}@media all and (min-width: 600px){.none-600{display:none}}@media all and (min-width: 700px){.none-700{display:none}}@media all and (min-width: 800px){.none-800{display:none}}@media all and (min-width: 900px){.none-900{display:none}}@media all and (min-width: 1000px){.none-1000{display:none}}@media all and (min-width: 1100px){.none-1100{display:none}}@media all and (min-width: 1200px){.none-1200{display:none}}@media all and (min-width: 1300px){.none-1300{display:none}}@media all and (min-width: 1400px){.none-1400{display:none}}@media all and (min-width: 1500px){.none-1500{display:none}}@media all and (min-width: 1600px){.none-1600{display:none}}@media all and (min-width: 1700px){.none-1700{display:none}}@media all and (min-width: 1800px){.none-1800{display:none}}@media all and (min-width: 1900px){.none-1900{display:none}}@media all and (min-width: 2000px){.none-2000{display:none}}.off-none{margin-left:0}.off-half{margin-left:50%}.off-third{margin-left:33.33333%}.off-two-third{margin-left:66.66666%}.off-fourth{margin-left:25%}.off-three-fourth{margin-left:75%}.off-fifth{margin-left:20%}.off-two-fifth{margin-left:40%}.off-three-fifth{margin-left:60%}.off-four-fifth{margin-left:80%}.off-sixth{margin-left:16.66666%}@media all and (min-width: 500px){.off-none-500{margin-left:0}.off-half-500{margin-left:50%}.off-third-500{margin-left:33.33333%}.off-two-third-500{margin-left:66.66666%}.off-fourth-500{margin-left:25%}.off-three-fourth-500{margin-left:75%}.off-fifth-500{margin-left:20%}.off-two-fifth-500{margin-left:40%}.off-three-fifth-500{margin-left:60%}.off-four-fifth-500{margin-left:80%}.off-sixth-500{margin-left:16.66666%}}@media all and (min-width: 600px){.off-none-600{margin-left:0}.off-half-600{margin-left:50%}.off-third-600{margin-left:33.33333%}.off-two-third-600{margin-left:66.66666%}.off-fourth-600{margin-left:25%}.off-three-fourth-600{margin-left:75%}.off-fifth-600{margin-left:20%}.off-two-fifth-600{margin-left:40%}.off-three-fifth-600{margin-left:60%}.off-four-fifth-600{margin-left:80%}.off-sixth-600{margin-left:16.66666%}}@media all and (min-width: 700px){.off-none-700{margin-left:0}.off-half-700{margin-left:50%}.off-third-700{margin-left:33.33333%}.off-two-third-700{margin-left:66.66666%}.off-fourth-700{margin-left:25%}.off-three-fourth-700{margin-left:75%}.off-fifth-700{margin-left:20%}.off-two-fifth-700{margin-left:40%}.off-three-fifth-700{margin-left:60%}.off-four-fifth-700{margin-left:80%}.off-sixth-700{margin-left:16.66666%}}@media all and (min-width: 800px){.off-none-800{margin-left:0}.off-half-800{margin-left:50%}.off-third-800{margin-left:33.33333%}.off-two-third-800{margin-left:66.66666%}.off-fourth-800{margin-left:25%}.off-three-fourth-800{margin-left:75%}.off-fifth-800{margin-left:20%}.off-two-fifth-800{margin-left:40%}.off-three-fifth-800{margin-left:60%}.off-four-fifth-800{margin-left:80%}.off-sixth-800{margin-left:16.66666%}}@media all and (min-width: 900px){.off-none-900{margin-left:0}.off-half-900{margin-left:50%}.off-third-900{margin-left:33.33333%}.off-two-third-900{margin-left:66.66666%}.off-fourth-900{margin-left:25%}.off-three-fourth-900{margin-left:75%}.off-fifth-900{margin-left:20%}.off-two-fifth-900{margin-left:40%}.off-three-fifth-900{margin-left:60%}.off-four-fifth-900{margin-left:80%}.off-sixth-900{margin-left:16.66666%}}@media all and (min-width: 1000px){.off-none-1000{margin-left:0}.off-half-1000{margin-left:50%}.off-third-1000{margin-left:33.33333%}.off-two-third-1000{margin-left:66.66666%}.off-fourth-1000{margin-left:25%}.off-three-fourth-1000{margin-left:75%}.off-fifth-1000{margin-left:20%}.off-two-fifth-1000{margin-left:40%}.off-three-fifth-1000{margin-left:60%}.off-four-fifth-1000{margin-left:80%}.off-sixth-1000{margin-left:16.66666%}}@media all and (min-width: 1100px){.off-none-1100{margin-left:0}.off-half-1100{margin-left:50%}.off-third-1100{margin-left:33.33333%}.off-two-third-1100{margin-left:66.66666%}.off-fourth-1100{margin-left:25%}.off-three-fourth-1100{margin-left:75%}.off-fifth-1100{margin-left:20%}.off-two-fifth-1100{margin-left:40%}.off-three-fifth-1100{margin-left:60%}.off-four-fifth-1100{margin-left:80%}.off-sixth-1100{margin-left:16.66666%}}@media all and (min-width: 1200px){.off-none-1200{margin-left:0}.off-half-1200{margin-left:50%}.off-third-1200{margin-left:33.33333%}.off-two-third-1200{margin-left:66.66666%}.off-fourth-1200{margin-left:25%}.off-three-fourth-1200{margin-left:75%}.off-fifth-1200{margin-left:20%}.off-two-fifth-1200{margin-left:40%}.off-three-fifth-1200{margin-left:60%}.off-four-fifth-1200{margin-left:80%}.off-sixth-1200{margin-left:16.66666%}}@media all and (min-width: 1300px){.off-none-1300{margin-left:0}.off-half-1300{margin-left:50%}.off-third-1300{margin-left:33.33333%}.off-two-third-1300{margin-left:66.66666%}.off-fourth-1300{margin-left:25%}.off-three-fourth-1300{margin-left:75%}.off-fifth-1300{margin-left:20%}.off-two-fifth-1300{margin-left:40%}.off-three-fifth-1300{margin-left:60%}.off-four-fifth-1300{margin-left:80%}.off-sixth-1300{margin-left:16.66666%}}@media all and (min-width: 1400px){.off-none-1400{margin-left:0}.off-half-1400{margin-left:50%}.off-third-1400{margin-left:33.33333%}.off-two-third-1400{margin-left:66.66666%}.off-fourth-1400{margin-left:25%}.off-three-fourth-1400{margin-left:75%}.off-fifth-1400{margin-left:20%}.off-two-fifth-1400{margin-left:40%}.off-three-fifth-1400{margin-left:60%}.off-four-fifth-1400{margin-left:80%}.off-sixth-1400{margin-left:16.66666%}}@media all and (min-width: 1500px){.off-none-1500{margin-left:0}.off-half-1500{margin-left:50%}.off-third-1500{margin-left:33.33333%}.off-two-third-1500{margin-left:66.66666%}.off-fourth-1500{margin-left:25%}.off-three-fourth-1500{margin-left:75%}.off-fifth-1500{margin-left:20%}.off-two-fifth-1500{margin-left:40%}.off-three-fifth-1500{margin-left:60%}.off-four-fifth-1500{margin-left:80%}.off-sixth-1500{margin-left:16.66666%}}@media all and (min-width: 1600px){.off-none-1600{margin-left:0}.off-half-1600{margin-left:50%}.off-third-1600{margin-left:33.33333%}.off-two-third-1600{margin-left:66.66666%}.off-fourth-1600{margin-left:25%}.off-three-fourth-1600{margin-left:75%}.off-fifth-1600{margin-left:20%}.off-two-fifth-1600{margin-left:40%}.off-three-fifth-1600{margin-left:60%}.off-four-fifth-1600{margin-left:80%}.off-sixth-1600{margin-left:16.66666%}}@media all and (min-width: 1700px){.off-none-1700{margin-left:0}.off-half-1700{margin-left:50%}.off-third-1700{margin-left:33.33333%}.off-two-third-1700{margin-left:66.66666%}.off-fourth-1700{margin-left:25%}.off-three-fourth-1700{margin-left:75%}.off-fifth-1700{margin-left:20%}.off-two-fifth-1700{margin-left:40%}.off-three-fifth-1700{margin-left:60%}.off-four-fifth-1700{margin-left:80%}.off-sixth-1700{margin-left:16.66666%}}@media all and (min-width: 1800px){.off-none-1800{margin-left:0}.off-half-1800{margin-left:50%}.off-third-1800{margin-left:33.33333%}.off-two-third-1800{margin-left:66.66666%}.off-fourth-1800{margin-left:25%}.off-three-fourth-1800{margin-left:75%}.off-fifth-1800{margin-left:20%}.off-two-fifth-1800{margin-left:40%}.off-three-fifth-1800{margin-left:60%}.off-four-fifth-1800{margin-left:80%}.off-sixth-1800{margin-left:16.66666%}}@media all and (min-width: 1900px){.off-none-1900{margin-left:0}.off-half-1900{margin-left:50%}.off-third-1900{margin-left:33.33333%}.off-two-third-1900{margin-left:66.66666%}.off-fourth-1900{margin-left:25%}.off-three-fourth-1900{margin-left:75%}.off-fifth-1900{margin-left:20%}.off-two-fifth-1900{margin-left:40%}.off-three-fifth-1900{margin-left:60%}.off-four-fifth-1900{margin-left:80%}.off-sixth-1900{margin-left:16.66666%}}@media all and (min-width: 2000px){.off-none-2000{margin-left:0}.off-half-2000{margin-left:50%}.off-third-2000{margin-left:33.33333%}.off-two-third-2000{margin-left:66.66666%}.off-fourth-2000{margin-left:25%}.off-three-fourth-2000{margin-left:75%}.off-fifth-2000{margin-left:20%}.off-two-fifth-2000{margin-left:40%}.off-three-fifth-2000{margin-left:60%}.off-four-fifth-2000{margin-left:80%}.off-sixth-2000{margin-left:16.66666%}}nav{position:fixed;top:0;left:0;right:0;height:3em;padding:0 .6em;background:#fff;box-shadow:0 0 0.2em rgba(170,170,170,0.2);z-index:10000;transition:all .3s;transform-style:preserve-3d}nav .brand,nav .menu,nav .burger{float:right;position:relative;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}nav .brand{font-weight:700;float:left;padding:0 .6em;max-width:50%;white-space:nowrap;color:inherit}nav .brand *{vertical-align:middle}nav .logo{height:2em;margin-right:.3em}nav .select::after{height:calc(100% - 1px);padding:0;line-height:2.4em}nav .menu>*{margin-right:.6em}nav .burger{display:none}@media all and (max-width: 60em){nav .burger{display:inline-block;cursor:pointer;bottom:-1000em;margin:0;-webkit-tap-highlight-color:transparent}nav .burger ~ .menu,nav .show:checked ~ .burger{position:fixed;min-height:100%;top:0;right:0;bottom:-1000em;margin:0;background:#fff;transition:all .5s ease;transform:none}nav .burger ~ .menu{z-index:11}nav .show:checked ~ .burger{color:transparent;width:100%;border-radius:0;background:rgba(17,17,17,0.2);transition:all .5s ease}nav .show ~ .menu{width:70%;max-width:300px;transform-origin:center right;transition:all .25s ease;transform:scaleX(0)}nav .show ~ .menu>*{transform:translateX(100%);transition:all 0s ease .5s}nav .show:checked ~ .menu>*:nth-child(1){transition:all .5s cubic-bezier(0.645, 0.045, 0.355, 1) 0s}nav .show:checked ~ .menu>*:nth-child(2){transition:all .5s cubic-bezier(0.645, 0.045, 0.355, 1) .1s}nav .show:checked ~ .menu>*:nth-child(3){transition:all .5s cubic-bezier(0.645, 0.045, 0.355, 1) .2s}nav .show:checked ~ .menu>*:nth-child(4){transition:all .5s cubic-bezier(0.645, 0.045, 0.355, 1) .3s}nav .show:checked ~ .menu>*:nth-child(5){transition:all .5s cubic-bezier(0.645, 0.045, 0.355, 1) .4s}nav .show:checked ~ .menu>*:nth-child(6){transition:all .5s cubic-bezier(0.645, 0.045, 0.355, 1) .5s}nav .show:checked ~ .menu{transform:scaleX(1)}nav .show:checked ~ .menu>*{transform:translateX(0);transition:all .5s ease-in-out .6s}nav .burger ~ .menu>*{display:block;margin:.3em;text-align:left;max-width:calc(100% - .6em)}nav .burger ~ .menu>a{padding:.3em .9em}}.stack,.stack .toggle{margin-top:0;margin-bottom:0;display:block;width:100%;text-align:left;border-radius:0}.stack:first-child,.stack:first-child .toggle{border-top-left-radius:.2em;border-top-right-radius:.2em}.stack:last-child,.stack:last-child .toggle{border-bottom-left-radius:.2em;border-bottom-right-radius:.2em}input.stack,textarea.stack,select.stack{transition:border-bottom 0 ease 0;border-bottom-width:0}input.stack:last-child,textarea.stack:last-child,select.stack:last-child{border-bottom-width:1px}input.stack:focus+input,input.stack:focus+textarea,input.stack:focus+select,textarea.stack:focus+input,textarea.stack:focus+textarea,textarea.stack:focus+select,select.stack:focus+input,select.stack:focus+textarea,select.stack:focus+select{border-top-color:#0074d9}.card,.modal .overlay ~ *{position:relative;box-shadow:none;border-radius:.2em;border:1px solid #aaa;overflow:hidden;text-align:left;background:#fff;margin-bottom:.6em;padding:0;transition:all .3s ease}.hidden.card,.modal .overlay ~ .hidden,:checked+.card,.modal .overlay ~ :checked+*,.modal .overlay:checked+*{font-size:0;padding:0;margin:0;border:0}.card>*,.modal .overlay ~ *>*{max-width:100%;display:block}.card>*:last-child,.modal .overlay ~ *>*:last-child{margin-bottom:0}.card header,.modal .overlay ~ * header,.card section,.modal .overlay ~ * section,.card>p,.modal .overlay ~ *>p{padding:.6em .8em}.card section,.modal .overlay ~ * section{padding:.6em .8em 0}.card hr,.modal .overlay ~ * hr{border:none;height:1px;background-color:#aaa}.card header,.modal .overlay ~ * header{font-weight:bold;position:relative;border-bottom:1px solid #aaa}.card header h1,.modal .overlay ~ * header h1,.card header h2,.modal .overlay ~ * header h2,.card header h3,.modal .overlay ~ * header h3,.card header h4,.modal .overlay ~ * header h4,.card header h5,.modal .overlay ~ * header h5,.card header h6,.modal .overlay ~ * header h6{padding:0;margin:0 2em 0 0;line-height:1;display:inline-block;vertical-align:text-bottom}.card header:last-child,.modal .overlay ~ * header:last-child{border-bottom:0}.card footer,.modal .overlay ~ * footer{padding:.8em}.card p,.modal .overlay ~ * p{margin:.3em 0}.card p:first-child,.modal .overlay ~ * p:first-child{margin-top:0}.card p:last-child,.modal .overlay ~ * p:last-child{margin-bottom:0}.card>p,.modal .overlay ~ *>p{margin:0;padding-right:2.5em}.card .close,.modal .overlay ~ * .close{position:absolute;top:.4em;right:.3em;font-size:1.2em;padding:0 .5em;cursor:pointer;width:auto}.card .close:hover,.modal .overlay ~ * .close:hover{color:#ff4136}.card h1+.close,.modal .overlay ~ * h1+.close{margin:.2em}.card h2+.close,.modal .overlay ~ * h2+.close{margin:.1em}.card .dangerous,.modal .overlay ~ * .dangerous{background:#ff4136;float:right}.modal{text-align:center}.modal>input{display:none}.modal>input ~ *{opacity:0;max-height:0;overflow:hidden}.modal .overlay{top:0;left:0;bottom:0;right:0;position:fixed;margin:0;border-radius:0;background:rgba(17,17,17,0.2);transition:all 0.3s;z-index:100000}.modal .overlay:before,.modal .overlay:after{display:none}.modal .overlay ~ *{border:0;position:fixed;top:50%;left:50%;transform:translateX(-50%) translateY(-50%) scale(0.2, 0.2);z-index:1000000;transition:all 0.3s}.modal>input:checked ~ *{display:block;opacity:1;max-height:10000px;transition:all 0.3s}.modal>input:checked ~ .overlay ~ *{max-height:90%;overflow:auto;-webkit-transform:translateX(-50%) translateY(-50%) scale(1, 1);transform:translateX(-50%) translateY(-50%) scale(1, 1)}@media (max-width: 60em){.modal .overlay ~ *{min-width:90%}}.dropimage{position:relative;display:block;padding:0;padding-bottom:56.25%;overflow:hidden;cursor:pointer;border:0;margin:.3em 0;border-radius:.2em;background-color:#ddd;background-size:cover;background-position:center center;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NDAiIGhlaWdodD0iNjQwIiB2ZXJzaW9uPSIxLjEiPjxnIHN0eWxlPSJmaWxsOiMzMzMiPjxwYXRoIGQ9Ik0gMTg3IDIzMCBDIDE3NSAyMzAgMTY1IDI0MCAxNjUgMjUyIEwgMTY1IDMwMCBMIDE2NSA0MDggQyAxNjUgNDIwIDE3NSA0MzAgMTg3IDQzMCBMIDQ2MyA0MzAgQyA0NzUgNDMwIDQ4NSA0MjAgNDg1IDQwOCBMIDQ4NSAzMDAgTCA0ODUgMjUyIEMgNDg1IDI0MCA0NzUgMjMwIDQ2MyAyMzAgTCAxODcgMjMwIHogTSAzNjAgMjU2IEEgNzAgNzIgMCAwIDEgNDMwIDMyOCBBIDcwIDcyIDAgMCAxIDM2MCA0MDAgQSA3MCA3MiAwIDAgMSAyOTAgMzI4IEEgNzAgNzIgMCAwIDEgMzYwIDI1NiB6Ii8+PGNpcmNsZSBjeD0iMzYwIiBjeT0iMzMwIiByPSI0MSIvPjxwYXRoIGQ9Im0yMDUgMjI1IDUtMTAgMjAgMCA1IDEwLTMwIDAiLz48cGF0aCBkPSJNMjg1IDIwMEwyNzAgMjI1IDM3NiAyMjUgMzYxIDIwMCAyODUgMjAwek0zMTAgMjA1TDMzNyAyMDUgMzM3IDIxOCAzMTAgMjE4IDMxMCAyMDV6Ii8+PHBhdGggZD0ibTQwNSAyMjUgNS0xMCAyMCAwIDUgMTAtMzAgMCIvPjwvZz48L3N2Zz4=)}.dropimage input{left:0;width:100%;height:100%;border:0;margin:0;padding:0;opacity:0;cursor:pointer;position:absolute}.tabs{position:relative;overflow:hidden}.tabs>label img{float:left;margin-left:.6em}.tabs>.row{width:calc(100% + 2 * .6em);display:table;table-layout:fixed;position:relative;padding-left:0;transition:all .3s;border-spacing:0;margin:0}.tabs>.row:before,.tabs>.row:after{display:none}.tabs>.row>*,.tabs>.row img{display:table-cell;vertical-align:top;margin:0;width:100%}.tabs>input{display:none}.tabs>input+*{width:100%}.tabs>input+label{width:auto}.two.tabs>.row{width:200%;left:-100%}.two.tabs>input:nth-of-type(1):checked ~ .row{margin-left:100%}.two.tabs>label img{width:48%;margin:4% 0 4% 4%}.three.tabs>.row{width:300%;left:-200%}.three.tabs>input:nth-of-type(1):checked ~ .row{margin-left:200%}.three.tabs>input:nth-of-type(2):checked ~ .row{margin-left:100%}.three.tabs>label img{width:30%;margin:5% 0 5% 5%}.four.tabs>.row{width:400%;left:-300%}.four.tabs>input:nth-of-type(1):checked ~ .row{margin-left:300%}.four.tabs>input:nth-of-type(2):checked ~ .row{margin-left:200%}.four.tabs>input:nth-of-type(3):checked ~ .row{margin-left:100%}.four.tabs>label img{width:22%;margin:4% 0 4% 4%}.tabs>label:first-of-type img{margin-left:0}[data-tooltip]{position:relative}[data-tooltip]:after,[data-tooltip]:before{position:absolute;z-index:10;opacity:0;border-width:0;height:0;padding:0;overflow:hidden;transition:opacity .6s ease, height 0s ease .6s;top:calc(100% - 6px);left:0;margin-top:12px}[data-tooltip]:after{margin-left:0;font-size:.8em;background:#111;content:attr(data-tooltip);white-space:nowrap}[data-tooltip]:before{content:'';width:0;height:0;border-width:0;border-style:solid;border-color:transparent transparent #111;margin-top:0;left:10px}[data-tooltip]:hover:after,[data-tooltip]:focus:after,[data-tooltip]:hover:before,[data-tooltip]:focus:before{opacity:1;border-width:6px;height:auto}[data-tooltip]:hover:after,[data-tooltip]:focus:after{padding:.45em .9em}.tooltip-top:after,.tooltip-top:before{top:auto;bottom:calc(100% - 6px);left:0;margin-bottom:12px}.tooltip-top:before{border-color:#111 transparent transparent;margin-bottom:0;left:10px}.tooltip-right:after,.tooltip-right:before{left:100%;margin-left:6px;margin-top:0;top:0}.tooltip-right:before{border-color:transparent #111 transparent transparent;margin-left:-6px;left:100%;top:7px}.tooltip-left:after,.tooltip-left:before{right:100%;margin-right:6px;left:auto;margin-top:0;top:0}.tooltip-left:before{border-color:transparent transparent transparent #111;margin-right:-6px;right:100%;top:7px} diff --git a/firmware/webdir/css/style.css b/firmware/webdir/css/style.css new file mode 100644 index 0000000..c84c3d9 --- /dev/null +++ b/firmware/webdir/css/style.css @@ -0,0 +1,55 @@ +main { + padding: 4em 2em 2em 2em; + max-width: 960px; + width: 100%; + margin-left: auto; + margin-right: auto; +} + +canvas { + width: 100%; +} + +main section:target ~ section, main section#io, main section#wifi, main section#ota { + display: none; +} + +main section:target { + display: block !important; +} + +.table { + width: 100%; + display: table; +} + +.table > .row { + display: table-row; +} + +.table > .row:nth-child(2n) { + background: rgba(17, 17, 17, 0.05); +} + +.table > .row > * { + display: table-cell; + padding: .3em .6em .3em .6em; +} + +.table > header.row > * { + text-align: left; + font-weight: 900; + color: #fff; + background-color: #0074d9; +} + +.table > .row > input { + border: none; + background: none; + font-weight: 900; +} + +.plain { + opacity: initial; + width: initial; +} \ No newline at end of file diff --git a/firmware/webdir/index.html b/firmware/webdir/index.html new file mode 100644 index 0000000..317dc10 --- /dev/null +++ b/firmware/webdir/index.html @@ -0,0 +1,444 @@ + + + + + fiatlux v0.2 + + + + + + +
+
+

System

+
+
+

Firmware Update

+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+

Restart

+
+
+
+ +
+
+
+
+
+

Reset Config

+
+
+
+ +
+
+
+
+
+

Syslog

+
+
+
+

+                
+
+
+ +
+
+

Status

+
+
+
+
+

System

+
+
+
+ Chip ID + N/A +
+
+ Hostname + N/A +
+
+ Firmware Version + N/A +
+
+ Flash ID + N/A +
+
+ Flash size + N/A KiB +
+
+ Free heap + N/A bytes +
+
+ Uptime + N/A s +
+
+
+
+
+
+
+

Network current connection

+
+
+
+ Mode + N/A +
+
+ Station SSID + N/A +
+
+ Station IP + N/A +
+
+ Station MAC + N/A +
+
+ AP SSID + N/A +
+
+ AP IP + N/A +
+
+ AP MAC + N/A +
+
+
+
+
+
+
+

Power

+
+
+
+ Input + 5V12V +
+
+ Output + 11.2V +
+
+ +
+
+
+
+
+

I/O

+
+
+ +
+
+
+
+
+
+ + + + + diff --git a/firmware/webdir/js/smoothie_min.js b/firmware/webdir/js/smoothie_min.js new file mode 100644 index 0000000..87ce47d --- /dev/null +++ b/firmware/webdir/js/smoothie_min.js @@ -0,0 +1,15 @@ +// MIT License: +// +// Copyright (c) 2010-2013, Joe Walnes +// 2013-2014, Drew Noakes +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +;(function(exports){var Util={extend:function(){arguments[0]=arguments[0]||{};for(var i=1;ithis.maxValue){this.maxValue=value}if(value=0&&this.data[i][0]>timestamp){i-=1}if(i===-1){this.data.splice(0,0,[timestamp,value])}else if(this.data.length>0&&this.data[i][0]===timestamp){if(sumRepeatedTimeStampValues){this.data[i][1]+=value;value=this.data[i][1]}else{this.data[i][1]=value}}else if(i=maxDataSetLength&&this.data[removeCount+1][0]0){timeSeries.resetBoundsTimerId=setInterval(function(){timeSeries.resetBounds()},timeSeries.options.resetBoundsInterval)}};SmoothieChart.prototype.removeTimeSeries=function(timeSeries){var numSeries=this.seriesSet.length;for(var i=0;i0.1||Math.abs(minValueDiff)>0.1;this.currentValueRange+=chartOptions.scaleSmoothing*valueRangeDiff;this.currentVisMinValue+=chartOptions.scaleSmoothing*minValueDiff}this.valueRange={min:chartMinValue,max:chartMaxValue}};SmoothieChart.prototype.render=function(canvas,time){var nowMillis=new Date().getTime();if(!this.isAnimatingScale){var maxIdleMillis=Math.min(1000/6,this.options.millisPerPixel);if(nowMillis-this.lastRenderTimeMillis0){context.beginPath();for(var t=time-(time%chartOptions.grid.millisPerLine);t>=oldestValidTime;t-=chartOptions.grid.millisPerLine){var gx=timeToXPixel(t);if(chartOptions.grid.sharpLines){gx-=0.5}context.moveTo(gx,0);context.lineTo(gx,dimensions.height)}context.stroke();context.closePath()}for(var v=1;v1){if(seriesOptions.fillStyle){context.lineTo(dimensions.width+seriesOptions.lineWidth+1,lastY);context.lineTo(dimensions.width+seriesOptions.lineWidth+1,dimensions.height+seriesOptions.lineWidth+1);context.lineTo(firstX,dimensions.height+seriesOptions.lineWidth);context.fillStyle=seriesOptions.fillStyle;context.fill()}if(seriesOptions.strokeStyle&&seriesOptions.strokeStyle!=='none'){context.stroke()}context.closePath()}context.restore()}if(!chartOptions.labels.disabled&&!isNaN(this.valueRange.min)&&!isNaN(this.valueRange.max)){var maxValueString=chartOptions.yMaxFormatter(this.valueRange.max,chartOptions.labels.precision),minValueString=chartOptions.yMinFormatter(this.valueRange.min,chartOptions.labels.precision),maxLabelPos=chartOptions.scrollBackwards?0:dimensions.width-context.measureText(maxValueString).width-2,minLabelPos=chartOptions.scrollBackwards?0:dimensions.width-context.measureText(minValueString).width-2;context.fillStyle=chartOptions.labels.fillStyle;context.fillText(maxValueString,maxLabelPos,chartOptions.labels.fontSize);context.fillText(minValueString,minLabelPos,dimensions.height-2)}if(chartOptions.timestampFormatter&&chartOptions.grid.millisPerLine>0){var textUntilX=chartOptions.scrollBackwards?context.measureText(minValueString).width:dimensions.width-context.measureText(minValueString).width+4;for(var t=time-(time%chartOptions.grid.millisPerLine);t>=oldestValidTime;t-=chartOptions.grid.millisPerLine){var gx=timeToXPixel(t);if((!chartOptions.scrollBackwards&&gxtextUntilX)){var tx=new Date(t),ts=chartOptions.timestampFormatter(tx),tsWidth=context.measureText(ts).width;textUntilX=chartOptions.scrollBackwards?gx+tsWidth+2:gx-tsWidth-2;context.fillStyle=chartOptions.labels.fillStyle;if(chartOptions.scrollBackwards){context.fillText(ts,gx,dimensions.height-2)}else{context.fillText(ts,gx-tsWidth,dimensions.height-2)}}}}context.restore();};SmoothieChart.timeFormatter=function(date){function pad2(number){return(number<10?'0':'')+number}return pad2(date.getHours())+':'+pad2(date.getMinutes())+':'+pad2(date.getSeconds())};exports.TimeSeries=TimeSeries;exports.SmoothieChart=SmoothieChart})(typeof exports==='undefined'?this:exports); \ No newline at end of file diff --git a/firmware/wifi.cpp b/firmware/wifi.cpp index da4c496..729e71a 100644 --- a/firmware/wifi.cpp +++ b/firmware/wifi.cpp @@ -3,3 +3,359 @@ // #include "wifi.h" +#include "log.h" + +#include +#include +#include +#include +#include + +extern "C" { +#include +#include +#include +} + +#include +#include +#include +#include + +const char *wificfg_default_ssid = "fiatlux_%02X%02X%02X"; +const char *wificfg_default_password = "fiatlux02"; +const char *wificfg_default_hostname = "fiatlux-%02x%02x%02x"; + +char *wifi_sta_ssid = nullptr; +char *wifi_sta_password = nullptr; +char *wifi_ap_ssid = nullptr; +char *wifi_ap_password = nullptr; + +SemaphoreHandle_t wifi_available_semaphore = nullptr; + +[[noreturn]] static void dns_task(void *pvParameters) { + char *wifi_ap_ip_addr = nullptr; + sysparam_get_string("wifi_ap_ip_addr", &wifi_ap_ip_addr); + if(!wifi_ap_ip_addr) { + syslog("dns: no ip address\n"); + vTaskDelete(nullptr); + } + ip4_addr_t server_addr; + server_addr.addr = ipaddr_addr(wifi_ap_ip_addr); + +#if LWIP_IPV6 + int fd = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP); + sockaddr_in6 serv_addr; + memset(&serv_addr, '0', sizeof(serv_addr)); + serv_addr.sin6_family = AF_INET6; + serv_addr.sin6_port = htons(53); + serv_addr.sin6_flowinfo = 0; + serv_addr.sin6_addr = in6addr_any; + serv_addr.sin6_scope_id = IP6_NO_ZONE; +#else + int fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); + sockaddr_in serv_addr; + memset(&serv_addr, '0', sizeof(serv_addr)); + serv_addr.sin_family = AF_INET; + serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); + serv_addr.sin_port = htons(53); +#endif + bind(fd, (sockaddr *) &serv_addr, sizeof(serv_addr)); + + const ifreq ifreq0 = {"en0"}; + const ifreq ifreq1 = {"en1"}; + setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, + sdk_wifi_get_opmode() == STATIONAP_MODE ? &ifreq1 : &ifreq0, + sizeof(ifreq0)); + + for (;;) { + uint8_t buffer[96]; + sockaddr_storage src_addr; + socklen_t src_addr_len = sizeof(src_addr); + ssize_t count = recvfrom(fd, buffer, sizeof(buffer), 0, (sockaddr *) &src_addr, &src_addr_len); + + /* Drop messages that are too large to send a response in the buffer */ + if(count > 0 && count + 16 <= (ssize_t) sizeof(buffer)) { + size_t qname_len = strlen((const char *) (buffer + 12)) + 1; + uint32_t reply_len = 2 + 10 + qname_len + 16 + 4; + + uint8_t *head = buffer + 2; + *head++ = 0x80; // Flags + *head++ = 0x00; + *head++ = 0x00; // Q count + *head++ = 0x01; + *head++ = 0x00; // A count + *head++ = 0x01; + *head++ = 0x00; // Auth count + *head++ = 0x00; + *head++ = 0x00; // Add count + *head++ = 0x00; + head += qname_len; + *head++ = 0x00; // Q type + *head++ = 0x01; + *head++ = 0x00; // Q class + *head++ = 0x01; + *head++ = 0xC0; // LBL offs + *head++ = 0x0C; + *head++ = 0x00; // Type + *head++ = 0x01; + *head++ = 0x00; // Class + *head++ = 0x01; + *head++ = 0x00; // TTL + *head++ = 0x00; + *head++ = 0x00; + *head++ = 0x78; + *head++ = 0x00; // RD len + *head++ = 0x04; + *head++ = ip4_addr1(&server_addr); + *head++ = ip4_addr2(&server_addr); + *head++ = ip4_addr3(&server_addr); + *head++ = ip4_addr4(&server_addr); + + sendto(fd, buffer, reply_len, 0, (sockaddr *) &src_addr, src_addr_len); + } + } +} + +extern "C" void wifi_task(void *pvParameters) { + (void) pvParameters; + /* Default a hostname. */ + char *hostname = nullptr; + sysparam_get_string("hostname", &hostname); + if(!hostname && wificfg_default_hostname) { + uint8_t macaddr[6]; + char name[32]; + sdk_wifi_get_macaddr(1, macaddr); + snprintf(name, sizeof(name), wificfg_default_hostname, macaddr[3], + macaddr[4], macaddr[5]); + sysparam_set_string("hostname", name); + } + if(hostname) { + free(hostname); + } + + sysparam_get_string("wifi_ap_ssid", &wifi_ap_ssid); + sysparam_get_string("wifi_ap_password", &wifi_ap_password); + sysparam_get_string("wifi_sta_ssid", &wifi_sta_ssid); + sysparam_get_string("wifi_sta_password", &wifi_sta_password); + + int8_t wifi_sta_enable = 1; + int8_t wifi_ap_enable = 1; + sysparam_get_int8("wifi_sta_enable", &wifi_sta_enable); + sysparam_get_int8("wifi_ap_enable", &wifi_ap_enable); + + if(!wifi_sta_enable) + wifi_ap_enable = 1; + + int8_t wifi_sta_disabled_restarts = 0; + sysparam_get_int8("wifi_sta_disabled_restarts", &wifi_sta_disabled_restarts); + if(wifi_sta_disabled_restarts > 0) { + wifi_sta_enable = 0; + wifi_sta_disabled_restarts--; + sysparam_set_int8("wifi_sta_disabled_restarts", wifi_sta_disabled_restarts); + } + + int8_t wifi_ap_disabled_restarts = 0; + sysparam_get_int8("wifi_ap_disabled_restarts", &wifi_ap_disabled_restarts); + if(wifi_ap_disabled_restarts > 0) { + wifi_ap_enable = 0; + wifi_ap_disabled_restarts--; + sysparam_set_int8("wifi_ap_disabled_restarts", wifi_ap_disabled_restarts); + } + + /* Validate the configuration. */ + + if(wifi_sta_enable && (!wifi_sta_ssid || !wifi_sta_password || + strlen(wifi_sta_ssid) < 1 || + strlen(wifi_sta_ssid) > 32 || + !wifi_sta_password || + strlen(wifi_sta_password) < 8 || + strlen(wifi_sta_password) >= 64)) { + wifi_sta_enable = 0; + } + + if(wifi_ap_enable) { + /* Default AP ssid and password. */ + if(!wifi_ap_ssid && wificfg_default_ssid) { + uint8_t macaddr[6]; + char ssid[32]; + sdk_wifi_get_macaddr(1, macaddr); + snprintf(ssid, sizeof(ssid), wificfg_default_ssid, macaddr[3], + macaddr[4], macaddr[5]); + sysparam_set_string("wifi_ap_ssid", ssid); + sysparam_get_string("wifi_ap_ssid", &wifi_ap_ssid); + + if(!wifi_ap_password && wificfg_default_password) { + sysparam_set_string("wifi_ap_password", wificfg_default_password); + sysparam_get_string("wifi_ap_password", &wifi_ap_password); + } + } + printf("ssid: %s\n", wifi_ap_ssid); + + /* If the ssid and password are not valid then disable the AP interface. */ + if(!wifi_ap_ssid || strlen(wifi_ap_ssid) < 1 || strlen(wifi_ap_ssid) >= 32 || + !wifi_ap_password || strlen(wifi_ap_password) < 8 || strlen(wifi_ap_password) >= 64) { + syslog("len err\n"); + wifi_ap_enable = 0; + } + } + + int8_t wifi_mode = NULL_MODE; + if(wifi_sta_enable && wifi_ap_enable) + wifi_mode = STATIONAP_MODE; + else if(wifi_sta_enable) + wifi_mode = STATION_MODE; + else if(wifi_ap_enable) + wifi_mode = SOFTAP_MODE; + sdk_wifi_set_opmode(wifi_mode); + + if(wifi_sta_enable) { + printf("try STA Mode: %s %s\n", wifi_sta_ssid, wifi_sta_password); + sdk_station_config config; + strcpy((char *) config.ssid, wifi_sta_ssid); + strcpy((char *) config.password, wifi_sta_password); + config.bssid_set = 0; + + int8_t wifi_sta_dhcp = 1; + sysparam_get_int8("wifi_sta_dhcp", &wifi_sta_dhcp); + + if(!wifi_sta_dhcp) { + char *wifi_sta_ip_addr = nullptr; + char *wifi_sta_netmask = nullptr; + char *wifi_sta_gateway = nullptr; + sysparam_get_string("wifi_sta_ip_addr", &wifi_sta_ip_addr); + sysparam_get_string("wifi_sta_netmask", &wifi_sta_netmask); + sysparam_get_string("wifi_sta_gateway", &wifi_sta_gateway); + + if(wifi_sta_ip_addr && strlen(wifi_sta_ip_addr) > 4 && + wifi_sta_netmask && strlen(wifi_sta_netmask) > 4 && + wifi_sta_gateway && strlen(wifi_sta_gateway) > 4) { + sdk_wifi_station_dhcpc_stop(); + ip_info info; + memset(&info, 0x0, sizeof(info)); + info.ip.addr = ipaddr_addr(wifi_sta_ip_addr); + info.netmask.addr = ipaddr_addr(wifi_sta_netmask); + info.gw.addr = ipaddr_addr(wifi_sta_gateway); + sdk_wifi_set_ip_info(STATION_IF, &info); + } + if(wifi_sta_ip_addr) free(wifi_sta_ip_addr); + if(wifi_sta_netmask) free(wifi_sta_netmask); + if(wifi_sta_gateway) free(wifi_sta_gateway); + } + + sdk_wifi_station_set_config(&config); + } + + if(wifi_ap_enable) { + printf("try AP Mode: %s %s\n", wifi_ap_ssid, wifi_ap_password); +/* Read and validate paramenters. */ + int8_t wifi_ap_ssid_hidden = 0; + sysparam_get_int8("wifi_ap_ssid_hidden", &wifi_ap_ssid_hidden); + if(wifi_ap_ssid_hidden < 0 || wifi_ap_ssid_hidden > 1) { + wifi_ap_ssid_hidden = 1; + } + + int8_t wifi_ap_channel = 6; + sysparam_get_int8("wifi_ap_channel", &wifi_ap_channel); + +#if 0 + /* AU does not allow channels above 13, although 14 works. */ + if(wifi_ap_channel > 13) { + wifi_ap_channel = 13; + } + /* US does not allow channels above 11, although they work. */ + if (wifi_ap_channel > 11) { + wifi_ap_channel = 11; + } +#endif + if(wifi_ap_channel < 1 || wifi_ap_channel > 14) { + wifi_ap_channel = 6; + } + + int8_t wifi_ap_authmode = AUTH_WPA_WPA2_PSK; + sysparam_get_int8("wifi_ap_authmode", &wifi_ap_authmode); + if(wifi_ap_authmode != AUTH_OPEN && wifi_ap_authmode != AUTH_WPA_PSK && + wifi_ap_authmode != AUTH_WPA2_PSK && wifi_ap_authmode != AUTH_WPA_WPA2_PSK) { + wifi_ap_authmode = AUTH_WPA_WPA2_PSK; + } + + int8_t wifi_ap_max_conn = 3; + sysparam_get_int8("wifi_ap_max_conn", &wifi_ap_max_conn); + if(wifi_ap_max_conn < 1 || wifi_ap_max_conn > 8) { + wifi_ap_max_conn = 3; + } + + int32_t wifi_ap_beacon_interval = 100; + sysparam_get_int32("wifi_ap_beacon_interval", &wifi_ap_beacon_interval); + if(wifi_ap_beacon_interval < 0 || wifi_ap_beacon_interval > 1000) { + wifi_ap_beacon_interval = 100; + } + + /* Default AP IP address and netmask. */ + char *wifi_ap_ip_addr = nullptr; + sysparam_get_string("wifi_ap_ip_addr", &wifi_ap_ip_addr); + if(!wifi_ap_ip_addr) { + sysparam_set_string("wifi_ap_ip_addr", "172.16.0.1"); + sysparam_get_string("wifi_ap_ip_addr", &wifi_ap_ip_addr); + } + char *wifi_ap_netmask = nullptr; + sysparam_get_string("wifi_ap_netmask", &wifi_ap_netmask); + if(!wifi_ap_netmask) { + sysparam_set_string("wifi_ap_netmask", "255.255.0.0"); + sysparam_get_string("wifi_ap_netmask", &wifi_ap_netmask); + } + + if(strlen(wifi_ap_ip_addr) >= 7 && strlen(wifi_ap_netmask) >= 7) { + ip_info ap_ip; + ap_ip.ip.addr = ipaddr_addr(wifi_ap_ip_addr); + ap_ip.netmask.addr = ipaddr_addr(wifi_ap_netmask); + IP4_ADDR(&ap_ip.gw, 0, 0, 0, 0); + sdk_wifi_set_ip_info(1, &ap_ip); + + sdk_softap_config ap_config; + strcpy((char *) ap_config.ssid, wifi_ap_ssid); + ap_config.ssid_len = strlen(wifi_ap_ssid); + strcpy((char *) ap_config.password, wifi_ap_password); + ap_config.channel = static_cast(wifi_ap_channel); + ap_config.authmode = static_cast(wifi_ap_authmode); + ap_config.ssid_hidden = static_cast(wifi_ap_ssid_hidden); + ap_config.max_connection = static_cast(wifi_ap_max_conn); + ap_config.beacon_interval = static_cast(wifi_ap_beacon_interval); + + sdk_wifi_softap_set_config(&ap_config); + + int8_t wifi_ap_dhcp_leases = 4; + sysparam_get_int8("wifi_ap_dhcp_leases", &wifi_ap_dhcp_leases); + + if(wifi_ap_dhcp_leases) { + ip4_addr_t first_client_ip; + first_client_ip.addr = ap_ip.ip.addr + htonl(1); + + int8_t wifi_ap_dns = 1; + sysparam_get_int8("wifi_ap_dns", &wifi_ap_dns); + if(wifi_ap_dns < 0 || wifi_ap_dns > 1) + wifi_ap_dns = 1; + + dhcpserver_start(&first_client_ip, wifi_ap_dhcp_leases); + dhcpserver_set_router(&ap_ip.ip); + if(wifi_ap_dns) { + dhcpserver_set_dns(&ap_ip.ip); + xTaskCreate(dns_task, "dns_task", 384, nullptr, 2, nullptr); + } + } + } + + free(wifi_ap_ip_addr); + free(wifi_ap_netmask); + } + + if(wifi_sta_ssid) free(wifi_sta_ssid); + if(wifi_sta_password) free(wifi_sta_password); + if(wifi_ap_ssid) free(wifi_ap_ssid); + if(wifi_ap_password) free(wifi_ap_password); + + xSemaphoreGive(wifi_available_semaphore); + + //monitor loop connection here + vTaskDelete(nullptr); +} \ No newline at end of file diff --git a/firmware/wifi.h b/firmware/wifi.h index 97c5f85..9fec7da 100644 --- a/firmware/wifi.h +++ b/firmware/wifi.h @@ -5,10 +5,17 @@ #ifndef FIRMWARE_WIFI_H #define FIRMWARE_WIFI_H +#include +#include + #ifdef __cplusplus extern "C" { #endif +extern SemaphoreHandle_t wifi_available_semaphore; + +void wifi_task(void *pvParameters); + #ifdef __cplusplus } #endif diff --git a/modules/nix b/modules/nix new file mode 160000 index 0000000..403461c --- /dev/null +++ b/modules/nix @@ -0,0 +1 @@ +Subproject commit 403461c810ddab0cf498b24df5b5ff92606e4154 diff --git a/modules/rtos b/modules/rtos index 503e66a..7faa16b 160000 --- a/modules/rtos +++ b/modules/rtos @@ -1 +1 @@ -Subproject commit 503e66a500419e8863998b7ea784c5e26a7a5f7c +Subproject commit 7faa16b07ce0d606f9525a316990da5b58e61314 diff --git a/pcb/.gitignore b/pcb/.gitignore index 2043655..5efb808 100644 --- a/pcb/.gitignore +++ b/pcb/.gitignore @@ -31,5 +31,8 @@ fp-info-cache *.wrl *.step +*-backups/ gen/ -gen.zip +pcb.zip + +report.txt \ No newline at end of file diff --git a/pcb/Makefile b/pcb/Makefile index 181d4fb..610317c 100644 --- a/pcb/Makefile +++ b/pcb/Makefile @@ -1,4 +1,54 @@ -all: +.NOTPARALLEL: gen/fab/fiatlux-F_Cu.gbr gen/fab/fiatlux-B_Cu.gbr gen/fab/fiatlux-F_Mask.gbr gen/fab/fiatlux-B_Mask.gbr gen/fab/fiatlux-F_Paste.gbr gen/fab/fiatlux-B_Paste.gbr gen/fab/fiatlux-F_SilkS.gbr gen/fab/fiatlux-B_SilkS.gbr + +all: test fab doc pcb.zip + +pcb.zip: fab doc @mkdir -p gen - @touch gen/foo - @cd gen; zip ../gen.zip * + @cd gen; zip -r ../pcb.zip fab.zip fiatlux.csv fiatlux-top-pos.csv fiatlux-front.svg fiatlux-back.svg fiatlux.pdf + @cd gen; zip -r ../debug.zip . + +test: gen/fiatlux-drc.txt gen/fiatlux-erc.txt + +doc: gen/fiatlux.pdf gen/fiatlux-front.svg gen/fiatlux-back.svg + +fab: test gen/fab.zip gen/fiatlux.csv gen/fiatlux-top-pos.csv + +gen/fab.zip: gen/fab/fiatlux-F_Cu.gbr gen/fab/fiatlux-B_Cu.gbr gen/fab/fiatlux-F_Mask.gbr gen/fab/fiatlux-B_Mask.gbr +gen/fab.zip: gen/fab/fiatlux-F_Paste.gbr gen/fab/fiatlux-B_Paste.gbr gen/fab/fiatlux-F_SilkS.gbr gen/fab/fiatlux-B_SilkS.gbr + @mkdir -p gen/fab + @cd gen/fab; zip -r ../fab.zip *.gbr + +gen/fiatlux-erc.txt: fiatlux.kiplot.yaml fiatlux.pro fiatlux.kicad_pcb + @mkdir -p gen + kibot -d gen -c fiatlux.kiplot.yaml -s update_xml,run_drc -i + +gen/fiatlux-drc.txt: fiatlux.kiplot.yaml fiatlux.pro fiatlux.sch + @mkdir -p gen + kibot -d gen -c fiatlux.kiplot.yaml -s update_xml,run_erc -i + +gen/fab/%.gbr: fiatlux.kiplot.yaml fiatlux.pro fiatlux.kicad_pcb + @mkdir -p gen + kibot -d gen -c fiatlux.kiplot.yaml -s all print_front gerbers + +gen/fiatlux-top-pos.csv: fiatlux.kiplot.yaml fiatlux.pro fiatlux.kicad_pcb + @mkdir -p gen + kibot -d gen -c fiatlux.kiplot.yaml -s all print_front position + +gen/fiatlux.csv: fiatlux.kiplot.yaml fiatlux.pro fiatlux.kicad_pcb + @mkdir -p gen + kibot -d gen -c fiatlux.kiplot.yaml -s all print_front bom + +gen/fiatlux.pdf: fiatlux.kiplot.yaml fiatlux.pro fiatlux.sch + @mkdir -p gen + kibot -d gen -c fiatlux.kiplot.yaml -s run_drc,run_erc print_sch + +gen/fiatlux-front.svg: fiatlux.kicad_pcb + @mkdir -p gen + pcbdraw --libs default $< $@ + +gen/fiatlux-back.svg: fiatlux.kicad_pcb + @mkdir -p gen + pcbdraw --libs default --back $< $@ + +clean: + @rm -rf gen \ No newline at end of file diff --git a/pcb/fiatlux.kicad_pcb b/pcb/fiatlux.kicad_pcb index 3668c16..f9bf4bd 100644 --- a/pcb/fiatlux.kicad_pcb +++ b/pcb/fiatlux.kicad_pcb @@ -3,7 +3,7 @@ (general (thickness 1.6) (drawings 68) - (tracks 710) + (tracks 714) (zones 0) (modules 71) (nets 36) @@ -13,12 +13,12 @@ (layers (0 F.Cu signal) (31 B.Cu signal) - (32 B.Adhes user) - (33 F.Adhes user) + (32 B.Adhes user hide) + (33 F.Adhes user hide) (34 B.Paste user hide) (35 F.Paste user hide) - (36 B.SilkS user) - (37 F.SilkS user) + (36 B.SilkS user hide) + (37 F.SilkS user hide) (38 B.Mask user hide) (39 F.Mask user hide) (40 Dwgs.User user hide) @@ -39,7 +39,7 @@ (user_trace_width 0.5) (user_trace_width 1) (user_trace_width 2) - (trace_clearance 0.2) + (trace_clearance 0.127) (zone_clearance 0.508) (zone_45_only no) (trace_min 0.2) @@ -131,7 +131,7 @@ (net 35 CS1) (net_class Default "Dies ist die voreingestellte Netzklasse." - (clearance 0.2) + (clearance 0.127) (trace_width 0.25) (via_dia 0.8) (via_drill 0.4) @@ -174,6 +174,148 @@ (add_net nRST) ) + (module TerminalBlock:TerminalBlock_bornier-2_P5.08mm locked (layer B.Cu) (tedit 60EC57DC) (tstamp 60AE33DA) + (at 55.88 71.12 180) + (descr "simple 2-pin terminal block, pitch 5.08mm, revamped version of bornier2") + (tags "terminal block bornier2") + (path /6078273A/6092962E) + (fp_text reference J12 (at 2.54 5.08) (layer B.SilkS) hide + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value Conn_01x02_Male (at 2.54 -5.08) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 7.79 -4) (end -2 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 7.79 -4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2 4) (end -2 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2 4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.54 -3.81) (end 7.62 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 3.81) (end -2.54 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 3.81) (end -2.54 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 -3.81) (end 7.62 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 -2.54) (end -2.54 -2.54) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.54 3.75) (end -2.46 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 -3.75) (end 7.54 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 -3.75) (end 7.54 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 3.75) (end -2.46 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.41 -2.55) (end 7.49 -2.55) (layer B.Fab) (width 0.1)) + (fp_text user %R (at 2.54 0) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 2 thru_hole circle (at 5.08 0 180) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 10 +12V)) + (pad 1 thru_hole rect (at 0 0 180) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 1 GND)) + (model ${KISYS3DMOD}/TerminalBlock.3dshapes/TerminalBlock_bornier-2_P5.08mm.wrl + (offset (xyz 2.539999961853027 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + (model ${KISYS3DMOD}/TerminalBlock_Phoenix.3dshapes/TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal.step + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TerminalBlock:TerminalBlock_bornier-4_P5.08mm locked (layer B.Cu) (tedit 60EC0394) (tstamp 6091B242) + (at 35.56 68.58 90) + (descr "simple 4-pin terminal block, pitch 5.08mm, revamped version of bornier4") + (tags "terminal block bornier4") + (path /60B13D6D) + (fp_text reference J2 (at 7.6 4.8 90) (layer B.SilkS) hide + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value Conn_01x04_Male (at 7.6 -4.75 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 17 -4) (end -2.73 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 17 -4) (end 17 3) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.73 3) (end -2.73 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.7 3) (end 17 3) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.54 -3.81) (end 17.78 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 3.81) (end 17.78 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 17.78 -2.54) (end -2.54 -2.54) (layer B.SilkS) (width 0.12)) + (fp_line (start 17.78 -3.81) (end 17.78 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 3.81) (end -2.54 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 17.72 -3.75) (end -2.43 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start 17.72 3.75) (end 17.72 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.48 3.75) (end 17.72 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.48 -3.75) (end -2.48 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.43 -3.75) (end -2.48 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.48 -2.55) (end 17.72 -2.55) (layer B.Fab) (width 0.1)) + (fp_text user %R (at 7.62 0 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 4 thru_hole circle (at 15.24 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 13 VOUT)) + (pad 1 thru_hole rect (at 0 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 1 GND)) + (pad 3 thru_hole circle (at 10.16 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 14 TXD0)) + (pad 2 thru_hole circle (at 5.08 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 15 RXD0)) + (model ${KISYS3DMOD}/TerminalBlock.3dshapes/TerminalBlock_bornier-4_P5.08mm.wrl + (offset (xyz 7.619999885559082 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + (model ${KISYS3DMOD}/TerminalBlock_Phoenix.3dshapes/TerminalBlock_Phoenix_MKDS-1,5-4-5.08_1x04_P5.08mm_Horizontal.step + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TerminalBlock:TerminalBlock_bornier-4_P5.08mm locked (layer B.Cu) (tedit 60EC0001) (tstamp 6091B26F) + (at 35.56 48.26 90) + (descr "simple 4-pin terminal block, pitch 5.08mm, revamped version of bornier4") + (tags "terminal block bornier4") + (path /608BFA99) + (fp_text reference J4 (at 7.6 4.8 90) (layer B.SilkS) hide + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value Conn_01x04_Male (at 7.6 -4.75 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 17 -4) (end -2.73 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 17 -4) (end 17 3) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.73 3) (end -2.73 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.73 3) (end 17 3) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.54 -3.81) (end 17.78 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 3.81) (end 17.78 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 17.78 -2.54) (end -2.54 -2.54) (layer B.SilkS) (width 0.12)) + (fp_line (start 17.78 -3.81) (end 17.78 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 3.81) (end -2.54 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 17.72 -3.75) (end -2.43 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start 17.72 3.75) (end 17.72 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.48 3.75) (end 17.72 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.48 -3.75) (end -2.48 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.43 -3.75) (end -2.48 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.48 -2.55) (end 17.72 -2.55) (layer B.Fab) (width 0.1)) + (fp_text user %R (at 7.62 0 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 4 thru_hole circle (at 15.24 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 13 VOUT)) + (pad 1 thru_hole rect (at 0 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 1 GND)) + (pad 3 thru_hole circle (at 10.16 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 16 SCLK)) + (pad 2 thru_hole circle (at 5.08 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 17 MOSI)) + (model ${KISYS3DMOD}/TerminalBlock.3dshapes/TerminalBlock_bornier-4_P5.08mm.wrl + (offset (xyz 7.619999885559082 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + (model ${KISYS3DMOD}/TerminalBlock_Phoenix.3dshapes/TerminalBlock_Phoenix_MKDS-1,5-4-5.08_1x04_P5.08mm_Horizontal.step + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + (module TestPoint:TestPoint_Pad_D2.0mm (layer F.Cu) (tedit 5A0F774F) (tstamp 60A933BB) (at 58.42 53.34 90) (descr "SMD pad as test Point, diameter 2.0mm") @@ -186,8 +328,8 @@ (fp_text value Testpoint_RST (at 0 2.05 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) + (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) (fp_text user %R (at 0 -2 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -207,19 +349,19 @@ (fp_text value 0Ohm (at 0 -1.65 90) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) + (fp_line (start 1.68 -0.95) (end -1.68 -0.95) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.68 0.95) (end 1.68 -0.95) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.68 0.95) (end 1.68 0.95) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.68 -0.95) (end -1.68 0.95) (layer B.CrtYd) (width 0.05)) + (fp_line (start -0.227064 -0.735) (end 0.227064 -0.735) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.227064 0.735) (end 0.227064 0.735) (layer B.SilkS) (width 0.12)) + (fp_line (start 1 -0.625) (end -1 -0.625) (layer B.Fab) (width 0.1)) + (fp_line (start 1 0.625) (end 1 -0.625) (layer B.Fab) (width 0.1)) + (fp_line (start -1 0.625) (end 1 0.625) (layer B.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end -1 0.625) (layer B.Fab) (width 0.1)) (fp_text user %R (at 0 0 90) (layer B.Fab) (effects (font (size 0.5 0.5) (thickness 0.08)) (justify mirror)) ) - (fp_line (start -1 -0.625) (end -1 0.625) (layer B.Fab) (width 0.1)) - (fp_line (start -1 0.625) (end 1 0.625) (layer B.Fab) (width 0.1)) - (fp_line (start 1 0.625) (end 1 -0.625) (layer B.Fab) (width 0.1)) - (fp_line (start 1 -0.625) (end -1 -0.625) (layer B.Fab) (width 0.1)) - (fp_line (start -0.227064 0.735) (end 0.227064 0.735) (layer B.SilkS) (width 0.12)) - (fp_line (start -0.227064 -0.735) (end 0.227064 -0.735) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.68 -0.95) (end -1.68 0.95) (layer B.CrtYd) (width 0.05)) - (fp_line (start -1.68 0.95) (end 1.68 0.95) (layer B.CrtYd) (width 0.05)) - (fp_line (start 1.68 0.95) (end 1.68 -0.95) (layer B.CrtYd) (width 0.05)) - (fp_line (start 1.68 -0.95) (end -1.68 -0.95) (layer B.CrtYd) (width 0.05)) (pad 2 smd roundrect (at 0.9125 0 270) (size 1.025 1.4) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.243902) (net 23 SEN_12V)) (pad 1 smd roundrect (at -0.9125 0 270) (size 1.025 1.4) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.243902) @@ -243,19 +385,19 @@ (fp_text value 0Ohm (at 0 -1.65 90) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) + (fp_line (start 1.68 -0.95) (end -1.68 -0.95) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.68 0.95) (end 1.68 -0.95) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.68 0.95) (end 1.68 0.95) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.68 -0.95) (end -1.68 0.95) (layer B.CrtYd) (width 0.05)) + (fp_line (start -0.227064 -0.735) (end 0.227064 -0.735) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.227064 0.735) (end 0.227064 0.735) (layer B.SilkS) (width 0.12)) + (fp_line (start 1 -0.625) (end -1 -0.625) (layer B.Fab) (width 0.1)) + (fp_line (start 1 0.625) (end 1 -0.625) (layer B.Fab) (width 0.1)) + (fp_line (start -1 0.625) (end 1 0.625) (layer B.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end -1 0.625) (layer B.Fab) (width 0.1)) (fp_text user %R (at 0 0 90) (layer B.Fab) (effects (font (size 0.5 0.5) (thickness 0.08)) (justify mirror)) ) - (fp_line (start -1 -0.625) (end -1 0.625) (layer B.Fab) (width 0.1)) - (fp_line (start -1 0.625) (end 1 0.625) (layer B.Fab) (width 0.1)) - (fp_line (start 1 0.625) (end 1 -0.625) (layer B.Fab) (width 0.1)) - (fp_line (start 1 -0.625) (end -1 -0.625) (layer B.Fab) (width 0.1)) - (fp_line (start -0.227064 0.735) (end 0.227064 0.735) (layer B.SilkS) (width 0.12)) - (fp_line (start -0.227064 -0.735) (end 0.227064 -0.735) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.68 -0.95) (end -1.68 0.95) (layer B.CrtYd) (width 0.05)) - (fp_line (start -1.68 0.95) (end 1.68 0.95) (layer B.CrtYd) (width 0.05)) - (fp_line (start 1.68 0.95) (end 1.68 -0.95) (layer B.CrtYd) (width 0.05)) - (fp_line (start 1.68 -0.95) (end -1.68 -0.95) (layer B.CrtYd) (width 0.05)) (pad 2 smd roundrect (at 0.9125 0 270) (size 1.025 1.4) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.243902) (net 9 SEN_5V)) (pad 1 smd roundrect (at -0.9125 0 270) (size 1.025 1.4) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.243902) @@ -278,21 +420,21 @@ (fp_text value Conn_01x06_Male (at 0 -15.03) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) - (fp_line (start 1.8 1.8) (end -1.8 1.8) (layer B.CrtYd) (width 0.05)) - (fp_line (start 1.8 -14.5) (end 1.8 1.8) (layer B.CrtYd) (width 0.05)) - (fp_line (start -1.8 -14.5) (end 1.8 -14.5) (layer B.CrtYd) (width 0.05)) - (fp_line (start -1.8 1.8) (end -1.8 -14.5) (layer B.CrtYd) (width 0.05)) - (fp_line (start -1.33 1.33) (end 0 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.27) (end 1.33 -1.27) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.33 -1.27) (end 1.33 -14.03) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.33 -1.27) (end -1.33 -14.03) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.33 -14.03) (end 1.33 -14.03) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.27 0.635) (end -0.635 1.27) (layer B.Fab) (width 0.1)) - (fp_line (start -1.27 -13.97) (end -1.27 0.635) (layer B.Fab) (width 0.1)) - (fp_line (start 1.27 -13.97) (end -1.27 -13.97) (layer B.Fab) (width 0.1)) - (fp_line (start 1.27 1.27) (end 1.27 -13.97) (layer B.Fab) (width 0.1)) (fp_line (start -0.635 1.27) (end 1.27 1.27) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 1.27) (end 1.27 -13.97) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 -13.97) (end -1.27 -13.97) (layer B.Fab) (width 0.1)) + (fp_line (start -1.27 -13.97) (end -1.27 0.635) (layer B.Fab) (width 0.1)) + (fp_line (start -1.27 0.635) (end -0.635 1.27) (layer B.Fab) (width 0.1)) + (fp_line (start -1.33 -14.03) (end 1.33 -14.03) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end -1.33 -14.03) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.33 -1.27) (end 1.33 -14.03) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end 1.33 -1.27) (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 -14.5) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.8 -14.5) (end 1.8 -14.5) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.8 -14.5) (end 1.8 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.8 1.8) (end -1.8 1.8) (layer B.CrtYd) (width 0.05)) (fp_text user %R (at 0 -6.35 -90) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) @@ -324,11 +466,11 @@ (fp_text value USB_B_Micro (at 0 -1.016) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) - (fp_line (start 5.08 0) (end -5.08 0) (layer B.Fab) (width 0.12)) - (fp_line (start 4.572 4.572) (end 4.572 6.096) (layer B.SilkS) (width 0.12)) - (fp_line (start 4.572 6.096) (end 3.048 6.096) (layer B.SilkS) (width 0.12)) - (fp_line (start -4.572 4.572) (end -4.572 6.096) (layer B.SilkS) (width 0.12)) (fp_line (start -4.572 6.096) (end -3.048 6.096) (layer B.SilkS) (width 0.12)) + (fp_line (start -4.572 4.572) (end -4.572 6.096) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.572 6.096) (end 3.048 6.096) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.572 4.572) (end 4.572 6.096) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.08 0) (end -5.08 0) (layer B.Fab) (width 0.12)) (pad "" thru_hole circle (at -2 3.275) (size 0.65 0.65) (drill 0.65) (layers *.Cu)) (pad "" thru_hole circle (at 2 3.275) (size 0.65 0.65) (drill 0.65) (layers *.Cu)) (pad 5 smd rect (at 1.3 4.2) (size 0.4 1.925) (layers B.Cu B.Paste B.Mask) @@ -367,8 +509,8 @@ (fp_text value Testpoint_RST (at 0 2.05 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) + (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) (fp_text user %R (at 0 -2 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -388,8 +530,8 @@ (fp_text value Testpoint_RST (at 0 2.05 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) + (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) (fp_text user %R (at 0 -2 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -409,8 +551,8 @@ (fp_text value Testpoint_RST (at 0 2.05 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) + (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) (fp_text user %R (at 0 -2 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -430,8 +572,8 @@ (fp_text value Testpoint_RST (at 0 2.05 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) + (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) (fp_text user %R (at 0 -2 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -450,21 +592,21 @@ (fp_text value Conn_01x04_Male (at 0 -9.95) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) - (fp_line (start 1.8 1.8) (end -1.8 1.8) (layer B.CrtYd) (width 0.05)) - (fp_line (start 1.8 -9.4) (end 1.8 1.8) (layer B.CrtYd) (width 0.05)) - (fp_line (start -1.8 -9.4) (end 1.8 -9.4) (layer B.CrtYd) (width 0.05)) - (fp_line (start -1.8 1.8) (end -1.8 -9.4) (layer B.CrtYd) (width 0.05)) - (fp_line (start -1.33 1.33) (end 0 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.27) (end 1.33 -1.27) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.33 -1.27) (end 1.33 -8.95) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.33 -1.27) (end -1.33 -8.95) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.33 -8.95) (end 1.33 -8.95) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.27 0.635) (end -0.635 1.27) (layer B.Fab) (width 0.1)) - (fp_line (start -1.27 -8.89) (end -1.27 0.635) (layer B.Fab) (width 0.1)) - (fp_line (start 1.27 -8.89) (end -1.27 -8.89) (layer B.Fab) (width 0.1)) - (fp_line (start 1.27 1.27) (end 1.27 -8.89) (layer B.Fab) (width 0.1)) (fp_line (start -0.635 1.27) (end 1.27 1.27) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 1.27) (end 1.27 -8.89) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 -8.89) (end -1.27 -8.89) (layer B.Fab) (width 0.1)) + (fp_line (start -1.27 -8.89) (end -1.27 0.635) (layer B.Fab) (width 0.1)) + (fp_line (start -1.27 0.635) (end -0.635 1.27) (layer B.Fab) (width 0.1)) + (fp_line (start -1.33 -8.95) (end 1.33 -8.95) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end -1.33 -8.95) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.33 -1.27) (end 1.33 -8.95) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end 1.33 -1.27) (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 -9.4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.8 -9.4) (end 1.8 -9.4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.8 -9.4) (end 1.8 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.8 1.8) (end -1.8 1.8) (layer B.CrtYd) (width 0.05)) (fp_text user %R (at 0 -3.81 -90) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) @@ -495,24 +637,24 @@ (fp_text value "Z 12V" (at 0 1.75) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -2.65 1.1) (end -2.65 -1.1) (layer F.CrtYd) (width 0.05)) - (fp_line (start 2.65 1.1) (end -2.65 1.1) (layer F.CrtYd) (width 0.05)) - (fp_line (start 2.65 -1.1) (end 2.65 1.1) (layer F.CrtYd) (width 0.05)) - (fp_line (start -2.65 -1.1) (end 2.65 -1.1) (layer F.CrtYd) (width 0.05)) - (fp_line (start -0.75 0) (end -0.35 0) (layer F.Fab) (width 0.1)) - (fp_line (start -0.35 0) (end -0.35 -0.55) (layer F.Fab) (width 0.1)) - (fp_line (start -0.35 0) (end -0.35 0.55) (layer F.Fab) (width 0.1)) - (fp_line (start -0.35 0) (end 0.25 -0.4) (layer F.Fab) (width 0.1)) - (fp_line (start 0.25 -0.4) (end 0.25 0.4) (layer F.Fab) (width 0.1)) - (fp_line (start 0.25 0.4) (end -0.35 0) (layer F.Fab) (width 0.1)) - (fp_line (start 0.25 0) (end 0.75 0) (layer F.Fab) (width 0.1)) - (fp_line (start -1.65 -0.8) (end 1.65 -0.8) (layer F.Fab) (width 0.1)) - (fp_line (start -1.65 0.8) (end -1.65 -0.8) (layer F.Fab) (width 0.1)) - (fp_line (start 1.65 0.8) (end -1.65 0.8) (layer F.Fab) (width 0.1)) - (fp_line (start 1.65 -0.8) (end 1.65 0.8) (layer F.Fab) (width 0.1)) - (fp_line (start -2.55 1) (end 1.75 1) (layer F.SilkS) (width 0.12)) - (fp_line (start -2.55 -1) (end -2.55 1) (layer F.SilkS) (width 0.12)) (fp_line (start 1.75 -1) (end -2.55 -1) (layer F.SilkS) (width 0.12)) + (fp_line (start -2.55 -1) (end -2.55 1) (layer F.SilkS) (width 0.12)) + (fp_line (start -2.55 1) (end 1.75 1) (layer F.SilkS) (width 0.12)) + (fp_line (start 1.65 -0.8) (end 1.65 0.8) (layer F.Fab) (width 0.1)) + (fp_line (start 1.65 0.8) (end -1.65 0.8) (layer F.Fab) (width 0.1)) + (fp_line (start -1.65 0.8) (end -1.65 -0.8) (layer F.Fab) (width 0.1)) + (fp_line (start -1.65 -0.8) (end 1.65 -0.8) (layer F.Fab) (width 0.1)) + (fp_line (start 0.25 0) (end 0.75 0) (layer F.Fab) (width 0.1)) + (fp_line (start 0.25 0.4) (end -0.35 0) (layer F.Fab) (width 0.1)) + (fp_line (start 0.25 -0.4) (end 0.25 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.35 0) (end 0.25 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.35 0) (end -0.35 0.55) (layer F.Fab) (width 0.1)) + (fp_line (start -0.35 0) (end -0.35 -0.55) (layer F.Fab) (width 0.1)) + (fp_line (start -0.75 0) (end -0.35 0) (layer F.Fab) (width 0.1)) + (fp_line (start -2.65 -1.1) (end 2.65 -1.1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.65 -1.1) (end 2.65 1.1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.65 1.1) (end -2.65 1.1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.65 1.1) (end -2.65 -1.1) (layer F.CrtYd) (width 0.05)) (fp_text user %R (at 0 -2) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -539,24 +681,24 @@ (fp_text value "Z 5V" (at 0 1.75) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -2.65 1.1) (end -2.65 -1.1) (layer F.CrtYd) (width 0.05)) - (fp_line (start 2.65 1.1) (end -2.65 1.1) (layer F.CrtYd) (width 0.05)) - (fp_line (start 2.65 -1.1) (end 2.65 1.1) (layer F.CrtYd) (width 0.05)) - (fp_line (start -2.65 -1.1) (end 2.65 -1.1) (layer F.CrtYd) (width 0.05)) - (fp_line (start -0.75 0) (end -0.35 0) (layer F.Fab) (width 0.1)) - (fp_line (start -0.35 0) (end -0.35 -0.55) (layer F.Fab) (width 0.1)) - (fp_line (start -0.35 0) (end -0.35 0.55) (layer F.Fab) (width 0.1)) - (fp_line (start -0.35 0) (end 0.25 -0.4) (layer F.Fab) (width 0.1)) - (fp_line (start 0.25 -0.4) (end 0.25 0.4) (layer F.Fab) (width 0.1)) - (fp_line (start 0.25 0.4) (end -0.35 0) (layer F.Fab) (width 0.1)) - (fp_line (start 0.25 0) (end 0.75 0) (layer F.Fab) (width 0.1)) - (fp_line (start -1.65 -0.8) (end 1.65 -0.8) (layer F.Fab) (width 0.1)) - (fp_line (start -1.65 0.8) (end -1.65 -0.8) (layer F.Fab) (width 0.1)) - (fp_line (start 1.65 0.8) (end -1.65 0.8) (layer F.Fab) (width 0.1)) - (fp_line (start 1.65 -0.8) (end 1.65 0.8) (layer F.Fab) (width 0.1)) - (fp_line (start -2.55 1) (end 1.75 1) (layer F.SilkS) (width 0.12)) - (fp_line (start -2.55 -1) (end -2.55 1) (layer F.SilkS) (width 0.12)) (fp_line (start 1.75 -1) (end -2.55 -1) (layer F.SilkS) (width 0.12)) + (fp_line (start -2.55 -1) (end -2.55 1) (layer F.SilkS) (width 0.12)) + (fp_line (start -2.55 1) (end 1.75 1) (layer F.SilkS) (width 0.12)) + (fp_line (start 1.65 -0.8) (end 1.65 0.8) (layer F.Fab) (width 0.1)) + (fp_line (start 1.65 0.8) (end -1.65 0.8) (layer F.Fab) (width 0.1)) + (fp_line (start -1.65 0.8) (end -1.65 -0.8) (layer F.Fab) (width 0.1)) + (fp_line (start -1.65 -0.8) (end 1.65 -0.8) (layer F.Fab) (width 0.1)) + (fp_line (start 0.25 0) (end 0.75 0) (layer F.Fab) (width 0.1)) + (fp_line (start 0.25 0.4) (end -0.35 0) (layer F.Fab) (width 0.1)) + (fp_line (start 0.25 -0.4) (end 0.25 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.35 0) (end 0.25 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.35 0) (end -0.35 0.55) (layer F.Fab) (width 0.1)) + (fp_line (start -0.35 0) (end -0.35 -0.55) (layer F.Fab) (width 0.1)) + (fp_line (start -0.75 0) (end -0.35 0) (layer F.Fab) (width 0.1)) + (fp_line (start -2.65 -1.1) (end 2.65 -1.1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.65 -1.1) (end 2.65 1.1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.65 1.1) (end -2.65 1.1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.65 1.1) (end -2.65 -1.1) (layer F.CrtYd) (width 0.05)) (fp_text user %R (at 0 -2) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -583,16 +725,16 @@ (fp_text value 51Ohm (at 0 1.43 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.4 0.4) (thickness 0.06))) ) @@ -619,16 +761,16 @@ (fp_text value 51Ohm (at 0 1.43 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.4 0.4) (thickness 0.06))) ) @@ -655,18 +797,18 @@ (fp_text value RED (at 0 1.43 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.485 0.735) (end 0.8 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.485 -0.735) (end -1.485 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start 0.8 -0.735) (end -1.485 -0.735) (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.1) (end -0.8 0.4) (layer F.Fab) (width 0.1)) - (fp_line (start -0.5 -0.4) (end -0.8 -0.1) (layer F.Fab) (width 0.1)) (fp_line (start 0.8 -0.4) (end -0.5 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.5 -0.4) (end -0.8 -0.1) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.1) (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.735) (end -1.485 -0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.485 -0.735) (end -1.485 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.485 0.735) (end 0.8 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.4 0.4) (thickness 0.06))) ) @@ -693,18 +835,18 @@ (fp_text value RED (at 0 1.43 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.485 0.735) (end 0.8 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.485 -0.735) (end -1.485 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start 0.8 -0.735) (end -1.485 -0.735) (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.1) (end -0.8 0.4) (layer F.Fab) (width 0.1)) - (fp_line (start -0.5 -0.4) (end -0.8 -0.1) (layer F.Fab) (width 0.1)) (fp_line (start 0.8 -0.4) (end -0.5 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.5 -0.4) (end -0.8 -0.1) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.1) (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.735) (end -1.485 -0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.485 -0.735) (end -1.485 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.485 0.735) (end 0.8 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.4 0.4) (thickness 0.06))) ) @@ -731,26 +873,26 @@ (fp_text value SW_Push (at 0 -3) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) - (fp_line (start 3 1.8) (end 3 -1.8) (layer B.Fab) (width 0.1)) - (fp_line (start -3 1.8) (end -3 -1.8) (layer B.Fab) (width 0.1)) - (fp_line (start -3 1.8) (end 3 1.8) (layer B.Fab) (width 0.1)) - (fp_line (start -3 -1.8) (end 3 -1.8) (layer B.Fab) (width 0.1)) - (fp_line (start -1.5 0.8) (end -1.5 -0.8) (layer B.Fab) (width 0.1)) - (fp_line (start 1.5 0.8) (end 1.5 -0.8) (layer B.Fab) (width 0.1)) - (fp_line (start -1.5 0.8) (end 1.5 0.8) (layer B.Fab) (width 0.1)) - (fp_line (start -1.5 -0.8) (end 1.5 -0.8) (layer B.Fab) (width 0.1)) - (fp_line (start -3.06 -1.85) (end -3.06 1.85) (layer B.SilkS) (width 0.12)) - (fp_line (start 3.06 -1.85) (end -3.06 -1.85) (layer B.SilkS) (width 0.12)) - (fp_line (start 3.06 1.85) (end 3.06 -1.85) (layer B.SilkS) (width 0.12)) - (fp_line (start -3.06 1.85) (end 3.06 1.85) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.75 -1) (end -1.75 1) (layer B.Fab) (width 0.1)) - (fp_line (start 1.75 -1) (end -1.75 -1) (layer B.Fab) (width 0.1)) - (fp_line (start 1.75 1) (end 1.75 -1) (layer B.Fab) (width 0.1)) - (fp_line (start -1.75 1) (end 1.75 1) (layer B.Fab) (width 0.1)) - (fp_line (start -4.9 2.05) (end 4.9 2.05) (layer B.CrtYd) (width 0.05)) - (fp_line (start 4.9 2.05) (end 4.9 -2.05) (layer B.CrtYd) (width 0.05)) - (fp_line (start 4.9 -2.05) (end -4.9 -2.05) (layer B.CrtYd) (width 0.05)) (fp_line (start -4.9 -2.05) (end -4.9 2.05) (layer B.CrtYd) (width 0.05)) + (fp_line (start 4.9 -2.05) (end -4.9 -2.05) (layer B.CrtYd) (width 0.05)) + (fp_line (start 4.9 2.05) (end 4.9 -2.05) (layer B.CrtYd) (width 0.05)) + (fp_line (start -4.9 2.05) (end 4.9 2.05) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.75 1) (end 1.75 1) (layer B.Fab) (width 0.1)) + (fp_line (start 1.75 1) (end 1.75 -1) (layer B.Fab) (width 0.1)) + (fp_line (start 1.75 -1) (end -1.75 -1) (layer B.Fab) (width 0.1)) + (fp_line (start -1.75 -1) (end -1.75 1) (layer B.Fab) (width 0.1)) + (fp_line (start -3.06 1.85) (end 3.06 1.85) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.06 1.85) (end 3.06 -1.85) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.06 -1.85) (end -3.06 -1.85) (layer B.SilkS) (width 0.12)) + (fp_line (start -3.06 -1.85) (end -3.06 1.85) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.5 -0.8) (end 1.5 -0.8) (layer B.Fab) (width 0.1)) + (fp_line (start -1.5 0.8) (end 1.5 0.8) (layer B.Fab) (width 0.1)) + (fp_line (start 1.5 0.8) (end 1.5 -0.8) (layer B.Fab) (width 0.1)) + (fp_line (start -1.5 0.8) (end -1.5 -0.8) (layer B.Fab) (width 0.1)) + (fp_line (start -3 -1.8) (end 3 -1.8) (layer B.Fab) (width 0.1)) + (fp_line (start -3 1.8) (end 3 1.8) (layer B.Fab) (width 0.1)) + (fp_line (start -3 1.8) (end -3 -1.8) (layer B.Fab) (width 0.1)) + (fp_line (start 3 1.8) (end 3 -1.8) (layer B.Fab) (width 0.1)) (fp_text user %R (at 0 2.6) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) @@ -777,26 +919,26 @@ (fp_text value SW_Push (at 0 -3) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) - (fp_line (start 3 1.8) (end 3 -1.8) (layer B.Fab) (width 0.1)) - (fp_line (start -3 1.8) (end -3 -1.8) (layer B.Fab) (width 0.1)) - (fp_line (start -3 1.8) (end 3 1.8) (layer B.Fab) (width 0.1)) - (fp_line (start -3 -1.8) (end 3 -1.8) (layer B.Fab) (width 0.1)) - (fp_line (start -1.5 0.8) (end -1.5 -0.8) (layer B.Fab) (width 0.1)) - (fp_line (start 1.5 0.8) (end 1.5 -0.8) (layer B.Fab) (width 0.1)) - (fp_line (start -1.5 0.8) (end 1.5 0.8) (layer B.Fab) (width 0.1)) - (fp_line (start -1.5 -0.8) (end 1.5 -0.8) (layer B.Fab) (width 0.1)) - (fp_line (start -3.06 -1.85) (end -3.06 1.85) (layer B.SilkS) (width 0.12)) - (fp_line (start 3.06 -1.85) (end -3.06 -1.85) (layer B.SilkS) (width 0.12)) - (fp_line (start 3.06 1.85) (end 3.06 -1.85) (layer B.SilkS) (width 0.12)) - (fp_line (start -3.06 1.85) (end 3.06 1.85) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.75 -1) (end -1.75 1) (layer B.Fab) (width 0.1)) - (fp_line (start 1.75 -1) (end -1.75 -1) (layer B.Fab) (width 0.1)) - (fp_line (start 1.75 1) (end 1.75 -1) (layer B.Fab) (width 0.1)) - (fp_line (start -1.75 1) (end 1.75 1) (layer B.Fab) (width 0.1)) - (fp_line (start -4.9 2.05) (end 4.9 2.05) (layer B.CrtYd) (width 0.05)) - (fp_line (start 4.9 2.05) (end 4.9 -2.05) (layer B.CrtYd) (width 0.05)) - (fp_line (start 4.9 -2.05) (end -4.9 -2.05) (layer B.CrtYd) (width 0.05)) (fp_line (start -4.9 -2.05) (end -4.9 2.05) (layer B.CrtYd) (width 0.05)) + (fp_line (start 4.9 -2.05) (end -4.9 -2.05) (layer B.CrtYd) (width 0.05)) + (fp_line (start 4.9 2.05) (end 4.9 -2.05) (layer B.CrtYd) (width 0.05)) + (fp_line (start -4.9 2.05) (end 4.9 2.05) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.75 1) (end 1.75 1) (layer B.Fab) (width 0.1)) + (fp_line (start 1.75 1) (end 1.75 -1) (layer B.Fab) (width 0.1)) + (fp_line (start 1.75 -1) (end -1.75 -1) (layer B.Fab) (width 0.1)) + (fp_line (start -1.75 -1) (end -1.75 1) (layer B.Fab) (width 0.1)) + (fp_line (start -3.06 1.85) (end 3.06 1.85) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.06 1.85) (end 3.06 -1.85) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.06 -1.85) (end -3.06 -1.85) (layer B.SilkS) (width 0.12)) + (fp_line (start -3.06 -1.85) (end -3.06 1.85) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.5 -0.8) (end 1.5 -0.8) (layer B.Fab) (width 0.1)) + (fp_line (start -1.5 0.8) (end 1.5 0.8) (layer B.Fab) (width 0.1)) + (fp_line (start 1.5 0.8) (end 1.5 -0.8) (layer B.Fab) (width 0.1)) + (fp_line (start -1.5 0.8) (end -1.5 -0.8) (layer B.Fab) (width 0.1)) + (fp_line (start -3 -1.8) (end 3 -1.8) (layer B.Fab) (width 0.1)) + (fp_line (start -3 1.8) (end 3 1.8) (layer B.Fab) (width 0.1)) + (fp_line (start -3 1.8) (end -3 -1.8) (layer B.Fab) (width 0.1)) + (fp_line (start 3 1.8) (end 3 -1.8) (layer B.Fab) (width 0.1)) (fp_text user %R (at 0 2.6) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) @@ -823,19 +965,19 @@ (fp_text value S8050 (at 0 2.5 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start 0.76 1.58) (end -0.7 1.58) (layer F.SilkS) (width 0.12)) - (fp_line (start 0.76 -1.58) (end -1.4 -1.58) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.7 1.75) (end -1.7 -1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.7 1.75) (end -1.7 1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.7 -1.75) (end 1.7 1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.7 -1.75) (end 1.7 -1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start 0.76 -1.58) (end 0.76 -0.65) (layer F.SilkS) (width 0.12)) - (fp_line (start 0.76 1.58) (end 0.76 0.65) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.7 1.52) (end 0.7 1.52) (layer F.Fab) (width 0.1)) - (fp_line (start 0.7 -1.52) (end 0.7 1.52) (layer F.Fab) (width 0.1)) - (fp_line (start -0.7 -0.95) (end -0.15 -1.52) (layer F.Fab) (width 0.1)) - (fp_line (start -0.15 -1.52) (end 0.7 -1.52) (layer F.Fab) (width 0.1)) (fp_line (start -0.7 -0.95) (end -0.7 1.5) (layer F.Fab) (width 0.1)) + (fp_line (start -0.15 -1.52) (end 0.7 -1.52) (layer F.Fab) (width 0.1)) + (fp_line (start -0.7 -0.95) (end -0.15 -1.52) (layer F.Fab) (width 0.1)) + (fp_line (start 0.7 -1.52) (end 0.7 1.52) (layer F.Fab) (width 0.1)) + (fp_line (start -0.7 1.52) (end 0.7 1.52) (layer F.Fab) (width 0.1)) + (fp_line (start 0.76 1.58) (end 0.76 0.65) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.76 -1.58) (end 0.76 -0.65) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.7 -1.75) (end 1.7 -1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.7 -1.75) (end 1.7 1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.7 1.75) (end -1.7 1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.7 1.75) (end -1.7 -1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.76 -1.58) (end -1.4 -1.58) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.76 1.58) (end -0.7 1.58) (layer F.SilkS) (width 0.12)) (fp_text user %R (at 0 0) (layer F.Fab) (effects (font (size 0.5 0.5) (thickness 0.075))) ) @@ -864,19 +1006,19 @@ (fp_text value S8050 (at 0 2.5) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start 0.76 1.58) (end -0.7 1.58) (layer F.SilkS) (width 0.12)) - (fp_line (start 0.76 -1.58) (end -1.4 -1.58) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.7 1.75) (end -1.7 -1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.7 1.75) (end -1.7 1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.7 -1.75) (end 1.7 1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.7 -1.75) (end 1.7 -1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start 0.76 -1.58) (end 0.76 -0.65) (layer F.SilkS) (width 0.12)) - (fp_line (start 0.76 1.58) (end 0.76 0.65) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.7 1.52) (end 0.7 1.52) (layer F.Fab) (width 0.1)) - (fp_line (start 0.7 -1.52) (end 0.7 1.52) (layer F.Fab) (width 0.1)) - (fp_line (start -0.7 -0.95) (end -0.15 -1.52) (layer F.Fab) (width 0.1)) - (fp_line (start -0.15 -1.52) (end 0.7 -1.52) (layer F.Fab) (width 0.1)) (fp_line (start -0.7 -0.95) (end -0.7 1.5) (layer F.Fab) (width 0.1)) + (fp_line (start -0.15 -1.52) (end 0.7 -1.52) (layer F.Fab) (width 0.1)) + (fp_line (start -0.7 -0.95) (end -0.15 -1.52) (layer F.Fab) (width 0.1)) + (fp_line (start 0.7 -1.52) (end 0.7 1.52) (layer F.Fab) (width 0.1)) + (fp_line (start -0.7 1.52) (end 0.7 1.52) (layer F.Fab) (width 0.1)) + (fp_line (start 0.76 1.58) (end 0.76 0.65) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.76 -1.58) (end 0.76 -0.65) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.7 -1.75) (end 1.7 -1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.7 -1.75) (end 1.7 1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.7 1.75) (end -1.7 1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.7 1.75) (end -1.7 -1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.76 -1.58) (end -1.4 -1.58) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.76 1.58) (end -0.7 1.58) (layer F.SilkS) (width 0.12)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.5 0.5) (thickness 0.075))) ) @@ -905,8 +1047,8 @@ (fp_text value Testpoint_RST (at 0 2.05) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) + (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) (fp_text user %R (at 0 -2) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -926,16 +1068,16 @@ (fp_text value 100nF (at 0 1.43 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -0.14058 0.51) (end 0.14058 0.51) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.14058 -0.51) (end 0.14058 -0.51) (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_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.14058 -0.51) (end 0.14058 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.14058 0.51) (end 0.14058 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.4 0.4) (thickness 0.06))) ) @@ -958,58 +1100,93 @@ (fp_text value LOGO (at 0.75 0) (layer B.SilkS) hide (effects (font (size 1.524 1.524) (thickness 0.3)) (justify mirror)) ) - (fp_poly (pts (xy 3.301653 1.770381) (xy 3.302418 1.51384) (xy 3.045969 1.51384) (xy 2.99591 1.513767) - (xy 2.948991 1.513557) (xy 2.906182 1.513224) (xy 2.868451 1.512783) (xy 2.836767 1.512247) - (xy 2.812097 1.511632) (xy 2.795411 1.51095) (xy 2.787676 1.510218) (xy 2.787256 1.51003) - (xy 2.786461 1.504057) (xy 2.785484 1.489424) (xy 2.784395 1.467629) (xy 2.783265 1.440171) - (xy 2.782165 1.408545) (xy 2.781657 1.39192) (xy 2.780572 1.356531) (xy 2.779433 1.322459) - (xy 2.778315 1.291744) (xy 2.777294 1.266426) (xy 2.776445 1.248546) (xy 2.776214 1.2446) - (xy 2.775374 1.228726) (xy 2.774344 1.205052) (xy 2.773216 1.175934) (xy 2.772081 1.14373) - (xy 2.771161 1.11506) (xy 2.770082 1.0816) (xy 2.768919 1.048715) (xy 2.767767 1.018902) - (xy 2.766722 0.994656) (xy 2.765999 0.98044) (xy 2.765085 0.962217) (xy 2.763995 0.936535) - (xy 2.762833 0.906091) (xy 2.761705 0.873583) (xy 2.761065 0.85344) (xy 2.75997 0.819353) - (xy 2.758746 0.784061) (xy 2.757509 0.750787) (xy 2.756379 0.722752) (xy 2.755867 0.7112) - (xy 2.754974 0.691568) (xy 2.754071 0.67073) (xy 2.753109 0.647396) (xy 2.752036 0.620277) - (xy 2.750803 0.588079) (xy 2.749359 0.549514) (xy 2.747654 0.503291) (xy 2.745784 0.45212) - (xy 2.743806 0.397888) (xy 2.742146 0.352629) (xy 2.740761 0.31516) (xy 2.739604 0.284301) - (xy 2.73863 0.258871) (xy 2.737795 0.237688) (xy 2.737052 0.219572) (xy 2.736357 0.20334) - (xy 2.735664 0.187813) (xy 2.735555 0.18542) (xy 2.734553 0.161812) (xy 2.73337 0.131386) - (xy 2.732132 0.097481) (xy 2.730962 0.063436) (xy 2.73055 0.0508) (xy 2.729429 0.017307) - (xy 2.728176 -0.017644) (xy 2.726922 -0.05061) (xy 2.725793 -0.07815) (xy 2.72543 -0.08636) - (xy 2.724623 -0.104367) (xy 2.723797 -0.123553) (xy 2.722912 -0.144961) (xy 2.721928 -0.169637) - (xy 2.720804 -0.198624) (xy 2.719499 -0.232969) (xy 2.717975 -0.273714) (xy 2.716191 -0.321905) - (xy 2.714105 -0.378587) (xy 2.712713 -0.41656) (xy 2.71122 -0.457029) (xy 2.709681 -0.498217) - (xy 2.708185 -0.537784) (xy 2.706821 -0.573392) (xy 2.705678 -0.602701) (xy 2.705097 -0.61722) - (xy 2.704142 -0.6412) (xy 2.702907 -0.672995) (xy 2.701479 -0.710265) (xy 2.69995 -0.75067) - (xy 2.698408 -0.791871) (xy 2.697444 -0.81788) (xy 2.695958 -0.857757) (xy 2.694439 -0.897811) - (xy 2.692972 -0.935837) (xy 2.691645 -0.969631) (xy 2.69054 -0.99699) (xy 2.689955 -1.01092) - (xy 2.688726 -1.040284) (xy 2.687327 -1.075111) (xy 2.685942 -1.110708) (xy 2.684922 -1.13792) - (xy 2.682943 -1.191903) (xy 2.681287 -1.23693) (xy 2.67991 -1.274197) (xy 2.678766 -1.3049) - (xy 2.677809 -1.330235) (xy 2.676995 -1.3514) (xy 2.676278 -1.369591) (xy 2.675613 -1.386004) - (xy 2.674954 -1.401835) (xy 2.674622 -1.4097) (xy 2.673558 -1.435711) (xy 2.672288 -1.4682) - (xy 2.670952 -1.503492) (xy 2.669693 -1.537908) (xy 2.669374 -1.54686) (xy 2.668212 -1.578537) - (xy 2.666974 -1.610348) (xy 2.665783 -1.63925) (xy 2.664763 -1.662203) (xy 2.664443 -1.66878) - (xy 2.663617 -1.686793) (xy 2.662549 -1.71257) (xy 2.661333 -1.743719) (xy 2.660061 -1.777851) - (xy 2.658828 -1.812575) (xy 2.658794 -1.81356) (xy 2.657647 -1.846058) (xy 2.656546 -1.875953) - (xy 2.655561 -1.901435) (xy 2.654762 -1.920696) (xy 2.65422 -1.931929) (xy 2.654156 -1.93294) - (xy 2.653579 -1.945267) (xy 2.652994 -1.964091) (xy 2.652511 -1.985747) (xy 2.652437 -1.99009) - (xy 2.65176 -2.032) (xy 2.005977 -2.032) (xy 2.008666 -2.01041) (xy 2.008941 -2.003284) - (xy 2.009238 -1.986483) (xy 2.009553 -1.960488) (xy 2.009883 -1.925782) (xy 2.010227 -1.88285) - (xy 2.010581 -1.832175) (xy 2.010943 -1.774239) (xy 2.01131 -1.709526) (xy 2.011681 -1.638519) - (xy 2.012052 -1.561702) (xy 2.01242 -1.479558) (xy 2.012784 -1.39257) (xy 2.013141 -1.301221) - (xy 2.013487 -1.205995) (xy 2.013822 -1.107375) (xy 2.014141 -1.005844) (xy 2.014372 -0.9271) - (xy 2.014679 -0.821238) (xy 2.014996 -0.716559) (xy 2.01532 -0.613642) (xy 2.015648 -0.513066) - (xy 2.015979 -0.415413) (xy 2.01631 -0.32126) (xy 2.016639 -0.231189) (xy 2.016963 -0.145778) - (xy 2.017281 -0.065608) (xy 2.01759 0.008742) (xy 2.017888 0.076693) (xy 2.018172 0.137664) - (xy 2.01844 0.191075) (xy 2.018691 0.236348) (xy 2.018921 0.272902) (xy 2.019128 0.300158) - (xy 2.019221 0.30988) (xy 2.019417 0.33284) (xy 2.019622 0.364328) (xy 2.019833 0.403498) - (xy 2.020047 0.449502) (xy 2.020263 0.501491) (xy 2.020479 0.558619) (xy 2.020692 0.620036) - (xy 2.020901 0.684896) (xy 2.021103 0.752351) (xy 2.021297 0.821552) (xy 2.02148 0.891653) - (xy 2.02165 0.961804) (xy 2.021806 1.031159) (xy 2.021945 1.098869) (xy 2.022065 1.164086) - (xy 2.022164 1.225964) (xy 2.02224 1.283654) (xy 2.022291 1.336308) (xy 2.022315 1.383078) - (xy 2.022309 1.423117) (xy 2.022273 1.455577) (xy 2.022203 1.47961) (xy 2.022098 1.494368) - (xy 2.022093 1.49479) (xy 2.02184 1.51384) (xy 1.50368 1.51384) (xy 1.50368 2.02692) - (xy 3.300889 2.02692) (xy 3.301653 1.770381)) (layer B.SilkS) (width 0.01)) + (fp_poly (pts (xy -1.83896 1.49352) (xy -2.53492 1.49352) (xy -2.535078 1.43891) (xy -2.535123 1.426758) + (xy -2.535214 1.405148) (xy -2.535349 1.374781) (xy -2.535524 1.336359) (xy -2.535735 1.290584) + (xy -2.535979 1.238157) (xy -2.536254 1.179781) (xy -2.536555 1.116156) (xy -2.53688 1.047985) + (xy -2.537224 0.975969) (xy -2.537586 0.90081) (xy -2.537961 0.823209) (xy -2.538166 0.78105) + (xy -2.541096 0.1778) (xy -2.00152 0.1778) (xy -2.00152 -0.35052) (xy -2.54043 -0.35052) + (xy -2.537779 -0.52705) (xy -2.537288 -0.562694) (xy -2.536747 -0.607127) (xy -2.536169 -0.658978) + (xy -2.535569 -0.716878) (xy -2.534959 -0.779454) (xy -2.534352 -0.845336) (xy -2.533761 -0.913154) + (xy -2.533201 -0.981537) (xy -2.532683 -1.049114) (xy -2.532463 -1.0795) (xy -2.531941 -1.150661) + (xy -2.531351 -1.226643) (xy -2.53071 -1.305599) (xy -2.530034 -1.385679) (xy -2.529339 -1.465035) + (xy -2.528642 -1.541818) (xy -2.527958 -1.614178) (xy -2.527304 -1.680268) (xy -2.526696 -1.738239) + (xy -2.526636 -1.74371) (xy -2.523475 -2.032) (xy -2.843858 -2.032) (xy -2.899957 -2.031941) + (xy -2.953004 -2.031771) (xy -3.002135 -2.031501) (xy -3.046484 -2.03114) (xy -3.085186 -2.030699) + (xy -3.117378 -2.030189) (xy -3.142194 -2.029618) (xy -3.15877 -2.028998) (xy -3.16624 -2.028339) + (xy -3.166576 -2.02819) (xy -3.167504 -2.021938) (xy -3.16838 -2.007561) (xy -3.169112 -1.987092) + (xy -3.169611 -1.962566) (xy -3.169664 -1.95834) (xy -3.170121 -1.929378) (xy -3.170799 -1.900281) + (xy -3.171603 -1.87456) (xy -3.172382 -1.85674) (xy -3.173123 -1.840718) (xy -3.174047 -1.816715) + (xy -3.175079 -1.786905) (xy -3.176144 -1.753464) (xy -3.177168 -1.718567) (xy -3.177352 -1.71196) + (xy -3.178403 -1.674982) (xy -3.17954 -1.637121) (xy -3.180677 -1.601097) (xy -3.181728 -1.56963) + (xy -3.182606 -1.545442) (xy -3.18265 -1.54432) (xy -3.183586 -1.519003) (xy -3.184696 -1.486732) + (xy -3.185872 -1.450712) (xy -3.18701 -1.414144) (xy -3.187669 -1.39192) (xy -3.188721 -1.356233) + (xy -3.189776 -1.321799) (xy -3.190892 -1.286806) (xy -3.192132 -1.249439) (xy -3.193556 -1.207887) + (xy -3.195223 -1.160335) (xy -3.197195 -1.104972) (xy -3.197836 -1.08712) (xy -3.198841 -1.057903) + (xy -3.200008 -1.022094) (xy -3.201222 -0.983258) (xy -3.202373 -0.94496) (xy -3.202962 -0.92456) + (xy -3.204012 -0.888761) (xy -3.205181 -0.850923) (xy -3.206362 -0.814427) (xy -3.207446 -0.782652) + (xy -3.208012 -0.76708) (xy -3.208983 -0.739826) (xy -3.210118 -0.705797) (xy -3.211306 -0.668372) + (xy -3.212441 -0.630931) (xy -3.213058 -0.6096) (xy -3.214108 -0.573801) (xy -3.215281 -0.535963) + (xy -3.216468 -0.499466) (xy -3.21756 -0.467691) (xy -3.218131 -0.45212) (xy -3.219114 -0.424867) + (xy -3.220262 -0.390838) (xy -3.221466 -0.353413) (xy -3.222616 -0.315972) (xy -3.223242 -0.29464) + (xy -3.224309 -0.258555) (xy -3.225497 -0.220158) (xy -3.226695 -0.182922) (xy -3.227792 -0.150317) + (xy -3.228348 -0.13462) (xy -3.229332 -0.106388) (xy -3.230479 -0.071472) (xy -3.231678 -0.033342) + (xy -3.232821 0.004529) (xy -3.233425 0.0254) (xy -3.234453 0.059554) (xy -3.235597 0.094178) + (xy -3.236755 0.126404) (xy -3.237826 0.153363) (xy -3.238473 0.16764) (xy -3.239329 0.187682) + (xy -3.240332 0.215467) (xy -3.241405 0.248581) (xy -3.242469 0.284608) (xy -3.243448 0.321136) + (xy -3.243611 0.32766) (xy -3.244565 0.364244) (xy -3.245615 0.400978) (xy -3.246682 0.435391) + (xy -3.24769 0.465008) (xy -3.248561 0.487357) (xy -3.248689 0.49022) (xy -3.249563 0.511729) + (xy -3.250588 0.54074) (xy -3.251679 0.574603) (xy -3.25275 0.610661) (xy -3.253687 0.64516) + (xy -3.254659 0.680578) (xy -3.255743 0.716139) (xy -3.256851 0.749259) (xy -3.257898 0.777351) + (xy -3.258783 0.79756) (xy -3.259628 0.817247) (xy -3.260615 0.844777) (xy -3.261671 0.877835) + (xy -3.262723 0.914108) (xy -3.263698 0.951281) (xy -3.263974 0.96266) (xy -3.264894 0.999006) + (xy -3.265896 1.034578) (xy -3.266912 1.067222) (xy -3.267874 1.094781) (xy -3.268713 1.115099) + (xy -3.268967 1.12014) (xy -3.269805 1.138156) (xy -3.270808 1.163938) (xy -3.271892 1.195093) + (xy -3.272975 1.22923) (xy -3.273974 1.263957) (xy -3.274 1.26492) (xy -3.275024 1.301315) + (xy -3.276147 1.338778) (xy -3.277279 1.374449) (xy -3.27833 1.405465) (xy -3.279149 1.42748) + (xy -3.280057 1.451929) (xy -3.281132 1.483595) (xy -3.282281 1.51954) (xy -3.283408 1.556825) + (xy -3.284283 1.5875) (xy -3.285298 1.622848) (xy -3.286398 1.658648) (xy -3.287494 1.692182) + (xy -3.288498 1.720727) (xy -3.289249 1.7399) (xy -3.290046 1.760317) (xy -3.291045 1.788546) + (xy -3.292168 1.822243) (xy -3.293338 1.859064) (xy -3.294477 1.896667) (xy -3.294832 1.90881) + (xy -3.298249 2.02692) (xy -1.83896 2.02692) (xy -1.83896 1.49352)) (layer B.SilkS) (width 0.01)) + (fp_poly (pts (xy -0.835063 1.51765) (xy -0.835374 1.462396) (xy -0.835707 1.397734) (xy -0.836058 1.32442) + (xy -0.836425 1.243206) (xy -0.836806 1.154845) (xy -0.837197 1.060091) (xy -0.837595 0.959698) + (xy -0.837998 0.854419) (xy -0.838403 0.745007) (xy -0.838807 0.632215) (xy -0.839208 0.516798) + (xy -0.839602 0.399508) (xy -0.839987 0.281098) (xy -0.84036 0.162323) (xy -0.840718 0.043936) + (xy -0.841058 -0.07331) (xy -0.841286 -0.15494) (xy -0.841592 -0.265594) (xy -0.8419 -0.374994) + (xy -0.842208 -0.482592) (xy -0.842515 -0.587843) (xy -0.842817 -0.690197) (xy -0.843115 -0.789109) + (xy -0.843405 -0.884031) (xy -0.843687 -0.974416) (xy -0.843958 -1.059716) (xy -0.844217 -1.139386) + (xy -0.844462 -1.212877) (xy -0.844691 -1.279642) (xy -0.844902 -1.339135) (xy -0.845095 -1.390808) + (xy -0.845266 -1.434114) (xy -0.845415 -1.468506) (xy -0.845539 -1.493437) (xy -0.845569 -1.4986) + (xy -0.845882 -1.551559) (xy -0.846221 -1.611079) (xy -0.846568 -1.673898) (xy -0.846906 -1.73675) + (xy -0.847216 -1.796374) (xy -0.847481 -1.849505) (xy -0.84751 -1.85547) (xy -0.84836 -2.032) + (xy -1.507362 -2.032) (xy -1.510286 -2.00533) (xy -1.511157 -1.992508) (xy -1.511974 -1.971391) + (xy -1.512692 -1.943846) (xy -1.513267 -1.911738) (xy -1.513654 -1.876931) (xy -1.513757 -1.860362) + (xy -1.513992 -1.826472) (xy -1.514355 -1.79584) (xy -1.514814 -1.769974) (xy -1.515341 -1.750384) + (xy -1.515904 -1.738578) (xy -1.516233 -1.735902) (xy -1.516702 -1.729683) (xy -1.517269 -1.714361) + (xy -1.517912 -1.690993) (xy -1.518607 -1.660637) (xy -1.519331 -1.624349) (xy -1.520062 -1.583185) + (xy -1.520777 -1.538203) (xy -1.521273 -1.50368) (xy -1.521988 -1.453903) (xy -1.522747 -1.404929) + (xy -1.523523 -1.358196) (xy -1.524292 -1.315143) (xy -1.525026 -1.277206) (xy -1.525699 -1.245826) + (xy -1.526286 -1.222439) (xy -1.526541 -1.21412) (xy -1.527142 -1.193567) (xy -1.52785 -1.1646) + (xy -1.528628 -1.128961) (xy -1.529443 -1.088395) (xy -1.530258 -1.044644) (xy -1.531037 -0.999454) + (xy -1.531506 -0.97028) (xy -1.53226 -0.923845) (xy -1.533085 -0.876631) (xy -1.533941 -0.830607) + (xy -1.53479 -0.787741) (xy -1.535594 -0.750002) (xy -1.536314 -0.719359) (xy -1.536664 -0.70612) + (xy -1.537381 -0.678446) (xy -1.538213 -0.642913) (xy -1.539111 -0.60182) (xy -1.540025 -0.557466) + (xy -1.540907 -0.51215) (xy -1.541709 -0.468172) (xy -1.541723 -0.46736) (xy -1.542357 -0.431338) + (xy -1.542964 -0.397517) (xy -1.543565 -0.364735) (xy -1.544185 -0.331828) (xy -1.544847 -0.297631) + (xy -1.545574 -0.260982) (xy -1.546389 -0.220717) (xy -1.547316 -0.175671) (xy -1.548378 -0.124683) + (xy -1.549597 -0.066587) (xy -1.550998 -0.00022) (xy -1.551971 0.04572) (xy -1.552755 0.084036) + (xy -1.553646 0.12962) (xy -1.554588 0.179585) (xy -1.555528 0.231041) (xy -1.556413 0.281098) + (xy -1.557075 0.32004) (xy -1.557844 0.364341) (xy -1.558701 0.410358) (xy -1.559598 0.455712) + (xy -1.560486 0.498026) (xy -1.561316 0.534923) (xy -1.562038 0.56388) (xy -1.562761 0.592815) + (xy -1.563598 0.629572) (xy -1.564498 0.671816) (xy -1.565415 0.717209) (xy -1.5663 0.763416) + (xy -1.567104 0.808101) (xy -1.567141 0.81026) (xy -1.567953 0.856124) (xy -1.568852 0.904814) + (xy -1.569786 0.953714) (xy -1.570705 1.000209) (xy -1.571558 1.04168) (xy -1.57227 1.07442) + (xy -1.573043 1.109737) (xy -1.573939 1.152379) (xy -1.574898 1.199515) (xy -1.575864 1.248312) + (xy -1.57678 1.295938) (xy -1.577387 1.32842) (xy -1.578227 1.373394) (xy -1.579154 1.421612) + (xy -1.58011 1.470242) (xy -1.58104 1.516451) (xy -1.581888 1.557407) (xy -1.582424 1.58242) + (xy -1.583132 1.615431) (xy -1.583984 1.656186) (xy -1.58493 1.702272) (xy -1.585922 1.751274) + (xy -1.586911 1.80078) (xy -1.587847 1.848375) (xy -1.588034 1.858011) (xy -1.591312 2.02692) + (xy -0.832033 2.02692) (xy -0.835063 1.51765)) (layer B.SilkS) (width 0.01)) (fp_poly (pts (xy 1.034934 1.95199) (xy 1.10247 1.822561) (xy 1.165366 1.686545) (xy 1.223851 1.543346) (xy 1.278151 1.392371) (xy 1.328497 1.233025) (xy 1.373254 1.07188) (xy 1.377455 1.055525) (xy 1.381794 1.038087) (xy 1.386572 1.01827) (xy 1.392092 0.994775) (xy 1.398655 0.966307) @@ -1092,93 +1269,58 @@ (xy -0.481348 1.688734) (xy -0.482058 1.741718) (xy -0.482789 1.791804) (xy -0.48352 1.837542) (xy -0.484228 1.87748) (xy -0.484891 1.910165) (xy -0.485488 1.934148) (xy -0.485489 1.934211) (xy -0.488182 2.02692) (xy 0.993455 2.02692) (xy 1.034934 1.95199)) (layer B.SilkS) (width 0.01)) - (fp_poly (pts (xy -0.835063 1.51765) (xy -0.835374 1.462396) (xy -0.835707 1.397734) (xy -0.836058 1.32442) - (xy -0.836425 1.243206) (xy -0.836806 1.154845) (xy -0.837197 1.060091) (xy -0.837595 0.959698) - (xy -0.837998 0.854419) (xy -0.838403 0.745007) (xy -0.838807 0.632215) (xy -0.839208 0.516798) - (xy -0.839602 0.399508) (xy -0.839987 0.281098) (xy -0.84036 0.162323) (xy -0.840718 0.043936) - (xy -0.841058 -0.07331) (xy -0.841286 -0.15494) (xy -0.841592 -0.265594) (xy -0.8419 -0.374994) - (xy -0.842208 -0.482592) (xy -0.842515 -0.587843) (xy -0.842817 -0.690197) (xy -0.843115 -0.789109) - (xy -0.843405 -0.884031) (xy -0.843687 -0.974416) (xy -0.843958 -1.059716) (xy -0.844217 -1.139386) - (xy -0.844462 -1.212877) (xy -0.844691 -1.279642) (xy -0.844902 -1.339135) (xy -0.845095 -1.390808) - (xy -0.845266 -1.434114) (xy -0.845415 -1.468506) (xy -0.845539 -1.493437) (xy -0.845569 -1.4986) - (xy -0.845882 -1.551559) (xy -0.846221 -1.611079) (xy -0.846568 -1.673898) (xy -0.846906 -1.73675) - (xy -0.847216 -1.796374) (xy -0.847481 -1.849505) (xy -0.84751 -1.85547) (xy -0.84836 -2.032) - (xy -1.507362 -2.032) (xy -1.510286 -2.00533) (xy -1.511157 -1.992508) (xy -1.511974 -1.971391) - (xy -1.512692 -1.943846) (xy -1.513267 -1.911738) (xy -1.513654 -1.876931) (xy -1.513757 -1.860362) - (xy -1.513992 -1.826472) (xy -1.514355 -1.79584) (xy -1.514814 -1.769974) (xy -1.515341 -1.750384) - (xy -1.515904 -1.738578) (xy -1.516233 -1.735902) (xy -1.516702 -1.729683) (xy -1.517269 -1.714361) - (xy -1.517912 -1.690993) (xy -1.518607 -1.660637) (xy -1.519331 -1.624349) (xy -1.520062 -1.583185) - (xy -1.520777 -1.538203) (xy -1.521273 -1.50368) (xy -1.521988 -1.453903) (xy -1.522747 -1.404929) - (xy -1.523523 -1.358196) (xy -1.524292 -1.315143) (xy -1.525026 -1.277206) (xy -1.525699 -1.245826) - (xy -1.526286 -1.222439) (xy -1.526541 -1.21412) (xy -1.527142 -1.193567) (xy -1.52785 -1.1646) - (xy -1.528628 -1.128961) (xy -1.529443 -1.088395) (xy -1.530258 -1.044644) (xy -1.531037 -0.999454) - (xy -1.531506 -0.97028) (xy -1.53226 -0.923845) (xy -1.533085 -0.876631) (xy -1.533941 -0.830607) - (xy -1.53479 -0.787741) (xy -1.535594 -0.750002) (xy -1.536314 -0.719359) (xy -1.536664 -0.70612) - (xy -1.537381 -0.678446) (xy -1.538213 -0.642913) (xy -1.539111 -0.60182) (xy -1.540025 -0.557466) - (xy -1.540907 -0.51215) (xy -1.541709 -0.468172) (xy -1.541723 -0.46736) (xy -1.542357 -0.431338) - (xy -1.542964 -0.397517) (xy -1.543565 -0.364735) (xy -1.544185 -0.331828) (xy -1.544847 -0.297631) - (xy -1.545574 -0.260982) (xy -1.546389 -0.220717) (xy -1.547316 -0.175671) (xy -1.548378 -0.124683) - (xy -1.549597 -0.066587) (xy -1.550998 -0.00022) (xy -1.551971 0.04572) (xy -1.552755 0.084036) - (xy -1.553646 0.12962) (xy -1.554588 0.179585) (xy -1.555528 0.231041) (xy -1.556413 0.281098) - (xy -1.557075 0.32004) (xy -1.557844 0.364341) (xy -1.558701 0.410358) (xy -1.559598 0.455712) - (xy -1.560486 0.498026) (xy -1.561316 0.534923) (xy -1.562038 0.56388) (xy -1.562761 0.592815) - (xy -1.563598 0.629572) (xy -1.564498 0.671816) (xy -1.565415 0.717209) (xy -1.5663 0.763416) - (xy -1.567104 0.808101) (xy -1.567141 0.81026) (xy -1.567953 0.856124) (xy -1.568852 0.904814) - (xy -1.569786 0.953714) (xy -1.570705 1.000209) (xy -1.571558 1.04168) (xy -1.57227 1.07442) - (xy -1.573043 1.109737) (xy -1.573939 1.152379) (xy -1.574898 1.199515) (xy -1.575864 1.248312) - (xy -1.57678 1.295938) (xy -1.577387 1.32842) (xy -1.578227 1.373394) (xy -1.579154 1.421612) - (xy -1.58011 1.470242) (xy -1.58104 1.516451) (xy -1.581888 1.557407) (xy -1.582424 1.58242) - (xy -1.583132 1.615431) (xy -1.583984 1.656186) (xy -1.58493 1.702272) (xy -1.585922 1.751274) - (xy -1.586911 1.80078) (xy -1.587847 1.848375) (xy -1.588034 1.858011) (xy -1.591312 2.02692) - (xy -0.832033 2.02692) (xy -0.835063 1.51765)) (layer B.SilkS) (width 0.01)) - (fp_poly (pts (xy -1.83896 1.49352) (xy -2.53492 1.49352) (xy -2.535078 1.43891) (xy -2.535123 1.426758) - (xy -2.535214 1.405148) (xy -2.535349 1.374781) (xy -2.535524 1.336359) (xy -2.535735 1.290584) - (xy -2.535979 1.238157) (xy -2.536254 1.179781) (xy -2.536555 1.116156) (xy -2.53688 1.047985) - (xy -2.537224 0.975969) (xy -2.537586 0.90081) (xy -2.537961 0.823209) (xy -2.538166 0.78105) - (xy -2.541096 0.1778) (xy -2.00152 0.1778) (xy -2.00152 -0.35052) (xy -2.54043 -0.35052) - (xy -2.537779 -0.52705) (xy -2.537288 -0.562694) (xy -2.536747 -0.607127) (xy -2.536169 -0.658978) - (xy -2.535569 -0.716878) (xy -2.534959 -0.779454) (xy -2.534352 -0.845336) (xy -2.533761 -0.913154) - (xy -2.533201 -0.981537) (xy -2.532683 -1.049114) (xy -2.532463 -1.0795) (xy -2.531941 -1.150661) - (xy -2.531351 -1.226643) (xy -2.53071 -1.305599) (xy -2.530034 -1.385679) (xy -2.529339 -1.465035) - (xy -2.528642 -1.541818) (xy -2.527958 -1.614178) (xy -2.527304 -1.680268) (xy -2.526696 -1.738239) - (xy -2.526636 -1.74371) (xy -2.523475 -2.032) (xy -2.843858 -2.032) (xy -2.899957 -2.031941) - (xy -2.953004 -2.031771) (xy -3.002135 -2.031501) (xy -3.046484 -2.03114) (xy -3.085186 -2.030699) - (xy -3.117378 -2.030189) (xy -3.142194 -2.029618) (xy -3.15877 -2.028998) (xy -3.16624 -2.028339) - (xy -3.166576 -2.02819) (xy -3.167504 -2.021938) (xy -3.16838 -2.007561) (xy -3.169112 -1.987092) - (xy -3.169611 -1.962566) (xy -3.169664 -1.95834) (xy -3.170121 -1.929378) (xy -3.170799 -1.900281) - (xy -3.171603 -1.87456) (xy -3.172382 -1.85674) (xy -3.173123 -1.840718) (xy -3.174047 -1.816715) - (xy -3.175079 -1.786905) (xy -3.176144 -1.753464) (xy -3.177168 -1.718567) (xy -3.177352 -1.71196) - (xy -3.178403 -1.674982) (xy -3.17954 -1.637121) (xy -3.180677 -1.601097) (xy -3.181728 -1.56963) - (xy -3.182606 -1.545442) (xy -3.18265 -1.54432) (xy -3.183586 -1.519003) (xy -3.184696 -1.486732) - (xy -3.185872 -1.450712) (xy -3.18701 -1.414144) (xy -3.187669 -1.39192) (xy -3.188721 -1.356233) - (xy -3.189776 -1.321799) (xy -3.190892 -1.286806) (xy -3.192132 -1.249439) (xy -3.193556 -1.207887) - (xy -3.195223 -1.160335) (xy -3.197195 -1.104972) (xy -3.197836 -1.08712) (xy -3.198841 -1.057903) - (xy -3.200008 -1.022094) (xy -3.201222 -0.983258) (xy -3.202373 -0.94496) (xy -3.202962 -0.92456) - (xy -3.204012 -0.888761) (xy -3.205181 -0.850923) (xy -3.206362 -0.814427) (xy -3.207446 -0.782652) - (xy -3.208012 -0.76708) (xy -3.208983 -0.739826) (xy -3.210118 -0.705797) (xy -3.211306 -0.668372) - (xy -3.212441 -0.630931) (xy -3.213058 -0.6096) (xy -3.214108 -0.573801) (xy -3.215281 -0.535963) - (xy -3.216468 -0.499466) (xy -3.21756 -0.467691) (xy -3.218131 -0.45212) (xy -3.219114 -0.424867) - (xy -3.220262 -0.390838) (xy -3.221466 -0.353413) (xy -3.222616 -0.315972) (xy -3.223242 -0.29464) - (xy -3.224309 -0.258555) (xy -3.225497 -0.220158) (xy -3.226695 -0.182922) (xy -3.227792 -0.150317) - (xy -3.228348 -0.13462) (xy -3.229332 -0.106388) (xy -3.230479 -0.071472) (xy -3.231678 -0.033342) - (xy -3.232821 0.004529) (xy -3.233425 0.0254) (xy -3.234453 0.059554) (xy -3.235597 0.094178) - (xy -3.236755 0.126404) (xy -3.237826 0.153363) (xy -3.238473 0.16764) (xy -3.239329 0.187682) - (xy -3.240332 0.215467) (xy -3.241405 0.248581) (xy -3.242469 0.284608) (xy -3.243448 0.321136) - (xy -3.243611 0.32766) (xy -3.244565 0.364244) (xy -3.245615 0.400978) (xy -3.246682 0.435391) - (xy -3.24769 0.465008) (xy -3.248561 0.487357) (xy -3.248689 0.49022) (xy -3.249563 0.511729) - (xy -3.250588 0.54074) (xy -3.251679 0.574603) (xy -3.25275 0.610661) (xy -3.253687 0.64516) - (xy -3.254659 0.680578) (xy -3.255743 0.716139) (xy -3.256851 0.749259) (xy -3.257898 0.777351) - (xy -3.258783 0.79756) (xy -3.259628 0.817247) (xy -3.260615 0.844777) (xy -3.261671 0.877835) - (xy -3.262723 0.914108) (xy -3.263698 0.951281) (xy -3.263974 0.96266) (xy -3.264894 0.999006) - (xy -3.265896 1.034578) (xy -3.266912 1.067222) (xy -3.267874 1.094781) (xy -3.268713 1.115099) - (xy -3.268967 1.12014) (xy -3.269805 1.138156) (xy -3.270808 1.163938) (xy -3.271892 1.195093) - (xy -3.272975 1.22923) (xy -3.273974 1.263957) (xy -3.274 1.26492) (xy -3.275024 1.301315) - (xy -3.276147 1.338778) (xy -3.277279 1.374449) (xy -3.27833 1.405465) (xy -3.279149 1.42748) - (xy -3.280057 1.451929) (xy -3.281132 1.483595) (xy -3.282281 1.51954) (xy -3.283408 1.556825) - (xy -3.284283 1.5875) (xy -3.285298 1.622848) (xy -3.286398 1.658648) (xy -3.287494 1.692182) - (xy -3.288498 1.720727) (xy -3.289249 1.7399) (xy -3.290046 1.760317) (xy -3.291045 1.788546) - (xy -3.292168 1.822243) (xy -3.293338 1.859064) (xy -3.294477 1.896667) (xy -3.294832 1.90881) - (xy -3.298249 2.02692) (xy -1.83896 2.02692) (xy -1.83896 1.49352)) (layer B.SilkS) (width 0.01)) + (fp_poly (pts (xy 3.301653 1.770381) (xy 3.302418 1.51384) (xy 3.045969 1.51384) (xy 2.99591 1.513767) + (xy 2.948991 1.513557) (xy 2.906182 1.513224) (xy 2.868451 1.512783) (xy 2.836767 1.512247) + (xy 2.812097 1.511632) (xy 2.795411 1.51095) (xy 2.787676 1.510218) (xy 2.787256 1.51003) + (xy 2.786461 1.504057) (xy 2.785484 1.489424) (xy 2.784395 1.467629) (xy 2.783265 1.440171) + (xy 2.782165 1.408545) (xy 2.781657 1.39192) (xy 2.780572 1.356531) (xy 2.779433 1.322459) + (xy 2.778315 1.291744) (xy 2.777294 1.266426) (xy 2.776445 1.248546) (xy 2.776214 1.2446) + (xy 2.775374 1.228726) (xy 2.774344 1.205052) (xy 2.773216 1.175934) (xy 2.772081 1.14373) + (xy 2.771161 1.11506) (xy 2.770082 1.0816) (xy 2.768919 1.048715) (xy 2.767767 1.018902) + (xy 2.766722 0.994656) (xy 2.765999 0.98044) (xy 2.765085 0.962217) (xy 2.763995 0.936535) + (xy 2.762833 0.906091) (xy 2.761705 0.873583) (xy 2.761065 0.85344) (xy 2.75997 0.819353) + (xy 2.758746 0.784061) (xy 2.757509 0.750787) (xy 2.756379 0.722752) (xy 2.755867 0.7112) + (xy 2.754974 0.691568) (xy 2.754071 0.67073) (xy 2.753109 0.647396) (xy 2.752036 0.620277) + (xy 2.750803 0.588079) (xy 2.749359 0.549514) (xy 2.747654 0.503291) (xy 2.745784 0.45212) + (xy 2.743806 0.397888) (xy 2.742146 0.352629) (xy 2.740761 0.31516) (xy 2.739604 0.284301) + (xy 2.73863 0.258871) (xy 2.737795 0.237688) (xy 2.737052 0.219572) (xy 2.736357 0.20334) + (xy 2.735664 0.187813) (xy 2.735555 0.18542) (xy 2.734553 0.161812) (xy 2.73337 0.131386) + (xy 2.732132 0.097481) (xy 2.730962 0.063436) (xy 2.73055 0.0508) (xy 2.729429 0.017307) + (xy 2.728176 -0.017644) (xy 2.726922 -0.05061) (xy 2.725793 -0.07815) (xy 2.72543 -0.08636) + (xy 2.724623 -0.104367) (xy 2.723797 -0.123553) (xy 2.722912 -0.144961) (xy 2.721928 -0.169637) + (xy 2.720804 -0.198624) (xy 2.719499 -0.232969) (xy 2.717975 -0.273714) (xy 2.716191 -0.321905) + (xy 2.714105 -0.378587) (xy 2.712713 -0.41656) (xy 2.71122 -0.457029) (xy 2.709681 -0.498217) + (xy 2.708185 -0.537784) (xy 2.706821 -0.573392) (xy 2.705678 -0.602701) (xy 2.705097 -0.61722) + (xy 2.704142 -0.6412) (xy 2.702907 -0.672995) (xy 2.701479 -0.710265) (xy 2.69995 -0.75067) + (xy 2.698408 -0.791871) (xy 2.697444 -0.81788) (xy 2.695958 -0.857757) (xy 2.694439 -0.897811) + (xy 2.692972 -0.935837) (xy 2.691645 -0.969631) (xy 2.69054 -0.99699) (xy 2.689955 -1.01092) + (xy 2.688726 -1.040284) (xy 2.687327 -1.075111) (xy 2.685942 -1.110708) (xy 2.684922 -1.13792) + (xy 2.682943 -1.191903) (xy 2.681287 -1.23693) (xy 2.67991 -1.274197) (xy 2.678766 -1.3049) + (xy 2.677809 -1.330235) (xy 2.676995 -1.3514) (xy 2.676278 -1.369591) (xy 2.675613 -1.386004) + (xy 2.674954 -1.401835) (xy 2.674622 -1.4097) (xy 2.673558 -1.435711) (xy 2.672288 -1.4682) + (xy 2.670952 -1.503492) (xy 2.669693 -1.537908) (xy 2.669374 -1.54686) (xy 2.668212 -1.578537) + (xy 2.666974 -1.610348) (xy 2.665783 -1.63925) (xy 2.664763 -1.662203) (xy 2.664443 -1.66878) + (xy 2.663617 -1.686793) (xy 2.662549 -1.71257) (xy 2.661333 -1.743719) (xy 2.660061 -1.777851) + (xy 2.658828 -1.812575) (xy 2.658794 -1.81356) (xy 2.657647 -1.846058) (xy 2.656546 -1.875953) + (xy 2.655561 -1.901435) (xy 2.654762 -1.920696) (xy 2.65422 -1.931929) (xy 2.654156 -1.93294) + (xy 2.653579 -1.945267) (xy 2.652994 -1.964091) (xy 2.652511 -1.985747) (xy 2.652437 -1.99009) + (xy 2.65176 -2.032) (xy 2.005977 -2.032) (xy 2.008666 -2.01041) (xy 2.008941 -2.003284) + (xy 2.009238 -1.986483) (xy 2.009553 -1.960488) (xy 2.009883 -1.925782) (xy 2.010227 -1.88285) + (xy 2.010581 -1.832175) (xy 2.010943 -1.774239) (xy 2.01131 -1.709526) (xy 2.011681 -1.638519) + (xy 2.012052 -1.561702) (xy 2.01242 -1.479558) (xy 2.012784 -1.39257) (xy 2.013141 -1.301221) + (xy 2.013487 -1.205995) (xy 2.013822 -1.107375) (xy 2.014141 -1.005844) (xy 2.014372 -0.9271) + (xy 2.014679 -0.821238) (xy 2.014996 -0.716559) (xy 2.01532 -0.613642) (xy 2.015648 -0.513066) + (xy 2.015979 -0.415413) (xy 2.01631 -0.32126) (xy 2.016639 -0.231189) (xy 2.016963 -0.145778) + (xy 2.017281 -0.065608) (xy 2.01759 0.008742) (xy 2.017888 0.076693) (xy 2.018172 0.137664) + (xy 2.01844 0.191075) (xy 2.018691 0.236348) (xy 2.018921 0.272902) (xy 2.019128 0.300158) + (xy 2.019221 0.30988) (xy 2.019417 0.33284) (xy 2.019622 0.364328) (xy 2.019833 0.403498) + (xy 2.020047 0.449502) (xy 2.020263 0.501491) (xy 2.020479 0.558619) (xy 2.020692 0.620036) + (xy 2.020901 0.684896) (xy 2.021103 0.752351) (xy 2.021297 0.821552) (xy 2.02148 0.891653) + (xy 2.02165 0.961804) (xy 2.021806 1.031159) (xy 2.021945 1.098869) (xy 2.022065 1.164086) + (xy 2.022164 1.225964) (xy 2.02224 1.283654) (xy 2.022291 1.336308) (xy 2.022315 1.383078) + (xy 2.022309 1.423117) (xy 2.022273 1.455577) (xy 2.022203 1.47961) (xy 2.022098 1.494368) + (xy 2.022093 1.49479) (xy 2.02184 1.51384) (xy 1.50368 1.51384) (xy 1.50368 2.02692) + (xy 3.300889 2.02692) (xy 3.301653 1.770381)) (layer B.SilkS) (width 0.01)) ) (module Package_TO_SOT_SMD:SOT-223-3_TabPin2 (layer F.Cu) (tedit 5A02FF57) (tstamp 6091CC95) @@ -1193,19 +1335,19 @@ (fp_text value AMS1117-3.3 (at 0 4.5) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start 1.91 3.41) (end 1.91 2.15) (layer F.SilkS) (width 0.12)) - (fp_line (start 1.91 -3.41) (end 1.91 -2.15) (layer F.SilkS) (width 0.12)) - (fp_line (start 4.4 -3.6) (end -4.4 -3.6) (layer F.CrtYd) (width 0.05)) - (fp_line (start 4.4 3.6) (end 4.4 -3.6) (layer F.CrtYd) (width 0.05)) - (fp_line (start -4.4 3.6) (end 4.4 3.6) (layer F.CrtYd) (width 0.05)) - (fp_line (start -4.4 -3.6) (end -4.4 3.6) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.85 -2.35) (end -0.85 -3.35) (layer F.Fab) (width 0.1)) - (fp_line (start -1.85 -2.35) (end -1.85 3.35) (layer F.Fab) (width 0.1)) - (fp_line (start -1.85 3.41) (end 1.91 3.41) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.85 -3.35) (end 1.85 -3.35) (layer F.Fab) (width 0.1)) - (fp_line (start -4.1 -3.41) (end 1.91 -3.41) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.85 3.35) (end 1.85 3.35) (layer F.Fab) (width 0.1)) (fp_line (start 1.85 -3.35) (end 1.85 3.35) (layer F.Fab) (width 0.1)) + (fp_line (start -1.85 3.35) (end 1.85 3.35) (layer F.Fab) (width 0.1)) + (fp_line (start -4.1 -3.41) (end 1.91 -3.41) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.85 -3.35) (end 1.85 -3.35) (layer F.Fab) (width 0.1)) + (fp_line (start -1.85 3.41) (end 1.91 3.41) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.85 -2.35) (end -1.85 3.35) (layer F.Fab) (width 0.1)) + (fp_line (start -1.85 -2.35) (end -0.85 -3.35) (layer F.Fab) (width 0.1)) + (fp_line (start -4.4 -3.6) (end -4.4 3.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -4.4 3.6) (end 4.4 3.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 4.4 3.6) (end 4.4 -3.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 4.4 -3.6) (end -4.4 -3.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.91 -3.41) (end 1.91 -2.15) (layer F.SilkS) (width 0.12)) + (fp_line (start 1.91 3.41) (end 1.91 2.15) (layer F.SilkS) (width 0.12)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.8 0.8) (thickness 0.12))) ) @@ -1236,22 +1378,22 @@ (fp_text value CP2102-GMR (at 0 3.8 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start 1.885 -2.61) (end 2.61 -2.61) (layer F.SilkS) (width 0.12)) - (fp_line (start 2.61 -2.61) (end 2.61 -1.885) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.885 2.61) (end -2.61 2.61) (layer F.SilkS) (width 0.12)) - (fp_line (start -2.61 2.61) (end -2.61 1.885) (layer F.SilkS) (width 0.12)) - (fp_line (start 1.885 2.61) (end 2.61 2.61) (layer F.SilkS) (width 0.12)) - (fp_line (start 2.61 2.61) (end 2.61 1.885) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.885 -2.61) (end -2.61 -2.61) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.5 -2.5) (end 2.5 -2.5) (layer F.Fab) (width 0.1)) - (fp_line (start 2.5 -2.5) (end 2.5 2.5) (layer F.Fab) (width 0.1)) - (fp_line (start 2.5 2.5) (end -2.5 2.5) (layer F.Fab) (width 0.1)) - (fp_line (start -2.5 2.5) (end -2.5 -1.5) (layer F.Fab) (width 0.1)) - (fp_line (start -2.5 -1.5) (end -1.5 -2.5) (layer F.Fab) (width 0.1)) - (fp_line (start -3.1 -3.1) (end -3.1 3.1) (layer F.CrtYd) (width 0.05)) - (fp_line (start -3.1 3.1) (end 3.1 3.1) (layer F.CrtYd) (width 0.05)) - (fp_line (start 3.1 3.1) (end 3.1 -3.1) (layer F.CrtYd) (width 0.05)) (fp_line (start 3.1 -3.1) (end -3.1 -3.1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.1 3.1) (end 3.1 -3.1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.1 3.1) (end 3.1 3.1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.1 -3.1) (end -3.1 3.1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.5 -1.5) (end -1.5 -2.5) (layer F.Fab) (width 0.1)) + (fp_line (start -2.5 2.5) (end -2.5 -1.5) (layer F.Fab) (width 0.1)) + (fp_line (start 2.5 2.5) (end -2.5 2.5) (layer F.Fab) (width 0.1)) + (fp_line (start 2.5 -2.5) (end 2.5 2.5) (layer F.Fab) (width 0.1)) + (fp_line (start -1.5 -2.5) (end 2.5 -2.5) (layer F.Fab) (width 0.1)) + (fp_line (start -1.885 -2.61) (end -2.61 -2.61) (layer F.SilkS) (width 0.12)) + (fp_line (start 2.61 2.61) (end 2.61 1.885) (layer F.SilkS) (width 0.12)) + (fp_line (start 1.885 2.61) (end 2.61 2.61) (layer F.SilkS) (width 0.12)) + (fp_line (start -2.61 2.61) (end -2.61 1.885) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.885 2.61) (end -2.61 2.61) (layer F.SilkS) (width 0.12)) + (fp_line (start 2.61 -2.61) (end 2.61 -1.885) (layer F.SilkS) (width 0.12)) + (fp_line (start 1.885 -2.61) (end 2.61 -2.61) (layer F.SilkS) (width 0.12)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -1325,36 +1467,36 @@ (fp_text value ESP-12E (at -0.06 12.78 90) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) - (fp_line (start -8 12) (end 8 12) (layer B.Fab) (width 0.12)) - (fp_line (start 8 12) (end 8 -12) (layer B.Fab) (width 0.12)) - (fp_line (start 8 -12) (end -8 -12) (layer B.Fab) (width 0.12)) - (fp_line (start -8 -12) (end -8 3) (layer B.Fab) (width 0.12)) - (fp_line (start -8 3) (end -7.5 3.5) (layer B.Fab) (width 0.12)) - (fp_line (start -7.5 3.5) (end -8 4) (layer B.Fab) (width 0.12)) - (fp_line (start -8 4) (end -8 12) (layer B.Fab) (width 0.12)) - (fp_line (start -9.05 12.2) (end 9.05 12.2) (layer B.CrtYd) (width 0.05)) - (fp_line (start 9.05 12.2) (end 9.05 -13.1) (layer B.CrtYd) (width 0.05)) - (fp_line (start 9.05 -13.1) (end -9.05 -13.1) (layer B.CrtYd) (width 0.05)) - (fp_line (start -9.05 -13.1) (end -9.05 12.2) (layer B.CrtYd) (width 0.05)) - (fp_line (start -8.12 12.12) (end 8.12 12.12) (layer B.SilkS) (width 0.12)) - (fp_line (start 8.12 12.12) (end 8.12 4.5) (layer B.SilkS) (width 0.12)) - (fp_line (start 8.12 -11.5) (end 8.12 -12.12) (layer B.SilkS) (width 0.12)) - (fp_line (start 8.12 -12.12) (end 6 -12.12) (layer B.SilkS) (width 0.12)) - (fp_line (start -6 -12.12) (end -8.12 -12.12) (layer B.SilkS) (width 0.12)) - (fp_line (start -8.12 -12.12) (end -8.12 -11.5) (layer B.SilkS) (width 0.12)) - (fp_line (start -8.12 4.5) (end -8.12 12.12) (layer B.SilkS) (width 0.12)) - (fp_line (start -8.12 4.5) (end -8.73 4.5) (layer B.SilkS) (width 0.12)) - (fp_line (start -8.12 12.12) (end 8.12 12.12) (layer Dwgs.User) (width 0.12)) - (fp_line (start 8.12 12.12) (end 8.12 4.8) (layer Dwgs.User) (width 0.12)) - (fp_line (start 8.12 4.8) (end -8.12 4.8) (layer Dwgs.User) (width 0.12)) - (fp_line (start -8.12 4.8) (end -8.12 12.12) (layer Dwgs.User) (width 0.12)) - (fp_line (start -8.12 9.12) (end -5.12 12.12) (layer Dwgs.User) (width 0.12)) - (fp_line (start -8.12 6.12) (end -2.12 12.12) (layer Dwgs.User) (width 0.12)) - (fp_line (start -6.44 4.8) (end 0.88 12.12) (layer Dwgs.User) (width 0.12)) - (fp_line (start -3.44 4.8) (end 3.88 12.12) (layer Dwgs.User) (width 0.12)) - (fp_line (start -0.44 4.8) (end 6.88 12.12) (layer Dwgs.User) (width 0.12)) - (fp_line (start 2.56 4.8) (end 8.12 10.36) (layer Dwgs.User) (width 0.12)) (fp_line (start 5.56 4.8) (end 8.12 7.36) (layer Dwgs.User) (width 0.12)) + (fp_line (start 2.56 4.8) (end 8.12 10.36) (layer Dwgs.User) (width 0.12)) + (fp_line (start -0.44 4.8) (end 6.88 12.12) (layer Dwgs.User) (width 0.12)) + (fp_line (start -3.44 4.8) (end 3.88 12.12) (layer Dwgs.User) (width 0.12)) + (fp_line (start -6.44 4.8) (end 0.88 12.12) (layer Dwgs.User) (width 0.12)) + (fp_line (start -8.12 6.12) (end -2.12 12.12) (layer Dwgs.User) (width 0.12)) + (fp_line (start -8.12 9.12) (end -5.12 12.12) (layer Dwgs.User) (width 0.12)) + (fp_line (start -8.12 4.8) (end -8.12 12.12) (layer Dwgs.User) (width 0.12)) + (fp_line (start 8.12 4.8) (end -8.12 4.8) (layer Dwgs.User) (width 0.12)) + (fp_line (start 8.12 12.12) (end 8.12 4.8) (layer Dwgs.User) (width 0.12)) + (fp_line (start -8.12 12.12) (end 8.12 12.12) (layer Dwgs.User) (width 0.12)) + (fp_line (start -8.12 4.5) (end -8.73 4.5) (layer B.SilkS) (width 0.12)) + (fp_line (start -8.12 4.5) (end -8.12 12.12) (layer B.SilkS) (width 0.12)) + (fp_line (start -8.12 -12.12) (end -8.12 -11.5) (layer B.SilkS) (width 0.12)) + (fp_line (start -6 -12.12) (end -8.12 -12.12) (layer B.SilkS) (width 0.12)) + (fp_line (start 8.12 -12.12) (end 6 -12.12) (layer B.SilkS) (width 0.12)) + (fp_line (start 8.12 -11.5) (end 8.12 -12.12) (layer B.SilkS) (width 0.12)) + (fp_line (start 8.12 12.12) (end 8.12 4.5) (layer B.SilkS) (width 0.12)) + (fp_line (start -8.12 12.12) (end 8.12 12.12) (layer B.SilkS) (width 0.12)) + (fp_line (start -9.05 -13.1) (end -9.05 12.2) (layer B.CrtYd) (width 0.05)) + (fp_line (start 9.05 -13.1) (end -9.05 -13.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start 9.05 12.2) (end 9.05 -13.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -9.05 12.2) (end 9.05 12.2) (layer B.CrtYd) (width 0.05)) + (fp_line (start -8 4) (end -8 12) (layer B.Fab) (width 0.12)) + (fp_line (start -7.5 3.5) (end -8 4) (layer B.Fab) (width 0.12)) + (fp_line (start -8 3) (end -7.5 3.5) (layer B.Fab) (width 0.12)) + (fp_line (start -8 -12) (end -8 3) (layer B.Fab) (width 0.12)) + (fp_line (start 8 -12) (end -8 -12) (layer B.Fab) (width 0.12)) + (fp_line (start 8 12) (end 8 -12) (layer B.Fab) (width 0.12)) + (fp_line (start -8 12) (end 8 12) (layer B.Fab) (width 0.12)) (fp_text user %R (at 0.49 0.8 90) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) @@ -1419,16 +1561,16 @@ (fp_text value 1kOhm (at 0 1.43) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (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.06))) ) @@ -1455,16 +1597,16 @@ (fp_text value 12kOhm (at 0 1.43) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (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.06))) ) @@ -1491,16 +1633,16 @@ (fp_text value 51Ohm (at 0 1.43) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (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.06))) ) @@ -1527,16 +1669,16 @@ (fp_text value 51Ohm (at 0 1.43) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (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.06))) ) @@ -1563,16 +1705,16 @@ (fp_text value 51Ohm (at 0 1.43) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (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.06))) ) @@ -1599,16 +1741,16 @@ (fp_text value 470Ohm (at 0 1.43 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.4 0.4) (thickness 0.06))) ) @@ -1635,16 +1777,16 @@ (fp_text value 51Ohm (at 0 1.43 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.4 0.4) (thickness 0.06))) ) @@ -1671,16 +1813,16 @@ (fp_text value 470Ohm (at 0 1.43) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (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.06))) ) @@ -1707,16 +1849,16 @@ (fp_text value 51Ohm (at 0 1.43 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.4 0.4) (thickness 0.06))) ) @@ -1743,16 +1885,16 @@ (fp_text value 12kOhm (at 0 1.43) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (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.06))) ) @@ -1779,16 +1921,16 @@ (fp_text value 12kOhm (at 0 1.43) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (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.06))) ) @@ -1815,16 +1957,16 @@ (fp_text value 12kOhm (at 0 1.43) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (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.06))) ) @@ -1851,16 +1993,16 @@ (fp_text value 12kOhm (at 0 1.43 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.4 0.4) (thickness 0.06))) ) @@ -1887,16 +2029,16 @@ (fp_text value 12kOhm (at 0 1.43 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.4 0.4) (thickness 0.06))) ) @@ -1923,16 +2065,16 @@ (fp_text value 12kOhm (at 0 1.43) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (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.06))) ) @@ -1959,16 +2101,16 @@ (fp_text value 12kOhm (at 0 1.43) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) - (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.237258 0.5225) (end 0.237258 0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.237258 -0.5225) (end 0.237258 -0.5225) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4125) (end -0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4125) (end 0.8 0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4125) (end 0.8 -0.4125) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4125) (end -0.8 -0.4125) (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.06))) ) @@ -1983,50 +2125,6 @@ ) ) - (module TerminalBlock:TerminalBlock_bornier-2_P5.08mm locked (layer B.Cu) (tedit 59FF03AB) (tstamp 60AE33DA) - (at 55.88 71.12 180) - (descr "simple 2-pin terminal block, pitch 5.08mm, revamped version of bornier2") - (tags "terminal block bornier2") - (path /6078273A/6092962E) - (fp_text reference J12 (at 2.54 5.08) (layer B.SilkS) hide - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text value Conn_01x02_Male (at 2.54 -5.08) (layer B.Fab) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_line (start -2.41 -2.55) (end 7.49 -2.55) (layer B.Fab) (width 0.1)) - (fp_line (start -2.46 3.75) (end -2.46 -3.75) (layer B.Fab) (width 0.1)) - (fp_line (start -2.46 -3.75) (end 7.54 -3.75) (layer B.Fab) (width 0.1)) - (fp_line (start 7.54 -3.75) (end 7.54 3.75) (layer B.Fab) (width 0.1)) - (fp_line (start 7.54 3.75) (end -2.46 3.75) (layer B.Fab) (width 0.1)) - (fp_line (start 7.62 -2.54) (end -2.54 -2.54) (layer B.SilkS) (width 0.12)) - (fp_line (start 7.62 -3.81) (end 7.62 3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start 7.62 3.81) (end -2.54 3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start -2.54 3.81) (end -2.54 -3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start -2.54 -3.81) (end 7.62 -3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start -2.71 4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) - (fp_line (start -2.71 4) (end -2.71 -4) (layer B.CrtYd) (width 0.05)) - (fp_line (start 7.79 -4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) - (fp_line (start 7.79 -4) (end -2.71 -4) (layer B.CrtYd) (width 0.05)) - (fp_text user %R (at 2.54 0) (layer B.Fab) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (pad 2 thru_hole circle (at 5.08 0 180) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) - (net 10 +12V)) - (pad 1 thru_hole rect (at 0 0 180) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) - (net 1 GND)) - (model ${KISYS3DMOD}/TerminalBlock.3dshapes/TerminalBlock_bornier-2_P5.08mm.wrl - (offset (xyz 2.539999961853027 0 0)) - (scale (xyz 1 1 1)) - (rotate (xyz 0 0 0)) - ) - (model ${KISYS3DMOD}/TerminalBlock_Phoenix.3dshapes/TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal.step - (at (xyz 0 0 0)) - (scale (xyz 1 1 1)) - (rotate (xyz 0 0 0)) - ) - ) - (module TestPoint:TestPoint_Pad_D2.0mm (layer F.Cu) (tedit 5A0F774F) (tstamp 6091B2ED) (at 68.58 66.04) (descr "SMD pad as test Point, diameter 2.0mm") @@ -2039,8 +2137,8 @@ (fp_text value Testpoint_LDO_IN (at 0 2.05) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) + (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) (fp_text user %R (at 0 -2) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -2060,8 +2158,8 @@ (fp_text value Testpoint_GND (at 0 2.05) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) + (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) (fp_text user %R (at 0 -2) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -2081,8 +2179,8 @@ (fp_text value Testpoint_3V3 (at 0 2.05) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) + (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) (fp_text user %R (at 0 -2) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -2101,21 +2199,21 @@ (fp_text value Conn_01x02_Male (at 0 -4.87 90) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) - (fp_line (start -0.635 1.27) (end 1.27 1.27) (layer B.Fab) (width 0.1)) - (fp_line (start 1.27 1.27) (end 1.27 -3.81) (layer B.Fab) (width 0.1)) - (fp_line (start 1.27 -3.81) (end -1.27 -3.81) (layer B.Fab) (width 0.1)) - (fp_line (start -1.27 -3.81) (end -1.27 0.635) (layer B.Fab) (width 0.1)) - (fp_line (start -1.27 0.635) (end -0.635 1.27) (layer B.Fab) (width 0.1)) - (fp_line (start -1.33 -3.87) (end 1.33 -3.87) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.33 -1.27) (end -1.33 -3.87) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.33 -1.27) (end 1.33 -3.87) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.33 -1.27) (end 1.33 -1.27) (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 -4.35) (layer B.CrtYd) (width 0.05)) - (fp_line (start -1.8 -4.35) (end 1.8 -4.35) (layer B.CrtYd) (width 0.05)) - (fp_line (start 1.8 -4.35) (end 1.8 1.8) (layer B.CrtYd) (width 0.05)) (fp_line (start 1.8 1.8) (end -1.8 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.8 -4.35) (end 1.8 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.8 -4.35) (end 1.8 -4.35) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.8 1.8) (end -1.8 -4.35) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.33 1.33) (end 0 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.27) (end 1.33 -1.27) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.33 -1.27) (end 1.33 -3.87) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end -1.33 -3.87) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -3.87) (end 1.33 -3.87) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.27 0.635) (end -0.635 1.27) (layer B.Fab) (width 0.1)) + (fp_line (start -1.27 -3.81) (end -1.27 0.635) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 -3.81) (end -1.27 -3.81) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 1.27) (end 1.27 -3.81) (layer B.Fab) (width 0.1)) + (fp_line (start -0.635 1.27) (end 1.27 1.27) (layer B.Fab) (width 0.1)) (fp_text user %R (at 0 -1.27 180) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) @@ -2142,8 +2240,8 @@ (fp_text value Testpoint_ADC (at 0 2.05) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) + (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) (fp_text user %R (at 0 -2) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -2163,8 +2261,8 @@ (fp_text value Testpoint_RST (at 0 2.05) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) (fp_circle (center 0 0) (end 0 1.2) (layer F.SilkS) (width 0.12)) + (fp_circle (center 0 0) (end 1.5 0) (layer F.CrtYd) (width 0.05)) (fp_text user %R (at 0 -2) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -2183,62 +2281,62 @@ (fp_text value Conn_01x03_Male (at 4.385 -7.35 90) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) - (fp_line (start 2.135 1.27) (end 4.04 1.27) (layer B.Fab) (width 0.1)) - (fp_line (start 4.04 1.27) (end 4.04 -6.35) (layer B.Fab) (width 0.1)) - (fp_line (start 4.04 -6.35) (end 1.5 -6.35) (layer B.Fab) (width 0.1)) - (fp_line (start 1.5 -6.35) (end 1.5 0.635) (layer B.Fab) (width 0.1)) - (fp_line (start 1.5 0.635) (end 2.135 1.27) (layer B.Fab) (width 0.1)) - (fp_line (start -0.32 0.32) (end 1.5 0.32) (layer B.Fab) (width 0.1)) - (fp_line (start -0.32 0.32) (end -0.32 -0.32) (layer B.Fab) (width 0.1)) - (fp_line (start -0.32 -0.32) (end 1.5 -0.32) (layer B.Fab) (width 0.1)) - (fp_line (start 4.04 0.32) (end 10.04 0.32) (layer B.Fab) (width 0.1)) - (fp_line (start 10.04 0.32) (end 10.04 -0.32) (layer B.Fab) (width 0.1)) - (fp_line (start 4.04 -0.32) (end 10.04 -0.32) (layer B.Fab) (width 0.1)) - (fp_line (start -0.32 -2.22) (end 1.5 -2.22) (layer B.Fab) (width 0.1)) - (fp_line (start -0.32 -2.22) (end -0.32 -2.86) (layer B.Fab) (width 0.1)) - (fp_line (start -0.32 -2.86) (end 1.5 -2.86) (layer B.Fab) (width 0.1)) - (fp_line (start 4.04 -2.22) (end 10.04 -2.22) (layer B.Fab) (width 0.1)) - (fp_line (start 10.04 -2.22) (end 10.04 -2.86) (layer B.Fab) (width 0.1)) - (fp_line (start 4.04 -2.86) (end 10.04 -2.86) (layer B.Fab) (width 0.1)) - (fp_line (start -0.32 -4.76) (end 1.5 -4.76) (layer B.Fab) (width 0.1)) - (fp_line (start -0.32 -4.76) (end -0.32 -5.4) (layer B.Fab) (width 0.1)) - (fp_line (start -0.32 -5.4) (end 1.5 -5.4) (layer B.Fab) (width 0.1)) - (fp_line (start 4.04 -4.76) (end 10.04 -4.76) (layer B.Fab) (width 0.1)) - (fp_line (start 10.04 -4.76) (end 10.04 -5.4) (layer B.Fab) (width 0.1)) - (fp_line (start 4.04 -5.4) (end 10.04 -5.4) (layer B.Fab) (width 0.1)) - (fp_line (start 1.44 1.33) (end 1.44 -6.41) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.44 -6.41) (end 4.1 -6.41) (layer B.SilkS) (width 0.12)) - (fp_line (start 4.1 -6.41) (end 4.1 1.33) (layer B.SilkS) (width 0.12)) - (fp_line (start 4.1 1.33) (end 1.44 1.33) (layer B.SilkS) (width 0.12)) - (fp_line (start 4.1 0.38) (end 10.1 0.38) (layer B.SilkS) (width 0.12)) - (fp_line (start 10.1 0.38) (end 10.1 -0.38) (layer B.SilkS) (width 0.12)) - (fp_line (start 10.1 -0.38) (end 4.1 -0.38) (layer B.SilkS) (width 0.12)) - (fp_line (start 4.1 0.32) (end 10.1 0.32) (layer B.SilkS) (width 0.12)) - (fp_line (start 4.1 0.2) (end 10.1 0.2) (layer B.SilkS) (width 0.12)) - (fp_line (start 4.1 0.08) (end 10.1 0.08) (layer B.SilkS) (width 0.12)) - (fp_line (start 4.1 -0.04) (end 10.1 -0.04) (layer B.SilkS) (width 0.12)) - (fp_line (start 4.1 -0.16) (end 10.1 -0.16) (layer B.SilkS) (width 0.12)) - (fp_line (start 4.1 -0.28) (end 10.1 -0.28) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.11 0.38) (end 1.44 0.38) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.11 -0.38) (end 1.44 -0.38) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.44 -1.27) (end 4.1 -1.27) (layer B.SilkS) (width 0.12)) - (fp_line (start 4.1 -2.16) (end 10.1 -2.16) (layer B.SilkS) (width 0.12)) - (fp_line (start 10.1 -2.16) (end 10.1 -2.92) (layer B.SilkS) (width 0.12)) - (fp_line (start 10.1 -2.92) (end 4.1 -2.92) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.042929 -2.16) (end 1.44 -2.16) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.042929 -2.92) (end 1.44 -2.92) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.44 -3.81) (end 4.1 -3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start 4.1 -4.7) (end 10.1 -4.7) (layer B.SilkS) (width 0.12)) - (fp_line (start 10.1 -4.7) (end 10.1 -5.46) (layer B.SilkS) (width 0.12)) - (fp_line (start 10.1 -5.46) (end 4.1 -5.46) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.042929 -4.7) (end 1.44 -4.7) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.042929 -5.46) (end 1.44 -5.46) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.27 0) (end -1.27 1.27) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.27 1.27) (end 0 1.27) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.8 1.8) (end -1.8 -6.85) (layer B.CrtYd) (width 0.05)) - (fp_line (start -1.8 -6.85) (end 10.55 -6.85) (layer B.CrtYd) (width 0.05)) - (fp_line (start 10.55 -6.85) (end 10.55 1.8) (layer B.CrtYd) (width 0.05)) (fp_line (start 10.55 1.8) (end -1.8 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 10.55 -6.85) (end 10.55 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.8 -6.85) (end 10.55 -6.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.8 1.8) (end -1.8 -6.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.27 1.27) (end 0 1.27) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.27 0) (end -1.27 1.27) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.042929 -5.46) (end 1.44 -5.46) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.042929 -4.7) (end 1.44 -4.7) (layer B.SilkS) (width 0.12)) + (fp_line (start 10.1 -5.46) (end 4.1 -5.46) (layer B.SilkS) (width 0.12)) + (fp_line (start 10.1 -4.7) (end 10.1 -5.46) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.1 -4.7) (end 10.1 -4.7) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.44 -3.81) (end 4.1 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.042929 -2.92) (end 1.44 -2.92) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.042929 -2.16) (end 1.44 -2.16) (layer B.SilkS) (width 0.12)) + (fp_line (start 10.1 -2.92) (end 4.1 -2.92) (layer B.SilkS) (width 0.12)) + (fp_line (start 10.1 -2.16) (end 10.1 -2.92) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.1 -2.16) (end 10.1 -2.16) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.44 -1.27) (end 4.1 -1.27) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.11 -0.38) (end 1.44 -0.38) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.11 0.38) (end 1.44 0.38) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.1 -0.28) (end 10.1 -0.28) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.1 -0.16) (end 10.1 -0.16) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.1 -0.04) (end 10.1 -0.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.1 0.08) (end 10.1 0.08) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.1 0.2) (end 10.1 0.2) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.1 0.32) (end 10.1 0.32) (layer B.SilkS) (width 0.12)) + (fp_line (start 10.1 -0.38) (end 4.1 -0.38) (layer B.SilkS) (width 0.12)) + (fp_line (start 10.1 0.38) (end 10.1 -0.38) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.1 0.38) (end 10.1 0.38) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.1 1.33) (end 1.44 1.33) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.1 -6.41) (end 4.1 1.33) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.44 -6.41) (end 4.1 -6.41) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.44 1.33) (end 1.44 -6.41) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.04 -5.4) (end 10.04 -5.4) (layer B.Fab) (width 0.1)) + (fp_line (start 10.04 -4.76) (end 10.04 -5.4) (layer B.Fab) (width 0.1)) + (fp_line (start 4.04 -4.76) (end 10.04 -4.76) (layer B.Fab) (width 0.1)) + (fp_line (start -0.32 -5.4) (end 1.5 -5.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.32 -4.76) (end -0.32 -5.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.32 -4.76) (end 1.5 -4.76) (layer B.Fab) (width 0.1)) + (fp_line (start 4.04 -2.86) (end 10.04 -2.86) (layer B.Fab) (width 0.1)) + (fp_line (start 10.04 -2.22) (end 10.04 -2.86) (layer B.Fab) (width 0.1)) + (fp_line (start 4.04 -2.22) (end 10.04 -2.22) (layer B.Fab) (width 0.1)) + (fp_line (start -0.32 -2.86) (end 1.5 -2.86) (layer B.Fab) (width 0.1)) + (fp_line (start -0.32 -2.22) (end -0.32 -2.86) (layer B.Fab) (width 0.1)) + (fp_line (start -0.32 -2.22) (end 1.5 -2.22) (layer B.Fab) (width 0.1)) + (fp_line (start 4.04 -0.32) (end 10.04 -0.32) (layer B.Fab) (width 0.1)) + (fp_line (start 10.04 0.32) (end 10.04 -0.32) (layer B.Fab) (width 0.1)) + (fp_line (start 4.04 0.32) (end 10.04 0.32) (layer B.Fab) (width 0.1)) + (fp_line (start -0.32 -0.32) (end 1.5 -0.32) (layer B.Fab) (width 0.1)) + (fp_line (start -0.32 0.32) (end -0.32 -0.32) (layer B.Fab) (width 0.1)) + (fp_line (start -0.32 0.32) (end 1.5 0.32) (layer B.Fab) (width 0.1)) + (fp_line (start 1.5 0.635) (end 2.135 1.27) (layer B.Fab) (width 0.1)) + (fp_line (start 1.5 -6.35) (end 1.5 0.635) (layer B.Fab) (width 0.1)) + (fp_line (start 4.04 -6.35) (end 1.5 -6.35) (layer B.Fab) (width 0.1)) + (fp_line (start 4.04 1.27) (end 4.04 -6.35) (layer B.Fab) (width 0.1)) + (fp_line (start 2.135 1.27) (end 4.04 1.27) (layer B.Fab) (width 0.1)) (fp_text user %R (at 2.77 -2.54 180) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) @@ -2255,55 +2353,6 @@ ) ) - (module TerminalBlock:TerminalBlock_bornier-4_P5.08mm locked (layer B.Cu) (tedit 59FF03D1) (tstamp 6091B26F) - (at 35.56 48.26 90) - (descr "simple 4-pin terminal block, pitch 5.08mm, revamped version of bornier4") - (tags "terminal block bornier4") - (path /608BFA99) - (fp_text reference J4 (at 7.6 4.8 90) (layer B.SilkS) hide - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text value Conn_01x04_Male (at 7.6 -4.75 90) (layer B.Fab) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_line (start -2.48 -2.55) (end 17.72 -2.55) (layer B.Fab) (width 0.1)) - (fp_line (start -2.43 -3.75) (end -2.48 -3.75) (layer B.Fab) (width 0.1)) - (fp_line (start -2.48 -3.75) (end -2.48 3.75) (layer B.Fab) (width 0.1)) - (fp_line (start -2.48 3.75) (end 17.72 3.75) (layer B.Fab) (width 0.1)) - (fp_line (start 17.72 3.75) (end 17.72 -3.75) (layer B.Fab) (width 0.1)) - (fp_line (start 17.72 -3.75) (end -2.43 -3.75) (layer B.Fab) (width 0.1)) - (fp_line (start -2.54 3.81) (end -2.54 -3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start 17.78 -3.81) (end 17.78 3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start 17.78 -2.54) (end -2.54 -2.54) (layer B.SilkS) (width 0.12)) - (fp_line (start -2.54 3.81) (end 17.78 3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start -2.54 -3.81) (end 17.78 -3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start -2.73 4) (end 17.97 4) (layer B.CrtYd) (width 0.05)) - (fp_line (start -2.73 4) (end -2.73 -4) (layer B.CrtYd) (width 0.05)) - (fp_line (start 17.97 -4) (end 17.97 4) (layer B.CrtYd) (width 0.05)) - (fp_line (start 17.97 -4) (end -2.73 -4) (layer B.CrtYd) (width 0.05)) - (fp_text user %R (at 7.62 0 90) (layer B.Fab) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (pad 4 thru_hole circle (at 15.24 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) - (net 13 VOUT)) - (pad 1 thru_hole rect (at 0 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) - (net 1 GND)) - (pad 3 thru_hole circle (at 10.16 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) - (net 16 SCLK)) - (pad 2 thru_hole circle (at 5.08 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) - (net 17 MOSI)) - (model ${KISYS3DMOD}/TerminalBlock.3dshapes/TerminalBlock_bornier-4_P5.08mm.wrl - (offset (xyz 7.619999885559082 0 0)) - (scale (xyz 1 1 1)) - (rotate (xyz 0 0 0)) - ) - (model ${KISYS3DMOD}/TerminalBlock_Phoenix.3dshapes/TerminalBlock_Phoenix_MKDS-1,5-4-5.08_1x04_P5.08mm_Horizontal.step - (at (xyz 0 0 0)) - (scale (xyz 1 1 1)) - (rotate (xyz 0 0 0)) - ) - ) - (module TerminalBlock:TerminalBlock_bornier-2_P5.08mm locked (layer B.Cu) (tedit 59FF03AB) (tstamp 6091B257) (at 66.04 71.12 180) (descr "simple 2-pin terminal block, pitch 5.08mm, revamped version of bornier2") @@ -2315,20 +2364,20 @@ (fp_text value Conn_01x02_Male (at 2.54 -5.08) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) - (fp_line (start -2.41 -2.55) (end 7.49 -2.55) (layer B.Fab) (width 0.1)) - (fp_line (start -2.46 3.75) (end -2.46 -3.75) (layer B.Fab) (width 0.1)) - (fp_line (start -2.46 -3.75) (end 7.54 -3.75) (layer B.Fab) (width 0.1)) - (fp_line (start 7.54 -3.75) (end 7.54 3.75) (layer B.Fab) (width 0.1)) - (fp_line (start 7.54 3.75) (end -2.46 3.75) (layer B.Fab) (width 0.1)) - (fp_line (start 7.62 -2.54) (end -2.54 -2.54) (layer B.SilkS) (width 0.12)) - (fp_line (start 7.62 -3.81) (end 7.62 3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start 7.62 3.81) (end -2.54 3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start -2.54 3.81) (end -2.54 -3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start -2.54 -3.81) (end 7.62 -3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start -2.71 4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) - (fp_line (start -2.71 4) (end -2.71 -4) (layer B.CrtYd) (width 0.05)) - (fp_line (start 7.79 -4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) (fp_line (start 7.79 -4) (end -2.71 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 7.79 -4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.71 4) (end -2.71 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.71 4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.54 -3.81) (end 7.62 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 3.81) (end -2.54 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 3.81) (end -2.54 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 -3.81) (end 7.62 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 -2.54) (end -2.54 -2.54) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.54 3.75) (end -2.46 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 -3.75) (end 7.54 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 -3.75) (end 7.54 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 3.75) (end -2.46 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.41 -2.55) (end 7.49 -2.55) (layer B.Fab) (width 0.1)) (fp_text user %R (at 2.54 0) (layer B.Fab) (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) ) @@ -2348,55 +2397,6 @@ ) ) - (module TerminalBlock:TerminalBlock_bornier-4_P5.08mm locked (layer B.Cu) (tedit 59FF03D1) (tstamp 6091B242) - (at 35.56 68.58 90) - (descr "simple 4-pin terminal block, pitch 5.08mm, revamped version of bornier4") - (tags "terminal block bornier4") - (path /60B13D6D) - (fp_text reference J2 (at 7.6 4.8 90) (layer B.SilkS) hide - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text value Conn_01x04_Male (at 7.6 -4.75 90) (layer B.Fab) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_line (start -2.48 -2.55) (end 17.72 -2.55) (layer B.Fab) (width 0.1)) - (fp_line (start -2.43 -3.75) (end -2.48 -3.75) (layer B.Fab) (width 0.1)) - (fp_line (start -2.48 -3.75) (end -2.48 3.75) (layer B.Fab) (width 0.1)) - (fp_line (start -2.48 3.75) (end 17.72 3.75) (layer B.Fab) (width 0.1)) - (fp_line (start 17.72 3.75) (end 17.72 -3.75) (layer B.Fab) (width 0.1)) - (fp_line (start 17.72 -3.75) (end -2.43 -3.75) (layer B.Fab) (width 0.1)) - (fp_line (start -2.54 3.81) (end -2.54 -3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start 17.78 -3.81) (end 17.78 3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start 17.78 -2.54) (end -2.54 -2.54) (layer B.SilkS) (width 0.12)) - (fp_line (start -2.54 3.81) (end 17.78 3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start -2.54 -3.81) (end 17.78 -3.81) (layer B.SilkS) (width 0.12)) - (fp_line (start -2.73 4) (end 17.97 4) (layer B.CrtYd) (width 0.05)) - (fp_line (start -2.73 4) (end -2.73 -4) (layer B.CrtYd) (width 0.05)) - (fp_line (start 17.97 -4) (end 17.97 4) (layer B.CrtYd) (width 0.05)) - (fp_line (start 17.97 -4) (end -2.73 -4) (layer B.CrtYd) (width 0.05)) - (fp_text user %R (at 7.62 0 90) (layer B.Fab) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (pad 4 thru_hole circle (at 15.24 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) - (net 13 VOUT)) - (pad 1 thru_hole rect (at 0 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) - (net 1 GND)) - (pad 3 thru_hole circle (at 10.16 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) - (net 14 TXD0)) - (pad 2 thru_hole circle (at 5.08 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) - (net 15 RXD0)) - (model ${KISYS3DMOD}/TerminalBlock.3dshapes/TerminalBlock_bornier-4_P5.08mm.wrl - (offset (xyz 7.619999885559082 0 0)) - (scale (xyz 1 1 1)) - (rotate (xyz 0 0 0)) - ) - (model ${KISYS3DMOD}/TerminalBlock_Phoenix.3dshapes/TerminalBlock_Phoenix_MKDS-1,5-4-5.08_1x04_P5.08mm_Horizontal.step - (at (xyz 0 0 0)) - (scale (xyz 1 1 1)) - (rotate (xyz 0 0 0)) - ) - ) - (module MountingHole:MountingHole_2.2mm_M2_Pad_Via locked (layer F.Cu) (tedit 56DDB9C7) (tstamp 6091B216) (at 75 71) (descr "Mounting Hole 2.2mm, M2") @@ -2409,8 +2409,8 @@ (fp_text value MountingHole_Pad (at 0 3.2) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 2.2 0) (layer Cmts.User) (width 0.15)) (fp_circle (center 0 0) (end 2.45 0) (layer F.CrtYd) (width 0.05)) + (fp_circle (center 0 0) (end 2.2 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))) ) @@ -2446,8 +2446,8 @@ (fp_text value MountingHole_Pad (at 0 3.2) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 2.2 0) (layer Cmts.User) (width 0.15)) (fp_circle (center 0 0) (end 2.45 0) (layer F.CrtYd) (width 0.05)) + (fp_circle (center 0 0) (end 2.2 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))) ) @@ -2483,8 +2483,8 @@ (fp_text value MountingHole_Pad (at 0 3.2) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 2.2 0) (layer Cmts.User) (width 0.15)) (fp_circle (center 0 0) (end 2.45 0) (layer F.CrtYd) (width 0.05)) + (fp_circle (center 0 0) (end 2.2 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))) ) @@ -2520,8 +2520,8 @@ (fp_text value MountingHole_Pad (at 0 3.2) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_circle (center 0 0) (end 2.2 0) (layer Cmts.User) (width 0.15)) (fp_circle (center 0 0) (end 2.45 0) (layer F.CrtYd) (width 0.05)) + (fp_circle (center 0 0) (end 2.2 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))) ) @@ -2557,23 +2557,23 @@ (fp_text value SS14 (at 0 2.6) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -3.4 -1.65) (end -3.4 1.65) (layer F.SilkS) (width 0.12)) - (fp_line (start 2.3 1.5) (end -2.3 1.5) (layer F.Fab) (width 0.1)) - (fp_line (start -2.3 1.5) (end -2.3 -1.5) (layer F.Fab) (width 0.1)) - (fp_line (start 2.3 -1.5) (end 2.3 1.5) (layer F.Fab) (width 0.1)) - (fp_line (start 2.3 -1.5) (end -2.3 -1.5) (layer F.Fab) (width 0.1)) - (fp_line (start -3.5 -1.75) (end 3.5 -1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start 3.5 -1.75) (end 3.5 1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start 3.5 1.75) (end -3.5 1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start -3.5 1.75) (end -3.5 -1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start -0.64944 0.00102) (end -1.55114 0.00102) (layer F.Fab) (width 0.1)) - (fp_line (start 0.50118 0.00102) (end 1.4994 0.00102) (layer F.Fab) (width 0.1)) - (fp_line (start -0.64944 -0.79908) (end -0.64944 0.80112) (layer F.Fab) (width 0.1)) - (fp_line (start 0.50118 0.75032) (end 0.50118 -0.79908) (layer F.Fab) (width 0.1)) - (fp_line (start -0.64944 0.00102) (end 0.50118 0.75032) (layer F.Fab) (width 0.1)) - (fp_line (start -0.64944 0.00102) (end 0.50118 -0.79908) (layer F.Fab) (width 0.1)) - (fp_line (start -3.4 1.65) (end 2 1.65) (layer F.SilkS) (width 0.12)) (fp_line (start -3.4 -1.65) (end 2 -1.65) (layer F.SilkS) (width 0.12)) + (fp_line (start -3.4 1.65) (end 2 1.65) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.64944 0.00102) (end 0.50118 -0.79908) (layer F.Fab) (width 0.1)) + (fp_line (start -0.64944 0.00102) (end 0.50118 0.75032) (layer F.Fab) (width 0.1)) + (fp_line (start 0.50118 0.75032) (end 0.50118 -0.79908) (layer F.Fab) (width 0.1)) + (fp_line (start -0.64944 -0.79908) (end -0.64944 0.80112) (layer F.Fab) (width 0.1)) + (fp_line (start 0.50118 0.00102) (end 1.4994 0.00102) (layer F.Fab) (width 0.1)) + (fp_line (start -0.64944 0.00102) (end -1.55114 0.00102) (layer F.Fab) (width 0.1)) + (fp_line (start -3.5 1.75) (end -3.5 -1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.5 1.75) (end -3.5 1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.5 -1.75) (end 3.5 1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.5 -1.75) (end 3.5 -1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1.5) (end -2.3 -1.5) (layer F.Fab) (width 0.1)) + (fp_line (start 2.3 -1.5) (end 2.3 1.5) (layer F.Fab) (width 0.1)) + (fp_line (start -2.3 1.5) (end -2.3 -1.5) (layer F.Fab) (width 0.1)) + (fp_line (start 2.3 1.5) (end -2.3 1.5) (layer F.Fab) (width 0.1)) + (fp_line (start -3.4 -1.65) (end -3.4 1.65) (layer F.SilkS) (width 0.12)) (fp_text user %R (at 0 -2.5) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -2600,18 +2600,18 @@ (fp_text value RED (at 0 1.43) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start 0.8 -0.4) (end -0.5 -0.4) (layer F.Fab) (width 0.1)) - (fp_line (start -0.5 -0.4) (end -0.8 -0.1) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.1) (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.735) (end -1.485 -0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.485 -0.735) (end -1.485 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.485 0.735) (end 0.8 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.485 0.735) (end 0.8 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.485 -0.735) (end -1.485 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 -0.735) (end -1.485 -0.735) (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.1) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.5 -0.4) (end -0.8 -0.1) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end -0.5 -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.06))) ) @@ -2638,18 +2638,18 @@ (fp_text value RED (at 0 1.43 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start 0.8 -0.4) (end -0.5 -0.4) (layer F.Fab) (width 0.1)) - (fp_line (start -0.5 -0.4) (end -0.8 -0.1) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.1) (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.735) (end -1.485 -0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.485 -0.735) (end -1.485 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.485 0.735) (end 0.8 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.485 0.735) (end 0.8 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.485 -0.735) (end -1.485 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 -0.735) (end -1.485 -0.735) (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.1) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.5 -0.4) (end -0.8 -0.1) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end -0.5 -0.4) (layer F.Fab) (width 0.1)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.4 0.4) (thickness 0.06))) ) @@ -2676,18 +2676,18 @@ (fp_text value RED (at 0 1.43 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start 0.8 -0.4) (end -0.5 -0.4) (layer F.Fab) (width 0.1)) - (fp_line (start -0.5 -0.4) (end -0.8 -0.1) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.1) (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.735) (end -1.485 -0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.485 -0.735) (end -1.485 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.485 0.735) (end 0.8 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.485 0.735) (end 0.8 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.485 -0.735) (end -1.485 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 -0.735) (end -1.485 -0.735) (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.1) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.5 -0.4) (end -0.8 -0.1) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end -0.5 -0.4) (layer F.Fab) (width 0.1)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.4 0.4) (thickness 0.06))) ) @@ -2714,18 +2714,18 @@ (fp_text value RED (at 0 1.43 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start 0.8 -0.4) (end -0.5 -0.4) (layer F.Fab) (width 0.1)) - (fp_line (start -0.5 -0.4) (end -0.8 -0.1) (layer F.Fab) (width 0.1)) - (fp_line (start -0.8 -0.1) (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.735) (end -1.485 -0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.485 -0.735) (end -1.485 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.485 0.735) (end 0.8 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.485 0.735) (end 0.8 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.485 -0.735) (end -1.485 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 -0.735) (end -1.485 -0.735) (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.1) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.5 -0.4) (end -0.8 -0.1) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end -0.5 -0.4) (layer F.Fab) (width 0.1)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.4 0.4) (thickness 0.06))) ) @@ -2752,23 +2752,23 @@ (fp_text value SS14 (at 0 2.6) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -3.4 -1.65) (end -3.4 1.65) (layer F.SilkS) (width 0.12)) - (fp_line (start 2.3 1.5) (end -2.3 1.5) (layer F.Fab) (width 0.1)) - (fp_line (start -2.3 1.5) (end -2.3 -1.5) (layer F.Fab) (width 0.1)) - (fp_line (start 2.3 -1.5) (end 2.3 1.5) (layer F.Fab) (width 0.1)) - (fp_line (start 2.3 -1.5) (end -2.3 -1.5) (layer F.Fab) (width 0.1)) - (fp_line (start -3.5 -1.75) (end 3.5 -1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start 3.5 -1.75) (end 3.5 1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start 3.5 1.75) (end -3.5 1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start -3.5 1.75) (end -3.5 -1.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start -0.64944 0.00102) (end -1.55114 0.00102) (layer F.Fab) (width 0.1)) - (fp_line (start 0.50118 0.00102) (end 1.4994 0.00102) (layer F.Fab) (width 0.1)) - (fp_line (start -0.64944 -0.79908) (end -0.64944 0.80112) (layer F.Fab) (width 0.1)) - (fp_line (start 0.50118 0.75032) (end 0.50118 -0.79908) (layer F.Fab) (width 0.1)) - (fp_line (start -0.64944 0.00102) (end 0.50118 0.75032) (layer F.Fab) (width 0.1)) - (fp_line (start -0.64944 0.00102) (end 0.50118 -0.79908) (layer F.Fab) (width 0.1)) - (fp_line (start -3.4 1.65) (end 2 1.65) (layer F.SilkS) (width 0.12)) (fp_line (start -3.4 -1.65) (end 2 -1.65) (layer F.SilkS) (width 0.12)) + (fp_line (start -3.4 1.65) (end 2 1.65) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.64944 0.00102) (end 0.50118 -0.79908) (layer F.Fab) (width 0.1)) + (fp_line (start -0.64944 0.00102) (end 0.50118 0.75032) (layer F.Fab) (width 0.1)) + (fp_line (start 0.50118 0.75032) (end 0.50118 -0.79908) (layer F.Fab) (width 0.1)) + (fp_line (start -0.64944 -0.79908) (end -0.64944 0.80112) (layer F.Fab) (width 0.1)) + (fp_line (start 0.50118 0.00102) (end 1.4994 0.00102) (layer F.Fab) (width 0.1)) + (fp_line (start -0.64944 0.00102) (end -1.55114 0.00102) (layer F.Fab) (width 0.1)) + (fp_line (start -3.5 1.75) (end -3.5 -1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.5 1.75) (end -3.5 1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.5 -1.75) (end 3.5 1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.5 -1.75) (end 3.5 -1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1.5) (end -2.3 -1.5) (layer F.Fab) (width 0.1)) + (fp_line (start 2.3 -1.5) (end 2.3 1.5) (layer F.Fab) (width 0.1)) + (fp_line (start -2.3 1.5) (end -2.3 -1.5) (layer F.Fab) (width 0.1)) + (fp_line (start 2.3 1.5) (end -2.3 1.5) (layer F.Fab) (width 0.1)) + (fp_line (start -3.4 -1.65) (end -3.4 1.65) (layer F.SilkS) (width 0.12)) (fp_text user %R (at 0 -2.5) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) @@ -2795,16 +2795,16 @@ (fp_text value 100nF (at 0 1.43) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (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_line (start -0.14058 -0.51) (end 0.14058 -0.51) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.14058 0.51) (end 0.14058 0.51) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.14058 0.51) (end 0.14058 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.14058 -0.51) (end 0.14058 -0.51) (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.06))) ) @@ -2831,16 +2831,16 @@ (fp_text value 10uF (at 0 1.68) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) - (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) - (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) - (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) - (fp_line (start -0.261252 -0.735) (end 0.261252 -0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.261252 0.735) (end 0.261252 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.7 0.98) (end -1.7 -0.98) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.7 -0.98) (end 1.7 -0.98) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.7 -0.98) (end 1.7 0.98) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.7 0.98) (end -1.7 0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.7 -0.98) (end 1.7 0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.7 -0.98) (end 1.7 -0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.7 0.98) (end -1.7 -0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.261252 0.735) (end 0.261252 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.261252 -0.735) (end 0.261252 -0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) (fp_text user %R (at 0 0) (layer F.Fab) (effects (font (size 0.5 0.5) (thickness 0.08))) ) @@ -2867,16 +2867,16 @@ (fp_text value 100nF (at 0 1.43 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (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_line (start -0.14058 -0.51) (end 0.14058 -0.51) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.14058 0.51) (end 0.14058 0.51) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.14058 0.51) (end 0.14058 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.14058 -0.51) (end 0.14058 -0.51) (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 90) (layer F.Fab) (effects (font (size 0.4 0.4) (thickness 0.06))) ) @@ -2903,16 +2903,16 @@ (fp_text value 10uF (at 0 1.68 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) - (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) - (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) - (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) - (fp_line (start -0.261252 -0.735) (end 0.261252 -0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.261252 0.735) (end 0.261252 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.7 0.98) (end -1.7 -0.98) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.7 -0.98) (end 1.7 -0.98) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.7 -0.98) (end 1.7 0.98) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.7 0.98) (end -1.7 0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.7 -0.98) (end 1.7 0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.7 -0.98) (end 1.7 -0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.7 0.98) (end -1.7 -0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.261252 0.735) (end 0.261252 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.261252 -0.735) (end 0.261252 -0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.5 0.5) (thickness 0.08))) ) @@ -2939,16 +2939,16 @@ (fp_text value 100nF (at 0 1.43) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (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_line (start -0.14058 -0.51) (end 0.14058 -0.51) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.14058 0.51) (end 0.14058 0.51) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.48 0.73) (end -1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.48 -0.73) (end 1.48 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 -0.73) (end 1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.48 0.73) (end -1.48 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.14058 0.51) (end 0.14058 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.14058 -0.51) (end 0.14058 -0.51) (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.06))) ) @@ -2975,18 +2975,18 @@ (fp_text value TAJB107K006RNJ (at 0 2.35 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start 1.75 -1.4) (end -1.05 -1.4) (layer F.Fab) (width 0.1)) - (fp_line (start -1.05 -1.4) (end -1.75 -0.7) (layer F.Fab) (width 0.1)) - (fp_line (start -1.75 -0.7) (end -1.75 1.4) (layer F.Fab) (width 0.1)) - (fp_line (start -1.75 1.4) (end 1.75 1.4) (layer F.Fab) (width 0.1)) - (fp_line (start 1.75 1.4) (end 1.75 -1.4) (layer F.Fab) (width 0.1)) - (fp_line (start 1.75 -1.51) (end -2.46 -1.51) (layer F.SilkS) (width 0.12)) - (fp_line (start -2.46 -1.51) (end -2.46 1.51) (layer F.SilkS) (width 0.12)) - (fp_line (start -2.46 1.51) (end 1.75 1.51) (layer F.SilkS) (width 0.12)) - (fp_line (start -2.45 1.65) (end -2.45 -1.65) (layer F.CrtYd) (width 0.05)) - (fp_line (start -2.45 -1.65) (end 2.45 -1.65) (layer F.CrtYd) (width 0.05)) - (fp_line (start 2.45 -1.65) (end 2.45 1.65) (layer F.CrtYd) (width 0.05)) (fp_line (start 2.45 1.65) (end -2.45 1.65) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.45 -1.65) (end 2.45 1.65) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.45 -1.65) (end 2.45 -1.65) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.45 1.65) (end -2.45 -1.65) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.46 1.51) (end 1.75 1.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -2.46 -1.51) (end -2.46 1.51) (layer F.SilkS) (width 0.12)) + (fp_line (start 1.75 -1.51) (end -2.46 -1.51) (layer F.SilkS) (width 0.12)) + (fp_line (start 1.75 1.4) (end 1.75 -1.4) (layer F.Fab) (width 0.1)) + (fp_line (start -1.75 1.4) (end 1.75 1.4) (layer F.Fab) (width 0.1)) + (fp_line (start -1.75 -0.7) (end -1.75 1.4) (layer F.Fab) (width 0.1)) + (fp_line (start -1.05 -1.4) (end -1.75 -0.7) (layer F.Fab) (width 0.1)) + (fp_line (start 1.75 -1.4) (end -1.05 -1.4) (layer F.Fab) (width 0.1)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.88 0.88) (thickness 0.13))) ) @@ -3013,16 +3013,16 @@ (fp_text value 10uF (at 0 1.68 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) - (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) - (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) - (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) - (fp_line (start -0.261252 -0.735) (end 0.261252 -0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.261252 0.735) (end 0.261252 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.7 0.98) (end -1.7 -0.98) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.7 -0.98) (end 1.7 -0.98) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.7 -0.98) (end 1.7 0.98) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.7 0.98) (end -1.7 0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.7 -0.98) (end 1.7 0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.7 -0.98) (end 1.7 -0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.7 0.98) (end -1.7 -0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.261252 0.735) (end 0.261252 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.261252 -0.735) (end 0.261252 -0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.5 0.5) (thickness 0.08))) ) @@ -3049,16 +3049,16 @@ (fp_text value 10uF (at 0 1.68 90) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15))) ) - (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) - (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) - (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) - (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) - (fp_line (start -0.261252 -0.735) (end 0.261252 -0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.261252 0.735) (end 0.261252 0.735) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.7 0.98) (end -1.7 -0.98) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.7 -0.98) (end 1.7 -0.98) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.7 -0.98) (end 1.7 0.98) (layer F.CrtYd) (width 0.05)) (fp_line (start 1.7 0.98) (end -1.7 0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.7 -0.98) (end 1.7 0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.7 -0.98) (end 1.7 -0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.7 0.98) (end -1.7 -0.98) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.261252 0.735) (end 0.261252 0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.261252 -0.735) (end 0.261252 -0.735) (layer F.SilkS) (width 0.12)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) (fp_text user %R (at 0 0 90) (layer F.Fab) (effects (font (size 0.5 0.5) (thickness 0.08))) ) @@ -3444,7 +3444,7 @@ (segment (start 63.5 73.66) (end 60.96 73.66) (width 1) (layer F.Cu) (net 1)) (segment (start 55.88 71.12) (end 58.42 73.66) (width 1) (layer B.Cu) (net 1) (status 10)) (segment (start 66.548 58.9145) (end 61.4815 58.9145) (width 1) (layer F.Cu) (net 1) (status 10)) - (segment (start 60.4655 58.9145) (end 59.1955 58.9145) (width 1) (layer F.Cu) (net 1) (status 20)) + (segment (start 60.4655 58.9145) (end 59.1955 58.9145) (width 1) (layer F.Cu) (net 1)) (segment (start 64.008 38.46) (end 63.668 38.12) (width 1) (layer B.Cu) (net 1) (status 30)) (segment (start 55.099 31.778) (end 55.099 28.328) (width 0.25) (layer F.Cu) (net 1) (status 30)) (segment (start 62.249 31.778) (end 62.249 28.328) (width 0.25) (layer F.Cu) (net 1) (status 30)) @@ -3540,7 +3540,7 @@ (segment (start 63.5 73.66) (end 66.04 71.12) (width 1) (layer F.Cu) (net 1) (status 20)) (segment (start 66.04 71.12) (end 63.5 73.66) (width 1) (layer B.Cu) (net 1) (status 10)) (segment (start 74.88 71.12) (end 75 71) (width 1) (layer F.Cu) (net 1) (status 30)) - (segment (start 66.04 71.12) (end 69.0372 71.12) (width 1) (layer F.Cu) (net 1) (status 30)) + (segment (start 66.04 71.12) (end 69.0372 71.12) (width 1) (layer F.Cu) (net 1) (status 10)) (segment (start 51.816 67.056) (end 55.88 71.12) (width 2) (layer B.Cu) (net 1) (status 20)) (segment (start 42.672 67.056) (end 50.546 67.056) (width 2) (layer B.Cu) (net 1)) (via (at 71.882 46.99) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) @@ -3558,7 +3558,6 @@ (segment (start 48.4885 37.846) (end 48.26 37.6175) (width 0.25) (layer F.Cu) (net 1) (status 30)) (segment (start 50.5715 37.846) (end 48.4885 37.846) (width 0.25) (layer F.Cu) (net 1) (status 30)) (segment (start 50.8 37.6175) (end 50.5715 37.846) (width 0.25) (layer F.Cu) (net 1) (status 30)) - (segment (start 60.4655 55.1045) (end 60.4655 55.1045) (width 1) (layer F.Cu) (net 1)) (via (at 60.4655 58.914522) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) (segment (start 64.008 51.562) (end 61.595 53.975) (width 1) (layer F.Cu) (net 1)) (segment (start 60.4655 58.9145) (end 60.4655 58.914522) (width 1) (layer F.Cu) (net 1)) @@ -3596,7 +3595,7 @@ (via (at 60.96 63.246) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) (segment (start 59.1955 58.9145) (end 57.5555 58.9145) (width 1) (layer F.Cu) (net 1) (tstamp 60B179DC) (status 20)) (via (at 59.1955 58.9145) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) - (segment (start 61.4815 58.9145) (end 60.4655 58.9145) (width 1) (layer F.Cu) (net 1) (tstamp 60B179DE) (status 10)) + (segment (start 61.4815 58.9145) (end 60.4655 58.9145) (width 1) (layer F.Cu) (net 1) (tstamp 60B179DE)) (via (at 61.4815 58.9145) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) (segment (start 51.816 43.942) (end 51.054 44.704) (width 1) (layer F.Cu) (net 1) (tstamp 60B17A11)) (via (at 51.816 43.942) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) @@ -3615,16 +3614,14 @@ (segment (start 58.42 73.66) (end 55.372 73.66) (width 0.25) (layer F.Cu) (net 1)) (segment (start 32.859999 65.879999) (end 32.859999 69.502001) (width 0.25) (layer F.Cu) (net 1)) (segment (start 32.859999 71.721999) (end 33.02 71.882) (width 0.25) (layer F.Cu) (net 1)) - (segment (start 34.798 73.66) (end 34.798 73.66) (width 0.25) (layer F.Cu) (net 1)) (segment (start 32.859999 51.595001) (end 32.859999 48.674001) (width 0.25) (layer F.Cu) (net 1)) (segment (start 32.859999 30.386001) (end 33.782 29.464) (width 0.25) (layer F.Cu) (net 1)) (segment (start 34.798 28.448) (end 35.814 28.448) (width 0.25) (layer F.Cu) (net 1)) (segment (start 47.364 28.328) (end 45.586 28.328) (width 0.25) (layer F.Cu) (net 1)) - (segment (start 75.692 37.833) (end 77.711 37.833) (width 0.25) (layer F.Cu) (net 1)) + (segment (start 75.692 37.833) (end 77.711 37.833) (width 0.25) (layer F.Cu) (net 1) (status 10)) (segment (start 77.711 37.833) (end 77.724 37.82) (width 0.25) (layer F.Cu) (net 1)) (segment (start 77.724 37.82) (end 77.724 35.306) (width 0.25) (layer F.Cu) (net 1)) - (segment (start 76.962 67.056) (end 75.918 67.056) (width 0.25) (layer F.Cu) (net 1)) - (segment (start 77.724 66.294) (end 77.724 66.294) (width 0.25) (layer F.Cu) (net 1)) + (segment (start 76.962 67.056) (end 75.918 67.056) (width 0.25) (layer F.Cu) (net 1) (status 20)) (segment (start 77.724 37.82) (end 77.724 40.386) (width 0.25) (layer F.Cu) (net 1)) (segment (start 77.724 66.294) (end 76.962 67.056) (width 0.25) (layer F.Cu) (net 1) (tstamp 60B17BB8)) (via (at 77.724 66.294) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) @@ -3646,7 +3643,6 @@ (via (at 77.724 35.306) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) (segment (start 77.724 33.02) (end 77.724 32.766) (width 0.25) (layer F.Cu) (net 1) (tstamp 60B17BCA)) (via (at 77.724 33.02) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) - (segment (start 72.898 73.66) (end 72.898 73.66) (width 0.25) (layer F.Cu) (net 1) (tstamp 60B17BCC)) (via (at 72.898 73.66) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) (segment (start 70.104 73.66) (end 72.898 73.66) (width 0.25) (layer F.Cu) (net 1) (tstamp 60B17BCE)) (via (at 70.104 73.66) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) @@ -3702,7 +3698,7 @@ (segment (start 61.4815 60.1845) (end 60.579 61.087) (width 0.25) (layer F.Cu) (net 1)) (segment (start 59.944 59.663) (end 59.1955 58.9145) (width 0.25) (layer F.Cu) (net 1)) (segment (start 59.944 61.722) (end 59.944 59.663) (width 0.25) (layer F.Cu) (net 1)) - (segment (start 46.482 48.26) (end 45.085 48.26) (width 1) (layer B.Cu) (net 1) (tstamp 60B17E4A)) + (segment (start 51.054 48.26) (end 45.085 48.26) (width 1) (layer B.Cu) (net 1) (tstamp 60B17E4A)) (via (at 46.228 48.006) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) (via (at 45.3136 55.0418) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) (via (at 45.593 52.0446) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) @@ -3727,10 +3723,9 @@ (segment (start 50.546 67.056) (end 51.816 67.056) (width 2) (layer B.Cu) (net 1) (tstamp 60B17E56)) (via (at 50.546 67.056) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) (via (at 49.53 65.532) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) - (segment (start 51.054 48.26) (end 46.482 48.26) (width 1) (layer B.Cu) (net 1)) - (segment (start 71.0692 71.12) (end 74.88 71.12) (width 1) (layer F.Cu) (net 1) (tstamp 60B189FF) (status 30)) + (segment (start 71.0692 71.12) (end 74.88 71.12) (width 1) (layer F.Cu) (net 1) (tstamp 60B189FF) (status 20)) (via (at 71.0692 71.12) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) - (segment (start 69.0372 71.12) (end 71.0692 71.12) (width 1) (layer F.Cu) (net 1) (tstamp 60B18A01) (status 30)) + (segment (start 69.0372 71.12) (end 71.0692 71.12) (width 1) (layer F.Cu) (net 1) (tstamp 60B18A01)) (via (at 69.0372 71.12) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) (via (at 50.9778 65.6336) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) (via (at 64.8716 64.4398) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) @@ -3739,8 +3734,7 @@ (via (at 70.6374 66.167) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) (segment (start 51.054 48.26) (end 55.372 48.26) (width 1) (layer B.Cu) (net 1)) (via (at 55.372 48.26) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) - (segment (start 55.372 53.34) (end 55.372 52.578) (width 1) (layer F.Cu) (net 1)) - (segment (start 55.372 52.578) (end 55.372 48.26) (width 1) (layer F.Cu) (net 1) (tstamp 60B19261)) + (segment (start 55.372 53.34) (end 55.372 48.26) (width 1) (layer F.Cu) (net 1)) (via (at 55.626 51.816) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) (via (at 58.928 50.546) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) (via (at 46.228 54.102) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1)) @@ -3802,16 +3796,22 @@ (segment (start 61.405 43.942) (end 58.928 43.942) (width 0.25) (layer F.Cu) (net 3)) (segment (start 61.722 43.625) (end 61.405 43.942) (width 0.25) (layer F.Cu) (net 3)) (segment (start 61.722 42.989) (end 61.722 43.625) (width 0.25) (layer F.Cu) (net 3) (status 10)) - (segment (start 67.818 50.804166) (end 67.818 47.307) (width 0.25) (layer F.Cu) (net 3) (status 20)) - (segment (start 68.834 51.820166) (end 67.818 50.804166) (width 0.25) (layer F.Cu) (net 3)) (segment (start 68.834 52.591) (end 68.834 51.820166) (width 0.25) (layer F.Cu) (net 3)) (segment (start 72.327 48.895) (end 70.802 48.895) (width 0.25) (layer F.Cu) (net 3) (status 30)) - (segment (start 70.802 48.895) (end 69.913 48.006) (width 0.25) (layer F.Cu) (net 3) (status 10)) - (segment (start 69.913 48.006) (end 69.030998 48.006) (width 0.25) (layer F.Cu) (net 3)) - (segment (start 68.331998 47.307) (end 67.818 47.307) (width 0.25) (layer F.Cu) (net 3) (status 20)) - (segment (start 69.030998 48.006) (end 68.331998 47.307) (width 0.25) (layer F.Cu) (net 3)) (segment (start 64.821401 47.255599) (end 64.77 47.307) (width 0.25) (layer F.Cu) (net 3) (status 30)) (segment (start 67.818 47.307) (end 67.766599 47.255599) (width 0.25) (layer F.Cu) (net 3) (status 30)) + (segment (start 68.834 51.820166) (end 71.877834 51.820166) (width 0.25) (layer F.Cu) (net 3)) + (segment (start 72.327 51.371) (end 72.327 48.895) (width 0.25) (layer F.Cu) (net 3) (status 20)) + (segment (start 71.877834 51.820166) (end 72.327 51.371) (width 0.25) (layer F.Cu) (net 3)) + (segment (start 64.77 47.307) (end 67.818 47.307) (width 0.25) (layer F.Cu) (net 3)) + (segment (start 67.09099 47.05499) (end 67.09099 44.92301) (width 0.25) (layer F.Cu) (net 3)) + (segment (start 67.818 47.307) (end 67.343 47.307) (width 0.25) (layer F.Cu) (net 3)) + (segment (start 67.343 47.307) (end 67.09099 47.05499) (width 0.25) (layer F.Cu) (net 3)) + (segment (start 67.09099 44.92301) (end 68.072 43.942) (width 0.25) (layer F.Cu) (net 3)) + (segment (start 70.65799 48.75099) (end 70.802 48.895) (width 0.25) (layer F.Cu) (net 3)) + (segment (start 70.65799 45.60375) (end 70.65799 48.75099) (width 0.25) (layer F.Cu) (net 3)) + (segment (start 68.99624 43.942) (end 70.65799 45.60375) (width 0.25) (layer F.Cu) (net 3)) + (segment (start 68.072 43.942) (end 68.99624 43.942) (width 0.25) (layer F.Cu) (net 3)) (segment (start 76.2 48.26) (end 76.2 47.244) (width 0.25) (layer F.Cu) (net 4) (status 10)) (segment (start 74.676 45.72) (end 74.435 45.72) (width 0.25) (layer F.Cu) (net 4) (status 30)) (segment (start 76.2 47.244) (end 74.676 45.72) (width 0.25) (layer F.Cu) (net 4) (status 20)) @@ -3850,12 +3850,12 @@ (segment (start 60.96 71.12) (end 53.34 63.5) (width 2) (layer B.Cu) (net 5) (status 10)) (segment (start 60.96 70.834) (end 64.484 67.31) (width 2) (layer F.Cu) (net 5) (status 30)) (segment (start 60.96 71.12) (end 60.96 70.834) (width 2) (layer F.Cu) (net 5) (status 30)) - (segment (start 50.8 63.5) (end 50.884002 63.415998) (width 1) (layer F.Cu) (net 5)) - (segment (start 50.884002 63.415998) (end 50.884002 59.545502) (width 1) (layer F.Cu) (net 5)) - (segment (start 50.884002 59.545502) (end 50.7745 59.436) (width 1) (layer F.Cu) (net 5)) + (segment (start 50.8 63.5) (end 50.884002 63.415998) (width 1) (layer F.Cu) (net 5) (status 30)) + (segment (start 50.884002 63.415998) (end 50.884002 59.545502) (width 1) (layer F.Cu) (net 5) (status 30)) + (segment (start 50.884002 59.545502) (end 50.7745 59.436) (width 1) (layer F.Cu) (net 5) (status 30)) (segment (start 54.540009 35.744009) (end 54.540009 46.986193) (width 1) (layer F.Cu) (net 5)) - (segment (start 54.540009 46.986193) (end 50.787 50.739202) (width 1) (layer F.Cu) (net 5)) - (segment (start 50.787 50.739202) (end 50.787 51.054) (width 1) (layer F.Cu) (net 5)) + (segment (start 54.540009 46.986193) (end 50.787 50.739202) (width 1) (layer F.Cu) (net 5) (status 20)) + (segment (start 50.787 50.739202) (end 50.787 51.054) (width 1) (layer F.Cu) (net 5) (status 30)) (segment (start 50.8 34.353) (end 50.8 36.0425) (width 0.25) (layer F.Cu) (net 6) (status 30)) (segment (start 48.26 34.353) (end 48.26 36.0425) (width 0.25) (layer F.Cu) (net 7) (status 30)) (segment (start 44.513 54.4445) (end 43.942 53.8735) (width 0.25) (layer F.Cu) (net 8) (status 20)) @@ -3867,7 +3867,7 @@ (segment (start 53.848 57.658) (end 53.848 57.9375) (width 0.25) (layer F.Cu) (net 9)) (segment (start 54.356 57.15) (end 53.848 57.658) (width 0.25) (layer B.Cu) (net 9)) (segment (start 54.356 57.15) (end 54.356 56.642) (width 0.25) (layer B.Cu) (net 9)) - (segment (start 57.1246 53.8734) (end 57.1246 50.7727) (width 0.25) (layer B.Cu) (net 9)) + (segment (start 57.1246 53.8734) (end 57.1246 50.7727) (width 0.25) (layer B.Cu) (net 9) (status 20)) (segment (start 54.356 56.642) (end 57.1246 53.8734) (width 0.25) (layer B.Cu) (net 9)) (segment (start 45.72 66.04) (end 45.72 63.5) (width 2) (layer F.Cu) (net 10) (status 20)) (segment (start 45.466 63.246) (end 45.72 63.5) (width 0.25) (layer F.Cu) (net 10) (status 30)) @@ -3895,17 +3895,17 @@ (segment (start 38.260001 35.720001) (end 35.56 33.02) (width 2) (layer B.Cu) (net 13) (status 20)) (segment (start 38.260001 50.639999) (end 38.260001 35.720001) (width 2) (layer B.Cu) (net 13) (tstamp 60923A99)) (segment (start 38.420002 35.56) (end 38.260001 35.720001) (width 2) (layer B.Cu) (net 13)) - (segment (start 40.64 35.56) (end 38.420002 35.56) (width 2) (layer B.Cu) (net 13)) + (segment (start 40.64 35.56) (end 38.420002 35.56) (width 2) (layer B.Cu) (net 13) (status 10)) (segment (start 38.260001 50.960001) (end 38.260001 50.639999) (width 2) (layer B.Cu) (net 13)) - (segment (start 40.64 53.34) (end 38.260001 50.960001) (width 2) (layer B.Cu) (net 13)) - (segment (start 35.8 53.1) (end 35.56 53.34) (width 2) (layer B.Cu) (net 13)) - (segment (start 40.4 53.1) (end 35.8 53.1) (width 2) (layer B.Cu) (net 13)) - (segment (start 40.64 53.34) (end 40.4 53.1) (width 2) (layer B.Cu) (net 13)) - (segment (start 41.842081 53.34) (end 40.64 53.34) (width 2) (layer B.Cu) (net 13)) + (segment (start 40.64 53.34) (end 38.260001 50.960001) (width 2) (layer B.Cu) (net 13) (status 10)) + (segment (start 35.8 53.1) (end 35.56 53.34) (width 2) (layer B.Cu) (net 13) (status 30)) + (segment (start 40.4 53.1) (end 35.8 53.1) (width 2) (layer B.Cu) (net 13) (status 30)) + (segment (start 40.64 53.34) (end 40.4 53.1) (width 2) (layer B.Cu) (net 13) (status 30)) + (segment (start 41.842081 53.34) (end 40.64 53.34) (width 2) (layer B.Cu) (net 13) (status 20)) (segment (start 42.690001 54.18792) (end 41.842081 53.34) (width 2) (layer B.Cu) (net 13)) (segment (start 42.690001 56.72792) (end 42.690001 54.18792) (width 2) (layer B.Cu) (net 13)) (segment (start 48.26 62.297919) (end 42.690001 56.72792) (width 2) (layer B.Cu) (net 13)) - (segment (start 48.26 63.5) (end 48.26 62.297919) (width 2) (layer B.Cu) (net 13)) + (segment (start 48.26 63.5) (end 48.26 62.297919) (width 2) (layer B.Cu) (net 13) (status 10)) (segment (start 38.1 58.42) (end 40.64 55.88) (width 0.25) (layer B.Cu) (net 14) (status 20)) (segment (start 35.56 58.42) (end 38.1 58.42) (width 0.25) (layer B.Cu) (net 14) (status 10)) (segment (start 40.64 55.88) (end 42.418 54.102) (width 0.25) (layer F.Cu) (net 14) (status 10)) @@ -3949,11 +3949,11 @@ (via (at 66.802 50.292) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 16)) (segment (start 69.668 53.32) (end 69.668 51.82) (width 0.25) (layer B.Cu) (net 16) (status 10)) (segment (start 68.14 50.292) (end 66.802 50.292) (width 0.25) (layer B.Cu) (net 16)) - (segment (start 35.56 38.1) (end 40.64 38.1) (width 0.25) (layer F.Cu) (net 16)) + (segment (start 35.56 38.1) (end 40.64 38.1) (width 0.25) (layer F.Cu) (net 16) (status 30)) (via (at 60.706 49.783996) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 16)) - (segment (start 40.64 38.1) (end 47.371 44.831) (width 0.25) (layer B.Cu) (net 16)) + (segment (start 40.64 38.1) (end 47.371 44.831) (width 0.25) (layer B.Cu) (net 16) (status 10)) (segment (start 66.802 50.292) (end 65.474011 48.964011) (width 0.25) (layer F.Cu) (net 16)) - (segment (start 58.42 48.26) (end 59.943996 49.783996) (width 0.25) (layer F.Cu) (net 16)) + (segment (start 58.42 48.26) (end 59.943996 49.783996) (width 0.25) (layer F.Cu) (net 16) (status 10)) (segment (start 59.943996 49.783996) (end 60.706 49.783996) (width 0.25) (layer F.Cu) (net 16)) (segment (start 60.706 45.593) (end 60.706 49.783996) (width 0.25) (layer B.Cu) (net 16)) (segment (start 65.474011 48.964011) (end 61.525985 48.964011) (width 0.25) (layer F.Cu) (net 16)) @@ -3963,28 +3963,26 @@ (segment (start 65.668 50.43266) (end 65.534338 50.298998) (width 0.25) (layer B.Cu) (net 17)) (segment (start 65.668 53.32) (end 65.668 50.43266) (width 0.25) (layer B.Cu) (net 17) (status 10)) (via (at 65.534338 50.298998) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 17)) - (segment (start 38.1 43.18) (end 40.64 40.64) (width 0.25) (layer F.Cu) (net 17)) - (segment (start 35.56 43.18) (end 38.1 43.18) (width 0.25) (layer F.Cu) (net 17)) - (segment (start 64.70184 49.4665) (end 64.76767 49.53233) (width 0.25) (layer F.Cu) (net 17)) + (segment (start 38.1 43.18) (end 40.64 40.64) (width 0.25) (layer F.Cu) (net 17) (status 20)) + (segment (start 35.56 43.18) (end 38.1 43.18) (width 0.25) (layer F.Cu) (net 17) (status 10)) + (segment (start 64.70184 49.4665) (end 65.534338 50.298998) (width 0.25) (layer F.Cu) (net 17)) (segment (start 62.2935 49.4665) (end 64.70184 49.4665) (width 0.25) (layer F.Cu) (net 17)) - (segment (start 64.76767 49.53233) (end 65.534338 50.298998) (width 0.25) (layer F.Cu) (net 17)) (via (at 60.3885 51.3715) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 17)) (segment (start 60.3885 51.3715) (end 62.2935 49.4665) (width 0.25) (layer F.Cu) (net 17)) - (segment (start 58.42 53.34) (end 60.3885 51.3715) (width 0.25) (layer F.Cu) (net 17)) - (segment (start 59.988501 50.971501) (end 60.3885 51.3715) (width 0.25) (layer B.Cu) (net 17)) - (segment (start 59.963982 50.946982) (end 59.988501 50.971501) (width 0.25) (layer B.Cu) (net 17)) + (segment (start 58.42 53.34) (end 60.3885 51.3715) (width 0.25) (layer F.Cu) (net 17) (status 10)) + (segment (start 59.963982 50.946982) (end 60.3885 51.3715) (width 0.25) (layer B.Cu) (net 17)) (segment (start 59.963982 45.860067) (end 59.963982 50.946982) (width 0.25) (layer B.Cu) (net 17)) (segment (start 59.569915 45.466) (end 59.963982 45.860067) (width 0.25) (layer B.Cu) (net 17)) (segment (start 45.466 45.466) (end 59.569915 45.466) (width 0.25) (layer B.Cu) (net 17)) - (segment (start 40.64 40.64) (end 45.466 45.466) (width 0.25) (layer B.Cu) (net 17)) + (segment (start 40.64 40.64) (end 45.466 45.466) (width 0.25) (layer B.Cu) (net 17) (status 10)) (segment (start 46.291 59.944) (end 47.815 61.468) (width 0.25) (layer F.Cu) (net 18) (status 30)) (segment (start 46.291 59.69) (end 46.291 59.944) (width 0.25) (layer F.Cu) (net 18) (status 30)) (via (at 49.53 60.706) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 18)) (segment (start 48.768 61.468) (end 49.53 60.706) (width 0.25) (layer F.Cu) (net 18)) (segment (start 69.782 60.706) (end 49.53 60.706) (width 0.25) (layer B.Cu) (net 18)) - (segment (start 47.815 61.468) (end 48.768 61.468) (width 0.25) (layer F.Cu) (net 18)) - (segment (start 48.26 50.8) (end 48.26 59.436) (width 0.25) (layer F.Cu) (net 18)) - (segment (start 75.668 53.32) (end 75.668 54.82) (width 0.25) (layer B.Cu) (net 18)) + (segment (start 47.815 61.468) (end 48.768 61.468) (width 0.25) (layer F.Cu) (net 18) (status 10)) + (segment (start 48.26 50.8) (end 48.26 59.436) (width 0.25) (layer F.Cu) (net 18) (status 10)) + (segment (start 75.668 53.32) (end 75.668 54.82) (width 0.25) (layer B.Cu) (net 18) (status 10)) (segment (start 48.26 59.436) (end 49.53 60.706) (width 0.25) (layer F.Cu) (net 18)) (segment (start 75.668 54.82) (end 69.782 60.706) (width 0.25) (layer B.Cu) (net 18)) (segment (start 61.318022 37.838) (end 62.738 39.257978) (width 0.25) (layer F.Cu) (net 19)) @@ -4020,33 +4018,35 @@ (segment (start 42.926 56.959) (end 42.863 56.896) (width 0.25) (layer F.Cu) (net 23) (status 30)) (segment (start 42.926 61.405) (end 42.926 56.959) (width 0.25) (layer F.Cu) (net 23) (status 30)) (via (at 47.498 53.34) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 23)) - (segment (start 42.863 56.896) (end 43.66301 57.69601) (width 0.25) (layer F.Cu) (net 23)) + (segment (start 42.863 56.896) (end 43.66301 57.69601) (width 0.25) (layer F.Cu) (net 23) (status 10)) (segment (start 43.66301 57.69601) (end 44.930468 57.69601) (width 0.25) (layer F.Cu) (net 23)) (segment (start 44.930468 57.69601) (end 47.498 55.128478) (width 0.25) (layer F.Cu) (net 23)) (segment (start 47.498 55.128478) (end 47.498 53.34) (width 0.25) (layer F.Cu) (net 23)) (segment (start 48.7445 52.0935) (end 47.498 53.34) (width 0.25) (layer B.Cu) (net 23)) - (segment (start 53.9496 52.0935) (end 48.7445 52.0935) (width 0.25) (layer B.Cu) (net 23)) + (segment (start 53.9496 52.0935) (end 48.7445 52.0935) (width 0.25) (layer B.Cu) (net 23) (status 10)) (segment (start 52.387 55.88) (end 52.387 57.658) (width 0.25) (layer F.Cu) (net 24) (status 30)) (segment (start 65.668 38.12) (end 65.668 45.602) (width 0.25) (layer B.Cu) (net 25) (status 10)) (segment (start 65.668 45.602) (end 67.056 46.99) (width 0.25) (layer B.Cu) (net 25)) - (via (at 69.088 46.99) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 25)) - (segment (start 67.056 46.99) (end 69.088 46.99) (width 0.25) (layer B.Cu) (net 25)) - (segment (start 69.66 45.72) (end 69.66 46.418) (width 0.25) (layer F.Cu) (net 25) (status 10)) - (segment (start 69.66 46.418) (end 69.088 46.99) (width 0.25) (layer F.Cu) (net 25)) (via (at 44.704 46.95301) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 25)) (segment (start 40.64 45.72) (end 41.87301 46.95301) (width 0.25) (layer B.Cu) (net 25) (status 10)) (segment (start 48.26 45.72) (end 45.93701 45.72) (width 0.25) (layer F.Cu) (net 25) (status 10)) (segment (start 45.93701 45.72) (end 44.704 46.95301) (width 0.25) (layer F.Cu) (net 25)) (segment (start 41.87301 46.95301) (end 44.704 46.95301) (width 0.25) (layer B.Cu) (net 25)) - (segment (start 67.056 48.006) (end 66.548 48.514) (width 0.25) (layer B.Cu) (net 25)) - (segment (start 67.056 46.99) (end 67.056 48.006) (width 0.25) (layer B.Cu) (net 25)) - (via (at 66.548 48.514) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 25)) (segment (start 44.704 46.95301) (end 57.440982 46.95301) (width 0.25) (layer B.Cu) (net 25)) (via (at 57.530996 46.862996) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 25)) (segment (start 57.440982 46.95301) (end 57.530996 46.862996) (width 0.25) (layer B.Cu) (net 25)) - (segment (start 60.579002 48.514) (end 58.927998 46.862996) (width 0.25) (layer F.Cu) (net 25)) - (segment (start 66.548 48.514) (end 60.579002 48.514) (width 0.25) (layer F.Cu) (net 25)) - (segment (start 58.927998 46.862996) (end 57.530996 46.862996) (width 0.25) (layer F.Cu) (net 25)) + (segment (start 57.530996 46.862996) (end 58.927998 46.862996) (width 0.25) (layer F.Cu) (net 25)) + (segment (start 69.66 45.72) (end 69.66 46.540424) (width 0.25) (layer F.Cu) (net 25)) + (segment (start 67.056 46.99) (end 69.183616 46.99) (width 0.25) (layer B.Cu) (net 25)) + (segment (start 69.66 46.540424) (end 69.19702 47.003404) (width 0.25) (layer F.Cu) (net 25)) + (segment (start 69.183616 46.99) (end 69.19702 47.003404) (width 0.25) (layer B.Cu) (net 25)) + (via (at 69.19702 47.003404) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 25)) + (segment (start 60.579002 48.514) (end 66.436286 48.514) (width 0.25) (layer F.Cu) (net 25)) + (segment (start 67.056 48.234326) (end 66.606306 48.68402) (width 0.25) (layer B.Cu) (net 25)) + (segment (start 58.927998 46.862996) (end 60.579002 48.514) (width 0.25) (layer F.Cu) (net 25)) + (via (at 66.606306 48.68402) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 25)) + (segment (start 67.056 46.99) (end 67.056 48.234326) (width 0.25) (layer B.Cu) (net 25)) + (segment (start 66.436286 48.514) (end 66.606306 48.68402) (width 0.25) (layer F.Cu) (net 25)) (segment (start 48.26 32.703) (end 48.26 30.48) (width 0.25) (layer F.Cu) (net 26) (status 30)) (segment (start 48.26 32.703) (end 49.525114 33.968114) (width 0.25) (layer F.Cu) (net 26) (status 10)) (segment (start 73.142988 36.094988) (end 49.556535 36.094988) (width 0.25) (layer B.Cu) (net 26)) @@ -4062,7 +4062,7 @@ (via (at 45.212 49.53) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 26)) (segment (start 45.9505 50.2685) (end 45.212 49.53) (width 0.25) (layer B.Cu) (net 26)) (segment (start 48.26 43.688) (end 49.585001 45.013001) (width 0.25) (layer F.Cu) (net 26)) - (segment (start 53.9496 50.2685) (end 45.9505 50.2685) (width 0.25) (layer B.Cu) (net 26)) + (segment (start 53.9496 50.2685) (end 45.9505 50.2685) (width 0.25) (layer B.Cu) (net 26) (status 10)) (segment (start 49.585001 46.484684) (end 46.539685 49.53) (width 0.25) (layer F.Cu) (net 26)) (segment (start 49.585001 45.013001) (end 49.585001 46.484684) (width 0.25) (layer F.Cu) (net 26)) (segment (start 46.539685 49.53) (end 45.212 49.53) (width 0.25) (layer F.Cu) (net 26)) @@ -4088,15 +4088,12 @@ (segment (start 49.53 43.688) (end 50.171401 44.329401) (width 0.25) (layer F.Cu) (net 27)) (segment (start 50.851357 49.08501) (end 50.546 49.390367) (width 0.25) (layer B.Cu) (net 27)) (segment (start 56.32499 49.08501) (end 50.851357 49.08501) (width 0.25) (layer B.Cu) (net 27)) - (segment (start 56.4623 48.9477) (end 56.32499 49.08501) (width 0.25) (layer B.Cu) (net 27)) - (segment (start 57.1246 48.9477) (end 56.4623 48.9477) (width 0.25) (layer B.Cu) (net 27)) + (segment (start 56.4623 48.9477) (end 56.32499 49.08501) (width 0.25) (layer B.Cu) (net 27) (status 10)) + (segment (start 57.1246 48.9477) (end 56.4623 48.9477) (width 0.25) (layer B.Cu) (net 27) (status 30)) (via (at 66.39301 45.22992) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 28)) (segment (start 64.77 45.657) (end 65.96593 45.657) (width 0.25) (layer F.Cu) (net 28) (status 10)) (segment (start 65.96593 45.657) (end 66.39301 45.22992) (width 0.25) (layer F.Cu) (net 28)) - (segment (start 68.81608 45.22992) (end 66.39301 45.22992) (width 0.25) (layer B.Cu) (net 28)) - (segment (start 69.668 44.378) (end 68.81608 45.22992) (width 0.25) (layer B.Cu) (net 28)) (via (at 69.668 40.458) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 28)) - (segment (start 69.668 40.458) (end 69.668 44.378) (width 0.25) (layer B.Cu) (net 28)) (segment (start 69.668 38.12) (end 69.668 40.458) (width 0.25) (layer B.Cu) (net 28) (status 10)) (via (at 66.802 33.782) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 28)) (segment (start 66.548 33.528) (end 66.802 33.782) (width 0.25) (layer B.Cu) (net 28)) @@ -4113,6 +4110,10 @@ (segment (start 67.31 38.37) (end 67.31 34.29) (width 0.25) (layer F.Cu) (net 28) (status 10)) (segment (start 74.966999 40.108001) (end 75.692 39.383) (width 0.25) (layer F.Cu) (net 28) (status 20)) (segment (start 74.966999 41.946999) (end 74.966999 40.108001) (width 0.25) (layer F.Cu) (net 28)) + (segment (start 66.793009 45.629919) (end 66.39301 45.22992) (width 0.25) (layer B.Cu) (net 28)) + (segment (start 69.668 44.511559) (end 68.54964 45.629919) (width 0.25) (layer B.Cu) (net 28)) + (segment (start 69.668 40.458) (end 69.668 44.511559) (width 0.25) (layer B.Cu) (net 28)) + (segment (start 68.54964 45.629919) (end 66.793009 45.629919) (width 0.25) (layer B.Cu) (net 28)) (segment (start 71.644 39.163) (end 72.453 38.354) (width 0.25) (layer F.Cu) (net 29) (status 20)) (segment (start 71.644 41.722) (end 71.644 39.163) (width 0.25) (layer F.Cu) (net 29) (status 10)) (segment (start 66.36 42.547) (end 66.993 43.18) (width 0.25) (layer F.Cu) (net 30) (status 20)) @@ -4125,18 +4126,21 @@ (segment (start 58.166 42.9515) (end 57.9375 42.9515) (width 0.25) (layer F.Cu) (net 33) (status 30)) (segment (start 58.42 41.1225) (end 58.166 41.3765) (width 0.25) (layer F.Cu) (net 34) (status 30)) (segment (start 58.42 39.788) (end 58.42 41.1225) (width 0.25) (layer F.Cu) (net 34) (status 30)) - (segment (start 67.668 44.046) (end 68.072 44.45) (width 0.25) (layer B.Cu) (net 35)) - (segment (start 67.668 38.12) (end 67.668 44.046) (width 0.25) (layer B.Cu) (net 35) (status 10)) - (segment (start 67.818 44.704) (end 68.072 44.45) (width 0.25) (layer F.Cu) (net 35)) - (segment (start 67.818 45.657) (end 67.818 44.704) (width 0.25) (layer F.Cu) (net 35) (status 10)) - (via (at 68.072 44.45) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 35)) - (segment (start 65.44299 48.03201) (end 61.062923 48.03201) (width 0.25) (layer F.Cu) (net 35)) - (segment (start 67.818 45.657) (end 65.44299 48.03201) (width 0.25) (layer F.Cu) (net 35)) (segment (start 59.131913 46.101) (end 59.238981 46.208068) (width 0.25) (layer B.Cu) (net 35)) - (segment (start 40.64 43.18) (end 43.561 46.101) (width 0.25) (layer B.Cu) (net 35)) + (segment (start 40.64 43.18) (end 43.561 46.101) (width 0.25) (layer B.Cu) (net 35) (status 10)) (segment (start 43.561 46.101) (end 59.131913 46.101) (width 0.25) (layer B.Cu) (net 35)) (via (at 59.238981 46.208068) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 35)) + (via (at 68.621937 44.59401) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 35)) + (segment (start 67.668 43.640073) (end 68.621937 44.59401) (width 0.25) (layer B.Cu) (net 35)) + (segment (start 67.668 38.12) (end 67.668 43.640073) (width 0.25) (layer B.Cu) (net 35)) + (segment (start 67.818 45.657) (end 67.818 45.397947) (width 0.25) (layer F.Cu) (net 35)) + (segment (start 67.818 45.397947) (end 68.621937 44.59401) (width 0.25) (layer F.Cu) (net 35)) (segment (start 61.062923 48.03201) (end 59.238981 46.208068) (width 0.25) (layer F.Cu) (net 35)) + (segment (start 68.20723 48.03201) (end 61.062923 48.03201) (width 0.25) (layer F.Cu) (net 35)) + (segment (start 68.54501 47.69423) (end 68.20723 48.03201) (width 0.25) (layer F.Cu) (net 35)) + (segment (start 68.54501 45.90901) (end 68.54501 47.69423) (width 0.25) (layer F.Cu) (net 35)) + (segment (start 68.293 45.657) (end 68.54501 45.90901) (width 0.25) (layer F.Cu) (net 35)) + (segment (start 67.818 45.657) (end 68.293 45.657) (width 0.25) (layer F.Cu) (net 35)) (zone (net 1) (net_name GND) (layer F.Cu) (tstamp 60B17E61) (hatch edge 0.508) (connect_pads (clearance 0.508)) @@ -4501,15 +4505,10 @@ (xy 68.914488 54.000377) (xy 68.92879 53.855164) (xy 68.936576 53.829499) (xy 68.95849 53.607001) (xy 68.9526 53.547201) (xy 69.345004 53.154798) (xy 69.374001 53.131001) (xy 69.441392 53.048885) (xy 69.468974 53.015277) (xy 69.539546 52.883247) (xy 69.545661 52.863088) (xy 69.583003 52.739986) (xy 69.594 52.628333) (xy 69.594 52.628323) (xy 69.597676 52.591) - (xy 69.594 52.553678) (xy 69.594 51.857488) (xy 69.597676 51.820166) (xy 69.594 51.782843) (xy 69.594 51.782833) - (xy 69.583003 51.67118) (xy 69.539546 51.527919) (xy 69.515278 51.482518) (xy 69.468974 51.395889) (xy 69.397799 51.309163) - (xy 69.374001 51.280165) (xy 69.345003 51.256367) (xy 68.578 50.489365) (xy 68.578 49.915797) (xy 68.631284 49.944278) - (xy 68.7885 49.991969) (xy 68.952 50.008072) (xy 69.190271 50.008072) (xy 69.985201 50.803003) (xy 70.008999 50.832001) - (xy 70.124724 50.926974) (xy 70.256753 50.997546) (xy 70.400014 51.041003) (xy 70.511667 51.052) (xy 70.511676 51.052) - (xy 70.548999 51.055676) (xy 70.586322 51.052) (xy 70.924289 51.052) (xy 70.968226 51.095937) (xy 71.137744 51.209205) - (xy 71.326102 51.287226) (xy 71.526061 51.327) (xy 71.729939 51.327) (xy 71.929898 51.287226) (xy 72.118256 51.209205) - (xy 72.287774 51.095937) (xy 72.431937 50.951774) (xy 72.545205 50.782256) (xy 72.623226 50.593898) (xy 72.663 50.393939) - (xy 72.663 50.190061) (xy 72.624883 49.998432) (xy 72.6905 49.991969) (xy 72.847716 49.944278) (xy 72.992608 49.866831) + (xy 69.596609 52.580166) (xy 71.840512 52.580166) (xy 71.877834 52.583842) (xy 71.915156 52.580166) (xy 71.915167 52.580166) + (xy 72.02682 52.569169) (xy 72.170081 52.525712) (xy 72.30211 52.45514) (xy 72.417835 52.360167) (xy 72.441638 52.331163) + (xy 72.837998 51.934803) (xy 72.867001 51.911001) (xy 72.961974 51.795276) (xy 73.032546 51.663247) (xy 73.076003 51.519986) + (xy 73.087 51.408333) (xy 73.087 51.408325) (xy 73.090676 51.371) (xy 73.087 51.333675) (xy 73.087 49.789365) (xy 73.119606 49.762606) (xy 73.152 49.723134) (xy 73.184394 49.762606) (xy 73.311392 49.866831) (xy 73.456284 49.944278) (xy 73.6135 49.991969) (xy 73.777 50.008072) (xy 74.177 50.008072) (xy 74.3405 49.991969) (xy 74.497716 49.944278) (xy 74.642608 49.866831) (xy 74.769606 49.762606) (xy 74.857916 49.655) (xy 75.344843 49.655) (xy 75.369733 49.671631) diff --git a/pcb/fiatlux.kiplot.yaml b/pcb/fiatlux.kiplot.yaml new file mode 100644 index 0000000..a035fc6 --- /dev/null +++ b/pcb/fiatlux.kiplot.yaml @@ -0,0 +1,139 @@ +# Example KiPlot config file +kiplot: + version: 1 + +preflight: + run_erc: true + update_xml: true + run_drc: true + check_zone_fills: false + ignore_unconnected: false + +# global: +# kiauto_wait_start: 60 +# kiauto_time_out_scale: 2 + +filters: + - name: fix_rotation + comment: 'Adjust rotation for JLC' + type: rot_footprint + + - name: only_jlc_parts + comment: 'Only parts with JLC code' + type: generic + include_only: + - column: 'LCSC#' + regex: '^C\d+' + +variants: + - name: rotated + comment: 'Just a place holder for the rotation filter' + type: kibom + variant: rotated + pre_transform: fix_rotation + +outputs: + - name: 'print_sch' + comment: "Print schematic (PDF)" + type: pdf_sch_print + dir: . + options: + output: fiatlux.pdf + + - name: 'print_front' + comment: "Print F.Cu+Dwgs.User" + type: pdf_pcb_print + dir: . + options: + output_name: fiatlux-top.pdf + layers: + - layer: B.Cu + - layer: F.SilkS + + - name: 'gerbers' + comment: "Gerbers for the board house" + type: gerber + dir: fab + options: + # generic layer options + exclude_edge_layer: true + exclude_pads_from_silkscreen: false + use_aux_axis_as_origin: false + plot_sheet_reference: false + plot_footprint_refs: true + plot_footprint_values: true + force_plot_invisible_refs_vals: false + tent_vias: true + + # gerber options + line_width: 0.1 + subtract_mask_from_silk: false + use_protel_extensions: false + gerber_precision: 4.6 + create_gerber_job_file: true + use_gerber_x2_attributes: true + use_gerber_net_attributes: true + + layers: + - layer: F.Cu + suffix: F_Cu + - layer: B.Cu + suffix: B_Cu + - layer: F.SilkS + suffix: F_SilkS + - layer: B.SilkS + suffix: B_SilkS + - layer: F.Paste + suffix: F_Paste + - layer: B.Paste + suffix: B_Paste + - layer: F.Mask + suffix: F_Mask + - layer: B.Mask + suffix: B_Mask + - layer: Edge.Cuts + suffix: Edge_Cuts + + - name: 'position' + comment: "Pick and place file, JLC style" + type: position + options: + variant: rotated + output: '%f-top-pos.%x' + format: CSV + units: millimeters + separate_files_for_front_and_back: false + only_smd: true + columns: + - id: Ref + name: Designator + - Val + - Package + - id: PosX + name: "Mid X" + - id: PosY + name: "Mid Y" + - id: Rot + name: Rotation + - id: Side + name: Layer + + - name: 'bom' + comment: "BoM for JLC" + type: bom + options: + output: '%f.%x' + exclude_filter: 'only_jlc_parts' + ref_separator: ',' + columns: + - field: Value + name: Comment + - field: References + name: Designator + - Footprint + - field: 'LCSC#' + name: 'LCSC Part #' + csv: + hide_pcb_info: true + hide_stats_info: true + quote_all: true \ No newline at end of file diff --git a/pcb/fiatlux.pro b/pcb/fiatlux.pro index 9ec9fb9..471e606 100644 --- a/pcb/fiatlux.pro +++ b/pcb/fiatlux.pro @@ -1,4 +1,4 @@ -update=Di 04 Mai 2021 20:32:15 CEST +update=Mo 12 Jul 2021 16:48:53 CEST version=1 last_client=kicad [general] @@ -241,7 +241,7 @@ Enabled=0 [pcbnew/Netclasses] [pcbnew/Netclasses/Default] Name=Default -Clearance=0.2 +Clearance=0.127 TrackWidth=0.25 ViaDiameter=0.8 ViaDrill=0.4 diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..416ba65 --- /dev/null +++ b/shell.nix @@ -0,0 +1 @@ +import ./modules/nix/shell-esp-open-rtos.nix {} diff --git a/webapp/.gitignore b/webapp/.gitignore new file mode 100644 index 0000000..dd60b59 --- /dev/null +++ b/webapp/.gitignore @@ -0,0 +1,3 @@ +node_modules/ +src/gen/ +package-lock.json \ No newline at end of file