From b8b51fd7c8b2610762aaf2bd270951411a3fafb0 Mon Sep 17 00:00:00 2001 From: Apehaenger Date: Thu, 3 Oct 2024 22:33:58 +0200 Subject: [PATCH] Support for SA900 CoverUI with STM32 MCU and ... (#11) * Add RM-ECOW-V1.1.0 STM32 support * Remove Picoprobe support * Add new variant to CI * Add MOD_HALL to RM-ECOW-V1.0.0 * Restructure docs and add HALL support to RM-ECOW-V1.0.0 * Fix heap overflow * Some minor adaptions * Refactor stock YF part * Fix missing artifact * Fix missing artifact --- .github/workflows/ci.yaml | 8 +- .../CoverUI/YardForce/ButtonDebouncer.cpp | 50 - Firmware/CoverUI/YardForce/Buttons.cpp | 116 - Firmware/CoverUI/YardForce/Display.cpp | 86 - Firmware/CoverUI/YardForce/Emergency.cpp | 94 - Firmware/CoverUI/YardForce/Hatch.cpp | 60 - Firmware/CoverUI/YardForce/LEDcontrol.cpp | 197 +- .../README-MOD-YF-C500B_RM-ECOW-V1.3.1.md | 64 + .../README-MOD-YF-C500_RM-ECOW-V1.3.0.md | 65 + .../README-MOD-YF-SASCNX_RM-EC3-V1.1.md | 68 + .../README-MOD-YF-SASCNX_RM-ECOW-V1.0.0.md | 66 + .../README-MOD-YF-SASCNX_RM-ECOW-V1.1.0.md | 68 + .../README-MOD-YF-SASC_PRO_HS49067.md | 24 + Firmware/CoverUI/YardForce/README.md | 427 +- ...W-V1.1.jpg => IMG_Overview_RM-EC3-V11.jpg} | Bin .../IMG_PCB_Changes_RM-ECOW-V100_Hall.jpg | Bin 0 -> 145739 bytes .../IMG_PCB_Changes_RM-ECOW-V100_Hall2.jpg | Bin 0 -> 212387 bytes .../YardForce/images/IMG_Picoprobe-open1.jpg | Bin 208552 -> 0 bytes .../YardForce/images/IMG_Picoprobe-open2.jpg | Bin 225544 -> 0 bytes .../YardForce/images/IMG_Picoprobe.jpg | Bin 226075 -> 0 bytes .../CoverUI/YardForce/include/ABC_Display.hpp | 120 + .../CoverUI/YardForce/include/ABC_Hatch.hpp | 64 + .../YardForce/include/ButtonDebouncer.hpp | 67 +- .../CoverUI/YardForce/include/Buttons.hpp | 178 +- .../CoverUI/YardForce/include/Display.hpp | 70 - .../CoverUI/YardForce/include/Emergency.hpp | 112 +- Firmware/CoverUI/YardForce/include/Hatch.hpp | 39 - .../CoverUI/YardForce/include/LEDcontrol.hpp | 67 +- Firmware/CoverUI/YardForce/include/main.h | 17 +- .../include/model/Display_RM-EC3-V11.cpp | 349 - .../include/model/Display_RM-EC3-V11.hpp | 70 - .../include/model/Display_SAxPRO.cpp | 347 - .../include/model/Display_SAxPRO.hpp | 77 - .../include/model/LEDcontrol_C500.cpp | 121 - .../include/model/LEDcontrol_C500.hpp | 62 - .../include/model/LEDcontrol_RM-EC3-V11.cpp | 169 - .../include/model/LEDcontrol_RM-EC3-V11.hpp | 45 - .../include/model/LEDcontrol_RM-ECOW-V100.cpp | 168 - .../include/model/LEDcontrol_RM-ECOW-V100.hpp | 60 - .../include/model/LEDcontrol_RM-ECOW-V110.cpp | 152 - .../include/model/LEDcontrol_RM-ECOW-V110.hpp | 59 - .../include/model/LEDcontrol_SAxPRO.cpp | 40 - .../include/model/LEDcontrol_SAxPRO.hpp | 22 - .../YardForce/include/model/buttons_C500.cpp | 49 - .../YardForce/include/model/buttons_C500.h | 37 - .../include/model/buttons_RM-EC3-V11.cpp | 53 - .../include/model/buttons_RM-EC3-V11.h | 43 - .../include/model/buttons_RM-ECOW-V100.cpp | 44 - .../include/model/buttons_RM-ECOW-V100.h | 33 - .../include/model/buttons_RM-ECOW-V110.cpp | 44 - .../include/model/buttons_RM-ECOW-V110.h | 32 - .../include/model/buttons_SAxPRO.cpp | 23 - .../YardForce/include/model/buttons_SAxPRO.h | 26 - .../include/model/emergency_C500.cpp | 21 - .../YardForce/include/model/emergency_C500.h | 25 - .../include/model/emergency_RM-EC3-V11.cpp | 28 - .../include/model/emergency_RM-EC3-V11.h | 28 - .../include/model/emergency_RM-ECOW-V100.cpp | 19 - .../include/model/emergency_RM-ECOW-V100.h | 23 - .../include/model/emergency_RM-ECOW-V110.cpp | 28 - .../include/model/emergency_RM-ECOW-V110.h | 28 - .../include/model/hatch_RM-EC3-V11.cpp | 53 - .../include/model/hatch_RM-EC3-V11.hpp | 26 - .../include/model/hatch_RM-ECOW-V100.cpp | 46 - .../include/model/hatch_RM-ECOW-V100.hpp | 26 - .../include/model/hatch_RM-ECOW-V110.cpp | 43 - .../include/model/hatch_RM-ECOW-V110.hpp | 26 - .../YardForce/include/model/hatch_SAxPRO.cpp | 53 - .../YardForce/include/model/hatch_SAxPRO.hpp | 25 - .../CoverUI/YardForce/include/model_C500.h | 25 - .../YardForce/include/model_RM-EC3-V11.h | 27 - .../YardForce/include/model_RM-ECOW-V100.h | 26 - .../YardForce/include/model_RM-ECOW-V110.h | 26 - Firmware/CoverUI/YardForce/main.cpp | 140 +- .../YardForce/model/C500/LEDcontrol.hpp | 81 + .../CoverUI/YardForce/model/C500/assembly.cpp | 96 + .../CoverUI/YardForce/model/C500/assembly.hpp | 98 + .../YardForce/model/RM-EC3-V11/Display.cpp | 329 + .../YardForce/model/RM-EC3-V11/Display.hpp | 68 + .../YardForce/model/RM-EC3-V11/LEDcontrol.hpp | 98 + .../YardForce/model/RM-EC3-V11/assembly.cpp | 144 + .../YardForce/model/RM-EC3-V11/assembly.hpp | 93 + .../YardForce/model/RM-ECOW-V100/assembly.cpp | 104 + .../YardForce/model/RM-ECOW-V100/assembly.hpp | 93 + .../YardForce/model/RM-ECOW-V110/assembly.cpp | 103 + .../YardForce/model/RM-ECOW-V110/assembly.hpp | 91 + .../YardForce/model/RM-ECOW-V1x/Hatch.hpp | 50 + .../model/RM-ECOW-V1x/LEDcontrol.hpp | 115 + .../YardForce/model/SAxPRO/Display.cpp | 328 + .../YardForce/model/SAxPRO/Display.hpp | 75 + .../YardForce/model/SAxPRO/assembly.cpp | 94 + .../YardForce/model/SAxPRO/assembly.hpp | 58 + Firmware/CoverUI/platformio.ini | 313 +- .../SA,SC-Type 10Button-12LED Board.kicad_sch | 11227 +++++++++++----- .../btn.kicad_sch | 651 +- .../btns-leds.kicad_sch | 2675 ++-- .../led.kicad_sch | 1031 +- .../mcu_stm32f030.kicad_sch | 7341 +++++++--- README.md | 12 +- 99 files changed, 20131 insertions(+), 10231 deletions(-) delete mode 100644 Firmware/CoverUI/YardForce/ButtonDebouncer.cpp delete mode 100644 Firmware/CoverUI/YardForce/Buttons.cpp delete mode 100644 Firmware/CoverUI/YardForce/Display.cpp delete mode 100644 Firmware/CoverUI/YardForce/Emergency.cpp delete mode 100644 Firmware/CoverUI/YardForce/Hatch.cpp create mode 100644 Firmware/CoverUI/YardForce/README-MOD-YF-C500B_RM-ECOW-V1.3.1.md create mode 100644 Firmware/CoverUI/YardForce/README-MOD-YF-C500_RM-ECOW-V1.3.0.md create mode 100644 Firmware/CoverUI/YardForce/README-MOD-YF-SASCNX_RM-EC3-V1.1.md create mode 100644 Firmware/CoverUI/YardForce/README-MOD-YF-SASCNX_RM-ECOW-V1.0.0.md create mode 100644 Firmware/CoverUI/YardForce/README-MOD-YF-SASCNX_RM-ECOW-V1.1.0.md create mode 100644 Firmware/CoverUI/YardForce/README-MOD-YF-SASC_PRO_HS49067.md rename Firmware/CoverUI/YardForce/images/{IMG_Overview_RM-ECOW-V1.1.jpg => IMG_Overview_RM-EC3-V11.jpg} (100%) create mode 100644 Firmware/CoverUI/YardForce/images/IMG_PCB_Changes_RM-ECOW-V100_Hall.jpg create mode 100644 Firmware/CoverUI/YardForce/images/IMG_PCB_Changes_RM-ECOW-V100_Hall2.jpg delete mode 100644 Firmware/CoverUI/YardForce/images/IMG_Picoprobe-open1.jpg delete mode 100644 Firmware/CoverUI/YardForce/images/IMG_Picoprobe-open2.jpg delete mode 100644 Firmware/CoverUI/YardForce/images/IMG_Picoprobe.jpg create mode 100644 Firmware/CoverUI/YardForce/include/ABC_Display.hpp create mode 100644 Firmware/CoverUI/YardForce/include/ABC_Hatch.hpp delete mode 100644 Firmware/CoverUI/YardForce/include/Display.hpp delete mode 100644 Firmware/CoverUI/YardForce/include/Hatch.hpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/Display_RM-EC3-V11.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/Display_RM-EC3-V11.hpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/Display_SAxPRO.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/Display_SAxPRO.hpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/LEDcontrol_C500.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/LEDcontrol_C500.hpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-EC3-V11.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-EC3-V11.hpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V100.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V100.hpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V110.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V110.hpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/LEDcontrol_SAxPRO.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/LEDcontrol_SAxPRO.hpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/buttons_C500.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/buttons_C500.h delete mode 100644 Firmware/CoverUI/YardForce/include/model/buttons_RM-EC3-V11.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/buttons_RM-EC3-V11.h delete mode 100644 Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V100.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V100.h delete mode 100644 Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V110.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V110.h delete mode 100644 Firmware/CoverUI/YardForce/include/model/buttons_SAxPRO.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/buttons_SAxPRO.h delete mode 100644 Firmware/CoverUI/YardForce/include/model/emergency_C500.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/emergency_C500.h delete mode 100644 Firmware/CoverUI/YardForce/include/model/emergency_RM-EC3-V11.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/emergency_RM-EC3-V11.h delete mode 100644 Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V100.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V100.h delete mode 100644 Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V110.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V110.h delete mode 100644 Firmware/CoverUI/YardForce/include/model/hatch_RM-EC3-V11.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/hatch_RM-EC3-V11.hpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V100.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V100.hpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V110.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V110.hpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/hatch_SAxPRO.cpp delete mode 100644 Firmware/CoverUI/YardForce/include/model/hatch_SAxPRO.hpp delete mode 100644 Firmware/CoverUI/YardForce/include/model_C500.h delete mode 100644 Firmware/CoverUI/YardForce/include/model_RM-EC3-V11.h delete mode 100644 Firmware/CoverUI/YardForce/include/model_RM-ECOW-V100.h delete mode 100644 Firmware/CoverUI/YardForce/include/model_RM-ECOW-V110.h create mode 100644 Firmware/CoverUI/YardForce/model/C500/LEDcontrol.hpp create mode 100644 Firmware/CoverUI/YardForce/model/C500/assembly.cpp create mode 100644 Firmware/CoverUI/YardForce/model/C500/assembly.hpp create mode 100644 Firmware/CoverUI/YardForce/model/RM-EC3-V11/Display.cpp create mode 100644 Firmware/CoverUI/YardForce/model/RM-EC3-V11/Display.hpp create mode 100644 Firmware/CoverUI/YardForce/model/RM-EC3-V11/LEDcontrol.hpp create mode 100644 Firmware/CoverUI/YardForce/model/RM-EC3-V11/assembly.cpp create mode 100644 Firmware/CoverUI/YardForce/model/RM-EC3-V11/assembly.hpp create mode 100644 Firmware/CoverUI/YardForce/model/RM-ECOW-V100/assembly.cpp create mode 100644 Firmware/CoverUI/YardForce/model/RM-ECOW-V100/assembly.hpp create mode 100644 Firmware/CoverUI/YardForce/model/RM-ECOW-V110/assembly.cpp create mode 100644 Firmware/CoverUI/YardForce/model/RM-ECOW-V110/assembly.hpp create mode 100644 Firmware/CoverUI/YardForce/model/RM-ECOW-V1x/Hatch.hpp create mode 100644 Firmware/CoverUI/YardForce/model/RM-ECOW-V1x/LEDcontrol.hpp create mode 100644 Firmware/CoverUI/YardForce/model/SAxPRO/Display.cpp create mode 100644 Firmware/CoverUI/YardForce/model/SAxPRO/Display.hpp create mode 100644 Firmware/CoverUI/YardForce/model/SAxPRO/assembly.cpp create mode 100644 Firmware/CoverUI/YardForce/model/SAxPRO/assembly.hpp diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 11d3190..5bd75ec 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -58,7 +58,7 @@ jobs: run: pip install --upgrade platformio - name: Run PlatformIO - run: pio run -d Firmware/CoverUI --environment YF_C500_STM32 --environment YF_C500_STM32_RAIN --environment YF_C500_STM32_RAIN_HALL --environment YF_C500_STM32_HALL --environment YF_C500_GD32 --environment YF_C500_GD32_RAIN --environment YF_C500_GD32_RAIN_HALL --environment YF_C500_GD32_HALL --environment YF_RM-ECOW-V100_STM32 --environment YF_RM-ECOW-V100_STM32_STOP --environment YF_RM-EC3-V11_STM32 --environment YF_RM-EC3-V11_STM32_HALL --environment YF_RM-EC3-V11_STM32_HALL_STOP --environment YF_RM-EC3-V11_STM32_STOP --environment YF_SAXPRO_STM32 --environment YF_RM-ECOW-V110_GD32 --environment YF_RM-ECOW-V110_GD32_HALL --environment YF_RM-ECOW-V110_GD32_HALL_STOP --environment YF_RM-ECOW-V110_GD32_STOP + run: pio run -d Firmware/CoverUI - name: Copy Artifacts run: | @@ -73,6 +73,8 @@ jobs: cp Firmware/CoverUI/.pio/build/YF_C500_GD32_HALL/firmware.bin ./artifacts/firmware_C500_GD32_HALL.bin cp Firmware/CoverUI/.pio/build/YF_RM-ECOW-V100_STM32/firmware.bin ./artifacts/firmware_RM-ECOW-V100_STM32.bin cp Firmware/CoverUI/.pio/build/YF_RM-ECOW-V100_STM32_STOP/firmware.bin ./artifacts/firmware_RM-ECOW-V100_STM32_STOP.bin + cp Firmware/CoverUI/.pio/build/YF_RM-ECOW-V100_STM32_HALL/firmware.bin ./artifacts/firmware_RM-ECOW-V100_STM32_HALL.bin + cp Firmware/CoverUI/.pio/build/YF_RM-ECOW-V100_STM32_HALL_STOP/firmware.bin ./artifacts/firmware_RM-ECOW-V100_STM32_HALL_STOP.bin cp Firmware/CoverUI/.pio/build/YF_RM-EC3-V11_STM32/firmware.bin ./artifacts/firmware_RM-EC3-V11_STM32.bin cp Firmware/CoverUI/.pio/build/YF_RM-EC3-V11_STM32_HALL/firmware.bin ./artifacts/firmware_RM-EC3-V11_STM32_HALL.bin cp Firmware/CoverUI/.pio/build/YF_RM-EC3-V11_STM32_HALL_STOP/firmware.bin ./artifacts/firmware_RM-EC3-V11_STM32_HALL_STOP.bin @@ -82,6 +84,10 @@ jobs: cp Firmware/CoverUI/.pio/build/YF_RM-ECOW-V110_GD32_HALL/firmware.bin ./artifacts/firmware_RM-ECOW-V110_GD32_HALL.bin cp Firmware/CoverUI/.pio/build/YF_RM-ECOW-V110_GD32_HALL_STOP/firmware.bin ./artifacts/firmware_RM-ECOW-V110_GD32_HALL_STOP.bin cp Firmware/CoverUI/.pio/build/YF_RM-ECOW-V110_GD32_STOP/firmware.bin ./artifacts/firmware_RM-ECOW-V110_GD32_STOP.bin + cp Firmware/CoverUI/.pio/build/YF_RM-ECOW-V110_STM32/firmware.bin ./artifacts/firmware_RM-ECOW-V110_STM32.bin + cp Firmware/CoverUI/.pio/build/YF_RM-ECOW-V110_STM32_HALL/firmware.bin ./artifacts/firmware_RM-ECOW-V110_STM32_HALL.bin + cp Firmware/CoverUI/.pio/build/YF_RM-ECOW-V110_STM32_HALL_STOP/firmware.bin ./artifacts/firmware_RM-ECOW-V110_STM32_HALL_STOP.bin + cp Firmware/CoverUI/.pio/build/YF_RM-ECOW-V110_STM32_STOP/firmware.bin ./artifacts/firmware_RM-ECOW-V110_STM32_STOP.bin - name: Step 3 - Use the Upload Artifact GitHub Action uses: actions/upload-artifact@v3 diff --git a/Firmware/CoverUI/YardForce/ButtonDebouncer.cpp b/Firmware/CoverUI/YardForce/ButtonDebouncer.cpp deleted file mode 100644 index 41c67e0..0000000 --- a/Firmware/CoverUI/YardForce/ButtonDebouncer.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/** - * @file ButtonDebouncer.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce CoverUI Button-Debouncer class for OpenMower https://github.com/ClemensElflein/OpenMower - * Debouncing is done by continuos simple shifting the port states into an state array for later processing. - * See Jack Ganssle debouncing http://www.ganssle.com/debouncing-pt2.htm - * For code simplicity/speed, I debounce all pins, regardless if it has a button or not. Button separation has to be done by calling class. - * @version 0.3 - * @date 2023-10-26 - * - * @copyright Copyright (c) 2023 - * - */ -#include "include/ButtonDebouncer.hpp" - -void ButtonDebouncer::process_state(const uint32_t gpio_port_nr) // Has to get called regulary i.e. by timer (5ms) and store the (buttons) port state within states_ array -{ -#ifdef MCU_STM32 - auto gpio_port = get_GPIO_Port(gpio_port_nr); - states_[state_index_] = gpio_port->IDR ^ 0xFFFF; // XOR changes for pull-up states_ -#else - states_[state_index_] = GPIO_ISTAT(gpio_port[gpio_port_nr]) ^ 0xFFFF; // XOR changes for pull-up states_ -#endif - - // Debounce - uint16_t laststate_debounced_ = state_debounced_; - unsigned int i; - for (i = 0, state_debounced_ = 0xFFFF; i < NUM_BUTTON_STATES; i++) - state_debounced_ &= states_[i]; - - // Circular buffer index - state_index_++; - if (state_index_ >= NUM_BUTTON_STATES) - state_index_ = 0; - - // Save what changed - state_changed_ = state_debounced_ ^ laststate_debounced_; -}; - -/** - * @brief Return boolean true if the given pin's button is pressed. - * Take into notice that the returned state is already debounced. - * - * @param pin digital_pin - * @return true if pressed, false if not pressed - */ -bool ButtonDebouncer::is_pressed(uint8_t pin) -{ - return state_debounced_ & digitalPinToBitMask(pin); -}; diff --git a/Firmware/CoverUI/YardForce/Buttons.cpp b/Firmware/CoverUI/YardForce/Buttons.cpp deleted file mode 100644 index 6c77258..0000000 --- a/Firmware/CoverUI/YardForce/Buttons.cpp +++ /dev/null @@ -1,116 +0,0 @@ -/** - * @file Buttons.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce CoverUI Buttons class for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.6 - * @date 2023-11-05 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include -#include -#include "include/Buttons.hpp" -#include "../BttnCtl.h" - -#ifdef MCU_STM32 -#define DIGITAL_PIN_TO_PORT_NR(p) (STM_PORT(digitalPinToPinName(p))) -#else // MCU_GD32 -#define DIGITAL_PIN_TO_PORT_NR(p) (GD_PORT_GET(DIGITAL_TO_PINNAME(p))) -#endif - -extern void sendMessage(void *message, size_t size); - -/** - * @brief Setup GPIOs - * - */ -void Buttons::setup() -{ - for (auto const &it : kBtnDefByNumMap) // Loop over Button-Num -> button pin map - { - // Create debouncer if not already exists for this Pin's GPIO_Port_Nr - uint32_t gpio_port_nr = DIGITAL_PIN_TO_PORT_NR(it.second.pin); - auto debouncer = debouncer_by_gpio_port_nr_map.find(gpio_port_nr); - if (debouncer == debouncer_by_gpio_port_nr_map.end()) - debouncer_by_gpio_port_nr_map.insert(std::pair(gpio_port_nr, ButtonDebouncer())); - - pinMode(it.second.pin, INPUT_PULLUP); - } -}; - -/** - * @brief Process GPIO states by debouncer. Has to get called regulary i.e. by timer (5ms) - * - */ -void Buttons::process_states() -{ - for (std::map::iterator it = debouncer_by_gpio_port_nr_map.begin(); it != debouncer_by_gpio_port_nr_map.end(); ++it) - it->second.process_state(it->first); -}; - -/** - * @brief Get corresponding LED num for button num - * - * @param button_nr - * @return uint8_t LED num. -1 of not exists. - */ -int8_t Buttons::get_led(uint8_t button_nr) -{ - auto btn_def_it = kBtnDefByNumMap.find(button_nr); // Find button_nr and get iterator pair - if (btn_def_it != kBtnDefByNumMap.end()) - return btn_def_it->second.led_num; - - return -1; -} - -/** - * @brief Return boolean true if the given button number is pressed. - * Take into notice that the returned state is already debounced. - * - * @param uint8_t button_nr - * @return true if pressed, false if not pressed - */ -bool Buttons::is_pressed(uint8_t button_nr) -{ - auto btn_def_it = kBtnDefByNumMap.find(button_nr); // Find button_nr and get iterator pair - if (btn_def_it != kBtnDefByNumMap.end()) - { - uint32_t gpio_port_nr = DIGITAL_PIN_TO_PORT_NR(btn_def_it->second.pin); - auto debouncer_it = debouncer_by_gpio_port_nr_map.find(gpio_port_nr); // Find debouncer and get iterator pair - if (debouncer_it != debouncer_by_gpio_port_nr_map.end()) - { - return debouncer_it->second.is_pressed(btn_def_it->second.pin); - } - } - return false; -}; - -/** - * @brief Return ButtonNum of the first detected pressed button. - * Take into notice that the returned state is already debounced. - * - * @return uint8_t 0 = none pressed, >0 = ButtonNum - */ -uint8_t Buttons::is_pressed() -{ - for (auto const &it : kBtnDefByNumMap) // Loop over Button-Num -> button pin map - if (is_pressed(it.first)) - return it.first; - - return 0; -}; - -/** - * @brief Send 'rain' message via COBS with last read rain-sensor- value (together with (currently static) threshold) - * - */ -void Buttons::send(uint16_t button_id, uint8_t press_duration) -{ - msg_event_button msg = { - .type = Get_Button, - .button_id = button_id, - .press_duration = press_duration}; - sendMessage(&msg, sizeof(msg)); -} diff --git a/Firmware/CoverUI/YardForce/Display.cpp b/Firmware/CoverUI/YardForce/Display.cpp deleted file mode 100644 index 28438ca..0000000 --- a/Firmware/CoverUI/YardForce/Display.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/** - * @file Display.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce CoverUI abstract display class for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-27 - * - * @copyright Copyright (c) 2023 - */ -#include "include/main.h" -#include "include/Display.hpp" -#include "include/subscription.h" - -namespace yardforce -{ - namespace display - { - - /** - * @brief Tell LVGL that milliseconds have been elapsed. - * Required for anim or similar. Should be called in a high priority routine like hwtimer. - * - * @param ms - */ - void Display::tick_inc(uint8_t ms) - { - lv_tick_inc(ms); - } - - void Display::loop_low_prio() - { - lv_timer_handler(); - - subscription::subscribe((Topic_set_ll_status | Topic_set_hl_state), 500); - - check_backlight(); - } - - /** - * @brief Set backlight LED state and set/reset timeout counter - * - * @param state LED_state, default LED_on - * @param timeout in ms when to switch off - */ - void Display::set_backlight(LED_state t_state, uint32_t t_timeout) - { - ::leds.set(config.backlight_led_num, t_state); - if (t_state != LED_off) - { - backlight_timeout = millis() + t_timeout; - } - backlight_state = t_state; - } - - LED_state Display::check_backlight() - { - if (backlight_state == LED_off) - return backlight_state; - - if (millis() < backlight_timeout) - return backlight_state; - - set_backlight(LED_off); - return backlight_state; - } - - void Display::start_anncmnt(uint32_t t_timeout_ms, AnncmntType t_type) - { - anncmnt = { - .timeout = millis() + t_timeout_ms, - .type = t_type}; - } - - Display::AnncmntType Display::get_anncmnt() - { - if (!anncmnt.timeout) - return AnncmntType::none; - - if (millis() < anncmnt.timeout) - return anncmnt.type; - - anncmnt.timeout = 0; - return AnncmntType::none; - } - } // namespace display -} // namespace yardforce \ No newline at end of file diff --git a/Firmware/CoverUI/YardForce/Emergency.cpp b/Firmware/CoverUI/YardForce/Emergency.cpp deleted file mode 100644 index 5dbabcd..0000000 --- a/Firmware/CoverUI/YardForce/Emergency.cpp +++ /dev/null @@ -1,94 +0,0 @@ -/** - * @file Emergency.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce CoverUI Emergency class for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.3 - * @date 2023-11-05 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "include/Emergency.hpp" -#include "../BttnCtl.h" - -extern void sendMessage(void *message, size_t size); - -void Emergency::setup() -{ - for (size_t i = 0; i < kNumEmergencies; i++) - { - auto pin_state = *(kEmergencyPinStatesPtr + i); - pinMode(pin_state.pin, pin_state.pin_mode); - } -}; - -/** - * @brief Read all related hall-sensors and update state_ - * - */ -void Emergency::read() -{ - state_ = 0; // We might have more emergency sensors and switch than OM Emergency_states. So we need to OR them instead of assign them 1:1 - for (size_t i = 0; i < kNumEmergencies; i++) - { - auto pin_state = *(kEmergencyPinStatesPtr + i); - if (digitalRead(pin_state.pin) == HIGH) - state_ |= pin_state.state; - } - if (state_) - state_ |= Emergency_state::Emergency_latch; -}; - -/** - * @brief Send 'emergency' message via COBS with latest state_ - * - */ -void Emergency::send() -{ - msg_event_emergency msg = { - .type = Get_Emergency, - .state = state_}; - sendMessage(&msg, sizeof(msg)); - state_last_sent_ = state_; -}; - -/** - * @brief read() related hall sensors and send if a new emergency occurred. - * Get called constantly by quick (5ms) timer - * - */ -void Emergency::read_and_send_if_emergency() -{ - read(); - - if (state_ & Emergency_state::Emergency_latch && !(state_last_sent_ & Emergency_state::Emergency_latch)) - { - send(); - next_periodic_cycle = millis() + PERIODIC_SEND_CYCLE; - } -}; - -/** - * @brief Periodically send emergency state. - * Get called by fast (100ms) timer. - * An active emergency state get send on each call. - * An inactive emergency state get only every PERIODIC_SEND_CYCLE - */ -void Emergency::periodic_send() -{ - // Active emergency - if (state_ & Emergency_state::Emergency_latch) - { - send(); - next_periodic_cycle = millis() + PERIODIC_SEND_CYCLE; - return; - } - - // Inactive emergency - if (millis() < next_periodic_cycle) - return; - - send(); - next_periodic_cycle = millis() + PERIODIC_SEND_CYCLE; -}; diff --git a/Firmware/CoverUI/YardForce/Hatch.cpp b/Firmware/CoverUI/YardForce/Hatch.cpp deleted file mode 100644 index d8e5a0a..0000000 --- a/Firmware/CoverUI/YardForce/Hatch.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/** - * @file Hatch.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce CoverUI Hatch for OpenMower https://github.com/ClemensElflein/OpenMower - * This is for YardForce models (like SA, SC or NX), whose CoverUI is behind a hatch. - * Those need some special (button) handling because opening the hatch (to reach the buttons), triggers stop-emergency. - * @version 0.2 - * @date 2023-11-05 - * - * @copyright Copyright (c) 2023 - * - */ - -#include -// #include -#include -// #include "include/Hatch.hpp" -// #include "include/LEDcontrol.hpp" -#include "include/main.h" - -/** - * @brief Handle any kind of pressed button result like: - * 1. Convert a button id to some other value - * 2. Trigger count-down for hatch-close - * 3. Queue fake (delayed) buttons - * 4. Handle fake_button_queue and probably directly send Get_Button packet - * - * @param button_id - * @param press_time - * @return unsigned int of the probably converted or ignored button ID - */ -unsigned int Hatch::handle_button(unsigned int button_id, uint32_t press_time) -{ - leds.set(LED_NUM_LIFTED, LED_blink_slow); - - return button_id + 0; -}; - -void Hatch::queue_button(uint8_t button_id, uint8_t press_duration, uint32_t delay) -{ - fake_button_queue.push_back({button_id, press_duration, millis() + delay}); -}; - -/** - * @brief Loop over fake_button_queue and process(send) ready ones - */ -void Hatch::process_queued() -{ - if (fake_button_queue.empty()) - return; - - for (auto it = fake_button_queue.begin(); it != fake_button_queue.end(); ++it) - { - if (millis() >= it->delay_end) - { - buttons.send(it->button_id, it->press_duration); - it = fake_button_queue.erase(it); - } - } -}; diff --git a/Firmware/CoverUI/YardForce/LEDcontrol.cpp b/Firmware/CoverUI/YardForce/LEDcontrol.cpp index 94c820d..81d6b12 100644 --- a/Firmware/CoverUI/YardForce/LEDcontrol.cpp +++ b/Firmware/CoverUI/YardForce/LEDcontrol.cpp @@ -2,33 +2,28 @@ * @file LEDcontrol.cpp * @author Apehaenger (joerg@ebeling.ws) * @brief YardForce Classic 500 CoverUI LED driver for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.3 - * @date 2023-10-25 + * @version 0.4 + * @date 2024-10-02 * - * @copyright Copyright (c) 2023 + * @copyright Copyright (c) 2023, 2024 * */ -#include -#include #include "include/LEDcontrol.hpp" -#include "../BttnCtl.h" // LED_state is defined in BttnCtl.h -LEDcontrol::LEDcontrol(const uint32_t *t_kPinByLedNumPtr, const size_t t_kNumLeds) : kPinByLedNumPtr(t_kPinByLedNumPtr), kNumLeds(t_kNumLeds){}; -LEDcontrol::LEDcontrol(const uint32_t *t_kPinByLedNumPtr, const size_t t_kNumLeds, void (LEDcontrol::*t_set_base10_leds_cb)(char digit)) : kPinByLedNumPtr(t_kPinByLedNumPtr), kNumLeds(t_kNumLeds), set_base10_leds_cb(t_set_base10_leds_cb){}; +#include +#include -/** - * @brief Setup LED GPIOs - * - */ -void LEDcontrol::setup() -{ - for (size_t p = 0; p < kNumLeds; p++) - { +#include "../BttnCtl.h" // LED_state is defined in BttnCtl.h + +LEDcontrol::LEDcontrol(const uint32_t *t_kPinByLedNumPtr, const size_t t_kNumLeds, void (LEDcontrol::*t_set_base10_leds_cb)(char digit)) + : kPinByLedNumPtr(t_kPinByLedNumPtr), kNumLeds(t_kNumLeds), set_base10_leds_cb(t_set_base10_leds_cb) { + // Set GPIO modes + for (size_t p = 0; p < kNumLeds; p++) { auto pin = *(kPinByLedNumPtr + p); if (pin != LED_PIN_NC) pinMode(pin, OUTPUT); } -} +}; /** * @brief Set any of known LED_state states for the given LED num. @@ -37,23 +32,20 @@ void LEDcontrol::setup() * @param state * @param change_state Indicate if the state get written to led_states_bin_ buffer */ -void LEDcontrol::set(uint8_t led_num, LED_state state, bool change_state) -{ +void LEDcontrol::set(uint8_t led_num, LED_state state, bool change_state) { auto pin = *(kPinByLedNumPtr + led_num); - if (pin != LED_PIN_NC) - { - switch (state) - { - case LED_state::LED_on: - digitalWrite(pin, HIGH); - break; - case LED_state::LED_off: - digitalWrite(pin, LOW); - break; - case LED_state::LED_blink_slow: - case LED_state::LED_blink_fast: - // Get handled by timers - break; + if (pin != LED_PIN_NC) { + switch (state) { + case LED_state::LED_on: + digitalWrite(pin, HIGH); + break; + case LED_state::LED_off: + digitalWrite(pin, LOW); + break; + case LED_state::LED_blink_slow: + case LED_state::LED_blink_fast: + // Get handled by timers + break; } } if (change_state) @@ -67,10 +59,7 @@ void LEDcontrol::set(uint8_t led_num, LED_state state, bool change_state) * @param change_state indicate if the state get written to led_states_bin_ buffer */ void LEDcontrol::toggle(uint8_t led_num, bool change_state) { - if (has(led_num, LED_state::LED_off)) - set(led_num, LED_state::LED_on, change_state); - else - set(led_num, LED_state::LED_off, change_state); + has(led_num, LED_state::LED_off) ? set(led_num, LED_state::LED_on, change_state) : set(led_num, LED_state::LED_off, change_state); } /** @@ -79,52 +68,37 @@ void LEDcontrol::toggle(uint8_t led_num, bool change_state) { * * @param all_state */ -void LEDcontrol::set(uint64_t all_state) -{ - for (unsigned int led = 0; led <= LED_NUM_OM_MAX && led < kNumLeds; led++) - { +void LEDcontrol::set(uint64_t all_state) { + for (unsigned int led = 0; led <= LED_NUM_OM_MAX && led < kNumLeds; led++) { uint8_t led_state = (all_state >> (3 * led)) & 0b111; set(led, static_cast(led_state)); } } -LED_state LEDcontrol::get(uint8_t led_num) -{ +LED_state LEDcontrol::get(uint8_t led_num) { return (LED_state)((led_states_bin_ >> (3 * led_num)) & 0b111); } -void LEDcontrol::force_(uint8_t led_num, bool force, uint32_t *force_type_) -{ +void LEDcontrol::force_(uint8_t led_num, bool force, uint32_t *force_type_) { uint32_t led_bin = 1 << led_num; - - if (force) - *force_type_ |= led_bin; - else - *force_type_ &= ~led_bin; + force ? *force_type_ |= led_bin : *force_type_ &= ~led_bin; } -void LEDcontrol::force_off(uint8_t led_num, bool force) -{ +void LEDcontrol::force_off(uint8_t led_num, bool force) { force_(led_num, force, &force_led_off_); - if (force) - set(led_num, LED_state::LED_off, false); // Directly set without changing state - else - set(led_num, get(led_num), false); // Restore state + force ? set(led_num, LED_state::LED_off, false) // Directly set without changing state + : set(led_num, get(led_num), false); // Restore state } -void LEDcontrol::force_on(uint8_t led_num, bool force) -{ +void LEDcontrol::force_on(uint8_t led_num, bool force) { force_(led_num, force, &force_led_on_); - if (force) - set(led_num, LED_state::LED_on, false); // Directly set without changing state - else - set(led_num, get(led_num), false); // Restore state + force ? set(led_num, LED_state::LED_on, false) // Directly set without changing state + : set(led_num, get(led_num), false); // Restore state } -void LEDcontrol::change_led_states_(uint8_t led_num, LED_state state) -{ - led_states_bin_ &= ~((uint64_t)(0b111) << (3 * led_num)); // Be safe for future LED_state changes and mask out the whole led - led_states_bin_ |= (uint64_t)(state) << (3 * led_num); // Set new state +void LEDcontrol::change_led_states_(uint8_t led_num, LED_state state) { + led_states_bin_ &= ~((uint64_t)(0b111) << (3 * led_num)); // Be safe for future LED_state changes and mask out the whole led + led_states_bin_ |= (uint64_t)(state) << (3 * led_num); // Set new state } /** @@ -135,33 +109,27 @@ void LEDcontrol::change_led_states_(uint8_t led_num, LED_state state) * @return true * @return false */ -bool LEDcontrol::has(uint8_t led_num, LED_state state) -{ +bool LEDcontrol::has(uint8_t led_num, LED_state state) { return (led_states_bin_ >> (3 * led_num) & (uint64_t)(0b111)) == (uint64_t)(state); } -void LEDcontrol::blink_timer_elapsed(LED_state blink_state) -{ +void LEDcontrol::blink_timer_elapsed(LED_state blink_state) { // Synchronous blink is only for cosmetic nature, probably only interesting for a nice looking CoverUITest static std::map sync_blink_map = { {LED_state::LED_blink_slow, LED_state::LED_on}, {LED_state::LED_blink_fast, LED_state::LED_on}}; - if (blink_state != LED_state::LED_blink_fast && blink_state != LED_state::LED_blink_slow) // Ensure that this method only get called for blinking LED states + if (blink_state != LED_state::LED_blink_fast && blink_state != LED_state::LED_blink_slow) // Ensure that this method only get called for blinking LED states return; - for (size_t led_num = 0; led_num < kNumLeds; led_num++) - { - if (has(led_num, blink_state) && !(force_led_off_ & (1 << led_num))) - { - set(led_num, sync_blink_map[blink_state], false); // Set LED without state change + for (size_t led_num = 0; led_num < kNumLeds; led_num++) { + if (has(led_num, blink_state) && !(force_led_off_ & (1 << led_num))) { + set(led_num, sync_blink_map[blink_state], false); // Set LED without state change } } // Synchronous toggle - if (sync_blink_map[blink_state] == LED_state::LED_on) - sync_blink_map[blink_state] = LED_state::LED_off; - else - sync_blink_map[blink_state] = LED_state::LED_on; + sync_blink_map[blink_state] == LED_state::LED_on ? sync_blink_map[blink_state] = LED_state::LED_off + : sync_blink_map[blink_state] = LED_state::LED_on; } /** @@ -169,8 +137,7 @@ void LEDcontrol::blink_timer_elapsed(LED_state blink_state) * * @param led_num */ -void LEDcontrol::identify(uint8_t led_num) -{ +void LEDcontrol::identify(uint8_t led_num) { force_off(led_num, false); force_on(led_num, true); delay(100); @@ -200,15 +167,12 @@ void LEDcontrol::identify(uint8_t led_num) * @param handler * @param boolean abort_running aborts a currently running sequence */ -void LEDcontrol::sequence_start(void (LEDcontrol::*handler)(), bool abort_running) -{ +void LEDcontrol::sequence_start(void (LEDcontrol::*handler)(), bool abort_running) { if (abort_running) - { - set(led_states_bin_); // Restore states - } + set(led_states_bin_); // Restore states if (seq_start_tick_ > 0 && !abort_running) - return; // There's already/still a running sequence + return; // There's already/still a running sequence seq_step_ = 0; seq_start_tick_ = millis(); @@ -219,12 +183,11 @@ void LEDcontrol::sequence_start(void (LEDcontrol::*handler)(), bool abort_runnin * @brief Process LED sequence * Get called by 5ms timer (which is pretty fast enough for our LED sequences) */ -void LEDcontrol::process_sequence() -{ +void LEDcontrol::process_sequence() { if (seq_start_tick_ == 0) - return; // No sequence + return; // No sequence - (this->*seq_handler_)(); // Call sequence handler + (this->*seq_handler_)(); // Call sequence handler } /** @@ -233,20 +196,18 @@ void LEDcontrol::process_sequence() * @param step_rate in ms * @return uint16_t step (n>1) or 0 if the next step isn't reached now */ -uint16_t LEDcontrol::seq_get_next_step_(uint16_t step_rate) -{ +uint16_t LEDcontrol::seq_get_next_step_(uint16_t step_rate) { static uint16_t last_step_tick = 0; - uint16_t step_tick = ((((millis() - seq_start_tick_) + (step_rate - 1))) / step_rate) * step_rate; // Round to the next nearest multiple of + uint16_t step_tick = ((((millis() - seq_start_tick_) + (step_rate - 1))) / step_rate) * step_rate; // Round to the next nearest multiple of if (step_tick == last_step_tick) - return 0; // Not a new step + return 0; // Not a new step last_step_tick = step_tick; return ++seq_step_; } -void LEDcontrol::show_num(uint16_t num) -{ +void LEDcontrol::show_num(uint16_t num) { seq_num_value_ = num; sequence_start(&LEDcontrol::seq_num_handler_); } @@ -255,47 +216,45 @@ void LEDcontrol::show_num(uint16_t num) * @brief Sequence handler for displaying an uint16_t as base10 values * number by number. Use i.e. for FW version, or error display */ -void LEDcontrol::seq_num_handler_() -{ +void LEDcontrol::seq_num_handler_() { + if (set_base10_leds_cb == nullptr) + return; + const uint8_t steps_per_char = 10; - static char s_buf[6]; // Current largest number is a uint16_t, whose max. = 65535 but probably need to be made dynamic!! + static char s_buf[6]; // Current largest number is a uint16_t, whose max. = 65535 but probably need to be made dynamic!! static uint8_t s_num_chars; - static uint8_t s_cur_idx; // Current displaying digit index + static uint8_t s_cur_idx; // Current displaying digit index - uint16_t step = seq_get_next_step_(100); // Animation sequence runs in 100ms steps + uint16_t step = seq_get_next_step_(100); // Animation sequence runs in 100ms steps - if (step == 0) // Next sequence step not reached now + if (step == 0) // Next sequence step not reached now return; - if (step == 1) // Sequence start, init vars - { + if (step == 1) { // Sequence start, init vars s_cur_idx = 0; itoa(seq_num_value_, s_buf, 10); s_num_chars = std::strlen(s_buf); - force_off_num_seq_leds(true); // Force related signalling LEDs off + force_off_num_seq_leds(true); // Force related signalling LEDs off return; } - if (step >= (s_num_chars + 1) * steps_per_char) // End (last char sent) - { - force_off_num_seq_leds(false); // Un-Force related signalling LEDs - seq_start_tick_ = 0; // Sequence end + if (step >= (s_num_chars + 1) * steps_per_char) { // End (last char sent) + force_off_num_seq_leds(false); // Un-Force related signalling LEDs + seq_start_tick_ = 0; // Sequence end return; } - uint16_t sub_step = (s_cur_idx + 1) * steps_per_char; // Per digit steps + uint16_t sub_step = (s_cur_idx + 1) * steps_per_char; // Per digit steps - if (step == sub_step) // Num Display start - { - set(LED_NUM_LIFTED, LED_state::LED_on, false); // New number indicator on - (this->*set_base10_leds_cb)(s_buf[s_cur_idx]); // Set base10 LEDs callback + if (step == sub_step) { // Num Display start + set(LED_NUM_LIFTED, LED_state::LED_on, false); // New number indicator on + (this->*set_base10_leds_cb)(s_buf[s_cur_idx]); // Set base10 LEDs callback return; } - if (step == sub_step + 1) // +100ms - { - set(LED_NUM_LIFTED, LED_state::LED_off, false); // New number indicator off + if (step == sub_step + 1) { // +100ms + set(LED_NUM_LIFTED, LED_state::LED_off, false); // New number indicator off s_cur_idx++; return; } diff --git a/Firmware/CoverUI/YardForce/README-MOD-YF-C500B_RM-ECOW-V1.3.1.md b/Firmware/CoverUI/YardForce/README-MOD-YF-C500B_RM-ECOW-V1.3.1.md new file mode 100644 index 0000000..cd0dd8c --- /dev/null +++ b/Firmware/CoverUI/YardForce/README-MOD-YF-C500B_RM-ECOW-V1.3.1.md @@ -0,0 +1,64 @@ + + +([back to README][README]) + +## YardForce Classic 500B, RM-ECOW-V1.3.1 MODs + +![Classic 500](images/IMG_Overview.jpg) + +### Buttons (*mandatory*) + +With the stock component placement, Button-Home and Button-Play get routed to the main (black) 16 pin connector (JP2/J6). +But we need them routed to the MCU. +Luckily the PCB is already prepared for this. + +[![Mandatory Hardware Modification](images/IMG_PCB_Changes_500B.jpg "Open in browser")](images/IMG_PCB_Changes_500B.jpg) + +Move the 0 Ohm (bridge) resistors: + +1. R33 to the NonPlaced R34 position (Button-Home) +2. R37 to (NP) R42 (Button-Play) + +You might also simply bridge R34 and R42, but for me it was simpler to move them + +

(back to top)

+ + +### Rain Sensor (*optional*) + +If you also like to use the Stock-Rain-Sensor cabling, you need to solder a separate cable from FB2 to the non-placed R79. +See the white cable on the following images: + +[![Optional Rain Hardware Modification](images/IMG_Stock-Cables-overview_500B.jpg "Open in browser")](images/IMG_Stock-Cables-overview_500B.jpg) +[![Optional Rain Hardware Modification](images/IMG_Stock-Cables-detail2_500B.jpg "Open in browser")](images/IMG_Stock-Cables-detail2_500B.jpg) +[![Optional Rain Hardware Modification](images/IMG_Stock-Cables-rain1_500B.jpg "Open in browser")](images/IMG_Stock-Cables-rain1_500B.jpg) + +

(back to top)

+ + +### Emergency Hall Sensors (*optional*) + +If you also like to use your Stock-Hall-Sensor cabling (2 \* stop-button & 2 \* wheel-lift): +![Optional Hall Cables](images/IMG_Stock-Cables_500B.jpg) +Then you need to solder one more R- bridge as well as 3 more separate cables. +Take into **attention** that you need to make all 4 steps: + +1. Move R52 to (non-placed) R57 (see green arrow on image), or simple bridge R57 (i.e. with 32kg solder) +2. Solder a cable-bridge from Q4/R61 to U5/Pin3 (see left green cable) +3. Solder a cable-bridge from the bottom end of R76 to U5/Pin2 (see middle green cable) +4. Solder a cable-bridge from Q6/R83 to U5/Pin10 (see right green cable) + +[![Optional Hall Hardware Modification](images/IMG_Stock-Cables-overview-hall_500B.jpg "Open in browser")](images/IMG_Stock-Cables-overview-hall_500B.jpg) +[![Optional Hall Hardware Modification](images/IMG_Stock-Cables-detail3_500B.jpg "Open in browser")](images/IMG_Stock-Cables-detail3_500B.jpg) +[![Optional Hall Hardware Modification](images/IMG_Stock-Cables-rain1_500B.jpg "Open in browser")](images/IMG_Stock-Cables-rain1_500B.jpg) + +I only made it with colored cables for a more clear documentation. +If you've repair-wire like [this](https://de.farnell.com/roadrunner/rrp-a-105/draht-0-15mm-sortiert-pk-4/dp/5017233), it might look better, like this: + +![Hardware Changes Hall nice](images/IMG_Stock-Cables-nice.jpg) + +

(back to top)

+ +([back to README][README]) + +[README]: README.md diff --git a/Firmware/CoverUI/YardForce/README-MOD-YF-C500_RM-ECOW-V1.3.0.md b/Firmware/CoverUI/YardForce/README-MOD-YF-C500_RM-ECOW-V1.3.0.md new file mode 100644 index 0000000..006ad56 --- /dev/null +++ b/Firmware/CoverUI/YardForce/README-MOD-YF-C500_RM-ECOW-V1.3.0.md @@ -0,0 +1,65 @@ + + +([back to README][README]) + +## YardForce Classic 500, RM-ECOW-V1.3.0 MODs + +![Classic 500](images/IMG_Overview.jpg) + + +### Buttons (*mandatory*) + +With the stock component placement, Button-Home and Button-Play get routed to the main (black) 16 pin connector (JP2/J6). +But we need them routed to the MCU. +Luckily the PCB is already prepared for this. + +[![Mandatory Hardware Modification](images/IMG_PCB_Changes.jpg "Open in browser")](images/IMG_PCB_Changes.jpg) +(The yellow cable (to R5/C2) should not harm you. This is the NRST signal which is only required if you bug the code (like me) during development) + +Move the 0 Ohm (bridge) resistors: +1. R33 to the NonPlaced R34 position (Button-Home) +2. R37 to (NP) R42 (Button-Play) + +You might also simply bridge R34 and R42, but for me it was simpler to move them + +

(back to top)

+ + +### Rain Sensor (*optional*) + +If you also like to use the Stock-Rain-Sensor cabling, you need to solder a separate cable from FB2 to the non-placed R79. +See the yellow cable on the following images: + +[![Optional Rain Hardware Modification](images/IMG_Stock-Cables-overview.jpg "Open in browser")](images/IMG_Stock-Cables-overview.jpg) +[![Optional Rain Hardware Modification](images/IMG_Stock-Cables-detail2.jpg "Open in browser")](images/IMG_Stock-Cables-detail2.jpg) +[![Optional Rain Hardware Modification](images/IMG_Stock-Cables-rain1.jpg "Open in browser")](images/IMG_Stock-Cables-rain1.jpg) + +

(back to top)

+ + +### Emergency Hall Sensors (*optional*) + +If you also like to use your Stock-Hall-Sensor cabling (2 \* stop-button & 2 \* wheel-lift): +![Optional Hall Cables](images/IMG_Stock-Cables_500B.jpg) +Then you need to solder one more R- bridge as well as 3 more separate cables. +Take into **attention** that you need to make all 4 steps: + +1. Move R52 to (non-placed) R57 (see green arrow on image), or simple bridge R57 (i.e. with 32kg solder) +2. Solder a cable-bridge from Q4/R61 to U5/Pin3 (see left green cable) +3. Solder a cable-bridge from the bottom end of R76 to U5/Pin2 (see white cable) +4. Solder a cable-bridge from Q6/R83 to U5/Pin10 (see right green cable) + +[![Optional Hall Hardware Modification](images/IMG_Stock-Cables-overview-hall.jpg "Open in browser")](images/IMG_Stock-Cables-overview-hall.jpg) +[![Optional Hall Hardware Modification](images/IMG_Stock-Cables-detail3.jpg "Open in browser")](images/IMG_Stock-Cables-detail3.jpg) +[![Optional Hall Hardware Modification](images/IMG_Stock-Cables-detail4.jpg "Open in browser")](images/IMG_Stock-Cables-detail4.jpg) + +I only made it with colored cables for a more clear documentation. +If you've repair-wire like [this](https://de.farnell.com/roadrunner/rrp-a-105/draht-0-15mm-sortiert-pk-4/dp/5017233), it might look better, like this: + +![Hardware Changes Hall nice](images/IMG_Stock-Cables-nice.jpg) + +

(back to top)

+ +([back to README][README]) + +[README]: README.md diff --git a/Firmware/CoverUI/YardForce/README-MOD-YF-SASCNX_RM-EC3-V1.1.md b/Firmware/CoverUI/YardForce/README-MOD-YF-SASCNX_RM-EC3-V1.1.md new file mode 100644 index 0000000..660b538 --- /dev/null +++ b/Firmware/CoverUI/YardForce/README-MOD-YF-SASCNX_RM-EC3-V1.1.md @@ -0,0 +1,68 @@ + + +([back to README][README]) + +## YardForce SA/SC/NX-Type 18 Buttons, 3 LEDs, 256*64 Pixel LC-Display, RM-EC3-V1.1 MODs + +![YardForce NX100i](images/IMG_Overview_RM-EC3-V11.jpg) + +### Buttons (*mandatory*) + +With the stock component placement, Button-Home and Button-Play get routed to the main (black) 16 pin connector (JP5). +But we need them routed to the MCU. + + +[![Mandatory Hardware Modification](images/IMG_PCB_Changes_RM-EC3-V11_Mandatory1.jpg "Open in browser")](images/IMG_PCB_Changes_RM-EC3-V11_Mandatory1.jpg) +[![Mandatory Hardware Modification](images/IMG_PCB_Changes_RM-EC3-V11_Mandatory2.jpg "Open in browser")](images/IMG_PCB_Changes_RM-EC3-V11_Mandatory2.jpg) + +Solder two cables: + +1. S8/D9 front-side, to back-side R35-upper-pin (Play button) +2. S10/D7 front-side, to back-side R27-upper-pin (Home button) + +

(back to top)

+ + +### Emergency Stop Switches (*optional*) + +If you also like to use your two Stock-Stop-Switch cables, and you should, because you need the four OM- Hall-Plugs for the remaining hall-sensors: + +[![Optional Stop Hardware Modification](images/IMG_PCB_Changes_RM-EC3-V11_Stop1.jpg "Open in browser")](images/IMG_PCB_Changes_RM-EC3-V11_Stop1.jpg) +[![Optional Stop Hardware Modification](images/IMG_PCB_Changes_RM-EC3-V11_Stop2.jpg "Open in browser")](images/IMG_PCB_Changes_RM-EC3-V11_Stop2.jpg) + +Solder another two cables: + +1. JP5-Pin14 front-side, to back-side U7-Pin1 +2. JP5-Pin6 front-side, to back-side U7-Pin2 + +

(back to top)

+ + +### Emergency Hall Switches (*optional*) + +If you also like to use your original "4-leg cable for the 4 hall sensors", then you need to solder 4 more cables: + +[![Optional Stop Hardware Modification](images/IMG_PCB_Changes_RM-EC3-V11_Hall1.jpg "Open in browser")](images/IMG_PCB_Changes_RM-EC3-V11_Hall1.jpg) +[![Optional Stop Hardware Modification](images/IMG_PCB_Changes_RM-EC3-V11_Hall2.jpg "Open in browser")](images/IMG_PCB_Changes_RM-EC3-V11_Hall2.jpg) + +Solder four cables: + +1. JP5-Pin15 front-side, to back-side R17-lower-pin +2. JP5-Pin16 front-side, to back-side R18-upper-pin +3. JP5-Pin12 front-side, to back-side R13-right-pin +4. JP5-Pin10 front-side, to back-side R21-right-pin + +> **Warning** +> As you might know, the hall sensors are driven by 5V, whereas the MCU is running at 3.3V. +> All used GPIO ports of this modification, are so called "5V tolerant" ports. +> But there might happen electrical cases like: VREG delay or short on 3.3V line, which could kill the "5V tolerant" pin of your MCU. +> To be on the save side for such odd things happen, I highly advice to remove the 5V pull-up resistor on your Hall-PCB, or move it aside like shown on this picture: + +[![Optional Remove Hall Pull-Up Resistor](images/IMG_PCB_Change_Hall-PullUp.jpg "Open in browser")](images/IMG_PCB_Change_Hall-PullUp.jpg) + + +

(back to top)

+ +([back to README][README]) + +[README]: README.md diff --git a/Firmware/CoverUI/YardForce/README-MOD-YF-SASCNX_RM-ECOW-V1.0.0.md b/Firmware/CoverUI/YardForce/README-MOD-YF-SASCNX_RM-ECOW-V1.0.0.md new file mode 100644 index 0000000..caace8e --- /dev/null +++ b/Firmware/CoverUI/YardForce/README-MOD-YF-SASCNX_RM-ECOW-V1.0.0.md @@ -0,0 +1,66 @@ + + +([back to README][README]) + +## YardForce SA/SC/NX-Type 10 Buttons, 12 LEDs, RM-ECOW-V1.0.0 MODs + + ![YardForce NX80i](images/IMG_Overview_RM-ECOW-V100.jpg) + +### Buttons (*mandatory*) + +With the stock component placement, Button-Home and Button-Play get routed to the main (black) 16 pin connector (JP2/J6). +But we need them routed to the MCU. +Luckily the PCB is already prepared for this. + +[![Mandatory Hardware Modification](images/IMG_PCB_Changes_RM-ECOW-V100.jpg "Open in browser")](images/IMG_PCB_Changes_RM-ECOW-V100.jpg) + +Move the 0 Ohm (bridge) resistors: + +1. R39 to the NonPlaced R41 position (Button-Home) +2. R38 to (NP) R40 (Button-Play) + +You might also simply bridge R40 and R41, but for me it was simpler to move them + +

(back to top)

+ +### Emergency Hall Switches (*optional*) + +If you also like to use your original "4-leg cable for the 4 hall sensors", then you need to solder 4 more cables: + +[![Optional Hall Hardware Modification](images/IMG_PCB_Changes_RM-ECOW-V100_Hall.jpg "Open in browser")](images/IMG_PCB_Changes_RM-ECOW-V100_Hall.jpg) +[![Optional Hall Hardware Modification 2](images/IMG_PCB_Changes_RM-ECOW-V100_Hall2.jpg "Open in browser")](images/IMG_PCB_Changes_RM-ECOW-V100_Hall2.jpg) + +Solder four cables: + +1. JP2-Pin10 to U2-Pin6 (LIFTX to PF6) +2. JP2-Pin12 to U2-Pin7 (LBUMP to PA12) +3. JP2-Pin15 to U2-Pin8 (RBUMP to PA11) +4. JP2-Pin16 to U2-Pin17 (LIFT to PA8) + +> **Warning** +> As you probably know, the hall sensors are driven by 5V, whereas the MCU is running at 3.3V.
+> All used GPIO ports of this modification, are so called "5V tolerant" ports.
+> **But** there might happen electrical cases like: VREG delay or short on 3.3V line, which could kill the "5V tolerant" pin of your MCU. +> To be on the save side for such odd cases, I highly recommend to remove the 5V pull-up resistor from your Hall-PCB, or move it aside like shown on this picture: + +[![Optional Remove Hall Pull-Up Resistor](images/IMG_PCB_Change_Hall-PullUp.jpg "Open in browser")](images/IMG_PCB_Change_Hall-PullUp.jpg) + +

(back to top)

+ + +### Emergency Stop Switches (*optional*) + +If you also like to use your two Stock-Stop-Switch cables, and you should, as you need the four OM- Hall-Plugs for the remaining hall-sensors: + +[![Optional Hall Hardware Modification](images/IMG_MOD-Stop_RM-ECOW-V100.jpg "Open in browser")](images/IMG_MOD-Stop_RM-ECOW-V100.jpg) + +Move the 0 Ohm (bridge) resistors: + +1. R42 to the NonPlaced R44 position (JP5 Stop) +2. R43 to (NP) R45 (JP6 Stop) + +You might also simply bridge R44 and R45, but for me it was simpler to move them + +([back to README][README]) + +[README]: README.md diff --git a/Firmware/CoverUI/YardForce/README-MOD-YF-SASCNX_RM-ECOW-V1.1.0.md b/Firmware/CoverUI/YardForce/README-MOD-YF-SASCNX_RM-ECOW-V1.1.0.md new file mode 100644 index 0000000..ea51508 --- /dev/null +++ b/Firmware/CoverUI/YardForce/README-MOD-YF-SASCNX_RM-ECOW-V1.1.0.md @@ -0,0 +1,68 @@ + + +([back to README][README]) + +## YardForce SA/SC/NX-Type 9 Buttons, 11 LEDs, RM-ECOW-V1.1.0 MODs + +![YardForce SA650](images/IMG_Overview_RM-ECOW-V110.jpg) + +### Buttons (*mandatory*) + +With the stock component placement, Button-Home and Button-Play get routed to the main (black) 16 pin connector (JP2). +But we need them routed to the MCU. +Luckily the PCB is already prepared for this. + +[![Mandatory Hardware Modification](images/IMG_PCB_Changes_RM-ECOW-V110_Buttons.jpg "Open in browser")](images/IMG_PCB_Changes_RM-ECOW-V110_Buttons.jpg) + +Move the 0 Ohm (bridge) resistors: + +1. R39 to the NonPlaced R42 position (Button-Home) +2. R34 to (NP) R37 (Button-Play) + +You might also simply bridge R42 and R37, but for me it was simpler to move them. + +

(back to top)

+ + +### Emergency Hall Switches (*optional*) + +If you also like to use your original "4-leg cable for the 4 hall sensors", then you need to solder 4 more cables: + +[![Optional Hall Hardware Modification](images/IMG_PCB_Changes_RM-ECOW-V110_Hall.jpg "Open in browser")](images/IMG_PCB_Changes_RM-ECOW-V110_Hall.jpg) + +Solder four cables: + +1. JP1-Pin39 to U6-Pin8 (RBUMP to PC9) +2. JP1-Pin40 to U6-Pin2 (LIFT to PA8) +3. JP1-Pin36 to U6-Pin15 (LBUMP to PC8) +4. JP1-Pin34 to R8-left-pin (LIFTX to PA9) + +> **Warning** +> As you probably know, the hall sensors are driven by 5V, whereas the MCU is running at 3.3V.
+> All used GPIO ports of this modification, are so called "5V tolerant" ports.
+> **But** there might happen electrical cases like: VREG delay or short on 3.3V line, which could kill the "5V tolerant" pin of your MCU. +> To be on the save side for such odd cases, I highly recommend to remove the 5V pull-up resistor from your Hall-PCB, or move it aside like shown on this picture: + +[![Optional Remove Hall Pull-Up Resistor](images/IMG_PCB_Change_Hall-PullUp.jpg "Open in browser")](images/IMG_PCB_Change_Hall-PullUp.jpg) + +

(back to top)

+ + +### Emergency Stop Switches (*optional*) + +If you also like to use your 2 stock Stop-Switch cables, you need to bridge or move 2 further resistors: + +[![Optional Hall Hardware Modification](images/IMG_PCB_Changes_RM-ECOW-V110_Stop.jpg "Open in browser")](images/IMG_PCB_Changes_RM-ECOW-V110_Stop.jpg) + +Move the 0 Ohm (bridge) resistors: + +1. R61 to the NonPlaced R63 position (JP8 Stop) +2. R46 to (NP) R56 (JP6 PC8-Stop) + +You might also simply bridge R63 and R56, but for me it was simpler to move them. + +

(back to top)

+ +([back to README][README]) + +[README]: README.md diff --git a/Firmware/CoverUI/YardForce/README-MOD-YF-SASC_PRO_HS49067.md b/Firmware/CoverUI/YardForce/README-MOD-YF-SASC_PRO_HS49067.md new file mode 100644 index 0000000..015fa22 --- /dev/null +++ b/Firmware/CoverUI/YardForce/README-MOD-YF-SASC_PRO_HS49067.md @@ -0,0 +1,24 @@ + + +([back to README][README]) + +## YardForce SA/SC-PRO-Type 6 Buttons, 240*160 Dot-Matrix-Display, HS49067 MODs + +![SAxPRO](images/IMG_Overview_SAxPRO.jpg) + +### Buttons (*mandatory*) + +With the stock component placement, Button-Home and Button-Play get routed to the main (black) 16 pin connector (JP2/J6). +But we need them routed to the MCU. +Luckily the PCB is already prepared for this. + +[![Mandatory Hardware Modification](images/IMG_PCB_Changes_SAxPRO.jpg "Open in browser")](images/IMG_PCB_Changes_SAxPRO.jpg) + +1. Bridge R14 (Button-Start/Play) +2. Bridge R15 (Button-Home) + +

(back to top)

+ +([back to README][README]) + +[README]: README.md diff --git a/Firmware/CoverUI/YardForce/README.md b/Firmware/CoverUI/YardForce/README.md index b380b6b..027f3b4 100644 --- a/Firmware/CoverUI/YardForce/README.md +++ b/Firmware/CoverUI/YardForce/README.md @@ -6,22 +6,22 @@ [![Issues][issues-shield]][issues-url] [![MIT License][license-shield]][license-url] - +
- + Classic 500(B) - + NX80i (10 Buttons, 12 LEDs) SA/SC/NX-Type CoverUI - + SA650 (9 Buttons, 11 LEDs) SA/SC/NX-Type CoverUI - - NX100i (18 Buttons, 3 LEDs, 256*64 Pixel LC-Display) SA/SC/NX-Type CoverUI + + NX100i (18 Buttons, 3 LEDs, 256*64 Pixel LC-Display) SA/SC/NX-Type CoverUI - + SA/SC-PRO-Type (6 Buttons, 240*160 Pixel LC-Display) @@ -35,8 +35,8 @@ | :-------------------------------- | :------------------------: | :---: | | Classic 500 | RM-ECOW-V1.3.0, 2020.05.08 | STM32F030R8, GD32F330R8 | | Classic 500B | RM-ECOW-V1.3.1, 2021.08.09 | STM32F030R8[^1], GD32F330R8 | -| NX80i (10 Buttons, 12 LEDs), SA/SC/NX-Type | RM-ECOW-V1.0.0, 2018.06.05 | STM32F030R8 | -| SA650 (9 Buttons, 11 LEDs), SA/SC/NX-Type | RM-ECOW-V1.1.0, 2019.02.18 | GD32F330R8 | +| SA/SC/NX-Type (10 Buttons, 12 LEDs) | RM-ECOW-V1.0.0, 2018.06.05 | STM32F030R8 | +| SA/SC/NX-Type (9 Buttons, 11 LEDs)e | RM-ECOW-V1.1.0, 2019.02.18 | STM32F030R8, GD32F330R8 | | NX100i (18 Buttons, 3 LEDs, 256*64 Pixel LC-Display), SA/SC/NX-Type | RM-EC3-V1.1, 20210619 | STM32F401RC | | SA/SC-PRO-Type Rev6 (6 Buttons, 240*128 Pixel LC-Display) | HS49067, WYPCB319B | STM32F030RC | @@ -46,45 +46,6 @@
- -
-

Table of Contents

-
    -
  1. - About The Project -
  2. -
  3. - Getting Started - -
  4. -
  5. Usage - -
  6. -
  7. Final work
  8. -
  9. Version History
  10. -
  11. Contributing
  12. -
  13. License
  14. -
  15. Acknowledgments
  16. -
-
- - ## About The Project For those, who still have their stock *YardForce (Rev6)* Cover-UI available and want to get it running together with [OpenMower](https://github.com/ClemensElflein/OpenMower), I ported OM's CoverUI FW functionality to a couple of them (see [Tested/working with](#testedworking-with)). @@ -92,328 +53,36 @@ For those, who still have their stock *YardForce (Rev6)* Cover-UI available and

(back to top)

- ## Getting Started ### Prerequisites * Compatible stock *YardForce* Cover-UI/Button-Board or Display (see [Tested/working with](#testedworking-with)) * Soldering Iron -* ST-Link programmer/debugger (or Picoprobe if you've a STM32 MCU) +* ST-Link programmer/debugger ### Hardware Modifications by Model +Every CoverUI model require some hardware modifications. - -
-

YardForce Classic 500, RM-ECOW-V1.3.0

+Please check here, what modifications are required for your CoverUI model: - ![Classic 500](images/IMG_Overview.jpg) - -### Hardware Modifications: Buttons (*mandatory*) - -With the stock component placement, Button-Home and Button-Play get routed to the main (black) 16 pin connector (JP2/J6). -But we need them routed to the MCU. -Luckily the PCB is already prepared for this. - -[![Mandatory Hardware Modification](images/IMG_PCB_Changes.jpg "Open in browser")](images/IMG_PCB_Changes.jpg) -(The yellow cable (to R5/C2) should not harm you. This is the NRST signal which is only required if you bug the code (like me) during development) - -Move the 0 Ohm (bridge) resistors: -1. R33 to the NonPlaced R34 position (Button-Home) -2. R37 to (NP) R42 (Button-Play) - -You might also simply bridge R34 and R42, but for me it was simpler to move them - -### Hardware Modification: Rain Sensor (*optional*) - -If you also like to use the Stock-Rain-Sensor cabling, you need to solder a separate cable from FB2 to the non-placed R79. -See the yellow cable on the following images: - -[![Optional Rain Hardware Modification](images/IMG_Stock-Cables-overview.jpg "Open in browser")](images/IMG_Stock-Cables-overview.jpg) -[![Optional Rain Hardware Modification](images/IMG_Stock-Cables-detail2.jpg "Open in browser")](images/IMG_Stock-Cables-detail2.jpg) -[![Optional Rain Hardware Modification](images/IMG_Stock-Cables-rain1.jpg "Open in browser")](images/IMG_Stock-Cables-rain1.jpg) - -### Hardware Modification: Emergency Hall Sensors (*optional*) - -If you also like to use your Stock-Hall-Sensor cabling (2 \* stop-button & 2 \* wheel-lift): -![Optional Hall Cables](images/IMG_Stock-Cables_500B.jpg) -Then you need to solder one more R- bridge as well as 3 more separate cables. -Take into **attention** that you need to make all 4 steps: - -1. Move R52 to (non-placed) R57 (see green arrow on image), or simple bridge R57 (i.e. with 32kg solder) -2. Solder a cable-bridge from Q4/R61 to U5/Pin3 (see left green cable) -3. Solder a cable-bridge from the bottom end of R76 to U5/Pin2 (see white cable) -4. Solder a cable-bridge from Q6/R83 to U5/Pin10 (see right green cable) - -[![Optional Hall Hardware Modification](images/IMG_Stock-Cables-overview-hall.jpg "Open in browser")](images/IMG_Stock-Cables-overview-hall.jpg) -[![Optional Hall Hardware Modification](images/IMG_Stock-Cables-detail3.jpg "Open in browser")](images/IMG_Stock-Cables-detail3.jpg) -[![Optional Hall Hardware Modification](images/IMG_Stock-Cables-detail4.jpg "Open in browser")](images/IMG_Stock-Cables-detail4.jpg) - -I only made it with colored cables for a more clear documentation. -If you've repair-wire like [this](https://de.farnell.com/roadrunner/rrp-a-105/draht-0-15mm-sortiert-pk-4/dp/5017233), it might look better, like this: - -![Hardware Changes Hall nice](images/IMG_Stock-Cables-nice.jpg) - -
- - - - -
-

YardForce Classic 500B, RM-ECOW-V1.3.1

- - ![Classic 500](images/IMG_Overview.jpg) - -### Hardware Modifications: Buttons (*mandatory*) - -With the stock component placement, Button-Home and Button-Play get routed to the main (black) 16 pin connector (JP2/J6). -But we need them routed to the MCU. -Luckily the PCB is already prepared for this. - -[![Mandatory Hardware Modification](images/IMG_PCB_Changes_500B.jpg "Open in browser")](images/IMG_PCB_Changes_500B.jpg) - -Move the 0 Ohm (bridge) resistors: - -1. R33 to the NonPlaced R34 position (Button-Home) -2. R37 to (NP) R42 (Button-Play) - -You might also simply bridge R34 and R42, but for me it was simpler to move them - - -### Hardware Modification: Rain Sensor (*optional*) - -If you also like to use the Stock-Rain-Sensor cabling, you need to solder a separate cable from FB2 to the non-placed R79. -See the white cable on the following images: - -[![Optional Rain Hardware Modification](images/IMG_Stock-Cables-overview_500B.jpg "Open in browser")](images/IMG_Stock-Cables-overview_500B.jpg) -[![Optional Rain Hardware Modification](images/IMG_Stock-Cables-detail2_500B.jpg "Open in browser")](images/IMG_Stock-Cables-detail2_500B.jpg) -[![Optional Rain Hardware Modification](images/IMG_Stock-Cables-rain1_500B.jpg "Open in browser")](images/IMG_Stock-Cables-rain1_500B.jpg) - -### Hardware Modification: Emergency Hall Sensors (*optional*) - -If you also like to use your Stock-Hall-Sensor cabling (2 \* stop-button & 2 \* wheel-lift): -![Optional Hall Cables](images/IMG_Stock-Cables_500B.jpg) -Then you need to solder one more R- bridge as well as 3 more separate cables. -Take into **attention** that you need to make all 4 steps: - -1. Move R52 to (non-placed) R57 (see green arrow on image), or simple bridge R57 (i.e. with 32kg solder) -2. Solder a cable-bridge from Q4/R61 to U5/Pin3 (see left green cable) -3. Solder a cable-bridge from the bottom end of R76 to U5/Pin2 (see middle green cable) -4. Solder a cable-bridge from Q6/R83 to U5/Pin10 (see right green cable) - -[![Optional Hall Hardware Modification](images/IMG_Stock-Cables-overview-hall_500B.jpg "Open in browser")](images/IMG_Stock-Cables-overview-hall_500B.jpg) -[![Optional Hall Hardware Modification](images/IMG_Stock-Cables-detail3_500B.jpg "Open in browser")](images/IMG_Stock-Cables-detail3_500B.jpg) -[![Optional Hall Hardware Modification](images/IMG_Stock-Cables-rain1_500B.jpg "Open in browser")](images/IMG_Stock-Cables-rain1_500B.jpg) - -I only made it with colored cables for a more clear documentation. -If you've repair-wire like [this](https://de.farnell.com/roadrunner/rrp-a-105/draht-0-15mm-sortiert-pk-4/dp/5017233), it might look better, like this: - -![Hardware Changes Hall nice](images/IMG_Stock-Cables-nice.jpg) - -
- - - -
-

YardForce NX80i (10 Buttons, 12 LEDs), SA/SC/NX-Type, RM-ECOW-V1.0.0

- - ![YardForce NX80i](images/IMG_Overview_RM-ECOW-V100.jpg) - -### Hardware Modifications: Buttons (*mandatory*) - -With the stock component placement, Button-Home and Button-Play get routed to the main (black) 16 pin connector (JP2/J6). -But we need them routed to the MCU. -Luckily the PCB is already prepared for this. - -[![Mandatory Hardware Modification](images/IMG_PCB_Changes_RM-ECOW-V100.jpg "Open in browser")](images/IMG_PCB_Changes_RM-ECOW-V100.jpg) - -Move the 0 Ohm (bridge) resistors: - -1. R39 to the NonPlaced R41 position (Button-Home) -2. R38 to (NP) R40 (Button-Play) - -You might also simply bridge R40 and R41, but for me it was simpler to move them - -### Hardware Modification: Emergency Stop Switches (*optional*) - -If you also like to use your two Stock-Stop-Switch cables, and you should, as you need the four OM- Hall-Plugs for the remaining hall-sensors: - -[![Optional Hall Hardware Modification](images/IMG_MOD-Stop_RM-ECOW-V100.jpg "Open in browser")](images/IMG_MOD-Stop_RM-ECOW-V100.jpg) - -Move the 0 Ohm (bridge) resistors: - -1. R42 to the NonPlaced R44 position (JP5 Stop) -2. R43 to (NP) R45 (JP6 Stop) - -You might also simply bridge R44 and R45, but for me it was simpler to move them - -
- - -
-

YardForce SA650 (9 Buttons, 11 LEDs), SA/SC/NX-Type, RM-ECOW-V1.1.0

- - ![YardForce SA650](images/IMG_Overview_RM-ECOW-V110.jpg) - -### Hardware Modifications: Buttons (*mandatory*) - -With the stock component placement, Button-Home and Button-Play get routed to the main (black) 16 pin connector (JP2). -But we need them routed to the MCU. -Luckily the PCB is already prepared for this. - -[![Mandatory Hardware Modification](images/IMG_PCB_Changes_RM-ECOW-V110_Buttons.jpg "Open in browser")](images/IMG_PCB_Changes_RM-ECOW-V110_Buttons.jpg) - -Move the 0 Ohm (bridge) resistors: - -1. R39 to the NonPlaced R42 position (Button-Home) -2. R34 to (NP) R37 (Button-Play) - -You might also simply bridge R42 and R37, but for me it was simpler to move them. - -### Hardware Modification: Emergency Hall Switches (*optional*) - -If you also like to use your original "4-leg cable for the 4 hall sensors", then you need to solder 4 more cables: - -[![Optional Stop Hardware Modification](images/IMG_PCB_Changes_RM-ECOW-V110_Hall.jpg "Open in browser")](images/IMG_PCB_Changes_RM-EC3-V11_Hall1.jpg) - -Solder four cables: - -1. JP1-Pin39 to U6-Pin8 (RBUMP to PC9) -2. JP1-Pin40 to U6-Pin2 (LIFT to PA8) -3. JP1-Pin36 to U6-Pin15 (LBUMP to PC8) -4. JP1-Pin34 to R8-left-pin (LIFTX to PA9) - -> **Warning** -> As you probably know, the hall sensors are driven by 5V, whereas the MCU is running at 3.3V.
-> All used GPIO ports of this modification, are so called "5V tolerant" ports.
-> **But** there might happen electrical cases like: VREG delay or short on 3.3V line, which could kill the "5V tolerant" pin of your MCU. -> To be on the save side for such odd cases, I highly recommend to remove the 5V pull-up resistor from your Hall-PCB, or move it aside like shown on this picture: - -[![Optional Remove Hall Pull-Up Resistor](images/IMG_PCB_Change_Hall-PullUp.jpg "Open in browser")](images/IMG_PCB_Change_Hall-PullUp.jpg) - - -### Hardware Modification: Emergency Stop Switches (*optional*) - -If you also like to use your 2 stock Stop-Switch cables, you need to bridge or move 2 further resistors: - -[![Optional Hall Hardware Modification](images/IMG_PCB_Changes_RM-ECOW-V110_Stop.jpg "Open in browser")](images/IMG_PCB_Changes_RM-ECOW-V110_Stop.jpg) - -Move the 0 Ohm (bridge) resistors: - -1. R61 to the NonPlaced R63 position (JP8 Stop) -2. R46 to (NP) R56 (JP6 PC8-Stop) - -You might also simply bridge R63 and R56, but for me it was simpler to move them. - -
- - - -
-

YardForce NX100i (18 Buttons, 3 LEDs, 256*64 Pixel LC-Display), SA/SC/NX-Type, RM-EC3-V1.1

- - ![YardForce NX100i](images/IMG_Overview_RM-ECOW-V1.1.jpg) - -### Hardware Modifications: Buttons (*mandatory*) - -With the stock component placement, Button-Home and Button-Play get routed to the main (black) 16 pin connector (JP5). -But we need them routed to the MCU. - - -[![Mandatory Hardware Modification](images/IMG_PCB_Changes_RM-EC3-V11_Mandatory1.jpg "Open in browser")](images/IMG_PCB_Changes_RM-EC3-V11_Mandatory1.jpg) -[![Mandatory Hardware Modification](images/IMG_PCB_Changes_RM-EC3-V11_Mandatory2.jpg "Open in browser")](images/IMG_PCB_Changes_RM-EC3-V11_Mandatory2.jpg) - -Solder two cables: - -1. S8/D9 front-side, to back-side R35-upper-pin (Play button) -2. S10/D7 front-side, to back-side R27-upper-pin (Home button) - -### Hardware Modification: Emergency Stop Switches (*optional*) - -If you also like to use your two Stock-Stop-Switch cables, and you should, because you need the four OM- Hall-Plugs for the remaining hall-sensors: - -[![Optional Stop Hardware Modification](images/IMG_PCB_Changes_RM-EC3-V11_Stop1.jpg "Open in browser")](images/IMG_PCB_Changes_RM-EC3-V11_Stop1.jpg) -[![Optional Stop Hardware Modification](images/IMG_PCB_Changes_RM-EC3-V11_Stop2.jpg "Open in browser")](images/IMG_PCB_Changes_RM-EC3-V11_Stop2.jpg) - -Solder another two cables: - -1. JP5-Pin14 front-side, to back-side U7-Pin1 -2. JP5-Pin6 front-side, to back-side U7-Pin2 - -### Hardware Modification: Emergency Hall Switches (*optional*) - -If you also like to use your original "4-leg cable for the 4 hall sensors", then you need to solder 4 more cables: - -[![Optional Stop Hardware Modification](images/IMG_PCB_Changes_RM-EC3-V11_Hall1.jpg "Open in browser")](images/IMG_PCB_Changes_RM-EC3-V11_Hall1.jpg) -[![Optional Stop Hardware Modification](images/IMG_PCB_Changes_RM-EC3-V11_Hall2.jpg "Open in browser")](images/IMG_PCB_Changes_RM-EC3-V11_Hall2.jpg) - -Solder four cables: - -1. JP5-Pin15 front-side, to back-side R17-lower-pin -2. JP5-Pin16 front-side, to back-side R18-upper-pin -3. JP5-Pin12 front-side, to back-side R13-right-pin -4. JP5-Pin10 front-side, to back-side R21-right-pin - -> **Warning** -> As you might know, the hall sensors are driven by 5V, whereas the MCU is running at 3.3V. -> All used GPIO ports of this modification, are so called "5V tolerant" ports. -> But there might happen electrical cases like: VREG delay or short on 3.3V line, which could kill the "5V tolerant" pin of your MCU. -> To be on the save side for such odd things happen, I highly advice to remove the 5V pull-up resistor on your Hall-PCB, or move it aside like shown on this picture: - -[![Optional Remove Hall Pull-Up Resistor](images/IMG_PCB_Change_Hall-PullUp.jpg "Open in browser")](images/IMG_PCB_Change_Hall-PullUp.jpg) - - -
- - - -
-

YardForce SA/SC-PRO-Type Rev6 (6 Buttons, 240*160 Dot-Matrix-Display), HS49067, WYPCB319B

- - ![Classic 500](images/IMG_Overview_SAxPRO.jpg) - -### Hardware Modifications: Buttons (*mandatory*) - -With the stock component placement, Button-Home and Button-Play get routed to the main (black) 16 pin connector (JP2/J6). -But we need them routed to the MCU. -Luckily the PCB is already prepared for this. - -[![Mandatory Hardware Modification](images/IMG_PCB_Changes_SAxPRO.jpg "Open in browser")](images/IMG_PCB_Changes_SAxPRO.jpg) - -1. Bridge R14 (Button-Start/Play) -2. Bridge R15 (Button-Home) - -
+- [YardForce Classic 500, RM-ECOW-V1.3.0](README-MOD-YF-C500_RM-ECOW-V1.3.0.md) +- [YardForce Classic 500**B**, RM-ECOW-V1.3.1](README-MOD-YF-C500B_RM-ECOW-V1.3.1.md) +- [YardForce SA/SC/NX-Type 10 Buttons, 12 LEDs, RM-ECOW-V1.0.0](README-MOD-YF-SASCNX_RM-ECOW-V1.0.0.md) +- [YardForce SA/SC/NX-Type 9 Buttons, 11 LEDs, RM-ECOW-V1.1.0](README-MOD-YF-SASCNX_RM-ECOW-V1.1.0.md) +- [YardForce NX100i (SA/SC/NX-Type) 18 Buttons, 3 LEDs, 256*64 Pixel LC-Display, RM-EC3-V1.1](README-MOD-YF-SASCNX_RM-EC3-V1.1.md) +- [YardForce SA/SC-PRO-Type 6 Buttons, 240*160 Dot-Matrix-Display, HS49067](README-MOD-YF-SASC_PRO_HS49067.md) ## Flash Firmware ### Programmer/Debugger -You either need an ST-Link programmer/debugger like this cheap *ST-Link (V2) clone*: - -> **Note** -> If you have a GD32 MCU, this is your only option +You need an ST-Link programmer/debugger like this cheap *ST-Link (V2) clone*: My ST-Link (V2) clone -Or use (build) a [Picoprobe][Picoprobe-url] (CMSIS-DAP debugger) if you have a STM32 MCU: - -> **Note** -> Do **not** try this with a GD32 MCU! I bricked my lent one by trying it and it took me 3 hours to get it back running! - -

-My Picoprobe -My open Picoprobe -My open Picoprobe -

- -Simply take a [Raspberry Pico][Pico-url], solder some cables, upload [Picoprobe][Picoprobe-url] -and you're ready. - -(For sure, there might be more programmer/debugger options, but with these two variants I got it quickly running) - There're two generic ways to get the Firmware into your MCU.
Either you flash the binary directly, or you compile it by yourself with [PlatformIO](https://platformio.org/). @@ -458,22 +127,6 @@ Unlock your flash via: Now, try again flashing by: `st-flash write firmware__[_, ...].bin 0x08000000` -### Picoprobe (flash binary) STM32 MCU only! - -Do **NOT** try this variant with a GD32 MCU. There's a high risk to brick it!! - -You need [OpenOCD][OpenOCD-url] for this. Try `openocd --version` to check if [OpenOCD][OpenOCD-url] is already installed. - -Unplug everything from you stock CoverUI PCB and connect your Picoprobe to GND, CLK, DIO and 3V3. - -Open a terminal/console, then: -`openocd -f interface/cmsis-dap.cfg -f target/stm32f0x.cfg -c "init; reset halt; stm32f0x unlock 0; reset run" -c "program firmware__STM32[_, ...].bin verify exit 0x08000000 reset; exit;"` - -When done, re-plug your ST-Link and you should see a quick power-on animation. - -If st-flash fails with an error like "Flash memory is write protected", simply flash it again. On the second run it should work with this method. - - ### PlatformIO [PlatformIO](https://platformio.org/) is a [Visual Studio Code](https://code.visualstudio.com/) extension. Once installed, do: @@ -502,7 +155,7 @@ Once flashed, the CoverUI should show you a quick LED animation when powered on. ### Meaning of the LEDs: -| C500(B) | SA650
(9 Buttons, 11 LEDs) | NX80i
(10 Buttons, 12 LEDs), SA/SC/NX-Type | NX100i
(18 Buttons, 3 LEDs, 256*64 Pixel LC-Display), SA/SC/NX-Type | SA/SC-PRO
(240*160 Pixel LC-Display) | Remark | +| C500(B) | SA/SC/NX-Type,
9 Buttons, 11 LEDs | SA/SC/NX-Type,
10 Buttons, 12 LEDs | NX100i
(SA/SC/NX-Type),
18 Buttons, 3 LEDs,
256*64 Pixel LC-Display | SA/SC-PRO
(240*160 Pixel LC-Display) | Remark | | :-------: | :-----: | :-------: | :----: | :----: | ----- | | 2hr - 8hr | 4H - 10H | 4H - 10H | | | 4 digi GPS quality progressbar. Blink = No GPS-Fix | S1 | :heavy_check_mark: | :heavy_check_mark: | | | ROS State:
On = Running (idle)
Blink-slow = Autonomous mode (mowing, (un-)docking)
Blink-fast = Area recording
Off = ROS not running | @@ -516,7 +169,7 @@ Once flashed, the CoverUI should show you a quick LED animation when powered on. ### Button usage: -| C500(B) | SA650
(9 Buttons, 11 LEDs) | NX80i
(10 Buttons, 12 LEDs) SA/SC/NX-Type | NX100i
(18 Buttons, 3 LEDs, 256*64 Pixel LC-Display), SA/SC/NX-Type | SA/SC-PRO
(240*160 Pixel LC-Display) | Remark | +| C500(B) | SA/SC/NX-Type,
9 Buttons, 11 LEDs | SA/SC/NX-Type,
10 Buttons, 12 LEDs | NX100i (SA/SC/NX-Type),
18 Buttons, 3 LEDs,
256*64 Pixel LC-Display | SA/SC-PRO
(240*160 Pixel LC-Display) | Remark | | :-------: | :----: | :---------------------------------: | :-----: | :----: | ----- | | Home | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Go home (docking station) | | â–¶ | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Start | Start mowing or continue | @@ -524,7 +177,7 @@ Once flashed, the CoverUI should show you a quick LED animation when powered on. | S2 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | Skip over to next area if 'mowing'. Long press (2-3s) in 'idle', delete all recorded areas! | | Lock | :heavy_check_mark: | :heavy_check_mark: | :x: | Enter | Long press (2-3s) reset emergency | | OK+Sun | Lock+10H | Setup+10H | MENU+BACK | :x: | Trigger power-on animation.
This is mainly for mounting validation, to ensure that you hit all LED guidance holes | -| OK+Clock | Lock+4H | Setup+4H | MENU+0 | :x: | Display CoverUI- firmware version. LED only models will show the version as a number sequence[^2], which should show (as of writing) 205 | +| OK+Clock | Lock+4H | Setup+4H | MENU+0 | :x: | Display CoverUI- firmware version. LED only models will show the version as a number sequence[^2], which should show (as of writing) 206 | | Mon | 4H | 4H | 1 | | Volume up[^3] | | Tue | 6H | 6H | 2 | | Volume down[^3] | | Wed | :x: | 8H | 3 | Back | ~~Next language~~ Language selection has moved to mower_config[^3] | @@ -558,13 +211,14 @@ check section [usage](#usage) about the [LED](#meaning-of-the-leds) and [Button] | Version [^4] | Changes | Date | | ------- | ------- | ---- | -| 2.05 | - YardForce RM-ECOW-V1.1.0 support
- Backside alive LED is now software driven (hwtimer independent)
- Fix emergency-clear LED-countdown for RM-ECOW-V1.0.0| 06/30/2024 -| 2.04 | - YardForce RM-ECOW-V1.0.0 support
- Dropped separate versioning
- Fully refactored | 11/14/2023 -| 1.00 | - YardForce SAxPRO (Rev6) Dot-Matrix-Display support | 09/27/2023 -| 1.00 | - Stock-Cable support for rain & hall sensors
- Classic 500B support | 05/13/2023 -| NA | First OM's CoverUI port for YardForce Classic 500 | 05/01/2023 +| 2.06 | - Add MOD_HALL support to YardForce RM-ECOW-V1.0.0
- Fix heap overflow which could happen when an action button got pressed multiple (10-20) times | 2024-09-29 +| 2.05 | - YardForce RM-ECOW-V1.1.0 support
- Backside alive LED is now software driven (hwtimer independent)
- Fix emergency-clear LED-countdown for RM-ECOW-V1.0.0| 2024-06-30 +| 2.04 | - YardForce RM-ECOW-V1.0.0 support
- Dropped separate versioning
- Fully refactored | 2023-11-14 +| 1.00 | - YardForce SAxPRO (Rev6) Dot-Matrix-Display support | 2023-09-27 +| 1.00 | - Stock-Cable support for rain & hall sensors
- Classic 500B support | 2023-05-13 +| NA | First OM's CoverUI port for YardForce Classic 500 | 2023-05-01 -[^4]: Press magic button combo 'Display CoverUI- firmware version' (see [Button Usage](#button-usage)) to get your installed FW version displayed +[^4]: Press sys-req button combo 'Display CoverUI- firmware version' (see [Button Usage](#button-usage)) to get your installed FW version displayed ## Contributing @@ -592,27 +246,12 @@ Distributed under the MIT License. See `LICENSE.txt` for more information.

(back to top)

- - - - - ## Acknowledgments * [OpenMower](https://github.com/ClemensElflein/OpenMower) * [Mowgli](https://github.com/cloudn1ne/Mowgli) * [PlatformIO](https://platformio.org/) -* [Picoprobe](https://github.com/raspberrypi/picoprobe) -* [Picoprobe housing](https://www.printables.com/de/model/217523-raspberry-pi-pico-picoprobe-housing) -* [Maximilian Gerhardt](https://community.platformio.org/u/maxgerhardt)

(back to top)

@@ -630,12 +269,4 @@ Project Link: [https://github.com/your_username/repo_name](https://github.com/yo [issues-url]: https://github.com/ClemensElflein/CoverUI/issues [license-shield]: https://img.shields.io/github/license/ClemensElflein/CoverUI.svg?style=for-the-badge [license-url]: https://github.com/ClemensElflein/CoverUI/blob/master/LICENSE.txt -[PlatformIO.js]: https://img.shields.io/badge/build%20with-PlatformIO-orange?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iMjUwMCIgaGVpZ2h0PSIyNTAwIiB2aWV3Qm94PSIwIDAgMjU2IDI1NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZD0iTTEyOCAwQzkzLjgxIDAgNjEuNjY2IDEzLjMxNCAzNy40OSAzNy40OSAxMy4zMTQgNjEuNjY2IDAgOTMuODEgMCAxMjhjMCAzNC4xOSAxMy4zMTQgNjYuMzM0IDM3LjQ5IDkwLjUxQzYxLjY2NiAyNDIuNjg2IDkzLjgxIDI1NiAxMjggMjU2YzM0LjE5IDAgNjYuMzM0LTEzLjMxNCA5MC41MS0zNy40OUMyNDIuNjg2IDE5NC4zMzQgMjU2IDE2Mi4xOSAyNTYgMTI4YzAtMzQuMTktMTMuMzE0LTY2LjMzNC0zNy40OS05MC41MUMxOTQuMzM0IDEzLjMxNCAxNjIuMTkgMCAxMjggMCIgZmlsbD0iI0ZGN0YwMCIvPjxwYXRoIGQ9Ik0yNDkuMzg2IDEyOGMwIDY3LjA0LTU0LjM0NyAxMjEuMzg2LTEyMS4zODYgMTIxLjM4NkM2MC45NiAyNDkuMzg2IDYuNjEzIDE5NS4wNCA2LjYxMyAxMjggNi42MTMgNjAuOTYgNjAuOTYgNi42MTQgMTI4IDYuNjE0YzY3LjA0IDAgMTIxLjM4NiA1NC4zNDYgMTIxLjM4NiAxMjEuMzg2IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTE2MC44NjkgNzQuMDYybDUuMTQ1LTE4LjUzN2M1LjI2NC0uNDcgOS4zOTItNC44ODYgOS4zOTItMTAuMjczIDAtNS43LTQuNjItMTAuMzItMTAuMzItMTAuMzJzLTEwLjMyIDQuNjItMTAuMzIgMTAuMzJjMCAzLjc1NSAyLjAxMyA3LjAzIDUuMDEgOC44MzdsLTUuMDUgMTguMTk1Yy0xNC40MzctMy42Ny0yNi42MjUtMy4zOS0yNi42MjUtMy4zOWwtMi4yNTggMS4wMXYxNDAuODcybDIuMjU4Ljc1M2MxMy42MTQgMCA3My4xNzctNDEuMTMzIDczLjMyMy04NS4yNyAwLTMxLjYyNC0yMS4wMjMtNDUuODI1LTQwLjU1NS01Mi4xOTd6TTE0Ni41MyAxNjQuOGMtMTEuNjE3LTE4LjU1Ny02LjcwNi02MS43NTEgMjMuNjQzLTY3LjkyNSA4LjMyLTEuMzMzIDE4LjUwOSA0LjEzNCAyMS41MSAxNi4yNzkgNy41ODIgMjUuNzY2LTM3LjAxNSA2MS44NDUtNDUuMTUzIDUxLjY0NnptMTguMjE2LTM5Ljc1MmE5LjM5OSA5LjM5OSAwIDAgMC05LjM5OSA5LjM5OSA5LjM5OSA5LjM5OSAwIDAgMCA5LjQgOS4zOTkgOS4zOTkgOS4zOTkgMCAwIDAgOS4zOTgtOS40IDkuMzk5IDkuMzk5IDAgMCAwLTkuMzk5LTkuMzk4em0yLjgxIDguNjcyYTIuMzc0IDIuMzc0IDAgMSAxIDAtNC43NDkgMi4zNzQgMi4zNzQgMCAwIDEgMCA0Ljc0OXoiIGZpbGw9IiNFNTcyMDAiLz48cGF0aCBkPSJNMTAxLjM3MSA3Mi43MDlsLTUuMDIzLTE4LjkwMWMyLjg3NC0xLjgzMiA0Ljc4Ni01LjA0IDQuNzg2LTguNzAxIDAtNS43LTQuNjItMTAuMzItMTAuMzItMTAuMzItNS42OTkgMC0xMC4zMTkgNC42Mi0xMC4zMTkgMTAuMzIgMCA1LjY4MiA0LjU5MiAxMC4yODkgMTAuMjY3IDEwLjMxN0w5NS44IDc0LjM3OGMtMTkuNjA5IDYuNTEtNDAuODg1IDIwLjc0Mi00MC44ODUgNTEuODguNDM2IDQ1LjAxIDU5LjU3MiA4NS4yNjcgNzMuMTg2IDg1LjI2N1Y2OC44OTJzLTEyLjI1Mi0uMDYyLTI2LjcyOSAzLjgxN3ptMTAuMzk1IDkyLjA5Yy04LjEzOCAxMC4yLTUyLjczNS0yNS44OC00NS4xNTQtNTEuNjQ1IDMuMDAyLTEyLjE0NSAxMy4xOS0xNy42MTIgMjEuNTExLTE2LjI4IDMwLjM1IDYuMTc1IDM1LjI2IDQ5LjM2OSAyMy42NDMgNjcuOTI2em0tMTguODItMzkuNDZhOS4zOTkgOS4zOTkgMCAwIDAtOS4zOTkgOS4zOTggOS4zOTkgOS4zOTkgMCAwIDAgOS40IDkuNCA5LjM5OSA5LjM5OSAwIDAgMCA5LjM5OC05LjQgOS4zOTkgOS4zOTkgMCAwIDAtOS4zOTktOS4zOTl6bS0yLjgxIDguNjcxYTIuMzc0IDIuMzc0IDAgMSAxIDAtNC43NDggMi4zNzQgMi4zNzQgMCAwIDEgMCA0Ljc0OHoiIGZpbGw9IiNGRjdGMDAiLz48L3N2Zz4= -[PlatformIO-url]: https://platformio.org/ -[ST-Link]: images/IMG_ST-Link-V2-Clone.jpg "ST-Link (V2) Clone" -[Picoprobe-url]: https://github.com/raspberrypi/picoprobe -[Picoprobe]: images/IMG_Picoprobe.jpg -[Picoprobe-open1]: images/IMG_Picoprobe-open1.jpg -[Picoprobe-open2]: images/IMG_Picoprobe-open2.jpg -[Pico-url]: https://www.raspberrypi.com/products/raspberry-pi-pico/ "Raspberry Pico" [OpenOCD-url]: https://openocd.org/pages/about.html diff --git a/Firmware/CoverUI/YardForce/images/IMG_Overview_RM-ECOW-V1.1.jpg b/Firmware/CoverUI/YardForce/images/IMG_Overview_RM-EC3-V11.jpg similarity index 100% rename from Firmware/CoverUI/YardForce/images/IMG_Overview_RM-ECOW-V1.1.jpg rename to Firmware/CoverUI/YardForce/images/IMG_Overview_RM-EC3-V11.jpg diff --git a/Firmware/CoverUI/YardForce/images/IMG_PCB_Changes_RM-ECOW-V100_Hall.jpg b/Firmware/CoverUI/YardForce/images/IMG_PCB_Changes_RM-ECOW-V100_Hall.jpg new file mode 100644 index 0000000000000000000000000000000000000000..198b3173d4ca6399ec55346822ddfe2a7f799733 GIT binary patch literal 145739 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°CyK_7(~z{Mj#U%ka} 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 literal 0 HcmV?d00001 diff --git a/Firmware/CoverUI/YardForce/images/IMG_PCB_Changes_RM-ECOW-V100_Hall2.jpg b/Firmware/CoverUI/YardForce/images/IMG_PCB_Changes_RM-ECOW-V100_Hall2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c166439ecdd220ac83997446ba393820002c90a GIT binary patch literal 212387 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 z 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

Gtx&s={%IVJdgkNlbd%X;pO3$t+(0?#rAIrTG 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 afl#kn5lC__IW-iImg1$GrYgNM(f`@m$7VMG literal 0 HcmV?d00001 diff --git a/Firmware/CoverUI/YardForce/images/IMG_Picoprobe-open1.jpg b/Firmware/CoverUI/YardForce/images/IMG_Picoprobe-open1.jpg deleted file mode 100644 index 809219ead1a32eb4ed81bcd839f19e67d6fcefe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208552 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

A-jNvYC3DSJb}fUBYFHaAJDLrVVPA}zknz*< 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Ð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%0A3f?fIfcswQVPYzA|_x#b|MBG@oF&Va5X<0sjEL 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 E*;Gk!RsaA1 diff --git a/Firmware/CoverUI/YardForce/include/ABC_Display.hpp b/Firmware/CoverUI/YardForce/include/ABC_Display.hpp new file mode 100644 index 0000000..8e3af6c --- /dev/null +++ b/Firmware/CoverUI/YardForce/include/ABC_Display.hpp @@ -0,0 +1,120 @@ +/** + * @file Display.hpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce CoverUI abstract display class header for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.1 + * @date 2023-11-27 + * + * @copyright Copyright (c) 2023 + */ +#ifndef YARDFORCE_ABC_DISPLAY_HPP +#define YARDFORCE_ABC_DISPLAY_HPP + +#define LVGL_BUFFER_MULTIPLIER 10 +#define LVGL_TIMER_HANDLER_PERIOD_MS 10 // 10ms lv_timer_handler() soft period + +#include +#include + +#include "../BttnCtl.h" +#include "include/main.h" +#include "include/subscription.h" + +#define BACKLIGHT_TIMEOUT_MS 120000 // 2 minutes + +namespace yardforce { +namespace display { +class AbstractDisplay { + public: + struct Config { + uint8_t backlight_led_num; + }; + + enum AnncmntType { + none, + close_hatch, + version, + }; + + struct Anncmnt // Announcement + { + uint32_t timeout; // Timeout (ms) + AnncmntType type; + }; + + AbstractDisplay(Config t_config) : config(t_config) {}; + + virtual bool init() = 0; // Init GPIOs, comms, as well as display + + /** + * @brief Tell LVGL that milliseconds have been elapsed. + * Required for anim or similar. Should be called in a high priority routine like hwtimer. + * + * @param ms + */ + void tick_inc(uint8_t ms) { + lv_tick_inc(ms); + } + + // Low priority loop for display changes. Also does lv_timer_handler() and subscription + virtual void loop_low_prio() { + lv_timer_handler(); + subscription::subscribe((Topic_set_ll_status | Topic_set_hl_state), 500); + check_backlight(); + } + + /** + * @brief Set backlight LED state and set/reset timeout counter + * + * @param state LED_state, default LED_on + * @param timeout in ms when to switch off + */ + void set_backlight(LED_state t_state = LED_on, uint32_t t_timeout = BACKLIGHT_TIMEOUT_MS) { + ::leds.set(config.backlight_led_num, t_state); + if (t_state != LED_off) + backlight_timeout = millis() + t_timeout; + backlight_state = t_state; + } + + LED_state check_backlight() { + if (backlight_state == LED_off) + return backlight_state; + + if (millis() < backlight_timeout) + return backlight_state; + + set_backlight(LED_off); + return backlight_state; + } + + // Start a new announcement + void start_anncmnt(uint32_t t_timeout_ms, AnncmntType t_type) { + anncmnt = { + .timeout = millis() + t_timeout_ms, + .type = t_type}; + } + + // Get announcement type if an announcement is running + AnncmntType get_anncmnt() { + if (!anncmnt.timeout) + return AnncmntType::none; + + if (millis() < anncmnt.timeout) + return anncmnt.type; + + anncmnt.timeout = 0; + return AnncmntType::none; + } + + protected: + Config config; + Anncmnt anncmnt; + + // Backlight handling + LED_state backlight_state; + uint32_t backlight_timeout; +}; // class Display + +} // namespace display +} // namespace yardforce +#endif // YARDFORCE_ABC_DISPLAY_HPP \ No newline at end of file diff --git a/Firmware/CoverUI/YardForce/include/ABC_Hatch.hpp b/Firmware/CoverUI/YardForce/include/ABC_Hatch.hpp new file mode 100644 index 0000000..2a6b419 --- /dev/null +++ b/Firmware/CoverUI/YardForce/include/ABC_Hatch.hpp @@ -0,0 +1,64 @@ +/** + * @file Hatch.hpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce CoverUI Abstract Hatch class for OpenMower https://github.com/ClemensElflein/OpenMower + * This is for YardForce models (like SA, SC or NX), whose CoverUI is behind a hatch. + * Those need some special (button) handling because opening the hatch (to reach the buttons), triggers stop-emergency. + * @version 0.3 + * @date 2024-09-30 + * + * @copyright Copyright (c) 2023, 2024 + * + */ +#ifndef YARDFORCE_ABC_HATCH_HPP +#define YARDFORCE_ABC_HATCH_HPP + +#include +#include + +const unsigned int FAKE_BUTTON_QUEUE_SIZE = 10; + +class AbstractHatch { + public: + struct FakeButton { + uint8_t button_id; + uint8_t press_duration; // 0 for single press, 1 for long, 2 for very long press + uint32_t delay_end; + }; + + /** + * @brief Handle any kind of pressed button result like: + * 1. Convert a button id to some other value + * 2. Trigger count-down for hatch-close + * 3. Queue fake (delayed) buttons + * 4. Handle fake_button_queue and probably directly send Get_Button packet + * + * @param button_id + * @param press_time + * @return unsigned int of the probably converted or ignored button ID + */ + virtual unsigned int handle_button(unsigned int button_id, unsigned int press_cnt) = 0; + + void queue_button(uint8_t button_id, uint8_t press_duration, uint32_t delay) { + fake_button_queue.push({button_id, press_duration, millis() + delay}); + }; + + /** + * @brief Loop over fake_button_queue and process(send) ready ones + */ + void process_queued() { + if (fake_button_queue.empty() || fake_button_queue.full()) + return; + + auto first = fake_button_queue.front(); + if (millis() >= first.delay_end) { + buttons.send(first.button_id, first.press_duration); + fake_button_queue.pop(); + } + }; + + protected: + etl::queue fake_button_queue; +}; + +#endif // YARDFORCE_ABC_HATCH_HPP diff --git a/Firmware/CoverUI/YardForce/include/ButtonDebouncer.hpp b/Firmware/CoverUI/YardForce/include/ButtonDebouncer.hpp index f5f3f8b..c572312 100644 --- a/Firmware/CoverUI/YardForce/include/ButtonDebouncer.hpp +++ b/Firmware/CoverUI/YardForce/include/ButtonDebouncer.hpp @@ -1,14 +1,14 @@ /** * @file ButtonDebouncer.hpp * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce CoverUI Button-Debouncer header for OpenMower https://github.com/ClemensElflein/OpenMower + * @brief YardForce CoverUI Button-Debouncer Class for OpenMower https://github.com/ClemensElflein/OpenMower * Debouncing is done by continuos simple shifting the port states into an state array for later processing. * See Jack Ganssle debouncing http://www.ganssle.com/debouncing-pt2.htm * For code simplicity/speed, I debounce all pins, regardless if it has a button or not. Button separation has to be done by calling class. - * @version 0.3 - * @date 2023-10-26 + * @version 0.4 + * @date 2024-10-01 * - * @copyright Copyright (c) 2023 + * @copyright Copyright (c) 2023, 2024 * */ #ifndef YARDFORCE_BUTTONDEBOUNCER_HPP @@ -16,19 +16,54 @@ #include -#define NUM_BUTTON_STATES 8 // * 5ms timer = 40ms bouncing-button states = debounced after 40ms +#define NUM_BUTTON_STATES 8 // * 5ms timer = 40ms bouncing-button states = debounced after 40ms -class ButtonDebouncer -{ -public: - void process_state(const uint32_t gpio_port_nr); // Has to get called regulary i.e. by timer (5ms) and store the (buttons) port state within states_ array - bool is_pressed(uint8_t pin); +class ButtonDebouncer { + public: + /** + * @brief Has to get called regulary i.e. by timer (5ms), which store the (buttons) port state within states_ array. + * + * @param gpio_port_nr which shall be debounced + */ + void process_state(const uint32_t gpio_port_nr) { +#ifdef MCU_STM32 + auto gpio_port = get_GPIO_Port(gpio_port_nr); + states_[state_index_] = gpio_port->IDR ^ 0xFFFF; // XOR changes for pull-up states_ +#else + states_[state_index_] = GPIO_ISTAT(gpio_port[gpio_port_nr]) ^ 0xFFFF; // XOR changes for pull-up states_ +#endif -private: - uint16_t states_[NUM_BUTTON_STATES]; // GPIO port state recorder (every time interval = 5ms) - uint8_t state_index_ = 0; // Index for next states_ store positions - volatile uint16_t state_debounced_; // Debounced buttons state - uint16_t state_changed_; // Just changed buttons + // Debounce + uint16_t laststate_debounced_ = state_debounced_; + unsigned int i; + for (i = 0, state_debounced_ = 0xFFFF; i < NUM_BUTTON_STATES; i++) + state_debounced_ &= states_[i]; + + // Circular buffer index + state_index_++; + if (state_index_ >= NUM_BUTTON_STATES) + state_index_ = 0; + + // Save what changed + state_changed_ = state_debounced_ ^ laststate_debounced_; + } + + /** + * @brief Return boolean true if the given pin's button is pressed. + * Take into notice that the returned state is already debounced. + * + * @param pin digital_pin + * @return true if pressed, false if not pressed + */ + bool is_pressed(uint8_t pin) { + return state_debounced_ & digitalPinToBitMask(pin); + } + + private: + uint16_t states_[NUM_BUTTON_STATES]; // GPIO port state recorder (every time interval = 5ms) + uint8_t state_index_ = 0; // Index for next states_ store positions + volatile uint16_t state_debounced_; // Debounced buttons state + uint16_t state_changed_; // Just changed buttons }; -#endif // YARDFORCE_BUTTONDEBOUNCER_HPP +#endif // YARDFORCE_BUTTONDEBOUNCER_HPP diff --git a/Firmware/CoverUI/YardForce/include/Buttons.hpp b/Firmware/CoverUI/YardForce/include/Buttons.hpp index 0682d19..eca6636 100644 --- a/Firmware/CoverUI/YardForce/include/Buttons.hpp +++ b/Firmware/CoverUI/YardForce/include/Buttons.hpp @@ -1,30 +1,34 @@ /** * @file Buttons.hpp * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce CoverUI Buttons header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.6 - * @date 2023-11-05 + * @brief YardForce CoverUI Buttons class for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.7 + * @date 2024-10-01 * - * @copyright Copyright (c) 2023 + * @copyright Copyright (c) 2023, 2024 * */ #ifndef YARDFORCE_BUTTONS_HPP #define YARDFORCE_BUTTONS_HPP #include +#include #include + #include -#include "ButtonDebouncer.hpp" + +#include "../../BttnCtl.h" +#include "../include/ButtonDebouncer.hpp" // Logic button numbers. Take attention that OM known buttons need to have the same logic number! // 0 is reserved for no-button return #define BTN_CLK_NUM 1 #define BTN_HOME_NUM 2 -#define BTN_PLAY_NUM 3 // or Start +#define BTN_PLAY_NUM 3 // or Start #define BTN_S1_NUM 4 #define BTN_S2_NUM 5 #define BTN_LOCK_NUM 6 -#define BTN_OK_NUM 7 // or Enter +#define BTN_OK_NUM 7 // or Enter #define BTN_MON_NUM 8 #define BTN_TUE_NUM 9 #define BTN_WED_NUM 10 @@ -33,50 +37,136 @@ #define BTN_SAT_NUM 13 #define BTN_SUN_NUM 14 // (yet) unknown OM buttons. Let's start from 0x20 to have some free space for more (future) OM supported buttons -#define BTN_UP_NUM 32 // i.e. SAxPRO display -#define BTN_DOWN_NUM 33 // i.e. SAxPRO display -#define BTN_BACK_NUM 34 // i.e. SAxPRO display -#define BTN_4H_NUM 35 // i.e. RM-ECOW-V100 -#define BTN_6H_NUM 36 // i.e. RM-ECOW-V100 -#define BTN_8H_NUM 37 // i.e. RM-ECOW-V100 -#define BTN_10H_NUM 38 // i.e. RM-ECOW-V100 -#define BTN_SETUP_NUM 39 // i.e. RM-ECOW-V100 (WLAN-Setup button) -#define BTN_MENU_NUM 40 // i.e. RM-EC3-V11 -#define BTN_0_NUM 48 // ASCII 0, i.e. RM-EC3-V11 -#define BTN_1_NUM 49 // ASCII 1, i.e. RM-EC3-V11 -#define BTN_2_NUM 50 // ASCII 2, i.e. RM-EC3-V11 -#define BTN_3_NUM 51 // ASCII 3, i.e. RM-EC3-V11 -#define BTN_4_NUM 52 // ASCII 4, i.e. RM-EC3-V11 -#define BTN_5_NUM 53 // ASCII 5, i.e. RM-EC3-V11 -#define BTN_6_NUM 54 // ASCII 6, i.e. RM-EC3-V11 -#define BTN_7_NUM 55 // ASCII 7, i.e. RM-EC3-V11 -#define BTN_8_NUM 56 // ASCII 8, i.e. RM-EC3-V11 -#define BTN_9_NUM 57 // ASCII 9, i.e. RM-EC3-V11 - -class Buttons -{ -public: - struct ButtonDef - { +#define BTN_UP_NUM 32 // i.e. SAxPRO display +#define BTN_DOWN_NUM 33 // i.e. SAxPRO display +#define BTN_BACK_NUM 34 // i.e. SAxPRO display +#define BTN_4H_NUM 35 // i.e. RM-ECOW-V100 +#define BTN_6H_NUM 36 // i.e. RM-ECOW-V100 +#define BTN_8H_NUM 37 // i.e. RM-ECOW-V100 +#define BTN_10H_NUM 38 // i.e. RM-ECOW-V100 +#define BTN_SETUP_NUM 39 // i.e. RM-ECOW-V100 (WLAN-Setup button) +#define BTN_MENU_NUM 40 // i.e. RM-EC3-V11 +#define BTN_0_NUM 48 // ASCII 0, i.e. RM-EC3-V11 +#define BTN_1_NUM 49 // ASCII 1, i.e. RM-EC3-V11 +#define BTN_2_NUM 50 // ASCII 2, i.e. RM-EC3-V11 +#define BTN_3_NUM 51 // ASCII 3, i.e. RM-EC3-V11 +#define BTN_4_NUM 52 // ASCII 4, i.e. RM-EC3-V11 +#define BTN_5_NUM 53 // ASCII 5, i.e. RM-EC3-V11 +#define BTN_6_NUM 54 // ASCII 6, i.e. RM-EC3-V11 +#define BTN_7_NUM 55 // ASCII 7, i.e. RM-EC3-V11 +#define BTN_8_NUM 56 // ASCII 8, i.e. RM-EC3-V11 +#define BTN_9_NUM 57 // ASCII 9, i.e. RM-EC3-V11 + +#define BTN_HAS_NO_LED -1 + +#define MAX_BTN_GPIO_PORTS 6 // Our MCUs do have GPIO-Ports A-F = 6 + +#ifdef MCU_STM32 +#define DIGITAL_PIN_TO_PORT_NR(p) (STM_PORT(digitalPinToPinName(p))) +#else // MCU_GD32 +#define DIGITAL_PIN_TO_PORT_NR(p) (GD_PORT_GET(DIGITAL_TO_PINNAME(p))) +#endif + +extern void sendMessage(void *message, size_t size); + +class Buttons { + public: + struct ButtonDef { uint8_t pin; - int8_t led_num; // Corresponding LED num. -1 is none. + int8_t led_num; // Corresponding LED num. -1 is none. }; + const std::map &kBtnDefByNumMap; // Ref to Map of Button-Num -> ButtonDef (pin & corresponding LED num) + + Buttons(const std::map &t_kBtnDefByNumMap) : kBtnDefByNumMap(t_kBtnDefByNumMap) { + // Loop over Button-Num -> button pin map + for (auto const &it : kBtnDefByNumMap) { + // Create debouncer if not already exist for this Pin's GPIO_Port_Nr + uint32_t gpio_port_nr = DIGITAL_PIN_TO_PORT_NR(it.second.pin); + auto debouncer = debouncer_by_gpio_port_nr_map.find(gpio_port_nr); + if (debouncer == debouncer_by_gpio_port_nr_map.end()) + debouncer_by_gpio_port_nr_map.insert(etl::pair(gpio_port_nr, ButtonDebouncer())); + + pinMode(it.second.pin, INPUT_PULLUP); + } + } + + /** + * @brief Handle CoverUI specific keys like BootUp-Anim or version number display. + * Should be continuously called <= 500ms. + */ + virtual void handle_sys_req() {} + + /** + * @brief Get corresponding LED num for button num + * + * @param button_nr + * @return uint8_t LED num. -1 of not exists. + */ + int8_t get_led(uint8_t button_nr) { + auto btn_def_it = kBtnDefByNumMap.find(button_nr); // Find button_nr and get iterator pair + if (btn_def_it != kBtnDefByNumMap.end()) + return btn_def_it->second.led_num; + + return -1; + } + + /** + * @brief Return ButtonNum of the first detected pressed button. + * Take into notice that the returned state is already debounced. + * + * @return uint8_t 0 = none pressed, >0 = ButtonNum + */ + uint8_t is_pressed() { + for (auto const &it : kBtnDefByNumMap) // Loop over Button-Num -> button pin map + if (is_pressed(it.first)) + return it.first; + + return 0; + } - const std::map &kBtnDefByNumMap; // Map of Button-Num -> ButtonDef (pin & corresponding LED num) - std::map debouncer_by_gpio_port_nr_map; // Map of GPIO Port Nr -> debouncer object + /** + * @brief Return boolean true if the given button number is pressed. + * Take into notice that the returned state is already debounced. + * + * @param uint8_t button_nr + * @return true if pressed, false if not pressed + */ + bool is_pressed(uint8_t button_nr) { + auto btn_def_it = kBtnDefByNumMap.find(button_nr); // Find button_nr and get iterator pair + if (btn_def_it == kBtnDefByNumMap.end()) + return false; - Buttons(const std::map &t_kBtnDefByNumMap) : kBtnDefByNumMap(t_kBtnDefByNumMap){}; + uint32_t gpio_port_nr = DIGITAL_PIN_TO_PORT_NR(btn_def_it->second.pin); + auto debouncer_it = debouncer_by_gpio_port_nr_map.find(gpio_port_nr); // Find debouncer and get iterator pair + if (debouncer_it == debouncer_by_gpio_port_nr_map.end()) + return false; - virtual ~Buttons() = default; + return debouncer_it->second.is_pressed(btn_def_it->second.pin); + } - int8_t get_led(uint8_t button_nr); - bool is_pressed(uint8_t button_nr); - uint8_t is_pressed(); + /** + * @brief Process GPIO states by debouncer. Has to get called regulary i.e. by timer (5ms) + * + */ + void process_states() { + for (auto &it : debouncer_by_gpio_port_nr_map) + it.second.process_state(it.first); + } - void process_states(); + /** + * @brief Send 'rain' message via COBS with last read rain-sensor- value (together with (currently static) threshold) + * + */ + void send(uint16_t button_id, uint8_t press_duration) { + msg_event_button msg = { + .type = Get_Button, + .button_id = button_id, + .press_duration = press_duration}; + sendMessage(&msg, sizeof(msg)); + } - void setup(); - void send(uint16_t button_id, uint8_t press_duration); + private: + etl::map debouncer_by_gpio_port_nr_map; // Map of GPIO Port Nr -> debouncer object }; -#endif // YARDFORCE_BUTTONS_HPP +#endif // YARDFORCE_BUTTONS_HPP diff --git a/Firmware/CoverUI/YardForce/include/Display.hpp b/Firmware/CoverUI/YardForce/include/Display.hpp deleted file mode 100644 index 6362bf5..0000000 --- a/Firmware/CoverUI/YardForce/include/Display.hpp +++ /dev/null @@ -1,70 +0,0 @@ -/** - * @file Display.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce CoverUI abstract display class header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-27 - * - * @copyright Copyright (c) 2023 - */ -#ifndef YARDFORCE_DISPLAY_HPP -#define YARDFORCE_DISPLAY_HPP - -#define LVGL_BUFFER_MULTIPLIER 10 -#define LVGL_TIMER_HANDLER_PERIOD_MS 10 // 10ms lv_timer_handler() soft period - -#include -#include "../BttnCtl.h" - -#define BACKLIGHT_TIMEOUT_MS 120000 // 2 minutes - -namespace yardforce -{ - namespace display - { - class Display - { - public: - struct Config - { - uint8_t backlight_led_num; - }; - - enum AnncmntType - { - none, - close_hatch, - version, - }; - - struct Anncmnt // Announcement - { - uint32_t timeout; // Timeout (ms) - AnncmntType type; - }; - - Display(Config t_config) : config(t_config){}; - - virtual bool init() = 0; // Init GPIOs, comms, as well as display - - void tick_inc(uint8_t ms); - virtual void loop_low_prio(); // Low priority loop for display changes. Also does lv_timer_handler() and subscription - - void set_backlight(LED_state t_state = LED_on, uint32_t t_timeout = BACKLIGHT_TIMEOUT_MS); - LED_state check_backlight(); - - void start_anncmnt(uint32_t t_timeout_ms, AnncmntType t_type); // Start a new announcement - AnncmntType get_anncmnt(); // Get announcement type if an announcement is running - - protected: - Config config; - Anncmnt anncmnt; - - // Backlight handling - LED_state backlight_state; - uint32_t backlight_timeout; - }; // class Display - - } // namespace display -} // namespace yardforce -#endif // YARDFORCE_DISPLAY_HPP \ No newline at end of file diff --git a/Firmware/CoverUI/YardForce/include/Emergency.hpp b/Firmware/CoverUI/YardForce/include/Emergency.hpp index 9385e70..b258583 100644 --- a/Firmware/CoverUI/YardForce/include/Emergency.hpp +++ b/Firmware/CoverUI/YardForce/include/Emergency.hpp @@ -1,11 +1,11 @@ /** * @file Emergency.hpp * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce CoverUI Emergency header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.3 - * @date 2023-11-05 + * @brief YardForce CoverUI Emergency class for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.4 + * @date 2024-10-02 * - * @copyright Copyright (c) 2023 + * @copyright Copyright (c) 2023, 2024 * */ @@ -13,36 +13,98 @@ #define YARDFORCE_EMERGENCY_HPP #include + #include "../../BttnCtl.h" -#define PERIODIC_SEND_CYCLE 1000 // Periodic cycle (ms) how often to send emergency state (if there's no active emergency) +#define PERIODIC_SEND_CYCLE 1000 // Periodic cycle (ms) how often to send emergency state (if there's no active emergency) -struct EmergencyPinStateDef -{ - uint8_t pin; - uint8_t pin_mode; - Emergency_state state; -}; +extern void sendMessage(void *message, size_t size); +class Emergency { + public: + struct PinStateDef { + uint8_t pin; + uint8_t pin_mode; + Emergency_state state; + }; -class Emergency -{ -public: - const EmergencyPinStateDef *kEmergencyPinStatesPtr; // Pointer to an array of EmergencyPinStateDef's (order doesn't matter) + const PinStateDef *kPinStatesPtr; // Pointer to an array of PinStateDef's (order doesn't matter) const size_t kNumEmergencies; - Emergency(const EmergencyPinStateDef *t_kEmergencyPinStatesPtr, const size_t t_kNumEmergencies) : kEmergencyPinStatesPtr(t_kEmergencyPinStatesPtr), kNumEmergencies(t_kNumEmergencies){}; + Emergency(const PinStateDef *t_kPinStatesPtr, const size_t t_kNumEmergencies) : kPinStatesPtr(t_kPinStatesPtr), kNumEmergencies(t_kNumEmergencies) { + for (size_t i = 0; i < kNumEmergencies; i++) { + auto pin_state = *(kPinStatesPtr + i); + pinMode(pin_state.pin, pin_state.pin_mode); + } + }; + + /** + * @brief Read all related hall-sensors and update state_ + * + */ + void read() { + state_ = 0; // We might have more emergency sensors and switch than OM Emergency_states. So we need to OR them instead of assign them 1:1 + for (size_t i = 0; i < kNumEmergencies; i++) { + auto pin_state = *(kPinStatesPtr + i); + if (digitalRead(pin_state.pin) == HIGH) + state_ |= pin_state.state; + } + if (state_) + state_ |= Emergency_state::Emergency_latch; + } + + /** + * @brief Send 'emergency' message via COBS with latest state_ + * + */ + void send() { + msg_event_emergency msg = { + .type = Get_Emergency, + .state = state_}; + sendMessage(&msg, sizeof(msg)); + state_last_sent_ = state_; + } + + /** + * @brief read() related hall sensors and send if a new emergency occurred. + * Get called constantly by quick (5ms) timer + * + */ + void read_and_send_if_emergency() { + read(); + + if (state_ & Emergency_state::Emergency_latch && !(state_last_sent_ & Emergency_state::Emergency_latch)) { + send(); + next_periodic_cycle = millis() + PERIODIC_SEND_CYCLE; + } + } + + /** + * @brief Periodically send emergency state. + * Get called by fast (100ms) timer. + * An active emergency state get send on each call. + * An inactive emergency state get only every PERIODIC_SEND_CYCLE + */ + void periodic_send() { + // Active emergency + if (state_ & Emergency_state::Emergency_latch) { + send(); + next_periodic_cycle = millis() + PERIODIC_SEND_CYCLE; + return; + } + + // Inactive emergency + if (millis() < next_periodic_cycle) + return; - void setup(); - void read(); - void send(); - void read_and_send_if_emergency(); - void periodic_send(); + send(); + next_periodic_cycle = millis() + PERIODIC_SEND_CYCLE; + } -private: + private: volatile uint32_t next_periodic_cycle = PERIODIC_SEND_CYCLE; - volatile uint8_t state_ = 0; // Current emergency state, set by read() - uint8_t state_last_sent_ = 0; // Copy of last sent state_ + volatile uint8_t state_ = 0; // Current emergency state, set by read() + uint8_t state_last_sent_ = 0; // Copy of last sent state_ }; -#endif // YARDFORCE_EMERGENCY_HPP +#endif // YARDFORCE_EMERGENCY_HPP diff --git a/Firmware/CoverUI/YardForce/include/Hatch.hpp b/Firmware/CoverUI/YardForce/include/Hatch.hpp deleted file mode 100644 index f8a1c9e..0000000 --- a/Firmware/CoverUI/YardForce/include/Hatch.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/** - * @file Hatch.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce CoverUI Hatch header for OpenMower https://github.com/ClemensElflein/OpenMower - * This is for YardForce models (like SA, SC or NX), whose CoverUI is behind a hatch. - * Those need some special (button) handling because opening the hatch (to reach the buttons), triggers stop-emergency. - * @version 0.2 - * @date 2023-11-05 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_HATCH_HPP -#define YARDFORCE_HATCH_HPP - -#include -#include - -class Hatch -{ -public: - struct FakeButton - { - uint8_t button_id; - uint8_t press_duration; // 0 for single press, 1 for long, 2 for very long press - uint32_t delay_end; - }; - - virtual ~Hatch() = default; - - unsigned int handle_button(unsigned int button_id, uint32_t press_time); - void queue_button(uint8_t button_id, uint8_t press_duration, uint32_t delay); - void process_queued(); - -protected: - std::list fake_button_queue; -}; - -#endif // YARDFORCE_HATCH_HPP diff --git a/Firmware/CoverUI/YardForce/include/LEDcontrol.hpp b/Firmware/CoverUI/YardForce/include/LEDcontrol.hpp index 2585afc..db485d9 100644 --- a/Firmware/CoverUI/YardForce/include/LEDcontrol.hpp +++ b/Firmware/CoverUI/YardForce/include/LEDcontrol.hpp @@ -8,16 +8,17 @@ * @copyright Copyright (c) 2023 * */ -#ifndef YARDFORCE_LEDCONTROL_H -#define YARDFORCE_LEDCONTROL_H +#ifndef YARDFORCE_LEDCONTROL_HPP +#define YARDFORCE_LEDCONTROL_HPP #include #include + #include "../../BttnCtl.h" -#define LED_PIN_NC 0xffffffff // Not Connected (virtual LED) +#define LED_PIN_NC 0xffffffff // Not Connected (virtual LED) -#define LED_NUM_OM_MAX 17 // Highest LED num controlled by OM LL FW +#define LED_NUM_OM_MAX 17 // Highest LED num controlled by OM LL FW // Some handy LED-num defines #define LED_NUM_CHARGE 0 @@ -32,21 +33,17 @@ #define LED_NUM_2HR 17 #define LED_NUM_REAR 18 -class LEDcontrol -{ -public: - const uint32_t *kPinByLedNumPtr; // Pointer to an array of LED pins, indexed by OM-LED-Num - const size_t kNumLeds; // Number of defined LEDs - void (LEDcontrol::*set_base10_leds_cb)(char digit); // Callback pointer to set_base10_leds_cb(char digit) method +class LEDcontrol { + public: + const uint32_t *kPinByLedNumPtr; // Pointer to an array of LED pins, indexed by OM-LED-Num + const size_t kNumLeds; // Number of defined LEDs + void (LEDcontrol::*set_base10_leds_cb)(char digit); // Callback pointer to set_base10_leds_cb(char digit) method - LEDcontrol(const uint32_t *t_kPinByLedNumPtr, const size_t t_kNumLeds); - LEDcontrol(const uint32_t *t_kPinByLedNumPtr, const size_t t_kNumLeds, void (LEDcontrol::*t_set_base10_leds_cb)(char digit)); + LEDcontrol(const uint32_t *t_kPinByLedNumPtr, const size_t t_kNumLeds, void (LEDcontrol::*t_set_base10_leds_cb)(char digit) = nullptr); virtual ~LEDcontrol() = default; - void setup(); - - void blink_timer_elapsed(LED_state blink_state); // Get called by responsible blink timer + void blink_timer_elapsed(LED_state blink_state); // Get called by responsible blink timer void force_off(uint8_t led_num, bool force); // Switch/force LED num off, independent of it's running state virtual void force_off_num_seq_leds(bool force) {}; // Force off all show_num() / sequence-num LEDs @@ -60,32 +57,32 @@ class LEDcontrol virtual void set_base10_leds(char digit) {}; // Set LED representation for a single digit (by default empty) void toggle(uint8_t led_num, bool change_state = true); // Set any of known LED_state states for a specific LED - virtual unsigned int boot_animation() { return 0; }; // A short boot animation which return the amount of ms it will take + virtual unsigned int boot_animation() { return 0; }; // A short boot animation which return the amount of ms it will take // ***** Sequence stuff ***** - void process_sequence(); // Called by timer for LED sequences like animation or FW version display - void sequence_start(void (LEDcontrol::*handler)(), bool abort_running = false); // Start the given sequence method - virtual void sequence_animate_handler(){}; // A short LED Animation handler - virtual void sequence_countdown_handler(){}; // A short LED Countdown handler - void show_num(uint16_t); // Display a number via Mon-Sun + Lifted LED + void process_sequence(); // Called by timer for LED sequences like animation or FW version display + void sequence_start(void (LEDcontrol::*handler)(), bool abort_running = false); // Start the given sequence method + virtual void sequence_animate_handler() {}; // A short LED Animation handler + virtual void sequence_countdown_handler() {}; // A short LED Countdown handler + void show_num(uint16_t); // Display a number via Mon-Sun + Lifted LED -protected: - uint64_t led_states_bin_ = 0; // Binary representation of all LEDs. Each LED gets three bits (19*3=57) for the current state (see BtnCtrl.h) - uint32_t seq_start_tick_ = 0; // ms tick when sequence started. Indicator for a running sequence if > 0 - uint16_t seq_get_next_step_(uint16_t step_rate); // Get next sequence step for the given step-rate. Return 0 if the next step isn't reached now. + protected: + uint64_t led_states_bin_ = 0; // Binary representation of all LEDs. Each LED gets three bits (19*3=57) for the current state (see BtnCtrl.h) + uint32_t seq_start_tick_ = 0; // ms tick when sequence started. Indicator for a running sequence if > 0 + uint16_t seq_get_next_step_(uint16_t step_rate); // Get next sequence step for the given step-rate. Return 0 if the next step isn't reached now. -private: - uint32_t force_led_on_ = 0; // Binary representation of a "forced LED on" led_states_bin_ overrule - uint32_t force_led_off_ = 0; // Binary representation of a "forced LED off" led_states_bin_ overrule + private: + uint32_t force_led_on_ = 0; // Binary representation of a "forced LED on" led_states_bin_ overrule + uint32_t force_led_off_ = 0; // Binary representation of a "forced LED off" led_states_bin_ overrule - void change_led_states_(uint8_t led_num, LED_state state); // Change led_states_bin_ for the given LED num and state - void force_(uint8_t led_num, bool force, uint32_t *force_type_); // Switch/force LED num on or off, independent on it's running state + void change_led_states_(uint8_t led_num, LED_state state); // Change led_states_bin_ for the given LED num and state + void force_(uint8_t led_num, bool force, uint32_t *force_type_); // Switch/force LED num on or off, independent on it's running state - uint16_t seq_step_ = 0; // Step position of the current running sequence - uint16_t seq_num_value_; // To lazy now to build a common member function pointer with variable function arg length + uint16_t seq_step_ = 0; // Step position of the current running sequence + uint16_t seq_num_value_; // To lazy now to build a common member function pointer with variable function arg length - void seq_num_handler_(); // Sequence handler for displaying a number via Mon-Sun + Lifted LED - void (LEDcontrol::*seq_handler_)(void); // Member function ptr to sequence handler + void seq_num_handler_(); // Sequence handler for displaying a number via Mon-Sun + Lifted LED + void (LEDcontrol::*seq_handler_)(void); // Member function ptr to sequence handler }; -#endif // YARDFORCE_LEDCONTROL_H +#endif // YARDFORCE_LEDCONTROL_HPP diff --git a/Firmware/CoverUI/YardForce/include/main.h b/Firmware/CoverUI/YardForce/include/main.h index 522d4bf..b2e1fda 100644 --- a/Firmware/CoverUI/YardForce/include/main.h +++ b/Firmware/CoverUI/YardForce/include/main.h @@ -11,7 +11,8 @@ #ifndef __YARDFORCE_MAIN_H #define __YARDFORCE_MAIN_H -#include // Stock CoverUI is build now via Arduino framework (instead of HAL), which is ATM the only framework with STM32F030R8 and GD32F330R8 support +#include // Stock CoverUI is build now via Arduino framework (instead of HAL), which is ATM the only framework with STM32F030R8 and GD32F330R8 support + #include "datatypes.h" #if defined(FIRMWARE_VERSION) && !(FIRMWARE_VERSION == 200) @@ -20,18 +21,18 @@ #else #undef FIRMWARE_VERSION #endif -#define FIRMWARE_VERSION 205 +#define FIRMWARE_VERSION 206 #if defined(MDL_C500) -#include "model_C500.h" +#include "../model/C500/assembly.hpp" #elif defined(MDL_RMECOWV100) -#include "model_RM-ECOW-V100.h" +#include "../model/RM-ECOW-V100/assembly.hpp" #elif defined(MDL_RMECOWV110) -#include "model_RM-ECOW-V110.h" +#include "../model/RM-ECOW-V110/assembly.hpp" #elif defined(MDL_RMEC3V11) -#include "model_RM-EC3-V11.h" +#include "../model/RM-EC3-V11/assembly.hpp" #elif defined(MDL_SAXPRO) -#include "model_SAxPRO.h" +#include "../model/SAxPRO/assembly.hpp" #else #pragma GCC error "Missing model header!" #include @@ -69,4 +70,4 @@ extern void uart_putc(HardwareSerial *Serial, uint8_t c); extern bool uart_is_readable(HardwareSerial *Serial); extern void Force_LED_off(uint8_t led_num, bool force); -#endif // __YARDFORCE_MAIN_H \ No newline at end of file +#endif // __YARDFORCE_MAIN_H \ No newline at end of file diff --git a/Firmware/CoverUI/YardForce/include/model/Display_RM-EC3-V11.cpp b/Firmware/CoverUI/YardForce/include/model/Display_RM-EC3-V11.cpp deleted file mode 100644 index 377078e..0000000 --- a/Firmware/CoverUI/YardForce/include/model/Display_RM-EC3-V11.cpp +++ /dev/null @@ -1,349 +0,0 @@ -/** - * @file Display_RM-EC3-V11.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce CoverUI RM-EC3-V1.1 display driver class for OpenMower https://github.com/ClemensElflein/OpenMower - * This JLX25664 dispay is 4-level (2 Bit) gray scale capable, but for ease of development, it's driven as monochrome display. - * @version 0.1 - * @date 2023-11-27 - * - * @copyright Copyright (c) 2023 - */ -#include "Display_RM-EC3-V11.hpp" -#include -#include "../subscription.h" -#include "../main.h" - -// C images -LV_IMG_DECLARE(OM_Logo_120x54x1); -LV_IMG_DECLARE(OM_Wordmark_240x35x1); - -namespace yardforce -{ - namespace display - { - static controller::ST75256 st75256; // Controller driver - - // LVGL buffers - static lv_disp_draw_buf_t lv_disp_buf; - static lv_color_t lv_buf_1[ST75256_DISPLAY_WIDTH * LVGL_BUFFER_MULTIPLIER]; - static lv_color_t lv_buf_2[ST75256_DISPLAY_WIDTH * LVGL_BUFFER_MULTIPLIER]; - - // Status Screen Widgets - lvgl::WidgetLedSymbol *v_led_heartbeat, *v_led_ros, - *v_led_emergency_wheel, *v_led_emergency, *v_led_emergency_stop, - *v_led_bat, *v_led_gps, *v_led_charge, *v_led_power; - lvgl::WidgetBar *bar_gps, *bar_bat; - lvgl::WidgetTextTicker *text_ticker_status; - - bool main_screen_active = false; // Initialized and active - bool last_docked_state_; // true = docked, false = undocked - - bool DisplayRMEC3V11::init() - { - // Init LCD display controller - st75256.init(); - - // Init LVGL - lv_init(); - lv_disp_drv_init(&lv_disp_drv); // Basic LVGL display driver initialization - lv_disp_drv.draw_buf = &lv_disp_buf; // Set an initialized buffer - lv_disp_drv.rounder_cb = rounder_cb; // Round x coordinated so that it fit for our 3 RGB pixel/per dot display - lv_disp_drv.flush_cb = flush_cb; // Set a flush callback to draw to the display - lv_disp_drv.hor_res = ST75256_DISPLAY_WIDTH; // Set the horizontal resolution in pixels - lv_disp_drv.ver_res = ST75256_DISPLAY_HEIGHT; // Set the vertical resolution in pixels - lv_disp_draw_buf_init(&lv_disp_buf, lv_buf_1, lv_buf_2, ST75256_DISPLAY_WIDTH * LVGL_BUFFER_MULTIPLIER); // Initialize `disp_buf` with the buffer(s) - lv_disp_t *disp; - disp = lv_disp_drv_register(&lv_disp_drv); // Register the driver and save the created display objects - lv_obj_set_style_bg_color(lv_scr_act(), lv_color_white(), LV_PART_MAIN); // No background color - - openmower_anim(); - //mainScreen(); - - return true; - } - - /** - * @brief Rounder callback will round the display area to a multiple of 8, on y axis (because one DDRAM byte are 8 y-pixels (page), per column) - * - * @param disp_drv - * @param area - */ - void DisplayRMEC3V11::rounder_cb(lv_disp_drv_t *disp_drv, lv_area_t *area) - { - area->y1 = area->y1 - (area->y1 % 8); // Round down to neares multiple of 8 - area->y2 = (area->y2 + 8) - (area->y2 % 8) - 1; // Round up to nearest multiple of 8, minus -1 - } - - /** - * @brief Flush display buffer to display controller. - * - * @param disp_drv - * @param area - * @param t_color_p - */ - void DisplayRMEC3V11::flush_cb(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *t_color_p) - { - size_t cols = (area->x2 - area->x1) + 1; // Num of columns for this flush area - uint8_t page_pixel_buffer[cols]; // Store 8 y pixel (LSB = top) for area of x - uint8_t y_shift = 0; - - st75256.send_ctrl(0x30); // EXT1=0, EXT0=0 - st75256.set_column_address(area->x1, area->x2); - st75256.set_page_address(area->y1 / 8, (area->y2 - 7) / 8); // ATTENTION: Will only work with a correct rounder_cb() - st75256.send_ctrl(0b01011100); // [10] Write Data - - for (size_t y = area->y1; y <= area->y2; y++) - { - for (size_t x = 0; x < cols; x++) - { - t_color_p->full ? page_pixel_buffer[x] &= ~(1 << y_shift) : page_pixel_buffer[x] |= (1 << y_shift); - t_color_p++; - } - if (y_shift < 7) - { - y_shift++; - continue; - } - st75256.send_data(page_pixel_buffer, cols); - y_shift = 0; - } - lv_disp_flush_ready(disp_drv); - } - - void DisplayRMEC3V11::set_undocked() - { - v_led_power->set(LED_off); - v_led_charge->set(LED_off); - bar_bat->set_range(BATT_ABS_MIN, BATT_ABS_MAX); - bar_bat->bar_label = FA_SYMBOL_BATTERY " %d V"; - last_docked_state_ = false; - } - - void DisplayRMEC3V11::mainScreen() - { - lv_obj_clean(lv_scr_act()); - - // On the left side of the status bar we do have functional status symbols like heartbeat and ROS - v_led_ros = new lvgl::WidgetLedSymbol(FA_SYMBOL_ROS, LV_ALIGN_TOP_LEFT, 0, -1); // Leftmost - - // In the middle, we do have emergencies - v_led_emergency = new lvgl::WidgetLedSymbol(FA_SYMBOL_EMERGENCY, LV_ALIGN_TOP_MID, 0, -1); // Centered - v_led_emergency_wheel = new lvgl::WidgetLedSymbol(FA_SYMBOL_EMERGENCY_WHEEL, LV_ALIGN_TOP_MID, -14 - TOP_STATUS_BAR_GAP_PX - 2, -1); // Left of centered - // TODO: if next level LL proto - // v_led_heartbeat = new WidgetLedSymbol(FA_SYMBOL_HEARTBEAT, LV_ALIGN_TOP_MID, -(2 * 14) - (2 * TOP_STATUS_BAR_GAP_PX) - 2, -1); // 2nd left of centered - v_led_emergency_stop = new lvgl::WidgetLedSymbol(FA_SYMBOL_EMERGENCY_STOP, LV_ALIGN_TOP_MID, 14 + TOP_STATUS_BAR_GAP_PX, -1); // Right of centered - - // On the right side, mowing status like, charging, docking, ... - v_led_power = new lvgl::WidgetLedSymbol(FA_SYMBOL_PLUG, LV_ALIGN_OUT_TOP_RIGHT, (ST75256_DISPLAY_WIDTH - (1 * 14)), -1); // Rightmost - v_led_charge = new lvgl::WidgetLedSymbol(FA_SYMBOL_CHARGE, LV_ALIGN_OUT_TOP_RIGHT, (ST75256_DISPLAY_WIDTH - (2 * 14) - TOP_STATUS_BAR_GAP_PX), -1); - v_led_gps = new lvgl::WidgetLedSymbol(FA_SYMBOL_GPS1, LV_ALIGN_OUT_TOP_RIGHT, (ST75256_DISPLAY_WIDTH - (3 * 14) - (2 * TOP_STATUS_BAR_GAP_PX)), -1); - v_led_bat = new lvgl::WidgetLedSymbol(FA_SYMBOL_BATTERY, LV_ALIGN_OUT_TOP_RIGHT, (ST75256_DISPLAY_WIDTH - (4 * 14) - (3 * TOP_STATUS_BAR_GAP_PX)), -1); - - // GPS & Battery bars - bar_gps = new lvgl::WidgetBar(FA_SYMBOL_GPS2 " %d %%", LV_ALIGN_TOP_LEFT, 0, 19, (ST75256_DISPLAY_WIDTH / 2) - 1, 21); - bar_bat = new lvgl::WidgetBar(FA_SYMBOL_BATTERY " %d %%", LV_ALIGN_TOP_RIGHT, 0, 19, (ST75256_DISPLAY_WIDTH / 2) - 1, 21); - - // Mower status text (ticker) - text_ticker_status = new lvgl::WidgetTextTicker(LV_ALIGN_TOP_MID, 0, 42, ST75256_DISPLAY_WIDTH, 40); - - // Set defined state - set_undocked(); - bar_bat->set_value(BATT_ABS_MIN); - - main_screen_active = true; - } - - void DisplayRMEC3V11::anim_x_cb(void *var, int32_t v) - { - lv_obj_set_x((lv_obj_t *)var, v); - } - - void DisplayRMEC3V11::openmower_anim_delay() - { - delay(1000); - mainScreen(); - } - - // Probably static void - void DisplayRMEC3V11::openmower_anim() - { - const uint8_t wm_start_offset = 20; - main_screen_active = false; - - lv_obj_clean(lv_scr_act()); - - // Mower Logo - img_logo - lv_obj_t *img_logo = lv_img_create(lv_scr_act()); - lv_img_set_src(img_logo, &OM_Logo_120x54x1); - lv_obj_align(img_logo, LV_ALIGN_RIGHT_MID, 0, 0); - - // OpenMower Wordmark - img_wordmark - lv_obj_t *img_wordmark = lv_img_create(lv_scr_act()); - lv_img_set_src(img_wordmark, &OM_Wordmark_240x35x1); - lv_obj_align(img_wordmark, LV_ALIGN_RIGHT_MID, OM_Wordmark_240x35x1.header.w + wm_start_offset, 0); - - // Anim of logo - lv_anim_t al; - lv_anim_init(&al); - lv_anim_set_var(&al, img_logo); - lv_anim_set_values(&al, 0, -ST75256_DISPLAY_WIDTH); - lv_anim_set_time(&al, 1800); - lv_anim_set_delay(&al, 1200); - lv_anim_set_exec_cb(&al, (lv_anim_exec_xcb_t)anim_x_cb); - lv_anim_set_path_cb(&al, lv_anim_path_ease_in); - // lv_anim_set_repeat_count(&al, LV_ANIM_REPEAT_INFINITE); - lv_anim_start(&al); - - // Anim of Wordmark - lv_anim_t aw; - lv_anim_init(&aw); - lv_anim_set_var(&aw, img_wordmark); - lv_anim_set_values(&aw, OM_Wordmark_240x35x1.header.w + wm_start_offset, -((ST75256_DISPLAY_WIDTH - OM_Wordmark_240x35x1.header.w) / 2)); - lv_anim_set_time(&aw, 1800); - lv_anim_set_delay(&aw, 1900); - lv_anim_set_exec_cb(&aw, (lv_anim_exec_xcb_t)anim_x_cb); - lv_anim_set_path_cb(&aw, lv_anim_path_ease_in_out); - lv_anim_set_deleted_cb(&aw, (lv_anim_deleted_cb_t)openmower_anim_delay); // Set a callback to indicate when the animation is deleted (idle) - // lv_anim_set_repeat_count(&aw, LV_ANIM_REPEAT_INFINITE); - lv_anim_start(&aw); - } - - void DisplayRMEC3V11::loop_low_prio() - { - Display::loop_low_prio(); - - // LEDs & Buttons to main status screen conversion - if (!main_screen_active) - return; // Still in OM anim - - char status_ticker[STATUS_TICKER_LENGTH] = ""; - - // GPS - if (subscription::recv_hl_state.gps_quality < 25) - v_led_gps->set(LED_on); - else if (subscription::recv_hl_state.gps_quality < 50) - v_led_gps->set(LED_blink_fast); - else if (subscription::recv_hl_state.gps_quality < 75) - v_led_gps->set(LED_blink_slow); - else - v_led_gps->set(LED_off); - bar_gps->set_value(subscription::recv_hl_state.gps_quality); - - // V-Battery vLED - if (subscription::recv_ll_status.v_battery >= (BATT_EMPTY + 2.0f)) - v_led_bat->set(LED_off); - else - v_led_bat->set(LED_on); - - // Docked (Plug) & Charging (charge-station) - if (subscription::recv_ll_status.v_charge > 20.0f) // Docked - { - if (!last_docked_state_) - { - v_led_power->set(LED_on); - bar_bat->set_range(100, 1100); - bar_bat->bar_label = FA_SYMBOL_CHARGE " %d mA"; - set_backlight(); - last_docked_state_ = true; - } - bar_bat->set_value(subscription::recv_ll_status.charging_current * 1000); - - if (subscription::recv_ll_status.charging_current < 0.15f) - v_led_charge->set(LED_off); - else if (subscription::recv_ll_status.charging_current >= 0.15f && subscription::recv_ll_status.charging_current <= 0.8f) - v_led_charge->set(LED_blink_slow); - else if (subscription::recv_ll_status.charging_current > 0.8f) - v_led_charge->set(LED_blink_fast); - } - else // Undocked - { - if (last_docked_state_) - { - set_undocked(); - } - bar_bat->set_value(subscription::recv_ll_status.v_battery); - } - - // HL Mode & SubMode - switch (subscription::recv_hl_state.current_mode & 0b111111) - { - case HighLevelMode::MODE_IDLE: - v_led_ros->set(LED_on); - strncpy(status_ticker, "Idle", STATUS_TICKER_LENGTH); - break; - case HighLevelMode::MODE_AUTONOMOUS: - v_led_ros->set(LED_blink_slow); - if ((subscription::recv_hl_state.current_mode >> 6) & 0b01) - strncpy(status_ticker, "Docking", STATUS_TICKER_LENGTH); - else if ((subscription::recv_hl_state.current_mode >> 6) & 0b10) - strncpy(status_ticker, "Undocking", STATUS_TICKER_LENGTH); - else - strncpy(status_ticker, "Mowing", STATUS_TICKER_LENGTH); - break; - case HighLevelMode::MODE_RECORDING: - v_led_ros->set(LED_blink_fast); - if ((subscription::recv_hl_state.current_mode >> 6) & 0b01) - strncpy(status_ticker, "Record area outline", STATUS_TICKER_LENGTH); - else if ((subscription::recv_hl_state.current_mode >> 6) & 0b10) - strncpy(status_ticker, "Record obstacle", STATUS_TICKER_LENGTH); - break; - default: // We currently don't have a real "ROS Running" identifier. Let's use the current mode. - v_led_ros->set(LED_off); - strncpy(status_ticker, "Waiting for ROS...", STATUS_TICKER_LENGTH); - break; - } - - // ----- Most important text-states, last! ----- - - // Emergencies - static bool last_stop_button = false; - if (subscription::recv_ll_status.emergency_bitmask & LL_EMERGENCY_BITS_STOP) // Stop switch - { - v_led_emergency_stop->set(LED_blink_fast); - strncpy(status_ticker, EMERGENCY_CLEAR_TEXT, STATUS_TICKER_LENGTH); - - if (!last_stop_button) // Backlight on cover- open - set_backlight(); - last_stop_button = true; - } - else - { - v_led_emergency_stop->set(LED_off); - last_stop_button = false; - } - - if (subscription::recv_ll_status.emergency_bitmask & LL_EMERGENCY_BITS_LIFT) // Lifted or tilted - { - v_led_emergency_wheel->set(LED_blink_fast); - strncpy(status_ticker, EMERGENCY_CLEAR_TEXT, STATUS_TICKER_LENGTH); - } - else - v_led_emergency_wheel->set(LED_off); - - if (subscription::recv_ll_status.emergency_bitmask & LL_EMERGENCY_BIT_LATCH) // Emergency latch (no LL heartbeat or emergency by ROS) - { - v_led_emergency->set(LED_blink_slow); - strncpy(status_ticker, EMERGENCY_CLEAR_TEXT, STATUS_TICKER_LENGTH); - } - else - v_led_emergency->set(LED_off); - - // ----- Announcement ----- - switch (auto ann = get_anncmnt()) - { - case AnncmntType::close_hatch: - sprintf(status_ticker, "Close hatch in %i sec.", ((anncmnt.timeout - millis()) / 1000) + 1); - break; - case AnncmntType::version: - sprintf(status_ticker, "Version %i", FIRMWARE_VERSION); - break; - default: - break; - } - - text_ticker_status->set_text(status_ticker); - } - } // namespace display -} // namespace yardforce - -yardforce::display::DisplayRMEC3V11 display(yardforce::display::Display::Config{.backlight_led_num = LED_NUM_BACKLIGHT}); diff --git a/Firmware/CoverUI/YardForce/include/model/Display_RM-EC3-V11.hpp b/Firmware/CoverUI/YardForce/include/model/Display_RM-EC3-V11.hpp deleted file mode 100644 index 86d0903..0000000 --- a/Firmware/CoverUI/YardForce/include/model/Display_RM-EC3-V11.hpp +++ /dev/null @@ -1,70 +0,0 @@ -/** - * @file Display_RM-EC3-V11.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce CoverUI JLX25664 display driver for NX100i OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-27 - * - * @copyright Copyright (c) 2023 - */ -#ifndef YARDFORCE_DISPLAY_RMEC3V11_HPP -#define YARDFORCE_DISPLAY_RMEC3V11_HPP - -#define ST75256_DISPLAY_WIDTH 256 -#define ST75256_DISPLAY_HEIGHT 64 - -// JLX25664G Tscyc min = 80ns = 12.5MHz -// ST32F401 = 84MHz / 8 = 10.5MHz -#define ST75256_SPI_BAUDRATEPRESCALER SPI_BAUDRATEPRESCALER_8 - -#define LVGL_BUFFER_MULTIPLIER 10 -#define LVGL_TIMER_HANDLER_PERIOD_MS 10 // 10ms lv_timer_handler() soft period - -#define TOP_STATUS_BAR_GAP_PX 5 // Amount of (gap) pixels between top status-bar icons/symbols -#define EMERGENCY_CLEAR_TEXT "Emergency! Press [OK], close hatch and stay back, to clear emergency state." - -#include "../Display.hpp" -#include "../ST75256.hpp" -#include -#include "../LEDcontrol.hpp" -#include "../WidgetLedSymbol.hpp" -#include "../WidgetBar.hpp" -#include "../WidgetTextTicker.hpp" -#include "../subscription.h" - -#define BACKLIGHT_TIMEOUT_MS 120000 // 2 minutes -#define STATUS_TICKER_LENGTH 100 // TODO - -namespace yardforce -{ - namespace display - { - class DisplayRMEC3V11 : public Display - { - public: - DisplayRMEC3V11(Config t_config) : Display(t_config){}; - - bool init() override; // Init GPIOs, comms, as well as LVGL & display - - void loop_low_prio() override; // Low priority loop for display changes. Also does lv_timer_handler() and subscription - - void openmower_anim(); - static void openmower_anim_delay(); - static void mainScreen(); - - protected: - lv_disp_drv_t lv_disp_drv; // LVGL driver - - static void rounder_cb(lv_disp_drv_t *disp_drv, lv_area_t *area); - static void flush_cb(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *t_color_p); - - static void anim_x_cb(void *var, int32_t v); - - static void set_undocked(); - }; - } // namespace display -} // namespace yardforce - -extern yardforce::display::DisplayRMEC3V11 display; - -#endif // YARDFORCE_DISPLAY_RMEC3V11_HPP \ No newline at end of file diff --git a/Firmware/CoverUI/YardForce/include/model/Display_SAxPRO.cpp b/Firmware/CoverUI/YardForce/include/model/Display_SAxPRO.cpp deleted file mode 100644 index f1b3f4a..0000000 --- a/Firmware/CoverUI/YardForce/include/model/Display_SAxPRO.cpp +++ /dev/null @@ -1,347 +0,0 @@ -/** - * @file Display_SAxPRO.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce CoverUI WYM240128K1 display driver class for SAxPRO OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.3 - * @date 2023-11-29 - * - * @copyright Copyright (c) 2023 - */ -#include "Display_SAxPRO.hpp" -#include -#include "../subscription.h" -#include "../main.h" - -// C images -LV_IMG_DECLARE(OM_Logo_120x54x1); -LV_IMG_DECLARE(OM_Wordmark_240x35x1); - -namespace yardforce -{ - namespace display - { - static controller::UC1698 uc1698; // Display controller - - // LVGL buffers - static lv_disp_draw_buf_t lv_disp_buf; - static lv_color_t lv_buf_1[UC1698_DISPLAY_WIDTH * LVGL_BUFFER_MULTIPLIER]; - static lv_color_t lv_buf_2[UC1698_DISPLAY_WIDTH * LVGL_BUFFER_MULTIPLIER]; - - // Status Screen Widgets - lvgl::WidgetLedSymbol *v_led_heartbeat, *v_led_ros, - *v_led_emergency_wheel, *v_led_emergency, *v_led_emergency_stop, - *v_led_bat, *v_led_gps, *v_led_charge, *v_led_power; - lvgl::WidgetBar *bar_gps, *bar_bat; - lvgl::WidgetTextTicker *text_ticker_status; - - bool main_screen_active = false; // Initialized and active - bool last_docked_state_; // true = docked, false = undocked - - /** - * @brief Rounder callback will round the display area to a multiple of 3, on x axis (RGB control lines of a pixel are connected to 3 monochrome pixels) - * - * @param disp_drv - * @param area - */ - void DisplaySAXPRO::rounder_cb(lv_disp_drv_t *disp_drv, lv_area_t *area) - { - area->x1 = area->x1 - (area->x1 % 3); // Round down to neares multiple of 3 - area->x2 = (area->x2 + 3) - (area->x2 % 3) - 1; // Round up to nearest multiple of 3, minus -1 - } - - /** - * @brief Flush display buffer to display controller. - * Done via uc1698::drawPixelTriplet() method, which doesn't look as efficient like direct data write, - * but save the call to a further pixel-color-callback, as well as another buffer, which sounds more expensive. - * - * @param disp_drv - * @param area - * @param t_color_p - */ - void DisplaySAXPRO::flush_cb(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *t_color_p) - { -#ifdef BENCHMARK - cycle_cnt_flush_cb_.start(); -#endif - size_t cols16b = ((area->x2 - area->x1) + 1) / 3; // Num of 16 bit columns for this flush area - size_t cols8b = cols16b * 2; - uint8_t row_buffer[cols8b]; // Buffer for one row 2*8-bit (every 16 bit col holds 3 pixel) - - uc1698.setWindowProgramArea(area->x1, area->x2, area->y1, area->y2); - - for (size_t y = area->y1; y <= area->y2; y++) - { - for (size_t x = 0; x < cols8b; x += 2) // ATTENTION: Will only work with a correct rounder_cb()! - { - // Color is inverted (0 = black but pixel off / >0 = white but pixel on) but UC1698 "[16] Set Inverse Display" is set - row_buffer[x] = (0b11111000 * t_color_p->full | (0b00000111 * (t_color_p + 1)->full)); - row_buffer[x + 1] = (0b11100000 * (t_color_p + 1)->full) | (0b00011111 * (t_color_p + 2)->full); - t_color_p += 3; - } - uc1698.writeData(row_buffer, cols8b); - } - lv_disp_flush_ready(disp_drv); -#ifdef BENCHMARK - cycle_cnt_flush_cb_.stop(); -#endif - } - - void DisplaySAXPRO::set_undocked() - { - v_led_power->set(LED_off); - v_led_charge->set(LED_off); - bar_bat->set_range(BATT_ABS_MIN, BATT_ABS_MAX); - bar_bat->bar_label = FA_SYMBOL_BATTERY " %d V"; - last_docked_state_ = false; - } - - void DisplaySAXPRO::mainScreen() - { -#ifdef BENCHMARK - volatile auto perf_test = cycle_cnt_flush_cb_; -#endif - // On the left side of the status bar we do have functional status symbols like heartbeat and ROS - v_led_ros = new lvgl::WidgetLedSymbol(FA_SYMBOL_ROS, LV_ALIGN_TOP_LEFT, 0, 0); // Leftmost - - // In the middle, we do have emergencies - v_led_emergency = new lvgl::WidgetLedSymbol(FA_SYMBOL_EMERGENCY, LV_ALIGN_TOP_MID, 0, 0); // Centered - v_led_emergency_wheel = new lvgl::WidgetLedSymbol(FA_SYMBOL_EMERGENCY_WHEEL, LV_ALIGN_TOP_MID, -14 - TOP_STATUS_BAR_GAP_PX - 2, 0); // Left of centered - // TODO: if next level LL proto - // v_led_heartbeat = new WidgetLedSymbol(FA_SYMBOL_HEARTBEAT, LV_ALIGN_TOP_MID, -(2 * 14) - (2 * TOP_STATUS_BAR_GAP_PX) - 2, 0); // 2nd left of centered - v_led_emergency_stop = new lvgl::WidgetLedSymbol(FA_SYMBOL_EMERGENCY_STOP, LV_ALIGN_TOP_MID, 14 + TOP_STATUS_BAR_GAP_PX, 0); // Right of centered - - // On the right side, mowing status like, charging, docking, ... - v_led_power = new lvgl::WidgetLedSymbol(FA_SYMBOL_PLUG, LV_ALIGN_OUT_TOP_RIGHT, (240 - (1 * 14)), 0); // Rightmost - v_led_charge = new lvgl::WidgetLedSymbol(FA_SYMBOL_CHARGE, LV_ALIGN_OUT_TOP_RIGHT, (240 - (2 * 14) - TOP_STATUS_BAR_GAP_PX), 0); - v_led_gps = new lvgl::WidgetLedSymbol(FA_SYMBOL_GPS1, LV_ALIGN_OUT_TOP_RIGHT, (240 - (3 * 14) - (2 * TOP_STATUS_BAR_GAP_PX)), 0); - v_led_bat = new lvgl::WidgetLedSymbol(FA_SYMBOL_BATTERY, LV_ALIGN_OUT_TOP_RIGHT, (240 - (4 * 14) - (3 * TOP_STATUS_BAR_GAP_PX)), 0); - - // GPS & Battery bars - bar_gps = new lvgl::WidgetBar(FA_SYMBOL_GPS2 " %d %%", LV_ALIGN_TOP_MID, 0, 30, UC1698_DISPLAY_WIDTH, 21); - bar_bat = new lvgl::WidgetBar(FA_SYMBOL_BATTERY " %d %%", LV_ALIGN_TOP_MID, 0, 60, UC1698_DISPLAY_WIDTH, 21); - - // Mower status text (ticker) - text_ticker_status = new lvgl::WidgetTextTicker(LV_ALIGN_TOP_MID, 0, 95, UC1698_DISPLAY_WIDTH); - - // Set defined state - set_undocked(); - bar_bat->set_value(BATT_ABS_MIN); - - main_screen_active = true; - } - - void DisplaySAXPRO::anim_x_cb(void *var, int32_t v) - { - lv_obj_set_x((lv_obj_t *)var, v); - } - - void DisplaySAXPRO::openmower_anim() - { - main_screen_active = false; - - // Mower Logo - img_logo - lv_obj_t *img_logo = lv_img_create(lv_scr_act()); - lv_img_set_src(img_logo, &OM_Logo_120x54x1); - lv_obj_align(img_logo, LV_ALIGN_CENTER, 0, -25); - - // OpenMower Wordmark - img_wordmark - lv_obj_t *img_wordmark = lv_img_create(lv_scr_act()); - lv_img_set_src(img_wordmark, &OM_Wordmark_240x35x1); - lv_obj_align(img_wordmark, LV_ALIGN_CENTER, 0, 25); - - // Anim of logo - lv_anim_t al; - lv_anim_init(&al); - lv_anim_set_var(&al, img_logo); - lv_anim_set_values(&al, 0, -((UC1698_DISPLAY_WIDTH / 2) + (OM_Logo_120x54x1.header.w / 2))); - lv_anim_set_time(&al, 1500); - lv_anim_set_delay(&al, 1000); - lv_anim_set_exec_cb(&al, (lv_anim_exec_xcb_t)anim_x_cb); - lv_anim_set_path_cb(&al, lv_anim_path_ease_in); - lv_anim_start(&al); - - // Anim of Wordmark - lv_anim_t aw; - lv_anim_init(&aw); - lv_anim_set_var(&aw, img_wordmark); - lv_anim_set_values(&aw, 0, (UC1698_DISPLAY_WIDTH / 2) + (OM_Wordmark_240x35x1.header.w / 2) + 20); - lv_anim_set_time(&aw, 1400); - lv_anim_set_delay(&aw, 1500); - lv_anim_set_exec_cb(&aw, (lv_anim_exec_xcb_t)anim_x_cb); - lv_anim_set_path_cb(&aw, lv_anim_path_ease_in); - lv_anim_set_deleted_cb(&aw, (lv_anim_ready_cb_t)mainScreen); // Set a callback to indicate when the animation is deleted (idle) - lv_anim_start(&aw); - } - - bool DisplaySAXPRO::init() - { - // Init UC1698 display controller - if (!uc1698.init()) - { - return false; - } - - // Init LVGL - lv_init(); - lv_disp_drv_init(&lv_disp_drv); // Basic LVGL display driver initialization - lv_disp_drv.draw_buf = &lv_disp_buf; // Set an initialized buffer - lv_disp_drv.rounder_cb = rounder_cb; // Round x coordinated so that it fit for our 3 RGB pixel/per dot display - lv_disp_drv.flush_cb = flush_cb; // Set a flush callback to draw to the display - lv_disp_drv.hor_res = UC1698_DISPLAY_WIDTH; // Set the horizontal resolution in pixels - lv_disp_drv.ver_res = UC1698_DISPLAY_HEIGHT; // Set the vertical resolution in pixels - lv_disp_draw_buf_init(&lv_disp_buf, lv_buf_1, lv_buf_2, UC1698_DISPLAY_WIDTH * LVGL_BUFFER_MULTIPLIER); // Initialize `disp_buf` with the buffer(s) - lv_disp_t *disp; - disp = lv_disp_drv_register(&lv_disp_drv); // Register the driver and save the created display objects - lv_obj_set_style_bg_color(lv_scr_act(), lv_color_white(), LV_PART_MAIN); // No background color - - openmower_anim(); - // mainScreen(); - - return true; - } - - /** - * @brief Regular loop() function, which get called by a low priority hardware timer (approx. 10ms). - * Handles i.e. LVGL timers or LED-2-Display logic. - * Has to be a lower priority routine than tick_inc(), otherwise all LVGL timers (or LEDcontrol-Animations) do not work - */ - void DisplaySAXPRO::loop_low_prio() - { - Display::loop_low_prio(); - - // LEDs & Buttons to main status screen conversion - if (!main_screen_active) - return; // Still in OM anim - - char status_ticker[STATUS_TICKER_LENGTH] = ""; - - // GPS - if (subscription::recv_hl_state.gps_quality < 25) - v_led_gps->set(LED_on); - else if (subscription::recv_hl_state.gps_quality < 50) - v_led_gps->set(LED_blink_fast); - else if (subscription::recv_hl_state.gps_quality < 75) - v_led_gps->set(LED_blink_slow); - else - v_led_gps->set(LED_off); - bar_gps->set_value(subscription::recv_hl_state.gps_quality); - - // V-Battery vLED - if (subscription::recv_ll_status.v_battery >= (BATT_EMPTY + 2.0f)) - v_led_bat->set(LED_off); - else - v_led_bat->set(LED_on); - - // Docked (Plug) & Charging (charge-station) - if (subscription::recv_ll_status.v_charge > 20.0f) // Docked - { - if (!last_docked_state_) - { - v_led_power->set(LED_on); - bar_bat->set_range(100, 1100); - bar_bat->bar_label = FA_SYMBOL_CHARGE " %d mA"; - set_backlight(); - last_docked_state_ = true; - } - bar_bat->set_value(subscription::recv_ll_status.charging_current * 1000); - - if (subscription::recv_ll_status.charging_current < 0.15f) - v_led_charge->set(LED_off); - else if (subscription::recv_ll_status.charging_current >= 0.15f && subscription::recv_ll_status.charging_current <= 0.8f) - v_led_charge->set(LED_blink_slow); - else if (subscription::recv_ll_status.charging_current > 0.8f) - v_led_charge->set(LED_blink_fast); - } - else // Undocked - { - if (last_docked_state_) - { - set_undocked(); - } - bar_bat->set_value(subscription::recv_ll_status.v_battery); - } - - // HL Mode & SubMode - switch (subscription::recv_hl_state.current_mode & 0b111111) - { - case HighLevelMode::MODE_IDLE: - v_led_ros->set(LED_on); - strncpy(status_ticker, "Idle", STATUS_TICKER_LENGTH); - break; - case HighLevelMode::MODE_AUTONOMOUS: - v_led_ros->set(LED_blink_slow); - if ((subscription::recv_hl_state.current_mode >> 6) & 0b01) - strncpy(status_ticker, "Docking", STATUS_TICKER_LENGTH); - else if ((subscription::recv_hl_state.current_mode >> 6) & 0b10) - strncpy(status_ticker, "Undocking", STATUS_TICKER_LENGTH); - else - strncpy(status_ticker, "Mowing", STATUS_TICKER_LENGTH); - break; - case HighLevelMode::MODE_RECORDING: - v_led_ros->set(LED_blink_fast); - if ((subscription::recv_hl_state.current_mode >> 6) & 0b01) - strncpy(status_ticker, "Record area outline", STATUS_TICKER_LENGTH); - else if ((subscription::recv_hl_state.current_mode >> 6) & 0b10) - strncpy(status_ticker, "Record obstacle", STATUS_TICKER_LENGTH); - break; - default: // We currently don't have a real "ROS Running" identifier. Let's use the current mode. - v_led_ros->set(LED_off); - strncpy(status_ticker, "Waiting for ROS...", STATUS_TICKER_LENGTH); - break; - } - - // ----- Most important text-states, last! ----- - - // Emergencies - static bool last_stop_button = false; - if (subscription::recv_ll_status.emergency_bitmask & LL_EMERGENCY_BITS_STOP) // Stop switch - { - v_led_emergency_stop->set(LED_blink_fast); - strncpy(status_ticker, EMERGENCY_CLEAR_TEXT, STATUS_TICKER_LENGTH); - - if (!last_stop_button) // Backlight on cover- open - set_backlight(); - last_stop_button = true; - } - else - { - v_led_emergency_stop->set(LED_off); - last_stop_button = false; - } - - if (subscription::recv_ll_status.emergency_bitmask & LL_EMERGENCY_BITS_LIFT) // Lifted or tilted - { - v_led_emergency_wheel->set(LED_blink_fast); - strncpy(status_ticker, EMERGENCY_CLEAR_TEXT, STATUS_TICKER_LENGTH); - } - else - v_led_emergency_wheel->set(LED_off); - - if (subscription::recv_ll_status.emergency_bitmask & LL_EMERGENCY_BIT_LATCH) // Emergency latch (no LL heartbeat or emergency by ROS) - { - v_led_emergency->set(LED_blink_slow); - strncpy(status_ticker, EMERGENCY_CLEAR_TEXT, STATUS_TICKER_LENGTH); - } - else - v_led_emergency->set(LED_off); - - // ----- Announcement ----- - switch (auto ann = get_anncmnt()) - { - case AnncmntType::close_hatch: - sprintf(status_ticker, "Close hatch in %i sec.", ((anncmnt.timeout - millis()) / 1000) + 1); - break; - case AnncmntType::version: - sprintf(status_ticker, "Version %i", FIRMWARE_VERSION); - break; - default: - break; - } - - text_ticker_status->set_text(status_ticker); - } - - } // namespace display -} // namespace yardforce - -yardforce::display::DisplaySAXPRO display(yardforce::display::Display::Config{.backlight_led_num = LED_NUM_BACKLIGHT}); diff --git a/Firmware/CoverUI/YardForce/include/model/Display_SAxPRO.hpp b/Firmware/CoverUI/YardForce/include/model/Display_SAxPRO.hpp deleted file mode 100644 index 5f61ede..0000000 --- a/Firmware/CoverUI/YardForce/include/model/Display_SAxPRO.hpp +++ /dev/null @@ -1,77 +0,0 @@ -/** - * @file Display_SAxPRO.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce CoverUI WYM240128K1 display driver for SAxPRO OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.3 - * @date 2023-11-29 - * - * @copyright Copyright (c) 2023 - */ -#ifndef YARDFORCE_DISPLAY_SAXPRO_HPP -#define YARDFORCE_DISPLAY_SAXPRO_HPP - -#define UC1698_DISPLAY_WIDTH 240 -#define UC1698_DISPLAY_HEIGHT 128 - -#define LVGL_BUFFER_MULTIPLIER 10 -#define LVGL_TIMER_HANDLER_PERIOD_MS 10 // 10ms lv_timer_handler() soft period - -#define TOP_STATUS_BAR_GAP_PX 5 // Amount of (gap) pixels between top status-bar icons/symbols -#define EMERGENCY_CLEAR_TEXT "Emergency! Press [Enter], close hatch and stay back, to clear emergency state." - -#include "../Display.hpp" -#include "../UC1698.hpp" -#include -#include "../LEDcontrol.hpp" -#include "../WidgetLedSymbol.hpp" -#include "../WidgetBar.hpp" -#include "../WidgetTextTicker.hpp" -#include "../subscription.h" - -#define BACKLIGHT_TIMEOUT_MS 120000 // 2 minutes -#define STATUS_TICKER_LENGTH 100 - -// Enable for benchmarking specific code -// #define BENCHMARK - -#ifdef BENCHMARK -#include "include/CortexMCycleCounter.hpp" -#endif - -namespace yardforce -{ - namespace display - { - class DisplaySAXPRO : public Display - { - public: - DisplaySAXPRO(Config t_config) : Display(t_config){}; - - bool init() override; // Init GPIOs, comms, as well as LVGL & display - - void loop_low_prio() override; // Low priority loop for display changes. Also does lv_timer_handler() and subscription - - void openmower_anim(); - static void mainScreen(); - - protected: - lv_disp_drv_t lv_disp_drv; // LVGL driver - - static void rounder_cb(lv_disp_drv_t *disp_drv, lv_area_t *area); - static void flush_cb(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *t_color_p); - - static void anim_x_cb(void *var, int32_t v); - - static void set_undocked(); - }; - -#ifdef BENCHMARK - static CortexMCycleCounter cycle_cnt_flush_cb_; -#endif - - } // namespace display -} // namespace yardforce - -extern yardforce::display::DisplaySAXPRO display; - -#endif // YARDFORCE_DISPLAY_SAXPRO_HPP \ No newline at end of file diff --git a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_C500.cpp b/Firmware/CoverUI/YardForce/include/model/LEDcontrol_C500.cpp deleted file mode 100644 index 52828d0..0000000 --- a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_C500.cpp +++ /dev/null @@ -1,121 +0,0 @@ -/** - * @file LEDcontrol_C500.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce Classic 500 LED driver class for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.2 - * @date 2023-11-06 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "LEDcontrol_C500.hpp" - -const uint32_t kPinByLedNum[] = { - // Order derived from LowLevel "enum LED_id" - // C500 - // Use LED num Original Alternative - LED_PIN_CHARGE, // 0 - LED_PIN_BAT, // 1 - LED_PIN_WIRE, // 2 - LED_PIN_LIFTED, // 3 - LED_PIN_SUN, // 4 SUN(6) - LED_PIN_SAT, // 5 SAT(5) - LED_PIN_FRI, // 6 FRI(4) - LED_PIN_THU, // 7 THU(3) - LED_PIN_WED, // 8 WED(2) - LED_PIN_TUE, // 9 TUE(1) - LED_PIN_MON, // 10 MON(0) - LED_PIN_LOCK, // 11 - LED_PIN_S2, // 12 digit 5 - LED_PIN_S1, // 13 digit 4 - LED_PIN_8HR, // 14 8HR digit 3 - LED_PIN_6HR, // 15 6HR digit 2 - LED_PIN_4HR, // 16 4HR digit 1 - LED_PIN_2HR, // 17 2HR digit 0 - LED_PIN_REAR // 18 -}; - -// Numeric (base10) representation of LEDs. -// I.e. Digit 0 = 4H(0), ... Then S2(5) + S1(4) = 9. -// -// |------- Bit 6 = MON(0) -// ||------ Bit 5 = TUE(1) -// |||----- Bit 4 = WED(2) -// ||||---- Bit 3 = THU(3) -// |||||--- Bit 2 = FRI(4) -// ||||||-- Bit 1 = SAT(5) -// |||||||- Bit 0 = SUN(6) -const uint8_t kBase10Leds[] = { - 0b1000000, // = 0 - 0b0100000, - 0b0010000, - 0b0001000, - 0b0000100, - 0b0000010, - 0b0000001, - 0b0100001, - 0b0010001, - 0b0001001}; // = 9 - - /** - * @brief Animate sequence handler. Has to be started by sequence_start() - */ - void LEDcontrolC500::sequence_animate_handler() - { - unsigned int step = seq_get_next_step_(LED_ANIMATE_DELAY); // Animation sequence runs in 15ms steps - - if (step == 0) // Next sequence step not reached now - return; - else if (step >= 1 && step <= kNumLeds) // LED on - { - set(kNumLeds - step, LED_state::LED_on, false); - return; - } - else if (step >= (kNumLeds + 1) && step <= (2 * kNumLeds)) // LED off - { - set((2 * kNumLeds) - step, LED_state::LED_off, false); - return; - } - else - { - seq_start_tick_ = 0; // Sequence end - set(led_states_bin_); // Restore states - return; - } - } - - /** - * @brief A quick boot/power-on animation, also used as jammed button indicator - * - * @return unsigned int ms how long it will take to play - */ - unsigned int LEDcontrolC500::boot_animation() // A short boot animation which return the amount of ms it will take - { - sequence_start(&LEDcontrol::sequence_animate_handler); - return ((kNumLeds + 1) * LED_ANIMATE_DELAY); - } - - /** - * @brief Set base10 related LEDs for the given (numeric) character - * - * @param digit numeric character - */ - void LEDcontrolC500::set_base10_leds(char digit) - { - for (uint8_t bit = 0; bit <= 6; bit++) // We've 6 LEDs for base10 number representation - { - bool on = (kBase10Leds[digit - '0'] >> bit) & 0b1; - unsigned int led = bit + 12; - set(bit + 4, on ? LED_state::LED_on : LED_state::LED_off, false); - } - } - - void LEDcontrolC500::force_off_num_seq_leds(bool force) - { - force_off(LED_NUM_LIFTED, force); // Num change signalling LED - for (unsigned int i = 4; i <= 10; i++) // Base10 related LEDs - force_off(i, force); - } - -LEDcontrolC500 leds(kPinByLedNum, sizeof(kPinByLedNum) / sizeof(uint32_t), &LEDcontrol::set_base10_leds); // Main LED controller object diff --git a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_C500.hpp b/Firmware/CoverUI/YardForce/include/model/LEDcontrol_C500.hpp deleted file mode 100644 index d7c25a4..0000000 --- a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_C500.hpp +++ /dev/null @@ -1,62 +0,0 @@ -/** - * @file LEDcontrol_C500.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce Classic 500 LED driver header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.2 - * @date 2023-11-06 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_LEDCONTROL_C500_HPP -#define YARDFORCE_LEDCONTROL_C500_HPP - -#include -#include "../LEDcontrol.hpp" - -// 1st row: 2,4,6,8HR -#define LED_PIN_2HR PA4 -#define LED_PIN_4HR PA5 -#define LED_PIN_6HR PA6 -#define LED_PIN_8HR PA7 - -// 2nd row: S1, S2, LOCK -#define LED_PIN_S1 PA0 -#define LED_PIN_S2 PA1 -#define LED_PIN_LOCK PC4 - -// 3rd row: Mon-Sun -#define LED_PIN_MON PA15 -#define LED_PIN_TUE PC10 -#define LED_PIN_WED PC11 -#define LED_PIN_THU PC12 -#define LED_PIN_FRI PD2 -#define LED_PIN_SAT PB3 -#define LED_PIN_SUN PB4 - -// 4th row: Lifted, Wire, Bat, Charge -#define LED_PIN_LIFTED PC0 -#define LED_PIN_WIRE PC1 -#define LED_PIN_BAT PC2 -#define LED_PIN_CHARGE PC3 - -// Backside -#define LED_PIN_REAR PB0 - -#define LED_ANIMATE_DELAY 15 // Delay (ms) between LEDs of animate sequence (boot/power-on anim) - -class LEDcontrolC500 : public LEDcontrol -{ -public: - LEDcontrolC500(const uint32_t *t_kPinByLedNumPtr, const size_t t_kNumLeds, void (LEDcontrol::*t_set_base10_leds_callback)(char digit)) : LEDcontrol(t_kPinByLedNumPtr, t_kNumLeds, t_set_base10_leds_callback) {} - - void sequence_animate_handler() override; - - unsigned int boot_animation(); // A short boot animation which return the amount of ms it will take - void set_base10_leds(char digit) override; - void force_off_num_seq_leds(bool force) override; -}; - -extern LEDcontrolC500 leds; // Main LED controller object - -#endif // YARDFORCE_LEDCONTROL_C500_HPP diff --git a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-EC3-V11.cpp b/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-EC3-V11.cpp deleted file mode 100644 index 8a6ffa3..0000000 --- a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-EC3-V11.cpp +++ /dev/null @@ -1,169 +0,0 @@ -/** - * @file LEDcontrol_RM-EC3-V11.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce LED driver for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-16 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "LEDcontrol_RM-EC3-V11.hpp" - -const uint32_t kPinByLedNum[] = { - // Order derived from LowLevel "enum LED_id" - // C500 - // Use LED num Original Alternative - LED_PIN_NC, // 0 - LED_PIN_NC, // 1 - LED_PIN_NC, // 2 - LED_PIN_NC, // 3 - LED_PIN_NC, // 4 SUN - LED_PIN_NC, // 5 SAT - LED_PIN_NC, // 6 FRI - LED_PIN_NC, // 7 THU - LED_PIN_NC, // 8 WED - LED_PIN_NC, // 9 TUE - LED_PIN_NC, // 10 MON - LED_PIN_NC, // 11 - LED_PIN_S2, // 12 digit 5 - LED_PIN_S1, // 13 digit 4 - LED_PIN_NC, // 14 8HR digit 3 - LED_PIN_NC, // 15 6HR digit 2 - LED_PIN_NC, // 16 4HR digit 1 - LED_PIN_NC, // 17 2HR digit 0 - LED_PIN_NC, // 18 - LED_PIN_SETUP, // 19 - LED_PIN_BACKLIGHT // 20 -}; - -const unsigned int kLedAnimOrder[] = {13, 19, 12}; -const unsigned int kNumFrontLeds = sizeof(kLedAnimOrder) / sizeof(unsigned int); - -// Numeric (base10) representation of LEDs. -// I.e. Digit 0 = 4H(0), ... Then S2(5) + S1(4) = 9. -// -// |------ Bit 5 = 4H(0) -// ||----- Bit 4 = 6H(1) -// |||---- Bit 3 = 8H(2) -// ||||--- Bit 2 = 10H(3) -// |||||-- Bit 1 = S1(4) -// ||||||- Bit 0 = S2(5) -/*const uint8_t kBase10Leds[] = { - 0b100000, // = 0 - 0b010000, - 0b001000, - 0b000100, - 0b000010, - 0b000001, - 0b010001, - 0b001001, - 0b000101, - 0b000011}; // = 9*/ - -void LEDcontrolRMEC3V11::sequence_animate_handler() -{ - uint16_t step = seq_get_next_step_(LED_ANIMATE_DELAY); // Animation sequence runs in 15ms steps - - if (step == 0) // Next sequence step not reached now - return; - else if (step >= 1 && step <= kNumFrontLeds) // LED on - { - set(kLedAnimOrder[step - 1], LED_state::LED_on, false); - return; - } - else if (step >= (kNumFrontLeds + 1) && step <= (2 * kNumFrontLeds)) // LED off - { - set(kLedAnimOrder[step - kNumFrontLeds - 1], LED_state::LED_off, false); - return; - } - else - { - seq_start_tick_ = 0; // Sequence end - set(led_states_bin_); // Restore states - return; - } -} - -void LEDcontrolRMEC3V11::show_countdown_state(unsigned int sec, LED_state state) -{ - unsigned int sec_left = 5 - sec; - - for (size_t i = 1; i <= 4; i++) - { - uint8_t led_num = 18 - i; - if (sec_left >= i) // Remaining secs is greater than this LED - { - leds.set(led_num, state, false); - } - else - { - leds.set(led_num, LED_off, false); - force_off(led_num, true); - } - } -}; - -/** - * @brief Countdown LED animation handler - */ -void LEDcontrolRMEC3V11::sequence_countdown_handler() -{ - uint16_t step = seq_get_next_step_(100); // Animation sequence run in 1000ms steps - - if (step == 0) // Next sequence step not reached now - return; - else if (step == 1 || step == 11 || step == 21 || step == 31 || step == 41) - { - show_countdown_state(((step - 1) / 10) + 1, LED_blink_fast); - return; - } - else if (step < 41) - { - return; - } - else - { - seq_start_tick_ = 0; // Sequence end - set(led_states_bin_); // Restore states - for (size_t i = 1; i <= 4; i++) - force_off(18 - i, false); - return; - } -} - -/** - * @brief A quick boot/power-on animation, also used as jammed button indicator - * - * @return unsigned int ms how long it will take to play - */ -unsigned int LEDcontrolRMEC3V11::boot_animation() // A short boot animation which return the amount of ms it will take -{ - sequence_start(&LEDcontrol::sequence_animate_handler); - return ((kNumFrontLeds + 1) * LED_ANIMATE_DELAY); -} - -/** - * @brief Set base10 related LEDs for the given (numeric) character - * - * @param digit numeric character - */ -/*void LEDcontrolRMEC3V11::set_base10_leds(char digit) -{ - for (uint8_t bit = 0; bit <= 5; bit++) // We've 5 LEDs for base10 number representation - { - bool on = (kBase10Leds[digit - '0'] >> bit) & 0b1; - unsigned int led = bit + 12; - set(led, on ? LED_state::LED_on : LED_state::LED_off, false); - } -} - -void LEDcontrolRMEC3V11::force_off_num_seq_leds(bool force) -{ - force_off(LED_NUM_LIFTED, force); // Num change signalling LED - for (unsigned int i = 12; i <= 17; i++) // Base10 related LEDs - force_off(i, force); -}*/ - -LEDcontrolRMEC3V11 leds(kPinByLedNum, sizeof(kPinByLedNum) / sizeof(uint32_t), &LEDcontrol::set_base10_leds); // Main LED controller object diff --git a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-EC3-V11.hpp b/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-EC3-V11.hpp deleted file mode 100644 index 8fd75c9..0000000 --- a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-EC3-V11.hpp +++ /dev/null @@ -1,45 +0,0 @@ -/** - * @file LEDcontrol_RM-EC3-V11.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce LED driver header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-16 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_LEDCONTROL_RMEC3V11_HPP -#define YARDFORCE_LEDCONTROL_RMEC3V11_HPP - -#include -#include "../LEDcontrol.hpp" - -// 1st row: Lifted, Wire (WLAN), Battery empty, Charge -#define LED_PIN_S1 PC4 -#define LED_PIN_SETUP PA1 -#define LED_PIN_S2 PC5 -#define LED_PIN_BACKLIGHT PA8 - -#define LED_NUM_BACKLIGHT 20 - -#define LED_ANIMATE_DELAY 50 // Delay (ms) between LEDs of animate sequence (boot/power-on anim) - -class LEDcontrolRMEC3V11 : public LEDcontrol -{ -public: - LEDcontrolRMEC3V11(const uint32_t *t_kPinByLedNumPtr, const size_t t_kNumLeds, void (LEDcontrol::*t_set_base10_leds_callback)(char digit)) : LEDcontrol(t_kPinByLedNumPtr, t_kNumLeds, t_set_base10_leds_callback){}; - - void sequence_animate_handler() override; - void sequence_countdown_handler() override; - - unsigned int boot_animation() override; // A short boot animation which return the amount of ms it will take - //void set_base10_leds(char digit) override; - //void force_off_num_seq_leds(bool force) override; - -private: - void show_countdown_state(unsigned int sec, LED_state state); -}; - -extern LEDcontrolRMEC3V11 leds; - -#endif // YARDFORCE_LEDCONTROL_RMEC3V11_HPP diff --git a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V100.cpp b/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V100.cpp deleted file mode 100644 index ae4c71a..0000000 --- a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V100.cpp +++ /dev/null @@ -1,168 +0,0 @@ -/** - * @file LEDcontrol_RM-ECOW-V100.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce LED driver for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.2 - * @date 2023-11-05 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "LEDcontrol_RM-ECOW-V100.hpp" - -const uint32_t kPinByLedNum[] = { - // Order derived from LowLevel "enum LED_id" - // C500 - // Use LED num Original Alternative - LED_PIN_CHARGE, // 0 - LED_PIN_BAT, // 1 - LED_PIN_WIRE, // 2 - LED_PIN_LIFTED, // 3 - LED_PIN_NC, // 4 SUN - LED_PIN_NC, // 5 SAT - LED_PIN_NC, // 6 FRI - LED_PIN_NC, // 7 THU - LED_PIN_NC, // 8 WED - LED_PIN_NC, // 9 TUE - LED_PIN_NC, // 10 MON - LED_PIN_LOCK, // 11 - LED_PIN_S2, // 12 digit 5 - LED_PIN_S1, // 13 digit 4 - LED_PIN_10H, // 14 8HR digit 3 - LED_PIN_8H, // 15 6HR digit 2 - LED_PIN_6H, // 16 4HR digit 1 - LED_PIN_4H, // 17 2HR digit 0 - LED_PIN_REAR, // 18 - LED_PIN_SETUP // 19 -}; - -const unsigned int kLedAnimOrder[] = {3, 2, 1, 0, 17, 16, 15, 14, 13, 19, 12, 11}; -const unsigned int kNumFrontLeds = sizeof(kLedAnimOrder) / sizeof(unsigned int); - -// Numeric (base10) representation of LEDs. -// I.e. Digit 0 = 4H(0), ... Then S2(5) + S1(4) = 9. -// -// |------ Bit 5 = 4H(0) -// ||----- Bit 4 = 6H(1) -// |||---- Bit 3 = 8H(2) -// ||||--- Bit 2 = 10H(3) -// |||||-- Bit 1 = S1(4) -// ||||||- Bit 0 = S2(5) -const uint8_t kBase10Leds[] = { - 0b100000, // = 0 - 0b010000, - 0b001000, - 0b000100, - 0b000010, - 0b000001, - 0b010001, - 0b001001, - 0b000101, - 0b000011}; // = 9 - -void LEDcontrolRMECOWV100::sequence_animate_handler() -{ - uint16_t step = seq_get_next_step_(LED_ANIMATE_DELAY); // Animation sequence runs in 15ms steps - - if (step == 0) // Next sequence step not reached now - return; - else if (step >= 1 && step <= kNumFrontLeds) // LED on - { - set(kLedAnimOrder[step - 1], LED_state::LED_on, false); - return; - } - else if (step >= (kNumFrontLeds + 1) && step <= (2 * kNumFrontLeds)) // LED off - { - set(kLedAnimOrder[step - kNumFrontLeds - 1], LED_state::LED_off, false); - return; - } - else - { - seq_start_tick_ = 0; // Sequence end - set(led_states_bin_); // Restore states - return; - } -} - -void LEDcontrolRMECOWV100::show_countdown_state(unsigned int sec, LED_state state) -{ - unsigned int sec_left = 5 - sec; - - for (size_t i = 1; i <= 4; i++) - { - uint8_t led_num = 18 - i; - if (sec_left >= i) // Remaining secs is greater than this LED - { - leds.set(led_num, state, true); // change_state = true because blink states get handled by timer and this need to be stored - } - else - { - leds.set(led_num, LED_off, true); - force_off(led_num, true); - } - } -}; - -/** - * @brief Countdown LED animation handler - */ -void LEDcontrolRMECOWV100::sequence_countdown_handler() -{ - uint16_t step = seq_get_next_step_(100); // Animation sequence run in 1000ms steps - - if (step == 0) // Next sequence step not reached now - return; - else if (step == 1 || step == 11 || step == 21 || step == 31 || step == 41) - { - show_countdown_state(((step - 1) / 10) + 1, LED_blink_fast); - return; - } - else if (step < 41) - { - return; - } - else - { - seq_start_tick_ = 0; // Sequence end - set(led_states_bin_); // Restore states - for (size_t i = 1; i <= 4; i++) - force_off(18 - i, false); - return; - } -} - -/** - * @brief A quick boot/power-on animation, also used as jammed button indicator - * - * @return unsigned int ms how long it will take to play - */ -unsigned int LEDcontrolRMECOWV100::boot_animation() // A short boot animation which return the amount of ms it will take -{ - sequence_start(&LEDcontrol::sequence_animate_handler); - return ((kNumFrontLeds + 1) * LED_ANIMATE_DELAY); -} - -/** - * @brief Set base10 related LEDs for the given (numeric) character - * - * @param digit numeric character - */ -void LEDcontrolRMECOWV100::set_base10_leds(char digit) -{ - for (uint8_t bit = 0; bit <= 5; bit++) // We've 5 LEDs for base10 number representation - { - bool on = (kBase10Leds[digit - '0'] >> bit) & 0b1; - unsigned int led = bit + 12; - set(led, on ? LED_state::LED_on : LED_state::LED_off, false); - } -} - -void LEDcontrolRMECOWV100::force_off_num_seq_leds(bool force) -{ - force_off(LED_NUM_LIFTED, force); // Num change signalling LED - for (unsigned int i = 12; i <= 17; i++) // Base10 related LEDs - force_off(i, force); -} - -LEDcontrolRMECOWV100 leds(kPinByLedNum, sizeof(kPinByLedNum) / sizeof(uint32_t), &LEDcontrol::set_base10_leds); // Main LED controller object diff --git a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V100.hpp b/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V100.hpp deleted file mode 100644 index 76e1221..0000000 --- a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V100.hpp +++ /dev/null @@ -1,60 +0,0 @@ -/** - * @file LEDcontrol_RM-ECOW-V100.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce LED driver header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.2 - * @date 2023-11-05 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_LEDCONTROL_RMECOWV100_HPP -#define YARDFORCE_LEDCONTROL_RMECOWV100_HPP - -#include -#include "../LEDcontrol.hpp" - -// 1st row: Lifted, Wire (WLAN), Battery empty, Charge -#define LED_PIN_LIFTED PB11 -#define LED_PIN_WIRE PB12 -#define LED_PIN_BAT PB14 -#define LED_PIN_CHARGE PB15 - -// 2nd row: 4, 6, 8, 10HR -#define LED_PIN_4H PA7 -#define LED_PIN_6H PC5 -#define LED_PIN_8H PB1 -#define LED_PIN_10H PB10 - -// 3rd row: S1, Setup (WLAN), S2 -#define LED_PIN_S1 PA5 -#define LED_PIN_SETUP PF5 -#define LED_PIN_S2 PC7 - -// 4th row: Lock -#define LED_PIN_LOCK PA1 - -// Backside -#define LED_PIN_REAR PB13 - -#define LED_ANIMATE_DELAY 20 // Delay (ms) between LEDs of animate sequence (boot/power-on anim) - -class LEDcontrolRMECOWV100 : public LEDcontrol -{ -public: - LEDcontrolRMECOWV100(const uint32_t *t_kPinByLedNumPtr, const size_t t_kNumLeds, void (LEDcontrol::*t_set_base10_leds_callback)(char digit)) : LEDcontrol(t_kPinByLedNumPtr, t_kNumLeds, t_set_base10_leds_callback){}; - - void sequence_animate_handler() override; - void sequence_countdown_handler() override; - - unsigned int boot_animation() override; // A short boot animation which return the amount of ms it will take - void set_base10_leds(char digit) override; - void force_off_num_seq_leds(bool force) override; - -private: - void show_countdown_state(unsigned int sec, LED_state state); -}; - -extern LEDcontrolRMECOWV100 leds; - -#endif // YARDFORCE_LEDCONTROL_RMECOWV100_HPP diff --git a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V110.cpp b/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V110.cpp deleted file mode 100644 index db05872..0000000 --- a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V110.cpp +++ /dev/null @@ -1,152 +0,0 @@ -/** - * @file LEDcontrol_RM-ECOW-V110.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce LED driver for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2024-06-27 - * - * @copyright Copyright (c) 2024 - * - */ -#include "LEDcontrol_RM-ECOW-V110.hpp" - -#include - -const uint32_t kPinByLedNum[] = { - // Order derived from LowLevel "enum LED_id" - // C500 - // Use LED num Original Alternative - LED_PIN_CHARGE, // 0 - LED_PIN_BAT, // 1 - LED_PIN_WIRE, // 2 - LED_PIN_LIFTED, // 3 - LED_PIN_NC, // 4 SUN - LED_PIN_NC, // 5 SAT - LED_PIN_NC, // 6 FRI - LED_PIN_NC, // 7 THU - LED_PIN_NC, // 8 WED - LED_PIN_NC, // 9 TUE - LED_PIN_NC, // 10 MON - LED_PIN_LOCK, // 11 - LED_PIN_S2, // 12 digit 5 - LED_PIN_S1, // 13 digit 4 - LED_PIN_10H, // 14 8HR digit 3 - LED_PIN_8H, // 15 6HR digit 2 - LED_PIN_6H, // 16 4HR digit 1 - LED_PIN_4H, // 17 2HR digit 0 - LED_PIN_REAR, // 18 -}; - -const unsigned int kLedAnimOrder[] = {3, 2, 1, 0, 17, 16, 15, 14, 13, 12, 11}; -const unsigned int kNumFrontLeds = sizeof(kLedAnimOrder) / sizeof(unsigned int); - -// Numeric (base10) representation of LEDs. -// I.e. Digit 0 = 4H(0), ... Then S2(5) + S1(4) = 9. -// -// |------ Bit 5 = 4H(0) -// ||----- Bit 4 = 6H(1) -// |||---- Bit 3 = 8H(2) -// ||||--- Bit 2 = 10H(3) -// |||||-- Bit 1 = S1(4) -// ||||||- Bit 0 = S2(5) -const uint8_t kBase10Leds[] = { - 0b100000, // = 0 - 0b010000, - 0b001000, - 0b000100, - 0b000010, - 0b000001, - 0b010001, - 0b001001, - 0b000101, - 0b000011}; // = 9 - -void LEDcontrolRMECOWV110::sequence_animate_handler() { - uint16_t step = seq_get_next_step_(LED_ANIMATE_DELAY); // Animation sequence runs in 15ms steps - - if (step == 0) // Next sequence step not reached now - return; - else if (step >= 1 && step <= kNumFrontLeds) // LED on - { - set(kLedAnimOrder[step - 1], LED_state::LED_on, false); - return; - } else if (step >= (kNumFrontLeds + 1) && step <= (2 * kNumFrontLeds)) // LED off - { - set(kLedAnimOrder[step - kNumFrontLeds - 1], LED_state::LED_off, false); - return; - } else { - seq_start_tick_ = 0; // Sequence end - set(led_states_bin_); // Restore states - return; - } -} - -void LEDcontrolRMECOWV110::show_countdown_state(unsigned int sec, LED_state state) { - unsigned int sec_left = 5 - sec; - - for (size_t i = 1; i <= 4; i++) { - uint8_t led_num = 18 - i; - if (sec_left >= i) // Remaining secs is greater than this LED - { - leds.set(led_num, state, true); // change_state = true because blink states get handled by timer and this need to be stored - } else { - leds.set(led_num, LED_off, true); - force_off(led_num, true); - } - } -}; - -/** - * @brief Countdown LED animation handler - */ -void LEDcontrolRMECOWV110::sequence_countdown_handler() { - uint16_t step = seq_get_next_step_(100); // Animation sequence run in 1000ms steps - - if (step == 0) // Next sequence step not reached now - return; - else if (step == 1 || step == 11 || step == 21 || step == 31 || step == 41) { - show_countdown_state(((step - 1) / 10) + 1, LED_blink_fast); - return; - } else if (step < 41) { - return; - } else { - seq_start_tick_ = 0; // Sequence end - set(led_states_bin_); // Restore states - for (size_t i = 1; i <= 4; i++) - force_off(18 - i, false); - return; - } -} - -/** - * @brief A quick boot/power-on animation, also used as jammed button indicator - * - * @return unsigned int ms how long it will take to play - */ -unsigned int LEDcontrolRMECOWV110::boot_animation() // A short boot animation which return the amount of ms it will take -{ - sequence_start(&LEDcontrol::sequence_animate_handler); - return ((kNumFrontLeds + 1) * LED_ANIMATE_DELAY); -} - -/** - * @brief Set base10 related LEDs for the given (numeric) character - * - * @param digit numeric character - */ -void LEDcontrolRMECOWV110::set_base10_leds(char digit) { - for (uint8_t bit = 0; bit <= 5; bit++) // We've 5 LEDs for base10 number representation - { - bool on = (kBase10Leds[digit - '0'] >> bit) & 0b1; - unsigned int led = bit + 12; - set(led, on ? LED_state::LED_on : LED_state::LED_off, false); - } -} - -void LEDcontrolRMECOWV110::force_off_num_seq_leds(bool force) { - force_off(LED_NUM_LIFTED, force); // Num change signalling LED - for (unsigned int i = 12; i <= 17; i++) // Base10 related LEDs - force_off(i, force); -} - -LEDcontrolRMECOWV110 leds(kPinByLedNum, sizeof(kPinByLedNum) / sizeof(uint32_t), &LEDcontrol::set_base10_leds); // Main LED controller object diff --git a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V110.hpp b/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V110.hpp deleted file mode 100644 index 46c3f97..0000000 --- a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_RM-ECOW-V110.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/** - * @file LEDcontrol_RM-ECOW-V110.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce LED driver header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2024-06-27 - * - * @copyright Copyright (c) 2024 - * - */ -#ifndef YARDFORCE_LEDCONTROL_RMECOWV110_HPP -#define YARDFORCE_LEDCONTROL_RMECOWV110_HPP - -#include -#include "../LEDcontrol.hpp" - -// 1st row: Lifted, Wire (WLAN), Battery empty, Charge -#define LED_PIN_LIFTED PA0 -#define LED_PIN_WIRE PA4 -#define LED_PIN_BAT PC4 -#define LED_PIN_CHARGE PA6 - -// 2nd row: 4, 6, 8, 10HR -#define LED_PIN_4H PA7 -#define LED_PIN_6H PC5 -#define LED_PIN_8H PB1 -#define LED_PIN_10H PB10 - -// 3rd row: S1, Reserved for Setup (WLAN), S2 -#define LED_PIN_S1 PA5 -#define LED_PIN_S2 PC7 - -// 4th row: Lock -#define LED_PIN_LOCK PA1 - -// Backside -#define LED_PIN_REAR PB0 - -#define LED_ANIMATE_DELAY 20 // Delay (ms) between LEDs of animate sequence (boot/power-on anim) - -class LEDcontrolRMECOWV110 : public LEDcontrol -{ -public: - LEDcontrolRMECOWV110(const uint32_t *t_kPinByLedNumPtr, const size_t t_kNumLeds, void (LEDcontrol::*t_set_base10_leds_callback)(char digit)) : LEDcontrol(t_kPinByLedNumPtr, t_kNumLeds, t_set_base10_leds_callback){}; - - void sequence_animate_handler() override; - void sequence_countdown_handler() override; - - unsigned int boot_animation() override; // A short boot animation which return the amount of ms it will take - void set_base10_leds(char digit) override; - void force_off_num_seq_leds(bool force) override; - -private: - void show_countdown_state(unsigned int sec, LED_state state); -}; - -extern LEDcontrolRMECOWV110 leds; - -#endif // YARDFORCE_LEDCONTROL_RMECOWV110_HPP diff --git a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_SAxPRO.cpp b/Firmware/CoverUI/YardForce/include/model/LEDcontrol_SAxPRO.cpp deleted file mode 100644 index f96c100..0000000 --- a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_SAxPRO.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/** - * @file LEDcontrol_SAxPRO.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce SAxPRO LED driver for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.2 - * @date 2023-11-07 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "LEDcontrol_SAxPRO.hpp" - -const uint32_t kPinByLedNum[] = { - // Order derived from LowLevel "enum LED_id" - // C500 - // Use LED num Original Alternative - LED_PIN_NC, // 0 - LED_PIN_NC, // 1 - LED_PIN_NC, // 2 - LED_PIN_NC, // 3 - LED_PIN_NC, // 4 SUN(6) - LED_PIN_NC, // 5 SAT(5) - LED_PIN_NC, // 6 FRI(4) - LED_PIN_NC, // 7 THU(3) - LED_PIN_NC, // 8 WED(2) - LED_PIN_NC, // 9 TUE(1) - LED_PIN_NC, // 10 MON(0) - LED_PIN_NC, // 11 - LED_PIN_NC, // 12 digit 5 - LED_PIN_NC, // 13 digit 4 - LED_PIN_NC, // 14 8HR digit 3 - LED_PIN_NC, // 15 6HR digit 2 - LED_PIN_NC, // 16 4HR digit 1 - LED_PIN_NC, // 17 2HR digit 0 - LED_PIN_NC, // 18 - LED_PIN_BACKLIGHT // 19 -}; - -LEDcontrol leds(kPinByLedNum, sizeof(kPinByLedNum) / sizeof(uint32_t)); // Main LED controller object diff --git a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_SAxPRO.hpp b/Firmware/CoverUI/YardForce/include/model/LEDcontrol_SAxPRO.hpp deleted file mode 100644 index 9c70f9d..0000000 --- a/Firmware/CoverUI/YardForce/include/model/LEDcontrol_SAxPRO.hpp +++ /dev/null @@ -1,22 +0,0 @@ -/** - * @file LEDcontrol_SAxPRO.h - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce SAxPRO LED driver for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.2 - * @date 2023-11-07 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_LEDCONTROL_SAXPRO_HPP -#define YARDFORCE_LEDCONTROL_SAXPRO_HPP - -#include -#include "../LEDcontrol.hpp" - -#define LED_PIN_BACKLIGHT PA11 // SAxPRO only has one LED, the backlight LED -#define LED_NUM_BACKLIGHT 19 - -extern LEDcontrol leds; // Main LED controller object - -#endif // YARDFORCE_LEDCONTROL_SAXPRO_HPP diff --git a/Firmware/CoverUI/YardForce/include/model/buttons_C500.cpp b/Firmware/CoverUI/YardForce/include/model/buttons_C500.cpp deleted file mode 100644 index 52955e9..0000000 --- a/Firmware/CoverUI/YardForce/include/model/buttons_C500.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/** - * @file buttons_C500.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce Classic 500 CoverUI Buttons for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.5 - * @date 2023-11-07 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "buttons_C500.h" -#include "../main.h" - -// Map logic button number to pin. Use the same order as in OM FW so that they get scanned in a comparable order! -const std::map kBtnDefByButtonNumMap = { - {BTN_CLK_NUM, {BTN_CLK_PIN, -1}}, - {BTN_HOME_NUM, {BTN_HOME_PIN, -1}}, - {BTN_PLAY_NUM, {BTN_PLAY_PIN, -1}}, - {BTN_S1_NUM, {BTN_S1_PIN, 13}}, - {BTN_S2_NUM, {BTN_S2_PIN, 12}}, - {BTN_LOCK_NUM, {BTN_LOCK_PIN, 11}}, - {BTN_OK_NUM, {BTN_OK_PIN, -1}}, - {BTN_SUN_NUM, {BTN_SUN_PIN, 4}}, - {BTN_MON_NUM, {BTN_MON_PIN, 10}}, - {BTN_TUE_NUM, {BTN_TUE_PIN, 9}}, - {BTN_WED_NUM, {BTN_WED_PIN, 8}}, - {BTN_THU_NUM, {BTN_THU_PIN, 7}}, - {BTN_FRI_NUM, {BTN_FRI_PIN, 6}}, - {BTN_SAT_NUM, {BTN_SAT_PIN, 5}}}; - -Buttons buttons(kBtnDefByButtonNumMap); - -/** - * @brief Check if one of the "magic buttons" got pressed and do his function. - * SETUP + 4H = Display FW version - * SETUP + 10H = LED animation - */ -void magic_buttons() -{ - if (!buttons.is_pressed(BTN_OK_NUM)) - return; - - if (buttons.is_pressed(BTN_SUN_NUM)) - leds.sequence_start(&LEDcontrol::sequence_animate_handler); - else if (buttons.is_pressed(BTN_CLK_NUM)) - leds.show_num(FIRMWARE_VERSION); - return; -}; diff --git a/Firmware/CoverUI/YardForce/include/model/buttons_C500.h b/Firmware/CoverUI/YardForce/include/model/buttons_C500.h deleted file mode 100644 index 1c0ae99..0000000 --- a/Firmware/CoverUI/YardForce/include/model/buttons_C500.h +++ /dev/null @@ -1,37 +0,0 @@ -/** - * @file buttons_C500.h - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce Classic 500 CoverUI Buttons header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.5 - * @date 2023-11-07 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_BUTTONS_C500_H -#define YARDFORCE_BUTTONS_C500_H - -#include -#include "../Buttons.hpp" - -#define BTN_CLK_PIN PF4 -#define BTN_OK_PIN PF5 -#define BTN_S1_PIN PB2 -#define BTN_S2_PIN PB10 -#define BTN_LOCK_PIN PB11 -#define BTN_MON_PIN PB12 -#define BTN_TUE_PIN PB13 -#define BTN_WED_PIN PB14 -#define BTN_THU_PIN PB15 -#define BTN_FRI_PIN PC6 -#define BTN_SAT_PIN PC7 -#define BTN_SUN_PIN PC8 -#define BTN_PLAY_PIN PA11 -#define BTN_HOME_PIN PA12 - -extern Buttons buttons; - -#define HAS_MAGIC_BUTTONS -void magic_buttons(); - -#endif // YARDFORCE_BUTTONS_C500_H diff --git a/Firmware/CoverUI/YardForce/include/model/buttons_RM-EC3-V11.cpp b/Firmware/CoverUI/YardForce/include/model/buttons_RM-EC3-V11.cpp deleted file mode 100644 index 25dc89e..0000000 --- a/Firmware/CoverUI/YardForce/include/model/buttons_RM-EC3-V11.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/** - * @file buttons_RM-EC3-V11.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-EC3-V1.1 CoverUI Buttons for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-16 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "../main.h" - -// Map logic button number to pin. Use the same order as in OM FW so that they get scanned in a comparable order! -const std::map kBtnDefByButtonNumMap = { - {BTN_HOME_NUM, {BTN_HOME_PIN, -1}}, - {BTN_PLAY_NUM, {BTN_PLAY_PIN, -1}}, - {BTN_S1_NUM, {BTN_S1_PIN, LED_NUM_S1}}, - {BTN_S2_NUM, {BTN_S2_PIN, LED_NUM_S2}}, - {BTN_SETUP_NUM, {BTN_SETUP_PIN, 19}}, - {BTN_MENU_NUM, {BTN_MENU_PIN, -1}}, - {BTN_1_NUM, {BTN_1_PIN, -1}}, - {BTN_2_NUM, {BTN_2_PIN, -1}}, - {BTN_3_NUM, {BTN_3_PIN, -1}}, - {BTN_4_NUM, {BTN_4_PIN, -1}}, - {BTN_5_NUM, {BTN_5_PIN, -1}}, - {BTN_6_NUM, {BTN_6_PIN, -1}}, - {BTN_7_NUM, {BTN_7_PIN, -1}}, - {BTN_8_NUM, {BTN_8_PIN, -1}}, - {BTN_9_NUM, {BTN_9_PIN, -1}}, - {BTN_BACK_NUM, {BTN_BACK_PIN, -1}}, - {BTN_0_NUM, {BTN_0_PIN, -1}}, - {BTN_OK_NUM, {BTN_OK_PIN, -1}}}; - -Buttons buttons(kBtnDefByButtonNumMap); - -/** - * @brief Check if one of the "magic buttons" got pressed and do his function. - * SETUP + 4H = Display FW version - * SETUP + 10H = LED animation - */ -void magic_buttons() -{ - if (!buttons.is_pressed(BTN_MENU_NUM)) - return; - - if (buttons.is_pressed(BTN_BACK_NUM)) - display.openmower_anim(); - else if (buttons.is_pressed(BTN_0_NUM)) - display.start_anncmnt(2000, yardforce::display::Display::AnncmntType::version); - - return; -}; diff --git a/Firmware/CoverUI/YardForce/include/model/buttons_RM-EC3-V11.h b/Firmware/CoverUI/YardForce/include/model/buttons_RM-EC3-V11.h deleted file mode 100644 index 65a723d..0000000 --- a/Firmware/CoverUI/YardForce/include/model/buttons_RM-EC3-V11.h +++ /dev/null @@ -1,43 +0,0 @@ -/** - * @file buttons_RM-EC3-V11.h - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-EC3-V1.1 CoverUI Buttons header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-16 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_BUTTONS_RMEC3V11_H -#define YARDFORCE_BUTTONS_RMEC3V11_H - -#include -#include "../Buttons.hpp" - -#define BTN_S1_PIN PC14 -#define BTN_S2_PIN PC13 -#define BTN_PLAY_PIN PC7 -#define BTN_HOME_PIN PC2 -#define BTN_SETUP_PIN PA0 - -#define BTN_MENU_PIN PB4 - -#define BTN_1_PIN PB8 -#define BTN_2_PIN PB5 -#define BTN_3_PIN PB3 -#define BTN_4_PIN PD2 -#define BTN_5_PIN PC12 -#define BTN_6_PIN PC11 -#define BTN_7_PIN PC10 -#define BTN_8_PIN PB14 -#define BTN_9_PIN PC6 -#define BTN_BACK_PIN PA15 -#define BTN_0_PIN PB9 -#define BTN_OK_PIN PB13 - -extern Buttons buttons; - -#define HAS_MAGIC_BUTTONS -extern void magic_buttons(); - -#endif // YARDFORCE_BUTTONS_RMEC3V11_H diff --git a/Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V100.cpp b/Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V100.cpp deleted file mode 100644 index 4862d83..0000000 --- a/Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V100.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/** - * @file buttons_RM-ECOW-V100.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-ECOW-V1.0.0 CoverUI Buttons for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.5 - * @date 2023-11-05 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "../main.h" - -// Map logic button number to pin. Use the same order as in OM FW so that they get scanned in a comparable order! -const std::map kBtnDefByButtonNumMap = { - {BTN_HOME_NUM, {BTN_HOME_PIN, -1}}, - {BTN_PLAY_NUM, {BTN_PLAY_PIN, -1}}, - {BTN_S1_NUM, {BTN_S1_PIN, LED_NUM_S1}}, - {BTN_S2_NUM, {BTN_S2_PIN, LED_NUM_S2}}, - {BTN_LOCK_NUM, {BTN_LOCK_PIN, 11}}, - {BTN_4H_NUM, {BTN_4H_PIN, 17}}, - {BTN_6H_NUM, {BTN_6H_PIN, 16}}, - {BTN_8H_NUM, {BTN_8H_PIN, 15}}, - {BTN_10H_NUM, {BTN_10H_PIN, 14}}, - {BTN_SETUP_NUM, {BTN_SETUP_PIN, 19}}}; - -Buttons buttons(kBtnDefByButtonNumMap); - -/** - * @brief Check if one of the "magic buttons" got pressed and do his function. - * SETUP + 4H = Display FW version - * SETUP + 10H = LED animation - */ -void magic_buttons() -{ - if (!buttons.is_pressed(BTN_SETUP_NUM)) - return; - - if (buttons.is_pressed(BTN_10H_NUM)) - leds.sequence_start(&LEDcontrol::sequence_animate_handler); - else if (buttons.is_pressed(BTN_4H_NUM)) - leds.show_num(FIRMWARE_VERSION); - return; -}; diff --git a/Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V100.h b/Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V100.h deleted file mode 100644 index 7a5df81..0000000 --- a/Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V100.h +++ /dev/null @@ -1,33 +0,0 @@ -/** - * @file buttons_RM-ECOW-V100.h - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-ECOW-V1.0.0 CoverUI Buttons header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.5 - * @date 2023-11-05 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_BUTTONS_RMECOWV100_H -#define YARDFORCE_BUTTONS_RMECOWV100_H - -#include -#include "../Buttons.hpp" - -#define BTN_S1_PIN PA4 -#define BTN_S2_PIN PC6 -#define BTN_LOCK_PIN PA0 -#define BTN_4H_PIN PA6 -#define BTN_6H_PIN PC4 -#define BTN_8H_PIN PB0 -#define BTN_10H_PIN PB2 -#define BTN_PLAY_PIN PC11 -#define BTN_HOME_PIN PC12 -#define BTN_SETUP_PIN PF4 - -extern Buttons buttons; - -#define HAS_MAGIC_BUTTONS -extern void magic_buttons(); - -#endif // YARDFORCE_BUTTONS_RMECOWV100_H diff --git a/Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V110.cpp b/Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V110.cpp deleted file mode 100644 index d73ecb8..0000000 --- a/Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V110.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/** - * @file buttons_RM-ECOW-V110.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-ECOW-V1.1.0 CoverUI Buttons for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2024-06-27 - * - * @copyright Copyright (c) 2024 - * - */ -#include - -#include "../main.h" - -// Map logic button number to pin. Use the same order as in OM FW so that they get scanned in a comparable order! -const std::map kBtnDefByButtonNumMap = { - {BTN_HOME_NUM, {BTN_HOME_PIN, -1}}, - {BTN_PLAY_NUM, {BTN_PLAY_PIN, -1}}, - {BTN_S1_NUM, {BTN_S1_PIN, LED_NUM_S1}}, - {BTN_S2_NUM, {BTN_S2_PIN, LED_NUM_S2}}, - {BTN_LOCK_NUM, {BTN_LOCK_PIN, 11}}, - {BTN_4H_NUM, {BTN_4H_PIN, 17}}, - {BTN_6H_NUM, {BTN_6H_PIN, 16}}, - {BTN_8H_NUM, {BTN_8H_PIN, 15}}, - {BTN_10H_NUM, {BTN_10H_PIN, 14}} -}; - -Buttons buttons(kBtnDefByButtonNumMap); - -/** - * @brief Check if one of the "magic buttons" got pressed and do his function. - * SETUP + 4H = Display FW version - * SETUP + 10H = LED animation - */ -void magic_buttons() { - if (!buttons.is_pressed(BTN_LOCK_NUM)) - return; - - if (buttons.is_pressed(BTN_10H_NUM)) - leds.sequence_start(&LEDcontrol::sequence_animate_handler); - else if (buttons.is_pressed(BTN_4H_NUM)) - leds.show_num(FIRMWARE_VERSION); - return; -}; diff --git a/Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V110.h b/Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V110.h deleted file mode 100644 index 1bf1085..0000000 --- a/Firmware/CoverUI/YardForce/include/model/buttons_RM-ECOW-V110.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - * @file buttons_RM-ECOW-V110.h - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-ECOW-V1.1.0 CoverUI Buttons header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2024-06-27 - * - * @copyright Copyright (c) 2024 - * - */ -#ifndef YARDFORCE_BUTTONS_RMECOWV110_H -#define YARDFORCE_BUTTONS_RMECOWV110_H - -#include -#include "../Buttons.hpp" - -#define BTN_S1_PIN PB11 -#define BTN_S2_PIN PC6 -#define BTN_LOCK_PIN PB12 -#define BTN_4H_PIN PB14 -#define BTN_6H_PIN PB15 -#define BTN_8H_PIN PB13 -#define BTN_10H_PIN PB2 -#define BTN_PLAY_PIN PC11 -#define BTN_HOME_PIN PC12 - -extern Buttons buttons; - -#define HAS_MAGIC_BUTTONS -extern void magic_buttons(); - -#endif // YARDFORCE_BUTTONS_RMECOWV110_H diff --git a/Firmware/CoverUI/YardForce/include/model/buttons_SAxPRO.cpp b/Firmware/CoverUI/YardForce/include/model/buttons_SAxPRO.cpp deleted file mode 100644 index 5df9c43..0000000 --- a/Firmware/CoverUI/YardForce/include/model/buttons_SAxPRO.cpp +++ /dev/null @@ -1,23 +0,0 @@ -/** - * @file buttons_SAxPRO.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce SAxPRO CoverUI Buttons for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.2 - * @date 2023-11-02 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "../main.h" - -// Map logic button number to pin. Use the same order as in OM FW so that they get scanned in a comparable order! -const std::map kBtnDefByButtonNumMap = { - {BTN_HOME_NUM, {BTN_HOME_PIN, -1}}, - {BTN_PLAY_NUM, {BTN_PLAY_PIN, -1}}, - {BTN_OK_NUM, {BTN_OK_PIN, -1}}, - {BTN_UP_NUM, {BTN_UP_PIN, -1}}, - {BTN_DOWN_NUM, {BTN_DOWN_PIN, -1}}, - {BTN_BACK_NUM, {BTN_BACK_PIN, -1}}}; - -Buttons buttons(kBtnDefByButtonNumMap); diff --git a/Firmware/CoverUI/YardForce/include/model/buttons_SAxPRO.h b/Firmware/CoverUI/YardForce/include/model/buttons_SAxPRO.h deleted file mode 100644 index bea54a8..0000000 --- a/Firmware/CoverUI/YardForce/include/model/buttons_SAxPRO.h +++ /dev/null @@ -1,26 +0,0 @@ -/** - * @file buttons_SAxPRO.h - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce SAxPRO CoverUI Buttons for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.2 - * @date 2023-11-02 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_BUTTONS_SAXPRO_H -#define YARDFORCE_BUTTONS_SAXPRO_H - -#include -#include "../Buttons.hpp" - -#define BTN_PLAY_PIN PC0 // or Start -#define BTN_HOME_PIN PC1 -#define BTN_UP_PIN PB14 -#define BTN_DOWN_PIN PB13 -#define BTN_OK_PIN PB12 // or Enter -#define BTN_BACK_PIN PB15 - -extern Buttons buttons; - -#endif // YARDFORCE_BUTTONS_SAXPRO_H diff --git a/Firmware/CoverUI/YardForce/include/model/emergency_C500.cpp b/Firmware/CoverUI/YardForce/include/model/emergency_C500.cpp deleted file mode 100644 index b3ad67c..0000000 --- a/Firmware/CoverUI/YardForce/include/model/emergency_C500.cpp +++ /dev/null @@ -1,21 +0,0 @@ -/** - * @file emergency_C500.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce Classic 500 CoverUI Emergency header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-10-31 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "emergency_C500.h" -#include "../Emergency.hpp" - -const EmergencyPinStateDef kEmergencyPinStateDefs[] = { - {PIN_HALL_STOP_WHITE, INPUT, Emergency_state::Emergency_stop1}, - {PIN_HALL_STOP_YELLOW, INPUT, Emergency_state::Emergency_stop2}, - {PIN_HALL_WHEEL_RED, INPUT, Emergency_state::Emergency_lift1}, - {PIN_HALL_WHEEL_BLUE, INPUT, Emergency_state::Emergency_lift2}}; - -Emergency emergency(kEmergencyPinStateDefs, sizeof(kEmergencyPinStateDefs) / sizeof(EmergencyPinStateDef)); diff --git a/Firmware/CoverUI/YardForce/include/model/emergency_C500.h b/Firmware/CoverUI/YardForce/include/model/emergency_C500.h deleted file mode 100644 index 9e32618..0000000 --- a/Firmware/CoverUI/YardForce/include/model/emergency_C500.h +++ /dev/null @@ -1,25 +0,0 @@ -/** - * @file emergency_C500.h - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce Classic 500 CoverUI Emergency header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-10-31 - * - * @copyright Copyright (c) 2023 - * - */ - -#ifndef YARDFORCE_EMERGENCY_C500_H -#define YARDFORCE_EMERGENCY_C500_H - -#include -#include "../Emergency.hpp" - -#define PIN_HALL_STOP_WHITE PC5 -#define PIN_HALL_STOP_YELLOW PB6 -#define PIN_HALL_WHEEL_RED PB7 -#define PIN_HALL_WHEEL_BLUE PB8 - -extern Emergency emergency; - -#endif // YARDFORCE_EMERGENCY_C500_H diff --git a/Firmware/CoverUI/YardForce/include/model/emergency_RM-EC3-V11.cpp b/Firmware/CoverUI/YardForce/include/model/emergency_RM-EC3-V11.cpp deleted file mode 100644 index b006e76..0000000 --- a/Firmware/CoverUI/YardForce/include/model/emergency_RM-EC3-V11.cpp +++ /dev/null @@ -1,28 +0,0 @@ -/** - * @file emergency_RM-EC3-V11.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-EC3-V1.1 CoverUI Emergency class for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-28 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "emergency_RM-EC3-V11.h" -#include "../Emergency.hpp" - -const EmergencyPinStateDef kEmergencyPinStateDefs[] = { -#ifdef MOD_HALL - {PIN_HALL1, INPUT_PULLUP, Emergency_state::Emergency_lift1}, - {PIN_HALL2, INPUT_PULLUP, Emergency_state::Emergency_lift1}, - {PIN_HALL3, INPUT_PULLUP, Emergency_state::Emergency_lift2}, - {PIN_HALL4, INPUT_PULLUP, Emergency_state::Emergency_lift2}, -#endif -#ifdef MOD_STOP - {PIN_STOP1, INPUT_PULLUP, Emergency_state::Emergency_stop1}, - {PIN_STOP2, INPUT_PULLUP, Emergency_state::Emergency_stop2}, -#endif -}; - -Emergency emergency(kEmergencyPinStateDefs, sizeof(kEmergencyPinStateDefs) / sizeof(EmergencyPinStateDef)); diff --git a/Firmware/CoverUI/YardForce/include/model/emergency_RM-EC3-V11.h b/Firmware/CoverUI/YardForce/include/model/emergency_RM-EC3-V11.h deleted file mode 100644 index 72f9a5d..0000000 --- a/Firmware/CoverUI/YardForce/include/model/emergency_RM-EC3-V11.h +++ /dev/null @@ -1,28 +0,0 @@ -/** - * @file emergency_RM-EC3-V11.h - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-EC3-V1.1 CoverUI Emergency header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-28 - * - * @copyright Copyright (c) 2023 - * - */ - -#ifndef YARDFORCE_EMERGENCY_RMEC3V11_H -#define YARDFORCE_EMERGENCY_RMEC3V11_H - -#include -#include "../Emergency.hpp" - -#define PIN_STOP1 PC15 -#define PIN_STOP2 PB6 - -#define PIN_HALL1 PB15 -#define PIN_HALL2 PC0 -#define PIN_HALL3 PC8 -#define PIN_HALL4 PC9 - -extern Emergency emergency; - -#endif // YARDFORCE_EMERGENCY_RMEC3V11_H diff --git a/Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V100.cpp b/Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V100.cpp deleted file mode 100644 index ae48ec2..0000000 --- a/Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V100.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/** - * @file emergency_RM-ECOW-V100.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-ECOW-V1.0.0 CoverUI Emergency class for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.2 - * @date 2023-11-05 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "emergency_RM-ECOW-V100.h" -#include "../Emergency.hpp" - -const EmergencyPinStateDef kEmergencyPinStateDefs[] = { - {PIN_STOP_JP5, INPUT_PULLUP, Emergency_state::Emergency_stop1}, - {PIN_STOP_JP6, INPUT_PULLUP, Emergency_state::Emergency_stop2}}; - -Emergency emergency(kEmergencyPinStateDefs, sizeof(kEmergencyPinStateDefs) / sizeof(EmergencyPinStateDef)); diff --git a/Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V100.h b/Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V100.h deleted file mode 100644 index b2952ad..0000000 --- a/Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V100.h +++ /dev/null @@ -1,23 +0,0 @@ -/** - * @file emergency_RM-ECOW-V100.h - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-ECOW-V1.0.0 CoverUI Emergency header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.2 - * @date 2023-11-05 - * - * @copyright Copyright (c) 2023 - * - */ - -#ifndef YARDFORCE_EMERGENCY_RMECOWV100_HPP -#define YARDFORCE_EMERGENCY_RMECOWV100_HPP - -#include -#include "../Emergency.hpp" - -#define PIN_STOP_JP5 PC10 -#define PIN_STOP_JP6 PA15 - -extern Emergency emergency; - -#endif // YARDFORCE_EMERGENCY_RMECOWV100_HPP diff --git a/Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V110.cpp b/Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V110.cpp deleted file mode 100644 index 08039b4..0000000 --- a/Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V110.cpp +++ /dev/null @@ -1,28 +0,0 @@ -/** - * @file emergency_RM-ECOW-V110.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-ECOW-V1.1.0 CoverUI Emergency class for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2024-06-30 - * - * @copyright Copyright (c) 2024 - * - */ -#include -#include "emergency_RM-ECOW-V110.h" -#include "../Emergency.hpp" - -const EmergencyPinStateDef kEmergencyPinStateDefs[] = { -#ifdef MOD_HALL - {PIN_HALL1, INPUT_PULLUP, Emergency_state::Emergency_lift1}, - {PIN_HALL2, INPUT_PULLUP, Emergency_state::Emergency_lift1}, - {PIN_HALL3, INPUT_PULLUP, Emergency_state::Emergency_lift2}, - {PIN_HALL4, INPUT_PULLUP, Emergency_state::Emergency_lift2}, -#endif -#ifdef MOD_STOP - {PIN_STOP_JP6, INPUT_PULLUP, Emergency_state::Emergency_stop1}, - {PIN_STOP_JP8, INPUT_PULLUP, Emergency_state::Emergency_stop2}, -#endif -}; - -Emergency emergency(kEmergencyPinStateDefs, sizeof(kEmergencyPinStateDefs) / sizeof(EmergencyPinStateDef)); diff --git a/Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V110.h b/Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V110.h deleted file mode 100644 index a8a83ee..0000000 --- a/Firmware/CoverUI/YardForce/include/model/emergency_RM-ECOW-V110.h +++ /dev/null @@ -1,28 +0,0 @@ -/** - * @file emergency_RM-ECOW-V110.h - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-ECOW-V1.1.0 CoverUI Emergency header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2024-06-30 - * - * @copyright Copyright (c) 2024 - * - */ - -#ifndef YARDFORCE_EMERGENCY_RMECOWV110_HPP -#define YARDFORCE_EMERGENCY_RMECOWV110_HPP - -#include -#include "../Emergency.hpp" - -#define PIN_STOP_JP6 PC10 -#define PIN_STOP_JP8 PA15 - -#define PIN_HALL1 PA8 // LIFT -#define PIN_HALL2 PA9 // LIFTX -#define PIN_HALL3 PC8 // LBUMP -#define PIN_HALL4 PC9 // RBUMP - -extern Emergency emergency; - -#endif // YARDFORCE_EMERGENCY_RMECOWV110_HPP diff --git a/Firmware/CoverUI/YardForce/include/model/hatch_RM-EC3-V11.cpp b/Firmware/CoverUI/YardForce/include/model/hatch_RM-EC3-V11.cpp deleted file mode 100644 index dd23d4e..0000000 --- a/Firmware/CoverUI/YardForce/include/model/hatch_RM-EC3-V11.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/** - * @file hatch_RM-EC3-V11.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-EC3-V1.1 CoverUI Hatch for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-16 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "../model_RM-EC3-V11.h" - -unsigned int HatchRMEC3V11::handle_button(unsigned int button_id, unsigned int press_cnt) -{ - // If backlight is off, skip first button press - if (display.check_backlight() == LED_off) - { - display.set_backlight(); - return 0; // Skip handling of first button-press if backlight was off - } - display.set_backlight(); - - // Clear emergency = Enter (OK) button - if (button_id == BTN_OK_NUM) - { - display.start_anncmnt(4000, yardforce::display::Display::AnncmntType::close_hatch); - queue_button(BTN_LOCK_NUM, 2, 4500); // Send long-press Lock button in 4.5 sec - return 0; // Don't return button now (hatch is still open) - } - - // Play & Home button - if (button_id == BTN_HOME_NUM || button_id == BTN_PLAY_NUM) - { - display.start_anncmnt(4000, yardforce::display::Display::AnncmntType::close_hatch); - queue_button(BTN_LOCK_NUM, 2, 4500); // Send long-press Lock button in 4.5 sec - queue_button(button_id, 0, 5000); - return 0; // Don't return button now (hatch is still open) - } - - if (button_id == BTN_1_NUM) - return BTN_MON_NUM; // Volume up - - if (button_id == BTN_2_NUM) - return BTN_TUE_NUM; // Volume down - - if (button_id == BTN_3_NUM) - return BTN_WED_NUM; // Next language - - return button_id; -}; - -HatchRMEC3V11 hatch; diff --git a/Firmware/CoverUI/YardForce/include/model/hatch_RM-EC3-V11.hpp b/Firmware/CoverUI/YardForce/include/model/hatch_RM-EC3-V11.hpp deleted file mode 100644 index e3a69b5..0000000 --- a/Firmware/CoverUI/YardForce/include/model/hatch_RM-EC3-V11.hpp +++ /dev/null @@ -1,26 +0,0 @@ -/** - * @file hatch_RM-EC3-V11.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-EC3-V1.1 CoverUI Hatch header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-16 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_HATCH_RMEC3V11_HPP -#define YARDFORCE_HATCH_RMEC3V11_HPP - -#include -#include "../Hatch.hpp" - -class HatchRMEC3V11 : public Hatch -{ -public: - - unsigned int handle_button(unsigned int button_id, unsigned int press_cnt); -}; - -extern HatchRMEC3V11 hatch; - -#endif // YARDFORCE_HATCH_RMEC3V11_HPP diff --git a/Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V100.cpp b/Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V100.cpp deleted file mode 100644 index 308836c..0000000 --- a/Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V100.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/** - * @file hatch_RM-ECOW-V100.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-ECOW-V1.0.0 CoverUI Hatch for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-03 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "../model_RM-ECOW-V100.h" - -unsigned int HatchRMECOWV100::handle_button(unsigned int button_id, unsigned int press_cnt) -{ - if (button_id == BTN_LOCK_NUM && press_cnt >= 2) - { - leds.sequence_start(&LEDcontrol::sequence_countdown_handler); // Close hatch countdown - queue_button(BTN_LOCK_NUM, 2, 4500); // Send long-press Lock button in 4.5 sec - return 0; // Don't return button now (hatch is still open) - } - - if (button_id == BTN_HOME_NUM || button_id == BTN_PLAY_NUM || button_id == BTN_S1_NUM || button_id == BTN_S2_NUM) - { - if (press_cnt > 10 || true) // Be sure that the queue isn't filled with "wait for release" loops - { - leds.sequence_start(&LEDcontrol::sequence_countdown_handler); // Close hatch countdown - queue_button(BTN_LOCK_NUM, 2, 4500); // Send long-press Lock button in 4.5 sec - queue_button(button_id, 0, 5000); - return 0; // Don't return button now (hatch is still open) - } - } - - if (button_id == BTN_4H_NUM) - return BTN_MON_NUM; // Volume up - - if (button_id == BTN_6H_NUM) - return BTN_TUE_NUM; // Volume down - - if (button_id == BTN_8H_NUM) - return BTN_WED_NUM; // Next language - - return button_id; -}; - -HatchRMECOWV100 hatch; diff --git a/Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V100.hpp b/Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V100.hpp deleted file mode 100644 index ab9f1d7..0000000 --- a/Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V100.hpp +++ /dev/null @@ -1,26 +0,0 @@ -/** - * @file hatch_RM-ECOW-V100.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-ECOW-V1.0.0 CoverUI Hatch header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-03 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_HATCH_RMECOWV100_HPP -#define YARDFORCE_HATCH_RMECOWV100_HPP - -#include -#include "../Hatch.hpp" - -class HatchRMECOWV100 : public Hatch -{ -public: - - unsigned int handle_button(unsigned int button_id, unsigned int press_cnt); -}; - -extern HatchRMECOWV100 hatch; - -#endif // YARDFORCE_HATCH_RMECOWV100_HPP diff --git a/Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V110.cpp b/Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V110.cpp deleted file mode 100644 index 7475b2e..0000000 --- a/Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V110.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/** - * @file hatch_RM-ECOW-V110.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-ECOW-V1.1.0 CoverUI Hatch for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2024-06-27 - * - * @copyright Copyright (c) 2024 - * - */ -#include -#include "../model_RM-ECOW-V110.h" - -unsigned int HatchRMECOWV110::handle_button(unsigned int button_id, unsigned int press_cnt) -{ - if (button_id == BTN_LOCK_NUM && press_cnt >= 2) - { - leds.sequence_start(&LEDcontrol::sequence_countdown_handler); // Close hatch countdown - queue_button(BTN_LOCK_NUM, 2, 4500); // Send long-press Lock button in 4.5 sec - return 0; // Don't return button now (hatch is still open) - } - - if (button_id == BTN_HOME_NUM || button_id == BTN_PLAY_NUM || button_id == BTN_S1_NUM || button_id == BTN_S2_NUM) - { - if (press_cnt > 10 || true) // Be sure that the queue isn't filled with "wait for release" loops - { - leds.sequence_start(&LEDcontrol::sequence_countdown_handler); // Close hatch countdown - queue_button(BTN_LOCK_NUM, 2, 4500); // Send long-press Lock button in 4.5 sec - queue_button(button_id, 0, 5000); - return 0; // Don't return button now (hatch is still open) - } - } - - if (button_id == BTN_4H_NUM) - return BTN_MON_NUM; // Volume up - - if (button_id == BTN_6H_NUM) - return BTN_TUE_NUM; // Volume down - - return button_id; -}; - -HatchRMECOWV110 hatch; diff --git a/Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V110.hpp b/Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V110.hpp deleted file mode 100644 index e672abe..0000000 --- a/Firmware/CoverUI/YardForce/include/model/hatch_RM-ECOW-V110.hpp +++ /dev/null @@ -1,26 +0,0 @@ -/** - * @file hatch_RM-ECOW-V110.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-ECOW-V1.1.0 CoverUI Hatch header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2024-06-27 - * - * @copyright Copyright (c) 2024 - * - */ -#ifndef YARDFORCE_HATCH_RMECOWV110_HPP -#define YARDFORCE_HATCH_RMECOWV110_HPP - -#include -#include "../Hatch.hpp" - -class HatchRMECOWV110 : public Hatch -{ -public: - - unsigned int handle_button(unsigned int button_id, unsigned int press_cnt); -}; - -extern HatchRMECOWV110 hatch; - -#endif // YARDFORCE_HATCH_RMECOWV110_HPP diff --git a/Firmware/CoverUI/YardForce/include/model/hatch_SAxPRO.cpp b/Firmware/CoverUI/YardForce/include/model/hatch_SAxPRO.cpp deleted file mode 100644 index 827c9e0..0000000 --- a/Firmware/CoverUI/YardForce/include/model/hatch_SAxPRO.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/** - * @file hatch_SAxPRO.cpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce SAxPRO CoverUI Hatch for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-11 - * - * @copyright Copyright (c) 2023 - * - */ -#include -#include "../model_SAxPRO.h" - -unsigned int HatchSAXPRO::handle_button(unsigned int button_id, unsigned int press_cnt) -{ - // If backlight is off, skip first button press - if (display.check_backlight() == LED_off) - { - display.set_backlight(); - return 0; // Skip handling of first button-press if backlight was off - } - display.set_backlight(); - - // Clear emergency = Enter (OK) button - if (button_id == BTN_OK_NUM) - { - display.start_anncmnt(4000, yardforce::display::Display::AnncmntType::close_hatch); - queue_button(BTN_LOCK_NUM, 2, 4500); // Send long-press Lock button in 4.5 sec - return 0; // Don't return button now (hatch is still open) - } - - // Play & Home button - if (button_id == BTN_HOME_NUM || button_id == BTN_PLAY_NUM) - { - display.start_anncmnt(4000, yardforce::display::Display::AnncmntType::close_hatch); - queue_button(BTN_LOCK_NUM, 2, 4500); // Send long-press Lock button in 4.5 sec - queue_button(button_id, 0, 5000); - return 0; // Don't return button now (hatch is still open) - } - - if (button_id == BTN_UP_NUM) - return BTN_MON_NUM; // Volume up - - if (button_id == BTN_DOWN_NUM) - return BTN_TUE_NUM; // Volume down - - if (button_id == BTN_BACK_NUM) - return BTN_WED_NUM; // Next language - - return button_id; -}; - -HatchSAXPRO hatch; diff --git a/Firmware/CoverUI/YardForce/include/model/hatch_SAxPRO.hpp b/Firmware/CoverUI/YardForce/include/model/hatch_SAxPRO.hpp deleted file mode 100644 index 4e51939..0000000 --- a/Firmware/CoverUI/YardForce/include/model/hatch_SAxPRO.hpp +++ /dev/null @@ -1,25 +0,0 @@ -/** - * @file hatch_SAxPRO.hpp - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce SAxPRO CoverUI Hatch header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-11 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_HATCH_SAXPRO_HPP -#define YARDFORCE_HATCH_SAXPRO_HPP - -#include -#include "../Hatch.hpp" - -class HatchSAXPRO : public Hatch -{ -public: - unsigned int handle_button(unsigned int button_id, unsigned int press_cnt); -}; - -extern HatchSAXPRO hatch; - -#endif // YARDFORCE_HATCH_SAXPRO_HPP diff --git a/Firmware/CoverUI/YardForce/include/model_C500.h b/Firmware/CoverUI/YardForce/include/model_C500.h deleted file mode 100644 index 52b3156..0000000 --- a/Firmware/CoverUI/YardForce/include/model_C500.h +++ /dev/null @@ -1,25 +0,0 @@ -/** - * @file model_C500.h - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce Classic 500 model header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-10-30 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_MDL_C500_H -#define YARDFORCE_MDL_C500_H - -#include "model/LEDcontrol_C500.hpp" -#include "model/buttons_C500.h" - -#ifdef MOD_EMERGENCY -#include "model/emergency_C500.h" -#endif - -// LowLevel Serial Pins -#define UART_LL_RX PA3 -#define UART_LL_TX PA2 - -#endif // YARDFORCE_MDL_C500_H diff --git a/Firmware/CoverUI/YardForce/include/model_RM-EC3-V11.h b/Firmware/CoverUI/YardForce/include/model_RM-EC3-V11.h deleted file mode 100644 index 56fd12a..0000000 --- a/Firmware/CoverUI/YardForce/include/model_RM-EC3-V11.h +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @file model_RM-EC3-V11.h - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-EC3-V1.1 model header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-11-16 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_MDL_RMEC3V11_H -#define YARDFORCE_MDL_RMEC3V11_H - -#include "model/LEDcontrol_RM-EC3-V11.hpp" -#include "model/buttons_RM-EC3-V11.h" -#include "model/hatch_RM-EC3-V11.hpp" -#include "model/Display_RM-EC3-V11.hpp" - -#ifdef MOD_EMERGENCY -#include "model/emergency_RM-EC3-V11.h" -#endif - -// LowLevel Serial Pins -#define UART_LL_RX PA3 -#define UART_LL_TX PA2 - -#endif // YARDFORCE_MDL_RMEC3V11_H diff --git a/Firmware/CoverUI/YardForce/include/model_RM-ECOW-V100.h b/Firmware/CoverUI/YardForce/include/model_RM-ECOW-V100.h deleted file mode 100644 index e4329c6..0000000 --- a/Firmware/CoverUI/YardForce/include/model_RM-ECOW-V100.h +++ /dev/null @@ -1,26 +0,0 @@ -/** - * @file model_RM-ECOW-V100.h - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-ECOW-V1.0.0 model header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2023-10-23 - * - * @copyright Copyright (c) 2023 - * - */ -#ifndef YARDFORCE_MDL_RMECOWV100_H -#define YARDFORCE_MDL_RMECOWV100_H - -#include "model/LEDcontrol_RM-ECOW-V100.hpp" -#include "model/buttons_RM-ECOW-V100.h" -#include "model/hatch_RM-ECOW-V100.hpp" - -#ifdef MOD_EMERGENCY -#include "model/emergency_RM-ECOW-V100.h" -#endif - -// LowLevel Serial Pins -#define UART_LL_RX PA3 -#define UART_LL_TX PA2 - -#endif // YARDFORCE_MDL_RMECOWV100_H diff --git a/Firmware/CoverUI/YardForce/include/model_RM-ECOW-V110.h b/Firmware/CoverUI/YardForce/include/model_RM-ECOW-V110.h deleted file mode 100644 index ebaa002..0000000 --- a/Firmware/CoverUI/YardForce/include/model_RM-ECOW-V110.h +++ /dev/null @@ -1,26 +0,0 @@ -/** - * @file model_RM-ECOW-V110.h - * @author Apehaenger (joerg@ebeling.ws) - * @brief YardForce RM-ECOW-V1.1.0 model header for OpenMower https://github.com/ClemensElflein/OpenMower - * @version 0.1 - * @date 2024-06-27 - * - * @copyright Copyright (c) 2024 - * - */ -#ifndef YARDFORCE_MDL_RMECOWV110_H -#define YARDFORCE_MDL_RMECOWV110_H - -#include "model/LEDcontrol_RM-ECOW-V110.hpp" -#include "model/buttons_RM-ECOW-V110.h" -#include "model/hatch_RM-ECOW-V110.hpp" - -#ifdef MOD_EMERGENCY -#include "model/emergency_RM-ECOW-V110.h" -#endif - -// LowLevel Serial Pins -#define UART_LL_RX PA3 -#define UART_LL_TX PA2 - -#endif // YARDFORCE_MDL_RMECOWV110_H diff --git a/Firmware/CoverUI/YardForce/main.cpp b/Firmware/CoverUI/YardForce/main.cpp index 47583fc..656c4a7 100644 --- a/Firmware/CoverUI/YardForce/main.cpp +++ b/Firmware/CoverUI/YardForce/main.cpp @@ -9,26 +9,26 @@ * */ #include "include/main.h" -#include // Stock CoverUI is build now via Arduino framework (instead of HAL), which is ATM the only framework with STM32F030R8 and GD32F330R8 support -#include // Required for framework-arduinogd32 + +#include // Stock CoverUI is build now via Arduino framework (instead of HAL), which is ATM the only framework with STM32F030R8 and GD32F330R8 support +#include // Required for framework-arduinogd32 // ----- Timer ----- #ifdef MCU_STM32 #ifdef STM32F030x8 -#define TIM_SLOW TIM6 // Basic timer -#define TIM_FAST TIM17 // General purpose timer -#define TIM_EVENT TIM14 // General purpose timer -#define TIM_QUICK TIM16 // General purpose timer +#define TIM_SLOW TIM6 // Basic timer +#define TIM_FAST TIM17 // General purpose timer +#define TIM_EVENT TIM14 // General purpose timer +#define TIM_QUICK TIM16 // General purpose timer #elif defined(STM32F4xx) -#define TIM_SLOW TIM3 // General purpose timer -#define TIM_FAST TIM4 // General purpose timer -#define TIM_EVENT TIM9 // General purpose timer -#define TIM_QUICK TIM10 // General purpose timer +#define TIM_SLOW TIM3 // General purpose timer +#define TIM_FAST TIM4 // General purpose timer +#define TIM_EVENT TIM9 // General purpose timer +#define TIM_QUICK TIM10 // General purpose timer #endif #define TIM_DEFAULT_PREEMPT_PRIO TIM_IRQ_PRIO #define TIM_DEFAULT_SUB_PRIO TIM_IRQ_SUBPRIO -HardwareTimer *hwtimer(TIM_TypeDef *instance, uint32_t freq, callback_function_t callback, uint32_t preemptPriority = TIM_DEFAULT_PREEMPT_PRIO, uint32_t subPriority = TIM_DEFAULT_SUB_PRIO) -{ +HardwareTimer *hwtimer(TIM_TypeDef *instance, uint32_t freq, callback_function_t callback, uint32_t preemptPriority = TIM_DEFAULT_PREEMPT_PRIO, uint32_t subPriority = TIM_DEFAULT_SUB_PRIO) { HardwareTimer *Timer = new HardwareTimer(instance); Timer->setOverflow(freq, HERTZ_FORMAT); Timer->setInterruptPriority(preemptPriority, subPriority); @@ -36,12 +36,11 @@ HardwareTimer *hwtimer(TIM_TypeDef *instance, uint32_t freq, callback_function_t Timer->resume(); return Timer; } -#else // GD32 +#else // GD32 #define TIM_SLOW TIMER16 #define TIM_FAST TIMER15 #define TIM_QUICK TIMER14 -HardwareTimer *hwtimer(uint32_t instance, uint32_t freq, timerCallback_t callback, uint32_t preemptPriority = 0, uint32_t subPriority = 0) -{ +HardwareTimer *hwtimer(uint32_t instance, uint32_t freq, timerCallback_t callback, uint32_t preemptPriority = 0, uint32_t subPriority = 0) { HardwareTimer *Timer = new HardwareTimer(instance); Timer->setPeriodTime(freq, FORMAT_HZ); // FIXME: GD's HW timer class doesn't has INT preemption- and sub- priorities implemented yet. Will become an issue latest with GD32 & LVGL! @@ -57,16 +56,19 @@ uint32_t alive_cycle_next = 0; #define TIM_QUICK_FREQUENCY 200 // Hz #define TIM_QUICK_PERIOD_MS (1.0 / TIM_QUICK_FREQUENCY * 1000) // Milliseconds -HardwareTimer *timer_slow; // Used for blink-slow LEDs and magic buttons -HardwareTimer *timer_fast; // Used for blink-fast LEDs -#ifdef YARDFORCE_DISPLAY_HPP -HardwareTimer *timer_event; // Used for lv_timer_handler() and LED/Value to display logic conversion +HardwareTimer *timer_slow; // Used for blink-slow LEDs and magic buttons +HardwareTimer *timer_fast; // Used for blink-fast LEDs +#ifdef YARDFORCE_ABC_DISPLAY_HPP +HardwareTimer *timer_event; // Used for lv_timer_handler() and LED/Value to display logic conversion #endif -HardwareTimer *timer_quick; // Button debouncer and LED sequences +HardwareTimer *timer_quick; // Button debouncer and LED sequences // Forward declaration, see ../main.cpp extern void core1(); extern void getDataFromBuffer(); +#ifdef YARDFORCE_EMERGENCY_HPP +extern Emergency emergency; +#endif void timer_slow_callback_wrapper(); void timer_fast_callback_wrapper(); @@ -79,43 +81,43 @@ Rain rain; #endif #ifdef MCU_STM32 -HardwareSerial serial_ll(UART_LL_RX, UART_LL_TX); // Serial connection to LowLevel MCU, JP2 Pin 1+3 -#else // MCU_GD32 -HardwareSerial serial_ll((uint8_t)UART_LL_RX, (uint8_t)UART_LL_TX, 1); // Serial connection to LowLevel MCU, J6/JP2 Pin 1+3 +HardwareSerial serial_ll(UART_LL_RX, UART_LL_TX); // Serial connection to LowLevel MCU, JP2 Pin 1+3 +#else // MCU_GD32 +HardwareSerial serial_ll((uint8_t)UART_LL_RX, (uint8_t)UART_LL_TX, 1); // Serial connection to LowLevel MCU, J6/JP2 Pin 1+3 #endif -void setup() -{ - leds.setup(); - buttons.setup(); -#ifdef YARDFORCE_DISPLAY_HPP +void setup() { +#ifdef MDL_RMECOWV100 + // RM-ECOW-V1.0.0 might have a populated ESP-WROOM-02 module. + // Disable it, because one might have made MOD_HALL but flash or test another FW variant + pinMode(PF7, OUTPUT); // ESP-WROOM-02 EN pin + digitalWrite(PF7, LOW); // Disable ESP-WROOM-02 module so that it's GPIOs doesn't collide with ours +#endif + +#ifdef YARDFORCE_ABC_DISPLAY_HPP if (!display.init()) - display.set_backlight(LED_blink_fast, 60000); // TODO: Make some better assert handling than 60 sec. fast blink + display.set_backlight(LED_blink_fast, 60000); // TODO: Make some better assert handling than 60 sec. fast blink else display.set_backlight(); #endif -#ifdef YARDFORCE_EMERGENCY_HPP - emergency.setup(); -#endif // We've hardware timer on mass, let's use them. - timer_slow = hwtimer(TIM_SLOW, 2, timer_slow_callback_wrapper, 30); // 2Hz (500ms) timer, used for LED-blink-slow and magic buttons - timer_fast = hwtimer(TIM_FAST, 10, timer_fast_callback_wrapper, 20); // 10Hz (100ms) timer, used for LED-blink-fast -#ifdef YARDFORCE_DISPLAY_HPP - timer_event = hwtimer(TIM_EVENT, 100, timer_event_callback_wrapper, 10); // 100Hz (10ms) timer, used for displays lv_timer_handler() and LED-2-Display logic + timer_slow = hwtimer(TIM_SLOW, 2, timer_slow_callback_wrapper, 30); // 2Hz (500ms) timer, used for LED-blink-slow and magic buttons + timer_fast = hwtimer(TIM_FAST, 10, timer_fast_callback_wrapper, 20); // 10Hz (100ms) timer, used for LED-blink-fast +#ifdef YARDFORCE_ABC_DISPLAY_HPP + timer_event = hwtimer(TIM_EVENT, 100, timer_event_callback_wrapper, 10); // 100Hz (10ms) timer, used for displays lv_timer_handler() and LED-2-Display logic #endif // Don't increase value of this timers preemptPriority parameter higher than the default, // as this timer callback also handles HardwareSerial as well as button-debouncer, // which would mess expected processing of those. - timer_quick = hwtimer(TIM_QUICK, TIM_QUICK_FREQUENCY, timer_quick_callback_wrapper); // 200Hz (5ms) timer, used for Buttons debouncer and LED- sequences + timer_quick = hwtimer(TIM_QUICK, TIM_QUICK_FREQUENCY, timer_quick_callback_wrapper); // 200Hz (5ms) timer, used for Buttons debouncer and LED- sequences serial_ll.begin(115200); delay(100); // Some required stupid delay, dunno why :-/ // "Hi there" and jammed button mounting detection - do - { + do { // LED blink to say it's alive // (this processing delay is also required to get the debouncer filled with a consistent state (NUM_BUTTON_STATES * 5ms) delay(leds.boot_animation() + 500); @@ -127,36 +129,30 @@ void setup() * @brief Stupid timer callback wrapper to work-around callback_function_t and timerCallback_t framework-arduino differences. * Also, framework-arduinogd32 implementation doesn't support callback arguments nor std::bind and thus no ptr to member functionality! */ -void timer_slow_callback_wrapper() -{ +void timer_slow_callback_wrapper() { leds.blink_timer_elapsed(LED_state::LED_blink_slow); -#ifdef HAS_MAGIC_BUTTONS - magic_buttons(); -#endif #ifdef MOD_RAIN rain.process(); #endif } -void timer_event_callback_wrapper() -{ -#ifdef YARDFORCE_DISPLAY_HPP +void timer_event_callback_wrapper() { +#ifdef YARDFORCE_ABC_DISPLAY_HPP display.loop_low_prio(); #endif } -void timer_fast_callback_wrapper() -{ +void timer_fast_callback_wrapper() { #ifdef YARDFORCE_EMERGENCY_HPP emergency.periodic_send(); #endif + buttons.handle_sys_req(); leds.blink_timer_elapsed(LED_state::LED_blink_fast); } -void timer_quick_callback_wrapper() -{ +void timer_quick_callback_wrapper() { getDataFromBuffer(); -#ifdef YARDFORCE_DISPLAY_HPP +#ifdef YARDFORCE_ABC_DISPLAY_HPP display.tick_inc(TIM_QUICK_PERIOD_MS); #endif #ifdef YARDFORCE_EMERGENCY_HPP @@ -170,58 +166,50 @@ void timer_quick_callback_wrapper() * Some dump OM wrapper for not polluting original code to much * ****************************************************************/ -bool uart_is_readable(HardwareSerial *Serial) -{ +bool uart_is_readable(HardwareSerial *Serial) { return Serial->available(); } -void uart_putc(HardwareSerial *Serial, uint8_t c) -{ +void uart_putc(HardwareSerial *Serial, uint8_t c) { Serial->write(c); } -void Force_LED_off(uint8_t led_num, bool force) -{ - leds.force_off(led_num, force); // This only effect blink states +void Force_LED_off(uint8_t led_num, bool force) { + leds.force_off(led_num, force); // This only effect blink states } -void buzzer_program_put_words(PIO pio, unsigned int sm, uint32_t repeat, uint32_t duration, uint32_t gap) -{ +void buzzer_program_put_words(PIO pio, unsigned int sm, uint32_t repeat, uint32_t duration, uint32_t gap) { // YFC500 doesn't has (not yet?) a buzzer on CoverUI } // ----- YardForce specific main loop, mainly does the same as ../main.cpp::core1() unsigned int last_button_id = 0; unsigned int last_button_cnt; -void loop() -{ +void loop() { // Scan the buttons in the same order as original OM FW does - for (auto const &it : buttons.kBtnDefByNumMap) // Loop over Button-Num -> button pin map + for (auto const &it : buttons.kBtnDefByNumMap) // Loop over Button-Num -> button pin map { - uint32_t start = millis(); // start press_timeout measurement - if (buttons.is_pressed(it.first)) - { + uint32_t start = millis(); // start press_timeout measurement + if (buttons.is_pressed(it.first)) { if (it.first != last_button_id) last_button_cnt = 0; last_button_id = it.first; int8_t led_num = buttons.get_led(last_button_id); - if (led_num >= 0) + if (led_num > BTN_HAS_NO_LED) Force_LED_off(led_num, true); - while (buttons.is_pressed(it.first) && (millis() - start) < 1000) // wait for button released but max. 1000ms + while (buttons.is_pressed(it.first) && (millis() - start) < 1000) // wait for button released but max. 1000ms ; - if (buttons.is_pressed(it.first)) // Still pressed + if (buttons.is_pressed(it.first)) // Still pressed { - if (last_button_cnt < 2) - { + if (last_button_cnt < 2) { last_button_cnt++; if (led_num >= 0) for (int i = 0; i < last_button_cnt; i++) leds.identify(led_num); } - } - else // Button released + } else // Button released { -#ifdef YARDFORCE_HATCH_HPP +#ifdef YARDFORCE_ABC_HATCH_HPP last_button_id = hatch.handle_button(last_button_id, last_button_cnt); #endif if (last_button_id) @@ -235,7 +223,7 @@ void loop() } } -#ifdef YARDFORCE_HATCH_HPP +#ifdef YARDFORCE_ABC_HATCH_HPP hatch.process_queued(); #endif diff --git a/Firmware/CoverUI/YardForce/model/C500/LEDcontrol.hpp b/Firmware/CoverUI/YardForce/model/C500/LEDcontrol.hpp new file mode 100644 index 0000000..347bb20 --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/C500/LEDcontrol.hpp @@ -0,0 +1,81 @@ +/** + * @file C500/LEDcontrol.hpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce RM-ECOW-V1x LED controller model for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.3 + * @date 2024-10-02 + * + * @copyright Copyright (c) 2023, 2024 + * + */ +#ifndef YARDFORCE_C500_LEDCONTROL_HPP +#define YARDFORCE_C500_LEDCONTROL_HPP + +#include + +#include "../../include/LEDcontrol.hpp" + +#define LED_ANIMATE_DELAY 15 // Delay (ms) between LEDs of animate sequence (boot/power-on anim) + +// These constants should be declared i.e. in assembly.cpp +extern const uint8_t kBase10Leds[]; + +class LEDcontrolC500 : public LEDcontrol { + public: + LEDcontrolC500(const uint32_t *t_kPinByLedNumPtr, const size_t t_kNumLeds, void (LEDcontrol::*t_set_base10_leds_callback)(char digit)) : LEDcontrol(t_kPinByLedNumPtr, t_kNumLeds, t_set_base10_leds_callback) {}; + + /** + * @brief Animate sequence handler. Has to be started by sequence_start() + */ + void sequence_animate_handler() override { + unsigned int step = seq_get_next_step_(LED_ANIMATE_DELAY); // Animation sequence runs in 15ms steps + + if (step == 0) // Next sequence step not reached now + return; + else if (step >= 1 && step <= kNumLeds) // LED on + { + set(kNumLeds - step, LED_state::LED_on, false); + return; + } else if (step >= (kNumLeds + 1) && step <= (2 * kNumLeds)) // LED off + { + set((2 * kNumLeds) - step, LED_state::LED_off, false); + return; + } else { + seq_start_tick_ = 0; // Sequence end + set(led_states_bin_); // Restore states + return; + } + } + + /** + * @brief A quick boot/power-on animation, also used as jammed button indicator + * + * @return unsigned int ms how long it will take to play + */ + unsigned int boot_animation() override { + sequence_start(&LEDcontrol::sequence_animate_handler); + return ((kNumLeds + 1) * LED_ANIMATE_DELAY); + } + + /** + * @brief Set base10 related LEDs for the given (numeric) character + * + * @param digit numeric character + */ + void set_base10_leds(char digit) override { + for (uint8_t bit = 0; bit <= 6; bit++) // We've 6 LEDs for base10 number representation + { + bool on = (kBase10Leds[digit - '0'] >> bit) & 0b1; + unsigned int led = bit + 12; + set(bit + 4, on ? LED_state::LED_on : LED_state::LED_off, false); + } + } + + void force_off_num_seq_leds(bool force) override { + force_off(LED_NUM_LIFTED, force); // Num change signalling LED + for (unsigned int i = 4; i <= 10; i++) // Base10 related LEDs + force_off(i, force); + } +}; + +#endif // YARDFORCE_C500_LEDCONTROL_HPP diff --git a/Firmware/CoverUI/YardForce/model/C500/assembly.cpp b/Firmware/CoverUI/YardForce/model/C500/assembly.cpp new file mode 100644 index 0000000..c21989d --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/C500/assembly.cpp @@ -0,0 +1,96 @@ +/** + * @file C500/assembly.cpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce RM-ECOW-V1.0.0 CoverUI Assembly for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.1 + * @date 2024-10-01 + * + * @copyright Copyright (c) 2024 + * + */ +#include "assembly.hpp" + +#include "../../include/Emergency.hpp" +#include "LEDcontrol.hpp" + +// ----- LEDs ----- + +const uint32_t kPinByLedNum[] = { + // Order derived from LowLevel "enum LED_id" + // C500 + // Use LED num Original Alternative + LED_PIN_CHARGE, // 0 + LED_PIN_BAT, // 1 + LED_PIN_WIRE, // 2 + LED_PIN_LIFTED, // 3 + LED_PIN_SUN, // 4 SUN(6) + LED_PIN_SAT, // 5 SAT(5) + LED_PIN_FRI, // 6 FRI(4) + LED_PIN_THU, // 7 THU(3) + LED_PIN_WED, // 8 WED(2) + LED_PIN_TUE, // 9 TUE(1) + LED_PIN_MON, // 10 MON(0) + LED_PIN_LOCK, // 11 + LED_PIN_S2, // 12 digit 5 + LED_PIN_S1, // 13 digit 4 + LED_PIN_8HR, // 14 8HR digit 3 + LED_PIN_6HR, // 15 6HR digit 2 + LED_PIN_4HR, // 16 4HR digit 1 + LED_PIN_2HR, // 17 2HR digit 0 + LED_PIN_REAR // 18 +}; + +// Numeric (base10) representation of LEDs. +// I.e. Digit 0 = 4H(0), ... Then S2(5) + S1(4) = 9. +// +// |------- Bit 6 = MON(0) +// ||------ Bit 5 = TUE(1) +// |||----- Bit 4 = WED(2) +// ||||---- Bit 3 = THU(3) +// |||||--- Bit 2 = FRI(4) +// ||||||-- Bit 1 = SAT(5) +// |||||||- Bit 0 = SUN(6) +const uint8_t kBase10Leds[] = { + 0b1000000, // = 0 + 0b0100000, + 0b0010000, + 0b0001000, + 0b0000100, + 0b0000010, + 0b0000001, + 0b0100001, + 0b0010001, + 0b0001001}; // = 9 + +// Main LED controller object +LEDcontrolC500 leds(kPinByLedNum, sizeof(kPinByLedNum) / sizeof(uint32_t), &LEDcontrol::set_base10_leds); + +// ----- Buttons ----- + +// Map logic button number to pin. Use the same order as in OM FW so that they get scanned in a comparable order! +const std::map kBtnDefByButtonNumMap = { + {BTN_CLK_NUM, {BTN_CLK_PIN, -1}}, + {BTN_HOME_NUM, {BTN_HOME_PIN, -1}}, + {BTN_PLAY_NUM, {BTN_PLAY_PIN, -1}}, + {BTN_S1_NUM, {BTN_S1_PIN, 13}}, + {BTN_S2_NUM, {BTN_S2_PIN, 12}}, + {BTN_LOCK_NUM, {BTN_LOCK_PIN, 11}}, + {BTN_OK_NUM, {BTN_OK_PIN, -1}}, + {BTN_SUN_NUM, {BTN_SUN_PIN, 4}}, + {BTN_MON_NUM, {BTN_MON_PIN, 10}}, + {BTN_TUE_NUM, {BTN_TUE_PIN, 9}}, + {BTN_WED_NUM, {BTN_WED_PIN, 8}}, + {BTN_THU_NUM, {BTN_THU_PIN, 7}}, + {BTN_FRI_NUM, {BTN_FRI_PIN, 6}}, + {BTN_SAT_NUM, {BTN_SAT_PIN, 5}}}; + +ButtonsC500 buttons(kBtnDefByButtonNumMap); + +// ----- Emergency ----- +const Emergency::PinStateDef kEmergencyPinStateDefs[] = { + {PIN_HALL_STOP_WHITE, INPUT, Emergency_state::Emergency_stop1}, + {PIN_HALL_STOP_YELLOW, INPUT, Emergency_state::Emergency_stop2}, + {PIN_HALL_WHEEL_RED, INPUT, Emergency_state::Emergency_lift1}, + {PIN_HALL_WHEEL_BLUE, INPUT, Emergency_state::Emergency_lift2}}; + +Emergency emergency(kEmergencyPinStateDefs, sizeof(kEmergencyPinStateDefs) / sizeof(Emergency::PinStateDef)); diff --git a/Firmware/CoverUI/YardForce/model/C500/assembly.hpp b/Firmware/CoverUI/YardForce/model/C500/assembly.hpp new file mode 100644 index 0000000..bccb7b9 --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/C500/assembly.hpp @@ -0,0 +1,98 @@ +/** + * @file C500/assembly.hpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce Classic500 CoverUI Assembly for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.1 + * @date 2024-10-02 + * + * @copyright Copyright (c) 2024 + * + */ +#ifndef YARDFORCE_MDL_C500_ASSEMBLY_HPP +#define YARDFORCE_MDL_C500_ASSEMBLY_HPP + +#include "../../include/Buttons.hpp" +#include "../../include/main.h" +#include "LEDcontrol.hpp" + +#ifdef MOD_EMERGENCY +#include "../../include/Emergency.hpp" +#endif + +// ***** LEDs ***** +// 1st row: 2,4,6,8HR +#define LED_PIN_2HR PA4 +#define LED_PIN_4HR PA5 +#define LED_PIN_6HR PA6 +#define LED_PIN_8HR PA7 +// 2nd row: S1, S2, LOCK +#define LED_PIN_S1 PA0 +#define LED_PIN_S2 PA1 +#define LED_PIN_LOCK PC4 +// 3rd row: Mon-Sun +#define LED_PIN_MON PA15 +#define LED_PIN_TUE PC10 +#define LED_PIN_WED PC11 +#define LED_PIN_THU PC12 +#define LED_PIN_FRI PD2 +#define LED_PIN_SAT PB3 +#define LED_PIN_SUN PB4 +// 4th row: Lifted, Wire, Bat, Charge +#define LED_PIN_LIFTED PC0 +#define LED_PIN_WIRE PC1 +#define LED_PIN_BAT PC2 +#define LED_PIN_CHARGE PC3 +// Backside +#define LED_PIN_REAR PB0 + +// ***** Buttons ***** +#define BTN_CLK_PIN PF4 +#define BTN_OK_PIN PF5 +#define BTN_S1_PIN PB2 +#define BTN_S2_PIN PB10 +#define BTN_LOCK_PIN PB11 +#define BTN_MON_PIN PB12 +#define BTN_TUE_PIN PB13 +#define BTN_WED_PIN PB14 +#define BTN_THU_PIN PB15 +#define BTN_FRI_PIN PC6 +#define BTN_SAT_PIN PC7 +#define BTN_SUN_PIN PC8 +#define BTN_PLAY_PIN PA11 +#define BTN_HOME_PIN PA12 + +// ***** Emergency ***** +#define PIN_HALL_STOP_WHITE PC5 +#define PIN_HALL_STOP_YELLOW PB6 +#define PIN_HALL_WHEEL_RED PB7 +#define PIN_HALL_WHEEL_BLUE PB8 + +extern LEDcontrolC500 leds; + +class ButtonsC500 : public Buttons { + public: + ButtonsC500(const std::map &t_kBtnDefByNumMap) : Buttons(t_kBtnDefByNumMap) {}; + + /** + * @brief Check if one of the internal button functionality got pressed and do it's function. + * OK + CLK = Display FW version + * OK + SUN = LED animation + */ + void handle_sys_req() override { + if (!is_pressed(BTN_OK_NUM)) + return; + + if (is_pressed(BTN_SUN_NUM)) + leds.sequence_start(&LEDcontrol::sequence_animate_handler); + else if (is_pressed(BTN_CLK_NUM)) + leds.show_num(FIRMWARE_VERSION); + return; + }; +}; +extern ButtonsC500 buttons; + +// LowLevel Serial Pins +#define UART_LL_RX PA3 +#define UART_LL_TX PA2 + +#endif // YARDFORCE_MDL_C500_ASSEMBLY_HPP diff --git a/Firmware/CoverUI/YardForce/model/RM-EC3-V11/Display.cpp b/Firmware/CoverUI/YardForce/model/RM-EC3-V11/Display.cpp new file mode 100644 index 0000000..b38189c --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/RM-EC3-V11/Display.cpp @@ -0,0 +1,329 @@ +/** + * @file Display_RM-EC3-V11.cpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce CoverUI RM-EC3-V1.1 display driver class for OpenMower https://github.com/ClemensElflein/OpenMower + * This JLX25664 dispay is 4-level (2 Bit) gray scale capable, but for ease of development, it's driven as monochrome display. + * @version 0.1 + * @date 2023-11-27 + * + * @copyright Copyright (c) 2023 + */ +#include "Display.hpp" + +#include + +#include "../../include/main.h" +#include "../../include/subscription.h" + +// C images +LV_IMG_DECLARE(OM_Logo_120x54x1); +LV_IMG_DECLARE(OM_Wordmark_240x35x1); + +namespace yardforce { +namespace display { + +static controller::ST75256 st75256; // Controller driver + +// LVGL buffers +static lv_disp_draw_buf_t lv_disp_buf; +static lv_color_t lv_buf_1[ST75256_DISPLAY_WIDTH * LVGL_BUFFER_MULTIPLIER]; +static lv_color_t lv_buf_2[ST75256_DISPLAY_WIDTH * LVGL_BUFFER_MULTIPLIER]; + +// Status Screen Widgets +lvgl::WidgetLedSymbol *v_led_heartbeat, *v_led_ros, + *v_led_emergency_wheel, *v_led_emergency, *v_led_emergency_stop, + *v_led_bat, *v_led_gps, *v_led_charge, *v_led_power; +lvgl::WidgetBar *bar_gps, *bar_bat; +lvgl::WidgetTextTicker *text_ticker_status; + +bool main_screen_active = false; // Initialized and active +bool last_docked_state_; // true = docked, false = undocked + +bool DisplayRMEC3V11::init() { + // Init LCD display controller + st75256.init(); + + // Init LVGL + lv_init(); + lv_disp_drv_init(&lv_disp_drv); // Basic LVGL display driver initialization + lv_disp_drv.draw_buf = &lv_disp_buf; // Set an initialized buffer + lv_disp_drv.rounder_cb = rounder_cb; // Round x coordinated so that it fit for our 3 RGB pixel/per dot display + lv_disp_drv.flush_cb = flush_cb; // Set a flush callback to draw to the display + lv_disp_drv.hor_res = ST75256_DISPLAY_WIDTH; // Set the horizontal resolution in pixels + lv_disp_drv.ver_res = ST75256_DISPLAY_HEIGHT; // Set the vertical resolution in pixels + lv_disp_draw_buf_init(&lv_disp_buf, lv_buf_1, lv_buf_2, ST75256_DISPLAY_WIDTH * LVGL_BUFFER_MULTIPLIER); // Initialize `disp_buf` with the buffer(s) + lv_disp_t *disp; + disp = lv_disp_drv_register(&lv_disp_drv); // Register the driver and save the created display objects + lv_obj_set_style_bg_color(lv_scr_act(), lv_color_white(), LV_PART_MAIN); // No background color + + openmower_anim(); + // mainScreen(); + + return true; +} + +/** + * @brief Rounder callback will round the display area to a multiple of 8, on y axis (because one DDRAM byte are 8 y-pixels (page), per column) + * + * @param disp_drv + * @param area + */ +void DisplayRMEC3V11::rounder_cb(lv_disp_drv_t *disp_drv, lv_area_t *area) { + area->y1 = area->y1 - (area->y1 % 8); // Round down to neares multiple of 8 + area->y2 = (area->y2 + 8) - (area->y2 % 8) - 1; // Round up to nearest multiple of 8, minus -1 +} + +/** + * @brief Flush display buffer to display controller. + * + * @param disp_drv + * @param area + * @param t_color_p + */ +void DisplayRMEC3V11::flush_cb(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *t_color_p) { + size_t cols = (area->x2 - area->x1) + 1; // Num of columns for this flush area + uint8_t page_pixel_buffer[cols]; // Store 8 y pixel (LSB = top) for area of x + uint8_t y_shift = 0; + + st75256.send_ctrl(0x30); // EXT1=0, EXT0=0 + st75256.set_column_address(area->x1, area->x2); + st75256.set_page_address(area->y1 / 8, (area->y2 - 7) / 8); // ATTENTION: Will only work with a correct rounder_cb() + st75256.send_ctrl(0b01011100); // [10] Write Data + + for (size_t y = area->y1; y <= area->y2; y++) { + for (size_t x = 0; x < cols; x++) { + t_color_p->full ? page_pixel_buffer[x] &= ~(1 << y_shift) : page_pixel_buffer[x] |= (1 << y_shift); + t_color_p++; + } + if (y_shift < 7) { + y_shift++; + continue; + } + st75256.send_data(page_pixel_buffer, cols); + y_shift = 0; + } + lv_disp_flush_ready(disp_drv); +} + +void DisplayRMEC3V11::set_undocked() { + v_led_power->set(LED_off); + v_led_charge->set(LED_off); + bar_bat->set_range(BATT_ABS_MIN, BATT_ABS_MAX); + bar_bat->bar_label = FA_SYMBOL_BATTERY " %d V"; + last_docked_state_ = false; +} + +void DisplayRMEC3V11::mainScreen() { + lv_obj_clean(lv_scr_act()); + + // On the left side of the status bar we do have functional status symbols like heartbeat and ROS + v_led_ros = new lvgl::WidgetLedSymbol(FA_SYMBOL_ROS, LV_ALIGN_TOP_LEFT, 0, -1); // Leftmost + + // In the middle, we do have emergencies + v_led_emergency = new lvgl::WidgetLedSymbol(FA_SYMBOL_EMERGENCY, LV_ALIGN_TOP_MID, 0, -1); // Centered + v_led_emergency_wheel = new lvgl::WidgetLedSymbol(FA_SYMBOL_EMERGENCY_WHEEL, LV_ALIGN_TOP_MID, -14 - TOP_STATUS_BAR_GAP_PX - 2, -1); // Left of centered + // TODO: if next level LL proto + // v_led_heartbeat = new WidgetLedSymbol(FA_SYMBOL_HEARTBEAT, LV_ALIGN_TOP_MID, -(2 * 14) - (2 * TOP_STATUS_BAR_GAP_PX) - 2, -1); // 2nd left of centered + v_led_emergency_stop = new lvgl::WidgetLedSymbol(FA_SYMBOL_EMERGENCY_STOP, LV_ALIGN_TOP_MID, 14 + TOP_STATUS_BAR_GAP_PX, -1); // Right of centered + + // On the right side, mowing status like, charging, docking, ... + v_led_power = new lvgl::WidgetLedSymbol(FA_SYMBOL_PLUG, LV_ALIGN_OUT_TOP_RIGHT, (ST75256_DISPLAY_WIDTH - (1 * 14)), -1); // Rightmost + v_led_charge = new lvgl::WidgetLedSymbol(FA_SYMBOL_CHARGE, LV_ALIGN_OUT_TOP_RIGHT, (ST75256_DISPLAY_WIDTH - (2 * 14) - TOP_STATUS_BAR_GAP_PX), -1); + v_led_gps = new lvgl::WidgetLedSymbol(FA_SYMBOL_GPS1, LV_ALIGN_OUT_TOP_RIGHT, (ST75256_DISPLAY_WIDTH - (3 * 14) - (2 * TOP_STATUS_BAR_GAP_PX)), -1); + v_led_bat = new lvgl::WidgetLedSymbol(FA_SYMBOL_BATTERY, LV_ALIGN_OUT_TOP_RIGHT, (ST75256_DISPLAY_WIDTH - (4 * 14) - (3 * TOP_STATUS_BAR_GAP_PX)), -1); + + // GPS & Battery bars + bar_gps = new lvgl::WidgetBar(FA_SYMBOL_GPS2 " %d %%", LV_ALIGN_TOP_LEFT, 0, 19, (ST75256_DISPLAY_WIDTH / 2) - 1, 21); + bar_bat = new lvgl::WidgetBar(FA_SYMBOL_BATTERY " %d %%", LV_ALIGN_TOP_RIGHT, 0, 19, (ST75256_DISPLAY_WIDTH / 2) - 1, 21); + + // Mower status text (ticker) + text_ticker_status = new lvgl::WidgetTextTicker(LV_ALIGN_TOP_MID, 0, 42, ST75256_DISPLAY_WIDTH, 40); + + // Set defined state + set_undocked(); + bar_bat->set_value(BATT_ABS_MIN); + + main_screen_active = true; +} + +void DisplayRMEC3V11::anim_x_cb(void *var, int32_t v) { + lv_obj_set_x((lv_obj_t *)var, v); +} + +void DisplayRMEC3V11::openmower_anim_delay() { + delay(1000); + mainScreen(); +} + +// Probably static void +void DisplayRMEC3V11::openmower_anim() { + const uint8_t wm_start_offset = 20; + main_screen_active = false; + + lv_obj_clean(lv_scr_act()); + + // Mower Logo - img_logo + lv_obj_t *img_logo = lv_img_create(lv_scr_act()); + lv_img_set_src(img_logo, &OM_Logo_120x54x1); + lv_obj_align(img_logo, LV_ALIGN_RIGHT_MID, 0, 0); + + // OpenMower Wordmark - img_wordmark + lv_obj_t *img_wordmark = lv_img_create(lv_scr_act()); + lv_img_set_src(img_wordmark, &OM_Wordmark_240x35x1); + lv_obj_align(img_wordmark, LV_ALIGN_RIGHT_MID, OM_Wordmark_240x35x1.header.w + wm_start_offset, 0); + + // Anim of logo + lv_anim_t al; + lv_anim_init(&al); + lv_anim_set_var(&al, img_logo); + lv_anim_set_values(&al, 0, -ST75256_DISPLAY_WIDTH); + lv_anim_set_time(&al, 1800); + lv_anim_set_delay(&al, 1200); + lv_anim_set_exec_cb(&al, (lv_anim_exec_xcb_t)anim_x_cb); + lv_anim_set_path_cb(&al, lv_anim_path_ease_in); + // lv_anim_set_repeat_count(&al, LV_ANIM_REPEAT_INFINITE); + lv_anim_start(&al); + + // Anim of Wordmark + lv_anim_t aw; + lv_anim_init(&aw); + lv_anim_set_var(&aw, img_wordmark); + lv_anim_set_values(&aw, OM_Wordmark_240x35x1.header.w + wm_start_offset, -((ST75256_DISPLAY_WIDTH - OM_Wordmark_240x35x1.header.w) / 2)); + lv_anim_set_time(&aw, 1800); + lv_anim_set_delay(&aw, 1900); + lv_anim_set_exec_cb(&aw, (lv_anim_exec_xcb_t)anim_x_cb); + lv_anim_set_path_cb(&aw, lv_anim_path_ease_in_out); + lv_anim_set_deleted_cb(&aw, (lv_anim_deleted_cb_t)openmower_anim_delay); // Set a callback to indicate when the animation is deleted (idle) + // lv_anim_set_repeat_count(&aw, LV_ANIM_REPEAT_INFINITE); + lv_anim_start(&aw); +} + +void DisplayRMEC3V11::loop_low_prio() { + AbstractDisplay::loop_low_prio(); + + // LEDs & Buttons to main status screen conversion + if (!main_screen_active) + return; // Still in OM anim + + char status_ticker[STATUS_TICKER_LENGTH] = ""; + + // GPS + if (subscription::recv_hl_state.gps_quality < 25) + v_led_gps->set(LED_on); + else if (subscription::recv_hl_state.gps_quality < 50) + v_led_gps->set(LED_blink_fast); + else if (subscription::recv_hl_state.gps_quality < 75) + v_led_gps->set(LED_blink_slow); + else + v_led_gps->set(LED_off); + bar_gps->set_value(subscription::recv_hl_state.gps_quality); + + // V-Battery vLED + if (subscription::recv_ll_status.v_battery >= (BATT_EMPTY + 2.0f)) + v_led_bat->set(LED_off); + else + v_led_bat->set(LED_on); + + // Docked (Plug) & Charging (charge-station) + if (subscription::recv_ll_status.v_charge > 20.0f) // Docked + { + if (!last_docked_state_) { + v_led_power->set(LED_on); + bar_bat->set_range(100, 1100); + bar_bat->bar_label = FA_SYMBOL_CHARGE " %d mA"; + set_backlight(); + last_docked_state_ = true; + } + bar_bat->set_value(subscription::recv_ll_status.charging_current * 1000); + + if (subscription::recv_ll_status.charging_current < 0.15f) + v_led_charge->set(LED_off); + else if (subscription::recv_ll_status.charging_current >= 0.15f && subscription::recv_ll_status.charging_current <= 0.8f) + v_led_charge->set(LED_blink_slow); + else if (subscription::recv_ll_status.charging_current > 0.8f) + v_led_charge->set(LED_blink_fast); + } else // Undocked + { + if (last_docked_state_) { + set_undocked(); + } + bar_bat->set_value(subscription::recv_ll_status.v_battery); + } + + // HL Mode & SubMode + switch (subscription::recv_hl_state.current_mode & 0b111111) { + case HighLevelMode::MODE_IDLE: + v_led_ros->set(LED_on); + strncpy(status_ticker, "Idle", STATUS_TICKER_LENGTH); + break; + case HighLevelMode::MODE_AUTONOMOUS: + v_led_ros->set(LED_blink_slow); + if ((subscription::recv_hl_state.current_mode >> 6) & 0b01) + strncpy(status_ticker, "Docking", STATUS_TICKER_LENGTH); + else if ((subscription::recv_hl_state.current_mode >> 6) & 0b10) + strncpy(status_ticker, "Undocking", STATUS_TICKER_LENGTH); + else + strncpy(status_ticker, "Mowing", STATUS_TICKER_LENGTH); + break; + case HighLevelMode::MODE_RECORDING: + v_led_ros->set(LED_blink_fast); + if ((subscription::recv_hl_state.current_mode >> 6) & 0b01) + strncpy(status_ticker, "Record area outline", STATUS_TICKER_LENGTH); + else if ((subscription::recv_hl_state.current_mode >> 6) & 0b10) + strncpy(status_ticker, "Record obstacle", STATUS_TICKER_LENGTH); + break; + default: // We currently don't have a real "ROS Running" identifier. Let's use the current mode. + v_led_ros->set(LED_off); + strncpy(status_ticker, "Waiting for ROS...", STATUS_TICKER_LENGTH); + break; + } + + // ----- Most important text-states, last! ----- + + // Emergencies + static bool last_stop_button = false; + if (subscription::recv_ll_status.emergency_bitmask & LL_EMERGENCY_BITS_STOP) // Stop switch + { + v_led_emergency_stop->set(LED_blink_fast); + strncpy(status_ticker, EMERGENCY_CLEAR_TEXT, STATUS_TICKER_LENGTH); + + if (!last_stop_button) // Backlight on cover- open + set_backlight(); + last_stop_button = true; + } else { + v_led_emergency_stop->set(LED_off); + last_stop_button = false; + } + + if (subscription::recv_ll_status.emergency_bitmask & LL_EMERGENCY_BITS_LIFT) // Lifted or tilted + { + v_led_emergency_wheel->set(LED_blink_fast); + strncpy(status_ticker, EMERGENCY_CLEAR_TEXT, STATUS_TICKER_LENGTH); + } else + v_led_emergency_wheel->set(LED_off); + + if (subscription::recv_ll_status.emergency_bitmask & LL_EMERGENCY_BIT_LATCH) // Emergency latch (no LL heartbeat or emergency by ROS) + { + v_led_emergency->set(LED_blink_slow); + strncpy(status_ticker, EMERGENCY_CLEAR_TEXT, STATUS_TICKER_LENGTH); + } else + v_led_emergency->set(LED_off); + + // ----- Announcement ----- + switch (auto ann = get_anncmnt()) { + case AnncmntType::close_hatch: + sprintf(status_ticker, "Close hatch in %i sec.", ((anncmnt.timeout - millis()) / 1000) + 1); + break; + case AnncmntType::version: + sprintf(status_ticker, "Version %i", FIRMWARE_VERSION); + break; + default: + break; + } + + text_ticker_status->set_text(status_ticker); +} +} // namespace display +} // namespace yardforce + +yardforce::display::DisplayRMEC3V11 display(yardforce::display::AbstractDisplay::Config{.backlight_led_num = LED_NUM_BACKLIGHT}); \ No newline at end of file diff --git a/Firmware/CoverUI/YardForce/model/RM-EC3-V11/Display.hpp b/Firmware/CoverUI/YardForce/model/RM-EC3-V11/Display.hpp new file mode 100644 index 0000000..5878e43 --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/RM-EC3-V11/Display.hpp @@ -0,0 +1,68 @@ +/** + * @file Display_RM-EC3-V11.hpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce CoverUI JLX25664 display driver for NX100i OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.1 + * @date 2023-11-27 + * + * @copyright Copyright (c) 2023 + */ +#ifndef YARDFORCE_DISPLAY_RMEC3V11_HPP +#define YARDFORCE_DISPLAY_RMEC3V11_HPP + +#define ST75256_DISPLAY_WIDTH 256 +#define ST75256_DISPLAY_HEIGHT 64 + +// JLX25664G Tscyc min = 80ns = 12.5MHz +// ST32F401 = 84MHz / 8 = 10.5MHz +#define ST75256_SPI_BAUDRATEPRESCALER SPI_BAUDRATEPRESCALER_8 + +#define LVGL_BUFFER_MULTIPLIER 10 +#define LVGL_TIMER_HANDLER_PERIOD_MS 10 // 10ms lv_timer_handler() soft period + +#define TOP_STATUS_BAR_GAP_PX 5 // Amount of (gap) pixels between top status-bar icons/symbols +#define EMERGENCY_CLEAR_TEXT "Emergency! Press [OK], close hatch and stay back, to clear emergency state." + +// clang-format off +#include "../../include/ABC_Display.hpp" +#include "../../include/ST75256.hpp" +#include +#include "../../include/WidgetBar.hpp" +#include "../../include/WidgetLedSymbol.hpp" +#include "../../include/WidgetTextTicker.hpp" +#include "../../include/subscription.h" +// clang-format on + +#define BACKLIGHT_TIMEOUT_MS 120000 // 2 minutes +#define STATUS_TICKER_LENGTH 100 // TODO + +namespace yardforce { +namespace display { +class DisplayRMEC3V11 : public AbstractDisplay { + public: + DisplayRMEC3V11(Config t_config) : AbstractDisplay(t_config) {}; + + bool init() override; // Init GPIOs, comms, as well as LVGL & display + + void loop_low_prio() override; // Low priority loop for display changes. Also does lv_timer_handler() and subscription + + void openmower_anim(); + static void openmower_anim_delay(); + static void mainScreen(); + + protected: + lv_disp_drv_t lv_disp_drv; // LVGL driver + + static void rounder_cb(lv_disp_drv_t *disp_drv, lv_area_t *area); + static void flush_cb(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *t_color_p); + + static void anim_x_cb(void *var, int32_t v); + + static void set_undocked(); +}; +} // namespace display +} // namespace yardforce + +extern yardforce::display::DisplayRMEC3V11 display; + +#endif // YARDFORCE_DISPLAY_RMEC3V11_HPP \ No newline at end of file diff --git a/Firmware/CoverUI/YardForce/model/RM-EC3-V11/LEDcontrol.hpp b/Firmware/CoverUI/YardForce/model/RM-EC3-V11/LEDcontrol.hpp new file mode 100644 index 0000000..ceaa9fc --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/RM-EC3-V11/LEDcontrol.hpp @@ -0,0 +1,98 @@ +/** + * @file RM-EC3-V11/LEDcontrol.hpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce RM-EC3-V11 LED controller model for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.1 + * @date 2024-10-02 + * + * @copyright Copyright (c) 2023, 2024 + * + */ +#ifndef YARDFORCE_RMEC3V11_LEDCONTROL_HPP +#define YARDFORCE_RMEC3V11_LEDCONTROL_HPP + +#include + +#include "../../include/LEDcontrol.hpp" + +#define LED_ANIMATE_DELAY 50 // Delay (ms) between LEDs of animate sequence (boot/power-on anim) + +// These constants should be declared i.e. in assembly.cpp +extern const unsigned int kNumFrontLeds; +extern const unsigned int kLedAnimOrder[]; + +class LEDcontrolRMEC3V11 : public LEDcontrol { + public: + LEDcontrolRMEC3V11(const uint32_t *t_kPinByLedNumPtr, const size_t t_kNumLeds, void (LEDcontrol::*t_set_base10_leds_callback)(char digit)) : LEDcontrol(t_kPinByLedNumPtr, t_kNumLeds, t_set_base10_leds_callback) {}; + + /** + * @brief Animate sequence handler. Has to be started by sequence_start() + */ + void sequence_animate_handler() override { + uint16_t step = seq_get_next_step_(LED_ANIMATE_DELAY); // Animation sequence runs in 15ms steps + + if (step == 0) // Next sequence step not reached now + return; + else if (step >= 1 && step <= kNumFrontLeds) { // LED on + set(kLedAnimOrder[step - 1], LED_state::LED_on, false); + return; + } else if (step >= (kNumFrontLeds + 1) && step <= (2 * kNumFrontLeds)) { // LED off + set(kLedAnimOrder[step - kNumFrontLeds - 1], LED_state::LED_off, false); + return; + } else { + seq_start_tick_ = 0; // Sequence end + set(led_states_bin_); // Restore states + return; + } + } + + void show_countdown_state(unsigned int sec, LED_state state) { + unsigned int sec_left = 5 - sec; + + for (size_t i = 1; i <= 4; i++) { + uint8_t led_num = 18 - i; + if (sec_left >= i) // Remaining secs is greater than this LED + { + set(led_num, state, false); + } else { + set(led_num, LED_off, false); + force_off(led_num, true); + } + } + }; + + /** + * @brief Countdown LED animation handler + */ + void sequence_countdown_handler() { + uint16_t step = seq_get_next_step_(100); // Animation sequence run in 1000ms steps + + if (step == 0) // Next sequence step not reached now + return; + else if (step == 1 || step == 11 || step == 21 || step == 31 || step == 41) { + show_countdown_state(((step - 1) / 10) + 1, LED_blink_fast); + return; + } else if (step < 41) { + return; + } else { + seq_start_tick_ = 0; // Sequence end + set(led_states_bin_); // Restore states + for (size_t i = 1; i <= 4; i++) + force_off(18 - i, false); + return; + } + } + + /** + * @brief A quick boot/power-on animation, also used as jammed button indicator + * + * @return unsigned int ms how long it will take to play + */ + unsigned int boot_animation() // A short boot animation which return the amount of ms it will take + { + sequence_start(&LEDcontrol::sequence_animate_handler); + return ((kNumFrontLeds + 1) * LED_ANIMATE_DELAY); + } +}; + +#endif // YARDFORCE_RMEC3V11_LEDCONTROL_HPP diff --git a/Firmware/CoverUI/YardForce/model/RM-EC3-V11/assembly.cpp b/Firmware/CoverUI/YardForce/model/RM-EC3-V11/assembly.cpp new file mode 100644 index 0000000..574f694 --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/RM-EC3-V11/assembly.cpp @@ -0,0 +1,144 @@ +/** + * @file RM-EC3-V11/assembly.cpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce RM-EC3-V1.1 CoverUI Assembly for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.1 + * @date 2024-10-02 + * + * @copyright Copyright (c) 2024 + * + */ +#include "assembly.hpp" + +#include "../../include/Emergency.hpp" +#include "Display.hpp" + +// ----- LEDs ----- + +const uint32_t kPinByLedNum[] = { + // Order derived from LowLevel "enum LED_id" + // C500 + // Use LED num Original Alternative + LED_PIN_NC, // 0 + LED_PIN_NC, // 1 + LED_PIN_NC, // 2 + LED_PIN_NC, // 3 + LED_PIN_NC, // 4 SUN + LED_PIN_NC, // 5 SAT + LED_PIN_NC, // 6 FRI + LED_PIN_NC, // 7 THU + LED_PIN_NC, // 8 WED + LED_PIN_NC, // 9 TUE + LED_PIN_NC, // 10 MON + LED_PIN_NC, // 11 + LED_PIN_S2, // 12 digit 5 + LED_PIN_S1, // 13 digit 4 + LED_PIN_NC, // 14 8HR digit 3 + LED_PIN_NC, // 15 6HR digit 2 + LED_PIN_NC, // 16 4HR digit 1 + LED_PIN_NC, // 17 2HR digit 0 + LED_PIN_NC, // 18 + LED_PIN_SETUP, // 19 + LED_PIN_BACKLIGHT // 20 +}; + +const unsigned int kLedAnimOrder[] = {13, 19, 12}; +const unsigned int kNumFrontLeds = sizeof(kLedAnimOrder) / sizeof(unsigned int); + +// Main LED controller object +LEDcontrolRMEC3V11 leds(kPinByLedNum, sizeof(kPinByLedNum) / sizeof(uint32_t), &LEDcontrol::set_base10_leds); + +// ----- Buttons ----- + +// Map logic button number to pin. Use the same order as in OM FW so that they get scanned in a comparable order! +const std::map kBtnDefByButtonNumMap = { + {BTN_HOME_NUM, {BTN_HOME_PIN, -1}}, + {BTN_PLAY_NUM, {BTN_PLAY_PIN, -1}}, + {BTN_S1_NUM, {BTN_S1_PIN, LED_NUM_S1}}, + {BTN_S2_NUM, {BTN_S2_PIN, LED_NUM_S2}}, + {BTN_SETUP_NUM, {BTN_SETUP_PIN, 19}}, + {BTN_MENU_NUM, {BTN_MENU_PIN, -1}}, + {BTN_1_NUM, {BTN_1_PIN, -1}}, + {BTN_2_NUM, {BTN_2_PIN, -1}}, + {BTN_3_NUM, {BTN_3_PIN, -1}}, + {BTN_4_NUM, {BTN_4_PIN, -1}}, + {BTN_5_NUM, {BTN_5_PIN, -1}}, + {BTN_6_NUM, {BTN_6_PIN, -1}}, + {BTN_7_NUM, {BTN_7_PIN, -1}}, + {BTN_8_NUM, {BTN_8_PIN, -1}}, + {BTN_9_NUM, {BTN_9_PIN, -1}}, + {BTN_BACK_NUM, {BTN_BACK_PIN, -1}}, + {BTN_0_NUM, {BTN_0_PIN, -1}}, + {BTN_OK_NUM, {BTN_OK_PIN, -1}}}; + +/** + * @brief Check if one of the internal button functionality got pressed and do it's function. + * MENU + 0 = Display FW version + * MENU + BACK = LED animation + */ +void ButtonsRMEC3V11::handle_sys_req() { + if (!is_pressed(BTN_MENU_NUM)) + return; + + if (is_pressed(BTN_BACK_NUM)) + display.openmower_anim(); + else if (is_pressed(BTN_0_NUM)) + display.start_anncmnt(2000, yardforce::display::AbstractDisplay::AnncmntType::version); + + return; +}; + +ButtonsRMEC3V11 buttons(kBtnDefByButtonNumMap); + +// ----- Emergency ----- + +const Emergency::PinStateDef kEmergencyPinStateDefs[] = { +#ifdef MOD_HALL + {PIN_HALL1, INPUT_PULLUP, Emergency_state::Emergency_lift1}, + {PIN_HALL2, INPUT_PULLUP, Emergency_state::Emergency_lift1}, + {PIN_HALL3, INPUT_PULLUP, Emergency_state::Emergency_lift2}, + {PIN_HALL4, INPUT_PULLUP, Emergency_state::Emergency_lift2}, +#endif +#ifdef MOD_STOP + {PIN_STOP1, INPUT_PULLUP, Emergency_state::Emergency_stop1}, + {PIN_STOP2, INPUT_PULLUP, Emergency_state::Emergency_stop2}, +#endif +}; + +Emergency emergency(kEmergencyPinStateDefs, sizeof(kEmergencyPinStateDefs) / sizeof(Emergency::PinStateDef)); + +// ----- Hatch ----- + +unsigned int HatchRMEC3V11::handle_button(unsigned int button_id, unsigned int press_cnt) { + // If backlight is off, skip first button press + if (display.check_backlight() == LED_off) { + display.set_backlight(); + return 0; // Skip handling of first button-press if backlight was off + } + display.set_backlight(); + + // Clear emergency = Enter (OK) button + if (button_id == BTN_OK_NUM) { + display.start_anncmnt(4000, yardforce::display::AbstractDisplay::AnncmntType::close_hatch); + queue_button(BTN_LOCK_NUM, 2, 4500); // Send long-press Lock button in 4.5 sec + return 0; // Don't return button now (hatch is still open) + } + + // Play & Home button + if (button_id == BTN_HOME_NUM || button_id == BTN_PLAY_NUM) { + display.start_anncmnt(4000, yardforce::display::AbstractDisplay::AnncmntType::close_hatch); + queue_button(BTN_LOCK_NUM, 2, 4500); // Send long-press Lock button in 4.5 sec + queue_button(button_id, 0, 5000); + return 0; // Don't return button now (hatch is still open) + } + + if (button_id == BTN_1_NUM) + return BTN_MON_NUM; // Volume up + + if (button_id == BTN_2_NUM) + return BTN_TUE_NUM; // Volume down + + return button_id; +} + +HatchRMEC3V11 hatch; diff --git a/Firmware/CoverUI/YardForce/model/RM-EC3-V11/assembly.hpp b/Firmware/CoverUI/YardForce/model/RM-EC3-V11/assembly.hpp new file mode 100644 index 0000000..667c069 --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/RM-EC3-V11/assembly.hpp @@ -0,0 +1,93 @@ +/** + * @file RM-EC3-V11/assembly.hpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce RM-EC3-V1.1 CoverUI Assembly for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.1 + * @date 2024-10-01 + * + * @copyright Copyright (c) 2024 + * + */ +#ifndef YARDFORCE_MDL_RMEC3V11_ASSEMBLY_HPP +#define YARDFORCE_MDL_RMEC3V11_ASSEMBLY_HPP + +#include "../../include/Buttons.hpp" +#include "../../include/main.h" +#include "LEDcontrol.hpp" + +// FIXME: AbstractDisplay depends on leds +extern LEDcontrolRMEC3V11 leds; +#include "Display.hpp" + +#ifdef MOD_EMERGENCY +#include "../../include/Emergency.hpp" +#endif + +// ***** LEDs ***** + +// 1st row: Lifted, Wire (WLAN), Battery empty, Charge +#define LED_PIN_S1 PC4 +#define LED_PIN_SETUP PA1 +#define LED_PIN_S2 PC5 +#define LED_PIN_BACKLIGHT PA8 +// Backside +#define LED_NUM_BACKLIGHT 20 + +// ***** Buttons ***** + +#define BTN_S1_PIN PC14 +#define BTN_S2_PIN PC13 +#define BTN_PLAY_PIN PC7 +#define BTN_HOME_PIN PC2 +#define BTN_SETUP_PIN PA0 + +#define BTN_MENU_PIN PB4 + +#define BTN_1_PIN PB8 +#define BTN_2_PIN PB5 +#define BTN_3_PIN PB3 +#define BTN_4_PIN PD2 +#define BTN_5_PIN PC12 +#define BTN_6_PIN PC11 +#define BTN_7_PIN PC10 +#define BTN_8_PIN PB14 +#define BTN_9_PIN PC6 +#define BTN_BACK_PIN PA15 +#define BTN_0_PIN PB9 +#define BTN_OK_PIN PB13 + +// ***** Emergency ***** + +#define PIN_STOP1 PC15 +#define PIN_STOP2 PB6 + +#define PIN_HALL1 PB15 +#define PIN_HALL2 PC0 +#define PIN_HALL3 PC8 +#define PIN_HALL4 PC9 + +class ButtonsRMEC3V11 : public Buttons { + public: + ButtonsRMEC3V11(const std::map &t_kBtnDefByNumMap) : Buttons(t_kBtnDefByNumMap) {}; + + void handle_sys_req() override; +}; +extern ButtonsRMEC3V11 buttons; + +// ----- Hatch ----- + +#include "../../include/ABC_Hatch.hpp" + +class HatchRMEC3V11 : public AbstractHatch { + public: + unsigned int handle_button(unsigned int button_id, unsigned int press_cnt); +}; + +extern HatchRMEC3V11 hatch; + +// ----- LowLevel Serial ----- + +#define UART_LL_RX PA3 +#define UART_LL_TX PA2 + +#endif // YARDFORCE_MDL_RMEC3V11_ASSEMBLY_HPP diff --git a/Firmware/CoverUI/YardForce/model/RM-ECOW-V100/assembly.cpp b/Firmware/CoverUI/YardForce/model/RM-ECOW-V100/assembly.cpp new file mode 100644 index 0000000..9459ab0 --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/RM-ECOW-V100/assembly.cpp @@ -0,0 +1,104 @@ +/** + * @file RM-ECOW-V100/assembly.cpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce RM-ECOW-V1.0.0 CoverUI Assembly for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.1 + * @date 2024-10-01 + * + * @copyright Copyright (c) 2024 + * + */ +#include "assembly.hpp" + +#include "../../include/Emergency.hpp" + +// ----- LEDs ----- + +const uint32_t kPinByLedNum[] = { + // Order derived from LowLevel "enum LED_id" + // C500 + // Use LED num Original Alternative + LED_PIN_CHARGE, // 0 + LED_PIN_BAT, // 1 + LED_PIN_WIRE, // 2 + LED_PIN_LIFTED, // 3 + LED_PIN_NC, // 4 SUN + LED_PIN_NC, // 5 SAT + LED_PIN_NC, // 6 FRI + LED_PIN_NC, // 7 THU + LED_PIN_NC, // 8 WED + LED_PIN_NC, // 9 TUE + LED_PIN_NC, // 10 MON + LED_PIN_LOCK, // 11 + LED_PIN_S2, // 12 digit 5 + LED_PIN_S1, // 13 digit 4 + LED_PIN_10H, // 14 8HR digit 3 + LED_PIN_8H, // 15 6HR digit 2 + LED_PIN_6H, // 16 4HR digit 1 + LED_PIN_4H, // 17 2HR digit 0 + LED_PIN_REAR, // 18 + LED_PIN_SETUP // 19 +}; + +const unsigned int kLedAnimOrder[] = {3, 2, 1, 0, 17, 16, 15, 14, 13, 19, 12, 11}; +const unsigned int kNumFrontLeds = sizeof(kLedAnimOrder) / sizeof(unsigned int); + +// Numeric (base10) representation of LEDs. +// I.e. Digit 0 = 4H(0), ... Then S2(5) + S1(4) = 9. +// +// |------ Bit 5 = 4H(0) +// ||----- Bit 4 = 6H(1) +// |||---- Bit 3 = 8H(2) +// ||||--- Bit 2 = 10H(3) +// |||||-- Bit 1 = S1(4) +// ||||||- Bit 0 = S2(5) +const uint8_t kBase10Leds[] = { + 0b100000, // = 0 + 0b010000, + 0b001000, + 0b000100, + 0b000010, + 0b000001, + 0b010001, + 0b001001, + 0b000101, + 0b000011}; // = 9 + +// Main LED controller object +LEDcontrolRMECOWV1x leds(kPinByLedNum, sizeof(kPinByLedNum) / sizeof(uint32_t), &LEDcontrol::set_base10_leds); + +// ----- Buttons ----- + +// Map logic button number to pin. Use the same order as in OM FW so that they get scanned in a comparable order! +const std::map kBtnDefByButtonNumMap = { + {BTN_HOME_NUM, {BTN_HOME_PIN, BTN_HAS_NO_LED}}, + {BTN_PLAY_NUM, {BTN_PLAY_PIN, BTN_HAS_NO_LED}}, + {BTN_S1_NUM, {BTN_S1_PIN, LED_NUM_S1}}, + {BTN_S2_NUM, {BTN_S2_PIN, LED_NUM_S2}}, + {BTN_LOCK_NUM, {BTN_LOCK_PIN, 11}}, + {BTN_4H_NUM, {BTN_4H_PIN, 17}}, + {BTN_6H_NUM, {BTN_6H_PIN, 16}}, + {BTN_8H_NUM, {BTN_8H_PIN, 15}}, + {BTN_10H_NUM, {BTN_10H_PIN, 14}}, + {BTN_SETUP_NUM, {BTN_SETUP_PIN, 19}}}; + +ButtonsRMECOWV100 buttons(kBtnDefByButtonNumMap); + +// ----- Emergency ----- +const Emergency::PinStateDef kEmergencyPinStateDefs[] = { +#ifdef MOD_HALL + {PIN_HALL1, INPUT_PULLUP, Emergency_state::Emergency_lift1}, + {PIN_HALL2, INPUT_PULLUP, Emergency_state::Emergency_lift1}, + {PIN_HALL3, INPUT_PULLUP, Emergency_state::Emergency_lift2}, + {PIN_HALL4, INPUT_PULLUP, Emergency_state::Emergency_lift2}, +#endif +#ifdef MOD_STOP + {PIN_STOP_JP5, INPUT_PULLUP, Emergency_state::Emergency_stop1}, + {PIN_STOP_JP6, INPUT_PULLUP, Emergency_state::Emergency_stop2} +#endif +}; + +Emergency emergency(kEmergencyPinStateDefs, sizeof(kEmergencyPinStateDefs) / sizeof(Emergency::PinStateDef)); + +// ----- Hatch ----- +HatchRMECOWV1x hatch; diff --git a/Firmware/CoverUI/YardForce/model/RM-ECOW-V100/assembly.hpp b/Firmware/CoverUI/YardForce/model/RM-ECOW-V100/assembly.hpp new file mode 100644 index 0000000..018752c --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/RM-ECOW-V100/assembly.hpp @@ -0,0 +1,93 @@ +/** + * @file RM-ECOW-V100/assembly.hpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce RM-ECOW-V1.0.0 CoverUI Assembly for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.1 + * @date 2024-10-01 + * + * @copyright Copyright (c) 2024 + * + */ +#ifndef YARDFORCE_MDL_RMECOWV100_ASSEMBLY_HPP +#define YARDFORCE_MDL_RMECOWV100_ASSEMBLY_HPP + +#include "../../include/Buttons.hpp" +#include "../../include/main.h" +#include "../RM-ECOW-V1x/LEDcontrol.hpp" + +#ifdef MOD_EMERGENCY +#include "../../include/Emergency.hpp" +#endif + +// ***** LEDs ***** +// 1st row: Lifted, Wire (WLAN), Battery empty, Charge +#define LED_PIN_LIFTED PB11 +#define LED_PIN_WIRE PB12 +#define LED_PIN_BAT PB14 +#define LED_PIN_CHARGE PB15 +// 2nd row: 4, 6, 8, 10HR +#define LED_PIN_4H PA7 +#define LED_PIN_6H PC5 +#define LED_PIN_8H PB1 +#define LED_PIN_10H PB10 +// 3rd row: S1, Setup (WLAN), S2 +#define LED_PIN_S1 PA5 +#define LED_PIN_SETUP PF5 +#define LED_PIN_S2 PC7 +// 4th row: Lock +#define LED_PIN_LOCK PA1 +// Backside +#define LED_PIN_REAR PB13 + +// ***** Buttons ***** +#define BTN_S1_PIN PA4 +#define BTN_S2_PIN PC6 +#define BTN_LOCK_PIN PA0 +#define BTN_4H_PIN PA6 +#define BTN_6H_PIN PC4 +#define BTN_8H_PIN PB0 +#define BTN_10H_PIN PB2 +#define BTN_PLAY_PIN PC11 +#define BTN_HOME_PIN PC12 +#define BTN_SETUP_PIN PF4 + +// ***** Emergency ***** +#define PIN_STOP_JP5 PC10 +#define PIN_STOP_JP6 PA15 + +#define PIN_HALL1 PA8 // LIFT +#define PIN_HALL2 PF6 // LIFTX +#define PIN_HALL3 PA12 // LBUMP +#define PIN_HALL4 PA11 // RBUMP + +extern LEDcontrolRMECOWV1x leds; + +class ButtonsRMECOWV100 : public Buttons { + public: + ButtonsRMECOWV100(const std::map &t_kBtnDefByNumMap) : Buttons(t_kBtnDefByNumMap) {}; + + /** + * @brief Check if one of the internal button functionality got pressed and do it's function. + * SETUP + 4H = Display FW version + * SETUP + 10H = LED animation + */ + void handle_sys_req() override { + if (!is_pressed(BTN_SETUP_NUM)) + return; + + if (is_pressed(BTN_10H_NUM)) + leds.sequence_start(&LEDcontrol::sequence_animate_handler); + else if (is_pressed(BTN_4H_NUM)) + leds.show_num(FIRMWARE_VERSION); + return; + }; +}; +extern ButtonsRMECOWV100 buttons; + +#include "../RM-ECOW-V1x/Hatch.hpp" + +// LowLevel Serial Pins +#define UART_LL_RX PA3 +#define UART_LL_TX PA2 + +#endif // YARDFORCE_MDL_RMECOWV100_ASSEMBLY_HPP diff --git a/Firmware/CoverUI/YardForce/model/RM-ECOW-V110/assembly.cpp b/Firmware/CoverUI/YardForce/model/RM-ECOW-V110/assembly.cpp new file mode 100644 index 0000000..6776dc1 --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/RM-ECOW-V110/assembly.cpp @@ -0,0 +1,103 @@ +/** + * @file RM-ECOW-V100/assembly.cpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce RM-ECOW-V1.0.0 CoverUI Assembly for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.1 + * @date 2024-10-01 + * + * @copyright Copyright (c) 2024 + * + */ +#include "assembly.hpp" + +#include "../../include/Emergency.hpp" + +// ----- LEDs ----- + +const uint32_t kPinByLedNum[] = { + // Order derived from LowLevel "enum LED_id" + // C500 + // Use LED num Original Alternative + LED_PIN_CHARGE, // 0 + LED_PIN_BAT, // 1 + LED_PIN_WIRE, // 2 + LED_PIN_LIFTED, // 3 + LED_PIN_NC, // 4 SUN + LED_PIN_NC, // 5 SAT + LED_PIN_NC, // 6 FRI + LED_PIN_NC, // 7 THU + LED_PIN_NC, // 8 WED + LED_PIN_NC, // 9 TUE + LED_PIN_NC, // 10 MON + LED_PIN_LOCK, // 11 + LED_PIN_S2, // 12 digit 5 + LED_PIN_S1, // 13 digit 4 + LED_PIN_10H, // 14 8HR digit 3 + LED_PIN_8H, // 15 6HR digit 2 + LED_PIN_6H, // 16 4HR digit 1 + LED_PIN_4H, // 17 2HR digit 0 + LED_PIN_REAR, // 18 +}; + +const unsigned int kLedAnimOrder[] = {3, 2, 1, 0, 17, 16, 15, 14, 13, 12, 11}; +const unsigned int kNumFrontLeds = sizeof(kLedAnimOrder) / sizeof(unsigned int); + +// Numeric (base10) representation of LEDs. +// I.e. Digit 0 = 4H(0), ... Then S2(5) + S1(4) = 9. +// +// |------ Bit 5 = 4H(0) +// ||----- Bit 4 = 6H(1) +// |||---- Bit 3 = 8H(2) +// ||||--- Bit 2 = 10H(3) +// |||||-- Bit 1 = S1(4) +// ||||||- Bit 0 = S2(5) +const uint8_t kBase10Leds[] = { + 0b100000, // = 0 + 0b010000, + 0b001000, + 0b000100, + 0b000010, + 0b000001, + 0b010001, + 0b001001, + 0b000101, + 0b000011}; // = 9 + +// Main LED controller object +LEDcontrolRMECOWV1x leds(kPinByLedNum, sizeof(kPinByLedNum) / sizeof(uint32_t), &LEDcontrol::set_base10_leds); + +// ----- Buttons ----- + +// Map logic button number to pin. Use the same order as in OM FW so that they get scanned in a comparable order! +const std::map kBtnDefByButtonNumMap = { + {BTN_HOME_NUM, {BTN_HOME_PIN, -1}}, + {BTN_PLAY_NUM, {BTN_PLAY_PIN, -1}}, + {BTN_S1_NUM, {BTN_S1_PIN, LED_NUM_S1}}, + {BTN_S2_NUM, {BTN_S2_PIN, LED_NUM_S2}}, + {BTN_LOCK_NUM, {BTN_LOCK_PIN, 11}}, + {BTN_4H_NUM, {BTN_4H_PIN, 17}}, + {BTN_6H_NUM, {BTN_6H_PIN, 16}}, + {BTN_8H_NUM, {BTN_8H_PIN, 15}}, + {BTN_10H_NUM, {BTN_10H_PIN, 14}} +}; + +ButtonsRMECOWV110 buttons(kBtnDefByButtonNumMap); + +// ----- Emergency ----- +const Emergency::PinStateDef kEmergencyPinStateDefs[] = { +#ifdef MOD_HALL + {PIN_HALL1, INPUT_PULLUP, Emergency_state::Emergency_lift1}, + {PIN_HALL2, INPUT_PULLUP, Emergency_state::Emergency_lift1}, + {PIN_HALL3, INPUT_PULLUP, Emergency_state::Emergency_lift2}, + {PIN_HALL4, INPUT_PULLUP, Emergency_state::Emergency_lift2}, +#endif +#ifdef MOD_STOP + {PIN_STOP_JP6, INPUT_PULLUP, Emergency_state::Emergency_stop1}, + {PIN_STOP_JP8, INPUT_PULLUP, Emergency_state::Emergency_stop2}, +#endif +}; + +Emergency emergency(kEmergencyPinStateDefs, sizeof(kEmergencyPinStateDefs) / sizeof(Emergency::PinStateDef)); + +// ----- Hatch ----- +HatchRMECOWV1x hatch; diff --git a/Firmware/CoverUI/YardForce/model/RM-ECOW-V110/assembly.hpp b/Firmware/CoverUI/YardForce/model/RM-ECOW-V110/assembly.hpp new file mode 100644 index 0000000..c119517 --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/RM-ECOW-V110/assembly.hpp @@ -0,0 +1,91 @@ +/** + * @file RM-ECOW-V110/assembly.hpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce RM-ECOW-V1.0.0 CoverUI Assembly for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.1 + * @date 2024-10-02 + * + * @copyright Copyright (c) 2024 + * + */ +#ifndef YARDFORCE_MDL_RMECOWV100_ASSEMBLY_HPP +#define YARDFORCE_MDL_RMECOWV100_ASSEMBLY_HPP + +#include "../../include/Buttons.hpp" +#include "../../include/main.h" +#include "../RM-ECOW-V1x/LEDcontrol.hpp" + +#ifdef MOD_EMERGENCY +#include "../../include/Emergency.hpp" +#endif + +// ***** LEDs ***** +// 1st row: Lifted, Wire (WLAN), Battery empty, Charge +#define LED_PIN_LIFTED PA0 +#define LED_PIN_WIRE PA4 +#define LED_PIN_BAT PC4 +#define LED_PIN_CHARGE PA6 +// 2nd row: 4, 6, 8, 10HR +#define LED_PIN_4H PA7 +#define LED_PIN_6H PC5 +#define LED_PIN_8H PB1 +#define LED_PIN_10H PB10 +// 3rd row: S1, Reserved for Setup (WLAN), S2 +#define LED_PIN_S1 PA5 +#define LED_PIN_S2 PC7 +// 4th row: Lock +#define LED_PIN_LOCK PA1 +// Backside +#define LED_PIN_REAR PB0 + +// ***** Buttons ***** +#define BTN_S1_PIN PB11 +#define BTN_S2_PIN PC6 +#define BTN_LOCK_PIN PB12 +#define BTN_4H_PIN PB14 +#define BTN_6H_PIN PB15 +#define BTN_8H_PIN PB13 +#define BTN_10H_PIN PB2 +#define BTN_PLAY_PIN PC11 +#define BTN_HOME_PIN PC12 + +// ***** Emergency ***** +#define PIN_STOP_JP6 PC10 +#define PIN_STOP_JP8 PA15 + +#define PIN_HALL1 PA8 // LIFT +#define PIN_HALL2 PA9 // LIFTX +#define PIN_HALL3 PC8 // LBUMP +#define PIN_HALL4 PC9 // RBUMP + +extern LEDcontrolRMECOWV1x leds; + +class ButtonsRMECOWV110 : public Buttons { + public: + ButtonsRMECOWV110(const std::map &t_kBtnDefByNumMap) : Buttons(t_kBtnDefByNumMap) {}; + + /** + * @brief Check if one of the "magic buttons" got pressed and do his function. + * LOCK + 4H = Display FW version + * LOCK + 10H = LED animation + */ + void handle_sys_req() override { + if (!is_pressed(BTN_LOCK_NUM)) + return; + + if (is_pressed(BTN_10H_NUM)) + leds.sequence_start(&LEDcontrol::sequence_animate_handler); + else if (is_pressed(BTN_4H_NUM)) + leds.show_num(FIRMWARE_VERSION); + return; + }; +}; +extern ButtonsRMECOWV110 buttons; + +#include "../RM-ECOW-V1x/Hatch.hpp" + +// LowLevel Serial Pins +#define UART_LL_RX PA3 +#define UART_LL_TX PA2 + +#endif // YARDFORCE_MDL_RMECOWV100_ASSEMBLY_HPP diff --git a/Firmware/CoverUI/YardForce/model/RM-ECOW-V1x/Hatch.hpp b/Firmware/CoverUI/YardForce/model/RM-ECOW-V1x/Hatch.hpp new file mode 100644 index 0000000..6bdda7d --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/RM-ECOW-V1x/Hatch.hpp @@ -0,0 +1,50 @@ +/** + * @file Hatch.hpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce RM-ECOW-V1.x CoverUI concrete- Hatch header for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.1 + * @date 2024-10-01 + * + * @copyright Copyright (c) 2024 + * + */ +#ifndef YARDFORCE_RMECOWV1X_HATCH_HPP +#define YARDFORCE_RMECOWV1X_HATCH_HPP + +#include + +#include "../../include/ABC_Hatch.hpp" +#include "../../include/main.h" + +class HatchRMECOWV1x : public AbstractHatch { + public: + unsigned int handle_button(unsigned int button_id, unsigned int press_cnt) { + if (button_id == BTN_LOCK_NUM && press_cnt >= 2) { + leds.sequence_start(&LEDcontrol::sequence_countdown_handler); // Close hatch countdown + queue_button(BTN_LOCK_NUM, 2, 4500); // Send long-press Lock button in 4.5 sec + return 0; // Don't return button now (hatch is still open) + } + + if (button_id == BTN_HOME_NUM || button_id == BTN_PLAY_NUM || button_id == BTN_S1_NUM || button_id == BTN_S2_NUM) { + if (press_cnt > 10 || true) // Be sure that the queue isn't filled with "wait for release" loops + { + leds.sequence_start(&LEDcontrol::sequence_countdown_handler); // Close hatch countdown + queue_button(BTN_LOCK_NUM, 2, 4500); // Send long-press Lock button in 4.5 sec + queue_button(button_id, 0, 5000); + return 0; // Don't return button now (hatch is still open) + } + } + + if (button_id == BTN_4H_NUM) + return BTN_MON_NUM; // Volume up + + if (button_id == BTN_6H_NUM) + return BTN_TUE_NUM; // Volume down + + return button_id; + } +}; + +extern HatchRMECOWV1x hatch; + +#endif // YARDFORCE_RMECOWV1X_HATCH_HPP diff --git a/Firmware/CoverUI/YardForce/model/RM-ECOW-V1x/LEDcontrol.hpp b/Firmware/CoverUI/YardForce/model/RM-ECOW-V1x/LEDcontrol.hpp new file mode 100644 index 0000000..d16f7b8 --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/RM-ECOW-V1x/LEDcontrol.hpp @@ -0,0 +1,115 @@ +/** + * @file RM-ECOW-V1x/LEDcontrol.hpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce RM-ECOW-V1x LED controller model for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.3 + * @date 2024-10-02 + * + * @copyright Copyright (c) 2023, 2024 + * + */ +#ifndef YARDFORCE_RMECOWV1X_LEDCONTROL_HPP +#define YARDFORCE_RMECOWV1X_LEDCONTROL_HPP + +#include + +#include "../../include/LEDcontrol.hpp" + +#define LED_ANIMATE_DELAY 20 // Delay (ms) between LEDs of animate sequence (boot/power-on anim) + +// These constants should be declared i.e. in assembly.cpp +extern const unsigned int kNumFrontLeds; +extern const unsigned int kLedAnimOrder[]; +extern const uint8_t kBase10Leds[]; + +class LEDcontrolRMECOWV1x : public LEDcontrol { + public: + LEDcontrolRMECOWV1x(const uint32_t *t_kPinByLedNumPtr, const size_t t_kNumLeds, void (LEDcontrol::*t_set_base10_leds_callback)(char digit)) : LEDcontrol(t_kPinByLedNumPtr, t_kNumLeds, t_set_base10_leds_callback) {}; + + void sequence_animate_handler() override { + uint16_t step = seq_get_next_step_(LED_ANIMATE_DELAY); // Animation sequence runs in 15ms steps + + if (step == 0) // Next sequence step not reached now + return; + else if (step >= 1 && step <= kNumFrontLeds) { // LED on + set(kLedAnimOrder[step - 1], LED_state::LED_on, false); + return; + } else if (step >= (kNumFrontLeds + 1) && step <= (2 * kNumFrontLeds)) { // LED off + set(kLedAnimOrder[step - kNumFrontLeds - 1], LED_state::LED_off, false); + return; + } else { + seq_start_tick_ = 0; // Sequence end + set(led_states_bin_); // Restore states + return; + } + } + + /** + * @brief Countdown LED animation handler + */ + void sequence_countdown_handler() override { + uint16_t step = seq_get_next_step_(100); // Animation sequence run in 1000ms steps + + if (step == 0) // Next sequence step not reached now + return; + else if (step == 1 || step == 11 || step == 21 || step == 31 || step == 41) { + show_countdown_state_(((step - 1) / 10) + 1, LED_blink_fast); + return; + } else if (step < 41) { + return; + } else { + seq_start_tick_ = 0; // Sequence end + set(led_states_bin_); // Restore states + for (size_t i = 1; i <= 4; i++) + force_off(18 - i, false); + return; + } + } + + /** + * @brief A quick boot/power-on animation, also used as jammed button indicator + * + * @return unsigned int ms how long it will take to play + */ + unsigned int boot_animation() override { + sequence_start(&LEDcontrol::sequence_animate_handler); + return ((kNumFrontLeds + 1) * LED_ANIMATE_DELAY); + } + + /** + * @brief Set base10 related LEDs for the given (numeric) character + * + * @param digit numeric character + */ + void set_base10_leds(char digit) override { + for (uint8_t bit = 0; bit <= 5; bit++) // We've 5 LEDs for base10 number representation + { + bool on = (kBase10Leds[digit - '0'] >> bit) & 0b1; + unsigned int led = bit + 12; + set(led, on ? LED_state::LED_on : LED_state::LED_off, false); + } + } + + void force_off_num_seq_leds(bool force) override { + force_off(LED_NUM_LIFTED, force); // Num change signalling LED + for (unsigned int i = 12; i <= 17; i++) // Base10 related LEDs + force_off(i, force); + } + + private: + void show_countdown_state_(unsigned int sec, LED_state state) { + unsigned int sec_left = 5 - sec; + + for (size_t i = 1; i <= 4; i++) { + uint8_t led_num = 18 - i; + if (sec_left >= i) { // Remaining secs is greater than this LED + set(led_num, state, true); // change_state = true because blink states get handled by timer and this need to be stored + } else { + set(led_num, LED_off, true); + force_off(led_num, true); + } + } + } +}; + +#endif // YARDFORCE_RMECOWV1X_LEDCONTROL_HPP diff --git a/Firmware/CoverUI/YardForce/model/SAxPRO/Display.cpp b/Firmware/CoverUI/YardForce/model/SAxPRO/Display.cpp new file mode 100644 index 0000000..861ba3a --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/SAxPRO/Display.cpp @@ -0,0 +1,328 @@ +/** + * @file Display_SAxPRO.cpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce CoverUI WYM240128K1 display driver class for SAxPRO OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.3 + * @date 2023-11-29 + * + * @copyright Copyright (c) 2023 + */ +#include "Display.hpp" + +#include + +#include "../../include/main.h" +#include "../../include/subscription.h" + +// C images +LV_IMG_DECLARE(OM_Logo_120x54x1); +LV_IMG_DECLARE(OM_Wordmark_240x35x1); + +namespace yardforce { +namespace display { +static controller::UC1698 uc1698; // Display controller + +// LVGL buffers +static lv_disp_draw_buf_t lv_disp_buf; +static lv_color_t lv_buf_1[UC1698_DISPLAY_WIDTH * LVGL_BUFFER_MULTIPLIER]; +static lv_color_t lv_buf_2[UC1698_DISPLAY_WIDTH * LVGL_BUFFER_MULTIPLIER]; + +// Status Screen Widgets +lvgl::WidgetLedSymbol *v_led_heartbeat, *v_led_ros, + *v_led_emergency_wheel, *v_led_emergency, *v_led_emergency_stop, + *v_led_bat, *v_led_gps, *v_led_charge, *v_led_power; +lvgl::WidgetBar *bar_gps, *bar_bat; +lvgl::WidgetTextTicker *text_ticker_status; + +bool main_screen_active = false; // Initialized and active +bool last_docked_state_; // true = docked, false = undocked + +/** + * @brief Rounder callback will round the display area to a multiple of 3, on x axis (RGB control lines of a pixel are connected to 3 monochrome pixels) + * + * @param disp_drv + * @param area + */ +void DisplaySAXPRO::rounder_cb(lv_disp_drv_t *disp_drv, lv_area_t *area) { + area->x1 = area->x1 - (area->x1 % 3); // Round down to neares multiple of 3 + area->x2 = (area->x2 + 3) - (area->x2 % 3) - 1; // Round up to nearest multiple of 3, minus -1 +} + +/** + * @brief Flush display buffer to display controller. + * Done via uc1698::drawPixelTriplet() method, which doesn't look as efficient like direct data write, + * but save the call to a further pixel-color-callback, as well as another buffer, which sounds more expensive. + * + * @param disp_drv + * @param area + * @param t_color_p + */ +void DisplaySAXPRO::flush_cb(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *t_color_p) { +#ifdef BENCHMARK + cycle_cnt_flush_cb_.start(); +#endif + size_t cols16b = ((area->x2 - area->x1) + 1) / 3; // Num of 16 bit columns for this flush area + size_t cols8b = cols16b * 2; + uint8_t row_buffer[cols8b]; // Buffer for one row 2*8-bit (every 16 bit col holds 3 pixel) + + uc1698.setWindowProgramArea(area->x1, area->x2, area->y1, area->y2); + + for (size_t y = area->y1; y <= area->y2; y++) { + for (size_t x = 0; x < cols8b; x += 2) // ATTENTION: Will only work with a correct rounder_cb()! + { + // Color is inverted (0 = black but pixel off / >0 = white but pixel on) but UC1698 "[16] Set Inverse Display" is set + row_buffer[x] = (0b11111000 * t_color_p->full | (0b00000111 * (t_color_p + 1)->full)); + row_buffer[x + 1] = (0b11100000 * (t_color_p + 1)->full) | (0b00011111 * (t_color_p + 2)->full); + t_color_p += 3; + } + uc1698.writeData(row_buffer, cols8b); + } + lv_disp_flush_ready(disp_drv); +#ifdef BENCHMARK + cycle_cnt_flush_cb_.stop(); +#endif +} + +void DisplaySAXPRO::set_undocked() { + v_led_power->set(LED_off); + v_led_charge->set(LED_off); + bar_bat->set_range(BATT_ABS_MIN, BATT_ABS_MAX); + bar_bat->bar_label = FA_SYMBOL_BATTERY " %d V"; + last_docked_state_ = false; +} + +void DisplaySAXPRO::mainScreen() { +#ifdef BENCHMARK + volatile auto perf_test = cycle_cnt_flush_cb_; +#endif + // On the left side of the status bar we do have functional status symbols like heartbeat and ROS + v_led_ros = new lvgl::WidgetLedSymbol(FA_SYMBOL_ROS, LV_ALIGN_TOP_LEFT, 0, 0); // Leftmost + + // In the middle, we do have emergencies + v_led_emergency = new lvgl::WidgetLedSymbol(FA_SYMBOL_EMERGENCY, LV_ALIGN_TOP_MID, 0, 0); // Centered + v_led_emergency_wheel = new lvgl::WidgetLedSymbol(FA_SYMBOL_EMERGENCY_WHEEL, LV_ALIGN_TOP_MID, -14 - TOP_STATUS_BAR_GAP_PX - 2, 0); // Left of centered + // TODO: if next level LL proto + // v_led_heartbeat = new WidgetLedSymbol(FA_SYMBOL_HEARTBEAT, LV_ALIGN_TOP_MID, -(2 * 14) - (2 * TOP_STATUS_BAR_GAP_PX) - 2, 0); // 2nd left of centered + v_led_emergency_stop = new lvgl::WidgetLedSymbol(FA_SYMBOL_EMERGENCY_STOP, LV_ALIGN_TOP_MID, 14 + TOP_STATUS_BAR_GAP_PX, 0); // Right of centered + + // On the right side, mowing status like, charging, docking, ... + v_led_power = new lvgl::WidgetLedSymbol(FA_SYMBOL_PLUG, LV_ALIGN_OUT_TOP_RIGHT, (240 - (1 * 14)), 0); // Rightmost + v_led_charge = new lvgl::WidgetLedSymbol(FA_SYMBOL_CHARGE, LV_ALIGN_OUT_TOP_RIGHT, (240 - (2 * 14) - TOP_STATUS_BAR_GAP_PX), 0); + v_led_gps = new lvgl::WidgetLedSymbol(FA_SYMBOL_GPS1, LV_ALIGN_OUT_TOP_RIGHT, (240 - (3 * 14) - (2 * TOP_STATUS_BAR_GAP_PX)), 0); + v_led_bat = new lvgl::WidgetLedSymbol(FA_SYMBOL_BATTERY, LV_ALIGN_OUT_TOP_RIGHT, (240 - (4 * 14) - (3 * TOP_STATUS_BAR_GAP_PX)), 0); + + // GPS & Battery bars + bar_gps = new lvgl::WidgetBar(FA_SYMBOL_GPS2 " %d %%", LV_ALIGN_TOP_MID, 0, 30, UC1698_DISPLAY_WIDTH, 21); + bar_bat = new lvgl::WidgetBar(FA_SYMBOL_BATTERY " %d %%", LV_ALIGN_TOP_MID, 0, 60, UC1698_DISPLAY_WIDTH, 21); + + // Mower status text (ticker) + text_ticker_status = new lvgl::WidgetTextTicker(LV_ALIGN_TOP_MID, 0, 95, UC1698_DISPLAY_WIDTH); + + // Set defined state + set_undocked(); + bar_bat->set_value(BATT_ABS_MIN); + + main_screen_active = true; +} + +void DisplaySAXPRO::anim_x_cb(void *var, int32_t v) { + lv_obj_set_x((lv_obj_t *)var, v); +} + +void DisplaySAXPRO::openmower_anim() { + main_screen_active = false; + + // Mower Logo - img_logo + lv_obj_t *img_logo = lv_img_create(lv_scr_act()); + lv_img_set_src(img_logo, &OM_Logo_120x54x1); + lv_obj_align(img_logo, LV_ALIGN_CENTER, 0, -25); + + // OpenMower Wordmark - img_wordmark + lv_obj_t *img_wordmark = lv_img_create(lv_scr_act()); + lv_img_set_src(img_wordmark, &OM_Wordmark_240x35x1); + lv_obj_align(img_wordmark, LV_ALIGN_CENTER, 0, 25); + + // Anim of logo + lv_anim_t al; + lv_anim_init(&al); + lv_anim_set_var(&al, img_logo); + lv_anim_set_values(&al, 0, -((UC1698_DISPLAY_WIDTH / 2) + (OM_Logo_120x54x1.header.w / 2))); + lv_anim_set_time(&al, 1500); + lv_anim_set_delay(&al, 1000); + lv_anim_set_exec_cb(&al, (lv_anim_exec_xcb_t)anim_x_cb); + lv_anim_set_path_cb(&al, lv_anim_path_ease_in); + lv_anim_start(&al); + + // Anim of Wordmark + lv_anim_t aw; + lv_anim_init(&aw); + lv_anim_set_var(&aw, img_wordmark); + lv_anim_set_values(&aw, 0, (UC1698_DISPLAY_WIDTH / 2) + (OM_Wordmark_240x35x1.header.w / 2) + 20); + lv_anim_set_time(&aw, 1400); + lv_anim_set_delay(&aw, 1500); + lv_anim_set_exec_cb(&aw, (lv_anim_exec_xcb_t)anim_x_cb); + lv_anim_set_path_cb(&aw, lv_anim_path_ease_in); + lv_anim_set_deleted_cb(&aw, (lv_anim_ready_cb_t)mainScreen); // Set a callback to indicate when the animation is deleted (idle) + lv_anim_start(&aw); +} + +bool DisplaySAXPRO::init() { + // Init UC1698 display controller + if (!uc1698.init()) { + return false; + } + + // Init LVGL + lv_init(); + lv_disp_drv_init(&lv_disp_drv); // Basic LVGL display driver initialization + lv_disp_drv.draw_buf = &lv_disp_buf; // Set an initialized buffer + lv_disp_drv.rounder_cb = rounder_cb; // Round x coordinated so that it fit for our 3 RGB pixel/per dot display + lv_disp_drv.flush_cb = flush_cb; // Set a flush callback to draw to the display + lv_disp_drv.hor_res = UC1698_DISPLAY_WIDTH; // Set the horizontal resolution in pixels + lv_disp_drv.ver_res = UC1698_DISPLAY_HEIGHT; // Set the vertical resolution in pixels + lv_disp_draw_buf_init(&lv_disp_buf, lv_buf_1, lv_buf_2, UC1698_DISPLAY_WIDTH * LVGL_BUFFER_MULTIPLIER); // Initialize `disp_buf` with the buffer(s) + lv_disp_t *disp; + disp = lv_disp_drv_register(&lv_disp_drv); // Register the driver and save the created display objects + lv_obj_set_style_bg_color(lv_scr_act(), lv_color_white(), LV_PART_MAIN); // No background color + + openmower_anim(); + // mainScreen(); + + return true; +} + +/** + * @brief Regular loop() function, which get called by a low priority hardware timer (approx. 10ms). + * Handles i.e. LVGL timers or LED-2-Display logic. + * Has to be a lower priority routine than tick_inc(), otherwise all LVGL timers (or LEDcontrol-Animations) do not work + */ +void DisplaySAXPRO::loop_low_prio() { + AbstractDisplay::loop_low_prio(); + + // LEDs & Buttons to main status screen conversion + if (!main_screen_active) + return; // Still in OM anim + + char status_ticker[STATUS_TICKER_LENGTH] = ""; + + // GPS + if (subscription::recv_hl_state.gps_quality < 25) + v_led_gps->set(LED_on); + else if (subscription::recv_hl_state.gps_quality < 50) + v_led_gps->set(LED_blink_fast); + else if (subscription::recv_hl_state.gps_quality < 75) + v_led_gps->set(LED_blink_slow); + else + v_led_gps->set(LED_off); + bar_gps->set_value(subscription::recv_hl_state.gps_quality); + + // V-Battery vLED + if (subscription::recv_ll_status.v_battery >= (BATT_EMPTY + 2.0f)) + v_led_bat->set(LED_off); + else + v_led_bat->set(LED_on); + + // Docked (Plug) & Charging (charge-station) + if (subscription::recv_ll_status.v_charge > 20.0f) // Docked + { + if (!last_docked_state_) { + v_led_power->set(LED_on); + bar_bat->set_range(100, 1100); + bar_bat->bar_label = FA_SYMBOL_CHARGE " %d mA"; + set_backlight(); + last_docked_state_ = true; + } + bar_bat->set_value(subscription::recv_ll_status.charging_current * 1000); + + if (subscription::recv_ll_status.charging_current < 0.15f) + v_led_charge->set(LED_off); + else if (subscription::recv_ll_status.charging_current >= 0.15f && subscription::recv_ll_status.charging_current <= 0.8f) + v_led_charge->set(LED_blink_slow); + else if (subscription::recv_ll_status.charging_current > 0.8f) + v_led_charge->set(LED_blink_fast); + } else // Undocked + { + if (last_docked_state_) { + set_undocked(); + } + bar_bat->set_value(subscription::recv_ll_status.v_battery); + } + + // HL Mode & SubMode + switch (subscription::recv_hl_state.current_mode & 0b111111) { + case HighLevelMode::MODE_IDLE: + v_led_ros->set(LED_on); + strncpy(status_ticker, "Idle", STATUS_TICKER_LENGTH); + break; + case HighLevelMode::MODE_AUTONOMOUS: + v_led_ros->set(LED_blink_slow); + if ((subscription::recv_hl_state.current_mode >> 6) & 0b01) + strncpy(status_ticker, "Docking", STATUS_TICKER_LENGTH); + else if ((subscription::recv_hl_state.current_mode >> 6) & 0b10) + strncpy(status_ticker, "Undocking", STATUS_TICKER_LENGTH); + else + strncpy(status_ticker, "Mowing", STATUS_TICKER_LENGTH); + break; + case HighLevelMode::MODE_RECORDING: + v_led_ros->set(LED_blink_fast); + if ((subscription::recv_hl_state.current_mode >> 6) & 0b01) + strncpy(status_ticker, "Record area outline", STATUS_TICKER_LENGTH); + else if ((subscription::recv_hl_state.current_mode >> 6) & 0b10) + strncpy(status_ticker, "Record obstacle", STATUS_TICKER_LENGTH); + break; + default: // We currently don't have a real "ROS Running" identifier. Let's use the current mode. + v_led_ros->set(LED_off); + strncpy(status_ticker, "Waiting for ROS...", STATUS_TICKER_LENGTH); + break; + } + + // ----- Most important text-states, last! ----- + + // Emergencies + static bool last_stop_button = false; + if (subscription::recv_ll_status.emergency_bitmask & LL_EMERGENCY_BITS_STOP) // Stop switch + { + v_led_emergency_stop->set(LED_blink_fast); + strncpy(status_ticker, EMERGENCY_CLEAR_TEXT, STATUS_TICKER_LENGTH); + + if (!last_stop_button) // Backlight on cover- open + set_backlight(); + last_stop_button = true; + } else { + v_led_emergency_stop->set(LED_off); + last_stop_button = false; + } + + if (subscription::recv_ll_status.emergency_bitmask & LL_EMERGENCY_BITS_LIFT) // Lifted or tilted + { + v_led_emergency_wheel->set(LED_blink_fast); + strncpy(status_ticker, EMERGENCY_CLEAR_TEXT, STATUS_TICKER_LENGTH); + } else + v_led_emergency_wheel->set(LED_off); + + if (subscription::recv_ll_status.emergency_bitmask & LL_EMERGENCY_BIT_LATCH) // Emergency latch (no LL heartbeat or emergency by ROS) + { + v_led_emergency->set(LED_blink_slow); + strncpy(status_ticker, EMERGENCY_CLEAR_TEXT, STATUS_TICKER_LENGTH); + } else + v_led_emergency->set(LED_off); + + // ----- Announcement ----- + switch (auto ann = get_anncmnt()) { + case AnncmntType::close_hatch: + sprintf(status_ticker, "Close hatch in %i sec.", ((anncmnt.timeout - millis()) / 1000) + 1); + break; + case AnncmntType::version: + sprintf(status_ticker, "Version %i", FIRMWARE_VERSION); + break; + default: + break; + } + + text_ticker_status->set_text(status_ticker); +} + +} // namespace display +} // namespace yardforce + +yardforce::display::DisplaySAXPRO display(yardforce::display::AbstractDisplay::Config{.backlight_led_num = LED_NUM_BACKLIGHT}); diff --git a/Firmware/CoverUI/YardForce/model/SAxPRO/Display.hpp b/Firmware/CoverUI/YardForce/model/SAxPRO/Display.hpp new file mode 100644 index 0000000..1742ded --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/SAxPRO/Display.hpp @@ -0,0 +1,75 @@ +/** + * @file Display_SAxPRO.hpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce CoverUI WYM240128K1 display driver for SAxPRO OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.3 + * @date 2023-11-29 + * + * @copyright Copyright (c) 2023 + */ +#ifndef YARDFORCE_DISPLAY_SAXPRO_HPP +#define YARDFORCE_DISPLAY_SAXPRO_HPP + +#define UC1698_DISPLAY_WIDTH 240 +#define UC1698_DISPLAY_HEIGHT 128 + +#define LVGL_BUFFER_MULTIPLIER 10 +#define LVGL_TIMER_HANDLER_PERIOD_MS 10 // 10ms lv_timer_handler() soft period + +#define TOP_STATUS_BAR_GAP_PX 5 // Amount of (gap) pixels between top status-bar icons/symbols +#define EMERGENCY_CLEAR_TEXT "Emergency! Press [Enter], close hatch and stay back, to clear emergency state." + +// clang-format off +#include "../../include/ABC_Display.hpp" +#include "../../include/UC1698.hpp" +#include +#include "../../include/WidgetLedSymbol.hpp" +#include "../../include/WidgetBar.hpp" +#include "../../include/WidgetTextTicker.hpp" +#include "../../include/subscription.h" +// clang-format on + +#define BACKLIGHT_TIMEOUT_MS 120000 // 2 minutes +#define STATUS_TICKER_LENGTH 100 + +// Enable for benchmarking specific code +// #define BENCHMARK + +#ifdef BENCHMARK +#include "include/CortexMCycleCounter.hpp" +#endif + +namespace yardforce { +namespace display { +class DisplaySAXPRO : public AbstractDisplay { + public: + DisplaySAXPRO(Config t_config) : AbstractDisplay(t_config) {}; + + bool init() override; // Init GPIOs, comms, as well as LVGL & display + + void loop_low_prio() override; // Low priority loop for display changes. Also does lv_timer_handler() and subscription + + void openmower_anim(); + static void mainScreen(); + + protected: + lv_disp_drv_t lv_disp_drv; // LVGL driver + + static void rounder_cb(lv_disp_drv_t *disp_drv, lv_area_t *area); + static void flush_cb(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *t_color_p); + + static void anim_x_cb(void *var, int32_t v); + + static void set_undocked(); +}; + +#ifdef BENCHMARK +static CortexMCycleCounter cycle_cnt_flush_cb_; +#endif + +} // namespace display +} // namespace yardforce + +extern yardforce::display::DisplaySAXPRO display; + +#endif // YARDFORCE_DISPLAY_SAXPRO_HPP \ No newline at end of file diff --git a/Firmware/CoverUI/YardForce/model/SAxPRO/assembly.cpp b/Firmware/CoverUI/YardForce/model/SAxPRO/assembly.cpp new file mode 100644 index 0000000..f1d7332 --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/SAxPRO/assembly.cpp @@ -0,0 +1,94 @@ +/** + * @file SAxPRO/assembly.cpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce SAxPRO CoverUI Assembly for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.1 + * @date 2024-10-02 + * + * @copyright Copyright (c) 2024 + * + */ +#include "assembly.hpp" + +#include "../../include/Emergency.hpp" +#include "Display.hpp" + +// ----- LEDs ----- + +const uint32_t kPinByLedNum[] = { + // Order derived from LowLevel "enum LED_id" + // C500 + // Use LED num Original Alternative + LED_PIN_NC, // 0 + LED_PIN_NC, // 1 + LED_PIN_NC, // 2 + LED_PIN_NC, // 3 + LED_PIN_NC, // 4 SUN(6) + LED_PIN_NC, // 5 SAT(5) + LED_PIN_NC, // 6 FRI(4) + LED_PIN_NC, // 7 THU(3) + LED_PIN_NC, // 8 WED(2) + LED_PIN_NC, // 9 TUE(1) + LED_PIN_NC, // 10 MON(0) + LED_PIN_NC, // 11 + LED_PIN_NC, // 12 digit 5 + LED_PIN_NC, // 13 digit 4 + LED_PIN_NC, // 14 8HR digit 3 + LED_PIN_NC, // 15 6HR digit 2 + LED_PIN_NC, // 16 4HR digit 1 + LED_PIN_NC, // 17 2HR digit 0 + LED_PIN_NC, // 18 + LED_PIN_BACKLIGHT // 19 +}; + +// Main LED controller object +LEDcontrol leds(kPinByLedNum, sizeof(kPinByLedNum) / sizeof(uint32_t)); // Main LED controller object + +// ----- Buttons ----- + +// Map logic button number to pin. Use the same order as in OM FW so that they get scanned in a comparable order! +const std::map kBtnDefByButtonNumMap = { + {BTN_HOME_NUM, {BTN_HOME_PIN, -1}}, + {BTN_PLAY_NUM, {BTN_PLAY_PIN, -1}}, + {BTN_OK_NUM, {BTN_OK_PIN, -1}}, + {BTN_UP_NUM, {BTN_UP_PIN, -1}}, + {BTN_DOWN_NUM, {BTN_DOWN_PIN, -1}}, + {BTN_BACK_NUM, {BTN_BACK_PIN, -1}}}; + +Buttons buttons(kBtnDefByButtonNumMap); + +// ----- Hatch ----- + +unsigned int HatchSAXPRO::handle_button(unsigned int button_id, unsigned int press_cnt) { + // If backlight is off, skip first button press + if (display.check_backlight() == LED_off) { + display.set_backlight(); + return 0; // Skip handling of first button-press if backlight was off + } + display.set_backlight(); + + // Clear emergency = Enter (OK) button + if (button_id == BTN_OK_NUM) { + display.start_anncmnt(4000, yardforce::display::AbstractDisplay::AnncmntType::close_hatch); + queue_button(BTN_LOCK_NUM, 2, 4500); // Send long-press Lock button in 4.5 sec + return 0; // Don't return button now (hatch is still open) + } + + // Play & Home button + if (button_id == BTN_HOME_NUM || button_id == BTN_PLAY_NUM) { + display.start_anncmnt(4000, yardforce::display::AbstractDisplay::AnncmntType::close_hatch); + queue_button(BTN_LOCK_NUM, 2, 4500); // Send long-press Lock button in 4.5 sec + queue_button(button_id, 0, 5000); + return 0; // Don't return button now (hatch is still open) + } + + if (button_id == BTN_UP_NUM) + return BTN_MON_NUM; // Volume up + + if (button_id == BTN_DOWN_NUM) + return BTN_TUE_NUM; // Volume down + + return button_id; +}; + +HatchSAXPRO hatch; \ No newline at end of file diff --git a/Firmware/CoverUI/YardForce/model/SAxPRO/assembly.hpp b/Firmware/CoverUI/YardForce/model/SAxPRO/assembly.hpp new file mode 100644 index 0000000..613231b --- /dev/null +++ b/Firmware/CoverUI/YardForce/model/SAxPRO/assembly.hpp @@ -0,0 +1,58 @@ +/** + * @file SAxPRO/assembly.hpp + * @author Apehaenger (joerg@ebeling.ws) + * @brief YardForce SAxPRO CoverUI Assembly for OpenMower https://github.com/ClemensElflein/OpenMower + * @version 0.1 + * @date 2024-10-02 + * + * @copyright Copyright (c) 2024 + * + */ +#ifndef YARDFORCE_MDL_SAXPRO_ASSEMBLY_HPP +#define YARDFORCE_MDL_SAXPRO_ASSEMBLY_HPP + +#include "../../include/Buttons.hpp" +#include "../../include/LEDcontrol.hpp" +#include "../../include/main.h" + +// FIXME: AbstractDisplay depends on leds +extern LEDcontrol leds; +#include "Display.hpp" + +#ifdef MOD_EMERGENCY +#include "../../include/Emergency.hpp" +#endif + +// ***** LEDs ***** + +#define LED_PIN_BACKLIGHT PA11 // SAxPRO only has one LED, the backlight LED +#define LED_NUM_BACKLIGHT 19 + +// ***** Buttons ***** + +#define BTN_PLAY_PIN PC0 // or Start +#define BTN_HOME_PIN PC1 +#define BTN_UP_PIN PB14 +#define BTN_DOWN_PIN PB13 +#define BTN_OK_PIN PB12 // or Enter +#define BTN_BACK_PIN PB15 + +extern Buttons buttons; + +// ----- Hatch ----- + +#include "../../include/ABC_Hatch.hpp" + +class HatchSAXPRO : public AbstractHatch { + public: + unsigned int handle_button(unsigned int button_id, unsigned int press_cnt); +}; + +extern HatchSAXPRO hatch; + +// ----- LowLevel Serial ----- + +#define UART_LL_RX PA3 +#define UART_LL_TX PA2 + +#endif // YARDFORCE_MDL_SAXPRO_ASSEMBLY_HPP diff --git a/Firmware/CoverUI/platformio.ini b/Firmware/CoverUI/platformio.ini index 49b0e2a..57870b4 100644 --- a/Firmware/CoverUI/platformio.ini +++ b/Firmware/CoverUI/platformio.ini @@ -44,23 +44,23 @@ build_src_filter = - - + - - - - - - + - - - - - - - - + - - - - - build_flags = -DHW_YF -DDEBUG_UART=NP +lib_deps = + etlcpp/Embedded Template Library @ ^20.39.4 + upload_protocol = stlink debug_tool = stlink @@ -73,7 +73,7 @@ debug_tool = stlink board = disco_f030r8 build_src_filter = ${env.build_src_filter} - + + + build_flags = ${env.build_flags} -DMCU_STM32 @@ -98,8 +98,7 @@ debug_server = board = disco_f030r8 build_src_filter = ${env.build_src_filter} - + - + + + build_flags = ${env.build_flags} -DMCU_STM32 @@ -125,9 +124,7 @@ debug_server = board = disco_f030r8 build_src_filter = ${env.build_src_filter} - + - + - + + + build_flags = ${env.build_flags} -DMCU_STM32 @@ -154,8 +151,7 @@ debug_server = board = disco_f030r8 build_src_filter = ${env.build_src_filter} - + - + + + build_flags = ${env.build_flags} -DMCU_STM32 @@ -176,43 +172,6 @@ debug_server = reset_config none separate - -[env:YF_C500_STM32_X_Picoprobe] -board = disco_f030r8 -build_src_filter = - ${env.build_src_filter} - + - + - + -build_flags = - ${env.build_flags} - -DMCU_STM32 - -DMDL_C500 - -DMOD_RAIN_OFF - -DMOD_EMERGENCY_OFF - -; Need at least openocd 0.11 for working CMSIS-DAP adapter detection -platform_packages = platformio/tool-openocd@^2.1100.211028 - -; Picoprobe (RP2040) = CMSIS-DAP -upload_protocol = cmsis-dap -upload_flags = - -f - YardForce/util/picoprobe-stm.cfg - -upload_command = openocd $UPLOAD_FLAGS -c "init; reset halt; stm32f0x unlock 0; reset run" -c "program {$SOURCE} verify reset; shutdown;" - -; Picoprobe (RP2040) = CMSIS-DAP -debug_tool = cmsis-dap -debug_build_flags = -O0 -g -ggdb2 -debug_server = - openocd - -f - YardForce/util/picoprobe-stm.cfg - -c - reset_config none separate - - ;******************************************** ;* YardForce Classic 500, GD32 Variants * ;******************************************** @@ -225,7 +184,7 @@ board = genericGD32F330R8 extra_scripts = pre:YardForce/util/apply_gd32f3x0_patches.py build_src_filter = ${env.build_src_filter} - + + + build_flags = ${env.build_flags} -DMCU_GD32 @@ -254,8 +213,7 @@ board = genericGD32F330R8 extra_scripts = pre:YardForce/util/apply_gd32f3x0_patches.py build_src_filter = ${env.build_src_filter} - + - + + + build_flags = ${env.build_flags} -DMCU_GD32 @@ -284,9 +242,7 @@ board = genericGD32F330R8 extra_scripts = pre:YardForce/util/apply_gd32f3x0_patches.py build_src_filter = ${env.build_src_filter} - + - + - + + + build_flags = ${env.build_flags} -DMCU_GD32 @@ -308,7 +264,6 @@ debug_server = reset_config none separate - [env:YF_C500_GD32_HALL] platform = https://github.com/CommunityGD32Cores/platform-gd32.git platform_packages = @@ -317,8 +272,7 @@ board = genericGD32F330R8 extra_scripts = pre:YardForce/util/apply_gd32f3x0_patches.py build_src_filter = ${env.build_src_filter} - + - + + + build_flags = ${env.build_flags} -DMCU_GD32 @@ -339,16 +293,15 @@ debug_server = reset_config none separate -;******************************************************************************** -;* YardForce SA/SC/NX Type, 10 Buttons, 12 LEDs (RM-ECOW-V100), STM32 Variants * -;******************************************************************************** +;********************************************************************************* +;* YardForce SA/SC/NX Type, 10 Buttons, 12 LEDs (RM-ECOW-V100), STM32 Variants * +;********************************************************************************* [env:YF_RM-ECOW-V100_STM32] board = disco_f030r8 build_src_filter = ${env.build_src_filter} - + - + + + build_flags = ${env.build_flags} -DMCU_STM32 @@ -372,14 +325,176 @@ debug_server = board = disco_f030r8 build_src_filter = ${env.build_src_filter} - + - + - + + + build_flags = ${env.build_flags} -DMCU_STM32 -DMDL_RMECOWV100 -DMOD_EMERGENCY + -DMOD_STOP + +upload_flags = + -f + YardForce/util/stlink-stm.cfg +upload_command = openocd $UPLOAD_FLAGS -c "init; reset halt; stm32f0x unlock 0; reset run" -c "program {$SOURCE} verify reset; shutdown;" + +debug_build_flags = -O0 -g -ggdb2 +debug_server = + openocd + -f + YardForce/util/stlink-stm.cfg + -c + reset_config none separate + + +[env:YF_RM-ECOW-V100_STM32_HALL] +board = disco_f030r8 +build_src_filter = + ${env.build_src_filter} + + +build_flags = + ${env.build_flags} + -DMCU_STM32 + -DMDL_RMECOWV100 + -DMOD_EMERGENCY + -DMOD_HALL + +upload_flags = + -f + YardForce/util/stlink-stm.cfg +upload_command = openocd $UPLOAD_FLAGS -c "init; reset halt; stm32f0x unlock 0; reset run" -c "program {$SOURCE} verify reset; shutdown;" + +debug_build_flags = -O0 -g -ggdb2 +debug_server = + openocd + -f + YardForce/util/stlink-stm.cfg + -c + reset_config none separate + + +[env:YF_RM-ECOW-V100_STM32_HALL_STOP] +board = disco_f030r8 +build_src_filter = + ${env.build_src_filter} + + +build_flags = + ${env.build_flags} + -DMCU_STM32 + -DMDL_RMECOWV100 + -DMOD_EMERGENCY + -DMOD_HALL + -DMOD_STOP + +upload_flags = + -f + YardForce/util/stlink-stm.cfg +upload_command = openocd $UPLOAD_FLAGS -c "init; reset halt; stm32f0x unlock 0; reset run" -c "program {$SOURCE} verify reset; shutdown;" + +debug_build_flags = -O0 -g -ggdb2 +debug_server = + openocd + -f + YardForce/util/stlink-stm.cfg + -c + reset_config none separate + + +;******************************************************************************** +;* YardForce SA/SC/NX Type, 9 Buttons, 11 LEDs (RM-ECOW-V110), STM32 Variants * +;******************************************************************************** + +[env:YF_RM-ECOW-V110_STM32] +board = disco_f030r8 +build_src_filter = + ${env.build_src_filter} + + +build_flags = + ${env.build_flags} + -DMCU_STM32 + -DMDL_RMECOWV110 + +upload_flags = + -f + YardForce/util/stlink-stm.cfg +upload_command = openocd $UPLOAD_FLAGS -c "init; reset halt; stm32f0x unlock 0; reset run" -c "program {$SOURCE} verify reset; shutdown;" + +debug_build_flags = -O0 -g -ggdb2 +debug_server = + openocd + -f + YardForce/util/stlink-stm.cfg + -c + reset_config none separate + + +[env:YF_RM-ECOW-V110_STM32_HALL] +board = disco_f030r8 +build_src_filter = + ${env.build_src_filter} + + + +build_flags = + ${env.build_flags} + -DMCU_STM32 + -DMDL_RMECOWV110 + -DMOD_EMERGENCY + -DMOD_HALL + +upload_flags = + -f + YardForce/util/stlink-stm.cfg +upload_command = openocd $UPLOAD_FLAGS -c "init; reset halt; stm32f0x unlock 0; reset run" -c "program {$SOURCE} verify reset; shutdown;" + +debug_build_flags = -O0 -g -ggdb2 +debug_server = + openocd + -f + YardForce/util/stlink-stm.cfg + -c + reset_config none separate + + +[env:YF_RM-ECOW-V110_STM32_HALL_STOP] +board = disco_f030r8 +build_src_filter = + ${env.build_src_filter} + + + +build_flags = + ${env.build_flags} + -DMCU_STM32 + -DMDL_RMECOWV110 + -DMOD_EMERGENCY + -DMOD_HALL + -DMOD_STOP + +upload_flags = + -f + YardForce/util/stlink-stm.cfg +upload_command = openocd $UPLOAD_FLAGS -c "init; reset halt; stm32f0x unlock 0; reset run" -c "program {$SOURCE} verify reset; shutdown;" + +debug_build_flags = -O0 -g -ggdb2 +debug_server = + openocd + -f + YardForce/util/stlink-stm.cfg + -c + reset_config none separate + + +[env:YF_RM-ECOW-V110_STM32_STOP] +board = disco_f030r8 +build_src_filter = + ${env.build_src_filter} + + + +build_flags = + ${env.build_flags} + -DMCU_STM32 + -DMDL_RMECOWV110 + -DMOD_EMERGENCY + -DMOD_STOP upload_flags = -f @@ -395,9 +510,9 @@ debug_server = reset_config none separate -;************************************************************************ -;* YardForce SA650, 9 Buttons, 11 LEDs (RM-ECOW-V110), GD32 Variant * -;************************************************************************ +;*********************************************************************** +;* YardForce SA650, 9 Buttons, 11 LEDs (RM-ECOW-V110), GD32 Variants * +;*********************************************************************** [env:YF_RM-ECOW-V110_GD32] platform = https://github.com/CommunityGD32Cores/platform-gd32.git @@ -407,8 +522,7 @@ board = genericGD32F330R8 extra_scripts = pre:YardForce/util/apply_gd32f3x0_patches.py build_src_filter = ${env.build_src_filter} - + - + + + build_flags = ${env.build_flags} -DMCU_GD32 @@ -436,9 +550,7 @@ board = genericGD32F330R8 extra_scripts = pre:YardForce/util/apply_gd32f3x0_patches.py build_src_filter = ${env.build_src_filter} - + - + - + + + build_flags = ${env.build_flags} -DMCU_GD32 @@ -468,9 +580,7 @@ board = genericGD32F330R8 extra_scripts = pre:YardForce/util/apply_gd32f3x0_patches.py build_src_filter = ${env.build_src_filter} - + - + - + + + build_flags = ${env.build_flags} -DMCU_GD32 @@ -501,9 +611,7 @@ board = genericGD32F330R8 extra_scripts = pre:YardForce/util/apply_gd32f3x0_patches.py build_src_filter = ${env.build_src_filter} - + - + - + + + build_flags = ${env.build_flags} -DMCU_GD32 @@ -533,12 +641,10 @@ debug_server = board = genericSTM32F401RC build_src_filter = ${env.build_src_filter} - + + + + - + + + - + + build_flags = @@ -549,7 +655,9 @@ build_flags = -DLV_LVGL_H_INCLUDE_SIMPLE -IYardForce ; Required by LVGL to find his lv_conf.h -lib_deps = lvgl/lvgl@^8.3.9 +lib_deps = + ${env.lib_deps} + lvgl/lvgl@^8.3.9 debug_build_flags = -O0 -g2 -ggdb2 @@ -558,14 +666,11 @@ debug_build_flags = -O0 -g2 -ggdb2 board = genericSTM32F401RC build_src_filter = ${env.build_src_filter} - + + + + - + + + - + + - + build_flags = ${env.build_flags} @@ -577,7 +682,9 @@ build_flags = -DLV_LVGL_H_INCLUDE_SIMPLE -IYardForce ; Required by LVGL to find his lv_conf.h -lib_deps = lvgl/lvgl@^8.3.9 +lib_deps = + ${env.lib_deps} + lvgl/lvgl@^8.3.9 debug_build_flags = -O0 -g2 -ggdb2 @@ -586,14 +693,11 @@ debug_build_flags = -O0 -g2 -ggdb2 board = genericSTM32F401RC build_src_filter = ${env.build_src_filter} - + + + + - + + + - + + - + build_flags = ${env.build_flags} @@ -606,7 +710,9 @@ build_flags = -DLV_LVGL_H_INCLUDE_SIMPLE -IYardForce ; Required by LVGL to find his lv_conf.h -lib_deps = lvgl/lvgl@^8.3.9 +lib_deps = + ${env.lib_deps} + lvgl/lvgl@^8.3.9 debug_build_flags = -O0 -g2 -ggdb2 @@ -615,14 +721,11 @@ debug_build_flags = -O0 -g2 -ggdb2 board = genericSTM32F401RC build_src_filter = ${env.build_src_filter} - + + + + - + + + - + + - + build_flags = ${env.build_flags} @@ -634,7 +737,9 @@ build_flags = -DLV_LVGL_H_INCLUDE_SIMPLE -IYardForce ; Required by LVGL to find his lv_conf.h -lib_deps = lvgl/lvgl@^8.3.9 +lib_deps = + ${env.lib_deps} + lvgl/lvgl@^8.3.9 debug_build_flags = -O0 -g2 -ggdb2 @@ -650,12 +755,10 @@ board_upload.maximum_size = 262144 ; STM32F030RCx has 256k Flash build_src_filter = ${env.build_src_filter} - + + + + - + + + - + + build_flags = @@ -666,7 +769,9 @@ build_flags = -DLV_LVGL_H_INCLUDE_SIMPLE -IYardForce ; Required by LVGL to find his lv_conf.h -lib_deps = lvgl/lvgl@^8.3.9 +lib_deps = + ${env.lib_deps} + lvgl/lvgl@^8.3.9 upload_flags = -f, target/stm32f0x.cfg upload_command = openocd -f interface/stlink.cfg -c "transport select hla_swd" $UPLOAD_FLAGS -c "init; reset halt; stm32f0x unlock 0; reset run" -c "program {$SOURCE} verify reset; shutdown;" diff --git a/Hardware/YardForce/SA,SC-Type 10Button-12LED Board.kicad_sch b/Hardware/YardForce/SA,SC-Type 10Button-12LED Board.kicad_sch index 53a9ddc..1c8492b 100644 --- a/Hardware/YardForce/SA,SC-Type 10Button-12LED Board.kicad_sch +++ b/Hardware/YardForce/SA,SC-Type 10Button-12LED Board.kicad_sch @@ -1,3139 +1,8090 @@ -(kicad_sch (version 20211123) (generator eeschema) - - (uuid 105ce5f3-0f5d-4501-a42b-81308b09d139) - - (paper "A4") - - (title_block - (title "YardForce SA/SC 10Buttons 12LEDs CoverUI") - (date "2023-10-20") - (rev "0.1") - (comment 1 "(c) Apehaenger") - (comment 2 "For https://openmower.de") - (comment 3 "RM-ECOW-V1.0.0 2018.06.05 with STM32F030R8T6") - ) - - (lib_symbols - (symbol "Connector:Conn_01x02_Female" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) - (property "Reference" "J" (id 0) (at 0 2.54 0) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "Conn_01x02_Female" (id 1) (at 0 -5.08 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "connector" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "Connector*:*_1x??_*" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "Conn_01x02_Female_1_1" - (arc (start 0 -2.032) (mid -0.508 -2.54) (end 0 -3.048) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy -1.27 -2.54) - (xy -0.508 -2.54) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy -1.27 0) - (xy -0.508 0) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (arc (start 0 0.508) (mid -0.508 0) (end 0 -0.508) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (pin passive line (at -5.08 0 0) (length 3.81) - (name "Pin_1" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at -5.08 -2.54 0) (length 3.81) - (name "Pin_2" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "Connector:Conn_01x02_Male" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) - (property "Reference" "J" (id 0) (at 0 2.54 0) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "Conn_01x02_Male" (id 1) (at 0 -5.08 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "connector" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "Connector*:*_1x??_*" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "Conn_01x02_Male_1_1" - (polyline - (pts - (xy 1.27 -2.54) - (xy 0.8636 -2.54) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 0) - (xy 0.8636 0) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start 0.8636 -2.413) (end 0 -2.667) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 0.127) (end 0 -0.127) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (pin passive line (at 5.08 0 180) (length 3.81) - (name "Pin_1" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 -2.54 180) (length 3.81) - (name "Pin_2" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "Connector:Conn_01x04_Male" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) - (property "Reference" "J" (id 0) (at 0 5.08 0) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "Conn_01x04_Male" (id 1) (at 0 -7.62 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "connector" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "Connector*:*_1x??_*" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "Conn_01x04_Male_1_1" - (polyline - (pts - (xy 1.27 -5.08) - (xy 0.8636 -5.08) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 -2.54) - (xy 0.8636 -2.54) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 0) - (xy 0.8636 0) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 2.54) - (xy 0.8636 2.54) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start 0.8636 -4.953) (end 0 -5.207) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 -2.413) (end 0 -2.667) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 0.127) (end 0 -0.127) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 2.667) (end 0 2.413) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (pin passive line (at 5.08 2.54 180) (length 3.81) - (name "Pin_1" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 0 180) (length 3.81) - (name "Pin_2" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 -2.54 180) (length 3.81) - (name "Pin_3" (effects (font (size 1.27 1.27)))) - (number "3" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 -5.08 180) (length 3.81) - (name "Pin_4" (effects (font (size 1.27 1.27)))) - (number "4" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "Connector:Conn_01x12_Male" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) - (property "Reference" "J" (id 0) (at 0 15.24 0) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "Conn_01x12_Male" (id 1) (at 0 -17.78 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "connector" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Generic connector, single row, 01x12, script generated (kicad-library-utils/schlib/autogen/connector/)" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "Connector*:*_1x??_*" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "Conn_01x12_Male_1_1" - (polyline - (pts - (xy 1.27 -15.24) - (xy 0.8636 -15.24) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 -12.7) - (xy 0.8636 -12.7) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 -10.16) - (xy 0.8636 -10.16) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 -7.62) - (xy 0.8636 -7.62) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 -5.08) - (xy 0.8636 -5.08) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 -2.54) - (xy 0.8636 -2.54) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 0) - (xy 0.8636 0) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 2.54) - (xy 0.8636 2.54) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 5.08) - (xy 0.8636 5.08) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 7.62) - (xy 0.8636 7.62) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 10.16) - (xy 0.8636 10.16) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 12.7) - (xy 0.8636 12.7) - ) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start 0.8636 -15.113) (end 0 -15.367) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 -12.573) (end 0 -12.827) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 -10.033) (end 0 -10.287) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 -7.493) (end 0 -7.747) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 -4.953) (end 0 -5.207) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 -2.413) (end 0 -2.667) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 0.127) (end 0 -0.127) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 2.667) (end 0 2.413) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 5.207) (end 0 4.953) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 7.747) (end 0 7.493) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 10.287) (end 0 10.033) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (rectangle (start 0.8636 12.827) (end 0 12.573) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type outline)) - ) - (pin passive line (at 5.08 12.7 180) (length 3.81) - (name "Pin_1" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 -10.16 180) (length 3.81) - (name "Pin_10" (effects (font (size 1.27 1.27)))) - (number "10" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 -12.7 180) (length 3.81) - (name "Pin_11" (effects (font (size 1.27 1.27)))) - (number "11" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 -15.24 180) (length 3.81) - (name "Pin_12" (effects (font (size 1.27 1.27)))) - (number "12" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 10.16 180) (length 3.81) - (name "Pin_2" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 7.62 180) (length 3.81) - (name "Pin_3" (effects (font (size 1.27 1.27)))) - (number "3" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 5.08 180) (length 3.81) - (name "Pin_4" (effects (font (size 1.27 1.27)))) - (number "4" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 2.54 180) (length 3.81) - (name "Pin_5" (effects (font (size 1.27 1.27)))) - (number "5" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 0 180) (length 3.81) - (name "Pin_6" (effects (font (size 1.27 1.27)))) - (number "6" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 -2.54 180) (length 3.81) - (name "Pin_7" (effects (font (size 1.27 1.27)))) - (number "7" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 -5.08 180) (length 3.81) - (name "Pin_8" (effects (font (size 1.27 1.27)))) - (number "8" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 -7.62 180) (length 3.81) - (name "Pin_9" (effects (font (size 1.27 1.27)))) - (number "9" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "Connector_Generic:Conn_02x08_Odd_Even" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) - (property "Reference" "J" (id 0) (at 1.27 10.16 0) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "Conn_02x08_Odd_Even" (id 1) (at 1.27 -12.7 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "connector" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Generic connector, double row, 02x08, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/)" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "Connector*:*_2x??_*" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "Conn_02x08_Odd_Even_1_1" - (rectangle (start -1.27 -10.033) (end 0 -10.287) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start -1.27 -7.493) (end 0 -7.747) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start -1.27 -4.953) (end 0 -5.207) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start -1.27 -2.413) (end 0 -2.667) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start -1.27 0.127) (end 0 -0.127) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start -1.27 2.667) (end 0 2.413) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start -1.27 5.207) (end 0 4.953) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start -1.27 7.747) (end 0 7.493) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start -1.27 8.89) (end 3.81 -11.43) - (stroke (width 0.254) (type default) (color 0 0 0 0)) - (fill (type background)) - ) - (rectangle (start 3.81 -10.033) (end 2.54 -10.287) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start 3.81 -7.493) (end 2.54 -7.747) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start 3.81 -4.953) (end 2.54 -5.207) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start 3.81 -2.413) (end 2.54 -2.667) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start 3.81 0.127) (end 2.54 -0.127) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start 3.81 2.667) (end 2.54 2.413) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start 3.81 5.207) (end 2.54 4.953) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (rectangle (start 3.81 7.747) (end 2.54 7.493) - (stroke (width 0.1524) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (pin passive line (at -5.08 7.62 0) (length 3.81) - (name "Pin_1" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 7.62 -2.54 180) (length 3.81) - (name "Pin_10" (effects (font (size 1.27 1.27)))) - (number "10" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at -5.08 -5.08 0) (length 3.81) - (name "Pin_11" (effects (font (size 1.27 1.27)))) - (number "11" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 7.62 -5.08 180) (length 3.81) - (name "Pin_12" (effects (font (size 1.27 1.27)))) - (number "12" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at -5.08 -7.62 0) (length 3.81) - (name "Pin_13" (effects (font (size 1.27 1.27)))) - (number "13" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 7.62 -7.62 180) (length 3.81) - (name "Pin_14" (effects (font (size 1.27 1.27)))) - (number "14" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at -5.08 -10.16 0) (length 3.81) - (name "Pin_15" (effects (font (size 1.27 1.27)))) - (number "15" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 7.62 -10.16 180) (length 3.81) - (name "Pin_16" (effects (font (size 1.27 1.27)))) - (number "16" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 7.62 7.62 180) (length 3.81) - (name "Pin_2" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at -5.08 5.08 0) (length 3.81) - (name "Pin_3" (effects (font (size 1.27 1.27)))) - (number "3" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 7.62 5.08 180) (length 3.81) - (name "Pin_4" (effects (font (size 1.27 1.27)))) - (number "4" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at -5.08 2.54 0) (length 3.81) - (name "Pin_5" (effects (font (size 1.27 1.27)))) - (number "5" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 7.62 2.54 180) (length 3.81) - (name "Pin_6" (effects (font (size 1.27 1.27)))) - (number "6" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at -5.08 0 0) (length 3.81) - (name "Pin_7" (effects (font (size 1.27 1.27)))) - (number "7" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 7.62 0 180) (length 3.81) - (name "Pin_8" (effects (font (size 1.27 1.27)))) - (number "8" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at -5.08 -2.54 0) (length 3.81) - (name "Pin_9" (effects (font (size 1.27 1.27)))) - (number "9" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "Device:C" (pin_numbers hide) (pin_names (offset 0.254)) (in_bom yes) (on_board yes) - (property "Reference" "C" (id 0) (at 0.635 2.54 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "C" (id 1) (at 0.635 -2.54 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "" (id 2) (at 0.9652 -3.81 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "cap capacitor" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Unpolarized capacitor" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "C_*" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "C_0_1" - (polyline - (pts - (xy -2.032 -0.762) - (xy 2.032 -0.762) - ) - (stroke (width 0.508) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy -2.032 0.762) - (xy 2.032 0.762) - ) - (stroke (width 0.508) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - ) - (symbol "C_1_1" - (pin passive line (at 0 3.81 270) (length 2.794) - (name "~" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 0 -3.81 90) (length 2.794) - (name "~" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes) - (property "Reference" "R" (id 0) (at 2.032 0 90) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "R" (id 1) (at 0 0 90) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at -1.778 0 90) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "R res resistor" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Resistor" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "R_*" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "R_0_1" - (rectangle (start -1.016 -2.54) (end 1.016 2.54) - (stroke (width 0.254) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - ) - (symbol "R_1_1" - (pin passive line (at 0 3.81 270) (length 1.27) - (name "~" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 0 -3.81 90) (length 1.27) - (name "~" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "Regulator_Linear:AMS1117-3.3" (pin_names (offset 0.254)) (in_bom yes) (on_board yes) - (property "Reference" "U" (id 0) (at -3.81 3.175 0) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "AMS1117-3.3" (id 1) (at 0 3.175 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-223-3_TabPin2" (id 2) (at 0 5.08 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "http://www.advanced-monolithic.com/pdf/ds1117.pdf" (id 3) (at 2.54 -6.35 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "linear regulator ldo fixed positive" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "1A Low Dropout regulator, positive, 3.3V fixed output, SOT-223" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "SOT?223*TabPin2*" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "AMS1117-3.3_0_1" - (rectangle (start -5.08 -5.08) (end 5.08 1.905) - (stroke (width 0.254) (type default) (color 0 0 0 0)) - (fill (type background)) - ) - ) - (symbol "AMS1117-3.3_1_1" - (pin power_in line (at 0 -7.62 90) (length 2.54) - (name "GND" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin power_out line (at 7.62 0 180) (length 2.54) - (name "VO" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - (pin power_in line (at -7.62 0 0) (length 2.54) - (name "VI" (effects (font (size 1.27 1.27)))) - (number "3" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "Switch:SW_Push_Open" (pin_numbers hide) (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) - (property "Reference" "SW" (id 0) (at 0 2.54 0) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "SW_Push_Open" (id 1) (at 0 -1.905 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 5.08 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 0 5.08 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "switch normally-closed pushbutton push-button" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Push button switch, push-to-open, generic, two pins" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "SW_Push_Open_0_1" - (circle (center -2.032 0) (radius 0.508) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy -2.54 -0.635) - (xy 2.54 -0.635) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 0 -0.635) - (xy 0 1.27) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (circle (center 2.032 0) (radius 0.508) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (pin passive line (at -5.08 0 0) (length 2.54) - (name "A" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - ) - (symbol "SW_Push_Open_1_1" - (pin passive line (at 5.08 0 180) (length 2.54) - (name "B" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "power:+3.3V" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) - (property "Reference" "#PWR" (id 0) (at 0 -3.81 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+3.3V" (id 1) (at 0 3.556 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "global power" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Power symbol creates a global label with name \"+3.3V\"" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "+3.3V_0_1" - (polyline - (pts - (xy -0.762 1.27) - (xy 0 2.54) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 0 0) - (xy 0 2.54) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 0 2.54) - (xy 0.762 1.27) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - ) - (symbol "+3.3V_1_1" - (pin power_in line (at 0 0 90) (length 0) hide - (name "+3.3V" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "power:+5V" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) - (property "Reference" "#PWR" (id 0) (at 0 -3.81 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+5V" (id 1) (at 0 3.556 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "global power" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Power symbol creates a global label with name \"+5V\"" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "+5V_0_1" - (polyline - (pts - (xy -0.762 1.27) - (xy 0 2.54) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 0 0) - (xy 0 2.54) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 0 2.54) - (xy 0.762 1.27) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - ) - (symbol "+5V_1_1" - (pin power_in line (at 0 0 90) (length 0) hide - (name "+5V" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) - (property "Reference" "#PWR" (id 0) (at 0 -6.35 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 0 -3.81 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "global power" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "GND_0_1" - (polyline - (pts - (xy 0 0) - (xy 0 -1.27) - (xy 1.27 -1.27) - (xy 0 -2.54) - (xy -1.27 -1.27) - (xy 0 -1.27) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - ) - (symbol "GND_1_1" - (pin power_in line (at 0 0 270) (length 0) hide - (name "GND" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - ) - ) - ) - - (junction (at 224.79 39.37) (diameter 0) (color 0 0 0 0) - (uuid 001dc20b-85b9-4fdd-8996-410820568061) - ) - (junction (at 57.15 114.3) (diameter 0) (color 0 0 0 0) - (uuid 14a499e5-0dc5-4578-82e1-b3b1de3b72df) - ) - (junction (at 36.83 162.56) (diameter 0) (color 0 0 0 0) - (uuid 173207e2-97fc-4b53-91b4-1a96bde3f863) - ) - (junction (at 57.15 127) (diameter 0) (color 0 0 0 0) - (uuid 2373950b-d201-46b1-8769-18547e1d7af3) - ) - (junction (at 246.38 41.91) (diameter 0) (color 0 0 0 0) - (uuid 296e1882-81df-4b29-8025-f0b092fe60fd) - ) - (junction (at 233.68 41.91) (diameter 0) (color 0 0 0 0) - (uuid 2aa52334-b253-48e9-8052-4a001ef65776) - ) - (junction (at 36.83 170.18) (diameter 0) (color 0 0 0 0) - (uuid 383ccf1e-cd9a-43b2-aedf-39f54c3ccaa0) - ) - (junction (at 39.37 121.92) (diameter 0) (color 0 0 0 0) - (uuid 3844446f-ae3a-44fc-a762-0575fdcefee9) - ) - (junction (at 259.08 41.91) (diameter 0) (color 0 0 0 0) - (uuid 3d5ebf0a-12b4-41eb-af1c-ea771fb9fbbb) - ) - (junction (at 259.08 30.48) (diameter 0) (color 0 0 0 0) - (uuid 44a505fc-8756-405b-9fb7-b9e3818f1c58) - ) - (junction (at 233.68 30.48) (diameter 0) (color 0 0 0 0) - (uuid 4ee297c3-2ed4-40ff-934b-ae0fbc7d96cb) - ) - (junction (at 90.17 111.76) (diameter 0) (color 0 0 0 0) - (uuid 561f9335-e96f-467a-bb11-31cf83831acc) - ) - (junction (at 39.37 172.72) (diameter 0) (color 0 0 0 0) - (uuid 6775fa26-4094-4175-b399-f6fd87e0c8aa) - ) - (junction (at 54.61 111.76) (diameter 0) (color 0 0 0 0) - (uuid 8e465b8f-382b-4370-877d-84aa30ac7bb8) - ) - (junction (at 85.09 41.91) (diameter 0) (color 0 0 0 0) - (uuid a1181140-8ecc-491b-81d1-93ffca1d984e) - ) - (junction (at 36.83 177.8) (diameter 0) (color 0 0 0 0) - (uuid a59ebb6a-06ac-4628-b563-50388fa1261a) - ) - (junction (at 266.7 30.48) (diameter 0) (color 0 0 0 0) - (uuid abde2cde-103d-4e70-aafb-2766f8905b3f) - ) - (junction (at 212.09 128.27) (diameter 0) (color 0 0 0 0) - (uuid b423dc70-f4cb-4276-b0a7-0239fa697b9d) - ) - (junction (at 82.55 53.34) (diameter 0) (color 0 0 0 0) - (uuid b571d17b-a8b6-44bb-88ca-1443385eb6f7) - ) - (junction (at 233.68 39.37) (diameter 0) (color 0 0 0 0) - (uuid be192e1f-d183-4df0-a2f2-58bb65cc10f3) - ) - (junction (at 213.36 138.43) (diameter 0) (color 0 0 0 0) - (uuid d44728cd-fbe8-4a86-baa9-fe5283591dc1) - ) - (junction (at 39.37 157.48) (diameter 0) (color 0 0 0 0) - (uuid e2d389e2-3d84-4fd1-9116-0c2adc485562) - ) - (junction (at 224.79 30.48) (diameter 0) (color 0 0 0 0) - (uuid e4f7d682-aaee-4f64-88c8-5a5ff834c81d) - ) - (junction (at 39.37 165.1) (diameter 0) (color 0 0 0 0) - (uuid eef01012-1d02-4268-ae8a-3684b2a989e0) - ) - - (bus_entry (at 194.31 104.14) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0198da52-e74e-4866-a7e2-b88ba078e0cb) - ) - (bus_entry (at 194.31 106.68) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 037db7a7-afab-486e-bad3-ef0ce31c7b21) - ) - (bus_entry (at 194.31 83.82) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 04989c9d-74c0-48e9-9dfd-4dffb23964a7) - ) - (bus_entry (at 194.31 100.33) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0cf70d5e-dc83-4f1d-82b8-b4a8bd0117f4) - ) - (bus_entry (at 198.12 63.5) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 1f53baa1-acf3-462c-ae55-0afc45086218) - ) - (bus_entry (at 259.08 101.6) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 220853d1-b889-4d4c-85fc-bba566efa4b6) - ) - (bus_entry (at 194.31 88.9) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 33171d47-99e1-4e98-a7d3-35a49d4d2af9) - ) - (bus_entry (at 194.31 91.44) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 372ffc15-d48c-4dbc-82a7-8de006a11cde) - ) - (bus_entry (at 194.31 128.27) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 5587ec03-514d-451c-a18f-6a93fdf92eb9) - ) - (bus_entry (at 259.08 88.9) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 5d5f7e79-9e24-4b93-bb49-4abda8298af8) - ) - (bus_entry (at 194.31 110.49) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 5e147e44-13f0-44ae-962e-a46e663d2d4e) - ) - (bus_entry (at 259.08 78.74) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 628648fb-2623-4ce4-8840-1382318c3b5f) - ) - (bus_entry (at 194.31 97.79) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 63248a8a-86b2-4b1d-bb34-2f7d28dd70b9) - ) - (bus_entry (at 194.31 113.03) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 66f12cb6-5241-42f6-8a58-1f9bf67a3f08) - ) - (bus_entry (at 194.31 81.28) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 6ee3e9e1-1ccc-4e0b-80d8-0ad42e0efb5a) - ) - (bus_entry (at 259.08 93.98) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 80b5c2b6-ce17-4c25-80fb-bdf3858d5016) - ) - (bus_entry (at 259.08 91.44) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 82e72af3-01dc-47cb-ba75-e937306019a7) - ) - (bus_entry (at 194.31 86.36) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a5da2dcc-e3fa-443a-8f8a-d29b96394614) - ) - (bus_entry (at 194.31 93.98) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ac9cde3f-5f42-4caf-81b0-155960676e30) - ) - (bus_entry (at 200.66 63.5) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid befd63e5-b3bd-41f3-8fa8-6a1ed2a37a9c) - ) - (bus_entry (at 194.31 138.43) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid bf487161-8b7e-49fc-b817-12a2386484d5) - ) - (bus_entry (at 259.08 76.2) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c807b100-c69e-4af0-beda-5ee959babec3) - ) - (bus_entry (at 194.31 76.2) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid f17b4801-3f82-48b9-832f-c15762409bfb) - ) - (bus_entry (at 259.08 86.36) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid f18a9035-8fd4-40ca-b3f9-e345293a45ec) - ) - (bus_entry (at 194.31 78.74) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid fc0cdfee-d8f3-4506-bcdb-a0239e681840) - ) - - (wire (pts (xy 246.38 88.9) (xy 256.54 88.9)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 02e17945-540b-4830-89e6-e54a536b1b61) - ) - (wire (pts (xy 266.7 30.48) (xy 266.7 31.75)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0323736f-0fdc-4635-8061-5b84b0aac99d) - ) - (wire (pts (xy 90.17 111.76) (xy 90.17 160.02)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 03244922-ba98-4666-acdf-ea2ebfb568e3) - ) - (wire (pts (xy 57.15 114.3) (xy 59.69 114.3)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 06cd346d-9fe7-4d6d-a273-ad4fd60fd1df) - ) - (wire (pts (xy 224.79 30.48) (xy 224.79 31.75)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0792d786-871d-46f0-a4b9-f0bdc030985c) - ) - (bus (pts (xy 194.31 86.36) (xy 194.31 83.82)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 07d73eb3-a726-4b05-a041-993c3c262dd2) - ) - - (wire (pts (xy 196.85 97.79) (xy 215.9 97.79)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 09fbc7f3-fd11-468f-a8b9-54444910ef73) - ) - (wire (pts (xy 54.61 96.52) (xy 118.11 96.52)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0bfba637-ce13-487d-8e93-45308db6e085) - ) - (wire (pts (xy 52.07 53.34) (xy 82.55 53.34)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0cccac0a-f723-4ed3-93bf-489511e56591) - ) - (wire (pts (xy 196.85 83.82) (xy 215.9 83.82)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0ced9805-1c86-4384-b73b-3df65d6b22e6) - ) - (wire (pts (xy 201.93 162.56) (xy 201.93 130.81)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0dd5d67f-c7b3-4123-8431-96513124fda5) - ) - (wire (pts (xy 212.09 128.27) (xy 212.09 130.81)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 11033220-d92e-45bb-bddc-53008518066d) - ) - (wire (pts (xy 213.36 138.43) (xy 215.9 138.43)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 1155bed7-27e6-485c-9e50-b703a3acea91) - ) - (wire (pts (xy 40.64 55.88) (xy 17.78 55.88)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 11d35b64-1d70-4ad7-a800-4b2ff248bc02) - ) - (wire (pts (xy 233.68 39.37) (xy 233.68 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 14fb2038-bde8-4c68-9f22-1cff624ede3e) - ) - (wire (pts (xy 93.98 53.34) (xy 198.12 53.34)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 17796a2b-f3b3-47d9-9c19-1f4ceb2ca204) - ) - (wire (pts (xy 27.94 135.89) (xy 39.37 135.89)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 19537868-e571-4958-9b75-c1d624ffe947) - ) - (wire (pts (xy 233.68 30.48) (xy 238.76 30.48)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 1d30cbd2-1cc3-4205-91b9-eba186c2a546) - ) - (wire (pts (xy 86.36 53.34) (xy 82.55 53.34)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 1dd5754c-e6bd-4618-87aa-b589cc03738c) - ) - (wire (pts (xy 31.75 172.72) (xy 39.37 172.72)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 1fa70874-5211-4bda-8e9e-808c762e1e04) - ) - (wire (pts (xy 82.55 121.92) (xy 72.39 121.92)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 220e1775-8e1b-4cbe-99a9-2b4a4e3f5c98) - ) - (wire (pts (xy 72.39 114.3) (xy 88.9 114.3)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 2215be07-00d6-4ebf-a630-ef25a1f73cca) - ) - (wire (pts (xy 85.09 63.5) (xy 85.09 127)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 23cbd60d-bc86-4882-853b-b8e330c29065) - ) - (wire (pts (xy 110.49 148.59) (xy 111.76 148.59)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 25bf4df0-21bc-4ae4-96fe-ee4c72dc6e03) - ) - (wire (pts (xy 52.07 44.45) (xy 64.77 44.45)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 261876c8-162d-4b83-8735-6013860daeba) - ) - (wire (pts (xy 259.08 30.48) (xy 266.7 30.48)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 27a2959b-6dbf-4212-99c6-16d9af2d91c1) - ) - (wire (pts (xy 85.09 41.91) (xy 85.09 55.88)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 27e7dc01-1013-4dfc-bcef-1e9fcba7d127) - ) - (bus (pts (xy 194.31 104.14) (xy 194.31 106.68)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 289d5586-e33c-40b0-a1b5-da8d8480dcf4) - ) - - (wire (pts (xy 246.38 38.1) (xy 246.38 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 2d398298-8503-4859-9147-85501b1c0674) - ) - (wire (pts (xy 203.2 138.43) (xy 203.2 161.29)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 2ef1cf82-6540-4d06-addc-7ea26f3fe2f9) - ) - (wire (pts (xy 200.66 41.91) (xy 200.66 63.5)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 2fab9934-246d-4fdd-bcdc-a48e7fa5ba34) - ) - (wire (pts (xy 27.94 114.3) (xy 57.15 114.3)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 31df39b2-c11e-4939-983a-5892b2f92d21) - ) - (wire (pts (xy 110.49 146.05) (xy 118.11 146.05)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 3256ed7c-9b6b-4b3c-a682-d42f36f3e0ff) - ) - (bus (pts (xy 259.08 86.36) (xy 259.08 88.9)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 33377ff0-210d-4710-9fa2-e928e93d405e) - ) - (bus (pts (xy 194.31 81.28) (xy 194.31 83.82)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 33e8dc36-ac3d-4303-bcfc-2cef1423f43c) - ) - - (wire (pts (xy 27.94 111.76) (xy 54.61 111.76)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 3672cf5d-85e6-47a9-9157-569fba4cafc7) - ) - (wire (pts (xy 39.37 121.92) (xy 59.69 121.92)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 37e15169-0ba9-42b7-9720-5de28e06a403) - ) - (wire (pts (xy 203.2 138.43) (xy 204.47 138.43)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 38d642b4-e1b8-4040-b093-2173e3487e4e) - ) - (wire (pts (xy 246.38 86.36) (xy 256.54 86.36)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 3ae04d5c-3358-4484-aeba-02a80bfbe32c) - ) - (wire (pts (xy 224.79 39.37) (xy 224.79 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 3d888cf8-f73e-4976-8692-9b741e290300) - ) - (wire (pts (xy 196.85 76.2) (xy 215.9 76.2)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 40bea589-e59f-48da-994a-510d696edf6d) - ) - (wire (pts (xy 196.85 125.73) (xy 204.47 125.73)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 42cad8f1-d99a-48a2-8a72-58b51fba9136) - ) - (wire (pts (xy 93.98 41.91) (xy 200.66 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 42fa4da1-2756-4419-8884-c1d277fc5438) - ) - (wire (pts (xy 29.21 124.46) (xy 29.21 125.73)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 436d218b-a345-41ee-99d2-901c45cd4132) - ) - (wire (pts (xy 266.7 41.91) (xy 266.7 39.37)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 46f4bc15-5aea-43c1-ae15-64a7c9146a39) - ) - (wire (pts (xy 212.09 138.43) (xy 213.36 138.43)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 49497151-afc1-475a-b308-9f84abe09b7a) - ) - (wire (pts (xy 233.68 41.91) (xy 246.38 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 49acc7bd-6707-4871-8764-ad6d26a7d81c) - ) - (wire (pts (xy 90.17 111.76) (xy 92.71 111.76)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 4bb5478c-44b7-4383-abd7-3163eb316538) - ) - (wire (pts (xy 54.61 96.52) (xy 54.61 111.76)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 4e4162ee-fc9a-4681-8edb-856880363ff9) - ) - (bus (pts (xy 259.08 76.2) (xy 259.08 78.74)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 508f4cf3-af64-42a9-b6a0-829bbf28b98b) - ) - - (wire (pts (xy 76.2 119.38) (xy 76.2 134.62)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 509ee3e9-a4da-4281-b27b-befcadbeae80) - ) - (wire (pts (xy 31.75 175.26) (xy 82.55 175.26)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 512ab44e-bced-4397-8140-428bcc657bb8) - ) - (wire (pts (xy 110.49 143.51) (xy 118.11 143.51)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 51cc60d2-0c28-4134-9251-39ea85607332) - ) - (wire (pts (xy 196.85 107.95) (xy 215.9 107.95)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 52967136-f9e8-49e4-912f-fed84a3161e6) - ) - (wire (pts (xy 196.85 135.89) (xy 204.47 135.89)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 52ae7820-484e-49b4-ae7f-cf92fcf981ad) - ) - (wire (pts (xy 224.79 30.48) (xy 233.68 30.48)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 56c0757e-38e6-45a4-b570-4321c1e05db4) - ) - (wire (pts (xy 196.85 81.28) (xy 215.9 81.28)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 574afcd0-bafc-4d2a-8c6e-02f93e9bb66a) - ) - (wire (pts (xy 196.85 104.14) (xy 215.9 104.14)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 5792deff-8d12-4e42-8888-beb62d44cd79) - ) - (wire (pts (xy 110.49 140.97) (xy 111.76 140.97)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 593715d8-61c9-40c2-8fb1-393d03a4da5d) - ) - (wire (pts (xy 196.85 101.6) (xy 215.9 101.6)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 59f6de5c-391b-4aee-bdd3-bc9dc4ee80ca) - ) - (wire (pts (xy 246.38 41.91) (xy 259.08 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 5a0bb985-a400-48f9-bfdd-cdd6cd599619) - ) - (wire (pts (xy 246.38 73.66) (xy 256.54 73.66)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 5bcaa60e-9a0b-4b03-bf8a-6f9d3a1c6250) - ) - (wire (pts (xy 59.69 116.84) (xy 54.61 116.84)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 5be47b8e-c68f-450a-84ed-f74c49bb9f21) - ) - (wire (pts (xy 72.39 111.76) (xy 90.17 111.76)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 632caf98-e2b6-49eb-a9e5-2d70c4841c4a) - ) - (wire (pts (xy 201.93 162.56) (xy 54.61 162.56)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 644b9b46-5b12-4b3a-95ea-0c3a281b79cd) - ) - (wire (pts (xy 254 30.48) (xy 259.08 30.48)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 649f7a40-d35c-4ddd-bbf0-94bb428c41cb) - ) - (wire (pts (xy 259.08 41.91) (xy 266.7 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 6629c5ea-16d6-4eed-a292-48aa431a3c57) - ) - (bus (pts (xy 194.31 138.43) (xy 194.31 158.75)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 667bdc37-bd81-485f-ab2e-c9bd64bb8157) - ) - - (wire (pts (xy 82.55 116.84) (xy 72.39 116.84)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 66a82e67-27c8-4090-af2e-7584277e4850) - ) - (wire (pts (xy 72.39 119.38) (xy 76.2 119.38)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 679c357b-420c-435b-8634-44d239d2ab7b) - ) - (wire (pts (xy 90.17 160.02) (xy 204.47 160.02)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 67b296c9-b2f5-4924-8339-d41f0409e119) - ) - (bus (pts (xy 259.08 88.9) (xy 259.08 91.44)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 6a671db8-fb44-4049-bcab-159ba01288f6) - ) - - (wire (pts (xy 59.69 119.38) (xy 57.15 119.38)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 6b3c9311-43e3-4f48-b3f9-cc7c4e8d98f7) - ) - (wire (pts (xy 233.68 38.1) (xy 233.68 39.37)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 6c441cba-5a19-4e50-853a-6d023134e208) - ) - (wire (pts (xy 196.85 110.49) (xy 215.9 110.49)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 6d881a20-d25a-4a99-b899-e075c7aaac59) - ) - (wire (pts (xy 39.37 135.89) (xy 39.37 124.46)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 6e52ddee-d701-43d6-8e97-c06f7f80b382) - ) - (bus (pts (xy 194.31 110.49) (xy 194.31 113.03)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 714f081c-5126-4698-bfb9-ab538020b54a) - ) - (bus (pts (xy 194.31 86.36) (xy 194.31 88.9)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 77917ed2-d5b2-4029-86e9-3b0d13859732) - ) - (bus (pts (xy 194.31 128.27) (xy 194.31 138.43)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 7a094fcd-8c1b-4c48-b88e-de27c2f021a5) - ) - - (wire (pts (xy 39.37 120.65) (xy 39.37 121.92)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 7b88b189-20d8-4d94-a92b-7330f360285e) - ) - (wire (pts (xy 57.15 99.06) (xy 118.11 99.06)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 7bb1afc8-ec6f-40ca-95c0-5d56d1d02f3d) - ) - (bus (pts (xy 194.31 91.44) (xy 194.31 93.98)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 7c319ace-4d5d-4658-95a7-3ed1e64fdb83) - ) - - (wire (pts (xy 31.75 154.94) (xy 36.83 154.94)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 7d5f6862-4efd-4100-9759-478e1242b66a) - ) - (wire (pts (xy 57.15 127) (xy 59.69 127)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 7e8f3fdc-8771-48ad-a8cd-fedd7e635ee1) - ) - (bus (pts (xy 194.31 100.33) (xy 194.31 104.14)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 7eab7409-e8be-455f-86f8-87531825422b) - ) - - (wire (pts (xy 82.55 175.26) (xy 82.55 121.92)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 7fd4fb03-6e6c-4ec4-b4d8-73b352752040) - ) - (wire (pts (xy 40.64 44.45) (xy 17.78 44.45)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 827277ac-ae74-45c8-91b6-33c0d39e1944) - ) - (wire (pts (xy 213.36 135.89) (xy 213.36 138.43)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 8290e510-39c3-4e79-8e7c-1997950dce68) - ) - (wire (pts (xy 80.01 167.64) (xy 80.01 124.46)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 82d8ffca-b5c1-4031-bd28-e6c138ff134a) - ) - (wire (pts (xy 204.47 143.51) (xy 215.9 143.51)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 8305f894-fc2b-4994-a9f2-b586aa50d734) - ) - (bus (pts (xy 194.31 113.03) (xy 194.31 128.27)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 84083de0-2523-4ede-9928-7843a1bc0dfc) - ) - - (wire (pts (xy 224.79 30.48) (xy 224.79 27.94)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 85179f61-71ba-4d14-897b-75b966384a3a) - ) - (bus (pts (xy 194.31 106.68) (xy 194.31 110.49)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 895330c4-0902-47c9-b26b-bf4e048d190f) - ) - (bus (pts (xy 194.31 88.9) (xy 194.31 91.44)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 89c590fa-991b-4f46-b71e-a656e6fdd5bb) - ) - - (wire (pts (xy 246.38 76.2) (xy 256.54 76.2)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 8d5652fa-d7af-4ab5-83d3-9831207eff86) - ) - (wire (pts (xy 72.39 160.02) (xy 72.39 129.54)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 8e98f9fb-4605-4c5b-8d15-0281cf30b194) - ) - (wire (pts (xy 203.2 161.29) (xy 88.9 161.29)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 90c8441f-c21e-4bbe-8ef9-3e031bf50923) - ) - (wire (pts (xy 246.38 41.91) (xy 246.38 44.45)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 91759435-b176-4595-9a50-e47d954220fa) - ) - (wire (pts (xy 31.75 162.56) (xy 36.83 162.56)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 938d2283-0856-41b8-9244-d4a71c410968) - ) - (wire (pts (xy 82.55 53.34) (xy 82.55 55.88)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 951f1452-6f4e-4bf1-932f-3a303c8fff72) - ) - (wire (pts (xy 224.79 41.91) (xy 233.68 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 974acd5d-3428-4049-abf8-1984b5e300d0) - ) - (bus (pts (xy 259.08 91.44) (xy 259.08 93.98)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 997c88d2-00f8-4511-a9b5-fcbff148a8ac) - ) - (bus (pts (xy 194.31 97.79) (xy 194.31 100.33)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 9cd1c7b2-bc08-4af7-8305-3886d1d0224c) - ) - - (wire (pts (xy 196.85 86.36) (xy 215.9 86.36)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 9e9b857a-bfdc-4306-9950-b0fc314fe9b0) - ) - (bus (pts (xy 203.2 66.04) (xy 259.08 66.04)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a0e6db8a-a272-4440-9945-6b45f606206c) - ) - - (wire (pts (xy 213.36 135.89) (xy 212.09 135.89)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a19da5f1-9c27-4d70-b969-85f621b32dad) - ) - (wire (pts (xy 39.37 149.86) (xy 39.37 157.48)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a1df5451-e6d5-4708-b360-c845636c74df) - ) - (bus (pts (xy 200.66 66.04) (xy 203.2 66.04)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a2c51862-3237-4885-930b-9a649e029530) - ) - - (wire (pts (xy 39.37 124.46) (xy 59.69 124.46)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a3794cde-f042-4b1d-b096-1aba423983ca) - ) - (wire (pts (xy 31.75 177.8) (xy 36.83 177.8)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a43cc086-195d-4f0f-963f-19d8f9e8b7b3) - ) - (wire (pts (xy 196.85 91.44) (xy 215.9 91.44)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a582c092-b8b2-43ce-a9aa-e9331a0408ee) - ) - (wire (pts (xy 31.75 152.4) (xy 52.07 152.4)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a613b4fc-4718-48b4-bde2-f47ee3e86929) - ) - (wire (pts (xy 27.94 124.46) (xy 29.21 124.46)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a7cdffd4-09a3-4826-9a70-b5b087b40a63) - ) - (wire (pts (xy 54.61 116.84) (xy 54.61 162.56)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a8b985b0-d63c-40c5-935a-8ce997f8d821) - ) - (wire (pts (xy 196.85 78.74) (xy 215.9 78.74)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a96475f4-2fab-4033-82b6-da64ff8d1836) - ) - (wire (pts (xy 17.78 44.45) (xy 17.78 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a9e652d5-7b32-45bd-b309-ccb28a184b20) - ) - (bus (pts (xy 194.31 66.04) (xy 200.66 66.04)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid aa7edc35-7587-46f8-8c50-1a32eccb10a8) - ) - (bus (pts (xy 138.43 158.75) (xy 138.43 149.86)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ab4f4fb2-7c25-4278-9646-a952ec632ccb) - ) - - (wire (pts (xy 31.75 167.64) (xy 80.01 167.64)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ad4fd315-abaf-4e53-a780-86ddb8cb79ba) - ) - (wire (pts (xy 31.75 160.02) (xy 72.39 160.02)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ada9a8c4-e31d-4b37-b80b-ed4205bfc42f) - ) - (bus (pts (xy 194.31 76.2) (xy 194.31 78.74)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b169d4ac-89df-4505-b761-4bd5289b6792) - ) - - (wire (pts (xy 36.83 170.18) (xy 36.83 177.8)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b1bde04e-f6ce-42c3-93c7-3fe9107e010a) - ) - (wire (pts (xy 246.38 99.06) (xy 256.54 99.06)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b35602f1-fa33-415f-af11-01687926efc9) - ) - (wire (pts (xy 196.85 95.25) (xy 215.9 95.25)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b36f6e16-483c-4e70-950d-686e8ffcfbab) - ) - (wire (pts (xy 85.09 41.91) (xy 86.36 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b47c5a6f-4efb-4fd4-ad58-255956751cd2) - ) - (bus (pts (xy 194.31 76.2) (xy 194.31 66.04)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b9c4e5d7-05a8-4407-8eae-75be2430f970) - ) - - (wire (pts (xy 52.07 152.4) (xy 52.07 129.54)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b9fab4be-f2b5-45d9-adb5-5cb5d1a75aaa) - ) - (wire (pts (xy 80.01 124.46) (xy 72.39 124.46)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ba7125f2-ca0a-45c6-bffb-5b267c140123) - ) - (wire (pts (xy 27.94 53.34) (xy 40.64 53.34)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid bb072765-81d9-4b14-a6a2-6950a00b5343) - ) - (wire (pts (xy 52.07 41.91) (xy 85.09 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid bb5856cc-6823-4aca-891c-35a157e404f9) - ) - (wire (pts (xy 36.83 154.94) (xy 36.83 162.56)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid bc5c090d-1796-4200-838e-40fb1a4270d7) - ) - (wire (pts (xy 57.15 99.06) (xy 57.15 114.3)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid bcaf3053-e5c8-4bc6-89a6-d21721dfc32e) - ) - (wire (pts (xy 17.78 55.88) (xy 17.78 53.34)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid bd03d864-716a-486c-85e4-b54dc5d8587f) - ) - (wire (pts (xy 39.37 165.1) (xy 39.37 157.48)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid bfb1aae6-72c0-4083-b07b-1ec74b1ee9fd) - ) - (wire (pts (xy 196.85 88.9) (xy 215.9 88.9)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c049346a-997e-4e80-b080-24fa66bd0cf2) - ) - (bus (pts (xy 259.08 78.74) (xy 259.08 86.36)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c150108a-3ef1-47db-b2a8-0d3cdb4700d7) - ) - (bus (pts (xy 259.08 93.98) (xy 259.08 101.6)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c186d4ea-39fe-4cd8-a06f-45ae1bf3b0bb) - ) - - (wire (pts (xy 39.37 172.72) (xy 39.37 165.1)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c2eba766-76af-4a47-b2e2-fe6b22a020b0) - ) - (wire (pts (xy 246.38 91.44) (xy 256.54 91.44)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c348235c-ce91-4f66-90f7-b4a8d4e1dff0) - ) - (wire (pts (xy 52.07 55.88) (xy 64.77 55.88)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c348c24b-a1e1-4732-88f2-4b55f07a1209) - ) - (wire (pts (xy 31.75 170.18) (xy 36.83 170.18)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c34e3961-efc4-409b-b336-3c600721cc15) - ) - (wire (pts (xy 31.75 180.34) (xy 39.37 180.34)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c3f9a2b3-fee8-42c0-8872-056421f38a20) - ) - (wire (pts (xy 246.38 83.82) (xy 256.54 83.82)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c495aca4-70da-4716-9fa5-3b7fe47a6d56) - ) - (wire (pts (xy 31.75 157.48) (xy 39.37 157.48)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c5315943-95ae-47db-92de-8c0e7531977e) - ) - (bus (pts (xy 194.31 93.98) (xy 194.31 97.79)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c813460c-0006-4014-8a92-583317d0c753) - ) - - (wire (pts (xy 57.15 119.38) (xy 57.15 127)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c85c2c4a-1832-4178-84c8-d60317137ea6) - ) - (wire (pts (xy 88.9 114.3) (xy 88.9 161.29)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ca659b2b-002a-45e1-8ad1-b87873840911) - ) - (wire (pts (xy 233.68 31.75) (xy 233.68 30.48)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid cc171098-5039-4da2-b1d2-f9cb0aa14341) - ) - (wire (pts (xy 85.09 127) (xy 72.39 127)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid cc4ab180-3129-4ce1-ac7b-a09dd1232878) - ) - (wire (pts (xy 111.76 140.97) (xy 111.76 139.7)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ce851d77-1c6e-4a27-9899-7d44d78845b0) - ) - (wire (pts (xy 198.12 53.34) (xy 198.12 63.5)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid d3dc330c-08bf-46f4-969e-60e2ed946821) - ) - (wire (pts (xy 52.07 129.54) (xy 59.69 129.54)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid d51df719-6d12-4ef5-8a82-82a27c17087f) - ) - (bus (pts (xy 259.08 66.04) (xy 259.08 76.2)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid d54edc28-bef1-4b4f-8d4f-1e0d59deb444) - ) - - (wire (pts (xy 212.09 125.73) (xy 212.09 128.27)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid d58e7793-9cad-4020-a8e5-506e164813ef) - ) - (wire (pts (xy 36.83 162.56) (xy 36.83 170.18)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid d831261d-8b38-476c-bec8-d5d741122b94) - ) - (bus (pts (xy 138.43 158.75) (xy 194.31 158.75)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid db012ae4-7559-4036-ab29-2c2c69648cb8) - ) - - (wire (pts (xy 212.09 128.27) (xy 215.9 128.27)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid db8b05c0-32d2-450b-9e15-b5fea672169d) - ) - (wire (pts (xy 201.93 130.81) (xy 204.47 130.81)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid de0e9cf0-168b-4946-8cb9-70c53ccee38a) - ) - (wire (pts (xy 259.08 30.48) (xy 259.08 31.75)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid e1ebeb12-6b50-474c-a2c1-c692725b104b) - ) - (wire (pts (xy 224.79 38.1) (xy 224.79 39.37)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid e36382f1-7f6b-44d7-8111-ed14bbc17cf9) - ) - (wire (pts (xy 266.7 30.48) (xy 266.7 27.94)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid e5e366c4-f4eb-4f3d-81ec-c0b85bdfac97) - ) - (wire (pts (xy 54.61 111.76) (xy 59.69 111.76)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid e82885a1-c96f-4146-b064-8271114ad7d7) - ) - (wire (pts (xy 31.75 165.1) (xy 39.37 165.1)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid eae74a3a-6ed3-4098-824a-f5810c679039) - ) - (wire (pts (xy 111.76 148.59) (xy 111.76 149.86)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid eb720d4d-ddf3-4213-9341-9f28c14168a5) - ) - (wire (pts (xy 39.37 180.34) (xy 39.37 172.72)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid eebf9c87-2094-45e3-9714-7534f143712d) - ) - (wire (pts (xy 82.55 63.5) (xy 82.55 116.84)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid eee0b176-70fb-444c-a3c4-0a6813512fb1) - ) - (wire (pts (xy 27.94 121.92) (xy 39.37 121.92)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid f569159c-a034-49eb-b344-d224d8865d1b) - ) - (bus (pts (xy 194.31 78.74) (xy 194.31 81.28)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid f7261e32-ca63-494a-b747-6a74b99136ef) - ) - - (wire (pts (xy 36.83 177.8) (xy 36.83 184.15)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid f738f2e9-6b4f-4703-acfa-15b1a65c5d93) - ) - (wire (pts (xy 27.94 41.91) (xy 40.64 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid f839aa79-ee56-4e54-9f4f-9383073ab7ba) - ) - (wire (pts (xy 57.15 127) (xy 57.15 134.62)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid f8a4db66-5ded-4628-860d-4ab6672218fc) - ) - (wire (pts (xy 196.85 73.66) (xy 215.9 73.66)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid fa91bad2-a0a8-44d7-9aa7-0dfb295b78b8) - ) - (wire (pts (xy 259.08 39.37) (xy 259.08 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid fdbfcbb5-b1c0-4c39-aa37-f1226c604d28) - ) - (wire (pts (xy 204.47 160.02) (xy 204.47 143.51)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid fe5f6520-715d-4226-9db5-fa27432cc1d4) - ) - - (text "DIO" (at 99.06 143.51 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 03d2df1b-5a34-47d0-a62f-b61589478d63) - ) - (text "USART1_TX" (at 31.75 111.76 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 06346661-796d-4b21-b157-62c3be050940) - ) - (text "3V3" (at 99.06 140.97 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 0c4283d5-9010-4b73-b278-0316ed085764) - ) - (text "VCC (+5V)" (at 25.4 166.37 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 15352735-59df-4bbd-b6c3-834b5d7c0a66) - ) - (text "GND" (at 25.4 171.45 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 17733b1b-4a78-4a83-b243-c26fd3b957d8) - ) - (text "OM UI Board J19" (at 13.97 109.22 0) - (effects (font (size 1.27 1.27) (thickness 0.254) bold) (justify left bottom)) - (uuid 2fe5ee3b-0837-47c0-8829-feb2e6798925) - ) - (text "GND" (at 25.4 179.07 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 32ee1ff2-3f26-403b-9e4b-ae76f85a071e) - ) - (text "RBUMP" (at 25.4 153.67 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 399a7c32-f27f-4ab9-be41-a68a9d6ec3a6) - ) - (text "CLK" (at 99.06 146.05 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 428ca184-d855-4198-83fc-f1334ecc3fd5) - ) - (text "LBUMP" (at 25.4 168.91 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 458dba48-8350-4fb7-9083-b12a7e401238) - ) - (text "LIFTX" (at 25.4 176.53 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 61405136-b262-414c-a2cd-929cb31c8133) - ) - (text "Bridge R40\n(or move R38)\nto get BTN_PLAY\non GPIO PC11" - (at 228.6 142.24 0) - (effects (font (size 1.27 1.27) italic) (justify left bottom)) - (uuid 731b089a-2ec4-4fcc-81bf-fd4ca7c4b526) - ) - (text "VCC (+5V)" (at 25.4 158.75 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 7b9a08ae-d686-4194-9fe8-f572a49fccb8) - ) - (text "GND" (at 25.4 163.83 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 7f406bba-b034-40ca-b1d8-90df1eac3b89) - ) - (text "GND" (at 99.06 148.59 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 889d533c-9888-444b-a385-d21bab09c9e0) - ) - (text "LIFT" (at 25.4 161.29 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 8b43dad5-f176-4a7b-9556-05879eea60f7) - ) - (text "Bridge R41\n(or move R39)\nto get BTN_HOME\non GPIO PC12" - (at 228.6 132.08 0) - (effects (font (size 1.27 1.27) italic) (justify left bottom)) - (uuid 9ee3994f-287f-4815-bd07-46ff49083a21) - ) - (text "VCC (+5V)" (at 25.4 173.99 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid ad0a5c13-fb1a-489f-9b7d-31bf294c5cce) - ) - (text "GND" (at 25.4 156.21 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid b57e2317-747e-4a90-8c2e-e6677337c400) - ) - (text "Optional (MOD_HALL):\nSolder Cable from R74/Q5\nto U5 (Pin 2)\nto get Stop Hall (ST2)\nto GPIO PB6" - (at 101.6 3.81 0) - (effects (font (size 1.27 1.27) italic) (justify left bottom)) - (uuid c792bcdf-3949-482f-85cd-f001dbaafcdd) - ) - (text "Optional (MOD_HALL):\nSolder Cable from R83/Q6\nto U5/Pin-10\nto get Signal to PB8" - (at 158.75 1.27 0) - (effects (font (size 1.27 1.27) italic) (justify left bottom)) - (uuid d686f8a5-6052-49a9-86a0-7b7ca09fcefd) - ) - (text "USART1_RX" (at 31.75 114.3 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid de6e8298-806a-49fa-8440-48c2862a6f9d) - ) - (text "Optional (MOD_HALL):\nSolder Cable fro R61/Q4\nto U5/Pin-3\nto get Signal to PB7" - (at 130.81 1.27 0) - (effects (font (size 1.27 1.27) italic) (justify left bottom)) - (uuid e1f4994f-2c34-462a-af33-dea41b30b8db) - ) - (text "Optional (MOD_STOP):\n1. Bridge R45 (or move R43)\n to get Stop Button (STOP)\n to GPIO PA15\n2. Bridge R44 (or move R42)\n to get Stop Button (PC8_STOP)\n to GPIO PC10" - (at 71.12 38.1 0) - (effects (font (size 1.27 1.27) italic) (justify left bottom)) - (uuid e438b7d7-b6a1-453b-813f-bc042ba0b731) - ) - (text "VCC (+5V)" (at 25.4 181.61 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid fd50bd4a-532c-461d-b1d7-304bfb9529b8) - ) - - (label "U1.PA4" (at 213.36 97.79 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 138901e8-aa01-4b63-8574-50ec3e511557) - ) - (label "U1.PB10" (at 214.63 88.9 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 170c202f-3227-4076-b759-4f8d0ebc0e28) - ) - (label "U1.PC7" (at 213.36 107.95 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 185bd221-126d-47d7-8b40-bc6c9bbae076) - ) - (label "U1.PB1" (at 213.36 83.82 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 20a3d9f4-3bc8-4da1-8018-146540afe325) - ) - (label "U1.PA6" (at 213.36 76.2 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 30b3525d-f1db-4784-971a-4deda4e085d6) - ) - (label "U1.PF5" (at 247.65 73.66 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 30d8b9fb-913c-496c-9287-08a18af15a9b) - ) - (label "U1.PB13" (at 247.65 99.06 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 55f15355-1a2c-4ac9-96e9-7e0c2ea102d6) - ) - (label "U1.PC6" (at 213.36 110.49 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 5b406eb2-2b6b-494b-ac6d-ad6ade43880b) - ) - (label "U1.PC4" (at 213.36 81.28 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 5b9f539d-f065-4b64-a0ce-c1e73112f524) - ) - (label "U1.PA0" (at 213.36 104.14 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 6575fd31-29b2-443a-be10-6160716d6714) - ) - (label "U2{PA[0..15] PB[0..15] PC[0..15] PD2 PF[0..7]}" (at 190.5 158.75 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 785a7d5b-eab7-4d13-8f0f-dd456da1808d) - ) - (label "U1.PF4" (at 247.65 76.2 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 7ced3945-3542-4565-aa95-9adaddb82626) - ) - (label "U1.PA5" (at 213.36 95.25 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 866ecee3-91d8-4e9f-9c3a-0bee7969e5fd) - ) - (label "U1.PA7" (at 213.36 73.66 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid a20df970-95a3-4951-acdb-e0920bb094e6) - ) - (label "U1.PC11" (at 204.47 135.89 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid a2f8844f-9ad2-417f-82b6-b5d3277c5ea4) - ) - (label "U1.PC10" (at 198.12 62.23 90) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid aba61cea-0c51-4faa-ac3a-6fbb08ec4cea) - ) - (label "U1.PB2" (at 213.36 91.44 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid ae1ceef6-daf9-4810-96f7-727c146c637c) - ) - (label "U1.PB12" (at 247.65 86.36 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid b248189d-4f73-4247-a853-1d278e63081e) - ) - (label "U1.PC5" (at 213.36 78.74 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid bb19d67e-fcb6-43ac-8e22-fba061fd308f) - ) - (label "U1.PB11" (at 247.65 83.82 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid c875bb71-3151-4dff-ad5f-897a7022b8aa) - ) - (label "U1.PB15" (at 247.65 91.44 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid ce4c88c2-f98c-4f29-9660-9ec9fbafe695) - ) - (label "U1.PB0" (at 213.36 86.36 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid e7fbfcd1-e77d-4016-af15-afa2b63aedaf) - ) - (label "U1.PC12" (at 204.47 125.73 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid eeef319a-36ff-44e3-bb38-74d73bbb3846) - ) - (label "U1.PA1" (at 213.36 101.6 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid f47aaa52-51ce-42a6-98b5-36f1b90ae26d) - ) - (label "U1.PA15" (at 200.66 62.23 90) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid f73e3d65-6ff1-486e-ac15-e43da944059a) - ) - (label "U1.PB14" (at 247.65 88.9 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid f9970a58-a1d8-4fa6-9015-51f0017a31b9) - ) - - (hierarchical_label "GND Pin4" (shape input) (at 27.94 124.46 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 4868d5af-5cd6-43b5-921a-b02248786b13) - ) - (hierarchical_label "LED_TX Pin3" (shape input) (at 27.94 111.76 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 57aa25d4-572d-4eb8-af1e-bd9c01a9d7fb) - ) - (hierarchical_label "BTN_ANY" (shape output) (at 92.71 111.76 0) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 7784de4a-a53a-4850-881e-975b1bb78133) - ) - (hierarchical_label "LED_RX Pin2" (shape output) (at 27.94 114.3 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid ad08da9a-7e1c-49c0-acf2-bb6a5d58d8a3) - ) - (hierarchical_label "PIN11" (shape bidirectional) (at 27.94 135.89 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid c4a4dcbe-fb78-4bcd-b556-1887760a5a6f) - ) - (hierarchical_label "+5V Pin1" (shape input) (at 27.94 121.92 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid de9079a5-dada-48d0-b035-4d935727ea03) - ) - - (symbol (lib_id "Device:R") (at 85.09 59.69 180) (unit 1) - (in_bom no) (on_board no) - (uuid 083089b6-129f-42b4-b3f0-7fcf66df27d1) - (property "Reference" "R43" (id 0) (at 85.09 59.69 90)) - (property "Value" "0" (id 1) (at 83.82 55.88 90)) - (property "Footprint" "" (id 2) (at 86.868 59.69 90) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 85.09 59.69 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid d339d57d-b14f-49f3-9303-338a7e6709e7)) - (pin "2" (uuid 682a0990-237c-4751-89a8-a1f519d13314)) - ) - - (symbol (lib_id "Connector:Conn_01x04_Male") (at 105.41 146.05 0) (mirror x) (unit 1) - (in_bom yes) (on_board yes) - (uuid 08e46c7f-bae2-44b2-a0d3-3a429244e8bb) - (property "Reference" "JP3" (id 0) (at 105.41 134.62 0)) - (property "Value" "SWDIO" (id 1) (at 105.41 137.16 0)) - (property "Footprint" "" (id 2) (at 105.41 146.05 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 105.41 146.05 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 35c76693-1a49-4c42-83ac-3e0df9524162)) - (pin "2" (uuid 5f9d9f84-f43d-414c-9042-81dc9a19ee39)) - (pin "3" (uuid a394339d-dc4d-4a67-8299-3b5d9729f1c2)) - (pin "4" (uuid 291902c7-2e25-4063-82ad-7907c0f33151)) - ) - - (symbol (lib_id "power:+5V") (at 39.37 120.65 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 18293dfd-72fd-427e-b8da-b55e9fbbb57f) - (property "Reference" "#PWR?" (id 0) (at 39.37 124.46 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+5V" (id 1) (at 39.751 116.2558 0)) - (property "Footprint" "" (id 2) (at 39.37 120.65 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 39.37 120.65 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 58e9ae05-ae64-4607-abf9-d255bda98ecc)) - ) - - (symbol (lib_id "Device:C") (at 266.7 35.56 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 19675afd-71b1-424f-beb5-53f663da1b4b) - (property "Reference" "C7" (id 0) (at 269.621 34.3916 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "C" (id 1) (at 269.621 36.703 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "" (id 2) (at 267.6652 39.37 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 266.7 35.56 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 16aa9a21-7bd3-4d6f-bdcb-a6de2cbfc141)) - (pin "2" (uuid bc14a9a6-2f7a-4845-aa7f-a44e1a9cf413)) - ) - - (symbol (lib_id "Device:C") (at 233.68 35.56 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 220076b2-cb81-46a4-a7ba-938a2b232bc1) - (property "Reference" "C5" (id 0) (at 236.601 34.3916 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "C" (id 1) (at 236.601 36.703 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "" (id 2) (at 234.6452 39.37 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 233.68 35.56 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid e5d0473f-799c-4552-b561-10d6173d20a6)) - (pin "2" (uuid 994deefb-31a5-4bf4-ae9d-f4bdeace16d6)) - ) - - (symbol (lib_id "Connector_Generic:Conn_02x08_Odd_Even") (at 64.77 119.38 0) (unit 1) - (in_bom yes) (on_board yes) (fields_autoplaced) - (uuid 2fac37d7-a11b-49c5-a46d-36cf738e9365) - (property "Reference" "JP2" (id 0) (at 66.04 105.41 0)) - (property "Value" "OM UI Board" (id 1) (at 66.04 107.95 0)) - (property "Footprint" "" (id 2) (at 64.77 119.38 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 64.77 119.38 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 851aee06-d00c-491a-a46d-8e672069ae7a)) - (pin "10" (uuid 5859cf2c-3e8d-445c-a920-cc06fb795b11)) - (pin "11" (uuid c0f46ed5-b499-43c2-b707-46497c5c547a)) - (pin "12" (uuid caae08c7-b1ac-440f-a95e-00221907a312)) - (pin "13" (uuid fdb4fee4-3ff4-4b40-99c1-296ed42d5ade)) - (pin "14" (uuid 74304662-b2fa-4d4c-9562-d4654b20a258)) - (pin "15" (uuid 03ca4dd7-18c7-4874-be67-af1a91085255)) - (pin "16" (uuid 65db2243-b075-4653-8fdd-acfeb6bd6afa)) - (pin "2" (uuid b7126d34-ec55-40b1-91aa-513b4258b8b2)) - (pin "3" (uuid d9cc41bc-38dd-4f08-87b3-92fd4ed7477a)) - (pin "4" (uuid 4765c8b5-ec16-4851-b926-0fc8091cbf63)) - (pin "5" (uuid 09e40ede-3fb3-4090-95ea-660e54f0fa7d)) - (pin "6" (uuid 29082586-fdcc-48ad-b5e4-585d18c9a0f2)) - (pin "7" (uuid 0f788f3f-0df3-42ce-a298-f1e53dca1ff9)) - (pin "8" (uuid 9a4e426d-c366-48c5-9f72-e2aa61371f9b)) - (pin "9" (uuid 5882a8bd-bd0b-4ff4-aeb8-5db5a82fc52a)) - ) - - (symbol (lib_id "power:GND") (at 64.77 55.88 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 37202953-a20f-4a6b-b47a-722bb8fcb260) - (property "Reference" "#PWR?" (id 0) (at 64.77 62.23 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 64.897 60.2742 0)) - (property "Footprint" "" (id 2) (at 64.77 55.88 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 64.77 55.88 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 7df2c438-8e5e-453e-a69c-2206d66d1e5f)) - ) - - (symbol (lib_id "Device:R") (at 208.28 130.81 270) (unit 1) - (in_bom yes) (on_board yes) - (uuid 38f8d11d-dba1-4b8e-831a-18b86944b419) - (property "Reference" "R39" (id 0) (at 208.28 130.81 90)) - (property "Value" "0" (id 1) (at 212.09 132.08 90)) - (property "Footprint" "" (id 2) (at 208.28 129.032 90) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 208.28 130.81 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 33d71a4e-4335-4350-97c6-204538c94c7b)) - (pin "2" (uuid 356e8a72-fe40-4095-904a-6c21f5945796)) - ) - - (symbol (lib_id "Regulator_Linear:AMS1117-3.3") (at 246.38 30.48 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 395e2a64-9334-4df7-8ce2-0c2b64ad8634) - (property "Reference" "U3" (id 0) (at 246.38 24.3332 0)) - (property "Value" "AMS1117-3.3" (id 1) (at 246.38 26.6446 0)) - (property "Footprint" "Package_TO_SOT_SMD:SOT-223-3_TabPin2" (id 2) (at 246.38 25.4 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "http://www.advanced-monolithic.com/pdf/ds1117.pdf" (id 3) (at 248.92 36.83 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid d388e283-5c9e-4d03-9fd3-0030a5d7dc23)) - (pin "2" (uuid d7601e35-75d8-47d2-92e8-e7f9804bf9dd)) - (pin "3" (uuid 29038f14-ca15-415d-8a48-01474b5cec0a)) - ) - - (symbol (lib_id "Device:R") (at 208.28 138.43 270) (unit 1) - (in_bom yes) (on_board yes) - (uuid 4420c194-efbd-4dca-ba3e-f1912c05db12) - (property "Reference" "R38" (id 0) (at 208.28 138.43 90)) - (property "Value" "0" (id 1) (at 212.09 139.7 90)) - (property "Footprint" "" (id 2) (at 208.28 136.652 90) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 208.28 138.43 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid aa3a45f1-5147-41ce-807a-bef4b4f67246)) - (pin "2" (uuid 9ee300a5-aae5-482d-8717-fc329f6ac946)) - ) - - (symbol (lib_id "Connector:Conn_01x02_Male") (at 46.99 55.88 0) (mirror x) (unit 1) - (in_bom yes) (on_board yes) - (uuid 4627ba8c-d0d0-47c5-bd6f-b019060f1e9c) - (property "Reference" "JP5" (id 0) (at 49.53 46.99 0) - (effects (font (size 1.27 1.27)) (justify right)) - ) - (property "Value" "Conn_01x02_Male" (id 1) (at 55.88 49.53 0) - (effects (font (size 1.27 1.27)) (justify right)) - ) - (property "Footprint" "" (id 2) (at 46.99 55.88 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 46.99 55.88 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 99147cd6-f6d4-4e41-a460-d68e664dbb93)) - (pin "2" (uuid 5b984127-517d-4569-9fc4-8caa8020b1e2)) - ) - - (symbol (lib_id "Connector:Conn_01x02_Female") (at 45.72 44.45 0) (mirror x) (unit 1) - (in_bom yes) (on_board yes) (fields_autoplaced) - (uuid 50b03ac0-526c-4ab7-a9aa-8d4e0cae1806) - (property "Reference" "J?" (id 0) (at 46.99 44.4501 0) - (effects (font (size 1.27 1.27)) (justify left) hide) - ) - (property "Value" "Conn_01x02_Female" (id 1) (at 46.99 43.1801 0) - (effects (font (size 1.27 1.27)) (justify left) hide) - ) - (property "Footprint" "" (id 2) (at 45.72 44.45 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 45.72 44.45 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid b8014777-31f1-48d3-9367-400f2cc18a32)) - (pin "2" (uuid 75f14627-fef5-413b-a7a6-a2ce39dc0a8e)) - ) - - (symbol (lib_id "Switch:SW_Push_Open") (at 22.86 41.91 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 58affd50-5e74-4498-9d0e-0d9abaeadf7c) - (property "Reference" "STOP" (id 0) (at 22.86 36.83 0)) - (property "Value" "SW_Push_Open" (id 1) (at 22.86 39.37 0)) - (property "Footprint" "" (id 2) (at 22.86 36.83 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 22.86 36.83 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid f256f07f-10ed-447c-940b-9c7eb243a843)) - (pin "2" (uuid 0b553d42-878f-4ae8-9314-ab126425f9d6)) - ) - - (symbol (lib_id "power:+3.3V") (at 111.76 139.7 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 62d7b7b5-446b-43de-abc9-9f1b800370bd) - (property "Reference" "#PWR?" (id 0) (at 111.76 143.51 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+3.3V" (id 1) (at 112.141 135.3058 0)) - (property "Footprint" "" (id 2) (at 111.76 139.7 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 111.76 139.7 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 36e858cd-faee-4013-92a8-ce5e7bd3732e)) - ) - - (symbol (lib_id "power:+3.3V") (at 266.7 27.94 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 633f5129-49b2-4f2e-a604-92695fc94191) - (property "Reference" "#PWR?" (id 0) (at 266.7 31.75 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+3.3V" (id 1) (at 267.081 23.5458 0)) - (property "Footprint" "" (id 2) (at 266.7 27.94 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 266.7 27.94 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 8bb5ac09-0033-4529-9bc8-0dd6eaeda5df)) - ) - - (symbol (lib_id "power:GND") (at 36.83 184.15 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 72dba887-ccea-419e-a4d9-6c96b741ceba) - (property "Reference" "#PWR?" (id 0) (at 36.83 190.5 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 36.957 188.5442 0)) - (property "Footprint" "" (id 2) (at 36.83 184.15 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 36.83 184.15 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid d313c8e1-f67e-4b7b-82f4-038de48e6f3c)) - ) - - (symbol (lib_id "power:GND") (at 76.2 134.62 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 74f7e915-7a71-4094-9d35-3d66bf391d92) - (property "Reference" "#PWR?" (id 0) (at 76.2 140.97 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 76.327 139.0142 0)) - (property "Footprint" "" (id 2) (at 76.2 134.62 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 76.2 134.62 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 7bd04f7d-4201-49af-8e54-0934aaf1fd03)) - ) - - (symbol (lib_id "power:+5V") (at 224.79 27.94 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 75492b6e-acf1-4c40-a091-d9f1ece6fad9) - (property "Reference" "#PWR?" (id 0) (at 224.79 31.75 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+5V" (id 1) (at 225.171 23.5458 0)) - (property "Footprint" "" (id 2) (at 224.79 27.94 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 224.79 27.94 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid e97f5962-47b1-4c32-bf55-7bdf22b45a8c)) - ) - - (symbol (lib_id "Connector:Conn_01x12_Male") (at 26.67 165.1 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 78e51eb1-f9f9-40e3-8e10-515508daac21) - (property "Reference" "JP1" (id 0) (at 26.67 146.05 0)) - (property "Value" "Conn_01x12_Male" (id 1) (at 26.67 148.59 0)) - (property "Footprint" "" (id 2) (at 26.67 165.1 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 26.67 165.1 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid babc77cf-1bd4-4e8b-91ec-4c13333df050)) - (pin "10" (uuid 20a875b5-4912-4df9-be0d-8b45493b378c)) - (pin "11" (uuid d9ec9f7d-7d1a-4804-ad85-f9a22f3e830e)) - (pin "12" (uuid 9324a635-78e3-463d-b72a-3c2de5af2e5f)) - (pin "2" (uuid a0b478db-620a-4483-8209-915ae460245d)) - (pin "3" (uuid b9c425af-c7e7-49e6-b237-778a87ebb25a)) - (pin "4" (uuid 4a2f51f4-fed7-4853-bff7-4012a0ec9a06)) - (pin "5" (uuid c30888ff-ad24-4629-bd64-a7a260525fba)) - (pin "6" (uuid 9e8809c5-c5c7-4e23-a00f-bc9d60f20752)) - (pin "7" (uuid 8c692ea3-2df2-4829-b621-38cc4d5df014)) - (pin "8" (uuid fb363051-9418-4502-81c7-f26acdda7dcf)) - (pin "9" (uuid adfa7d12-1b1b-4fc9-83e2-368ca7cfb16c)) - ) - - (symbol (lib_id "power:GND") (at 57.15 134.62 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 86005eb7-886c-441b-b4e5-78cda643cf61) - (property "Reference" "#PWR?" (id 0) (at 57.15 140.97 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 57.277 139.0142 0)) - (property "Footprint" "" (id 2) (at 57.15 134.62 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 57.15 134.62 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 02d40123-4126-4e94-b519-ca53bdbed76b)) - ) - - (symbol (lib_id "Device:C") (at 224.79 35.56 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 8a1bc93f-7f65-4331-a08e-cbe3642f0139) - (property "Reference" "C4" (id 0) (at 227.711 34.3916 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "C" (id 1) (at 227.711 36.703 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "" (id 2) (at 225.7552 39.37 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 224.79 35.56 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 8276913e-b6e0-410a-b1d9-d3dbb750e4ea)) - (pin "2" (uuid bc7b1df9-9ead-49d4-a2b8-9da592b49853)) - ) - - (symbol (lib_id "power:GND") (at 111.76 149.86 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 8b5f0da7-49af-477f-90bf-8d2d8a07e7ce) - (property "Reference" "#PWR?" (id 0) (at 111.76 156.21 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 111.887 154.2542 0)) - (property "Footprint" "" (id 2) (at 111.76 149.86 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 111.76 149.86 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 164dd26c-a8c3-4af5-b62d-660eef3fc7c8)) - ) - - (symbol (lib_id "power:GND") (at 29.21 125.73 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 91a3c0bf-913f-482f-bf80-1ab84871028b) - (property "Reference" "#PWR?" (id 0) (at 29.21 132.08 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 29.337 130.1242 0)) - (property "Footprint" "" (id 2) (at 29.21 125.73 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 29.21 125.73 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid ebe2b92d-2f8e-498f-a341-5c972ee40f1b)) - ) - - (symbol (lib_id "Connector:Conn_01x02_Male") (at 46.99 44.45 0) (mirror x) (unit 1) - (in_bom yes) (on_board yes) - (uuid a0bb5f40-4404-467f-b65f-85160b628d15) - (property "Reference" "JP6" (id 0) (at 49.53 35.56 0) - (effects (font (size 1.27 1.27)) (justify right)) - ) - (property "Value" "Conn_01x02_Male" (id 1) (at 55.88 38.1 0) - (effects (font (size 1.27 1.27)) (justify right)) - ) - (property "Footprint" "" (id 2) (at 46.99 44.45 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 46.99 44.45 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 0ecc23c4-dcfe-4c23-a418-e1adf42404b3)) - (pin "2" (uuid 5e4372f9-f802-4c77-bfd6-07ba499ea6aa)) - ) - - (symbol (lib_id "Switch:SW_Push_Open") (at 22.86 53.34 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid a1b93cdd-8a6d-44d4-99d3-39682364e361) - (property "Reference" "PC8_STOP" (id 0) (at 22.86 48.26 0)) - (property "Value" "SW_Push_Open" (id 1) (at 22.86 50.8 0)) - (property "Footprint" "" (id 2) (at 22.86 48.26 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 22.86 48.26 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 918887da-388a-4c1b-8afe-c74488437393)) - (pin "2" (uuid e6a6ae1a-b329-4a7e-89a7-c265e3705bfd)) - ) - - (symbol (lib_id "Connector:Conn_01x02_Female") (at 45.72 55.88 0) (mirror x) (unit 1) - (in_bom yes) (on_board yes) (fields_autoplaced) - (uuid ab4e6845-f76f-4b49-accb-1fafa06808fd) - (property "Reference" "J?" (id 0) (at 46.99 55.8801 0) - (effects (font (size 1.27 1.27)) (justify left) hide) - ) - (property "Value" "Conn_01x02_Female" (id 1) (at 46.99 54.6101 0) - (effects (font (size 1.27 1.27)) (justify left) hide) - ) - (property "Footprint" "" (id 2) (at 45.72 55.88 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 45.72 55.88 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 8a9e7321-08e5-4756-b8f4-df6962764411)) - (pin "2" (uuid 4e0dd93f-f95b-4b78-afc9-d150e50e9b12)) - ) - - (symbol (lib_id "power:+5V") (at 39.37 149.86 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid b5d0e7eb-d8cb-4d9c-9e1b-dc3924d43ec6) - (property "Reference" "#PWR?" (id 0) (at 39.37 153.67 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+5V" (id 1) (at 39.751 145.4658 0)) - (property "Footprint" "" (id 2) (at 39.37 149.86 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 39.37 149.86 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid ff03f0c7-57f4-46ec-a264-c474b6c8ee3d)) - ) - - (symbol (lib_id "Device:C") (at 259.08 35.56 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid beea65de-5e2e-4c6b-bb4b-cefce039b986) - (property "Reference" "C6" (id 0) (at 262.001 34.3916 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "C" (id 1) (at 262.001 36.703 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "" (id 2) (at 260.0452 39.37 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 259.08 35.56 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 74726bda-0354-41e8-bb15-0ee87743910a)) - (pin "2" (uuid e451bdc4-e7dd-48fb-ae62-aad9d4ed931e)) - ) - - (symbol (lib_id "power:GND") (at 246.38 44.45 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid c29ba821-51f2-4da9-9f11-12d982a42b2c) - (property "Reference" "#PWR?" (id 0) (at 246.38 50.8 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 246.507 48.8442 0)) - (property "Footprint" "" (id 2) (at 246.38 44.45 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 246.38 44.45 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid b307d222-48b8-444a-aa7b-247a7727b12e)) - ) - - (symbol (lib_id "Device:R") (at 90.17 41.91 270) (unit 1) - (in_bom no) (on_board no) - (uuid c4b57d3e-710d-475f-aa61-8e90080ad6df) - (property "Reference" "R45" (id 0) (at 90.17 41.91 90)) - (property "Value" "NP" (id 1) (at 90.17 39.37 90)) - (property "Footprint" "" (id 2) (at 90.17 40.132 90) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 90.17 41.91 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid a8853100-f84d-40d0-834b-a03f92836f26)) - (pin "2" (uuid 519ec5dc-a71e-4ea1-a3a0-ac0ce247c4f8)) - ) - - (symbol (lib_id "Device:R") (at 208.28 135.89 90) (unit 1) - (in_bom yes) (on_board yes) - (uuid c81fc09e-b4d0-44a4-b833-e09d55c8b346) - (property "Reference" "R40" (id 0) (at 208.28 135.89 90)) - (property "Value" "NP" (id 1) (at 213.36 134.62 90)) - (property "Footprint" "" (id 2) (at 208.28 137.668 90) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 208.28 135.89 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid e3062b58-b8b0-4f4b-bb4a-bd581fdf8a36)) - (pin "2" (uuid 14da96ee-6848-4869-ab8f-bb8a28c4be9c)) - ) - - (symbol (lib_id "Device:R") (at 82.55 59.69 180) (unit 1) - (in_bom no) (on_board no) - (uuid d0fbd26d-f56b-49a1-a832-5e7c5ba5e2bc) - (property "Reference" "R42" (id 0) (at 82.55 59.69 90)) - (property "Value" "0" (id 1) (at 81.28 55.88 90)) - (property "Footprint" "" (id 2) (at 84.328 59.69 90) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 82.55 59.69 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid f2c782de-523f-4650-8265-06812e4ea1dd)) - (pin "2" (uuid 830c8ac2-1cc3-4360-ae75-e59dee799ecf)) - ) - - (symbol (lib_id "Device:R") (at 208.28 125.73 90) (unit 1) - (in_bom yes) (on_board yes) - (uuid de75935a-8fc3-492c-a05f-6a081355ecc5) - (property "Reference" "R41" (id 0) (at 208.28 125.73 90)) - (property "Value" "NP" (id 1) (at 213.36 124.46 90)) - (property "Footprint" "" (id 2) (at 208.28 127.508 90) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 208.28 125.73 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 00e93f1b-b666-490b-bc81-8497a2388a50)) - (pin "2" (uuid 4663fd73-8627-4e3a-8b8d-56c494a951e8)) - ) - - (symbol (lib_id "Device:R") (at 90.17 53.34 270) (unit 1) - (in_bom no) (on_board no) - (uuid f378a2af-a21d-43de-b4b9-72600edc362e) - (property "Reference" "R44" (id 0) (at 90.17 53.34 90)) - (property "Value" "NP" (id 1) (at 90.17 50.8 90)) - (property "Footprint" "" (id 2) (at 90.17 51.562 90) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 90.17 53.34 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid de5618cd-db73-4a94-9157-392a0f425648)) - (pin "2" (uuid 5356649e-28d6-407b-bd62-19df6197bffd)) - ) - - (symbol (lib_id "power:GND") (at 64.77 44.45 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid fd594781-ae9f-4e01-a037-d34713adcf47) - (property "Reference" "#PWR?" (id 0) (at 64.77 50.8 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 64.897 48.8442 0)) - (property "Footprint" "" (id 2) (at 64.77 44.45 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 64.77 44.45 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 1513415b-e7be-4eee-8fcf-d5cbd3685d3c)) - ) - - (sheet (at 118.11 74.93) (size 39.37 74.93) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 6f8d9ecb-cf0e-4216-a06b-57d9741d7238) - (property "Sheet name" "MCU STM32F030 & ESP-WROOM-02" (id 0) (at 138.43 74.93 0) - (effects (font (size 1.27 1.27)) (justify bottom)) - ) - (property "Sheet file" "Subsheets/SA,SC-Type 10Button-12LED Board/mcu_stm32f030.kicad_sch" (id 1) (at 123.19 74.93 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "USART1_TX (PA2)" output (at 118.11 96.52 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid a6f2c01a-ccf5-44a9-88c0-346413ee046d) - ) - (pin "USART1_RX (PA3)" input (at 118.11 99.06 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid a380fae9-38f7-406f-9bc7-e4ba3f38bd84) - ) - (pin "SWDIO" input (at 118.11 143.51 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid b13cbe43-d584-4175-ac53-86f5831e84f2) - ) - (pin "SWCLK" input (at 118.11 146.05 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid e84b7782-5cad-41bf-a893-db8e7bca4dcc) - ) - (pin "U2{PA[0..15] PB[0..15] PC[0..15] PD2 PF[0..7]}" input (at 138.43 149.86 270) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid d54aafee-6cbf-4d7d-a3e7-5829d4a813cb) - ) - ) - - (sheet (at 215.9 71.12) (size 30.48 74.93) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid b9b194e8-2826-4619-83c8-f97e2646d4b1) - (property "Sheet name" "Buttons and LEDs" (id 0) (at 222.25 71.12 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - ) - (property "Sheet file" "Subsheets/SA,SC-Type 10Button-12LED Board/btns-leds.kicad_sch" (id 1) (at 210.82 146.05 0) - (effects (font (size 1.27 1.27)) (justify left top)) - ) - (pin "BTN_PLAY" input (at 215.9 138.43 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid d55da950-dda7-4418-9cc0-aaa2abff4897) - ) - (pin "BTN_S1" input (at 215.9 97.79 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid c97b7af9-2f8d-4116-a968-ce63e0536dc9) - ) - (pin "LED_S1" input (at 215.9 95.25 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 0be5aebc-a496-4b30-bde7-e07ab15c40a1) - ) - (pin "LED_4HR" input (at 215.9 73.66 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 22285bea-9f34-4a66-a89b-3591e6720aa0) - ) - (pin "BTN_HOME" input (at 215.9 128.27 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid bacb090f-8c62-4d86-9086-5c146180eaf1) - ) - (pin "BTN_S2" input (at 215.9 110.49 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 53975f52-8460-49de-bdf8-d382bc3d49ec) - ) - (pin "LED_S2" input (at 215.9 107.95 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 64bde2ed-778c-4c63-b757-47ba0423c9bb) - ) - (pin "LED_6HR" input (at 215.9 78.74 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid aa68083b-8ee4-4fc2-b6ef-9d6a28819106) - ) - (pin "LED_8HR" input (at 215.9 83.82 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid d50d2fc8-544a-4bf6-b5fa-8a9ed5a9e368) - ) - (pin "LED_LOCK" input (at 215.9 101.6 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 424b06f1-f704-47eb-80dc-d8f231d78e43) - ) - (pin "BTN_LOCK" input (at 215.9 104.14 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 3e1fcd15-488d-4234-9d9d-d0777acde3e8) - ) - (pin "BTN_ANY" input (at 215.9 143.51 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 04e7f1ef-4dc7-4db5-96ec-8f55c0244f1d) - ) - (pin "LED_PCB" input (at 246.38 99.06 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 4f80e25a-b65b-425a-9150-bd552769406c) - ) - (pin "LED_CHARGE" input (at 246.38 91.44 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 69506aba-09c9-4e86-9485-d31bd5cc540a) - ) - (pin "LED_BAT" input (at 246.38 88.9 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid dd1ba8de-c1fd-4318-9fdd-b5d8eb46ba62) - ) - (pin "LED_WIRE" input (at 246.38 86.36 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid be89739d-f24f-4bae-9065-d7f24f8c9147) - ) - (pin "LED_LIFTED" input (at 246.38 83.82 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 07e3e85b-be66-497e-87b2-41c8b40406db) - ) - (pin "LED_SETUP" input (at 246.38 73.66 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid f7917b18-ae75-42e2-b372-9793f55d7527) - ) - (pin "BTN_8HR" input (at 215.9 86.36 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 37d8d0b4-dc51-4d30-8c31-c1054c1a662f) - ) - (pin "BTN_10HR" input (at 215.9 91.44 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid f58c676f-e295-4b4f-a4d1-5cf376b6648c) - ) - (pin "BTN_SETUP" input (at 246.38 76.2 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 9168795e-8118-4996-825e-4ef1599da5df) - ) - (pin "LED_10HR" input (at 215.9 88.9 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 8abca9e1-b51d-4391-895c-159ed0e69b21) - ) - (pin "BTN_4HR" input (at 215.9 76.2 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid c60748e2-6172-4b61-ac6e-a6aead885c87) - ) - (pin "BTN_6HR" input (at 215.9 81.28 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 14f16963-1545-404b-920a-b75099abe84f) - ) - ) - - (sheet_instances - (path "/" (page "1")) - (path "/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" (page "2")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1" (page "3")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/c3563dfd-5e14-451f-b229-43a13a922ebc" (page "4")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/3f18ef67-c6d0-4eae-8fdf-c33cff7c7af1" (page "5")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/abef5370-15e4-4795-a952-0798cea794ba" (page "6")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/1f9c8fa6-0e95-4055-8ee5-a384df3a8d30" (page "7")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/ee7a3882-3a6c-4615-9c99-075b5b7832c4" (page "8")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/16f75c6c-100e-4cca-aa77-4c90b010701d" (page "9")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/32cecd9d-5638-4a5f-8d74-09fceab348e4" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/cb986726-e56a-48e5-aed0-312c759afc67" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/0d9ecba3-7f72-4bf6-97bb-74f9c16054a8" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/2b2cc9ba-dd55-470b-bfc9-7ca090c57563" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/68fc2291-23ce-4042-82ba-d439ac818833" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/0c9217a6-c86f-493f-97ed-25d1c23191d5" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/67787c73-84f9-4e8b-bd73-6a943a7bd2c3" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/042e4969-327d-4173-bf2d-58068743bb39" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/5beb5b85-1682-4e05-bb95-70d95a41deec" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/d9f89116-3750-4b50-ac8d-4b852c94145c" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/bdf77bd1-b51b-4381-9e62-f13f4ba6b6bc" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/f9ca5fc0-5835-482c-8b2c-00ae0e0f5d20" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/ae820929-9da9-4df3-acf1-6ff3866e5aba" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/0fa4de6b-dd8b-4a2a-8717-4c87d02c07fd" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/072824f1-6f70-4c5d-8274-fe1d659d368f" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/1a054df1-92c6-49e4-8438-998a18448335" (page "#")) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/ef4efca2-c9a8-4fed-b9de-33c599342ecf" (page "#")) - ) - - (symbol_instances - (path "/18293dfd-72fd-427e-b8da-b55e9fbbb57f" - (reference "#PWR?") (unit 1) (value "+5V") (footprint "") - ) - (path "/37202953-a20f-4a6b-b47a-722bb8fcb260" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/d9f89116-3750-4b50-ac8d-4b852c94145c/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/1a054df1-92c6-49e4-8438-998a18448335/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/ef4efca2-c9a8-4fed-b9de-33c599342ecf/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/ee7a3882-3a6c-4615-9c99-075b5b7832c4/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/0fa4de6b-dd8b-4a2a-8717-4c87d02c07fd/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/32cecd9d-5638-4a5f-8d74-09fceab348e4/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/0d9ecba3-7f72-4bf6-97bb-74f9c16054a8/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/2b2cc9ba-dd55-470b-bfc9-7ca090c57563/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/ae820929-9da9-4df3-acf1-6ff3866e5aba/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/0c9217a6-c86f-493f-97ed-25d1c23191d5/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/5beb5b85-1682-4e05-bb95-70d95a41deec/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/042e4969-327d-4173-bf2d-58068743bb39/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/f9ca5fc0-5835-482c-8b2c-00ae0e0f5d20/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/62d7b7b5-446b-43de-abc9-9f1b800370bd" - (reference "#PWR?") (unit 1) (value "+3.3V") (footprint "") - ) - (path "/633f5129-49b2-4f2e-a604-92695fc94191" - (reference "#PWR?") (unit 1) (value "+3.3V") (footprint "") - ) - (path "/6f8d9ecb-cf0e-4216-a06b-57d9741d7238/715bbba2-2abe-43a2-95ee-9fd9e8fb7d84" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/72dba887-ccea-419e-a4d9-6c96b741ceba" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/74f7e915-7a71-4094-9d35-3d66bf391d92" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/75492b6e-acf1-4c40-a091-d9f1ece6fad9" - (reference "#PWR?") (unit 1) (value "+5V") (footprint "") - ) - (path "/6f8d9ecb-cf0e-4216-a06b-57d9741d7238/7ae62edc-f214-4a72-8ffe-1a506ebb12de" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/86005eb7-886c-441b-b4e5-78cda643cf61" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/8b5f0da7-49af-477f-90bf-8d2d8a07e7ce" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/6f8d9ecb-cf0e-4216-a06b-57d9741d7238/8c11f17d-e469-4ae9-b440-fff80aeae4c4" - (reference "#PWR?") (unit 1) (value "+3.3V") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/072824f1-6f70-4c5d-8274-fe1d659d368f/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/abef5370-15e4-4795-a952-0798cea794ba/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/3f18ef67-c6d0-4eae-8fdf-c33cff7c7af1/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/1f9c8fa6-0e95-4055-8ee5-a384df3a8d30/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/c3563dfd-5e14-451f-b229-43a13a922ebc/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/16f75c6c-100e-4cca-aa77-4c90b010701d/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/cb986726-e56a-48e5-aed0-312c759afc67/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/bdf77bd1-b51b-4381-9e62-f13f4ba6b6bc/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/68fc2291-23ce-4042-82ba-d439ac818833/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/67787c73-84f9-4e8b-bd73-6a943a7bd2c3/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "~") (footprint "") - ) - (path "/91a3c0bf-913f-482f-bf80-1ab84871028b" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/6f8d9ecb-cf0e-4216-a06b-57d9741d7238/98c99148-c5f8-40ae-ac29-eef15fe2a284" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/b5d0e7eb-d8cb-4d9c-9e1b-dc3924d43ec6" - (reference "#PWR?") (unit 1) (value "+5V") (footprint "") - ) - (path "/c29ba821-51f2-4da9-9f11-12d982a42b2c" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/6f8d9ecb-cf0e-4216-a06b-57d9741d7238/e17a0862-a829-4a6f-b29e-07b141ebcec2" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/6f8d9ecb-cf0e-4216-a06b-57d9741d7238/fd300d7d-0f1e-403e-bc94-f9c8cf4fdd50" - (reference "#PWR?") (unit 1) (value "+3.3V") (footprint "") - ) - (path "/fd594781-ae9f-4e01-a037-d34713adcf47" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/8a1bc93f-7f65-4331-a08e-cbe3642f0139" - (reference "C4") (unit 1) (value "C") (footprint "") - ) - (path "/220076b2-cb81-46a4-a7ba-938a2b232bc1" - (reference "C5") (unit 1) (value "C") (footprint "") - ) - (path "/beea65de-5e2e-4c6b-bb4b-cefce039b986" - (reference "C6") (unit 1) (value "C") (footprint "") - ) - (path "/19675afd-71b1-424f-beb5-53f663da1b4b" - (reference "C7") (unit 1) (value "C") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/d9f89116-3750-4b50-ac8d-4b852c94145c/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D9") (unit 1) (value "LED") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/32cecd9d-5638-4a5f-8d74-09fceab348e4/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D13") (unit 1) (value "LED") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/ae820929-9da9-4df3-acf1-6ff3866e5aba/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D?") (unit 1) (value "LED") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/5beb5b85-1682-4e05-bb95-70d95a41deec/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D?") (unit 1) (value "LED") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/042e4969-327d-4173-bf2d-58068743bb39/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D?") (unit 1) (value "LED") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/f9ca5fc0-5835-482c-8b2c-00ae0e0f5d20/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D?") (unit 1) (value "LED") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/0c9217a6-c86f-493f-97ed-25d1c23191d5/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D?") (unit 1) (value "LED") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/2b2cc9ba-dd55-470b-bfc9-7ca090c57563/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D?") (unit 1) (value "LED") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/1a054df1-92c6-49e4-8438-998a18448335/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D?") (unit 1) (value "LED") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/0d9ecba3-7f72-4bf6-97bb-74f9c16054a8/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D?") (unit 1) (value "LED") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/ef4efca2-c9a8-4fed-b9de-33c599342ecf/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D?") (unit 1) (value "LED") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/0fa4de6b-dd8b-4a2a-8717-4c87d02c07fd/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D?") (unit 1) (value "LED") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/ee7a3882-3a6c-4615-9c99-075b5b7832c4/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D?") (unit 1) (value "LED") (footprint "") - ) - (path "/50b03ac0-526c-4ab7-a9aa-8d4e0cae1806" - (reference "J?") (unit 1) (value "Conn_01x02_Female") (footprint "") - ) - (path "/ab4e6845-f76f-4b49-accb-1fafa06808fd" - (reference "J?") (unit 1) (value "Conn_01x02_Female") (footprint "") - ) - (path "/78e51eb1-f9f9-40e3-8e10-515508daac21" - (reference "JP1") (unit 1) (value "Conn_01x12_Male") (footprint "") - ) - (path "/2fac37d7-a11b-49c5-a46d-36cf738e9365" - (reference "JP2") (unit 1) (value "OM UI Board") (footprint "") - ) - (path "/08e46c7f-bae2-44b2-a0d3-3a429244e8bb" - (reference "JP3") (unit 1) (value "SWDIO") (footprint "") - ) - (path "/4627ba8c-d0d0-47c5-bd6f-b019060f1e9c" - (reference "JP5") (unit 1) (value "Conn_01x02_Male") (footprint "") - ) - (path "/a0bb5f40-4404-467f-b65f-85160b628d15" - (reference "JP6") (unit 1) (value "Conn_01x02_Male") (footprint "") - ) - (path "/a1b93cdd-8a6d-44d4-99d3-39682364e361" - (reference "PC8_STOP") (unit 1) (value "SW_Push_Open") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/d9f89116-3750-4b50-ac8d-4b852c94145c/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R29") (unit 1) (value "1k") (footprint "") - ) - (path "/6f8d9ecb-cf0e-4216-a06b-57d9741d7238/be7c34db-be63-428a-b20a-6894e9676b70" - (reference "R33") (unit 1) (value "4k7") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/32cecd9d-5638-4a5f-8d74-09fceab348e4/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R35") (unit 1) (value "1k") (footprint "") - ) - (path "/6f8d9ecb-cf0e-4216-a06b-57d9741d7238/8af82709-f7f6-4918-8850-8936ec17331b" - (reference "R37") (unit 1) (value "NP") (footprint "") - ) - (path "/4420c194-efbd-4dca-ba3e-f1912c05db12" - (reference "R38") (unit 1) (value "0") (footprint "") - ) - (path "/38f8d11d-dba1-4b8e-831a-18b86944b419" - (reference "R39") (unit 1) (value "0") (footprint "") - ) - (path "/c81fc09e-b4d0-44a4-b833-e09d55c8b346" - (reference "R40") (unit 1) (value "NP") (footprint "") - ) - (path "/de75935a-8fc3-492c-a05f-6a081355ecc5" - (reference "R41") (unit 1) (value "NP") (footprint "") - ) - (path "/d0fbd26d-f56b-49a1-a832-5e7c5ba5e2bc" - (reference "R42") (unit 1) (value "0") (footprint "") - ) - (path "/083089b6-129f-42b4-b3f0-7fcf66df27d1" - (reference "R43") (unit 1) (value "0") (footprint "") - ) - (path "/f378a2af-a21d-43de-b4b9-72600edc362e" - (reference "R44") (unit 1) (value "NP") (footprint "") - ) - (path "/c4b57d3e-710d-475f-aa61-8e90080ad6df" - (reference "R45") (unit 1) (value "NP") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/ef4efca2-c9a8-4fed-b9de-33c599342ecf/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R?") (unit 1) (value "1k") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/1a054df1-92c6-49e4-8438-998a18448335/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R?") (unit 1) (value "1k") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/f9ca5fc0-5835-482c-8b2c-00ae0e0f5d20/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R?") (unit 1) (value "1k") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/0fa4de6b-dd8b-4a2a-8717-4c87d02c07fd/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R?") (unit 1) (value "1k") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/ae820929-9da9-4df3-acf1-6ff3866e5aba/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R?") (unit 1) (value "1k") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/042e4969-327d-4173-bf2d-58068743bb39/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R?") (unit 1) (value "1k") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/ee7a3882-3a6c-4615-9c99-075b5b7832c4/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R?") (unit 1) (value "1k") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/0d9ecba3-7f72-4bf6-97bb-74f9c16054a8/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R?") (unit 1) (value "1k") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/2b2cc9ba-dd55-470b-bfc9-7ca090c57563/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R?") (unit 1) (value "1k") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/0c9217a6-c86f-493f-97ed-25d1c23191d5/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R?") (unit 1) (value "1k") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/5beb5b85-1682-4e05-bb95-70d95a41deec/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R?") (unit 1) (value "1k") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/16f75c6c-100e-4cca-aa77-4c90b010701d/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S1") (unit 1) (value "BTN") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/cb986726-e56a-48e5-aed0-312c759afc67/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S4") (unit 1) (value "BTN") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/bdf77bd1-b51b-4381-9e62-f13f4ba6b6bc/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S7") (unit 1) (value "BTN") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/68fc2291-23ce-4042-82ba-d439ac818833/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/67787c73-84f9-4e8b-bd73-6a943a7bd2c3/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/1f9c8fa6-0e95-4055-8ee5-a384df3a8d30/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/abef5370-15e4-4795-a952-0798cea794ba/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/072824f1-6f70-4c5d-8274-fe1d659d368f/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/3f18ef67-c6d0-4eae-8fdf-c33cff7c7af1/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/b9b194e8-2826-4619-83c8-f97e2646d4b1/c3563dfd-5e14-451f-b229-43a13a922ebc/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/58affd50-5e74-4498-9d0e-0d9abaeadf7c" - (reference "STOP") (unit 1) (value "SW_Push_Open") (footprint "") - ) - (path "/6f8d9ecb-cf0e-4216-a06b-57d9741d7238/ad5cece6-4980-4282-85ac-ae6465044282" - (reference "U1") (unit 1) (value "STM32F030R8Tx") (footprint "Package_QFP:LQFP-64_10x10mm_P0.5mm") - ) - (path "/6f8d9ecb-cf0e-4216-a06b-57d9741d7238/6b3e7a3a-fdc7-4948-89a1-08254e691845" - (reference "U2") (unit 1) (value "ESP-WROOM-02") (footprint "RF_Module:ESP-WROOM-02") - ) - (path "/395e2a64-9334-4df7-8ce2-0c2b64ad8634" - (reference "U3") (unit 1) (value "AMS1117-3.3") (footprint "Package_TO_SOT_SMD:SOT-223-3_TabPin2") - ) - ) +(kicad_sch + (version 20231120) + (generator "eeschema") + (generator_version "8.0") + (uuid "105ce5f3-0f5d-4501-a42b-81308b09d139") + (paper "A4") + (title_block + (title "YardForce SA/SC 10Buttons 12LEDs CoverUI") + (date "2023-10-20") + (rev "0.1") + (comment 1 "(c) Apehaenger") + (comment 2 "For https://openmower.de") + (comment 3 "RM-ECOW-V1.0.0 2018.06.05 with STM32F030R8T6") + ) + (lib_symbols + (symbol "Connector:Conn_01x02_Female" + (pin_names + (offset 1.016) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "J" + (at 0 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "Conn_01x02_Female" + (at 0 -5.08 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "connector" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "Connector*:*_1x??_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "Conn_01x02_Female_1_1" + (arc + (start 0 -2.032) + (mid -0.5058 -2.54) + (end 0 -3.048) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -2.54) (xy -0.508 -2.54) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 0) (xy -0.508 0) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 0 0.508) + (mid -0.5058 0) + (end 0 -0.508) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (pin passive line + (at -5.08 0 0) + (length 3.81) + (name "Pin_1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -5.08 -2.54 0) + (length 3.81) + (name "Pin_2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Connector:Conn_01x02_Male" + (pin_names + (offset 1.016) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "J" + (at 0 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "Conn_01x02_Male" + (at 0 -5.08 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "connector" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "Connector*:*_1x??_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "Conn_01x02_Male_1_1" + (polyline + (pts + (xy 1.27 -2.54) (xy 0.8636 -2.54) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 0) (xy 0.8636 0) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 0.8636 -2.413) + (end 0 -2.667) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 0.127) + (end 0 -0.127) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (pin passive line + (at 5.08 0 180) + (length 3.81) + (name "Pin_1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 -2.54 180) + (length 3.81) + (name "Pin_2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Connector:Conn_01x04_Male" + (pin_names + (offset 1.016) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "J" + (at 0 5.08 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "Conn_01x04_Male" + (at 0 -7.62 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "connector" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "Connector*:*_1x??_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "Conn_01x04_Male_1_1" + (polyline + (pts + (xy 1.27 -5.08) (xy 0.8636 -5.08) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 -2.54) (xy 0.8636 -2.54) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 0) (xy 0.8636 0) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 2.54) (xy 0.8636 2.54) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 0.8636 -4.953) + (end 0 -5.207) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 -2.413) + (end 0 -2.667) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 0.127) + (end 0 -0.127) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 2.667) + (end 0 2.413) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (pin passive line + (at 5.08 2.54 180) + (length 3.81) + (name "Pin_1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 0 180) + (length 3.81) + (name "Pin_2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 -2.54 180) + (length 3.81) + (name "Pin_3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 -5.08 180) + (length 3.81) + (name "Pin_4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Connector:Conn_01x12_Male" + (pin_names + (offset 1.016) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "J" + (at 0 15.24 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "Conn_01x12_Male" + (at 0 -17.78 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Generic connector, single row, 01x12, script generated (kicad-library-utils/schlib/autogen/connector/)" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "connector" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "Connector*:*_1x??_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "Conn_01x12_Male_1_1" + (polyline + (pts + (xy 1.27 -15.24) (xy 0.8636 -15.24) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 -12.7) (xy 0.8636 -12.7) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 -10.16) (xy 0.8636 -10.16) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 -7.62) (xy 0.8636 -7.62) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 -5.08) (xy 0.8636 -5.08) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 -2.54) (xy 0.8636 -2.54) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 0) (xy 0.8636 0) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 2.54) (xy 0.8636 2.54) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 5.08) (xy 0.8636 5.08) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 7.62) (xy 0.8636 7.62) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 10.16) (xy 0.8636 10.16) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 12.7) (xy 0.8636 12.7) + ) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 0.8636 -15.113) + (end 0 -15.367) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 -12.573) + (end 0 -12.827) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 -10.033) + (end 0 -10.287) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 -7.493) + (end 0 -7.747) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 -4.953) + (end 0 -5.207) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 -2.413) + (end 0 -2.667) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 0.127) + (end 0 -0.127) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 2.667) + (end 0 2.413) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 5.207) + (end 0 4.953) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 7.747) + (end 0 7.493) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 10.287) + (end 0 10.033) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 0.8636 12.827) + (end 0 12.573) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type outline) + ) + ) + (pin passive line + (at 5.08 12.7 180) + (length 3.81) + (name "Pin_1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 -10.16 180) + (length 3.81) + (name "Pin_10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 -12.7 180) + (length 3.81) + (name "Pin_11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 -15.24 180) + (length 3.81) + (name "Pin_12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 10.16 180) + (length 3.81) + (name "Pin_2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 7.62 180) + (length 3.81) + (name "Pin_3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 5.08 180) + (length 3.81) + (name "Pin_4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 2.54 180) + (length 3.81) + (name "Pin_5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 0 180) + (length 3.81) + (name "Pin_6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 -2.54 180) + (length 3.81) + (name "Pin_7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 -5.08 180) + (length 3.81) + (name "Pin_8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 -7.62 180) + (length 3.81) + (name "Pin_9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Connector_Generic:Conn_02x08_Odd_Even" + (pin_names + (offset 1.016) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "J" + (at 1.27 10.16 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "Conn_02x08_Odd_Even" + (at 1.27 -12.7 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Generic connector, double row, 02x08, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/)" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "connector" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "Connector*:*_2x??_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "Conn_02x08_Odd_Even_1_1" + (rectangle + (start -1.27 -10.033) + (end 0 -10.287) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -1.27 -7.493) + (end 0 -7.747) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -1.27 -4.953) + (end 0 -5.207) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -1.27 -2.413) + (end 0 -2.667) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -1.27 0.127) + (end 0 -0.127) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -1.27 2.667) + (end 0 2.413) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -1.27 5.207) + (end 0 4.953) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -1.27 7.747) + (end 0 7.493) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -1.27 8.89) + (end 3.81 -11.43) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + (rectangle + (start 3.81 -10.033) + (end 2.54 -10.287) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 3.81 -7.493) + (end 2.54 -7.747) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 3.81 -4.953) + (end 2.54 -5.207) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 3.81 -2.413) + (end 2.54 -2.667) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 3.81 0.127) + (end 2.54 -0.127) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 3.81 2.667) + (end 2.54 2.413) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 3.81 5.207) + (end 2.54 4.953) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 3.81 7.747) + (end 2.54 7.493) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (pin passive line + (at -5.08 7.62 0) + (length 3.81) + (name "Pin_1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 7.62 -2.54 180) + (length 3.81) + (name "Pin_10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -5.08 -5.08 0) + (length 3.81) + (name "Pin_11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 7.62 -5.08 180) + (length 3.81) + (name "Pin_12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -5.08 -7.62 0) + (length 3.81) + (name "Pin_13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 7.62 -7.62 180) + (length 3.81) + (name "Pin_14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -5.08 -10.16 0) + (length 3.81) + (name "Pin_15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 7.62 -10.16 180) + (length 3.81) + (name "Pin_16" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "16" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 7.62 7.62 180) + (length 3.81) + (name "Pin_2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -5.08 5.08 0) + (length 3.81) + (name "Pin_3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 7.62 5.08 180) + (length 3.81) + (name "Pin_4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -5.08 2.54 0) + (length 3.81) + (name "Pin_5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 7.62 2.54 180) + (length 3.81) + (name "Pin_6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -5.08 0 0) + (length 3.81) + (name "Pin_7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 7.62 0 180) + (length 3.81) + (name "Pin_8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -5.08 -2.54 0) + (length 3.81) + (name "Pin_9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Device:C" + (pin_numbers hide) + (pin_names + (offset 0.254) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "C" + (at 0.635 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C" + (at 0.635 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 0.9652 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "cap capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "C_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "C_0_1" + (polyline + (pts + (xy -2.032 -0.762) (xy 2.032 -0.762) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -2.032 0.762) (xy 2.032 0.762) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "C_1_1" + (pin passive line + (at 0 3.81 270) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Device:R" + (pin_numbers hide) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "R" + (at 2.032 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "R" + (at 0 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at -1.778 0 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "R res resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "R_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "R_0_1" + (rectangle + (start -1.016 -2.54) + (end 1.016 2.54) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "R_1_1" + (pin passive line + (at 0 3.81 270) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Regulator_Linear:AMS1117-3.3" + (pin_names + (offset 0.254) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at -3.81 3.175 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "AMS1117-3.3" + (at 0 3.175 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-223-3_TabPin2" + (at 0 5.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "http://www.advanced-monolithic.com/pdf/ds1117.pdf" + (at 2.54 -6.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "1A Low Dropout regulator, positive, 3.3V fixed output, SOT-223" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "linear regulator ldo fixed positive" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "SOT?223*TabPin2*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "AMS1117-3.3_0_1" + (rectangle + (start -5.08 -5.08) + (end 5.08 1.905) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "AMS1117-3.3_1_1" + (pin power_in line + (at 0 -7.62 90) + (length 2.54) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_out line + (at 7.62 0 180) + (length 2.54) + (name "VO" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at -7.62 0 0) + (length 2.54) + (name "VI" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Switch:SW_Push_Open" + (pin_numbers hide) + (pin_names + (offset 1.016) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "SW" + (at 0 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push_Open" + (at 0 -1.905 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 5.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 5.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, push-to-open, generic, two pins" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "switch normally-closed pushbutton push-button" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "SW_Push_Open_0_1" + (circle + (center -2.032 0) + (radius 0.508) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -2.54 -0.635) (xy 2.54 -0.635) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 -0.635) (xy 0 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 2.032 0) + (radius 0.508) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (pin passive line + (at -5.08 0 0) + (length 2.54) + (name "A" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (symbol "SW_Push_Open_1_1" + (pin passive line + (at 5.08 0 180) + (length 2.54) + (name "B" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "power:+3.3V" + (power) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+3.3V" + (at 0 3.556 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+3.3V\"" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "+3.3V_0_1" + (polyline + (pts + (xy -0.762 1.27) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 0) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 2.54) (xy 0.762 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "+3.3V_1_1" + (pin power_in line + (at 0 0 90) + (length 0) hide + (name "+3.3V" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "power:+5V" + (power) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+5V" + (at 0 3.556 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+5V\"" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "+5V_0_1" + (polyline + (pts + (xy -0.762 1.27) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 0) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 2.54) (xy 0.762 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "+5V_1_1" + (pin power_in line + (at 0 0 90) + (length 0) hide + (name "+5V" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "power:GND" + (power) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -6.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "GND_1_1" + (pin power_in line + (at 0 0 270) + (length 0) hide + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + ) + (junction + (at 224.79 39.37) + (diameter 0) + (color 0 0 0 0) + (uuid "001dc20b-85b9-4fdd-8996-410820568061") + ) + (junction + (at 57.15 114.3) + (diameter 0) + (color 0 0 0 0) + (uuid "14a499e5-0dc5-4578-82e1-b3b1de3b72df") + ) + (junction + (at 36.83 162.56) + (diameter 0) + (color 0 0 0 0) + (uuid "173207e2-97fc-4b53-91b4-1a96bde3f863") + ) + (junction + (at 57.15 127) + (diameter 0) + (color 0 0 0 0) + (uuid "2373950b-d201-46b1-8769-18547e1d7af3") + ) + (junction + (at 246.38 41.91) + (diameter 0) + (color 0 0 0 0) + (uuid "296e1882-81df-4b29-8025-f0b092fe60fd") + ) + (junction + (at 233.68 41.91) + (diameter 0) + (color 0 0 0 0) + (uuid "2aa52334-b253-48e9-8052-4a001ef65776") + ) + (junction + (at 36.83 170.18) + (diameter 0) + (color 0 0 0 0) + (uuid "383ccf1e-cd9a-43b2-aedf-39f54c3ccaa0") + ) + (junction + (at 39.37 121.92) + (diameter 0) + (color 0 0 0 0) + (uuid "3844446f-ae3a-44fc-a762-0575fdcefee9") + ) + (junction + (at 259.08 41.91) + (diameter 0) + (color 0 0 0 0) + (uuid "3d5ebf0a-12b4-41eb-af1c-ea771fb9fbbb") + ) + (junction + (at 259.08 30.48) + (diameter 0) + (color 0 0 0 0) + (uuid "44a505fc-8756-405b-9fb7-b9e3818f1c58") + ) + (junction + (at 233.68 30.48) + (diameter 0) + (color 0 0 0 0) + (uuid "4ee297c3-2ed4-40ff-934b-ae0fbc7d96cb") + ) + (junction + (at 90.17 111.76) + (diameter 0) + (color 0 0 0 0) + (uuid "561f9335-e96f-467a-bb11-31cf83831acc") + ) + (junction + (at 39.37 172.72) + (diameter 0) + (color 0 0 0 0) + (uuid "6775fa26-4094-4175-b399-f6fd87e0c8aa") + ) + (junction + (at 54.61 111.76) + (diameter 0) + (color 0 0 0 0) + (uuid "8e465b8f-382b-4370-877d-84aa30ac7bb8") + ) + (junction + (at 85.09 41.91) + (diameter 0) + (color 0 0 0 0) + (uuid "a1181140-8ecc-491b-81d1-93ffca1d984e") + ) + (junction + (at 36.83 177.8) + (diameter 0) + (color 0 0 0 0) + (uuid "a59ebb6a-06ac-4628-b563-50388fa1261a") + ) + (junction + (at 266.7 30.48) + (diameter 0) + (color 0 0 0 0) + (uuid "abde2cde-103d-4e70-aafb-2766f8905b3f") + ) + (junction + (at 212.09 128.27) + (diameter 0) + (color 0 0 0 0) + (uuid "b423dc70-f4cb-4276-b0a7-0239fa697b9d") + ) + (junction + (at 82.55 53.34) + (diameter 0) + (color 0 0 0 0) + (uuid "b571d17b-a8b6-44bb-88ca-1443385eb6f7") + ) + (junction + (at 233.68 39.37) + (diameter 0) + (color 0 0 0 0) + (uuid "be192e1f-d183-4df0-a2f2-58bb65cc10f3") + ) + (junction + (at 213.36 138.43) + (diameter 0) + (color 0 0 0 0) + (uuid "d44728cd-fbe8-4a86-baa9-fe5283591dc1") + ) + (junction + (at 39.37 157.48) + (diameter 0) + (color 0 0 0 0) + (uuid "e2d389e2-3d84-4fd1-9116-0c2adc485562") + ) + (junction + (at 224.79 30.48) + (diameter 0) + (color 0 0 0 0) + (uuid "e4f7d682-aaee-4f64-88c8-5a5ff834c81d") + ) + (junction + (at 39.37 165.1) + (diameter 0) + (color 0 0 0 0) + (uuid "eef01012-1d02-4268-ae8a-3684b2a989e0") + ) + (bus_entry + (at 194.31 104.14) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "0198da52-e74e-4866-a7e2-b88ba078e0cb") + ) + (bus_entry + (at 194.31 106.68) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "037db7a7-afab-486e-bad3-ef0ce31c7b21") + ) + (bus_entry + (at 194.31 83.82) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "04989c9d-74c0-48e9-9dfd-4dffb23964a7") + ) + (bus_entry + (at 194.31 100.33) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "0cf70d5e-dc83-4f1d-82b8-b4a8bd0117f4") + ) + (bus_entry + (at 198.12 63.5) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "1f53baa1-acf3-462c-ae55-0afc45086218") + ) + (bus_entry + (at 259.08 101.6) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "220853d1-b889-4d4c-85fc-bba566efa4b6") + ) + (bus_entry + (at 194.31 88.9) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "33171d47-99e1-4e98-a7d3-35a49d4d2af9") + ) + (bus_entry + (at 194.31 91.44) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "372ffc15-d48c-4dbc-82a7-8de006a11cde") + ) + (bus_entry + (at 194.31 128.27) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "5587ec03-514d-451c-a18f-6a93fdf92eb9") + ) + (bus_entry + (at 259.08 88.9) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "5d5f7e79-9e24-4b93-bb49-4abda8298af8") + ) + (bus_entry + (at 194.31 110.49) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "5e147e44-13f0-44ae-962e-a46e663d2d4e") + ) + (bus_entry + (at 259.08 78.74) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "628648fb-2623-4ce4-8840-1382318c3b5f") + ) + (bus_entry + (at 194.31 97.79) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "63248a8a-86b2-4b1d-bb34-2f7d28dd70b9") + ) + (bus_entry + (at 194.31 113.03) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "66f12cb6-5241-42f6-8a58-1f9bf67a3f08") + ) + (bus_entry + (at 194.31 81.28) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "6ee3e9e1-1ccc-4e0b-80d8-0ad42e0efb5a") + ) + (bus_entry + (at 259.08 93.98) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "80b5c2b6-ce17-4c25-80fb-bdf3858d5016") + ) + (bus_entry + (at 259.08 91.44) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "82e72af3-01dc-47cb-ba75-e937306019a7") + ) + (bus_entry + (at 194.31 86.36) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "a5da2dcc-e3fa-443a-8f8a-d29b96394614") + ) + (bus_entry + (at 194.31 93.98) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "ac9cde3f-5f42-4caf-81b0-155960676e30") + ) + (bus_entry + (at 200.66 63.5) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "befd63e5-b3bd-41f3-8fa8-6a1ed2a37a9c") + ) + (bus_entry + (at 194.31 138.43) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "bf487161-8b7e-49fc-b817-12a2386484d5") + ) + (bus_entry + (at 259.08 76.2) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "c807b100-c69e-4af0-beda-5ee959babec3") + ) + (bus_entry + (at 194.31 76.2) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "f17b4801-3f82-48b9-832f-c15762409bfb") + ) + (bus_entry + (at 259.08 86.36) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "f18a9035-8fd4-40ca-b3f9-e345293a45ec") + ) + (bus_entry + (at 194.31 78.74) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "fc0cdfee-d8f3-4506-bcdb-a0239e681840") + ) + (wire + (pts + (xy 246.38 88.9) (xy 256.54 88.9) + ) + (stroke + (width 0) + (type default) + ) + (uuid "02e17945-540b-4830-89e6-e54a536b1b61") + ) + (wire + (pts + (xy 266.7 30.48) (xy 266.7 31.75) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0323736f-0fdc-4635-8061-5b84b0aac99d") + ) + (wire + (pts + (xy 90.17 111.76) (xy 90.17 160.02) + ) + (stroke + (width 0) + (type default) + ) + (uuid "03244922-ba98-4666-acdf-ea2ebfb568e3") + ) + (wire + (pts + (xy 57.15 114.3) (xy 59.69 114.3) + ) + (stroke + (width 0) + (type default) + ) + (uuid "06cd346d-9fe7-4d6d-a273-ad4fd60fd1df") + ) + (wire + (pts + (xy 224.79 30.48) (xy 224.79 31.75) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0792d786-871d-46f0-a4b9-f0bdc030985c") + ) + (bus + (pts + (xy 194.31 86.36) (xy 194.31 83.82) + ) + (stroke + (width 0) + (type default) + ) + (uuid "07d73eb3-a726-4b05-a041-993c3c262dd2") + ) + (wire + (pts + (xy 196.85 97.79) (xy 215.9 97.79) + ) + (stroke + (width 0) + (type default) + ) + (uuid "09fbc7f3-fd11-468f-a8b9-54444910ef73") + ) + (wire + (pts + (xy 54.61 96.52) (xy 118.11 96.52) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0bfba637-ce13-487d-8e93-45308db6e085") + ) + (wire + (pts + (xy 52.07 53.34) (xy 82.55 53.34) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0cccac0a-f723-4ed3-93bf-489511e56591") + ) + (wire + (pts + (xy 196.85 83.82) (xy 215.9 83.82) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0ced9805-1c86-4384-b73b-3df65d6b22e6") + ) + (wire + (pts + (xy 201.93 162.56) (xy 201.93 130.81) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0dd5d67f-c7b3-4123-8431-96513124fda5") + ) + (wire + (pts + (xy 212.09 128.27) (xy 212.09 130.81) + ) + (stroke + (width 0) + (type default) + ) + (uuid "11033220-d92e-45bb-bddc-53008518066d") + ) + (wire + (pts + (xy 213.36 138.43) (xy 215.9 138.43) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1155bed7-27e6-485c-9e50-b703a3acea91") + ) + (wire + (pts + (xy 40.64 55.88) (xy 17.78 55.88) + ) + (stroke + (width 0) + (type default) + ) + (uuid "11d35b64-1d70-4ad7-a800-4b2ff248bc02") + ) + (wire + (pts + (xy 233.68 39.37) (xy 233.68 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "14fb2038-bde8-4c68-9f22-1cff624ede3e") + ) + (wire + (pts + (xy 93.98 53.34) (xy 198.12 53.34) + ) + (stroke + (width 0) + (type default) + ) + (uuid "17796a2b-f3b3-47d9-9c19-1f4ceb2ca204") + ) + (wire + (pts + (xy 27.94 135.89) (xy 39.37 135.89) + ) + (stroke + (width 0) + (type default) + ) + (uuid "19537868-e571-4958-9b75-c1d624ffe947") + ) + (wire + (pts + (xy 233.68 30.48) (xy 238.76 30.48) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1d30cbd2-1cc3-4205-91b9-eba186c2a546") + ) + (wire + (pts + (xy 86.36 53.34) (xy 82.55 53.34) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1dd5754c-e6bd-4618-87aa-b589cc03738c") + ) + (wire + (pts + (xy 31.75 172.72) (xy 39.37 172.72) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1fa70874-5211-4bda-8e9e-808c762e1e04") + ) + (wire + (pts + (xy 82.55 121.92) (xy 72.39 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "220e1775-8e1b-4cbe-99a9-2b4a4e3f5c98") + ) + (wire + (pts + (xy 72.39 114.3) (xy 88.9 114.3) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2215be07-00d6-4ebf-a630-ef25a1f73cca") + ) + (wire + (pts + (xy 85.09 63.5) (xy 85.09 127) + ) + (stroke + (width 0) + (type default) + ) + (uuid "23cbd60d-bc86-4882-853b-b8e330c29065") + ) + (wire + (pts + (xy 110.49 148.59) (xy 111.76 148.59) + ) + (stroke + (width 0) + (type default) + ) + (uuid "25bf4df0-21bc-4ae4-96fe-ee4c72dc6e03") + ) + (wire + (pts + (xy 52.07 44.45) (xy 64.77 44.45) + ) + (stroke + (width 0) + (type default) + ) + (uuid "261876c8-162d-4b83-8735-6013860daeba") + ) + (wire + (pts + (xy 259.08 30.48) (xy 266.7 30.48) + ) + (stroke + (width 0) + (type default) + ) + (uuid "27a2959b-6dbf-4212-99c6-16d9af2d91c1") + ) + (wire + (pts + (xy 85.09 41.91) (xy 85.09 55.88) + ) + (stroke + (width 0) + (type default) + ) + (uuid "27e7dc01-1013-4dfc-bcef-1e9fcba7d127") + ) + (bus + (pts + (xy 194.31 104.14) (xy 194.31 106.68) + ) + (stroke + (width 0) + (type default) + ) + (uuid "289d5586-e33c-40b0-a1b5-da8d8480dcf4") + ) + (wire + (pts + (xy 246.38 38.1) (xy 246.38 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2d398298-8503-4859-9147-85501b1c0674") + ) + (wire + (pts + (xy 203.2 138.43) (xy 203.2 161.29) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2ef1cf82-6540-4d06-addc-7ea26f3fe2f9") + ) + (wire + (pts + (xy 200.66 41.91) (xy 200.66 63.5) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2fab9934-246d-4fdd-bcdc-a48e7fa5ba34") + ) + (wire + (pts + (xy 27.94 114.3) (xy 57.15 114.3) + ) + (stroke + (width 0) + (type default) + ) + (uuid "31df39b2-c11e-4939-983a-5892b2f92d21") + ) + (wire + (pts + (xy 110.49 146.05) (xy 118.11 146.05) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3256ed7c-9b6b-4b3c-a682-d42f36f3e0ff") + ) + (bus + (pts + (xy 259.08 86.36) (xy 259.08 88.9) + ) + (stroke + (width 0) + (type default) + ) + (uuid "33377ff0-210d-4710-9fa2-e928e93d405e") + ) + (bus + (pts + (xy 194.31 81.28) (xy 194.31 83.82) + ) + (stroke + (width 0) + (type default) + ) + (uuid "33e8dc36-ac3d-4303-bcfc-2cef1423f43c") + ) + (wire + (pts + (xy 27.94 111.76) (xy 54.61 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3672cf5d-85e6-47a9-9157-569fba4cafc7") + ) + (wire + (pts + (xy 39.37 121.92) (xy 59.69 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "37e15169-0ba9-42b7-9720-5de28e06a403") + ) + (wire + (pts + (xy 203.2 138.43) (xy 204.47 138.43) + ) + (stroke + (width 0) + (type default) + ) + (uuid "38d642b4-e1b8-4040-b093-2173e3487e4e") + ) + (wire + (pts + (xy 246.38 86.36) (xy 256.54 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3ae04d5c-3358-4484-aeba-02a80bfbe32c") + ) + (wire + (pts + (xy 224.79 39.37) (xy 224.79 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3d888cf8-f73e-4976-8692-9b741e290300") + ) + (wire + (pts + (xy 196.85 76.2) (xy 215.9 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "40bea589-e59f-48da-994a-510d696edf6d") + ) + (wire + (pts + (xy 196.85 125.73) (xy 204.47 125.73) + ) + (stroke + (width 0) + (type default) + ) + (uuid "42cad8f1-d99a-48a2-8a72-58b51fba9136") + ) + (wire + (pts + (xy 93.98 41.91) (xy 200.66 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "42fa4da1-2756-4419-8884-c1d277fc5438") + ) + (wire + (pts + (xy 29.21 124.46) (xy 29.21 125.73) + ) + (stroke + (width 0) + (type default) + ) + (uuid "436d218b-a345-41ee-99d2-901c45cd4132") + ) + (wire + (pts + (xy 266.7 41.91) (xy 266.7 39.37) + ) + (stroke + (width 0) + (type default) + ) + (uuid "46f4bc15-5aea-43c1-ae15-64a7c9146a39") + ) + (wire + (pts + (xy 212.09 138.43) (xy 213.36 138.43) + ) + (stroke + (width 0) + (type default) + ) + (uuid "49497151-afc1-475a-b308-9f84abe09b7a") + ) + (wire + (pts + (xy 233.68 41.91) (xy 246.38 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "49acc7bd-6707-4871-8764-ad6d26a7d81c") + ) + (wire + (pts + (xy 90.17 111.76) (xy 92.71 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4bb5478c-44b7-4383-abd7-3163eb316538") + ) + (wire + (pts + (xy 54.61 96.52) (xy 54.61 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4e4162ee-fc9a-4681-8edb-856880363ff9") + ) + (bus + (pts + (xy 259.08 76.2) (xy 259.08 78.74) + ) + (stroke + (width 0) + (type default) + ) + (uuid "508f4cf3-af64-42a9-b6a0-829bbf28b98b") + ) + (wire + (pts + (xy 76.2 119.38) (xy 76.2 134.62) + ) + (stroke + (width 0) + (type default) + ) + (uuid "509ee3e9-a4da-4281-b27b-befcadbeae80") + ) + (wire + (pts + (xy 31.75 175.26) (xy 82.55 175.26) + ) + (stroke + (width 0) + (type default) + ) + (uuid "512ab44e-bced-4397-8140-428bcc657bb8") + ) + (wire + (pts + (xy 110.49 143.51) (xy 118.11 143.51) + ) + (stroke + (width 0) + (type default) + ) + (uuid "51cc60d2-0c28-4134-9251-39ea85607332") + ) + (wire + (pts + (xy 196.85 107.95) (xy 215.9 107.95) + ) + (stroke + (width 0) + (type default) + ) + (uuid "52967136-f9e8-49e4-912f-fed84a3161e6") + ) + (wire + (pts + (xy 196.85 135.89) (xy 204.47 135.89) + ) + (stroke + (width 0) + (type default) + ) + (uuid "52ae7820-484e-49b4-ae7f-cf92fcf981ad") + ) + (wire + (pts + (xy 224.79 30.48) (xy 233.68 30.48) + ) + (stroke + (width 0) + (type default) + ) + (uuid "56c0757e-38e6-45a4-b570-4321c1e05db4") + ) + (wire + (pts + (xy 196.85 81.28) (xy 215.9 81.28) + ) + (stroke + (width 0) + (type default) + ) + (uuid "574afcd0-bafc-4d2a-8c6e-02f93e9bb66a") + ) + (wire + (pts + (xy 196.85 104.14) (xy 215.9 104.14) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5792deff-8d12-4e42-8888-beb62d44cd79") + ) + (wire + (pts + (xy 110.49 140.97) (xy 111.76 140.97) + ) + (stroke + (width 0) + (type default) + ) + (uuid "593715d8-61c9-40c2-8fb1-393d03a4da5d") + ) + (wire + (pts + (xy 196.85 101.6) (xy 215.9 101.6) + ) + (stroke + (width 0) + (type default) + ) + (uuid "59f6de5c-391b-4aee-bdd3-bc9dc4ee80ca") + ) + (wire + (pts + (xy 246.38 41.91) (xy 259.08 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5a0bb985-a400-48f9-bfdd-cdd6cd599619") + ) + (wire + (pts + (xy 246.38 73.66) (xy 256.54 73.66) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5bcaa60e-9a0b-4b03-bf8a-6f9d3a1c6250") + ) + (wire + (pts + (xy 59.69 116.84) (xy 54.61 116.84) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5be47b8e-c68f-450a-84ed-f74c49bb9f21") + ) + (wire + (pts + (xy 72.39 111.76) (xy 90.17 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "632caf98-e2b6-49eb-a9e5-2d70c4841c4a") + ) + (wire + (pts + (xy 201.93 162.56) (xy 54.61 162.56) + ) + (stroke + (width 0) + (type default) + ) + (uuid "644b9b46-5b12-4b3a-95ea-0c3a281b79cd") + ) + (wire + (pts + (xy 254 30.48) (xy 259.08 30.48) + ) + (stroke + (width 0) + (type default) + ) + (uuid "649f7a40-d35c-4ddd-bbf0-94bb428c41cb") + ) + (wire + (pts + (xy 259.08 41.91) (xy 266.7 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6629c5ea-16d6-4eed-a292-48aa431a3c57") + ) + (bus + (pts + (xy 194.31 138.43) (xy 194.31 158.75) + ) + (stroke + (width 0) + (type default) + ) + (uuid "667bdc37-bd81-485f-ab2e-c9bd64bb8157") + ) + (wire + (pts + (xy 82.55 116.84) (xy 72.39 116.84) + ) + (stroke + (width 0) + (type default) + ) + (uuid "66a82e67-27c8-4090-af2e-7584277e4850") + ) + (wire + (pts + (xy 72.39 119.38) (xy 76.2 119.38) + ) + (stroke + (width 0) + (type default) + ) + (uuid "679c357b-420c-435b-8634-44d239d2ab7b") + ) + (wire + (pts + (xy 90.17 160.02) (xy 204.47 160.02) + ) + (stroke + (width 0) + (type default) + ) + (uuid "67b296c9-b2f5-4924-8339-d41f0409e119") + ) + (bus + (pts + (xy 259.08 88.9) (xy 259.08 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6a671db8-fb44-4049-bcab-159ba01288f6") + ) + (wire + (pts + (xy 59.69 119.38) (xy 57.15 119.38) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6b3c9311-43e3-4f48-b3f9-cc7c4e8d98f7") + ) + (wire + (pts + (xy 233.68 38.1) (xy 233.68 39.37) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6c441cba-5a19-4e50-853a-6d023134e208") + ) + (wire + (pts + (xy 196.85 110.49) (xy 215.9 110.49) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6d881a20-d25a-4a99-b899-e075c7aaac59") + ) + (wire + (pts + (xy 39.37 135.89) (xy 39.37 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6e52ddee-d701-43d6-8e97-c06f7f80b382") + ) + (bus + (pts + (xy 194.31 110.49) (xy 194.31 113.03) + ) + (stroke + (width 0) + (type default) + ) + (uuid "714f081c-5126-4698-bfb9-ab538020b54a") + ) + (bus + (pts + (xy 194.31 86.36) (xy 194.31 88.9) + ) + (stroke + (width 0) + (type default) + ) + (uuid "77917ed2-d5b2-4029-86e9-3b0d13859732") + ) + (bus + (pts + (xy 194.31 128.27) (xy 194.31 138.43) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7a094fcd-8c1b-4c48-b88e-de27c2f021a5") + ) + (wire + (pts + (xy 39.37 120.65) (xy 39.37 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7b88b189-20d8-4d94-a92b-7330f360285e") + ) + (wire + (pts + (xy 57.15 99.06) (xy 118.11 99.06) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7bb1afc8-ec6f-40ca-95c0-5d56d1d02f3d") + ) + (bus + (pts + (xy 194.31 91.44) (xy 194.31 93.98) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7c319ace-4d5d-4658-95a7-3ed1e64fdb83") + ) + (wire + (pts + (xy 31.75 154.94) (xy 36.83 154.94) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7d5f6862-4efd-4100-9759-478e1242b66a") + ) + (wire + (pts + (xy 57.15 127) (xy 59.69 127) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7e8f3fdc-8771-48ad-a8cd-fedd7e635ee1") + ) + (bus + (pts + (xy 194.31 100.33) (xy 194.31 104.14) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7eab7409-e8be-455f-86f8-87531825422b") + ) + (wire + (pts + (xy 82.55 175.26) (xy 82.55 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7fd4fb03-6e6c-4ec4-b4d8-73b352752040") + ) + (wire + (pts + (xy 40.64 44.45) (xy 17.78 44.45) + ) + (stroke + (width 0) + (type default) + ) + (uuid "827277ac-ae74-45c8-91b6-33c0d39e1944") + ) + (wire + (pts + (xy 213.36 135.89) (xy 213.36 138.43) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8290e510-39c3-4e79-8e7c-1997950dce68") + ) + (wire + (pts + (xy 80.01 167.64) (xy 80.01 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "82d8ffca-b5c1-4031-bd28-e6c138ff134a") + ) + (wire + (pts + (xy 204.47 143.51) (xy 215.9 143.51) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8305f894-fc2b-4994-a9f2-b586aa50d734") + ) + (bus + (pts + (xy 194.31 113.03) (xy 194.31 128.27) + ) + (stroke + (width 0) + (type default) + ) + (uuid "84083de0-2523-4ede-9928-7843a1bc0dfc") + ) + (wire + (pts + (xy 224.79 30.48) (xy 224.79 27.94) + ) + (stroke + (width 0) + (type default) + ) + (uuid "85179f61-71ba-4d14-897b-75b966384a3a") + ) + (bus + (pts + (xy 194.31 106.68) (xy 194.31 110.49) + ) + (stroke + (width 0) + (type default) + ) + (uuid "895330c4-0902-47c9-b26b-bf4e048d190f") + ) + (bus + (pts + (xy 194.31 88.9) (xy 194.31 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "89c590fa-991b-4f46-b71e-a656e6fdd5bb") + ) + (wire + (pts + (xy 246.38 76.2) (xy 256.54 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8d5652fa-d7af-4ab5-83d3-9831207eff86") + ) + (wire + (pts + (xy 72.39 160.02) (xy 72.39 129.54) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8e98f9fb-4605-4c5b-8d15-0281cf30b194") + ) + (wire + (pts + (xy 203.2 161.29) (xy 88.9 161.29) + ) + (stroke + (width 0) + (type default) + ) + (uuid "90c8441f-c21e-4bbe-8ef9-3e031bf50923") + ) + (wire + (pts + (xy 246.38 41.91) (xy 246.38 44.45) + ) + (stroke + (width 0) + (type default) + ) + (uuid "91759435-b176-4595-9a50-e47d954220fa") + ) + (wire + (pts + (xy 31.75 162.56) (xy 36.83 162.56) + ) + (stroke + (width 0) + (type default) + ) + (uuid "938d2283-0856-41b8-9244-d4a71c410968") + ) + (wire + (pts + (xy 82.55 53.34) (xy 82.55 55.88) + ) + (stroke + (width 0) + (type default) + ) + (uuid "951f1452-6f4e-4bf1-932f-3a303c8fff72") + ) + (wire + (pts + (xy 224.79 41.91) (xy 233.68 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "974acd5d-3428-4049-abf8-1984b5e300d0") + ) + (bus + (pts + (xy 259.08 91.44) (xy 259.08 93.98) + ) + (stroke + (width 0) + (type default) + ) + (uuid "997c88d2-00f8-4511-a9b5-fcbff148a8ac") + ) + (bus + (pts + (xy 194.31 97.79) (xy 194.31 100.33) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9cd1c7b2-bc08-4af7-8305-3886d1d0224c") + ) + (wire + (pts + (xy 196.85 86.36) (xy 215.9 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9e9b857a-bfdc-4306-9950-b0fc314fe9b0") + ) + (bus + (pts + (xy 203.2 66.04) (xy 259.08 66.04) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a0e6db8a-a272-4440-9945-6b45f606206c") + ) + (wire + (pts + (xy 213.36 135.89) (xy 212.09 135.89) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a19da5f1-9c27-4d70-b969-85f621b32dad") + ) + (wire + (pts + (xy 39.37 149.86) (xy 39.37 157.48) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a1df5451-e6d5-4708-b360-c845636c74df") + ) + (bus + (pts + (xy 200.66 66.04) (xy 203.2 66.04) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a2c51862-3237-4885-930b-9a649e029530") + ) + (wire + (pts + (xy 39.37 124.46) (xy 59.69 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a3794cde-f042-4b1d-b096-1aba423983ca") + ) + (wire + (pts + (xy 31.75 177.8) (xy 36.83 177.8) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a43cc086-195d-4f0f-963f-19d8f9e8b7b3") + ) + (wire + (pts + (xy 196.85 91.44) (xy 215.9 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a582c092-b8b2-43ce-a9aa-e9331a0408ee") + ) + (wire + (pts + (xy 31.75 152.4) (xy 52.07 152.4) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a613b4fc-4718-48b4-bde2-f47ee3e86929") + ) + (wire + (pts + (xy 27.94 124.46) (xy 29.21 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a7cdffd4-09a3-4826-9a70-b5b087b40a63") + ) + (wire + (pts + (xy 54.61 116.84) (xy 54.61 162.56) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a8b985b0-d63c-40c5-935a-8ce997f8d821") + ) + (wire + (pts + (xy 196.85 78.74) (xy 215.9 78.74) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a96475f4-2fab-4033-82b6-da64ff8d1836") + ) + (wire + (pts + (xy 17.78 44.45) (xy 17.78 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a9e652d5-7b32-45bd-b309-ccb28a184b20") + ) + (bus + (pts + (xy 194.31 66.04) (xy 200.66 66.04) + ) + (stroke + (width 0) + (type default) + ) + (uuid "aa7edc35-7587-46f8-8c50-1a32eccb10a8") + ) + (bus + (pts + (xy 138.43 158.75) (xy 138.43 149.86) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ab4f4fb2-7c25-4278-9646-a952ec632ccb") + ) + (wire + (pts + (xy 31.75 167.64) (xy 80.01 167.64) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ad4fd315-abaf-4e53-a780-86ddb8cb79ba") + ) + (wire + (pts + (xy 31.75 160.02) (xy 72.39 160.02) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ada9a8c4-e31d-4b37-b80b-ed4205bfc42f") + ) + (bus + (pts + (xy 194.31 76.2) (xy 194.31 78.74) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b169d4ac-89df-4505-b761-4bd5289b6792") + ) + (wire + (pts + (xy 36.83 170.18) (xy 36.83 177.8) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b1bde04e-f6ce-42c3-93c7-3fe9107e010a") + ) + (wire + (pts + (xy 246.38 99.06) (xy 256.54 99.06) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b35602f1-fa33-415f-af11-01687926efc9") + ) + (wire + (pts + (xy 196.85 95.25) (xy 215.9 95.25) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b36f6e16-483c-4e70-950d-686e8ffcfbab") + ) + (wire + (pts + (xy 85.09 41.91) (xy 86.36 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b47c5a6f-4efb-4fd4-ad58-255956751cd2") + ) + (bus + (pts + (xy 194.31 76.2) (xy 194.31 66.04) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b9c4e5d7-05a8-4407-8eae-75be2430f970") + ) + (wire + (pts + (xy 52.07 152.4) (xy 52.07 129.54) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b9fab4be-f2b5-45d9-adb5-5cb5d1a75aaa") + ) + (wire + (pts + (xy 80.01 124.46) (xy 72.39 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ba7125f2-ca0a-45c6-bffb-5b267c140123") + ) + (wire + (pts + (xy 27.94 53.34) (xy 40.64 53.34) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bb072765-81d9-4b14-a6a2-6950a00b5343") + ) + (wire + (pts + (xy 52.07 41.91) (xy 85.09 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bb5856cc-6823-4aca-891c-35a157e404f9") + ) + (wire + (pts + (xy 36.83 154.94) (xy 36.83 162.56) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bc5c090d-1796-4200-838e-40fb1a4270d7") + ) + (wire + (pts + (xy 57.15 99.06) (xy 57.15 114.3) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bcaf3053-e5c8-4bc6-89a6-d21721dfc32e") + ) + (wire + (pts + (xy 17.78 55.88) (xy 17.78 53.34) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bd03d864-716a-486c-85e4-b54dc5d8587f") + ) + (wire + (pts + (xy 39.37 165.1) (xy 39.37 157.48) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bfb1aae6-72c0-4083-b07b-1ec74b1ee9fd") + ) + (wire + (pts + (xy 196.85 88.9) (xy 215.9 88.9) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c049346a-997e-4e80-b080-24fa66bd0cf2") + ) + (bus + (pts + (xy 259.08 78.74) (xy 259.08 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c150108a-3ef1-47db-b2a8-0d3cdb4700d7") + ) + (bus + (pts + (xy 259.08 93.98) (xy 259.08 101.6) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c186d4ea-39fe-4cd8-a06f-45ae1bf3b0bb") + ) + (wire + (pts + (xy 39.37 172.72) (xy 39.37 165.1) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c2eba766-76af-4a47-b2e2-fe6b22a020b0") + ) + (wire + (pts + (xy 246.38 91.44) (xy 256.54 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c348235c-ce91-4f66-90f7-b4a8d4e1dff0") + ) + (wire + (pts + (xy 52.07 55.88) (xy 64.77 55.88) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c348c24b-a1e1-4732-88f2-4b55f07a1209") + ) + (wire + (pts + (xy 31.75 170.18) (xy 36.83 170.18) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c34e3961-efc4-409b-b336-3c600721cc15") + ) + (wire + (pts + (xy 31.75 180.34) (xy 39.37 180.34) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c3f9a2b3-fee8-42c0-8872-056421f38a20") + ) + (wire + (pts + (xy 246.38 83.82) (xy 256.54 83.82) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c495aca4-70da-4716-9fa5-3b7fe47a6d56") + ) + (wire + (pts + (xy 31.75 157.48) (xy 39.37 157.48) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c5315943-95ae-47db-92de-8c0e7531977e") + ) + (bus + (pts + (xy 194.31 93.98) (xy 194.31 97.79) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c813460c-0006-4014-8a92-583317d0c753") + ) + (wire + (pts + (xy 57.15 119.38) (xy 57.15 127) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c85c2c4a-1832-4178-84c8-d60317137ea6") + ) + (wire + (pts + (xy 88.9 114.3) (xy 88.9 161.29) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ca659b2b-002a-45e1-8ad1-b87873840911") + ) + (wire + (pts + (xy 233.68 31.75) (xy 233.68 30.48) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cc171098-5039-4da2-b1d2-f9cb0aa14341") + ) + (wire + (pts + (xy 85.09 127) (xy 72.39 127) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cc4ab180-3129-4ce1-ac7b-a09dd1232878") + ) + (wire + (pts + (xy 111.76 140.97) (xy 111.76 139.7) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ce851d77-1c6e-4a27-9899-7d44d78845b0") + ) + (wire + (pts + (xy 198.12 53.34) (xy 198.12 63.5) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d3dc330c-08bf-46f4-969e-60e2ed946821") + ) + (wire + (pts + (xy 52.07 129.54) (xy 59.69 129.54) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d51df719-6d12-4ef5-8a82-82a27c17087f") + ) + (bus + (pts + (xy 259.08 66.04) (xy 259.08 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d54edc28-bef1-4b4f-8d4f-1e0d59deb444") + ) + (wire + (pts + (xy 212.09 125.73) (xy 212.09 128.27) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d58e7793-9cad-4020-a8e5-506e164813ef") + ) + (wire + (pts + (xy 36.83 162.56) (xy 36.83 170.18) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d831261d-8b38-476c-bec8-d5d741122b94") + ) + (bus + (pts + (xy 138.43 158.75) (xy 194.31 158.75) + ) + (stroke + (width 0) + (type default) + ) + (uuid "db012ae4-7559-4036-ab29-2c2c69648cb8") + ) + (wire + (pts + (xy 212.09 128.27) (xy 215.9 128.27) + ) + (stroke + (width 0) + (type default) + ) + (uuid "db8b05c0-32d2-450b-9e15-b5fea672169d") + ) + (wire + (pts + (xy 201.93 130.81) (xy 204.47 130.81) + ) + (stroke + (width 0) + (type default) + ) + (uuid "de0e9cf0-168b-4946-8cb9-70c53ccee38a") + ) + (wire + (pts + (xy 259.08 30.48) (xy 259.08 31.75) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e1ebeb12-6b50-474c-a2c1-c692725b104b") + ) + (wire + (pts + (xy 224.79 38.1) (xy 224.79 39.37) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e36382f1-7f6b-44d7-8111-ed14bbc17cf9") + ) + (wire + (pts + (xy 266.7 30.48) (xy 266.7 27.94) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e5e366c4-f4eb-4f3d-81ec-c0b85bdfac97") + ) + (wire + (pts + (xy 54.61 111.76) (xy 59.69 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e82885a1-c96f-4146-b064-8271114ad7d7") + ) + (wire + (pts + (xy 31.75 165.1) (xy 39.37 165.1) + ) + (stroke + (width 0) + (type default) + ) + (uuid "eae74a3a-6ed3-4098-824a-f5810c679039") + ) + (wire + (pts + (xy 111.76 148.59) (xy 111.76 149.86) + ) + (stroke + (width 0) + (type default) + ) + (uuid "eb720d4d-ddf3-4213-9341-9f28c14168a5") + ) + (wire + (pts + (xy 39.37 180.34) (xy 39.37 172.72) + ) + (stroke + (width 0) + (type default) + ) + (uuid "eebf9c87-2094-45e3-9714-7534f143712d") + ) + (wire + (pts + (xy 82.55 63.5) (xy 82.55 116.84) + ) + (stroke + (width 0) + (type default) + ) + (uuid "eee0b176-70fb-444c-a3c4-0a6813512fb1") + ) + (wire + (pts + (xy 27.94 121.92) (xy 39.37 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f569159c-a034-49eb-b344-d224d8865d1b") + ) + (bus + (pts + (xy 194.31 78.74) (xy 194.31 81.28) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f7261e32-ca63-494a-b747-6a74b99136ef") + ) + (wire + (pts + (xy 36.83 177.8) (xy 36.83 184.15) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f738f2e9-6b4f-4703-acfa-15b1a65c5d93") + ) + (wire + (pts + (xy 27.94 41.91) (xy 40.64 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f839aa79-ee56-4e54-9f4f-9383073ab7ba") + ) + (wire + (pts + (xy 57.15 127) (xy 57.15 134.62) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f8a4db66-5ded-4628-860d-4ab6672218fc") + ) + (wire + (pts + (xy 196.85 73.66) (xy 215.9 73.66) + ) + (stroke + (width 0) + (type default) + ) + (uuid "fa91bad2-a0a8-44d7-9aa7-0dfb295b78b8") + ) + (wire + (pts + (xy 259.08 39.37) (xy 259.08 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "fdbfcbb5-b1c0-4c39-aa37-f1226c604d28") + ) + (wire + (pts + (xy 204.47 160.02) (xy 204.47 143.51) + ) + (stroke + (width 0) + (type default) + ) + (uuid "fe5f6520-715d-4226-9db5-fa27432cc1d4") + ) + (text "DIO" + (exclude_from_sim no) + (at 99.06 143.51 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "03d2df1b-5a34-47d0-a62f-b61589478d63") + ) + (text "USART1_TX" + (exclude_from_sim no) + (at 31.75 111.76 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "06346661-796d-4b21-b157-62c3be050940") + ) + (text "3V3" + (exclude_from_sim no) + (at 99.06 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "0c4283d5-9010-4b73-b278-0316ed085764") + ) + (text "VCC (+5V)" + (exclude_from_sim no) + (at 25.4 166.37 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "15352735-59df-4bbd-b6c3-834b5d7c0a66") + ) + (text "GND" + (exclude_from_sim no) + (at 25.4 171.45 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "17733b1b-4a78-4a83-b243-c26fd3b957d8") + ) + (text "OM UI Board J19" + (exclude_from_sim no) + (at 13.97 109.22 0) + (effects + (font + (size 1.27 1.27) + (thickness 0.254) + (bold yes) + ) + (justify left bottom) + ) + (uuid "2fe5ee3b-0837-47c0-8829-feb2e6798925") + ) + (text "GND" + (exclude_from_sim no) + (at 25.4 179.07 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "32ee1ff2-3f26-403b-9e4b-ae76f85a071e") + ) + (text "RBUMP" + (exclude_from_sim no) + (at 25.4 153.67 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "399a7c32-f27f-4ab9-be41-a68a9d6ec3a6") + ) + (text "CLK" + (exclude_from_sim no) + (at 99.06 146.05 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "428ca184-d855-4198-83fc-f1334ecc3fd5") + ) + (text "LBUMP" + (exclude_from_sim no) + (at 25.4 168.91 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "458dba48-8350-4fb7-9083-b12a7e401238") + ) + (text "LIFTX" + (exclude_from_sim no) + (at 25.4 176.53 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "61405136-b262-414c-a2cd-929cb31c8133") + ) + (text "Bridge R40\n(or move R38)\nto get BTN_PLAY\non GPIO PC11" + (exclude_from_sim no) + (at 228.6 142.24 0) + (effects + (font + (size 1.27 1.27) + (italic yes) + ) + (justify left bottom) + ) + (uuid "731b089a-2ec4-4fcc-81bf-fd4ca7c4b526") + ) + (text "VCC (+5V)" + (exclude_from_sim no) + (at 25.4 158.75 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "7b9a08ae-d686-4194-9fe8-f572a49fccb8") + ) + (text "GND" + (exclude_from_sim no) + (at 25.4 163.83 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "7f406bba-b034-40ca-b1d8-90df1eac3b89") + ) + (text "GND" + (exclude_from_sim no) + (at 99.06 148.59 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "889d533c-9888-444b-a385-d21bab09c9e0") + ) + (text "LIFT" + (exclude_from_sim no) + (at 25.4 161.29 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "8b43dad5-f176-4a7b-9556-05879eea60f7") + ) + (text "Bridge R41\n(or move R39)\nto get BTN_HOME\non GPIO PC12" + (exclude_from_sim no) + (at 228.6 132.08 0) + (effects + (font + (size 1.27 1.27) + (italic yes) + ) + (justify left bottom) + ) + (uuid "9ee3994f-287f-4815-bd07-46ff49083a21") + ) + (text "VCC (+5V)" + (exclude_from_sim no) + (at 25.4 173.99 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "ad0a5c13-fb1a-489f-9b7d-31bf294c5cce") + ) + (text "GND" + (exclude_from_sim no) + (at 25.4 156.21 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "b57e2317-747e-4a90-8c2e-e6677337c400") + ) + (text "Optional (MOD_HALL):\nSolder Cable from R74/Q5\nto U5 (Pin 2)\nto get Stop Hall (ST2)\nto GPIO PB6" + (exclude_from_sim no) + (at 101.6 3.81 0) + (effects + (font + (size 1.27 1.27) + (italic yes) + ) + (justify left bottom) + ) + (uuid "c792bcdf-3949-482f-85cd-f001dbaafcdd") + ) + (text "Optional (MOD_HALL):\nSolder Cable from R83/Q6\nto U5/Pin-10\nto get Signal to PB8" + (exclude_from_sim no) + (at 158.75 1.27 0) + (effects + (font + (size 1.27 1.27) + (italic yes) + ) + (justify left bottom) + ) + (uuid "d686f8a5-6052-49a9-86a0-7b7ca09fcefd") + ) + (text "USART1_RX" + (exclude_from_sim no) + (at 31.75 114.3 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "de6e8298-806a-49fa-8440-48c2862a6f9d") + ) + (text "Optional (MOD_HALL):\nSolder Cable fro R61/Q4\nto U5/Pin-3\nto get Signal to PB7" + (exclude_from_sim no) + (at 130.81 1.27 0) + (effects + (font + (size 1.27 1.27) + (italic yes) + ) + (justify left bottom) + ) + (uuid "e1f4994f-2c34-462a-af33-dea41b30b8db") + ) + (text "Optional (MOD_STOP):\n1. Bridge R45 (or move R43)\n to get Stop Button (STOP)\n to GPIO PA15\n2. Bridge R44 (or move R42)\n to get Stop Button (PC8_STOP)\n to GPIO PC10" + (exclude_from_sim no) + (at 71.12 38.1 0) + (effects + (font + (size 1.27 1.27) + (italic yes) + ) + (justify left bottom) + ) + (uuid "e438b7d7-b6a1-453b-813f-bc042ba0b731") + ) + (text "VCC (+5V)" + (exclude_from_sim no) + (at 25.4 181.61 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "fd50bd4a-532c-461d-b1d7-304bfb9529b8") + ) + (label "U1.PA4" + (at 213.36 97.79 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "138901e8-aa01-4b63-8574-50ec3e511557") + ) + (label "U1.PB10" + (at 214.63 88.9 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "170c202f-3227-4076-b759-4f8d0ebc0e28") + ) + (label "U1.PC7" + (at 213.36 107.95 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "185bd221-126d-47d7-8b40-bc6c9bbae076") + ) + (label "U1.PB1" + (at 213.36 83.82 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "20a3d9f4-3bc8-4da1-8018-146540afe325") + ) + (label "U1.PA6" + (at 213.36 76.2 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "30b3525d-f1db-4784-971a-4deda4e085d6") + ) + (label "U1.PF5" + (at 247.65 73.66 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "30d8b9fb-913c-496c-9287-08a18af15a9b") + ) + (label "U1.PB13" + (at 247.65 99.06 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "55f15355-1a2c-4ac9-96e9-7e0c2ea102d6") + ) + (label "U1.PC6" + (at 213.36 110.49 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "5b406eb2-2b6b-494b-ac6d-ad6ade43880b") + ) + (label "U1.PC4" + (at 213.36 81.28 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "5b9f539d-f065-4b64-a0ce-c1e73112f524") + ) + (label "U1.PA0" + (at 213.36 104.14 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "6575fd31-29b2-443a-be10-6160716d6714") + ) + (label "U2{PA[0..15] PB[0..15] PC[0..15] PD2 PF[0..7]}" + (at 190.5 158.75 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "785a7d5b-eab7-4d13-8f0f-dd456da1808d") + ) + (label "U1.PF4" + (at 247.65 76.2 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "7ced3945-3542-4565-aa95-9adaddb82626") + ) + (label "U1.PA5" + (at 213.36 95.25 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "866ecee3-91d8-4e9f-9c3a-0bee7969e5fd") + ) + (label "U1.PA7" + (at 213.36 73.66 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "a20df970-95a3-4951-acdb-e0920bb094e6") + ) + (label "U1.PC11" + (at 204.47 135.89 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "a2f8844f-9ad2-417f-82b6-b5d3277c5ea4") + ) + (label "U1.PC10" + (at 198.12 62.23 90) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "aba61cea-0c51-4faa-ac3a-6fbb08ec4cea") + ) + (label "U1.PB2" + (at 213.36 91.44 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "ae1ceef6-daf9-4810-96f7-727c146c637c") + ) + (label "U1.PB12" + (at 247.65 86.36 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "b248189d-4f73-4247-a853-1d278e63081e") + ) + (label "U1.PC5" + (at 213.36 78.74 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "bb19d67e-fcb6-43ac-8e22-fba061fd308f") + ) + (label "U1.PB11" + (at 247.65 83.82 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "c875bb71-3151-4dff-ad5f-897a7022b8aa") + ) + (label "U1.PB15" + (at 247.65 91.44 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "ce4c88c2-f98c-4f29-9660-9ec9fbafe695") + ) + (label "U1.PB0" + (at 213.36 86.36 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "e7fbfcd1-e77d-4016-af15-afa2b63aedaf") + ) + (label "U1.PC12" + (at 204.47 125.73 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "eeef319a-36ff-44e3-bb38-74d73bbb3846") + ) + (label "U1.PA1" + (at 213.36 101.6 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "f47aaa52-51ce-42a6-98b5-36f1b90ae26d") + ) + (label "U1.PA15" + (at 200.66 62.23 90) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "f73e3d65-6ff1-486e-ac15-e43da944059a") + ) + (label "U1.PB14" + (at 247.65 88.9 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "f9970a58-a1d8-4fa6-9015-51f0017a31b9") + ) + (hierarchical_label "GND Pin4" + (shape input) + (at 27.94 124.46 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "4868d5af-5cd6-43b5-921a-b02248786b13") + ) + (hierarchical_label "LED_TX Pin3" + (shape input) + (at 27.94 111.76 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "57aa25d4-572d-4eb8-af1e-bd9c01a9d7fb") + ) + (hierarchical_label "BTN_ANY" + (shape output) + (at 92.71 111.76 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "7784de4a-a53a-4850-881e-975b1bb78133") + ) + (hierarchical_label "LED_RX Pin2" + (shape output) + (at 27.94 114.3 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "ad08da9a-7e1c-49c0-acf2-bb6a5d58d8a3") + ) + (hierarchical_label "PIN11" + (shape bidirectional) + (at 27.94 135.89 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "c4a4dcbe-fb78-4bcd-b556-1887760a5a6f") + ) + (hierarchical_label "+5V Pin1" + (shape input) + (at 27.94 121.92 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "de9079a5-dada-48d0-b035-4d935727ea03") + ) + (symbol + (lib_id "Device:R") + (at 85.09 59.69 180) + (unit 1) + (exclude_from_sim no) + (in_bom no) + (on_board no) + (dnp no) + (uuid "083089b6-129f-42b4-b3f0-7fcf66df27d1") + (property "Reference" "R43" + (at 85.09 59.69 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "0" + (at 83.82 55.88 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 86.868 59.69 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 85.09 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 85.09 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "d339d57d-b14f-49f3-9303-338a7e6709e7") + ) + (pin "2" + (uuid "682a0990-237c-4751-89a8-a1f519d13314") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "R43") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Connector:Conn_01x04_Male") + (at 105.41 146.05 0) + (mirror x) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "08e46c7f-bae2-44b2-a0d3-3a429244e8bb") + (property "Reference" "JP3" + (at 105.41 134.62 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SWDIO" + (at 105.41 137.16 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 105.41 146.05 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 105.41 146.05 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 105.41 146.05 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "35c76693-1a49-4c42-83ac-3e0df9524162") + ) + (pin "2" + (uuid "5f9d9f84-f43d-414c-9042-81dc9a19ee39") + ) + (pin "3" + (uuid "a394339d-dc4d-4a67-8299-3b5d9729f1c2") + ) + (pin "4" + (uuid "291902c7-2e25-4063-82ad-7907c0f33151") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "JP3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+5V") + (at 39.37 120.65 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "18293dfd-72fd-427e-b8da-b55e9fbbb57f") + (property "Reference" "#PWR?" + (at 39.37 124.46 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+5V" + (at 39.751 116.2558 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 39.37 120.65 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 39.37 120.65 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 39.37 120.65 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "58e9ae05-ae64-4607-abf9-d255bda98ecc") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 266.7 35.56 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "19675afd-71b1-424f-beb5-53f663da1b4b") + (property "Reference" "C7" + (at 269.621 34.3916 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C" + (at 269.621 36.703 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 267.6652 39.37 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 266.7 35.56 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 266.7 35.56 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "16aa9a21-7bd3-4d6f-bdcb-a6de2cbfc141") + ) + (pin "2" + (uuid "bc14a9a6-2f7a-4845-aa7f-a44e1a9cf413") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "C7") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 233.68 35.56 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "220076b2-cb81-46a4-a7ba-938a2b232bc1") + (property "Reference" "C5" + (at 236.601 34.3916 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C" + (at 236.601 36.703 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 234.6452 39.37 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 233.68 35.56 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 233.68 35.56 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "e5d0473f-799c-4552-b561-10d6173d20a6") + ) + (pin "2" + (uuid "994deefb-31a5-4bf4-ae9d-f4bdeace16d6") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "C5") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Connector_Generic:Conn_02x08_Odd_Even") + (at 64.77 119.38 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "2fac37d7-a11b-49c5-a46d-36cf738e9365") + (property "Reference" "JP7" + (at 66.04 105.41 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "OM UI Board" + (at 66.04 107.95 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 64.77 119.38 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 64.77 119.38 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 64.77 119.38 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "851aee06-d00c-491a-a46d-8e672069ae7a") + ) + (pin "10" + (uuid "5859cf2c-3e8d-445c-a920-cc06fb795b11") + ) + (pin "11" + (uuid "c0f46ed5-b499-43c2-b707-46497c5c547a") + ) + (pin "12" + (uuid "caae08c7-b1ac-440f-a95e-00221907a312") + ) + (pin "13" + (uuid "fdb4fee4-3ff4-4b40-99c1-296ed42d5ade") + ) + (pin "14" + (uuid "74304662-b2fa-4d4c-9562-d4654b20a258") + ) + (pin "15" + (uuid "03ca4dd7-18c7-4874-be67-af1a91085255") + ) + (pin "16" + (uuid "65db2243-b075-4653-8fdd-acfeb6bd6afa") + ) + (pin "2" + (uuid "b7126d34-ec55-40b1-91aa-513b4258b8b2") + ) + (pin "3" + (uuid "d9cc41bc-38dd-4f08-87b3-92fd4ed7477a") + ) + (pin "4" + (uuid "4765c8b5-ec16-4851-b926-0fc8091cbf63") + ) + (pin "5" + (uuid "09e40ede-3fb3-4090-95ea-660e54f0fa7d") + ) + (pin "6" + (uuid "29082586-fdcc-48ad-b5e4-585d18c9a0f2") + ) + (pin "7" + (uuid "0f788f3f-0df3-42ce-a298-f1e53dca1ff9") + ) + (pin "8" + (uuid "9a4e426d-c366-48c5-9f72-e2aa61371f9b") + ) + (pin "9" + (uuid "5882a8bd-bd0b-4ff4-aeb8-5db5a82fc52a") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "JP7") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 64.77 55.88 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "37202953-a20f-4a6b-b47a-722bb8fcb260") + (property "Reference" "#PWR?" + (at 64.77 62.23 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 64.897 60.2742 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 64.77 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 64.77 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 64.77 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "7df2c438-8e5e-453e-a69c-2206d66d1e5f") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 208.28 130.81 270) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "38f8d11d-dba1-4b8e-831a-18b86944b419") + (property "Reference" "R39" + (at 208.28 130.81 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "0" + (at 212.09 132.08 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 208.28 129.032 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 208.28 130.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 208.28 130.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "33d71a4e-4335-4350-97c6-204538c94c7b") + ) + (pin "2" + (uuid "356e8a72-fe40-4095-904a-6c21f5945796") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "R39") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Regulator_Linear:AMS1117-3.3") + (at 246.38 30.48 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "395e2a64-9334-4df7-8ce2-0c2b64ad8634") + (property "Reference" "U3" + (at 246.38 24.3332 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "AMS1117-3.3" + (at 246.38 26.6446 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-223-3_TabPin2" + (at 246.38 25.4 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "http://www.advanced-monolithic.com/pdf/ds1117.pdf" + (at 248.92 36.83 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 246.38 30.48 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "d388e283-5c9e-4d03-9fd3-0030a5d7dc23") + ) + (pin "2" + (uuid "d7601e35-75d8-47d2-92e8-e7f9804bf9dd") + ) + (pin "3" + (uuid "29038f14-ca15-415d-8a48-01474b5cec0a") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "U3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 208.28 138.43 270) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "4420c194-efbd-4dca-ba3e-f1912c05db12") + (property "Reference" "R38" + (at 208.28 138.43 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "0" + (at 212.09 139.7 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 208.28 136.652 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 208.28 138.43 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 208.28 138.43 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "aa3a45f1-5147-41ce-807a-bef4b4f67246") + ) + (pin "2" + (uuid "9ee300a5-aae5-482d-8717-fc329f6ac946") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "R38") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Connector:Conn_01x02_Male") + (at 46.99 55.88 0) + (mirror x) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "4627ba8c-d0d0-47c5-bd6f-b019060f1e9c") + (property "Reference" "JP5" + (at 49.53 46.99 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "Conn_01x02_Male" + (at 55.88 49.53 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 46.99 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 46.99 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 46.99 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "99147cd6-f6d4-4e41-a460-d68e664dbb93") + ) + (pin "2" + (uuid "5b984127-517d-4569-9fc4-8caa8020b1e2") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "JP5") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Connector:Conn_01x02_Female") + (at 45.72 44.45 0) + (mirror x) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "50b03ac0-526c-4ab7-a9aa-8d4e0cae1806") + (property "Reference" "J?" + (at 46.99 44.4501 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + (property "Value" "Conn_01x02_Female" + (at 46.99 43.1801 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + (property "Footprint" "" + (at 45.72 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 45.72 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 45.72 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "b8014777-31f1-48d3-9367-400f2cc18a32") + ) + (pin "2" + (uuid "75f14627-fef5-413b-a7a6-a2ce39dc0a8e") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "J?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push_Open") + (at 22.86 41.91 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "58affd50-5e74-4498-9d0e-0d9abaeadf7c") + (property "Reference" "STOP" + (at 22.86 36.83 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push_Open" + (at 22.86 39.37 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 22.86 36.83 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 22.86 36.83 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 22.86 41.91 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "f256f07f-10ed-447c-940b-9c7eb243a843") + ) + (pin "2" + (uuid "0b553d42-878f-4ae8-9314-ab126425f9d6") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "STOP") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+3.3V") + (at 111.76 139.7 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "62d7b7b5-446b-43de-abc9-9f1b800370bd") + (property "Reference" "#PWR?" + (at 111.76 143.51 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+3.3V" + (at 112.141 135.3058 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 111.76 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 111.76 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 111.76 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "36e858cd-faee-4013-92a8-ce5e7bd3732e") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+3.3V") + (at 266.7 27.94 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "633f5129-49b2-4f2e-a604-92695fc94191") + (property "Reference" "#PWR?" + (at 266.7 31.75 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+3.3V" + (at 267.081 23.5458 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 266.7 27.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 266.7 27.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 266.7 27.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "8bb5ac09-0033-4529-9bc8-0dd6eaeda5df") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 36.83 184.15 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "72dba887-ccea-419e-a4d9-6c96b741ceba") + (property "Reference" "#PWR?" + (at 36.83 190.5 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 36.957 188.5442 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 36.83 184.15 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 36.83 184.15 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 36.83 184.15 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "d313c8e1-f67e-4b7b-82f4-038de48e6f3c") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 76.2 134.62 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "74f7e915-7a71-4094-9d35-3d66bf391d92") + (property "Reference" "#PWR?" + (at 76.2 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 76.327 139.0142 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 76.2 134.62 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 76.2 134.62 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 76.2 134.62 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "7bd04f7d-4201-49af-8e54-0934aaf1fd03") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+5V") + (at 224.79 27.94 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "75492b6e-acf1-4c40-a091-d9f1ece6fad9") + (property "Reference" "#PWR?" + (at 224.79 31.75 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+5V" + (at 225.171 23.5458 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 224.79 27.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 224.79 27.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 224.79 27.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "e97f5962-47b1-4c32-bf55-7bdf22b45a8c") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Connector:Conn_01x12_Male") + (at 26.67 165.1 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "78e51eb1-f9f9-40e3-8e10-515508daac21") + (property "Reference" "JP1" + (at 26.67 146.05 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "Conn_01x12_Male" + (at 26.67 148.59 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 26.67 165.1 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 26.67 165.1 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 26.67 165.1 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "babc77cf-1bd4-4e8b-91ec-4c13333df050") + ) + (pin "10" + (uuid "20a875b5-4912-4df9-be0d-8b45493b378c") + ) + (pin "11" + (uuid "d9ec9f7d-7d1a-4804-ad85-f9a22f3e830e") + ) + (pin "12" + (uuid "9324a635-78e3-463d-b72a-3c2de5af2e5f") + ) + (pin "2" + (uuid "a0b478db-620a-4483-8209-915ae460245d") + ) + (pin "3" + (uuid "b9c425af-c7e7-49e6-b237-778a87ebb25a") + ) + (pin "4" + (uuid "4a2f51f4-fed7-4853-bff7-4012a0ec9a06") + ) + (pin "5" + (uuid "c30888ff-ad24-4629-bd64-a7a260525fba") + ) + (pin "6" + (uuid "9e8809c5-c5c7-4e23-a00f-bc9d60f20752") + ) + (pin "7" + (uuid "8c692ea3-2df2-4829-b621-38cc4d5df014") + ) + (pin "8" + (uuid "fb363051-9418-4502-81c7-f26acdda7dcf") + ) + (pin "9" + (uuid "adfa7d12-1b1b-4fc9-83e2-368ca7cfb16c") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "JP1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 57.15 134.62 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "86005eb7-886c-441b-b4e5-78cda643cf61") + (property "Reference" "#PWR?" + (at 57.15 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 57.277 139.0142 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 57.15 134.62 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 57.15 134.62 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 57.15 134.62 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "02d40123-4126-4e94-b519-ca53bdbed76b") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 224.79 35.56 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "8a1bc93f-7f65-4331-a08e-cbe3642f0139") + (property "Reference" "C4" + (at 227.711 34.3916 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C" + (at 227.711 36.703 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 225.7552 39.37 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 224.79 35.56 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 224.79 35.56 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "8276913e-b6e0-410a-b1d9-d3dbb750e4ea") + ) + (pin "2" + (uuid "bc7b1df9-9ead-49d4-a2b8-9da592b49853") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "C4") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 111.76 149.86 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "8b5f0da7-49af-477f-90bf-8d2d8a07e7ce") + (property "Reference" "#PWR?" + (at 111.76 156.21 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 111.887 154.2542 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 111.76 149.86 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 111.76 149.86 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 111.76 149.86 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "164dd26c-a8c3-4af5-b62d-660eef3fc7c8") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 29.21 125.73 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "91a3c0bf-913f-482f-bf80-1ab84871028b") + (property "Reference" "#PWR?" + (at 29.21 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 29.337 130.1242 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 29.21 125.73 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 29.21 125.73 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 29.21 125.73 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "ebe2b92d-2f8e-498f-a341-5c972ee40f1b") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Connector:Conn_01x02_Male") + (at 46.99 44.45 0) + (mirror x) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "a0bb5f40-4404-467f-b65f-85160b628d15") + (property "Reference" "JP6" + (at 49.53 35.56 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "Conn_01x02_Male" + (at 55.88 38.1 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 46.99 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 46.99 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 46.99 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "0ecc23c4-dcfe-4c23-a418-e1adf42404b3") + ) + (pin "2" + (uuid "5e4372f9-f802-4c77-bfd6-07ba499ea6aa") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "JP6") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push_Open") + (at 22.86 53.34 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "a1b93cdd-8a6d-44d4-99d3-39682364e361") + (property "Reference" "PC8_STOP" + (at 22.86 48.26 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push_Open" + (at 22.86 50.8 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 22.86 48.26 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 22.86 48.26 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 22.86 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "918887da-388a-4c1b-8afe-c74488437393") + ) + (pin "2" + (uuid "e6a6ae1a-b329-4a7e-89a7-c265e3705bfd") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "PC8_STOP") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Connector:Conn_01x02_Female") + (at 45.72 55.88 0) + (mirror x) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "ab4e6845-f76f-4b49-accb-1fafa06808fd") + (property "Reference" "J?" + (at 46.99 55.8801 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + (property "Value" "Conn_01x02_Female" + (at 46.99 54.6101 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + (property "Footprint" "" + (at 45.72 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 45.72 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 45.72 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "8a9e7321-08e5-4756-b8f4-df6962764411") + ) + (pin "2" + (uuid "4e0dd93f-f95b-4b78-afc9-d150e50e9b12") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "J?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+5V") + (at 39.37 149.86 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "b5d0e7eb-d8cb-4d9c-9e1b-dc3924d43ec6") + (property "Reference" "#PWR?" + (at 39.37 153.67 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+5V" + (at 39.751 145.4658 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 39.37 149.86 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 39.37 149.86 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 39.37 149.86 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "ff03f0c7-57f4-46ec-a264-c474b6c8ee3d") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 259.08 35.56 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "beea65de-5e2e-4c6b-bb4b-cefce039b986") + (property "Reference" "C6" + (at 262.001 34.3916 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C" + (at 262.001 36.703 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 260.0452 39.37 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 259.08 35.56 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 259.08 35.56 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "74726bda-0354-41e8-bb15-0ee87743910a") + ) + (pin "2" + (uuid "e451bdc4-e7dd-48fb-ae62-aad9d4ed931e") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "C6") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 246.38 44.45 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "c29ba821-51f2-4da9-9f11-12d982a42b2c") + (property "Reference" "#PWR?" + (at 246.38 50.8 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 246.507 48.8442 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 246.38 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 246.38 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 246.38 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "b307d222-48b8-444a-aa7b-247a7727b12e") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 90.17 41.91 270) + (unit 1) + (exclude_from_sim no) + (in_bom no) + (on_board no) + (dnp no) + (uuid "c4b57d3e-710d-475f-aa61-8e90080ad6df") + (property "Reference" "R45" + (at 90.17 41.91 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "NP" + (at 90.17 39.37 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 90.17 40.132 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 90.17 41.91 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 90.17 41.91 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "a8853100-f84d-40d0-834b-a03f92836f26") + ) + (pin "2" + (uuid "519ec5dc-a71e-4ea1-a3a0-ac0ce247c4f8") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "R45") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 208.28 135.89 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "c81fc09e-b4d0-44a4-b833-e09d55c8b346") + (property "Reference" "R40" + (at 208.28 135.89 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "NP" + (at 213.36 134.62 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 208.28 137.668 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 208.28 135.89 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 208.28 135.89 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "e3062b58-b8b0-4f4b-bb4a-bd581fdf8a36") + ) + (pin "2" + (uuid "14da96ee-6848-4869-ab8f-bb8a28c4be9c") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "R40") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 82.55 59.69 180) + (unit 1) + (exclude_from_sim no) + (in_bom no) + (on_board no) + (dnp no) + (uuid "d0fbd26d-f56b-49a1-a832-5e7c5ba5e2bc") + (property "Reference" "R42" + (at 82.55 59.69 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "0" + (at 81.28 55.88 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 84.328 59.69 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 82.55 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 82.55 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "f2c782de-523f-4650-8265-06812e4ea1dd") + ) + (pin "2" + (uuid "830c8ac2-1cc3-4360-ae75-e59dee799ecf") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "R42") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 208.28 125.73 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "de75935a-8fc3-492c-a05f-6a081355ecc5") + (property "Reference" "R41" + (at 208.28 125.73 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "NP" + (at 213.36 124.46 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 208.28 127.508 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 208.28 125.73 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 208.28 125.73 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "00e93f1b-b666-490b-bc81-8497a2388a50") + ) + (pin "2" + (uuid "4663fd73-8627-4e3a-8b8d-56c494a951e8") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "R41") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 90.17 53.34 270) + (unit 1) + (exclude_from_sim no) + (in_bom no) + (on_board no) + (dnp no) + (uuid "f378a2af-a21d-43de-b4b9-72600edc362e") + (property "Reference" "R44" + (at 90.17 53.34 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "NP" + (at 90.17 50.8 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 90.17 51.562 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 90.17 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 90.17 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "de5618cd-db73-4a94-9157-392a0f425648") + ) + (pin "2" + (uuid "5356649e-28d6-407b-bd62-19df6197bffd") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "R44") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 64.77 44.45 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "fd594781-ae9f-4e01-a037-d34713adcf47") + (property "Reference" "#PWR?" + (at 64.77 50.8 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 64.897 48.8442 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 64.77 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 64.77 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 64.77 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "1513415b-e7be-4eee-8fcf-d5cbd3685d3c") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (sheet + (at 118.11 74.93) + (size 39.37 74.93) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "6f8d9ecb-cf0e-4216-a06b-57d9741d7238") + (property "Sheetname" "MCU STM32F030 & ESP-WROOM-02" + (at 138.43 74.93 0) + (effects + (font + (size 1.27 1.27) + ) + (justify bottom) + ) + ) + (property "Sheetfile" "Subsheets/SA,SC-Type 10Button-12LED Board/mcu_stm32f030.kicad_sch" + (at 123.19 74.93 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "USART1_TX (PA2)" output + (at 118.11 96.52 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "a6f2c01a-ccf5-44a9-88c0-346413ee046d") + ) + (pin "USART1_RX (PA3)" input + (at 118.11 99.06 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "a380fae9-38f7-406f-9bc7-e4ba3f38bd84") + ) + (pin "SWDIO" input + (at 118.11 143.51 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "b13cbe43-d584-4175-ac53-86f5831e84f2") + ) + (pin "SWCLK" input + (at 118.11 146.05 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "e84b7782-5cad-41bf-a893-db8e7bca4dcc") + ) + (pin "U2{PA[0..15] PB[0..15] PC[0..15] PD2 PF[0..7]}" input + (at 138.43 149.86 270) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "d54aafee-6cbf-4d7d-a3e7-5829d4a813cb") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (page "2") + ) + ) + ) + ) + (sheet + (at 215.9 71.12) + (size 30.48 74.93) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "b9b194e8-2826-4619-83c8-f97e2646d4b1") + (property "Sheetname" "Buttons and LEDs" + (at 222.25 71.12 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "Subsheets/SA,SC-Type 10Button-12LED Board/btns-leds.kicad_sch" + (at 210.82 146.05 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + ) + ) + (pin "BTN_PLAY" input + (at 215.9 138.43 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "d55da950-dda7-4418-9cc0-aaa2abff4897") + ) + (pin "BTN_S1" input + (at 215.9 97.79 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "c97b7af9-2f8d-4116-a968-ce63e0536dc9") + ) + (pin "LED_S1" input + (at 215.9 95.25 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "0be5aebc-a496-4b30-bde7-e07ab15c40a1") + ) + (pin "LED_4HR" input + (at 215.9 73.66 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "22285bea-9f34-4a66-a89b-3591e6720aa0") + ) + (pin "BTN_HOME" input + (at 215.9 128.27 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "bacb090f-8c62-4d86-9086-5c146180eaf1") + ) + (pin "BTN_S2" input + (at 215.9 110.49 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "53975f52-8460-49de-bdf8-d382bc3d49ec") + ) + (pin "LED_S2" input + (at 215.9 107.95 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "64bde2ed-778c-4c63-b757-47ba0423c9bb") + ) + (pin "LED_6HR" input + (at 215.9 78.74 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "aa68083b-8ee4-4fc2-b6ef-9d6a28819106") + ) + (pin "LED_8HR" input + (at 215.9 83.82 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "d50d2fc8-544a-4bf6-b5fa-8a9ed5a9e368") + ) + (pin "LED_LOCK" input + (at 215.9 101.6 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "424b06f1-f704-47eb-80dc-d8f231d78e43") + ) + (pin "BTN_LOCK" input + (at 215.9 104.14 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "3e1fcd15-488d-4234-9d9d-d0777acde3e8") + ) + (pin "BTN_ANY" input + (at 215.9 143.51 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "04e7f1ef-4dc7-4db5-96ec-8f55c0244f1d") + ) + (pin "LED_PCB" input + (at 246.38 99.06 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "4f80e25a-b65b-425a-9150-bd552769406c") + ) + (pin "LED_CHARGE" input + (at 246.38 91.44 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "69506aba-09c9-4e86-9485-d31bd5cc540a") + ) + (pin "LED_BAT" input + (at 246.38 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "dd1ba8de-c1fd-4318-9fdd-b5d8eb46ba62") + ) + (pin "LED_WIRE" input + (at 246.38 86.36 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "be89739d-f24f-4bae-9065-d7f24f8c9147") + ) + (pin "LED_LIFTED" input + (at 246.38 83.82 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "07e3e85b-be66-497e-87b2-41c8b40406db") + ) + (pin "LED_SETUP" input + (at 246.38 73.66 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "f7917b18-ae75-42e2-b372-9793f55d7527") + ) + (pin "BTN_8HR" input + (at 215.9 86.36 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "37d8d0b4-dc51-4d30-8c31-c1054c1a662f") + ) + (pin "BTN_10HR" input + (at 215.9 91.44 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "f58c676f-e295-4b4f-a4d1-5cf376b6648c") + ) + (pin "BTN_SETUP" input + (at 246.38 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "9168795e-8118-4996-825e-4ef1599da5df") + ) + (pin "LED_10HR" input + (at 215.9 88.9 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "8abca9e1-b51d-4391-895c-159ed0e69b21") + ) + (pin "BTN_4HR" input + (at 215.9 76.2 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "c60748e2-6172-4b61-ac6e-a6aead885c87") + ) + (pin "BTN_6HR" input + (at 215.9 81.28 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "14f16963-1545-404b-920a-b75099abe84f") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139" + (page "3") + ) + ) + ) + ) + (sheet_instances + (path "/" + (page "1") + ) + ) ) diff --git a/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/btn.kicad_sch b/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/btn.kicad_sch index 9711509..ed8446d 100644 --- a/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/btn.kicad_sch +++ b/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/btn.kicad_sch @@ -1,158 +1,495 @@ -(kicad_sch (version 20211123) (generator eeschema) - - (uuid 3931cd65-59db-4650-bde2-1207e270a4d5) - - (paper "A4") - - (title_block - (title "YardForce SA/SC 10Buttons 12LEDs CoverUI") - (date "2023-10-20") - (rev "0.1") - (comment 1 "(c) Apehaenger") - (comment 2 "For https://openmower.de") - (comment 3 "RM-ECOW-V1.0.0 2018.06.05 with STM32F030R8T6") - ) - - (lib_symbols - (symbol "Switch:SW_Push" (pin_numbers hide) (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) - (property "Reference" "SW" (id 0) (at 1.27 2.54 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "SW_Push" (id 1) (at 0 -1.524 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 5.08 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 0 5.08 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "switch normally-open pushbutton push-button" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Push button switch, generic, two pins" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "SW_Push_0_1" - (circle (center -2.032 0) (radius 0.508) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 0 1.27) - (xy 0 3.048) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 2.54 1.27) - (xy -2.54 1.27) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (circle (center 2.032 0) (radius 0.508) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (pin passive line (at -5.08 0 0) (length 2.54) - (name "1" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 5.08 0 180) (length 2.54) - (name "2" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) - (property "Reference" "#PWR" (id 0) (at 0 -6.35 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 0 -3.81 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "global power" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "GND_0_1" - (polyline - (pts - (xy 0 0) - (xy 0 -1.27) - (xy 1.27 -1.27) - (xy 0 -2.54) - (xy -1.27 -1.27) - (xy 0 -1.27) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - ) - (symbol "GND_1_1" - (pin power_in line (at 0 0 270) (length 0) hide - (name "GND" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - ) - ) - ) - - - (wire (pts (xy 132.08 82.55) (xy 132.08 91.44)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid e5f6d0d3-e09a-43ae-b1bd-8f03272a9d05) - ) - (wire (pts (xy 142.24 91.44) (xy 142.24 93.98)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ff3c0ceb-2608-4a6c-a7a9-a4bb27778902) - ) - - (hierarchical_label "BTN" (shape output) (at 132.08 82.55 90) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 9923da92-aa70-4ae4-97b9-e3f3c267ba3c) - ) - - (symbol (lib_id "power:GND") (at 142.24 93.98 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 8c3e7104-aa64-42e5-84e0-e6cc833b580c) - (property "Reference" "#PWR?" (id 0) (at 142.24 100.33 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "~" (id 1) (at 142.24 97.79 0)) - (property "Footprint" "" (id 2) (at 142.24 93.98 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 142.24 93.98 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 8708e839-9775-475c-8341-9205ff1e823c)) - ) - - (symbol (lib_id "Switch:SW_Push") (at 137.16 91.44 0) (mirror y) (unit 1) - (in_bom yes) (on_board yes) - (uuid f3b812c2-a0fc-4a10-813c-b7868a9843a7) - (property "Reference" "S4" (id 0) (at 137.16 92.71 0)) - (property "Value" "BTN" (id 1) (at 137.16 86.36 0)) - (property "Footprint" "" (id 2) (at 137.16 86.36 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 137.16 86.36 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 6586567b-a1ea-4e1f-8197-d2f2fcd34f04)) - (pin "2" (uuid e1d0511a-fa0d-40fc-a011-edba2d7338d8)) - ) +(kicad_sch + (version 20231120) + (generator "eeschema") + (generator_version "8.0") + (uuid "3931cd65-59db-4650-bde2-1207e270a4d5") + (paper "A4") + (title_block + (title "YardForce SA/SC 10Buttons 12LEDs CoverUI") + (date "2023-10-20") + (rev "0.1") + (comment 1 "(c) Apehaenger") + (comment 2 "For https://openmower.de") + (comment 3 "RM-ECOW-V1.0.0 2018.06.05 with STM32F030R8T6") + ) + (lib_symbols + (symbol "Switch:SW_Push" + (pin_numbers hide) + (pin_names + (offset 1.016) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "SW" + (at 1.27 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "SW_Push" + (at 0 -1.524 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 5.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 5.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, generic, two pins" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "switch normally-open pushbutton push-button" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "SW_Push_0_1" + (circle + (center -2.032 0) + (radius 0.508) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 1.27) (xy 0 3.048) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 2.54 1.27) (xy -2.54 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 2.032 0) + (radius 0.508) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (pin passive line + (at -5.08 0 0) + (length 2.54) + (name "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 0 180) + (length 2.54) + (name "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "power:GND" + (power) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -6.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "GND_1_1" + (pin power_in line + (at 0 0 270) + (length 0) hide + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + ) + (wire + (pts + (xy 132.08 82.55) (xy 132.08 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e5f6d0d3-e09a-43ae-b1bd-8f03272a9d05") + ) + (wire + (pts + (xy 142.24 91.44) (xy 142.24 93.98) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ff3c0ceb-2608-4a6c-a7a9-a4bb27778902") + ) + (hierarchical_label "BTN" + (shape output) + (at 132.08 82.55 90) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "9923da92-aa70-4ae4-97b9-e3f3c267ba3c") + ) + (symbol + (lib_id "power:GND") + (at 142.24 93.98 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "8c3e7104-aa64-42e5-84e0-e6cc833b580c") + (property "Reference" "#PWR?" + (at 142.24 100.33 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 142.24 97.79 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 142.24 93.98 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 142.24 93.98 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 142.24 93.98 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "8708e839-9775-475c-8341-9205ff1e823c") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/cb986726-e56a-48e5-aed0-312c759afc67" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/68fc2291-23ce-4042-82ba-d439ac818833" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/67787c73-84f9-4e8b-bd73-6a943a7bd2c3" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/c3563dfd-5e14-451f-b229-43a13a922ebc" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/1f9c8fa6-0e95-4055-8ee5-a384df3a8d30" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/bdf77bd1-b51b-4381-9e62-f13f4ba6b6bc" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/3f18ef67-c6d0-4eae-8fdf-c33cff7c7af1" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/072824f1-6f70-4c5d-8274-fe1d659d368f" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/abef5370-15e4-4795-a952-0798cea794ba" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/16f75c6c-100e-4cca-aa77-4c90b010701d" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push") + (at 137.16 91.44 0) + (mirror y) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "f3b812c2-a0fc-4a10-813c-b7868a9843a7") + (property "Reference" "S4" + (at 137.16 92.71 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "BTN" + (at 137.16 86.36 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 137.16 86.36 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 137.16 86.36 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 137.16 91.44 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "6586567b-a1ea-4e1f-8197-d2f2fcd34f04") + ) + (pin "2" + (uuid "e1d0511a-fa0d-40fc-a011-edba2d7338d8") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/cb986726-e56a-48e5-aed0-312c759afc67" + (reference "S4") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/68fc2291-23ce-4042-82ba-d439ac818833" + (reference "S?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/67787c73-84f9-4e8b-bd73-6a943a7bd2c3" + (reference "S?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/c3563dfd-5e14-451f-b229-43a13a922ebc" + (reference "S?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/1f9c8fa6-0e95-4055-8ee5-a384df3a8d30" + (reference "S?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/bdf77bd1-b51b-4381-9e62-f13f4ba6b6bc" + (reference "S7") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/3f18ef67-c6d0-4eae-8fdf-c33cff7c7af1" + (reference "S?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/072824f1-6f70-4c5d-8274-fe1d659d368f" + (reference "S?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/abef5370-15e4-4795-a952-0798cea794ba" + (reference "S?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/16f75c6c-100e-4cca-aa77-4c90b010701d" + (reference "S1") + (unit 1) + ) + ) + ) + ) ) diff --git a/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/btns-leds.kicad_sch b/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/btns-leds.kicad_sch index a127b49..6042794 100644 --- a/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/btns-leds.kicad_sch +++ b/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/btns-leds.kicad_sch @@ -1,936 +1,1741 @@ -(kicad_sch (version 20211123) (generator eeschema) - - (uuid bd98f40e-28be-4a1f-85df-4b2cead9c550) - - (paper "A4") - - (title_block - (title "YardForce SA/SC 10Buttons 12LEDs CoverUI") - (date "2023-10-20") - (rev "0.1") - (comment 1 "(c) Apehaenger") - (comment 2 "For https://openmower.de") - (comment 3 "RM-ECOW-V1.0.0 2018.06.05 with STM32F030R8T6") - ) - - (lib_symbols - ) - - - (wire (pts (xy 187.96 86.36) (xy 190.5 86.36)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 1cf7f7d5-3972-4239-a94b-c144d7756424) - ) - (wire (pts (xy 213.36 113.03) (xy 215.9 113.03)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 3644216e-c983-42d1-8005-23905367ebdc) - ) - (wire (pts (xy 142.24 113.03) (xy 144.78 113.03)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 4d782307-14fb-4b54-bb3f-36ee4f3e12a0) - ) - (wire (pts (xy 86.36 33.02) (xy 88.9 33.02)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 4e90abd8-0293-47b0-a946-28ef56b14a34) - ) - (wire (pts (xy 39.37 152.4) (xy 41.91 152.4)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 542b040d-a7d1-4bba-a5f6-17e7a15f8aef) - ) - (wire (pts (xy 99.06 86.36) (xy 101.6 86.36)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 5705ddef-2775-420a-bd6e-d48918122720) - ) - (wire (pts (xy 73.66 113.03) (xy 76.2 113.03)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 573e0b88-294d-4983-ae9d-988dd7861d86) - ) - (wire (pts (xy 200.66 49.53) (xy 203.2 49.53)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 6ccd623a-dc7a-4430-a0c8-414bc011b336) - ) - (wire (pts (xy 124.46 59.69) (xy 127 59.69)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 80a88de4-ce99-49d9-b91b-4f94eaace4ae) - ) - (wire (pts (xy 142.24 86.36) (xy 144.78 86.36)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 9e0af93a-75e8-4fcc-8e4d-b0992caacb5d) - ) - (wire (pts (xy 142.24 102.87) (xy 144.78 102.87)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a3354188-fd9c-480f-ba21-cf17df8a9df3) - ) - (wire (pts (xy 142.24 76.2) (xy 144.78 76.2)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ac94516f-6897-4ca3-b3a8-6c47e64e754f) - ) - (wire (pts (xy 86.36 49.53) (xy 88.9 49.53)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b15d90ab-8ef4-4b51-823e-f6382aeca081) - ) - (wire (pts (xy 86.36 59.69) (xy 88.9 59.69)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c0794e77-15de-45cf-84d5-c6527d2eb802) - ) - (wire (pts (xy 187.96 76.2) (xy 190.5 76.2)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid cd6cd0df-6b89-4087-98aa-16793b8020d9) - ) - (wire (pts (xy 124.46 49.53) (xy 127 49.53)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid dc8859c9-2630-4b13-8f85-3331b5993ecd) - ) - (wire (pts (xy 162.56 59.69) (xy 165.1 59.69)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid e19e2f36-4e31-4be4-b271-0410b0735b76) - ) - (wire (pts (xy 124.46 33.02) (xy 127 33.02)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid e725a856-05ed-4c8d-8528-a4a309b4b707) - ) - (wire (pts (xy 162.56 49.53) (xy 165.1 49.53)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid e9b7b640-8982-4263-b705-f255eddf56e4) - ) - (wire (pts (xy 200.66 59.69) (xy 203.2 59.69)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid eaa63689-5f15-4baa-9bc4-6aaa66c23fa8) - ) - (wire (pts (xy 200.66 33.02) (xy 203.2 33.02)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ed4d0137-d8a6-49d8-8e99-ff5a02b93946) - ) - (wire (pts (xy 162.56 33.02) (xy 165.1 33.02)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid f6acb87f-8804-4f5e-a17c-437b1c644021) - ) - (wire (pts (xy 99.06 76.2) (xy 101.6 76.2)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid fd7985a8-8fd7-4fb4-87dc-96222886b0c0) - ) - - (hierarchical_label "BTN_HOME" (shape input) (at 73.66 113.03 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 0b480d14-2991-4f86-8837-2a62c42b50b9) - ) - (hierarchical_label "LED_LIFTED" (shape input) (at 86.36 33.02 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 179fbc6c-4e58-49d8-8034-1778fe7c61ff) - ) - (hierarchical_label "LED_CHARGE" (shape input) (at 200.66 33.02 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 24881716-3fc9-459f-a552-c71b99585c7f) - ) - (hierarchical_label "BTN_6HR" (shape input) (at 124.46 59.69 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 255dedc5-3dd8-4913-939d-6883337caca3) - ) - (hierarchical_label "BTN_LOCK" (shape input) (at 142.24 113.03 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 2db57417-a107-4100-9f69-a27e11259776) - ) - (hierarchical_label "LED_S2" (shape input) (at 187.96 76.2 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 399d7f2c-f964-4410-b9d8-205a092300d4) - ) - (hierarchical_label "BTN_SETUP" (shape input) (at 142.24 86.36 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 43143be6-cd81-4685-8945-2e38413f4893) - ) - (hierarchical_label "BTN_4HR" (shape input) (at 86.36 59.69 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 48721479-cee6-42cf-b7d3-c2ad238e71c4) - ) - (hierarchical_label "LED_SETUP" (shape input) (at 142.24 76.2 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 4b717be2-650c-4e37-807c-e2ec44da8a75) - ) - (hierarchical_label "LED_8HR" (shape input) (at 162.56 49.53 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 4bfdc85a-14af-4f8c-83e3-456bb005fbe0) - ) - (hierarchical_label "BTN_10HR" (shape input) (at 200.66 59.69 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 5528240d-d6fc-4038-9fdd-13212f732123) - ) - (hierarchical_label "LED_S1" (shape input) (at 99.06 76.2 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 5b44339c-eb39-413b-b304-071930b16e41) - ) - (hierarchical_label "LED_LOCK" (shape input) (at 142.24 102.87 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 765d948f-24c7-4a9c-ba49-2c8de753309f) - ) - (hierarchical_label "LED_4HR" (shape input) (at 86.36 49.53 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 86394dea-53ca-4c89-9687-c0c9cede2375) - ) - (hierarchical_label "BTN_ANY" (shape input) (at 44.45 69.85 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid a35b5b40-636c-4ca0-aecd-b604e3bd215e) - ) - (hierarchical_label "BTN_S1" (shape input) (at 99.06 86.36 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid a6bfa69d-113b-470b-a47a-69e980d815e5) - ) - (hierarchical_label "BTN_8HR" (shape input) (at 162.56 59.69 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid b0b67677-2b7c-4919-9a5c-d8ee6d7730b4) - ) - (hierarchical_label "LED_WIRE" (shape input) (at 124.46 33.02 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid b11ba303-e3d4-40a3-a76a-82084921bdd2) - ) - (hierarchical_label "LED_PCB" (shape input) (at 39.37 152.4 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid d26756c5-2a43-4a86-bd78-00c2c0434f0b) - ) - (hierarchical_label "LED_6HR" (shape input) (at 124.46 49.53 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid de252a29-3588-40af-8e18-ac7a1c551380) - ) - (hierarchical_label "LED_BAT" (shape input) (at 162.56 33.02 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid dea375cd-6670-4528-95f9-20c36e5b4159) - ) - (hierarchical_label "BTN_S2" (shape input) (at 187.96 86.36 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid e5cd9bd8-9572-47f5-9e41-b4517afb5437) - ) - (hierarchical_label "LED_10HR" (shape input) (at 200.66 49.53 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid e72965c3-2848-44ac-92ea-26ab4bbd65b6) - ) - (hierarchical_label "BTN_PLAY" (shape input) (at 213.36 113.03 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid ebb0bc8f-d96c-4b7c-b881-93b69934c28c) - ) - - (sheet (at 127 30.48) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 042e4969-327d-4173-bf2d-58068743bb39) - (property "Sheet name" "Wire" (id 0) (at 130.81 36.83 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "led.kicad_sch" (id 1) (at 127 41.2246 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "LED" input (at 127 33.02 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 2ccc3276-2e75-4c29-89fc-9bd20acf49ee) - ) - ) - - (sheet (at 190.5 83.82) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 072824f1-6f70-4c5d-8274-fe1d659d368f) - (property "Sheet name" "S2" (id 0) (at 194.31 90.17 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "btn.kicad_sch" (id 1) (at 190.5 90.7546 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "BTN" output (at 190.5 86.36 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid f11879a1-b2bc-4afb-8426-6e1395d60556) - ) - (pin "ANY" output (at 203.2 91.44 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 34477ce4-2633-4290-be51-2d7af7f1d720) - ) - ) - - (sheet (at 101.6 73.66) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 0c9217a6-c86f-493f-97ed-25d1c23191d5) - (property "Sheet name" "S1" (id 0) (at 105.41 80.01 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "led.kicad_sch" (id 1) (at 101.6 84.4046 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "LED" input (at 101.6 76.2 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 74effdae-b01d-4ed4-9cd3-b673a05f6c82) - ) - ) - - (sheet (at 88.9 30.48) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 0d9ecba3-7f72-4bf6-97bb-74f9c16054a8) - (property "Sheet name" "Lifted" (id 0) (at 92.71 36.83 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "led.kicad_sch" (id 1) (at 88.9 41.2246 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "LED" input (at 88.9 33.02 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 2214867a-84da-4f00-9e23-552c56cf40a3) - ) - ) - - (sheet (at 190.5 73.66) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 0fa4de6b-dd8b-4a2a-8717-4c87d02c07fd) - (property "Sheet name" "S2" (id 0) (at 194.31 80.01 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "led.kicad_sch" (id 1) (at 190.5 84.4046 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "LED" input (at 190.5 76.2 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 09e269b2-a233-4075-a257-a419e399d7fa) - ) - ) - - (sheet (at 215.9 110.49) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 16f75c6c-100e-4cca-aa77-4c90b010701d) - (property "Sheet name" "Play" (id 0) (at 219.71 116.84 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "btn.kicad_sch" (id 1) (at 215.9 117.4246 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "BTN" output (at 215.9 113.03 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 28ecb963-23d1-415c-900c-76bb3d13bc05) - ) - ) - - (sheet (at 203.2 30.48) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 1a054df1-92c6-49e4-8438-998a18448335) - (property "Sheet name" "Charge" (id 0) (at 207.01 36.83 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "led.kicad_sch" (id 1) (at 203.2 41.2246 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "LED" input (at 203.2 33.02 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 69d12de7-15f5-4f33-8943-0f462961b33f) - ) - ) - - (sheet (at 144.78 83.82) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 1f9c8fa6-0e95-4055-8ee5-a384df3a8d30) - (property "Sheet name" "Setup" (id 0) (at 148.59 90.17 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "btn.kicad_sch" (id 1) (at 144.78 90.7546 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "BTN" output (at 144.78 86.36 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 399cdd69-cc9a-423b-941a-553370df5c98) - ) - (pin "ANY" output (at 157.48 91.44 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 41999f30-166d-480f-b3b9-d62e92361064) - ) - ) - - (sheet (at 88.9 46.99) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 2b2cc9ba-dd55-470b-bfc9-7ca090c57563) - (property "Sheet name" "4HR" (id 0) (at 92.71 53.34 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "led.kicad_sch" (id 1) (at 88.9 57.7346 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "LED" input (at 88.9 49.53 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 688043b8-c338-41fd-943b-523faf667b1e) - ) - ) - - (sheet (at 41.91 149.86) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 32cecd9d-5638-4a5f-8d74-09fceab348e4) - (property "Sheet name" "PCB" (id 0) (at 45.72 156.21 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "led.kicad_sch" (id 1) (at 41.91 160.6046 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "LED" input (at 41.91 152.4 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 51f96348-b7fa-47ca-b5a7-bbb71f4a573b) - ) - ) - - (sheet (at 165.1 57.15) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 3f18ef67-c6d0-4eae-8fdf-c33cff7c7af1) - (property "Sheet name" "8HR" (id 0) (at 168.91 63.5 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "btn.kicad_sch" (id 1) (at 165.1 64.0846 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "BTN" output (at 165.1 59.69 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid a79e3906-441f-48e1-9b70-10982b4cb4f9) - ) - (pin "ANY" output (at 177.8 64.77 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid d9f08512-7aae-41db-89ff-fc951a60b75d) - ) - ) - - (sheet (at 127 46.99) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 5beb5b85-1682-4e05-bb95-70d95a41deec) - (property "Sheet name" "6HR" (id 0) (at 130.81 53.34 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "led.kicad_sch" (id 1) (at 127 57.7346 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "LED" input (at 127 49.53 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 83049dae-ac97-41ea-89e3-d7888390cd17) - ) - ) - - (sheet (at 101.6 83.82) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 67787c73-84f9-4e8b-bd73-6a943a7bd2c3) - (property "Sheet name" "S1" (id 0) (at 105.41 90.17 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "btn.kicad_sch" (id 1) (at 101.6 90.7546 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "BTN" output (at 101.6 86.36 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 5813fa7a-d2c4-4456-94f6-a3cc2a77d9b7) - ) - (pin "ANY" output (at 114.3 91.44 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 6198f2d6-815f-43f4-bdbd-1af395087dbb) - ) - ) - - (sheet (at 88.9 57.15) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid 68fc2291-23ce-4042-82ba-d439ac818833) - (property "Sheet name" "4HR" (id 0) (at 92.71 63.5 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "btn.kicad_sch" (id 1) (at 88.9 64.0846 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "BTN" output (at 88.9 59.69 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 892416f5-ad7e-49fa-ac7f-11ddb4b7851e) - ) - (pin "ANY" output (at 101.6 64.77 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 0d329119-2446-4cd9-9f23-127250775b52) - ) - ) - - (sheet (at 203.2 57.15) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid abef5370-15e4-4795-a952-0798cea794ba) - (property "Sheet name" "10HR" (id 0) (at 207.01 63.5 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "btn.kicad_sch" (id 1) (at 203.2 64.0846 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "BTN" output (at 203.2 59.69 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 5948a79d-2655-46c5-997b-a9fd2d60c8da) - ) - (pin "ANY" output (at 215.9 64.77 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid b1d4fce0-369f-4185-afb1-c0341b586728) - ) - ) - - (sheet (at 165.1 46.99) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid ae820929-9da9-4df3-acf1-6ff3866e5aba) - (property "Sheet name" "8HR" (id 0) (at 168.91 53.34 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "led.kicad_sch" (id 1) (at 165.1 57.7346 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "LED" input (at 165.1 49.53 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 63562bf9-5852-4ecc-b3d6-127eae07d3c9) - ) - ) - - (sheet (at 144.78 110.49) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid bdf77bd1-b51b-4381-9e62-f13f4ba6b6bc) - (property "Sheet name" "Lock" (id 0) (at 148.59 116.84 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "btn.kicad_sch" (id 1) (at 144.78 117.4246 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "BTN" output (at 144.78 113.03 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid fdbc1947-21cc-41d0-b705-16bcc4892ad1) - ) - (pin "ANY" output (at 157.48 118.11 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 2402be62-5c0c-4cb6-ad1d-d59014200d6d) - ) - ) - - (sheet (at 127 57.15) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid c3563dfd-5e14-451f-b229-43a13a922ebc) - (property "Sheet name" "6HR" (id 0) (at 130.81 63.5 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "btn.kicad_sch" (id 1) (at 127 64.0846 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "BTN" output (at 127 59.69 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid ffda9f6b-c4aa-4437-a360-f407b6e92b6b) - ) - (pin "ANY" output (at 139.7 64.77 0) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid c0e47732-5cc2-42d6-a04b-32079f7e4d5c) - ) - ) - - (sheet (at 76.2 110.49) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid cb986726-e56a-48e5-aed0-312c759afc67) - (property "Sheet name" "Home" (id 0) (at 80.01 116.84 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "btn.kicad_sch" (id 1) (at 76.2 117.4246 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "BTN" output (at 76.2 113.03 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid ef5f7622-9f51-422e-804b-fe0f7be936cd) - ) - ) - - (sheet (at 144.78 100.33) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid d9f89116-3750-4b50-ac8d-4b852c94145c) - (property "Sheet name" "Lock" (id 0) (at 148.59 106.68 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "led.kicad_sch" (id 1) (at 144.78 111.0746 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "LED" input (at 144.78 102.87 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 6e90eed8-5e15-4392-a96f-82f1155e96da) - ) - ) - - (sheet (at 144.78 73.66) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid ee7a3882-3a6c-4615-9c99-075b5b7832c4) - (property "Sheet name" "Setup" (id 0) (at 148.59 80.01 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "led.kicad_sch" (id 1) (at 144.78 84.4046 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "LED" input (at 144.78 76.2 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 2669d597-f59a-48a0-b5c1-01002bbef2e6) - ) - ) - - (sheet (at 203.2 46.99) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid ef4efca2-c9a8-4fed-b9de-33c599342ecf) - (property "Sheet name" "10HR" (id 0) (at 207.01 53.34 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "led.kicad_sch" (id 1) (at 203.2 57.7346 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "LED" input (at 203.2 49.53 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 5f0ed55d-8f33-4423-a3ba-f21f0f7d384b) - ) - ) - - (sheet (at 165.1 30.48) (size 12.7 10.16) - (stroke (width 0.1524) (type solid) (color 0 0 0 0)) - (fill (color 0 0 0 0.0000)) - (uuid f9ca5fc0-5835-482c-8b2c-00ae0e0f5d20) - (property "Sheet name" "Battery" (id 0) (at 168.91 36.83 0) - (effects (font (size 1.27 1.27) bold) (justify left bottom)) - ) - (property "Sheet file" "led.kicad_sch" (id 1) (at 165.1 41.2246 0) - (effects (font (size 1.27 1.27)) (justify left top) hide) - ) - (pin "LED" input (at 165.1 33.02 180) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid e78b6d9e-0d73-4c6a-9b46-8fb02ed4cdbe) - ) - ) - - (sheet_instances - (path "/" (page "1")) - (path "/32cecd9d-5638-4a5f-8d74-09fceab348e4" (page "2")) - (path "/90d701b0-12ae-4a0d-b8af-50e597875b39" (page "3")) - (path "/3de06fc2-be66-4e14-b0d0-b87f5f506885" (page "4")) - (path "/68fc2291-23ce-4042-82ba-d439ac818833" (page "5")) - (path "/b287ed6a-623f-44ab-81fe-9752fe228d02" (page "6")) - (path "/55b93f5e-ef0b-4b09-9835-b0750e8c1f0b" (page "7")) - (path "/0d9ecba3-7f72-4bf6-97bb-74f9c16054a8" (page "9")) - (path "/cb986726-e56a-48e5-aed0-312c759afc67" (page "10")) - (path "/14043d9f-2a41-4145-9c09-b8f7f1bbda89" (page "11")) - (path "/7b4fbcc7-99c5-4ddd-8af8-04b6cfe6212a" (page "12")) - (path "/ef4efca2-c9a8-4fed-b9de-33c599342ecf" (page "13")) - (path "/042e4969-327d-4173-bf2d-58068743bb39" (page "14")) - (path "/0c9217a6-c86f-493f-97ed-25d1c23191d5" (page "15")) - (path "/67787c73-84f9-4e8b-bd73-6a943a7bd2c3" (page "16")) - (path "/ffe717a6-5798-4b67-a476-8fb68014a2c2" (page "17")) - (path "/782a0599-ec85-4f63-a6e8-2f080a2cf4cf" (page "18")) - (path "/2b2cc9ba-dd55-470b-bfc9-7ca090c57563" (page "19")) - (path "/0fa4de6b-dd8b-4a2a-8717-4c87d02c07fd" (page "20")) - (path "/072824f1-6f70-4c5d-8274-fe1d659d368f" (page "21")) - (path "/f9ca5fc0-5835-482c-8b2c-00ae0e0f5d20" (page "22")) - (path "/79643819-548b-4cae-aadb-0020850426af" (page "23")) - (path "/72fa6dbb-34d8-44c2-8713-18bfc41f0e43" (page "24")) - (path "/5beb5b85-1682-4e05-bb95-70d95a41deec" (page "25")) - (path "/d9f89116-3750-4b50-ac8d-4b852c94145c" (page "26")) - (path "/bdf77bd1-b51b-4381-9e62-f13f4ba6b6bc" (page "27")) - (path "/1a054df1-92c6-49e4-8438-998a18448335" (page "28")) - (path "/f5884f66-9593-442c-9476-1ce6736966dd" (page "29")) - (path "/98c673fa-a9e3-422e-b7d2-a898c410a16d" (page "30")) - (path "/ae820929-9da9-4df3-acf1-6ff3866e5aba" (page "31")) - (path "/caaef630-abe9-455b-bb74-e98cd4bffb05" (page "32")) - (path "/37d6cc53-fe3e-4218-bc93-7e31e7013f42" (page "33")) - (path "/c69f6540-c0a9-454b-a567-c1c717a89d1f" (page "34")) - ) - - (symbol_instances - (path "/d9f89116-3750-4b50-ac8d-4b852c94145c/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/ffe717a6-5798-4b67-a476-8fb68014a2c2/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/2b2cc9ba-dd55-470b-bfc9-7ca090c57563/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/0fa4de6b-dd8b-4a2a-8717-4c87d02c07fd/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/0c9217a6-c86f-493f-97ed-25d1c23191d5/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/042e4969-327d-4173-bf2d-58068743bb39/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/f9ca5fc0-5835-482c-8b2c-00ae0e0f5d20/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/ef4efca2-c9a8-4fed-b9de-33c599342ecf/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/79643819-548b-4cae-aadb-0020850426af/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/5beb5b85-1682-4e05-bb95-70d95a41deec/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/14043d9f-2a41-4145-9c09-b8f7f1bbda89/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/0d9ecba3-7f72-4bf6-97bb-74f9c16054a8/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/1a054df1-92c6-49e4-8438-998a18448335/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/f5884f66-9593-442c-9476-1ce6736966dd/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/32cecd9d-5638-4a5f-8d74-09fceab348e4/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/b287ed6a-623f-44ab-81fe-9752fe228d02/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/90d701b0-12ae-4a0d-b8af-50e597875b39/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/37d6cc53-fe3e-4218-bc93-7e31e7013f42/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/ae820929-9da9-4df3-acf1-6ff3866e5aba/5a707703-1b06-457d-aac2-0ebe2b980fc9" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/7b4fbcc7-99c5-4ddd-8af8-04b6cfe6212a/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/782a0599-ec85-4f63-a6e8-2f080a2cf4cf/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/67787c73-84f9-4e8b-bd73-6a943a7bd2c3/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/c69f6540-c0a9-454b-a567-c1c717a89d1f/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/072824f1-6f70-4c5d-8274-fe1d659d368f/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/caaef630-abe9-455b-bb74-e98cd4bffb05/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/3de06fc2-be66-4e14-b0d0-b87f5f506885/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/55b93f5e-ef0b-4b09-9835-b0750e8c1f0b/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/98c673fa-a9e3-422e-b7d2-a898c410a16d/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/68fc2291-23ce-4042-82ba-d439ac818833/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/bdf77bd1-b51b-4381-9e62-f13f4ba6b6bc/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/cb986726-e56a-48e5-aed0-312c759afc67/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/72fa6dbb-34d8-44c2-8713-18bfc41f0e43/8c3e7104-aa64-42e5-84e0-e6cc833b580c" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/32cecd9d-5638-4a5f-8d74-09fceab348e4/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/1a054df1-92c6-49e4-8438-998a18448335/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/2b2cc9ba-dd55-470b-bfc9-7ca090c57563/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/d9f89116-3750-4b50-ac8d-4b852c94145c/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/37d6cc53-fe3e-4218-bc93-7e31e7013f42/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/0fa4de6b-dd8b-4a2a-8717-4c87d02c07fd/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/5beb5b85-1682-4e05-bb95-70d95a41deec/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/f9ca5fc0-5835-482c-8b2c-00ae0e0f5d20/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/ae820929-9da9-4df3-acf1-6ff3866e5aba/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/f5884f66-9593-442c-9476-1ce6736966dd/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/79643819-548b-4cae-aadb-0020850426af/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/ffe717a6-5798-4b67-a476-8fb68014a2c2/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/0d9ecba3-7f72-4bf6-97bb-74f9c16054a8/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/14043d9f-2a41-4145-9c09-b8f7f1bbda89/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/b287ed6a-623f-44ab-81fe-9752fe228d02/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/90d701b0-12ae-4a0d-b8af-50e597875b39/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/0c9217a6-c86f-493f-97ed-25d1c23191d5/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/042e4969-327d-4173-bf2d-58068743bb39/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/ef4efca2-c9a8-4fed-b9de-33c599342ecf/83586d3b-be3f-41aa-8c53-f412c51e2956" - (reference "D14") (unit 1) (value "LED") (footprint "") - ) - (path "/bdf77bd1-b51b-4381-9e62-f13f4ba6b6bc/39abff33-50ea-4971-a0a3-b359beb69394" - (reference "D?") (unit 1) (value "D") (footprint "") - ) - (path "/cb986726-e56a-48e5-aed0-312c759afc67/39abff33-50ea-4971-a0a3-b359beb69394" - (reference "D?") (unit 1) (value "D") (footprint "") - ) - (path "/55b93f5e-ef0b-4b09-9835-b0750e8c1f0b/39abff33-50ea-4971-a0a3-b359beb69394" - (reference "D?") (unit 1) (value "D") (footprint "") - ) - (path "/72fa6dbb-34d8-44c2-8713-18bfc41f0e43/39abff33-50ea-4971-a0a3-b359beb69394" - (reference "D?") (unit 1) (value "D") (footprint "") - ) - (path "/7b4fbcc7-99c5-4ddd-8af8-04b6cfe6212a/39abff33-50ea-4971-a0a3-b359beb69394" - (reference "D?") (unit 1) (value "D") (footprint "") - ) - (path "/98c673fa-a9e3-422e-b7d2-a898c410a16d/39abff33-50ea-4971-a0a3-b359beb69394" - (reference "D?") (unit 1) (value "D") (footprint "") - ) - (path "/68fc2291-23ce-4042-82ba-d439ac818833/39abff33-50ea-4971-a0a3-b359beb69394" - (reference "D?") (unit 1) (value "D") (footprint "") - ) - (path "/caaef630-abe9-455b-bb74-e98cd4bffb05/39abff33-50ea-4971-a0a3-b359beb69394" - (reference "D?") (unit 1) (value "D") (footprint "") - ) - (path "/072824f1-6f70-4c5d-8274-fe1d659d368f/39abff33-50ea-4971-a0a3-b359beb69394" - (reference "D?") (unit 1) (value "D") (footprint "") - ) - (path "/3de06fc2-be66-4e14-b0d0-b87f5f506885/39abff33-50ea-4971-a0a3-b359beb69394" - (reference "D?") (unit 1) (value "D") (footprint "") - ) - (path "/67787c73-84f9-4e8b-bd73-6a943a7bd2c3/39abff33-50ea-4971-a0a3-b359beb69394" - (reference "D?") (unit 1) (value "D") (footprint "") - ) - (path "/c69f6540-c0a9-454b-a567-c1c717a89d1f/39abff33-50ea-4971-a0a3-b359beb69394" - (reference "D?") (unit 1) (value "D") (footprint "") - ) - (path "/782a0599-ec85-4f63-a6e8-2f080a2cf4cf/39abff33-50ea-4971-a0a3-b359beb69394" - (reference "D?") (unit 1) (value "D") (footprint "") - ) - (path "/ae820929-9da9-4df3-acf1-6ff3866e5aba/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/f5884f66-9593-442c-9476-1ce6736966dd/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/90d701b0-12ae-4a0d-b8af-50e597875b39/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/37d6cc53-fe3e-4218-bc93-7e31e7013f42/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/b287ed6a-623f-44ab-81fe-9752fe228d02/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/1a054df1-92c6-49e4-8438-998a18448335/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/32cecd9d-5638-4a5f-8d74-09fceab348e4/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/ffe717a6-5798-4b67-a476-8fb68014a2c2/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/0d9ecba3-7f72-4bf6-97bb-74f9c16054a8/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/0c9217a6-c86f-493f-97ed-25d1c23191d5/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/2b2cc9ba-dd55-470b-bfc9-7ca090c57563/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/042e4969-327d-4173-bf2d-58068743bb39/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/0fa4de6b-dd8b-4a2a-8717-4c87d02c07fd/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/ef4efca2-c9a8-4fed-b9de-33c599342ecf/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/f9ca5fc0-5835-482c-8b2c-00ae0e0f5d20/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/79643819-548b-4cae-aadb-0020850426af/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/14043d9f-2a41-4145-9c09-b8f7f1bbda89/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/5beb5b85-1682-4e05-bb95-70d95a41deec/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/d9f89116-3750-4b50-ac8d-4b852c94145c/f25f5f25-0c96-4e5b-a607-4a82589ea84c" - (reference "R16") (unit 1) (value "4k7") (footprint "") - ) - (path "/7b4fbcc7-99c5-4ddd-8af8-04b6cfe6212a/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/68fc2291-23ce-4042-82ba-d439ac818833/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/98c673fa-a9e3-422e-b7d2-a898c410a16d/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/72fa6dbb-34d8-44c2-8713-18bfc41f0e43/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/3de06fc2-be66-4e14-b0d0-b87f5f506885/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/cb986726-e56a-48e5-aed0-312c759afc67/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/072824f1-6f70-4c5d-8274-fe1d659d368f/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/caaef630-abe9-455b-bb74-e98cd4bffb05/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/55b93f5e-ef0b-4b09-9835-b0750e8c1f0b/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/bdf77bd1-b51b-4381-9e62-f13f4ba6b6bc/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/782a0599-ec85-4f63-a6e8-2f080a2cf4cf/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/67787c73-84f9-4e8b-bd73-6a943a7bd2c3/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - (path "/c69f6540-c0a9-454b-a567-c1c717a89d1f/f3b812c2-a0fc-4a10-813c-b7868a9843a7" - (reference "S?") (unit 1) (value "BTN") (footprint "") - ) - ) +(kicad_sch + (version 20231120) + (generator "eeschema") + (generator_version "8.0") + (uuid "bd98f40e-28be-4a1f-85df-4b2cead9c550") + (paper "A4") + (title_block + (title "YardForce SA/SC 10Buttons 12LEDs CoverUI") + (date "2023-10-20") + (rev "0.1") + (comment 1 "(c) Apehaenger") + (comment 2 "For https://openmower.de") + (comment 3 "RM-ECOW-V1.0.0 2018.06.05 with STM32F030R8T6") + ) + (lib_symbols) + (wire + (pts + (xy 187.96 86.36) (xy 190.5 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1cf7f7d5-3972-4239-a94b-c144d7756424") + ) + (wire + (pts + (xy 213.36 113.03) (xy 215.9 113.03) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3644216e-c983-42d1-8005-23905367ebdc") + ) + (wire + (pts + (xy 142.24 113.03) (xy 144.78 113.03) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4d782307-14fb-4b54-bb3f-36ee4f3e12a0") + ) + (wire + (pts + (xy 86.36 33.02) (xy 88.9 33.02) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4e90abd8-0293-47b0-a946-28ef56b14a34") + ) + (wire + (pts + (xy 39.37 152.4) (xy 41.91 152.4) + ) + (stroke + (width 0) + (type default) + ) + (uuid "542b040d-a7d1-4bba-a5f6-17e7a15f8aef") + ) + (wire + (pts + (xy 99.06 86.36) (xy 101.6 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5705ddef-2775-420a-bd6e-d48918122720") + ) + (wire + (pts + (xy 73.66 113.03) (xy 76.2 113.03) + ) + (stroke + (width 0) + (type default) + ) + (uuid "573e0b88-294d-4983-ae9d-988dd7861d86") + ) + (wire + (pts + (xy 200.66 49.53) (xy 203.2 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6ccd623a-dc7a-4430-a0c8-414bc011b336") + ) + (wire + (pts + (xy 124.46 59.69) (xy 127 59.69) + ) + (stroke + (width 0) + (type default) + ) + (uuid "80a88de4-ce99-49d9-b91b-4f94eaace4ae") + ) + (wire + (pts + (xy 142.24 86.36) (xy 144.78 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9e0af93a-75e8-4fcc-8e4d-b0992caacb5d") + ) + (wire + (pts + (xy 142.24 102.87) (xy 144.78 102.87) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a3354188-fd9c-480f-ba21-cf17df8a9df3") + ) + (wire + (pts + (xy 142.24 76.2) (xy 144.78 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ac94516f-6897-4ca3-b3a8-6c47e64e754f") + ) + (wire + (pts + (xy 86.36 49.53) (xy 88.9 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b15d90ab-8ef4-4b51-823e-f6382aeca081") + ) + (wire + (pts + (xy 86.36 59.69) (xy 88.9 59.69) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c0794e77-15de-45cf-84d5-c6527d2eb802") + ) + (wire + (pts + (xy 187.96 76.2) (xy 190.5 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cd6cd0df-6b89-4087-98aa-16793b8020d9") + ) + (wire + (pts + (xy 124.46 49.53) (xy 127 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "dc8859c9-2630-4b13-8f85-3331b5993ecd") + ) + (wire + (pts + (xy 162.56 59.69) (xy 165.1 59.69) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e19e2f36-4e31-4be4-b271-0410b0735b76") + ) + (wire + (pts + (xy 124.46 33.02) (xy 127 33.02) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e725a856-05ed-4c8d-8528-a4a309b4b707") + ) + (wire + (pts + (xy 162.56 49.53) (xy 165.1 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e9b7b640-8982-4263-b705-f255eddf56e4") + ) + (wire + (pts + (xy 200.66 59.69) (xy 203.2 59.69) + ) + (stroke + (width 0) + (type default) + ) + (uuid "eaa63689-5f15-4baa-9bc4-6aaa66c23fa8") + ) + (wire + (pts + (xy 200.66 33.02) (xy 203.2 33.02) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ed4d0137-d8a6-49d8-8e99-ff5a02b93946") + ) + (wire + (pts + (xy 162.56 33.02) (xy 165.1 33.02) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f6acb87f-8804-4f5e-a17c-437b1c644021") + ) + (wire + (pts + (xy 99.06 76.2) (xy 101.6 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "fd7985a8-8fd7-4fb4-87dc-96222886b0c0") + ) + (hierarchical_label "BTN_HOME" + (shape input) + (at 73.66 113.03 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "0b480d14-2991-4f86-8837-2a62c42b50b9") + ) + (hierarchical_label "LED_LIFTED" + (shape input) + (at 86.36 33.02 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "179fbc6c-4e58-49d8-8034-1778fe7c61ff") + ) + (hierarchical_label "LED_CHARGE" + (shape input) + (at 200.66 33.02 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "24881716-3fc9-459f-a552-c71b99585c7f") + ) + (hierarchical_label "BTN_6HR" + (shape input) + (at 124.46 59.69 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "255dedc5-3dd8-4913-939d-6883337caca3") + ) + (hierarchical_label "BTN_LOCK" + (shape input) + (at 142.24 113.03 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "2db57417-a107-4100-9f69-a27e11259776") + ) + (hierarchical_label "LED_S2" + (shape input) + (at 187.96 76.2 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "399d7f2c-f964-4410-b9d8-205a092300d4") + ) + (hierarchical_label "BTN_SETUP" + (shape input) + (at 142.24 86.36 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "43143be6-cd81-4685-8945-2e38413f4893") + ) + (hierarchical_label "BTN_4HR" + (shape input) + (at 86.36 59.69 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "48721479-cee6-42cf-b7d3-c2ad238e71c4") + ) + (hierarchical_label "LED_SETUP" + (shape input) + (at 142.24 76.2 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "4b717be2-650c-4e37-807c-e2ec44da8a75") + ) + (hierarchical_label "LED_8HR" + (shape input) + (at 162.56 49.53 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "4bfdc85a-14af-4f8c-83e3-456bb005fbe0") + ) + (hierarchical_label "BTN_10HR" + (shape input) + (at 200.66 59.69 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "5528240d-d6fc-4038-9fdd-13212f732123") + ) + (hierarchical_label "LED_S1" + (shape input) + (at 99.06 76.2 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "5b44339c-eb39-413b-b304-071930b16e41") + ) + (hierarchical_label "LED_LOCK" + (shape input) + (at 142.24 102.87 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "765d948f-24c7-4a9c-ba49-2c8de753309f") + ) + (hierarchical_label "LED_4HR" + (shape input) + (at 86.36 49.53 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "86394dea-53ca-4c89-9687-c0c9cede2375") + ) + (hierarchical_label "BTN_ANY" + (shape input) + (at 44.45 69.85 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "a35b5b40-636c-4ca0-aecd-b604e3bd215e") + ) + (hierarchical_label "BTN_S1" + (shape input) + (at 99.06 86.36 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "a6bfa69d-113b-470b-a47a-69e980d815e5") + ) + (hierarchical_label "BTN_8HR" + (shape input) + (at 162.56 59.69 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "b0b67677-2b7c-4919-9a5c-d8ee6d7730b4") + ) + (hierarchical_label "LED_WIRE" + (shape input) + (at 124.46 33.02 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "b11ba303-e3d4-40a3-a76a-82084921bdd2") + ) + (hierarchical_label "LED_PCB" + (shape input) + (at 39.37 152.4 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "d26756c5-2a43-4a86-bd78-00c2c0434f0b") + ) + (hierarchical_label "LED_6HR" + (shape input) + (at 124.46 49.53 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "de252a29-3588-40af-8e18-ac7a1c551380") + ) + (hierarchical_label "LED_BAT" + (shape input) + (at 162.56 33.02 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "dea375cd-6670-4528-95f9-20c36e5b4159") + ) + (hierarchical_label "BTN_S2" + (shape input) + (at 187.96 86.36 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "e5cd9bd8-9572-47f5-9e41-b4517afb5437") + ) + (hierarchical_label "LED_10HR" + (shape input) + (at 200.66 49.53 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "e72965c3-2848-44ac-92ea-26ab4bbd65b6") + ) + (hierarchical_label "BTN_PLAY" + (shape input) + (at 213.36 113.03 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "ebb0bc8f-d96c-4b7c-b881-93b69934c28c") + ) + (sheet + (at 127 30.48) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "042e4969-327d-4173-bf2d-58068743bb39") + (property "Sheetname" "Wire" + (at 130.81 36.83 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "led.kicad_sch" + (at 127 41.2246 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "LED" input + (at 127 33.02 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "2ccc3276-2e75-4c29-89fc-9bd20acf49ee") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 190.5 83.82) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "072824f1-6f70-4c5d-8274-fe1d659d368f") + (property "Sheetname" "S2" + (at 194.31 90.17 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "btn.kicad_sch" + (at 190.5 90.7546 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "BTN" output + (at 190.5 86.36 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "f11879a1-b2bc-4afb-8426-6e1395d60556") + ) + (pin "ANY" output + (at 203.2 91.44 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "34477ce4-2633-4290-be51-2d7af7f1d720") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 101.6 73.66) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "0c9217a6-c86f-493f-97ed-25d1c23191d5") + (property "Sheetname" "S1" + (at 105.41 80.01 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "led.kicad_sch" + (at 101.6 84.4046 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "LED" input + (at 101.6 76.2 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "74effdae-b01d-4ed4-9cd3-b673a05f6c82") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 88.9 30.48) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "0d9ecba3-7f72-4bf6-97bb-74f9c16054a8") + (property "Sheetname" "Lifted" + (at 92.71 36.83 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "led.kicad_sch" + (at 88.9 41.2246 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "LED" input + (at 88.9 33.02 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "2214867a-84da-4f00-9e23-552c56cf40a3") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 190.5 73.66) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "0fa4de6b-dd8b-4a2a-8717-4c87d02c07fd") + (property "Sheetname" "S2" + (at 194.31 80.01 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "led.kicad_sch" + (at 190.5 84.4046 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "LED" input + (at 190.5 76.2 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "09e269b2-a233-4075-a257-a419e399d7fa") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 215.9 110.49) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "16f75c6c-100e-4cca-aa77-4c90b010701d") + (property "Sheetname" "Play" + (at 219.71 116.84 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "btn.kicad_sch" + (at 215.9 117.4246 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "BTN" output + (at 215.9 113.03 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "28ecb963-23d1-415c-900c-76bb3d13bc05") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "9") + ) + ) + ) + ) + (sheet + (at 203.2 30.48) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "1a054df1-92c6-49e4-8438-998a18448335") + (property "Sheetname" "Charge" + (at 207.01 36.83 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "led.kicad_sch" + (at 203.2 41.2246 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "LED" input + (at 203.2 33.02 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "69d12de7-15f5-4f33-8943-0f462961b33f") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 144.78 83.82) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "1f9c8fa6-0e95-4055-8ee5-a384df3a8d30") + (property "Sheetname" "Setup" + (at 148.59 90.17 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "btn.kicad_sch" + (at 144.78 90.7546 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "BTN" output + (at 144.78 86.36 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "399cdd69-cc9a-423b-941a-553370df5c98") + ) + (pin "ANY" output + (at 157.48 91.44 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "41999f30-166d-480f-b3b9-d62e92361064") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "7") + ) + ) + ) + ) + (sheet + (at 88.9 46.99) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "2b2cc9ba-dd55-470b-bfc9-7ca090c57563") + (property "Sheetname" "4HR" + (at 92.71 53.34 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "led.kicad_sch" + (at 88.9 57.7346 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "LED" input + (at 88.9 49.53 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "688043b8-c338-41fd-943b-523faf667b1e") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 41.91 149.86) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "32cecd9d-5638-4a5f-8d74-09fceab348e4") + (property "Sheetname" "PCB" + (at 45.72 156.21 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "led.kicad_sch" + (at 41.91 160.6046 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "LED" input + (at 41.91 152.4 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "51f96348-b7fa-47ca-b5a7-bbb71f4a573b") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 165.1 57.15) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "3f18ef67-c6d0-4eae-8fdf-c33cff7c7af1") + (property "Sheetname" "8HR" + (at 168.91 63.5 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "btn.kicad_sch" + (at 165.1 64.0846 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "BTN" output + (at 165.1 59.69 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "a79e3906-441f-48e1-9b70-10982b4cb4f9") + ) + (pin "ANY" output + (at 177.8 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "d9f08512-7aae-41db-89ff-fc951a60b75d") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "5") + ) + ) + ) + ) + (sheet + (at 127 46.99) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "5beb5b85-1682-4e05-bb95-70d95a41deec") + (property "Sheetname" "6HR" + (at 130.81 53.34 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "led.kicad_sch" + (at 127 57.7346 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "LED" input + (at 127 49.53 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "83049dae-ac97-41ea-89e3-d7888390cd17") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 101.6 83.82) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "67787c73-84f9-4e8b-bd73-6a943a7bd2c3") + (property "Sheetname" "S1" + (at 105.41 90.17 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "btn.kicad_sch" + (at 101.6 90.7546 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "BTN" output + (at 101.6 86.36 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "5813fa7a-d2c4-4456-94f6-a3cc2a77d9b7") + ) + (pin "ANY" output + (at 114.3 91.44 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "6198f2d6-815f-43f4-bdbd-1af395087dbb") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 88.9 57.15) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "68fc2291-23ce-4042-82ba-d439ac818833") + (property "Sheetname" "4HR" + (at 92.71 63.5 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "btn.kicad_sch" + (at 88.9 64.0846 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "BTN" output + (at 88.9 59.69 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "892416f5-ad7e-49fa-ac7f-11ddb4b7851e") + ) + (pin "ANY" output + (at 101.6 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "0d329119-2446-4cd9-9f23-127250775b52") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 203.2 57.15) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "abef5370-15e4-4795-a952-0798cea794ba") + (property "Sheetname" "10HR" + (at 207.01 63.5 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "btn.kicad_sch" + (at 203.2 64.0846 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "BTN" output + (at 203.2 59.69 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "5948a79d-2655-46c5-997b-a9fd2d60c8da") + ) + (pin "ANY" output + (at 215.9 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "b1d4fce0-369f-4185-afb1-c0341b586728") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "6") + ) + ) + ) + ) + (sheet + (at 165.1 46.99) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "ae820929-9da9-4df3-acf1-6ff3866e5aba") + (property "Sheetname" "8HR" + (at 168.91 53.34 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "led.kicad_sch" + (at 165.1 57.7346 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "LED" input + (at 165.1 49.53 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "63562bf9-5852-4ecc-b3d6-127eae07d3c9") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 144.78 110.49) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "bdf77bd1-b51b-4381-9e62-f13f4ba6b6bc") + (property "Sheetname" "Lock" + (at 148.59 116.84 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "btn.kicad_sch" + (at 144.78 117.4246 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "BTN" output + (at 144.78 113.03 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "fdbc1947-21cc-41d0-b705-16bcc4892ad1") + ) + (pin "ANY" output + (at 157.48 118.11 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "2402be62-5c0c-4cb6-ad1d-d59014200d6d") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 127 57.15) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "c3563dfd-5e14-451f-b229-43a13a922ebc") + (property "Sheetname" "6HR" + (at 130.81 63.5 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "btn.kicad_sch" + (at 127 64.0846 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "BTN" output + (at 127 59.69 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "ffda9f6b-c4aa-4437-a360-f407b6e92b6b") + ) + (pin "ANY" output + (at 139.7 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "c0e47732-5cc2-42d6-a04b-32079f7e4d5c") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "4") + ) + ) + ) + ) + (sheet + (at 76.2 110.49) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "cb986726-e56a-48e5-aed0-312c759afc67") + (property "Sheetname" "Home" + (at 80.01 116.84 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "btn.kicad_sch" + (at 76.2 117.4246 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "BTN" output + (at 76.2 113.03 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "ef5f7622-9f51-422e-804b-fe0f7be936cd") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 144.78 100.33) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "d9f89116-3750-4b50-ac8d-4b852c94145c") + (property "Sheetname" "Lock" + (at 148.59 106.68 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "led.kicad_sch" + (at 144.78 111.0746 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "LED" input + (at 144.78 102.87 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "6e90eed8-5e15-4392-a96f-82f1155e96da") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 144.78 73.66) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "ee7a3882-3a6c-4615-9c99-075b5b7832c4") + (property "Sheetname" "Setup" + (at 148.59 80.01 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "led.kicad_sch" + (at 144.78 84.4046 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "LED" input + (at 144.78 76.2 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "2669d597-f59a-48a0-b5c1-01002bbef2e6") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "8") + ) + ) + ) + ) + (sheet + (at 203.2 46.99) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "ef4efca2-c9a8-4fed-b9de-33c599342ecf") + (property "Sheetname" "10HR" + (at 207.01 53.34 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "led.kicad_sch" + (at 203.2 57.7346 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "LED" input + (at 203.2 49.53 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "5f0ed55d-8f33-4423-a3ba-f21f0f7d384b") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) + (sheet + (at 165.1 30.48) + (size 12.7 10.16) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "f9ca5fc0-5835-482c-8b2c-00ae0e0f5d20") + (property "Sheetname" "Battery" + (at 168.91 36.83 0) + (effects + (font + (size 1.27 1.27) + (bold yes) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "led.kicad_sch" + (at 165.1 41.2246 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (pin "LED" input + (at 165.1 33.02 180) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "e78b6d9e-0d73-4c6a-9b46-8fb02ed4cdbe") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1" + (page "#") + ) + ) + ) + ) ) diff --git a/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/led.kicad_sch b/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/led.kicad_sch index 7e75bf3..c7c33cd 100644 --- a/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/led.kicad_sch +++ b/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/led.kicad_sch @@ -1,245 +1,788 @@ -(kicad_sch (version 20211123) (generator eeschema) - - (uuid 05540419-10f3-4070-ba98-76f4b11b6f67) - - (paper "A4") - - (title_block - (title "YardForce SA/SC 10Buttons 12LEDs CoverUI") - (date "2023-10-20") - (rev "0.1") - (comment 1 "(c) Apehaenger") - (comment 2 "For https://openmower.de") - (comment 3 "RM-ECOW-V1.0.0 2018.06.05 with STM32F030R8T6") - ) - - (lib_symbols - (symbol "Device:LED" (pin_numbers hide) (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) - (property "Reference" "D" (id 0) (at 0 2.54 0) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "LED" (id 1) (at 0 -2.54 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "LED diode" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Light emitting diode" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "LED* LED_SMD:* LED_THT:*" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "LED_0_1" - (polyline - (pts - (xy -1.27 -1.27) - (xy -1.27 1.27) - ) - (stroke (width 0.254) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy -1.27 0) - (xy 1.27 0) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 1.27 -1.27) - (xy 1.27 1.27) - (xy -1.27 0) - (xy 1.27 -1.27) - ) - (stroke (width 0.254) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy -3.048 -0.762) - (xy -4.572 -2.286) - (xy -3.81 -2.286) - (xy -4.572 -2.286) - (xy -4.572 -1.524) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy -1.778 -0.762) - (xy -3.302 -2.286) - (xy -2.54 -2.286) - (xy -3.302 -2.286) - (xy -3.302 -1.524) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - ) - (symbol "LED_1_1" - (pin passive line (at -3.81 0 0) (length 2.54) - (name "K" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 3.81 0 180) (length 2.54) - (name "A" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes) - (property "Reference" "R" (id 0) (at 2.032 0 90) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "R" (id 1) (at 0 0 90) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at -1.778 0 90) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "R res resistor" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Resistor" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "R_*" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "R_0_1" - (rectangle (start -1.016 -2.54) (end 1.016 2.54) - (stroke (width 0.254) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - ) - (symbol "R_1_1" - (pin passive line (at 0 3.81 270) (length 1.27) - (name "~" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 0 -3.81 90) (length 1.27) - (name "~" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) - (property "Reference" "#PWR" (id 0) (at 0 -6.35 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 0 -3.81 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "global power" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "GND_0_1" - (polyline - (pts - (xy 0 0) - (xy 0 -1.27) - (xy 1.27 -1.27) - (xy 0 -2.54) - (xy -1.27 -1.27) - (xy 0 -1.27) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - ) - (symbol "GND_1_1" - (pin power_in line (at 0 0 270) (length 0) hide - (name "GND" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - ) - ) - ) - - - (wire (pts (xy 134.62 100.33) (xy 134.62 101.6)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 40c06de5-9776-446e-955b-353ef6b72736) - ) - (wire (pts (xy 134.62 91.44) (xy 134.62 92.71)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 87f72452-1964-4490-a910-bfa295b31896) - ) - (wire (pts (xy 134.62 81.28) (xy 134.62 83.82)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid d053efad-0406-4add-881f-4cbc9ab4ce16) - ) - - (hierarchical_label "LED" (shape input) (at 134.62 81.28 90) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 5396f0dc-35f5-47ff-a36c-e3a50efb40ce) - ) - - (symbol (lib_id "power:GND") (at 134.62 101.6 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 5a707703-1b06-457d-aac2-0ebe2b980fc9) - (property "Reference" "#PWR?" (id 0) (at 134.62 107.95 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "~" (id 1) (at 134.62 105.41 0)) - (property "Footprint" "" (id 2) (at 134.62 101.6 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 134.62 101.6 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 1c760718-a1e3-4237-ba85-96d778164d92)) - ) - - (symbol (lib_id "Device:LED") (at 134.62 96.52 90) (unit 1) - (in_bom yes) (on_board yes) - (uuid 83586d3b-be3f-41aa-8c53-f412c51e2956) - (property "Reference" "D13" (id 0) (at 130.81 96.52 90)) - (property "Value" "LED" (id 1) (at 138.43 96.52 90)) - (property "Footprint" "" (id 2) (at 134.62 96.52 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 134.62 96.52 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid b75d37dc-b225-443d-9e5b-ef1db29ed758)) - (pin "2" (uuid 7e54e441-530b-44fe-b722-ba60f8b77888)) - ) - - (symbol (lib_id "Device:R") (at 134.62 87.63 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid f25f5f25-0c96-4e5b-a607-4a82589ea84c) - (property "Reference" "R35" (id 0) (at 134.62 87.63 90)) - (property "Value" "1k" (id 1) (at 138.43 87.63 0)) - (property "Footprint" "" (id 2) (at 132.842 87.63 90) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 134.62 87.63 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 8d3ed261-0400-404f-a0be-258c63d85bc2)) - (pin "2" (uuid 4c2a172b-f0da-4ac5-a595-dd4a1a2f62ff)) - ) +(kicad_sch + (version 20231120) + (generator "eeschema") + (generator_version "8.0") + (uuid "05540419-10f3-4070-ba98-76f4b11b6f67") + (paper "A4") + (title_block + (title "YardForce SA/SC 10Buttons 12LEDs CoverUI") + (date "2023-10-20") + (rev "0.1") + (comment 1 "(c) Apehaenger") + (comment 2 "For https://openmower.de") + (comment 3 "RM-ECOW-V1.0.0 2018.06.05 with STM32F030R8T6") + ) + (lib_symbols + (symbol "Device:LED" + (pin_numbers hide) + (pin_names + (offset 1.016) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "D" + (at 0 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "LED" + (at 0 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Light emitting diode" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "LED diode" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "LED* LED_SMD:* LED_THT:*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "LED_0_1" + (polyline + (pts + (xy -1.27 -1.27) (xy -1.27 1.27) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 0) (xy 1.27 0) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 -1.27) (xy 1.27 1.27) (xy -1.27 0) (xy 1.27 -1.27) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -3.048 -0.762) (xy -4.572 -2.286) (xy -3.81 -2.286) (xy -4.572 -2.286) (xy -4.572 -1.524) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.778 -0.762) (xy -3.302 -2.286) (xy -2.54 -2.286) (xy -3.302 -2.286) (xy -3.302 -1.524) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "LED_1_1" + (pin passive line + (at -3.81 0 0) + (length 2.54) + (name "K" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 3.81 0 180) + (length 2.54) + (name "A" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Device:R" + (pin_numbers hide) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "R" + (at 2.032 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "R" + (at 0 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at -1.778 0 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "R res resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "R_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "R_0_1" + (rectangle + (start -1.016 -2.54) + (end 1.016 2.54) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "R_1_1" + (pin passive line + (at 0 3.81 270) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "power:GND" + (power) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -6.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "GND_1_1" + (pin power_in line + (at 0 0 270) + (length 0) hide + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + ) + (wire + (pts + (xy 134.62 100.33) (xy 134.62 101.6) + ) + (stroke + (width 0) + (type default) + ) + (uuid "40c06de5-9776-446e-955b-353ef6b72736") + ) + (wire + (pts + (xy 134.62 91.44) (xy 134.62 92.71) + ) + (stroke + (width 0) + (type default) + ) + (uuid "87f72452-1964-4490-a910-bfa295b31896") + ) + (wire + (pts + (xy 134.62 81.28) (xy 134.62 83.82) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d053efad-0406-4add-881f-4cbc9ab4ce16") + ) + (hierarchical_label "LED" + (shape input) + (at 134.62 81.28 90) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "5396f0dc-35f5-47ff-a36c-e3a50efb40ce") + ) + (symbol + (lib_id "power:GND") + (at 134.62 101.6 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "5a707703-1b06-457d-aac2-0ebe2b980fc9") + (property "Reference" "#PWR?" + (at 134.62 107.95 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 134.62 105.41 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 134.62 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 134.62 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 134.62 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "1c760718-a1e3-4237-ba85-96d778164d92") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/32cecd9d-5638-4a5f-8d74-09fceab348e4" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/0d9ecba3-7f72-4bf6-97bb-74f9c16054a8" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/2b2cc9ba-dd55-470b-bfc9-7ca090c57563" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/0c9217a6-c86f-493f-97ed-25d1c23191d5" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/042e4969-327d-4173-bf2d-58068743bb39" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/5beb5b85-1682-4e05-bb95-70d95a41deec" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/ee7a3882-3a6c-4615-9c99-075b5b7832c4" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/d9f89116-3750-4b50-ac8d-4b852c94145c" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/f9ca5fc0-5835-482c-8b2c-00ae0e0f5d20" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/ae820929-9da9-4df3-acf1-6ff3866e5aba" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/0fa4de6b-dd8b-4a2a-8717-4c87d02c07fd" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/1a054df1-92c6-49e4-8438-998a18448335" + (reference "#PWR?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/ef4efca2-c9a8-4fed-b9de-33c599342ecf" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:LED") + (at 134.62 96.52 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "83586d3b-be3f-41aa-8c53-f412c51e2956") + (property "Reference" "D13" + (at 130.81 96.52 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "LED" + (at 138.43 96.52 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 134.62 96.52 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 134.62 96.52 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 134.62 96.52 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "b75d37dc-b225-443d-9e5b-ef1db29ed758") + ) + (pin "2" + (uuid "7e54e441-530b-44fe-b722-ba60f8b77888") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/32cecd9d-5638-4a5f-8d74-09fceab348e4" + (reference "D13") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/0d9ecba3-7f72-4bf6-97bb-74f9c16054a8" + (reference "D?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/2b2cc9ba-dd55-470b-bfc9-7ca090c57563" + (reference "D?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/0c9217a6-c86f-493f-97ed-25d1c23191d5" + (reference "D?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/042e4969-327d-4173-bf2d-58068743bb39" + (reference "D?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/5beb5b85-1682-4e05-bb95-70d95a41deec" + (reference "D?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/ee7a3882-3a6c-4615-9c99-075b5b7832c4" + (reference "D?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/d9f89116-3750-4b50-ac8d-4b852c94145c" + (reference "D9") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/f9ca5fc0-5835-482c-8b2c-00ae0e0f5d20" + (reference "D?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/ae820929-9da9-4df3-acf1-6ff3866e5aba" + (reference "D?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/0fa4de6b-dd8b-4a2a-8717-4c87d02c07fd" + (reference "D?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/1a054df1-92c6-49e4-8438-998a18448335" + (reference "D?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/ef4efca2-c9a8-4fed-b9de-33c599342ecf" + (reference "D?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 134.62 87.63 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "f25f5f25-0c96-4e5b-a607-4a82589ea84c") + (property "Reference" "R35" + (at 134.62 87.63 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "1k" + (at 138.43 87.63 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 132.842 87.63 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 134.62 87.63 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 134.62 87.63 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "8d3ed261-0400-404f-a0be-258c63d85bc2") + ) + (pin "2" + (uuid "4c2a172b-f0da-4ac5-a595-dd4a1a2f62ff") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/32cecd9d-5638-4a5f-8d74-09fceab348e4" + (reference "R35") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/0d9ecba3-7f72-4bf6-97bb-74f9c16054a8" + (reference "R?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/2b2cc9ba-dd55-470b-bfc9-7ca090c57563" + (reference "R?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/0c9217a6-c86f-493f-97ed-25d1c23191d5" + (reference "R?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/042e4969-327d-4173-bf2d-58068743bb39" + (reference "R?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/5beb5b85-1682-4e05-bb95-70d95a41deec" + (reference "R?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/ee7a3882-3a6c-4615-9c99-075b5b7832c4" + (reference "R?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/d9f89116-3750-4b50-ac8d-4b852c94145c" + (reference "R29") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/f9ca5fc0-5835-482c-8b2c-00ae0e0f5d20" + (reference "R?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/ae820929-9da9-4df3-acf1-6ff3866e5aba" + (reference "R?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/0fa4de6b-dd8b-4a2a-8717-4c87d02c07fd" + (reference "R?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/1a054df1-92c6-49e4-8438-998a18448335" + (reference "R?") + (unit 1) + ) + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/b9b194e8-2826-4619-83c8-f97e2646d4b1/ef4efca2-c9a8-4fed-b9de-33c599342ecf" + (reference "R?") + (unit 1) + ) + ) + ) + ) ) diff --git a/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/mcu_stm32f030.kicad_sch b/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/mcu_stm32f030.kicad_sch index 8d93e97..58fa7f7 100644 --- a/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/mcu_stm32f030.kicad_sch +++ b/Hardware/YardForce/Subsheets/SA,SC-Type 10Button-12LED Board/mcu_stm32f030.kicad_sch @@ -1,1684 +1,5659 @@ -(kicad_sch (version 20211123) (generator eeschema) - - (uuid a88c21a2-034f-44c4-89f9-288e0bea225d) - - (paper "A4") - - (title_block - (title "YardForce SA/SC 10Buttons 12LEDs CoverUI") - (date "2023-10-20") - (rev "0.1") - (comment 1 "(c) Apehaenger") - (comment 2 "For https://openmower.de") - (comment 3 "RM-ECOW-V1.0.0 2018.06.05 with STM32F030R8T6") - ) - - (lib_symbols - (symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes) - (property "Reference" "R" (id 0) (at 2.032 0 90) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "R" (id 1) (at 0 0 90) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at -1.778 0 90) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "R res resistor" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Resistor" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "R_*" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "R_0_1" - (rectangle (start -1.016 -2.54) (end 1.016 2.54) - (stroke (width 0.254) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - ) - (symbol "R_1_1" - (pin passive line (at 0 3.81 270) (length 1.27) - (name "~" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 0 -3.81 90) (length 1.27) - (name "~" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "MCU_ST_STM32F0:STM32F030R8Tx" (in_bom yes) (on_board yes) - (property "Reference" "U" (id 0) (at -12.7 44.45 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "STM32F030R8Tx" (id 1) (at 7.62 44.45 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "Package_QFP:LQFP-64_10x10mm_P0.5mm" (id 2) (at -12.7 -43.18 0) - (effects (font (size 1.27 1.27)) (justify right) hide) - ) - (property "Datasheet" "http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00088500.pdf" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "ARM Cortex-M0 STM32F0 STM32F0x0 Value Line" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "ARM Cortex-M0 MCU, 64KB flash, 8KB RAM, 48MHz, 2.4-3.6V, 55 GPIO, LQFP-64" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "LQFP*10x10mm*P0.5mm*" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "STM32F030R8Tx_0_1" - (rectangle (start -12.7 -43.18) (end 12.7 43.18) - (stroke (width 0.254) (type default) (color 0 0 0 0)) - (fill (type background)) - ) - ) - (symbol "STM32F030R8Tx_1_1" - (pin power_in line (at -2.54 45.72 270) (length 2.54) - (name "VDD" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -7.62 0) (length 2.54) - (name "PC2" (effects (font (size 1.27 1.27)))) - (number "10" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -10.16 0) (length 2.54) - (name "PC3" (effects (font (size 1.27 1.27)))) - (number "11" (effects (font (size 1.27 1.27)))) - ) - (pin power_in line (at 2.54 -45.72 90) (length 2.54) - (name "VSSA" (effects (font (size 1.27 1.27)))) - (number "12" (effects (font (size 1.27 1.27)))) - ) - (pin power_in line (at 5.08 45.72 270) (length 2.54) - (name "VDDA" (effects (font (size 1.27 1.27)))) - (number "13" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 40.64 180) (length 2.54) - (name "PA0" (effects (font (size 1.27 1.27)))) - (number "14" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 38.1 180) (length 2.54) - (name "PA1" (effects (font (size 1.27 1.27)))) - (number "15" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 35.56 180) (length 2.54) - (name "PA2" (effects (font (size 1.27 1.27)))) - (number "16" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 33.02 180) (length 2.54) - (name "PA3" (effects (font (size 1.27 1.27)))) - (number "17" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 15.24 0) (length 2.54) - (name "PF4" (effects (font (size 1.27 1.27)))) - (number "18" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 12.7 0) (length 2.54) - (name "PF5" (effects (font (size 1.27 1.27)))) - (number "19" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -35.56 0) (length 2.54) - (name "PC13" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 30.48 180) (length 2.54) - (name "PA4" (effects (font (size 1.27 1.27)))) - (number "20" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 27.94 180) (length 2.54) - (name "PA5" (effects (font (size 1.27 1.27)))) - (number "21" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 25.4 180) (length 2.54) - (name "PA6" (effects (font (size 1.27 1.27)))) - (number "22" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 22.86 180) (length 2.54) - (name "PA7" (effects (font (size 1.27 1.27)))) - (number "23" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -12.7 0) (length 2.54) - (name "PC4" (effects (font (size 1.27 1.27)))) - (number "24" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -15.24 0) (length 2.54) - (name "PC5" (effects (font (size 1.27 1.27)))) - (number "25" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -2.54 180) (length 2.54) - (name "PB0" (effects (font (size 1.27 1.27)))) - (number "26" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -5.08 180) (length 2.54) - (name "PB1" (effects (font (size 1.27 1.27)))) - (number "27" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -7.62 180) (length 2.54) - (name "PB2" (effects (font (size 1.27 1.27)))) - (number "28" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -27.94 180) (length 2.54) - (name "PB10" (effects (font (size 1.27 1.27)))) - (number "29" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -38.1 0) (length 2.54) - (name "PC14" (effects (font (size 1.27 1.27)))) - (number "3" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -30.48 180) (length 2.54) - (name "PB11" (effects (font (size 1.27 1.27)))) - (number "30" (effects (font (size 1.27 1.27)))) - ) - (pin power_in line (at -2.54 -45.72 90) (length 2.54) - (name "VSS" (effects (font (size 1.27 1.27)))) - (number "31" (effects (font (size 1.27 1.27)))) - ) - (pin power_in line (at 0 45.72 270) (length 2.54) - (name "VDD" (effects (font (size 1.27 1.27)))) - (number "32" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -33.02 180) (length 2.54) - (name "PB12" (effects (font (size 1.27 1.27)))) - (number "33" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -35.56 180) (length 2.54) - (name "PB13" (effects (font (size 1.27 1.27)))) - (number "34" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -38.1 180) (length 2.54) - (name "PB14" (effects (font (size 1.27 1.27)))) - (number "35" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -40.64 180) (length 2.54) - (name "PB15" (effects (font (size 1.27 1.27)))) - (number "36" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -17.78 0) (length 2.54) - (name "PC6" (effects (font (size 1.27 1.27)))) - (number "37" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -20.32 0) (length 2.54) - (name "PC7" (effects (font (size 1.27 1.27)))) - (number "38" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -22.86 0) (length 2.54) - (name "PC8" (effects (font (size 1.27 1.27)))) - (number "39" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -40.64 0) (length 2.54) - (name "PC15" (effects (font (size 1.27 1.27)))) - (number "4" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -25.4 0) (length 2.54) - (name "PC9" (effects (font (size 1.27 1.27)))) - (number "40" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 20.32 180) (length 2.54) - (name "PA8" (effects (font (size 1.27 1.27)))) - (number "41" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 17.78 180) (length 2.54) - (name "PA9" (effects (font (size 1.27 1.27)))) - (number "42" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 15.24 180) (length 2.54) - (name "PA10" (effects (font (size 1.27 1.27)))) - (number "43" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 12.7 180) (length 2.54) - (name "PA11" (effects (font (size 1.27 1.27)))) - (number "44" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 10.16 180) (length 2.54) - (name "PA12" (effects (font (size 1.27 1.27)))) - (number "45" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 7.62 180) (length 2.54) - (name "PA13" (effects (font (size 1.27 1.27)))) - (number "46" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 10.16 0) (length 2.54) - (name "PF6" (effects (font (size 1.27 1.27)))) - (number "47" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 7.62 0) (length 2.54) - (name "PF7" (effects (font (size 1.27 1.27)))) - (number "48" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 5.08 180) (length 2.54) - (name "PA14" (effects (font (size 1.27 1.27)))) - (number "49" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -15.24 20.32 0) (length 2.54) - (name "PF0" (effects (font (size 1.27 1.27)))) - (number "5" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 2.54 180) (length 2.54) - (name "PA15" (effects (font (size 1.27 1.27)))) - (number "50" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -27.94 0) (length 2.54) - (name "PC10" (effects (font (size 1.27 1.27)))) - (number "51" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -30.48 0) (length 2.54) - (name "PC11" (effects (font (size 1.27 1.27)))) - (number "52" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -33.02 0) (length 2.54) - (name "PC12" (effects (font (size 1.27 1.27)))) - (number "53" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 2.54 0) (length 2.54) - (name "PD2" (effects (font (size 1.27 1.27)))) - (number "54" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -10.16 180) (length 2.54) - (name "PB3" (effects (font (size 1.27 1.27)))) - (number "55" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -12.7 180) (length 2.54) - (name "PB4" (effects (font (size 1.27 1.27)))) - (number "56" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -15.24 180) (length 2.54) - (name "PB5" (effects (font (size 1.27 1.27)))) - (number "57" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -17.78 180) (length 2.54) - (name "PB6" (effects (font (size 1.27 1.27)))) - (number "58" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -20.32 180) (length 2.54) - (name "PB7" (effects (font (size 1.27 1.27)))) - (number "59" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -15.24 17.78 0) (length 2.54) - (name "PF1" (effects (font (size 1.27 1.27)))) - (number "6" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -15.24 35.56 0) (length 2.54) - (name "BOOT0" (effects (font (size 1.27 1.27)))) - (number "60" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -22.86 180) (length 2.54) - (name "PB8" (effects (font (size 1.27 1.27)))) - (number "61" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -25.4 180) (length 2.54) - (name "PB9" (effects (font (size 1.27 1.27)))) - (number "62" (effects (font (size 1.27 1.27)))) - ) - (pin power_in line (at 0 -45.72 90) (length 2.54) - (name "VSS" (effects (font (size 1.27 1.27)))) - (number "63" (effects (font (size 1.27 1.27)))) - ) - (pin power_in line (at 2.54 45.72 270) (length 2.54) - (name "VDD" (effects (font (size 1.27 1.27)))) - (number "64" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -15.24 40.64 0) (length 2.54) - (name "NRST" (effects (font (size 1.27 1.27)))) - (number "7" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -2.54 0) (length 2.54) - (name "PC0" (effects (font (size 1.27 1.27)))) - (number "8" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -5.08 0) (length 2.54) - (name "PC1" (effects (font (size 1.27 1.27)))) - (number "9" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "RF_Module:ESP-WROOM-02" (in_bom yes) (on_board yes) - (property "Reference" "U" (id 0) (at -7.62 13.97 0) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "ESP-WROOM-02" (id 1) (at 10.16 13.97 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "RF_Module:ESP-WROOM-02" (id 2) (at 15.24 -13.97 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "https://www.espressif.com/sites/default/files/documentation/0c-esp-wroom-02_datasheet_en.pdf" (id 3) (at 1.27 38.1 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "RF Radio ESP Espressif" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Wi-Fi Module, ESP8266EX SoC, 32-bit, 802.11b/g/n, WPA/WPA2, 2.7-3.6V, SMD" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "ESP?WROOM?02*" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "ESP-WROOM-02_0_1" - (rectangle (start 10.16 12.7) (end -10.16 -12.7) - (stroke (width 0.254) (type default) (color 0 0 0 0)) - (fill (type background)) - ) - ) - (symbol "ESP-WROOM-02_1_1" - (pin power_in line (at 0 15.24 270) (length 2.54) - (name "VDD" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 12.7 5.08 180) (length 2.54) - (name "IO4" (effects (font (size 1.27 1.27)))) - (number "10" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -12.7 -2.54 0) (length 2.54) - (name "RXD" (effects (font (size 1.27 1.27)))) - (number "11" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -12.7 -5.08 0) (length 2.54) - (name "TXD" (effects (font (size 1.27 1.27)))) - (number "12" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 0 -15.24 90) (length 2.54) hide - (name "GND" (effects (font (size 1.27 1.27)))) - (number "13" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 12.7 2.54 180) (length 2.54) - (name "IO5" (effects (font (size 1.27 1.27)))) - (number "14" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -12.7 7.62 0) (length 2.54) - (name "RST" (effects (font (size 1.27 1.27)))) - (number "15" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -12.7 2.54 0) (length 2.54) - (name "TOUT" (effects (font (size 1.27 1.27)))) - (number "16" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 12.7 -10.16 180) (length 2.54) - (name "IO16" (effects (font (size 1.27 1.27)))) - (number "17" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 0 -15.24 90) (length 2.54) hide - (name "GND" (effects (font (size 1.27 1.27)))) - (number "18" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 0 -15.24 90) (length 2.54) hide - (name "GND" (effects (font (size 1.27 1.27)))) - (number "19" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -12.7 10.16 0) (length 2.54) - (name "EN" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 12.7 -5.08 180) (length 2.54) - (name "IO14" (effects (font (size 1.27 1.27)))) - (number "3" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 12.7 0 180) (length 2.54) - (name "IO12" (effects (font (size 1.27 1.27)))) - (number "4" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 12.7 -2.54 180) (length 2.54) - (name "IO13" (effects (font (size 1.27 1.27)))) - (number "5" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 12.7 -7.62 180) (length 2.54) - (name "IO15" (effects (font (size 1.27 1.27)))) - (number "6" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 12.7 7.62 180) (length 2.54) - (name "IO2" (effects (font (size 1.27 1.27)))) - (number "7" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 12.7 10.16 180) (length 2.54) - (name "IO0" (effects (font (size 1.27 1.27)))) - (number "8" (effects (font (size 1.27 1.27)))) - ) - (pin power_in line (at 0 -15.24 90) (length 2.54) - (name "GND" (effects (font (size 1.27 1.27)))) - (number "9" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "power:+3.3V" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) - (property "Reference" "#PWR" (id 0) (at 0 -3.81 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+3.3V" (id 1) (at 0 3.556 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "global power" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Power symbol creates a global label with name \"+3.3V\"" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "+3.3V_0_1" - (polyline - (pts - (xy -0.762 1.27) - (xy 0 2.54) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 0 0) - (xy 0 2.54) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 0 2.54) - (xy 0.762 1.27) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - ) - (symbol "+3.3V_1_1" - (pin power_in line (at 0 0 90) (length 0) hide - (name "+3.3V" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) - (property "Reference" "#PWR" (id 0) (at 0 -6.35 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 0 -3.81 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "global power" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "GND_0_1" - (polyline - (pts - (xy 0 0) - (xy 0 -1.27) - (xy 1.27 -1.27) - (xy 0 -2.54) - (xy -1.27 -1.27) - (xy 0 -1.27) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - ) - (symbol "GND_1_1" - (pin power_in line (at 0 0 270) (length 0) hide - (name "GND" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - ) - ) - ) - - (junction (at 127 135.89) (diameter 0) (color 0 0 0 0) - (uuid 6a234b67-e6c5-4d12-a7c7-d85e5c402b45) - ) - (junction (at 193.04 104.14) (diameter 0) (color 0 0 0 0) - (uuid 7be0fac8-5ccf-4a94-993b-ca075d0dc745) - ) - (junction (at 127 41.91) (diameter 0) (color 0 0 0 0) - (uuid 81e6d095-c05b-4f7c-be21-0b54b4e1e9d9) - ) - (junction (at 193.04 72.39) (diameter 0) (color 0 0 0 0) - (uuid edb2dcef-1414-4ed2-bfcb-5f50afdf514d) - ) - - (bus_entry (at 167.64 119.38) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0092655b-b1bc-489b-aff2-e80c9f3dde8a) - ) - (bus_entry (at 167.64 74.93) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 00960bf4-0e61-4ca0-bdfc-970088b75b31) - ) - (bus_entry (at 167.64 99.06) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0a4b6cbe-8fc9-4e06-931b-b9434043dae1) - ) - (bus_entry (at 91.44 109.22) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0af3b915-b2ef-4a3d-bf0b-da4f904a89c6) - ) - (bus_entry (at 167.64 63.5) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0eac4034-266b-4720-8b42-f0a16ce2ec12) - ) - (bus_entry (at 91.44 73.66) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 11fb1993-7d1f-4653-b7c8-3cd5db320472) - ) - (bus_entry (at 91.44 114.3) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 1d5091c5-fa95-4046-9e08-25d5b0308eaf) - ) - (bus_entry (at 91.44 76.2) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 2a0e1e22-6ba7-4d75-b1cd-58d81df486df) - ) - (bus_entry (at 167.64 132.08) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 2a39ce6f-fbfd-435a-b3d1-c3ec790722e2) - ) - (bus_entry (at 167.64 53.34) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 3580fc00-4940-4650-8d61-6d1c0282b850) - ) - (bus_entry (at 167.64 121.92) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 38237243-f9be-4181-b06f-49c4ebb742e6) - ) - (bus_entry (at 91.44 119.38) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 40a37d96-36fb-4747-93b4-a019e227270f) - ) - (bus_entry (at 91.44 111.76) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 436a3cc7-fa08-487d-8aec-73cb3ad03695) - ) - (bus_entry (at 167.64 111.76) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 4a7d95ec-005b-4f66-8a42-3155225f292b) - ) - (bus_entry (at 167.64 68.58) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 5657588b-e4c0-494c-9ef0-ad0004514361) - ) - (bus_entry (at 167.64 87.63) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 56671055-a49b-42b8-b53c-0553ee9a6f80) - ) - (bus_entry (at 167.64 60.96) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 58a0960b-976c-453b-be44-729967637513) - ) - (bus_entry (at 167.64 114.3) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 6a36f82f-f0e1-4dcc-895a-db5cda8ce8df) - ) - (bus_entry (at 167.64 124.46) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 7bf0226d-917e-43a1-91ed-0c838cd21dcf) - ) - (bus_entry (at 167.64 50.8) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 7e3d7dc7-f77a-49ed-8a72-7151f0fc17a8) - ) - (bus_entry (at 167.64 66.04) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 8cd4c56b-bb38-428d-a0b7-8f4e4e56a224) - ) - (bus_entry (at 167.64 72.39) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 91214650-b763-4302-a3aa-89a53fb327c2) - ) - (bus_entry (at 167.64 71.12) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 94c0d406-8a9e-41f4-a78a-e4125a6c6cc0) - ) - (bus_entry (at 91.44 101.6) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 987ae860-3121-4c6f-9652-8a73e1e09760) - ) - (bus_entry (at 167.64 109.22) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 9b22e72d-4e78-4009-aff8-6376105353d2) - ) - (bus_entry (at 167.64 73.66) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 9f96af08-ca6e-4bdf-9d10-9c25c3ae4a46) - ) - (bus_entry (at 91.44 71.12) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a0bc2d08-530d-4714-a7b9-745fa40595f8) - ) - (bus_entry (at 91.44 104.14) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a2030389-6ca6-4339-9982-05940acbb99e) - ) - (bus_entry (at 165.1 78.74) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ad9ffe52-e3b1-42be-b0e1-9963891404ac) - ) - (bus_entry (at 165.1 86.36) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ae066991-5349-41c1-8ca8-4634bfac92e5) - ) - (bus_entry (at 167.64 85.09) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ae406ef1-4689-4f29-ae7d-f6b6733f3693) - ) - (bus_entry (at 167.64 127) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b4f85f7f-85be-415f-b8c7-df2b23fa16bc) - ) - (bus_entry (at 91.44 106.68) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b549dbe8-9816-48aa-b77f-cfa33e5b359b) - ) - (bus_entry (at 167.64 93.98) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid bb9aa5d4-214d-4aea-bdd6-fe3a51a42ee6) - ) - (bus_entry (at 91.44 116.84) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c53d031a-186c-4a1a-af79-9a8fe95d4836) - ) - (bus_entry (at 167.64 96.52) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c606eda9-9d58-42e8-a7e0-fb5d8c0bc92b) - ) - (bus_entry (at 91.44 99.06) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid d661adc5-689e-4726-b36d-d2c476c26fef) - ) - (bus_entry (at 167.64 78.74) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid da061113-978e-4537-82a6-d9319510ab9c) - ) - (bus_entry (at 167.64 76.2) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid dc9169ce-21a1-45f2-84ce-f68348b5376a) - ) - (bus_entry (at 167.64 129.54) (size -2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid e0ba23c3-0188-418b-acae-828d754d4500) - ) - (bus_entry (at 167.64 106.68) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid f6a08e04-efdb-4fdf-a2ad-b49302e2d938) - ) - (bus_entry (at 91.44 78.74) (size 2.54 2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid fdbecb4f-d5f9-40f6-99c3-48d1ae25d276) - ) - (bus_entry (at 167.64 80.01) (size 2.54 -2.54) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid fe5d2220-4f58-4dd5-a889-a4db2f14b386) - ) - - (wire (pts (xy 142.24 81.28) (xy 144.78 81.28)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0284f0c8-2f56-44b8-a070-5188117c2367) - ) - (bus (pts (xy 167.64 93.98) (xy 167.64 96.52)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 02d6df04-9f13-4e54-b55c-48920085292b) - ) - - (wire (pts (xy 93.98 111.76) (xy 111.76 111.76)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 07d5471e-406b-4c2a-a960-fc865dd79feb) - ) - (wire (pts (xy 93.98 78.74) (xy 111.76 78.74)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0850b749-3cf5-430c-b8c4-33e89aebedd3) - ) - (wire (pts (xy 142.24 121.92) (xy 165.1 121.92)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 09de821f-0c94-490c-8e8f-ac5313e96568) - ) - (wire (pts (xy 93.98 109.22) (xy 111.76 109.22)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0c0a3d4d-50e1-4710-8b01-200fd3cdc80e) - ) - (bus (pts (xy 167.64 74.93) (xy 167.64 76.2)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0d27d573-03fa-45c7-a5ac-6ddb1f4f10be) - ) - (bus (pts (xy 167.64 121.92) (xy 167.64 124.46)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 0d39b264-29ed-42c9-910d-4e58026771b5) - ) - (bus (pts (xy 167.64 50.8) (xy 167.64 53.34)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 14c305b2-920c-4c76-be97-16023669b18c) - ) - - (wire (pts (xy 129.54 41.91) (xy 127 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 1a9cb057-eac8-4215-9d1f-da66f7f1c117) - ) - (bus (pts (xy 167.64 124.46) (xy 167.64 127)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 1ab8205b-f285-4351-b3eb-dd00e7ccf336) - ) - (bus (pts (xy 91.44 119.38) (xy 91.44 149.86)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 1ba57632-babb-4ad6-9c28-37e40188efba) - ) - - (wire (pts (xy 142.24 60.96) (xy 165.1 60.96)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 1eb7fd9b-90e2-4e1d-8e0c-581c0b1ccc15) - ) - (bus (pts (xy 91.44 116.84) (xy 91.44 119.38)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 1fc20a2c-ab45-49fe-8962-f9f9019f17a9) - ) - - (wire (pts (xy 129.54 134.62) (xy 129.54 135.89)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 219cf1ac-0965-4c20-a154-b80626031dfc) - ) - (wire (pts (xy 142.24 50.8) (xy 165.1 50.8)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 2402b849-1816-4809-8901-d83a60555144) - ) - (wire (pts (xy 142.24 78.74) (xy 165.1 78.74)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 24e89528-9aa6-4180-8d4b-cb9c77dade79) - ) - (bus (pts (xy 167.64 80.01) (xy 167.64 81.28)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 2514defa-2b0d-45da-8331-47b85ec1f90e) - ) - - (wire (pts (xy 170.18 77.47) (xy 205.74 77.47)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 25d391a0-f60b-462e-a53c-7c8c44401b83) - ) - (wire (pts (xy 142.24 93.98) (xy 165.1 93.98)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 28af6b1b-d2de-4f2a-927d-d934a16d3a8a) - ) - (wire (pts (xy 93.98 104.14) (xy 111.76 104.14)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 29495ed0-acbc-4e25-93a7-b7489ea96c4c) - ) - (bus (pts (xy 167.64 149.86) (xy 91.44 149.86)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 2aa75157-a9d2-458c-bc55-61bc66bea7fb) - ) - (bus (pts (xy 167.64 76.2) (xy 167.64 78.74)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 2e3c996c-32f3-4fe6-a507-9b21b7be1523) - ) - (bus (pts (xy 167.64 88.9) (xy 167.64 93.98)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 2fc7bf24-eb71-4547-9e0d-b23f35a0675a) - ) - - (wire (pts (xy 96.52 55.88) (xy 96.52 53.34)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 2feaa58f-a394-4ba3-b52d-5e23c9fdc9ca) - ) - (bus (pts (xy 71.12 71.12) (xy 91.44 71.12)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 31236567-c977-4788-b539-cd18dfec8346) - ) - (bus (pts (xy 167.64 66.04) (xy 167.64 68.58)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 400cd839-b3bd-4749-840f-fa0ca3a060e8) - ) - (bus (pts (xy 91.44 104.14) (xy 91.44 106.68)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 46e42c6c-e162-4bd5-9f9a-6a4fc249ee25) - ) - - (wire (pts (xy 124.46 41.91) (xy 127 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 4810b46a-c451-495e-8990-ac924faf9c3e) - ) - (wire (pts (xy 142.24 66.04) (xy 165.1 66.04)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 4c436ffb-8656-48b7-91bd-a743aa61f84e) - ) - (wire (pts (xy 241.3 69.85) (xy 241.3 111.76)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 4cf8d0a0-7fb8-41a0-806b-b8d78b8b123a) - ) - (wire (pts (xy 170.18 109.22) (xy 238.76 109.22)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 5185b2d7-0bf8-475f-b2bd-319275504475) - ) - (bus (pts (xy 167.64 109.22) (xy 167.64 111.76)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 55af7578-99ee-4045-bdf0-31f62e8405c8) - ) - - (wire (pts (xy 93.98 121.92) (xy 111.76 121.92)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 57949ba0-7745-40fc-81f6-86b17891b29e) - ) - (wire (pts (xy 170.18 106.68) (xy 236.22 106.68)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 58676f31-9433-449a-91bf-9f8c43d5a874) - ) - (bus (pts (xy 91.44 114.3) (xy 91.44 116.84)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 5ab58b51-33c3-4d14-bf80-da94da459ec8) - ) - - (wire (pts (xy 142.24 119.38) (xy 165.1 119.38)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 5e915360-611b-41f2-b01d-852025ac5cc2) - ) - (wire (pts (xy 142.24 76.2) (xy 165.1 76.2)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 63b5fec3-cdd8-4949-b0d2-623c94d68fb6) - ) - (wire (pts (xy 170.18 85.09) (xy 205.74 85.09)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 650c1d06-6aa1-456f-89ea-9a1a0bdd2a86) - ) - (wire (pts (xy 93.98 101.6) (xy 111.76 101.6)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 685bfcb1-31d6-4945-b395-7834c664fe75) - ) - (wire (pts (xy 233.68 90.17) (xy 233.68 104.14)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 6b589cb9-dbdd-472b-80ff-98779dd2146a) - ) - (wire (pts (xy 231.14 87.63) (xy 236.22 87.63)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 6bb6b523-1237-4106-8854-370d545437a2) - ) - (wire (pts (xy 127 135.89) (xy 127 137.16)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 6bfad476-a11c-4422-a7fa-c19576038c9d) - ) - (bus (pts (xy 167.64 129.54) (xy 167.64 132.08)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 6fae5215-59ce-4e67-a259-7711c7c1abc4) - ) - (bus (pts (xy 167.64 60.96) (xy 167.64 63.5)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 6fedfe13-2f01-45a5-ae16-eb2f0809c304) - ) - (bus (pts (xy 167.64 114.3) (xy 167.64 119.38)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 7071cbb8-29dc-4af4-a97d-d76fe37aa60a) - ) - - (wire (pts (xy 142.24 63.5) (xy 165.1 63.5)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 71bb09c1-6588-48bb-b886-e9385227f1c4) - ) - (wire (pts (xy 129.54 43.18) (xy 129.54 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 74aa8a23-99d5-4002-81d7-e8dbc295aab1) - ) - (wire (pts (xy 193.04 99.06) (xy 193.04 104.14)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 74d476ba-4d8b-405c-a721-9e5c8d06feb9) - ) - (wire (pts (xy 127 41.91) (xy 127 40.64)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 77e2cada-bc48-44aa-8e54-eb64c5b9e2c0) - ) - (wire (pts (xy 142.24 83.82) (xy 144.78 83.82)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 77f4ae2f-d84b-44b7-81da-43886db60072) - ) - (wire (pts (xy 170.18 69.85) (xy 205.74 69.85)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 79d66e0b-53fd-473a-82b5-ea2eee27c989) - ) - (wire (pts (xy 124.46 135.89) (xy 127 135.89)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 7ee5e36f-0e24-4f43-930e-43cec0764d3b) - ) - (bus (pts (xy 167.64 73.66) (xy 167.64 74.93)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 82478e4a-0e16-4569-b09e-59c9ab0f1fd8) - ) - - (wire (pts (xy 236.22 87.63) (xy 236.22 106.68)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 833573e0-4f94-4338-a900-6618d16f7fd0) - ) - (wire (pts (xy 142.24 53.34) (xy 144.78 53.34)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 8672eee5-a9b3-40f2-8c47-5b53be6b6662) - ) - (wire (pts (xy 93.98 116.84) (xy 111.76 116.84)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 870cce7a-bf11-4ba1-b3be-c7a36686d421) - ) - (bus (pts (xy 91.44 111.76) (xy 91.44 114.3)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 874c2a2f-5593-4602-b9b1-b5a9a4382d29) - ) - (bus (pts (xy 167.64 68.58) (xy 167.64 71.12)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 88a3b663-6421-4182-92ce-c58266a771d9) - ) - (bus (pts (xy 167.64 111.76) (xy 167.64 114.3)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 8b81b27b-20c3-489a-881c-5750c090b0ab) - ) - - (wire (pts (xy 193.04 72.39) (xy 205.74 72.39)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 8ea7e545-3527-457e-83c3-7ce251d7ac6f) - ) - (wire (pts (xy 93.98 114.3) (xy 111.76 114.3)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 8f1875ad-e9d2-46cd-af7a-8e793125fa1c) - ) - (bus (pts (xy 167.64 63.5) (xy 167.64 66.04)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 908bfed1-d45a-47e3-b948-a833e0b08038) - ) - (bus (pts (xy 91.44 99.06) (xy 91.44 101.6)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 9135c908-d25c-4828-8c27-abce385f1602) - ) - (bus (pts (xy 91.44 109.22) (xy 91.44 111.76)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 934fd7a1-fad7-42c1-83bf-bdfbd8095e08) - ) - (bus (pts (xy 91.44 73.66) (xy 91.44 76.2)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 940f68e1-27f2-4e1e-8984-1cc2a6b49bb6) - ) - - (wire (pts (xy 142.24 127) (xy 165.1 127)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 942f5123-6ec0-4912-98b6-bc09acda4359) - ) - (wire (pts (xy 142.24 116.84) (xy 165.1 116.84)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 97593048-aa2b-4006-a5e4-7891e3f14233) - ) - (bus (pts (xy 91.44 101.6) (xy 91.44 104.14)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 97650644-b998-4675-a281-23c0648e5e74) - ) - (bus (pts (xy 167.64 96.52) (xy 167.64 99.06)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 9a08f7ce-2ed9-49f5-84ec-b865b2f334f1) - ) - - (wire (pts (xy 129.54 135.89) (xy 127 135.89)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 9a71b1c9-bdf4-4fdc-8ace-daad751226ca) - ) - (bus (pts (xy 167.64 78.74) (xy 167.64 80.01)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 9ce3cabe-2a32-43e5-9172-afe1b22b3ec2) - ) - - (wire (pts (xy 93.98 106.68) (xy 111.76 106.68)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 9e62eab9-ee9c-4b83-82bc-6a7a2be4da4c) - ) - (wire (pts (xy 142.24 58.42) (xy 165.1 58.42)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a05b2333-ea2a-4a44-a9a6-134f33fa0967) - ) - (wire (pts (xy 170.18 111.76) (xy 241.3 111.76)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a13e2a6e-5309-49db-bdbc-c2b2b71d3b88) - ) - (bus (pts (xy 167.64 132.08) (xy 167.64 149.86)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a54f0410-5dc4-4db7-99f4-a3b20bc102de) - ) - - (wire (pts (xy 231.14 72.39) (xy 238.76 72.39)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a5553124-6bcd-4c97-9b99-c815b35d0131) - ) - (wire (pts (xy 170.18 104.14) (xy 193.04 104.14)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a67a2313-a600-4871-bcd3-2ad5b825d932) - ) - (wire (pts (xy 142.24 48.26) (xy 165.1 48.26)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a7131f94-37c1-4a93-a6e0-1b208875d403) - ) - (wire (pts (xy 212.09 92.71) (xy 212.09 95.25)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a82498d1-ace9-47d5-a44c-efa89b17c1c3) - ) - (wire (pts (xy 170.18 82.55) (xy 205.74 82.55)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid a8bcd55d-be51-410a-874f-d34a44ba404c) - ) - (wire (pts (xy 142.24 86.36) (xy 165.1 86.36)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ac458818-408a-4694-b868-a0254f0e3f61) - ) - (wire (pts (xy 142.24 73.66) (xy 165.1 73.66)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ac977a15-4b19-4957-8ff6-518c653a4117) - ) - (wire (pts (xy 142.24 96.52) (xy 165.1 96.52)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ad37c4c0-538f-4b18-8479-9968e6715af8) - ) - (wire (pts (xy 127 134.62) (xy 127 135.89)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid afb79622-7abb-43b2-9867-f8da57b202d9) - ) - (wire (pts (xy 193.04 104.14) (xy 233.68 104.14)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b04826eb-01c3-46b5-9a18-09a84b0fffb0) - ) - (wire (pts (xy 193.04 72.39) (xy 193.04 91.44)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b1598abc-76c8-4503-8908-2aab8cc1a6be) - ) - (wire (pts (xy 142.24 124.46) (xy 165.1 124.46)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b2e24e58-dace-4abc-81c2-aa72dc153d10) - ) - (wire (pts (xy 106.68 53.34) (xy 111.76 53.34)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b457ca6f-746f-4052-b505-c94c1f2827f1) - ) - (bus (pts (xy 167.64 106.68) (xy 167.64 109.22)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b5ad3699-3b03-4894-9360-251e478c65a0) - ) - - (wire (pts (xy 96.52 53.34) (xy 99.06 53.34)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid b9d1c308-1773-4dd6-ad73-7142aba3e6d8) - ) - (wire (pts (xy 93.98 119.38) (xy 111.76 119.38)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid bed559d7-4400-49c6-9b23-f93051e9bc11) - ) - (bus (pts (xy 91.44 76.2) (xy 91.44 78.74)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid bf732d28-3989-4665-927a-87dd6ffa7877) - ) - (bus (pts (xy 167.64 53.34) (xy 167.64 60.96)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid bf9b1228-a57d-4f8c-be8e-9f1f08824685) - ) - (bus (pts (xy 167.64 99.06) (xy 167.64 106.68)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c09f406d-de72-461e-8880-0dc49731b08f) - ) - - (wire (pts (xy 93.98 81.28) (xy 111.76 81.28)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c1fc7c4a-210a-4e89-9eba-a95e4ab6f64f) - ) - (wire (pts (xy 124.46 43.18) (xy 124.46 41.91)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c3e7fbe9-fec4-4f05-84b1-a5816d819fe2) - ) - (wire (pts (xy 142.24 55.88) (xy 144.78 55.88)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c4964d54-d19e-482f-9b93-a9e453127d3b) - ) - (wire (pts (xy 231.14 69.85) (xy 241.3 69.85)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid c814b47d-eea3-4928-9f8c-283446f20b6d) - ) - (bus (pts (xy 167.64 71.12) (xy 167.64 72.39)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid cb8111b0-17f9-4487-86e8-36be6de3854c) - ) - (bus (pts (xy 167.64 85.09) (xy 167.64 87.63)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid cc5b883f-53c6-4522-a038-7e6c06e542da) - ) - (bus (pts (xy 167.64 127) (xy 167.64 129.54)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid cc85cf5a-5fd6-4fb3-b44f-be772b28b5c4) - ) - - (wire (pts (xy 170.18 72.39) (xy 193.04 72.39)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ce2808c3-5dae-4e78-b436-661eeb787808) - ) - (wire (pts (xy 142.24 68.58) (xy 165.1 68.58)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid d0b1ab05-c4a7-4b17-af62-f5a3e211d387) - ) - (bus (pts (xy 167.64 119.38) (xy 167.64 121.92)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid d17bc5ed-3032-4b92-bc58-081c53b6b77c) - ) - (bus (pts (xy 167.64 81.28) (xy 167.64 85.09)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid d31b4e9f-8e7c-4392-a118-7a128cca56d8) - ) - (bus (pts (xy 167.64 87.63) (xy 167.64 88.9)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid d487ed04-286b-4d4f-9948-4a79bdc0d161) - ) - - (wire (pts (xy 238.76 72.39) (xy 238.76 109.22)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid d7bd6f03-0ca2-47a5-8987-8c1915cb6f11) - ) - (bus (pts (xy 91.44 106.68) (xy 91.44 109.22)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid da481b02-9c1e-4d5e-a12c-5a4c98f5093c) - ) - - (wire (pts (xy 231.14 90.17) (xy 233.68 90.17)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid dd211a6c-8ed3-4e60-9f36-5e87511c2d4d) - ) - (wire (pts (xy 127 41.91) (xy 127 43.18)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid df739a90-dfe3-4faa-aa89-69e0e82b4fef) - ) - (wire (pts (xy 93.98 76.2) (xy 111.76 76.2)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid df76d74f-835a-4606-a8aa-1c1162501abd) - ) - (wire (pts (xy 142.24 71.12) (xy 165.1 71.12)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid e1847625-3bdc-4379-940d-783f5e1f5600) - ) - (wire (pts (xy 142.24 91.44) (xy 165.1 91.44)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid e3a948dd-f12f-402e-87a5-e96c138df173) - ) - (bus (pts (xy 167.64 72.39) (xy 167.64 73.66)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid e8cd8c5c-46cb-45e2-b3fc-d1105bed46d6) - ) - - (wire (pts (xy 142.24 129.54) (xy 165.1 129.54)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid e9d3a501-f327-4d54-b108-e26b5c1b71e8) - ) - (bus (pts (xy 91.44 71.12) (xy 91.44 73.66)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid ed736f9d-87e0-46b7-a914-3a4939318334) - ) - - (wire (pts (xy 124.46 134.62) (xy 124.46 135.89)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid f2c37f51-e927-40e0-9948-18c9a2be6bbb) - ) - (bus (pts (xy 91.44 78.74) (xy 91.44 99.06)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid f7b462e8-9f4f-4c8a-b5f3-94c788f33032) - ) - - (wire (pts (xy 93.98 73.66) (xy 111.76 73.66)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid f973db28-904f-4f40-86d2-a96f3bb7f884) - ) - - (text "13" (at 212.09 95.25 90) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 137d5aef-774a-4acd-ae49-a66a18ebf0bb) - ) - - (label "U1.PA8" (at 171.45 104.14 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 07e37ad4-f0ea-4c7b-b696-920ae26effcf) - ) - (label "U1.PB0" (at 156.21 91.44 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 0a550974-fc18-482b-a6a9-c0598df8134c) - ) - (label "U1.PA12" (at 171.45 109.22 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 208462da-31e4-43f4-9f21-7b5162d5b2c1) - ) - (label "U1.PA5" (at 156.21 60.96 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 2319603a-175f-47ac-a42c-febded5bbcff) - ) - (label "U1.PA7" (at 156.21 66.04 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 28276197-8a38-43f3-b645-823e88f90364) - ) - (label "U1.PC9" (at 93.98 114.3 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 2a9e786d-4f85-4236-b595-4c997a182f8a) - ) - (label "U1.PA10" (at 171.45 85.09 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 487880a2-1cf9-4dd8-b3cf-5bb4f5fe1d5b) - ) - (label "U1.PC7" (at 93.98 109.22 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 4a40c250-df5e-4102-bbf6-9b5b26f54a52) - ) - (label "U1.PA0" (at 156.21 48.26 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 4f5b5db2-917d-4323-9ac6-bff208c2240f) - ) - (label "U1.PC10" (at 93.98 116.84 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 5163f90b-32bc-4e25-909b-7205ee180c74) - ) - (label "U1.PC8" (at 171.45 72.39 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 52d97a17-6c9e-43d0-8625-bac711d97dff) - ) - (label "U2{PA[0..15] PB[0..15] PC[0..15] PD2 PF[0..7]}" (at 151.13 149.86 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 5e04af1e-6c4d-45d5-8eac-95550bff30fd) - ) - (label "U1.PB15" (at 156.21 129.54 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 5e944b74-429c-4251-adf7-bbc2fba49982) - ) - (label "U1.PA9" (at 156.21 71.12 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 5ed9c00f-d580-4a61-9b3c-8704f9167cd1) - ) - (label "U1.PB11" (at 156.21 119.38 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 60e57801-a193-43b3-b632-1ace8131b8d2) - ) - (label "U1.PA6" (at 156.21 63.5 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 673a4409-f5cc-4a7c-b192-c318dbd02a03) - ) - (label "U1.PF4" (at 93.98 73.66 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 675d83e1-b574-4706-a7be-44923bccc74b) - ) - (label "U1.PC4" (at 93.98 101.6 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 6b912a1b-8f83-429a-a2fc-7c5588164f34) - ) - (label "U1.PA9" (at 171.45 82.55 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 70eceae9-4fcb-49ab-9df1-c66f905516d1) - ) - (label "U1.PA15" (at 156.21 86.36 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 7649438e-ebbf-4361-bd8a-b3c893aaf16a) - ) - (label "U1.PB1" (at 156.21 93.98 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 7c20e404-3d78-498f-af07-45923d759e1c) - ) - (label "U1.PC11" (at 93.98 119.38 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 821bded8-cace-4bde-98f4-0b5b6445a753) - ) - (label "U1.PF7" (at 93.98 81.28 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid 85d25f0d-370f-4f2e-a025-ac9689798284) - ) - (label "U1.PA4" (at 156.21 58.42 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid a1c64cdb-65b7-4abc-9dc4-5bb395443d4f) - ) - (label "U1.PF5" (at 93.98 76.2 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid a8eea686-caeb-41b3-9800-3ba3aad52e57) - ) - (label "U1.PF7" (at 171.45 69.85 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid adf5db56-8acd-4f30-bc62-72b476b1bbc9) - ) - (label "U1.PC6" (at 93.98 106.68 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid c110c7e0-1842-41dc-ba23-02e1d28bd7fe) - ) - (label "U1.PA8" (at 156.21 68.58 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid c8354dd8-3046-46fa-8379-6f35d1ef6a7b) - ) - (label "U1.PA11" (at 156.21 76.2 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid d2b1a52b-9320-4b45-9253-f10385599f12) - ) - (label "U1.PF6" (at 93.98 78.74 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid d59d4d38-6a0f-4565-a1c2-1a8466ec458f) - ) - (label "U1.PA11" (at 171.45 111.76 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid dd8b8520-e65f-47b3-a4ff-a71fcdad0be3) - ) - (label "U1.PC5" (at 93.98 104.14 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid de34b546-5f5e-40cb-9042-d9d7e89862c3) - ) - (label "U1.PF6" (at 171.45 106.68 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid e211b7ac-eb61-44d2-8411-c7ab6d6ef13f) - ) - (label "U1.PB14" (at 156.21 127 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid e9cdc5a6-479d-40be-bc33-a63381688384) - ) - (label "U1.PB12" (at 156.21 121.92 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid eaa76bd4-c1ae-4b5b-bac6-fe0cf76ddcdf) - ) - (label "U1.PA12" (at 156.21 78.74 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid f2247e91-b755-4f84-87cc-60d3031d3080) - ) - (label "U1.PA1" (at 156.21 50.8 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid f4fbf95a-8e9b-4862-95f3-66a8957c5da3) - ) - (label "U1.PA10" (at 156.21 73.66 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid f712c4a5-76e4-44ce-b21e-fa901467519a) - ) - (label "U1.PB2" (at 156.21 96.52 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid f7dd381e-54d3-435c-a2b3-50206b34a353) - ) - (label "U1.PB13" (at 156.21 124.46 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid f91d6e76-4083-49b8-a67d-93155c76dbd9) - ) - (label "U1.PC9" (at 171.45 77.47 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid f93641f3-30d5-46bf-95f7-ffbe47211263) - ) - (label "U1.PC8" (at 93.98 111.76 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid fb7a2e9d-ec3e-489f-8747-835c08dcb088) - ) - (label "U1.PC12" (at 93.98 121.92 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid fbb70177-81a2-489e-a985-6054b4a7c010) - ) - (label "U1.PB10" (at 156.21 116.84 0) - (effects (font (size 1.27 1.27)) (justify left bottom)) - (uuid fe4c0acb-39c3-4450-9ca9-040ff46055e6) - ) - - (hierarchical_label "SWCLK" (shape input) (at 144.78 83.82 0) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 296b4749-1b35-48db-9970-67dbe47dcee8) - ) - (hierarchical_label "USART1_TX (PA2)" (shape output) (at 144.78 53.34 0) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 33450bfd-5387-4145-8958-b23446b2941e) - ) - (hierarchical_label "U2{PA[0..15] PB[0..15] PC[0..15] PD2 PF[0..7]}" (shape input) (at 71.12 71.12 180) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 40a877c7-c390-42cb-809d-da869815ea40) - ) - (hierarchical_label "SWDIO" (shape input) (at 144.78 81.28 0) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid a51cf1c9-d9e9-4751-b872-a7dff08b5886) - ) - (hierarchical_label "USART1_RX (PA3)" (shape input) (at 144.78 55.88 0) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid fb309908-804d-43c5-bb9b-b1e46de69482) - ) - - (symbol (lib_id "RF_Module:ESP-WROOM-02") (at 218.44 80.01 0) (unit 1) - (in_bom yes) (on_board yes) (fields_autoplaced) - (uuid 6b3e7a3a-fdc7-4948-89a1-08254e691845) - (property "Reference" "U2" (id 0) (at 220.4594 62.23 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "ESP-WROOM-02" (id 1) (at 220.4594 64.77 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "RF_Module:ESP-WROOM-02" (id 2) (at 233.68 93.98 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "https://www.espressif.com/sites/default/files/documentation/0c-esp-wroom-02_datasheet_en.pdf" (id 3) (at 219.71 41.91 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 8c3f035d-cd35-404f-ba6f-5fa7b7ffc893)) - (pin "10" (uuid 1b4594f9-a600-4516-ba5d-87805866d304)) - (pin "11" (uuid 8c114a17-7716-4da1-9bb2-0103d8244a84)) - (pin "12" (uuid 124ef950-2d1e-46d1-856f-6f1863865bd3)) - (pin "13" (uuid bc700d08-299c-4cf4-b0d2-88fc664cd15f)) - (pin "14" (uuid 7e0f816b-c2dc-4f96-bddf-0f8a51f4fb2c)) - (pin "15" (uuid bdf7b329-2a5b-4b12-8126-d01cace599d1)) - (pin "16" (uuid 919713d0-2bb4-442a-932b-f461d288c164)) - (pin "17" (uuid c9402ef1-6185-4f40-99d6-5544fa4b212c)) - (pin "18" (uuid 7618ac38-4a84-4642-8a45-2aa9b691f46c)) - (pin "19" (uuid 07f19de4-ae18-493f-8e0a-3400caf443eb)) - (pin "2" (uuid b0d96d13-06eb-44d9-b5ab-8108d78f58fc)) - (pin "3" (uuid cccd1f35-d301-4a80-84f9-ea5c5fcd600f)) - (pin "4" (uuid afe2d96d-7710-4604-8fac-6132d6009b87)) - (pin "5" (uuid fc9817ae-d211-47a2-a7ce-fbabba7698d1)) - (pin "6" (uuid 89de58d2-888a-4a0e-8602-0f7dd1fcf007)) - (pin "7" (uuid d57bf0e0-0279-4f9e-84b2-2b9f5425e0ce)) - (pin "8" (uuid dd830092-49e4-4348-ba7a-7ce22e6623cf)) - (pin "9" (uuid 6faad920-261a-4e12-b3a6-daac2245ed4c)) - ) - - (symbol (lib_id "power:GND") (at 218.44 95.25 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 715bbba2-2abe-43a2-95ee-9fd9e8fb7d84) - (property "Reference" "#PWR?" (id 0) (at 218.44 101.6 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 218.567 99.6442 0)) - (property "Footprint" "" (id 2) (at 218.44 95.25 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 218.44 95.25 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid df24b94a-596c-42b7-a295-b624d173df03)) - ) - - (symbol (lib_id "power:GND") (at 212.09 95.25 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 7ae62edc-f214-4a72-8ffe-1a506ebb12de) - (property "Reference" "#PWR?" (id 0) (at 212.09 101.6 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 212.217 99.6442 0)) - (property "Footprint" "" (id 2) (at 212.09 95.25 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 212.09 95.25 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid fc53ff6f-e09e-485d-a009-122bb1b1d342)) - ) - - (symbol (lib_id "Device:R") (at 193.04 95.25 0) (unit 1) - (in_bom yes) (on_board yes) (fields_autoplaced) - (uuid 8af82709-f7f6-4918-8850-8936ec17331b) - (property "Reference" "R37" (id 0) (at 195.58 93.9799 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "NP" (id 1) (at 195.58 96.5199 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "" (id 2) (at 191.262 95.25 90) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 193.04 95.25 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid b723ac89-38f1-4cd6-8548-96d2f1e20f90)) - (pin "2" (uuid 7ddc42cf-e2e9-40ad-9e03-359529470bdf)) - ) - - (symbol (lib_id "power:+3.3V") (at 127 40.64 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 8c11f17d-e469-4ae9-b440-fff80aeae4c4) - (property "Reference" "#PWR?" (id 0) (at 127 44.45 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+3.3V" (id 1) (at 127.381 36.2458 0)) - (property "Footprint" "" (id 2) (at 127 40.64 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 127 40.64 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 36162f7d-4d03-463f-bd67-c5e95d48f1e3)) - ) - - (symbol (lib_id "power:GND") (at 127 137.16 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid 98c99148-c5f8-40ae-ac29-eef15fe2a284) - (property "Reference" "#PWR?" (id 0) (at 127 143.51 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 127.127 141.5542 0)) - (property "Footprint" "" (id 2) (at 127 137.16 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 127 137.16 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 6b9a08e9-b0be-4ebd-ad91-2b9ade12ddf8)) - ) - - (symbol (lib_id "MCU_ST_STM32F0:STM32F030R8Tx") (at 127 88.9 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid ad5cece6-4980-4282-85ac-ae6465044282) - (property "Reference" "U1" (id 0) (at 125.73 55.88 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "STM32F030R8Tx" (id 1) (at 116.84 58.42 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "Package_QFP:LQFP-64_10x10mm_P0.5mm" (id 2) (at 114.3 132.08 0) - (effects (font (size 1.27 1.27)) (justify right) hide) - ) - (property "Datasheet" "http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00088500.pdf" (id 3) (at 127 88.9 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid d4fe0fd2-65d2-4499-98e4-247f59b11f21)) - (pin "10" (uuid 555c3908-7fd6-4612-8c51-cd9ba233c4e1)) - (pin "11" (uuid c7591610-13cc-4c95-97b6-589c346cca52)) - (pin "12" (uuid 5494a884-ba62-4c88-8ec9-a31a89d2269f)) - (pin "13" (uuid fa477124-866f-4c58-8da1-c5b702a75e2e)) - (pin "14" (uuid ee4eceda-5a8d-4ad6-849e-4eeb624494b9)) - (pin "15" (uuid d1519545-fff2-4f1e-a41b-1187ffec91bc)) - (pin "16" (uuid 0044190a-9fce-461b-a0af-51454b7b092f)) - (pin "17" (uuid 9458b15c-a489-4d67-aa7d-f50fc4fcbda5)) - (pin "18" (uuid f985cf50-11dc-4514-84d1-6fb1f5d4b50d)) - (pin "19" (uuid 0fc4142d-0d57-426b-994e-9953f20ba6b8)) - (pin "2" (uuid 8f5ebae1-4a0d-43c4-ab11-81ebd0683ccb)) - (pin "20" (uuid 7d8ceb3f-dd91-4e74-af19-39e545594996)) - (pin "21" (uuid 3aac8c17-7ce7-4899-b579-b1c635bc4778)) - (pin "22" (uuid 62041613-2e65-4a8d-83f6-70e57c3a17a1)) - (pin "23" (uuid fbcf2f0b-8cb3-4139-9a84-a09e92d7f61d)) - (pin "24" (uuid 7de5e8c4-a03e-4fde-82ef-659f02b96b31)) - (pin "25" (uuid f9cbf8bd-a7bd-481b-9740-7482cc057fd0)) - (pin "26" (uuid 5c07567c-63e1-4f6e-bcfd-cfa6c263eb06)) - (pin "27" (uuid a12a10d5-dc7e-434a-9e14-4894b976c9b8)) - (pin "28" (uuid d4ebe8be-1e41-4740-bf94-7ed4b365806a)) - (pin "29" (uuid 9f0bb10f-d896-4207-9d90-cf9f75a51af3)) - (pin "3" (uuid aacd081e-dd62-4a5f-93ed-925b70654888)) - (pin "30" (uuid 1bd4bdad-4057-4529-b517-3351644d4067)) - (pin "31" (uuid c336cf35-faaa-4d3f-90f4-4383346609c3)) - (pin "32" (uuid 928b52cf-5b0d-4510-be32-e21d602d1c30)) - (pin "33" (uuid 826e040d-48b2-44b0-ae0f-b753613d0fb9)) - (pin "34" (uuid 22ee567b-972d-4e18-807f-e95f4f4cbe6a)) - (pin "35" (uuid d3126df7-161f-4936-892d-a3f376fe3084)) - (pin "36" (uuid adecc0a9-5903-4a40-9691-6df5964e55e7)) - (pin "37" (uuid b6ee4c88-5dce-4580-b07f-83f52ba582c1)) - (pin "38" (uuid 89ce91e7-98f6-4e93-96a2-973516daa971)) - (pin "39" (uuid b89bf876-a1aa-447c-81bf-015cd0c2e05b)) - (pin "4" (uuid 8816e129-74e3-4ead-8a4c-77efb5c2d320)) - (pin "40" (uuid 15cb4a5b-b07e-40ce-a2b8-9ccc56bf5a32)) - (pin "41" (uuid 8970a07a-494c-4e3b-86d1-5e891c66b32b)) - (pin "42" (uuid f8c0ffc6-d354-41e2-8100-4ce62f8ecfd4)) - (pin "43" (uuid ecb7da4c-4d44-4c14-b53b-4a3d4848e579)) - (pin "44" (uuid 572d8273-608e-490c-970a-35d067003c98)) - (pin "45" (uuid 907273c4-cf5c-416e-abbf-0041c979f747)) - (pin "46" (uuid 8a5510e2-f84b-4896-8f85-321ff6e4bca4)) - (pin "47" (uuid 5073f428-1e2b-4088-8d55-ad1f1df5f7a1)) - (pin "48" (uuid 77a76479-c715-402e-924c-8e86fe809954)) - (pin "49" (uuid 4603a12e-c8b7-4f0f-81f1-709f9991587b)) - (pin "5" (uuid 7aa7ec92-82cb-4f1d-a097-9a202544cf5b)) - (pin "50" (uuid d56753f8-4539-48a6-be9a-b20d5ea7443b)) - (pin "51" (uuid 8a163449-f822-4abf-8ca0-0fc82b36a61f)) - (pin "52" (uuid 0b856b0c-bcf6-490f-92d0-8f15eb197b02)) - (pin "53" (uuid f6d030b3-9484-4ddb-bd73-d50bf5fd27e0)) - (pin "54" (uuid 589b6bd2-9ebe-4d08-825b-a48ce518eb21)) - (pin "55" (uuid 4d32a287-9ecb-42c4-b411-60125de14d92)) - (pin "56" (uuid 2b2ff79b-57e3-49ea-a8e9-87469a819790)) - (pin "57" (uuid 6c18a852-37b7-448c-ab92-bffde618ade9)) - (pin "58" (uuid 28bc2ce5-b2b7-4d74-8fc8-585511b47021)) - (pin "59" (uuid e13fe194-feb8-4272-8702-b285e4e07bb4)) - (pin "6" (uuid 86f4d71b-5c4f-40a9-8f79-ba22097399ff)) - (pin "60" (uuid 2c766b47-2939-4f77-af47-6c79e1b74c8e)) - (pin "61" (uuid 48d4450e-3240-42b7-82e2-6bde14859879)) - (pin "62" (uuid 7524cd2b-a953-4a0f-9c37-00c0f898b393)) - (pin "63" (uuid 9deca924-2e45-42c6-8ab2-17d72a8599db)) - (pin "64" (uuid 1ecfda50-bc92-4500-9193-7c744d2e3c5a)) - (pin "7" (uuid 7cb77ba6-b4fd-43db-935d-45806165c198)) - (pin "8" (uuid 60ef7ef0-9fb8-456e-a53d-8b01c85a555b)) - (pin "9" (uuid 76b5a2d6-b097-4a33-93a3-28c8ec2a97d0)) - ) - - (symbol (lib_id "Device:R") (at 102.87 53.34 90) (unit 1) - (in_bom yes) (on_board yes) - (uuid be7c34db-be63-428a-b20a-6894e9676b70) - (property "Reference" "R33" (id 0) (at 102.87 53.34 90)) - (property "Value" "4k7" (id 1) (at 105.41 55.88 90)) - (property "Footprint" "" (id 2) (at 102.87 55.118 90) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (id 3) (at 102.87 53.34 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid fd4c6a86-5fe2-46ef-8a18-3f42ad6d2b89)) - (pin "2" (uuid c2a02122-2d24-42a1-abf6-268e9731af14)) - ) - - (symbol (lib_id "power:GND") (at 96.52 55.88 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid e17a0862-a829-4a6f-b29e-07b141ebcec2) - (property "Reference" "#PWR?" (id 0) (at 96.52 62.23 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 96.647 60.2742 0)) - (property "Footprint" "" (id 2) (at 96.52 55.88 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 96.52 55.88 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid b9431072-cb49-464a-855e-a98088e3f7eb)) - ) - - (symbol (lib_id "power:+3.3V") (at 218.44 64.77 0) (unit 1) - (in_bom yes) (on_board yes) - (uuid fd300d7d-0f1e-403e-bc94-f9c8cf4fdd50) - (property "Reference" "#PWR?" (id 0) (at 218.44 68.58 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+3.3V" (id 1) (at 218.821 60.3758 0)) - (property "Footprint" "" (id 2) (at 218.44 64.77 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 218.44 64.77 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 80e74577-b0a8-4fa2-8d48-a7be5fb2b52b)) - ) +(kicad_sch + (version 20231120) + (generator "eeschema") + (generator_version "8.0") + (uuid "a88c21a2-034f-44c4-89f9-288e0bea225d") + (paper "A4") + (title_block + (title "YardForce SA/SC 10Buttons 12LEDs CoverUI") + (date "2023-10-20") + (rev "0.1") + (comment 1 "(c) Apehaenger") + (comment 2 "For https://openmower.de") + (comment 3 "RM-ECOW-V1.0.0 2018.06.05 with STM32F030R8T6") + ) + (lib_symbols + (symbol "Device:C" + (pin_numbers hide) + (pin_names + (offset 0.254) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "C" + (at 0.635 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C" + (at 0.635 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 0.9652 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "cap capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "C_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "C_0_1" + (polyline + (pts + (xy -2.032 -0.762) (xy 2.032 -0.762) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -2.032 0.762) (xy 2.032 0.762) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "C_1_1" + (pin passive line + (at 0 3.81 270) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Device:R" + (pin_numbers hide) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "R" + (at 2.032 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "R" + (at 0 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at -1.778 0 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "R res resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "R_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "R_0_1" + (rectangle + (start -1.016 -2.54) + (end 1.016 2.54) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "R_1_1" + (pin passive line + (at 0 3.81 270) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "MCU_ST_STM32F0:STM32F030R8Tx" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at -12.7 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "STM32F030R8Tx" + (at 7.62 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Package_QFP:LQFP-64_10x10mm_P0.5mm" + (at -12.7 -43.18 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + (property "Datasheet" "http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00088500.pdf" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "ARM Cortex-M0 MCU, 64KB flash, 8KB RAM, 48MHz, 2.4-3.6V, 55 GPIO, LQFP-64" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "ARM Cortex-M0 STM32F0 STM32F0x0 Value Line" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "LQFP*10x10mm*P0.5mm*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "STM32F030R8Tx_0_1" + (rectangle + (start -12.7 -43.18) + (end 12.7 43.18) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "STM32F030R8Tx_1_1" + (pin power_in line + (at -2.54 45.72 270) + (length 2.54) + (name "VDD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -7.62 0) + (length 2.54) + (name "PC2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -10.16 0) + (length 2.54) + (name "PC3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 2.54 -45.72 90) + (length 2.54) + (name "VSSA" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 5.08 45.72 270) + (length 2.54) + (name "VDDA" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 40.64 180) + (length 2.54) + (name "PA0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 38.1 180) + (length 2.54) + (name "PA1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 35.56 180) + (length 2.54) + (name "PA2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "16" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 33.02 180) + (length 2.54) + (name "PA3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "17" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 15.24 0) + (length 2.54) + (name "PF4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "18" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 12.7 0) + (length 2.54) + (name "PF5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "19" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -35.56 0) + (length 2.54) + (name "PC13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 30.48 180) + (length 2.54) + (name "PA4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "20" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 27.94 180) + (length 2.54) + (name "PA5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "21" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 25.4 180) + (length 2.54) + (name "PA6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "22" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 22.86 180) + (length 2.54) + (name "PA7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "23" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -12.7 0) + (length 2.54) + (name "PC4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "24" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -15.24 0) + (length 2.54) + (name "PC5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "25" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -2.54 180) + (length 2.54) + (name "PB0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "26" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -5.08 180) + (length 2.54) + (name "PB1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "27" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -7.62 180) + (length 2.54) + (name "PB2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "28" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -27.94 180) + (length 2.54) + (name "PB10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "29" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -38.1 0) + (length 2.54) + (name "PC14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -30.48 180) + (length 2.54) + (name "PB11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "30" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at -2.54 -45.72 90) + (length 2.54) + (name "VSS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "31" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 45.72 270) + (length 2.54) + (name "VDD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "32" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -33.02 180) + (length 2.54) + (name "PB12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "33" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -35.56 180) + (length 2.54) + (name "PB13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "34" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -38.1 180) + (length 2.54) + (name "PB14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "35" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -40.64 180) + (length 2.54) + (name "PB15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "36" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -17.78 0) + (length 2.54) + (name "PC6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "37" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -20.32 0) + (length 2.54) + (name "PC7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "38" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -22.86 0) + (length 2.54) + (name "PC8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "39" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -40.64 0) + (length 2.54) + (name "PC15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -25.4 0) + (length 2.54) + (name "PC9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "40" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 20.32 180) + (length 2.54) + (name "PA8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "41" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 17.78 180) + (length 2.54) + (name "PA9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "42" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 15.24 180) + (length 2.54) + (name "PA10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "43" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 12.7 180) + (length 2.54) + (name "PA11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "44" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 10.16 180) + (length 2.54) + (name "PA12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "45" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 7.62 180) + (length 2.54) + (name "PA13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "46" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 10.16 0) + (length 2.54) + (name "PF6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "47" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 7.62 0) + (length 2.54) + (name "PF7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "48" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 5.08 180) + (length 2.54) + (name "PA14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "49" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -15.24 20.32 0) + (length 2.54) + (name "PF0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 2.54 180) + (length 2.54) + (name "PA15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "50" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -27.94 0) + (length 2.54) + (name "PC10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "51" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -30.48 0) + (length 2.54) + (name "PC11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "52" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -33.02 0) + (length 2.54) + (name "PC12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "53" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 2.54 0) + (length 2.54) + (name "PD2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "54" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -10.16 180) + (length 2.54) + (name "PB3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "55" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -12.7 180) + (length 2.54) + (name "PB4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "56" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -15.24 180) + (length 2.54) + (name "PB5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "57" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -17.78 180) + (length 2.54) + (name "PB6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "58" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -20.32 180) + (length 2.54) + (name "PB7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "59" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -15.24 17.78 0) + (length 2.54) + (name "PF1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -15.24 35.56 0) + (length 2.54) + (name "BOOT0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "60" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -22.86 180) + (length 2.54) + (name "PB8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "61" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -25.4 180) + (length 2.54) + (name "PB9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "62" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 -45.72 90) + (length 2.54) + (name "VSS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "63" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 2.54 45.72 270) + (length 2.54) + (name "VDD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "64" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -15.24 40.64 0) + (length 2.54) + (name "NRST" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -2.54 0) + (length 2.54) + (name "PC0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 -5.08 0) + (length 2.54) + (name "PC1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "RF_Module:ESP-WROOM-02" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at -7.62 13.97 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "ESP-WROOM-02" + (at 10.16 13.97 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "RF_Module:ESP-WROOM-02" + (at 15.24 -13.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://www.espressif.com/sites/default/files/documentation/0c-esp-wroom-02_datasheet_en.pdf" + (at 1.27 38.1 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Wi-Fi Module, ESP8266EX SoC, 32-bit, 802.11b/g/n, WPA/WPA2, 2.7-3.6V, SMD" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "RF Radio ESP Espressif" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "ESP?WROOM?02*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "ESP-WROOM-02_0_1" + (rectangle + (start 10.16 12.7) + (end -10.16 -12.7) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "ESP-WROOM-02_1_1" + (pin power_in line + (at 0 15.24 270) + (length 2.54) + (name "VDD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 12.7 5.08 180) + (length 2.54) + (name "IO4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -12.7 -2.54 0) + (length 2.54) + (name "RXD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -12.7 -5.08 0) + (length 2.54) + (name "TXD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -15.24 90) + (length 2.54) hide + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 12.7 2.54 180) + (length 2.54) + (name "IO5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 7.62 0) + (length 2.54) + (name "RST" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 2.54 0) + (length 2.54) + (name "TOUT" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "16" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 12.7 -10.16 180) + (length 2.54) + (name "IO16" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "17" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -15.24 90) + (length 2.54) hide + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "18" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -15.24 90) + (length 2.54) hide + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "19" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 10.16 0) + (length 2.54) + (name "EN" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 12.7 -5.08 180) + (length 2.54) + (name "IO14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 12.7 0 180) + (length 2.54) + (name "IO12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 12.7 -2.54 180) + (length 2.54) + (name "IO13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 12.7 -7.62 180) + (length 2.54) + (name "IO15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 12.7 7.62 180) + (length 2.54) + (name "IO2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 12.7 10.16 180) + (length 2.54) + (name "IO0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 -15.24 90) + (length 2.54) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "power:+3.3V" + (power) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+3.3V" + (at 0 3.556 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+3.3V\"" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "+3.3V_0_1" + (polyline + (pts + (xy -0.762 1.27) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 0) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 2.54) (xy 0.762 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "+3.3V_1_1" + (pin power_in line + (at 0 0 90) + (length 0) hide + (name "+3.3V" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "power:GND" + (power) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -6.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "GND_1_1" + (pin power_in line + (at 0 0 270) + (length 0) hide + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + ) + (junction + (at 127 135.89) + (diameter 0) + (color 0 0 0 0) + (uuid "6a234b67-e6c5-4d12-a7c7-d85e5c402b45") + ) + (junction + (at 193.04 104.14) + (diameter 0) + (color 0 0 0 0) + (uuid "7be0fac8-5ccf-4a94-993b-ca075d0dc745") + ) + (junction + (at 127 41.91) + (diameter 0) + (color 0 0 0 0) + (uuid "81e6d095-c05b-4f7c-be21-0b54b4e1e9d9") + ) + (junction + (at 88.9 48.26) + (diameter 0) + (color 0 0 0 0) + (uuid "8a264a33-3be2-4263-85ae-cef326987dee") + ) + (junction + (at 193.04 72.39) + (diameter 0) + (color 0 0 0 0) + (uuid "edb2dcef-1414-4ed2-bfcb-5f50afdf514d") + ) + (no_connect + (at 231.14 77.47) + (uuid "049d66e5-2582-4461-a7c0-63bc32b59c6e") + ) + (no_connect + (at 231.14 74.93) + (uuid "0d9bf2e7-7a52-4428-aea7-f55f27f2f8bb") + ) + (no_connect + (at 142.24 101.6) + (uuid "1a90eea3-6382-46b7-9942-a286faaec4fd") + ) + (no_connect + (at 231.14 85.09) + (uuid "1c4dd118-a988-4d3e-9c98-087b06bac8ec") + ) + (no_connect + (at 111.76 71.12) + (uuid "250dbfab-7e1d-4558-afb8-ebb13f995f44") + ) + (no_connect + (at 111.76 86.36) + (uuid "2e07f574-1c47-4175-812a-16b27a1084a7") + ) + (no_connect + (at 142.24 99.06) + (uuid "3aecf781-cc2e-4b5e-94ce-dd8a6cbe8858") + ) + (no_connect + (at 231.14 80.01) + (uuid "517d204e-db11-4b02-97c3-d822de941a7e") + ) + (no_connect + (at 111.76 68.58) + (uuid "5246a187-c1b8-4755-b3c3-a5a6550c6955") + ) + (no_connect + (at 142.24 114.3) + (uuid "70093934-e45d-45c0-9b32-04552153c270") + ) + (no_connect + (at 111.76 124.46) + (uuid "7d5400b6-93a2-43d1-b0be-d2fdca8b1693") + ) + (no_connect + (at 111.76 99.06) + (uuid "83e3a6eb-b8e4-46d2-8fbf-9588c2909481") + ) + (no_connect + (at 111.76 91.44) + (uuid "895563fe-da06-419f-b432-aa3f601675f7") + ) + (no_connect + (at 142.24 109.22) + (uuid "9471f76d-5651-4b8e-af95-274d1fc4a8ce") + ) + (no_connect + (at 111.76 96.52) + (uuid "9cfcca0a-480a-487d-a83e-166567680ff2") + ) + (no_connect + (at 111.76 93.98) + (uuid "adf91174-8de0-4e51-ac6c-3c80d89f28c1") + ) + (no_connect + (at 142.24 111.76) + (uuid "bd05194a-41f6-4e80-af27-0a2463fbc586") + ) + (no_connect + (at 111.76 129.54) + (uuid "bf5fb360-e8f5-479a-845d-a5d746b15e53") + ) + (no_connect + (at 142.24 106.68) + (uuid "c25aa6ee-4247-45e2-931c-ff5a6014f2f6") + ) + (no_connect + (at 142.24 104.14) + (uuid "f4fa9067-8f26-483a-beb3-746c404cba84") + ) + (no_connect + (at 111.76 127) + (uuid "faa91b2b-f7a1-4410-8a6d-576d539048ab") + ) + (bus_entry + (at 167.64 119.38) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "0092655b-b1bc-489b-aff2-e80c9f3dde8a") + ) + (bus_entry + (at 167.64 74.93) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "00960bf4-0e61-4ca0-bdfc-970088b75b31") + ) + (bus_entry + (at 167.64 99.06) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "0a4b6cbe-8fc9-4e06-931b-b9434043dae1") + ) + (bus_entry + (at 91.44 109.22) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "0af3b915-b2ef-4a3d-bf0b-da4f904a89c6") + ) + (bus_entry + (at 167.64 63.5) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "0eac4034-266b-4720-8b42-f0a16ce2ec12") + ) + (bus_entry + (at 91.44 73.66) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "11fb1993-7d1f-4653-b7c8-3cd5db320472") + ) + (bus_entry + (at 91.44 114.3) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "1d5091c5-fa95-4046-9e08-25d5b0308eaf") + ) + (bus_entry + (at 91.44 76.2) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "2a0e1e22-6ba7-4d75-b1cd-58d81df486df") + ) + (bus_entry + (at 167.64 132.08) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "2a39ce6f-fbfd-435a-b3d1-c3ec790722e2") + ) + (bus_entry + (at 167.64 53.34) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "3580fc00-4940-4650-8d61-6d1c0282b850") + ) + (bus_entry + (at 167.64 121.92) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "38237243-f9be-4181-b06f-49c4ebb742e6") + ) + (bus_entry + (at 91.44 119.38) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "40a37d96-36fb-4747-93b4-a019e227270f") + ) + (bus_entry + (at 91.44 111.76) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "436a3cc7-fa08-487d-8aec-73cb3ad03695") + ) + (bus_entry + (at 167.64 111.76) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "4a7d95ec-005b-4f66-8a42-3155225f292b") + ) + (bus_entry + (at 167.64 68.58) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "5657588b-e4c0-494c-9ef0-ad0004514361") + ) + (bus_entry + (at 167.64 87.63) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "56671055-a49b-42b8-b53c-0553ee9a6f80") + ) + (bus_entry + (at 167.64 60.96) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "58a0960b-976c-453b-be44-729967637513") + ) + (bus_entry + (at 167.64 114.3) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "6a36f82f-f0e1-4dcc-895a-db5cda8ce8df") + ) + (bus_entry + (at 167.64 124.46) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "7bf0226d-917e-43a1-91ed-0c838cd21dcf") + ) + (bus_entry + (at 167.64 50.8) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "7e3d7dc7-f77a-49ed-8a72-7151f0fc17a8") + ) + (bus_entry + (at 167.64 66.04) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "8cd4c56b-bb38-428d-a0b7-8f4e4e56a224") + ) + (bus_entry + (at 167.64 72.39) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "91214650-b763-4302-a3aa-89a53fb327c2") + ) + (bus_entry + (at 167.64 71.12) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "94c0d406-8a9e-41f4-a78a-e4125a6c6cc0") + ) + (bus_entry + (at 91.44 101.6) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "987ae860-3121-4c6f-9652-8a73e1e09760") + ) + (bus_entry + (at 167.64 109.22) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "9b22e72d-4e78-4009-aff8-6376105353d2") + ) + (bus_entry + (at 167.64 73.66) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "9f96af08-ca6e-4bdf-9d10-9c25c3ae4a46") + ) + (bus_entry + (at 91.44 71.12) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "a0bc2d08-530d-4714-a7b9-745fa40595f8") + ) + (bus_entry + (at 91.44 104.14) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "a2030389-6ca6-4339-9982-05940acbb99e") + ) + (bus_entry + (at 165.1 78.74) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "ad9ffe52-e3b1-42be-b0e1-9963891404ac") + ) + (bus_entry + (at 165.1 86.36) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "ae066991-5349-41c1-8ca8-4634bfac92e5") + ) + (bus_entry + (at 167.64 85.09) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "ae406ef1-4689-4f29-ae7d-f6b6733f3693") + ) + (bus_entry + (at 167.64 127) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "b4f85f7f-85be-415f-b8c7-df2b23fa16bc") + ) + (bus_entry + (at 91.44 106.68) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "b549dbe8-9816-48aa-b77f-cfa33e5b359b") + ) + (bus_entry + (at 167.64 93.98) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "bb9aa5d4-214d-4aea-bdd6-fe3a51a42ee6") + ) + (bus_entry + (at 91.44 116.84) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "c53d031a-186c-4a1a-af79-9a8fe95d4836") + ) + (bus_entry + (at 167.64 96.52) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "c606eda9-9d58-42e8-a7e0-fb5d8c0bc92b") + ) + (bus_entry + (at 91.44 99.06) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "d661adc5-689e-4726-b36d-d2c476c26fef") + ) + (bus_entry + (at 167.64 78.74) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "da061113-978e-4537-82a6-d9319510ab9c") + ) + (bus_entry + (at 167.64 76.2) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "dc9169ce-21a1-45f2-84ce-f68348b5376a") + ) + (bus_entry + (at 167.64 129.54) + (size -2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "e0ba23c3-0188-418b-acae-828d754d4500") + ) + (bus_entry + (at 167.64 106.68) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "f6a08e04-efdb-4fdf-a2ad-b49302e2d938") + ) + (bus_entry + (at 91.44 78.74) + (size 2.54 2.54) + (stroke + (width 0) + (type default) + ) + (uuid "fdbecb4f-d5f9-40f6-99c3-48d1ae25d276") + ) + (bus_entry + (at 167.64 80.01) + (size 2.54 -2.54) + (stroke + (width 0) + (type default) + ) + (uuid "fe5d2220-4f58-4dd5-a889-a4db2f14b386") + ) + (wire + (pts + (xy 142.24 81.28) (xy 144.78 81.28) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0284f0c8-2f56-44b8-a070-5188117c2367") + ) + (bus + (pts + (xy 167.64 93.98) (xy 167.64 96.52) + ) + (stroke + (width 0) + (type default) + ) + (uuid "02d6df04-9f13-4e54-b55c-48920085292b") + ) + (wire + (pts + (xy 93.98 111.76) (xy 111.76 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "07d5471e-406b-4c2a-a960-fc865dd79feb") + ) + (wire + (pts + (xy 93.98 78.74) (xy 111.76 78.74) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0850b749-3cf5-430c-b8c4-33e89aebedd3") + ) + (wire + (pts + (xy 142.24 121.92) (xy 165.1 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "09de821f-0c94-490c-8e8f-ac5313e96568") + ) + (wire + (pts + (xy 93.98 109.22) (xy 111.76 109.22) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0c0a3d4d-50e1-4710-8b01-200fd3cdc80e") + ) + (bus + (pts + (xy 167.64 74.93) (xy 167.64 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0d27d573-03fa-45c7-a5ac-6ddb1f4f10be") + ) + (bus + (pts + (xy 167.64 121.92) (xy 167.64 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0d39b264-29ed-42c9-910d-4e58026771b5") + ) + (wire + (pts + (xy 132.08 30.48) (xy 132.08 43.18) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0f13d275-933a-4957-9555-4058e73125f3") + ) + (bus + (pts + (xy 167.64 50.8) (xy 167.64 53.34) + ) + (stroke + (width 0) + (type default) + ) + (uuid "14c305b2-920c-4c76-be97-16023669b18c") + ) + (wire + (pts + (xy 129.54 41.91) (xy 127 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1a9cb057-eac8-4215-9d1f-da66f7f1c117") + ) + (bus + (pts + (xy 167.64 124.46) (xy 167.64 127) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1ab8205b-f285-4351-b3eb-dd00e7ccf336") + ) + (bus + (pts + (xy 91.44 119.38) (xy 91.44 149.86) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1ba57632-babb-4ad6-9c28-37e40188efba") + ) + (wire + (pts + (xy 142.24 60.96) (xy 165.1 60.96) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1eb7fd9b-90e2-4e1d-8e0c-581c0b1ccc15") + ) + (bus + (pts + (xy 91.44 116.84) (xy 91.44 119.38) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1fc20a2c-ab45-49fe-8962-f9f9019f17a9") + ) + (wire + (pts + (xy 129.54 134.62) (xy 129.54 135.89) + ) + (stroke + (width 0) + (type default) + ) + (uuid "219cf1ac-0965-4c20-a154-b80626031dfc") + ) + (wire + (pts + (xy 142.24 50.8) (xy 165.1 50.8) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2402b849-1816-4809-8901-d83a60555144") + ) + (wire + (pts + (xy 142.24 78.74) (xy 165.1 78.74) + ) + (stroke + (width 0) + (type default) + ) + (uuid "24e89528-9aa6-4180-8d4b-cb9c77dade79") + ) + (bus + (pts + (xy 167.64 80.01) (xy 167.64 81.28) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2514defa-2b0d-45da-8331-47b85ec1f90e") + ) + (wire + (pts + (xy 170.18 77.47) (xy 205.74 77.47) + ) + (stroke + (width 0) + (type default) + ) + (uuid "25d391a0-f60b-462e-a53c-7c8c44401b83") + ) + (wire + (pts + (xy 142.24 93.98) (xy 165.1 93.98) + ) + (stroke + (width 0) + (type default) + ) + (uuid "28af6b1b-d2de-4f2a-927d-d934a16d3a8a") + ) + (wire + (pts + (xy 93.98 104.14) (xy 111.76 104.14) + ) + (stroke + (width 0) + (type default) + ) + (uuid "29495ed0-acbc-4e25-93a7-b7489ea96c4c") + ) + (bus + (pts + (xy 167.64 149.86) (xy 91.44 149.86) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2aa75157-a9d2-458c-bc55-61bc66bea7fb") + ) + (bus + (pts + (xy 167.64 76.2) (xy 167.64 78.74) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2e3c996c-32f3-4fe6-a507-9b21b7be1523") + ) + (bus + (pts + (xy 167.64 88.9) (xy 167.64 93.98) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2fc7bf24-eb71-4547-9e0d-b23f35a0675a") + ) + (wire + (pts + (xy 96.52 55.88) (xy 96.52 53.34) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2feaa58f-a394-4ba3-b52d-5e23c9fdc9ca") + ) + (bus + (pts + (xy 71.12 71.12) (xy 91.44 71.12) + ) + (stroke + (width 0) + (type default) + ) + (uuid "31236567-c977-4788-b539-cd18dfec8346") + ) + (wire + (pts + (xy 88.9 39.37) (xy 88.9 30.48) + ) + (stroke + (width 0) + (type default) + ) + (uuid "316c6e49-5efe-4389-8b25-3233c621ea9d") + ) + (bus + (pts + (xy 167.64 66.04) (xy 167.64 68.58) + ) + (stroke + (width 0) + (type default) + ) + (uuid "400cd839-b3bd-4749-840f-fa0ca3a060e8") + ) + (bus + (pts + (xy 91.44 104.14) (xy 91.44 106.68) + ) + (stroke + (width 0) + (type default) + ) + (uuid "46e42c6c-e162-4bd5-9f9a-6a4fc249ee25") + ) + (wire + (pts + (xy 124.46 41.91) (xy 127 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4810b46a-c451-495e-8990-ac924faf9c3e") + ) + (wire + (pts + (xy 142.24 66.04) (xy 165.1 66.04) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4c436ffb-8656-48b7-91bd-a743aa61f84e") + ) + (wire + (pts + (xy 241.3 69.85) (xy 241.3 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4cf8d0a0-7fb8-41a0-806b-b8d78b8b123a") + ) + (wire + (pts + (xy 245.11 82.55) (xy 245.11 83.82) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5020270a-28a8-4ce6-bcea-08e6bc3c49a0") + ) + (wire + (pts + (xy 170.18 109.22) (xy 238.76 109.22) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5185b2d7-0bf8-475f-b2bd-319275504475") + ) + (bus + (pts + (xy 167.64 109.22) (xy 167.64 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "55af7578-99ee-4045-bdf0-31f62e8405c8") + ) + (wire + (pts + (xy 93.98 121.92) (xy 111.76 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "57949ba0-7745-40fc-81f6-86b17891b29e") + ) + (wire + (pts + (xy 170.18 106.68) (xy 236.22 106.68) + ) + (stroke + (width 0) + (type default) + ) + (uuid "58676f31-9433-449a-91bf-9f8c43d5a874") + ) + (bus + (pts + (xy 91.44 114.3) (xy 91.44 116.84) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5ab58b51-33c3-4d14-bf80-da94da459ec8") + ) + (wire + (pts + (xy 142.24 119.38) (xy 165.1 119.38) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5e915360-611b-41f2-b01d-852025ac5cc2") + ) + (wire + (pts + (xy 142.24 76.2) (xy 165.1 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "63b5fec3-cdd8-4949-b0d2-623c94d68fb6") + ) + (wire + (pts + (xy 170.18 85.09) (xy 205.74 85.09) + ) + (stroke + (width 0) + (type default) + ) + (uuid "650c1d06-6aa1-456f-89ea-9a1a0bdd2a86") + ) + (wire + (pts + (xy 93.98 101.6) (xy 111.76 101.6) + ) + (stroke + (width 0) + (type default) + ) + (uuid "685bfcb1-31d6-4945-b395-7834c664fe75") + ) + (wire + (pts + (xy 233.68 90.17) (xy 233.68 104.14) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6b589cb9-dbdd-472b-80ff-98779dd2146a") + ) + (wire + (pts + (xy 231.14 87.63) (xy 236.22 87.63) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6bb6b523-1237-4106-8854-370d545437a2") + ) + (wire + (pts + (xy 127 135.89) (xy 127 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6bfad476-a11c-4422-a7fa-c19576038c9d") + ) + (bus + (pts + (xy 167.64 129.54) (xy 167.64 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6fae5215-59ce-4e67-a259-7711c7c1abc4") + ) + (bus + (pts + (xy 167.64 60.96) (xy 167.64 63.5) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6fedfe13-2f01-45a5-ae16-eb2f0809c304") + ) + (bus + (pts + (xy 167.64 114.3) (xy 167.64 119.38) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7071cbb8-29dc-4af4-a97d-d76fe37aa60a") + ) + (wire + (pts + (xy 142.24 63.5) (xy 165.1 63.5) + ) + (stroke + (width 0) + (type default) + ) + (uuid "71bb09c1-6588-48bb-b886-e9385227f1c4") + ) + (wire + (pts + (xy 129.54 43.18) (xy 129.54 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "74aa8a23-99d5-4002-81d7-e8dbc295aab1") + ) + (wire + (pts + (xy 193.04 99.06) (xy 193.04 104.14) + ) + (stroke + (width 0) + (type default) + ) + (uuid "74d476ba-4d8b-405c-a721-9e5c8d06feb9") + ) + (wire + (pts + (xy 127 41.91) (xy 127 40.64) + ) + (stroke + (width 0) + (type default) + ) + (uuid "77e2cada-bc48-44aa-8e54-eb64c5b9e2c0") + ) + (wire + (pts + (xy 142.24 83.82) (xy 144.78 83.82) + ) + (stroke + (width 0) + (type default) + ) + (uuid "77f4ae2f-d84b-44b7-81da-43886db60072") + ) + (wire + (pts + (xy 170.18 69.85) (xy 205.74 69.85) + ) + (stroke + (width 0) + (type default) + ) + (uuid "79d66e0b-53fd-473a-82b5-ea2eee27c989") + ) + (wire + (pts + (xy 124.46 135.89) (xy 127 135.89) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7ee5e36f-0e24-4f43-930e-43cec0764d3b") + ) + (bus + (pts + (xy 167.64 73.66) (xy 167.64 74.93) + ) + (stroke + (width 0) + (type default) + ) + (uuid "82478e4a-0e16-4569-b09e-59c9ab0f1fd8") + ) + (wire + (pts + (xy 236.22 87.63) (xy 236.22 106.68) + ) + (stroke + (width 0) + (type default) + ) + (uuid "833573e0-4f94-4338-a900-6618d16f7fd0") + ) + (wire + (pts + (xy 142.24 53.34) (xy 144.78 53.34) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8672eee5-a9b3-40f2-8c47-5b53be6b6662") + ) + (wire + (pts + (xy 93.98 116.84) (xy 111.76 116.84) + ) + (stroke + (width 0) + (type default) + ) + (uuid "870cce7a-bf11-4ba1-b3be-c7a36686d421") + ) + (bus + (pts + (xy 91.44 111.76) (xy 91.44 114.3) + ) + (stroke + (width 0) + (type default) + ) + (uuid "874c2a2f-5593-4602-b9b1-b5a9a4382d29") + ) + (bus + (pts + (xy 167.64 68.58) (xy 167.64 71.12) + ) + (stroke + (width 0) + (type default) + ) + (uuid "88a3b663-6421-4182-92ce-c58266a771d9") + ) + (bus + (pts + (xy 167.64 111.76) (xy 167.64 114.3) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8b81b27b-20c3-489a-881c-5750c090b0ab") + ) + (wire + (pts + (xy 193.04 72.39) (xy 205.74 72.39) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8ea7e545-3527-457e-83c3-7ce251d7ac6f") + ) + (wire + (pts + (xy 93.98 114.3) (xy 111.76 114.3) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8f1875ad-e9d2-46cd-af7a-8e793125fa1c") + ) + (bus + (pts + (xy 167.64 63.5) (xy 167.64 66.04) + ) + (stroke + (width 0) + (type default) + ) + (uuid "908bfed1-d45a-47e3-b948-a833e0b08038") + ) + (bus + (pts + (xy 91.44 99.06) (xy 91.44 101.6) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9135c908-d25c-4828-8c27-abce385f1602") + ) + (bus + (pts + (xy 91.44 109.22) (xy 91.44 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "934fd7a1-fad7-42c1-83bf-bdfbd8095e08") + ) + (bus + (pts + (xy 91.44 73.66) (xy 91.44 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "940f68e1-27f2-4e1e-8984-1cc2a6b49bb6") + ) + (wire + (pts + (xy 142.24 127) (xy 165.1 127) + ) + (stroke + (width 0) + (type default) + ) + (uuid "942f5123-6ec0-4912-98b6-bc09acda4359") + ) + (wire + (pts + (xy 88.9 48.26) (xy 111.76 48.26) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9481faae-e122-45e7-8bad-3a67434acfd0") + ) + (wire + (pts + (xy 142.24 116.84) (xy 165.1 116.84) + ) + (stroke + (width 0) + (type default) + ) + (uuid "97593048-aa2b-4006-a5e4-7891e3f14233") + ) + (bus + (pts + (xy 91.44 101.6) (xy 91.44 104.14) + ) + (stroke + (width 0) + (type default) + ) + (uuid "97650644-b998-4675-a281-23c0648e5e74") + ) + (bus + (pts + (xy 167.64 96.52) (xy 167.64 99.06) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9a08f7ce-2ed9-49f5-84ec-b865b2f334f1") + ) + (wire + (pts + (xy 129.54 135.89) (xy 127 135.89) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9a71b1c9-bdf4-4fdc-8ace-daad751226ca") + ) + (bus + (pts + (xy 167.64 78.74) (xy 167.64 80.01) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9ce3cabe-2a32-43e5-9172-afe1b22b3ec2") + ) + (wire + (pts + (xy 93.98 106.68) (xy 111.76 106.68) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9e62eab9-ee9c-4b83-82bc-6a7a2be4da4c") + ) + (wire + (pts + (xy 142.24 58.42) (xy 165.1 58.42) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a05b2333-ea2a-4a44-a9a6-134f33fa0967") + ) + (wire + (pts + (xy 170.18 111.76) (xy 241.3 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a13e2a6e-5309-49db-bdbc-c2b2b71d3b88") + ) + (wire + (pts + (xy 231.14 82.55) (xy 245.11 82.55) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a4da0f52-3916-4907-924c-8c89847ca145") + ) + (bus + (pts + (xy 167.64 132.08) (xy 167.64 149.86) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a54f0410-5dc4-4db7-99f4-a3b20bc102de") + ) + (wire + (pts + (xy 231.14 72.39) (xy 238.76 72.39) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a5553124-6bcd-4c97-9b99-c815b35d0131") + ) + (wire + (pts + (xy 170.18 104.14) (xy 193.04 104.14) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a67a2313-a600-4871-bcd3-2ad5b825d932") + ) + (wire + (pts + (xy 142.24 48.26) (xy 165.1 48.26) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a7131f94-37c1-4a93-a6e0-1b208875d403") + ) + (wire + (pts + (xy 212.09 92.71) (xy 212.09 95.25) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a82498d1-ace9-47d5-a44c-efa89b17c1c3") + ) + (wire + (pts + (xy 170.18 82.55) (xy 205.74 82.55) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a8bcd55d-be51-410a-874f-d34a44ba404c") + ) + (wire + (pts + (xy 142.24 86.36) (xy 165.1 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ac458818-408a-4694-b868-a0254f0e3f61") + ) + (wire + (pts + (xy 142.24 73.66) (xy 165.1 73.66) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ac977a15-4b19-4957-8ff6-518c653a4117") + ) + (wire + (pts + (xy 142.24 96.52) (xy 165.1 96.52) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ad37c4c0-538f-4b18-8479-9968e6715af8") + ) + (wire + (pts + (xy 127 134.62) (xy 127 135.89) + ) + (stroke + (width 0) + (type default) + ) + (uuid "afb79622-7abb-43b2-9867-f8da57b202d9") + ) + (wire + (pts + (xy 193.04 104.14) (xy 233.68 104.14) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b04826eb-01c3-46b5-9a18-09a84b0fffb0") + ) + (wire + (pts + (xy 193.04 72.39) (xy 193.04 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b1598abc-76c8-4503-8908-2aab8cc1a6be") + ) + (wire + (pts + (xy 142.24 124.46) (xy 165.1 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b2e24e58-dace-4abc-81c2-aa72dc153d10") + ) + (wire + (pts + (xy 106.68 53.34) (xy 111.76 53.34) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b457ca6f-746f-4052-b505-c94c1f2827f1") + ) + (bus + (pts + (xy 167.64 106.68) (xy 167.64 109.22) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b5ad3699-3b03-4894-9360-251e478c65a0") + ) + (wire + (pts + (xy 96.52 53.34) (xy 99.06 53.34) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b9d1c308-1773-4dd6-ad73-7142aba3e6d8") + ) + (wire + (pts + (xy 93.98 119.38) (xy 111.76 119.38) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bed559d7-4400-49c6-9b23-f93051e9bc11") + ) + (bus + (pts + (xy 91.44 76.2) (xy 91.44 78.74) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bf732d28-3989-4665-927a-87dd6ffa7877") + ) + (bus + (pts + (xy 167.64 53.34) (xy 167.64 60.96) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bf9b1228-a57d-4f8c-be8e-9f1f08824685") + ) + (bus + (pts + (xy 167.64 99.06) (xy 167.64 106.68) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c09f406d-de72-461e-8880-0dc49731b08f") + ) + (wire + (pts + (xy 93.98 81.28) (xy 111.76 81.28) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c1fc7c4a-210a-4e89-9eba-a95e4ab6f64f") + ) + (wire + (pts + (xy 124.46 43.18) (xy 124.46 41.91) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c3e7fbe9-fec4-4f05-84b1-a5816d819fe2") + ) + (wire + (pts + (xy 142.24 55.88) (xy 144.78 55.88) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c4964d54-d19e-482f-9b93-a9e453127d3b") + ) + (wire + (pts + (xy 231.14 69.85) (xy 241.3 69.85) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c814b47d-eea3-4928-9f8c-283446f20b6d") + ) + (bus + (pts + (xy 167.64 71.12) (xy 167.64 72.39) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cb8111b0-17f9-4487-86e8-36be6de3854c") + ) + (bus + (pts + (xy 167.64 85.09) (xy 167.64 87.63) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cc5b883f-53c6-4522-a038-7e6c06e542da") + ) + (bus + (pts + (xy 167.64 127) (xy 167.64 129.54) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cc85cf5a-5fd6-4fb3-b44f-be772b28b5c4") + ) + (wire + (pts + (xy 170.18 72.39) (xy 193.04 72.39) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ce2808c3-5dae-4e78-b436-661eeb787808") + ) + (wire + (pts + (xy 142.24 68.58) (xy 165.1 68.58) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d0b1ab05-c4a7-4b17-af62-f5a3e211d387") + ) + (bus + (pts + (xy 167.64 119.38) (xy 167.64 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d17bc5ed-3032-4b92-bc58-081c53b6b77c") + ) + (bus + (pts + (xy 167.64 81.28) (xy 167.64 85.09) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d31b4e9f-8e7c-4392-a118-7a128cca56d8") + ) + (bus + (pts + (xy 167.64 87.63) (xy 167.64 88.9) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d487ed04-286b-4d4f-9948-4a79bdc0d161") + ) + (wire + (pts + (xy 238.76 72.39) (xy 238.76 109.22) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d7bd6f03-0ca2-47a5-8987-8c1915cb6f11") + ) + (bus + (pts + (xy 91.44 106.68) (xy 91.44 109.22) + ) + (stroke + (width 0) + (type default) + ) + (uuid "da481b02-9c1e-4d5e-a12c-5a4c98f5093c") + ) + (wire + (pts + (xy 88.9 30.48) (xy 132.08 30.48) + ) + (stroke + (width 0) + (type default) + ) + (uuid "dc203af6-587a-4fd0-9548-ab53b6db7894") + ) + (wire + (pts + (xy 231.14 90.17) (xy 233.68 90.17) + ) + (stroke + (width 0) + (type default) + ) + (uuid "dd211a6c-8ed3-4e60-9f36-5e87511c2d4d") + ) + (wire + (pts + (xy 127 41.91) (xy 127 43.18) + ) + (stroke + (width 0) + (type default) + ) + (uuid "df739a90-dfe3-4faa-aa89-69e0e82b4fef") + ) + (wire + (pts + (xy 93.98 76.2) (xy 111.76 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "df76d74f-835a-4606-a8aa-1c1162501abd") + ) + (wire + (pts + (xy 142.24 71.12) (xy 165.1 71.12) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e1847625-3bdc-4379-940d-783f5e1f5600") + ) + (wire + (pts + (xy 142.24 91.44) (xy 165.1 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e3a948dd-f12f-402e-87a5-e96c138df173") + ) + (wire + (pts + (xy 88.9 46.99) (xy 88.9 48.26) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e4ff0f27-1896-4587-adb3-ecf61942f4de") + ) + (bus + (pts + (xy 167.64 72.39) (xy 167.64 73.66) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e8cd8c5c-46cb-45e2-b3fc-d1105bed46d6") + ) + (wire + (pts + (xy 142.24 129.54) (xy 165.1 129.54) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e9d3a501-f327-4d54-b108-e26b5c1b71e8") + ) + (bus + (pts + (xy 91.44 71.12) (xy 91.44 73.66) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ed736f9d-87e0-46b7-a914-3a4939318334") + ) + (wire + (pts + (xy 124.46 134.62) (xy 124.46 135.89) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f2c37f51-e927-40e0-9948-18c9a2be6bbb") + ) + (bus + (pts + (xy 91.44 78.74) (xy 91.44 99.06) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f7b462e8-9f4f-4c8a-b5f3-94c788f33032") + ) + (wire + (pts + (xy 93.98 73.66) (xy 111.76 73.66) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f973db28-904f-4f40-86d2-a96f3bb7f884") + ) + (text "13" + (exclude_from_sim no) + (at 212.09 95.25 90) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "137d5aef-774a-4acd-ae49-a66a18ebf0bb") + ) + (text "Optional (MOD_HALL):\nSolder 4 Cables:\n1. JP2 Pin10 to U2 Pin6 (to get LIFTX on PF6)\n2. JP2 Pin12 to U2 Pin7 (to get LBUMP on PA12)\n3. JP2 Pin15 to U2 Pin8 (to get RBUMP on PA11)\n4. JP2 Pin16 to U2 Pin17 (to get LIFT on PA8)" + (exclude_from_sim no) + (at 184.404 132.842 0) + (effects + (font + (size 1.27 1.27) + (italic yes) + (color 0 194 0 1) + ) + (justify left bottom) + ) + (uuid "ecbe08a3-8d8a-4096-86a9-279488dc4fda") + ) + (label "U1.PA8" + (at 171.45 104.14 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "07e37ad4-f0ea-4c7b-b696-920ae26effcf") + ) + (label "U1.PB0" + (at 156.21 91.44 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "0a550974-fc18-482b-a6a9-c0598df8134c") + ) + (label "U1.PA12" + (at 171.45 109.22 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "208462da-31e4-43f4-9f21-7b5162d5b2c1") + ) + (label "U1.PA5" + (at 156.21 60.96 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "2319603a-175f-47ac-a42c-febded5bbcff") + ) + (label "U1.PA7" + (at 156.21 66.04 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "28276197-8a38-43f3-b645-823e88f90364") + ) + (label "U1.PC9" + (at 93.98 114.3 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "2a9e786d-4f85-4236-b595-4c997a182f8a") + ) + (label "U1.PA10" + (at 171.45 85.09 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "487880a2-1cf9-4dd8-b3cf-5bb4f5fe1d5b") + ) + (label "U1.PC7" + (at 93.98 109.22 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "4a40c250-df5e-4102-bbf6-9b5b26f54a52") + ) + (label "U1.PA0" + (at 156.21 48.26 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "4f5b5db2-917d-4323-9ac6-bff208c2240f") + ) + (label "U1.PC10" + (at 93.98 116.84 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "5163f90b-32bc-4e25-909b-7205ee180c74") + ) + (label "U1.PC8" + (at 171.45 72.39 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "52d97a17-6c9e-43d0-8625-bac711d97dff") + ) + (label "U2{PA[0..15] PB[0..15] PC[0..15] PD2 PF[0..7]}" + (at 151.13 149.86 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "5e04af1e-6c4d-45d5-8eac-95550bff30fd") + ) + (label "U1.PB15" + (at 156.21 129.54 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "5e944b74-429c-4251-adf7-bbc2fba49982") + ) + (label "U1.PA9" + (at 156.21 71.12 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "5ed9c00f-d580-4a61-9b3c-8704f9167cd1") + ) + (label "U1.PB11" + (at 156.21 119.38 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "60e57801-a193-43b3-b632-1ace8131b8d2") + ) + (label "U1.PA6" + (at 156.21 63.5 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "673a4409-f5cc-4a7c-b192-c318dbd02a03") + ) + (label "U1.PF4" + (at 93.98 73.66 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "675d83e1-b574-4706-a7be-44923bccc74b") + ) + (label "U1.PC4" + (at 93.98 101.6 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "6b912a1b-8f83-429a-a2fc-7c5588164f34") + ) + (label "U1.PA9" + (at 171.45 82.55 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "70eceae9-4fcb-49ab-9df1-c66f905516d1") + ) + (label "U1.PA15" + (at 156.21 86.36 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "7649438e-ebbf-4361-bd8a-b3c893aaf16a") + ) + (label "U1.PB1" + (at 156.21 93.98 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "7c20e404-3d78-498f-af07-45923d759e1c") + ) + (label "U1.PC11" + (at 93.98 119.38 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "821bded8-cace-4bde-98f4-0b5b6445a753") + ) + (label "U1.PF7" + (at 93.98 81.28 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "85d25f0d-370f-4f2e-a025-ac9689798284") + ) + (label "U1.PA4" + (at 156.21 58.42 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "a1c64cdb-65b7-4abc-9dc4-5bb395443d4f") + ) + (label "U1.PF5" + (at 93.98 76.2 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "a8eea686-caeb-41b3-9800-3ba3aad52e57") + ) + (label "U1.PF7" + (at 171.45 69.85 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "adf5db56-8acd-4f30-bc62-72b476b1bbc9") + ) + (label "U1.PC6" + (at 93.98 106.68 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "c110c7e0-1842-41dc-ba23-02e1d28bd7fe") + ) + (label "U1.PA8" + (at 156.21 68.58 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "c8354dd8-3046-46fa-8379-6f35d1ef6a7b") + ) + (label "U1.PA11" + (at 156.21 76.2 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "d2b1a52b-9320-4b45-9253-f10385599f12") + ) + (label "U1.PF6" + (at 93.98 78.74 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "d59d4d38-6a0f-4565-a1c2-1a8466ec458f") + ) + (label "U1.PA11" + (at 171.45 111.76 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "dd8b8520-e65f-47b3-a4ff-a71fcdad0be3") + ) + (label "U1.PC5" + (at 93.98 104.14 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "de34b546-5f5e-40cb-9042-d9d7e89862c3") + ) + (label "U1.PF6" + (at 171.45 106.68 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "e211b7ac-eb61-44d2-8411-c7ab6d6ef13f") + ) + (label "U1.PB14" + (at 156.21 127 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "e9cdc5a6-479d-40be-bc33-a63381688384") + ) + (label "U1.PB12" + (at 156.21 121.92 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "eaa76bd4-c1ae-4b5b-bac6-fe0cf76ddcdf") + ) + (label "U1.PA12" + (at 156.21 78.74 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "f2247e91-b755-4f84-87cc-60d3031d3080") + ) + (label "U1.PA1" + (at 156.21 50.8 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "f4fbf95a-8e9b-4862-95f3-66a8957c5da3") + ) + (label "U1.PA10" + (at 156.21 73.66 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "f712c4a5-76e4-44ce-b21e-fa901467519a") + ) + (label "U1.PB2" + (at 156.21 96.52 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "f7dd381e-54d3-435c-a2b3-50206b34a353") + ) + (label "U1.PB13" + (at 156.21 124.46 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "f91d6e76-4083-49b8-a67d-93155c76dbd9") + ) + (label "U1.PC9" + (at 171.45 77.47 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "f93641f3-30d5-46bf-95f7-ffbe47211263") + ) + (label "U1.PC8" + (at 93.98 111.76 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "fb7a2e9d-ec3e-489f-8747-835c08dcb088") + ) + (label "U1.PC12" + (at 93.98 121.92 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "fbb70177-81a2-489e-a985-6054b4a7c010") + ) + (label "U1.PB10" + (at 156.21 116.84 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "fe4c0acb-39c3-4450-9ca9-040ff46055e6") + ) + (hierarchical_label "SWCLK" + (shape input) + (at 144.78 83.82 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "296b4749-1b35-48db-9970-67dbe47dcee8") + ) + (hierarchical_label "USART1_TX (PA2)" + (shape output) + (at 144.78 53.34 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "33450bfd-5387-4145-8958-b23446b2941e") + ) + (hierarchical_label "U2{PA[0..15] PB[0..15] PC[0..15] PD2 PF[0..7]}" + (shape input) + (at 71.12 71.12 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "40a877c7-c390-42cb-809d-da869815ea40") + ) + (hierarchical_label "SWDIO" + (shape input) + (at 144.78 81.28 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "a51cf1c9-d9e9-4751-b872-a7dff08b5886") + ) + (hierarchical_label "USART1_RX (PA3)" + (shape input) + (at 144.78 55.88 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "fb309908-804d-43c5-bb9b-b1e46de69482") + ) + (symbol + (lib_id "power:GND") + (at 88.9 55.88 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "1a8519f9-bdc6-4f4d-94b7-11b0353c6751") + (property "Reference" "#PWR01" + (at 88.9 62.23 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 89.027 60.2742 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 88.9 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 88.9 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 88.9 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "085da045-d763-4f36-9ac9-e9c04a148083") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" + (reference "#PWR01") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 88.9 43.18 180) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp yes) + (uuid "51039b2c-6297-4d56-93f3-bf27fd5b1af4") + (property "Reference" "R34" + (at 86.614 43.18 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "NP" + (at 91.44 43.18 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 90.678 43.18 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 88.9 43.18 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 88.9 43.18 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "2680d24a-8fda-4781-b3e5-f5ad2e1f4e14") + ) + (pin "2" + (uuid "979e7c4d-aae8-4e77-a369-75014392ec43") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" + (reference "R34") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 245.11 83.82 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "54f48602-41f0-4111-a80f-c2c7abc69159") + (property "Reference" "#PWR02" + (at 245.11 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 245.237 88.2142 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 245.11 83.82 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 245.11 83.82 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 245.11 83.82 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "eabb18c9-2f87-4f5c-97b5-8b2d718a1b9e") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" + (reference "#PWR02") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 88.9 52.07 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "6acb187f-cc1d-40a5-a493-46f1f91765d3") + (property "Reference" "C1" + (at 92.71 50.7999 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C" + (at 92.71 53.3399 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 89.8652 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 88.9 52.07 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 88.9 52.07 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "784a22a3-3010-448f-bb70-f09e7ede3f59") + ) + (pin "2" + (uuid "2368aca5-e6cf-4445-8011-1f22de48d45b") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" + (reference "C1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "RF_Module:ESP-WROOM-02") + (at 218.44 80.01 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "6b3e7a3a-fdc7-4948-89a1-08254e691845") + (property "Reference" "U2" + (at 220.4594 62.23 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "ESP-WROOM-02" + (at 220.4594 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "RF_Module:ESP-WROOM-02" + (at 233.68 93.98 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://www.espressif.com/sites/default/files/documentation/0c-esp-wroom-02_datasheet_en.pdf" + (at 219.71 41.91 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 218.44 80.01 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "8c3f035d-cd35-404f-ba6f-5fa7b7ffc893") + ) + (pin "10" + (uuid "1b4594f9-a600-4516-ba5d-87805866d304") + ) + (pin "11" + (uuid "8c114a17-7716-4da1-9bb2-0103d8244a84") + ) + (pin "12" + (uuid "124ef950-2d1e-46d1-856f-6f1863865bd3") + ) + (pin "13" + (uuid "bc700d08-299c-4cf4-b0d2-88fc664cd15f") + ) + (pin "14" + (uuid "7e0f816b-c2dc-4f96-bddf-0f8a51f4fb2c") + ) + (pin "15" + (uuid "bdf7b329-2a5b-4b12-8126-d01cace599d1") + ) + (pin "16" + (uuid "919713d0-2bb4-442a-932b-f461d288c164") + ) + (pin "17" + (uuid "c9402ef1-6185-4f40-99d6-5544fa4b212c") + ) + (pin "18" + (uuid "7618ac38-4a84-4642-8a45-2aa9b691f46c") + ) + (pin "19" + (uuid "07f19de4-ae18-493f-8e0a-3400caf443eb") + ) + (pin "2" + (uuid "b0d96d13-06eb-44d9-b5ab-8108d78f58fc") + ) + (pin "3" + (uuid "cccd1f35-d301-4a80-84f9-ea5c5fcd600f") + ) + (pin "4" + (uuid "afe2d96d-7710-4604-8fac-6132d6009b87") + ) + (pin "5" + (uuid "fc9817ae-d211-47a2-a7ce-fbabba7698d1") + ) + (pin "6" + (uuid "89de58d2-888a-4a0e-8602-0f7dd1fcf007") + ) + (pin "7" + (uuid "d57bf0e0-0279-4f9e-84b2-2b9f5425e0ce") + ) + (pin "8" + (uuid "dd830092-49e4-4348-ba7a-7ce22e6623cf") + ) + (pin "9" + (uuid "6faad920-261a-4e12-b3a6-daac2245ed4c") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" + (reference "U2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 218.44 95.25 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "715bbba2-2abe-43a2-95ee-9fd9e8fb7d84") + (property "Reference" "#PWR?" + (at 218.44 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 218.567 99.6442 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 218.44 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 218.44 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 218.44 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "df24b94a-596c-42b7-a295-b624d173df03") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 212.09 95.25 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "7ae62edc-f214-4a72-8ffe-1a506ebb12de") + (property "Reference" "#PWR?" + (at 212.09 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 212.217 99.6442 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 212.09 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 212.09 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 212.09 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "fc53ff6f-e09e-485d-a009-122bb1b1d342") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 193.04 95.25 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp yes) + (fields_autoplaced yes) + (uuid "8af82709-f7f6-4918-8850-8936ec17331b") + (property "Reference" "R37" + (at 195.58 93.9799 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "NP" + (at 195.58 96.5199 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 191.262 95.25 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 193.04 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 193.04 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "b723ac89-38f1-4cd6-8548-96d2f1e20f90") + ) + (pin "2" + (uuid "7ddc42cf-e2e9-40ad-9e03-359529470bdf") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" + (reference "R37") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+3.3V") + (at 127 40.64 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "8c11f17d-e469-4ae9-b440-fff80aeae4c4") + (property "Reference" "#PWR?" + (at 127 44.45 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+3.3V" + (at 127.381 36.2458 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 127 40.64 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 127 40.64 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 127 40.64 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "36162f7d-4d03-463f-bd67-c5e95d48f1e3") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 127 137.16 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "98c99148-c5f8-40ae-ac29-eef15fe2a284") + (property "Reference" "#PWR?" + (at 127 143.51 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 127.127 141.5542 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 127 137.16 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 127 137.16 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 127 137.16 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "6b9a08e9-b0be-4ebd-ad91-2b9ade12ddf8") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "MCU_ST_STM32F0:STM32F030R8Tx") + (at 127 88.9 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "ad5cece6-4980-4282-85ac-ae6465044282") + (property "Reference" "U1" + (at 125.73 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "STM32F030R8Tx" + (at 116.84 58.42 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Package_QFP:LQFP-64_10x10mm_P0.5mm" + (at 114.3 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + (property "Datasheet" "http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00088500.pdf" + (at 127 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 127 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "d4fe0fd2-65d2-4499-98e4-247f59b11f21") + ) + (pin "10" + (uuid "555c3908-7fd6-4612-8c51-cd9ba233c4e1") + ) + (pin "11" + (uuid "c7591610-13cc-4c95-97b6-589c346cca52") + ) + (pin "12" + (uuid "5494a884-ba62-4c88-8ec9-a31a89d2269f") + ) + (pin "13" + (uuid "fa477124-866f-4c58-8da1-c5b702a75e2e") + ) + (pin "14" + (uuid "ee4eceda-5a8d-4ad6-849e-4eeb624494b9") + ) + (pin "15" + (uuid "d1519545-fff2-4f1e-a41b-1187ffec91bc") + ) + (pin "16" + (uuid "0044190a-9fce-461b-a0af-51454b7b092f") + ) + (pin "17" + (uuid "9458b15c-a489-4d67-aa7d-f50fc4fcbda5") + ) + (pin "18" + (uuid "f985cf50-11dc-4514-84d1-6fb1f5d4b50d") + ) + (pin "19" + (uuid "0fc4142d-0d57-426b-994e-9953f20ba6b8") + ) + (pin "2" + (uuid "8f5ebae1-4a0d-43c4-ab11-81ebd0683ccb") + ) + (pin "20" + (uuid "7d8ceb3f-dd91-4e74-af19-39e545594996") + ) + (pin "21" + (uuid "3aac8c17-7ce7-4899-b579-b1c635bc4778") + ) + (pin "22" + (uuid "62041613-2e65-4a8d-83f6-70e57c3a17a1") + ) + (pin "23" + (uuid "fbcf2f0b-8cb3-4139-9a84-a09e92d7f61d") + ) + (pin "24" + (uuid "7de5e8c4-a03e-4fde-82ef-659f02b96b31") + ) + (pin "25" + (uuid "f9cbf8bd-a7bd-481b-9740-7482cc057fd0") + ) + (pin "26" + (uuid "5c07567c-63e1-4f6e-bcfd-cfa6c263eb06") + ) + (pin "27" + (uuid "a12a10d5-dc7e-434a-9e14-4894b976c9b8") + ) + (pin "28" + (uuid "d4ebe8be-1e41-4740-bf94-7ed4b365806a") + ) + (pin "29" + (uuid "9f0bb10f-d896-4207-9d90-cf9f75a51af3") + ) + (pin "3" + (uuid "aacd081e-dd62-4a5f-93ed-925b70654888") + ) + (pin "30" + (uuid "1bd4bdad-4057-4529-b517-3351644d4067") + ) + (pin "31" + (uuid "c336cf35-faaa-4d3f-90f4-4383346609c3") + ) + (pin "32" + (uuid "928b52cf-5b0d-4510-be32-e21d602d1c30") + ) + (pin "33" + (uuid "826e040d-48b2-44b0-ae0f-b753613d0fb9") + ) + (pin "34" + (uuid "22ee567b-972d-4e18-807f-e95f4f4cbe6a") + ) + (pin "35" + (uuid "d3126df7-161f-4936-892d-a3f376fe3084") + ) + (pin "36" + (uuid "adecc0a9-5903-4a40-9691-6df5964e55e7") + ) + (pin "37" + (uuid "b6ee4c88-5dce-4580-b07f-83f52ba582c1") + ) + (pin "38" + (uuid "89ce91e7-98f6-4e93-96a2-973516daa971") + ) + (pin "39" + (uuid "b89bf876-a1aa-447c-81bf-015cd0c2e05b") + ) + (pin "4" + (uuid "8816e129-74e3-4ead-8a4c-77efb5c2d320") + ) + (pin "40" + (uuid "15cb4a5b-b07e-40ce-a2b8-9ccc56bf5a32") + ) + (pin "41" + (uuid "8970a07a-494c-4e3b-86d1-5e891c66b32b") + ) + (pin "42" + (uuid "f8c0ffc6-d354-41e2-8100-4ce62f8ecfd4") + ) + (pin "43" + (uuid "ecb7da4c-4d44-4c14-b53b-4a3d4848e579") + ) + (pin "44" + (uuid "572d8273-608e-490c-970a-35d067003c98") + ) + (pin "45" + (uuid "907273c4-cf5c-416e-abbf-0041c979f747") + ) + (pin "46" + (uuid "8a5510e2-f84b-4896-8f85-321ff6e4bca4") + ) + (pin "47" + (uuid "5073f428-1e2b-4088-8d55-ad1f1df5f7a1") + ) + (pin "48" + (uuid "77a76479-c715-402e-924c-8e86fe809954") + ) + (pin "49" + (uuid "4603a12e-c8b7-4f0f-81f1-709f9991587b") + ) + (pin "5" + (uuid "7aa7ec92-82cb-4f1d-a097-9a202544cf5b") + ) + (pin "50" + (uuid "d56753f8-4539-48a6-be9a-b20d5ea7443b") + ) + (pin "51" + (uuid "8a163449-f822-4abf-8ca0-0fc82b36a61f") + ) + (pin "52" + (uuid "0b856b0c-bcf6-490f-92d0-8f15eb197b02") + ) + (pin "53" + (uuid "f6d030b3-9484-4ddb-bd73-d50bf5fd27e0") + ) + (pin "54" + (uuid "589b6bd2-9ebe-4d08-825b-a48ce518eb21") + ) + (pin "55" + (uuid "4d32a287-9ecb-42c4-b411-60125de14d92") + ) + (pin "56" + (uuid "2b2ff79b-57e3-49ea-a8e9-87469a819790") + ) + (pin "57" + (uuid "6c18a852-37b7-448c-ab92-bffde618ade9") + ) + (pin "58" + (uuid "28bc2ce5-b2b7-4d74-8fc8-585511b47021") + ) + (pin "59" + (uuid "e13fe194-feb8-4272-8702-b285e4e07bb4") + ) + (pin "6" + (uuid "86f4d71b-5c4f-40a9-8f79-ba22097399ff") + ) + (pin "60" + (uuid "2c766b47-2939-4f77-af47-6c79e1b74c8e") + ) + (pin "61" + (uuid "48d4450e-3240-42b7-82e2-6bde14859879") + ) + (pin "62" + (uuid "7524cd2b-a953-4a0f-9c37-00c0f898b393") + ) + (pin "63" + (uuid "9deca924-2e45-42c6-8ab2-17d72a8599db") + ) + (pin "64" + (uuid "1ecfda50-bc92-4500-9193-7c744d2e3c5a") + ) + (pin "7" + (uuid "7cb77ba6-b4fd-43db-935d-45806165c198") + ) + (pin "8" + (uuid "60ef7ef0-9fb8-456e-a53d-8b01c85a555b") + ) + (pin "9" + (uuid "76b5a2d6-b097-4a33-93a3-28c8ec2a97d0") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" + (reference "U1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 102.87 53.34 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "be7c34db-be63-428a-b20a-6894e9676b70") + (property "Reference" "R33" + (at 102.87 53.34 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "4k7" + (at 105.41 55.88 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 102.87 55.118 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 102.87 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 102.87 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "fd4c6a86-5fe2-46ef-8a18-3f42ad6d2b89") + ) + (pin "2" + (uuid "c2a02122-2d24-42a1-abf6-268e9731af14") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" + (reference "R33") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 96.52 55.88 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "e17a0862-a829-4a6f-b29e-07b141ebcec2") + (property "Reference" "#PWR?" + (at 96.52 62.23 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 96.647 60.2742 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 96.52 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 96.52 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 96.52 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "b9431072-cb49-464a-855e-a98088e3f7eb") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+3.3V") + (at 218.44 64.77 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "fd300d7d-0f1e-403e-bc94-f9c8cf4fdd50") + (property "Reference" "#PWR?" + (at 218.44 68.58 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+3.3V" + (at 218.821 60.3758 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 218.44 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 218.44 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 218.44 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "80e74577-b0a8-4fa2-8d48-a7be5fb2b52b") + ) + (instances + (project "SA,SC-Type 10Button-12LED Board" + (path "/105ce5f3-0f5d-4501-a42b-81308b09d139/6f8d9ecb-cf0e-4216-a06b-57d9741d7238" + (reference "#PWR?") + (unit 1) + ) + ) + ) + ) ) diff --git a/README.md b/README.md index 98cd622..98eadc6 100644 --- a/README.md +++ b/README.md @@ -10,17 +10,17 @@ This repository contains the firmware files required to use the mowers CoverUI ( 1. Custom DIY CoverUI-PCB which replaces the stock (top-cover) PCB.
Please check the [Cover UI board assembly instructions]() for more detailed infos.
- Also available in [Vermut's Shop](https://shop.devops.care/openmower/29-openmower-012x-assembled-board.html) (as part of his 'Upgrade Kit') + Also available in [Vermut's Shop](https://shop.devops.care/10-openmower) (as part of his 'Upgrade Kit') 1. Stock YardForce CoverUI for the following models: 1. Classic 500 (STM32 & GD32 MCU) 2. Classic 500B (STM32 & GD32 MCU) - 3. SA/SC/NX-Type (10 Buttons, 12 LEDs), PCB labeled with RM-ECOW-V1.0.0 (STM32 MCU tested) - 4. SA/SC/NX Type (9 Buttons, 11 LEDs), PCB labeled with RM-ECOW-V1.1.0 (GD32 MCU tested) - 5. NX100i (18 Buttons, 3 LEDs, 256*64 Pixel LC-Display), PCB labeled with RM-EC3-V1.1 (STM32 MCU tested) - 6. SAxPro (Rev6) 6 Buttons 240*128 Pixel LC-Display (STM32 MCU tested) + 3. SA/SC/NX-Type (10 Buttons, 12 LEDs), PCB labeled with RM-ECOW-V1.0.0 (STM32 MCU) + 4. SA/SC/NX-Type (9 Buttons, 11 LEDs), PCB labeled with RM-ECOW-V1.1.0 (STM32 & GD32 MCU) + 5. NX100i (18 Buttons, 3 LEDs, 256*64 Pixel LC-Display), PCB labeled with RM-EC3-V1.1 (STM32 MCU) + 6. SAxPro (Rev6) 6 Buttons 240*128 Pixel LC-Display (STM32 MCU) For this, you need to solder some cables and flash a modified firmware to it.
- Please check the detailed [Stock CoverUI Readme](Firmware/CoverUI/YardForce/README.md) (as you've also the option to use your stock hall, Stop and rain cables). + Please check the detailed [Stock CoverUI Readme](Firmware/CoverUI/YardForce/README.md) (as you've also the option to use your stock 'hall', 'stop' and 'rain' cables). ## License

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ℜ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 S_UozTB;!02iYTC@fB)INST?c% diff --git a/Firmware/CoverUI/YardForce/images/IMG_Picoprobe.jpg b/Firmware/CoverUI/YardForce/images/IMG_Picoprobe.jpg deleted file mode 100644 index daea62dc846f0492f5bcb9eab997381ecaa4ec52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226075 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