diff --git a/firmware/config/engines/dodge_neon.cpp b/firmware/config/engines/dodge_neon.cpp index 86837c542a..70d8b70369 100644 --- a/firmware/config/engines/dodge_neon.cpp +++ b/firmware/config/engines/dodge_neon.cpp @@ -20,7 +20,7 @@ #include "engine_configuration.h" #include "thermistors.h" #include "engine_math.h" -#include "le_functions.h" +#include "fsio_impl.h" #if EFI_PROD_CODE #include "HIP9011.h" #endif @@ -357,7 +357,8 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat /** * set_fsio_setting 0 0.11 */ -// todo setFsio(engineConfiguration, 0, GPIOE_5, ""); + engineConfiguration->bc.fsio_setting[0] = 0.2; + setFsioExt(engineConfiguration, 0, GPIOE_5, "0 fsio_setting", 400); // engineConfiguration->isCanEnabled = true; boardConfiguration->canTxPin = GPIOB_6; diff --git a/firmware/config/engines/mazda_miata.cpp b/firmware/config/engines/mazda_miata.cpp index dd8a69d5d8..43b2790978 100644 --- a/firmware/config/engines/mazda_miata.cpp +++ b/firmware/config/engines/mazda_miata.cpp @@ -12,13 +12,11 @@ * @author Andrey Belomutskiy, (c) 2012-2014 */ +#include "fsio_impl.h" #include "mazda_miata.h" #include "engine_math.h" #include "advance_map.h" #include "allsensors.h" -#include "le_functions.h" - -// setFrankenso_01_LCD #include "honda_accord.h" static const fuel_table_t miata_maf_fuel_table = { {/*0 engineLoad=1.2*//*0 800.0*/1.53, /*1 1213.0*/0.92, /*2 1626.0*/ diff --git a/firmware/config/engines/mitsubishi.cpp b/firmware/config/engines/mitsubishi.cpp index e2c15a421d..3a279c2837 100644 --- a/firmware/config/engines/mitsubishi.cpp +++ b/firmware/config/engines/mitsubishi.cpp @@ -9,9 +9,9 @@ * @author Andrey Belomutskiy, (c) 2012-2014 */ +#include "fsio_impl.h" #include "mitsubishi.h" #include "allsensors.h" -#include "le_functions.h" void setMitsubishiConfiguration(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration) { engineConfiguration->engineType = MITSU_4G93; diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index c666e15162..f3aea4b747 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -22,17 +22,12 @@ #include "main.h" #include "engine_configuration.h" +#include "fsio_impl.h" #include "allsensors.h" #include "interpolation.h" #include "trigger_decoder.h" #include "engine_math.h" #include "speed_density.h" -#include "logic_expression.h" - -#if EFI_TUNER_STUDIO -#include "tunerstudio.h" -#endif - #include "audi_aan.h" #include "bmw_e34.h" #include "dodge_neon.h" @@ -54,6 +49,10 @@ #include "subaru.h" #include "test_engine.h" +#if EFI_TUNER_STUDIO +#include "tunerstudio.h" +#endif + //#define TS_DEFAULT_SPEED 115200 #define TS_DEFAULT_SPEED 38400 @@ -683,7 +682,7 @@ void applyNonPersistentConfiguration(Logging * logger, Engine *engine) { return; } engine->engineCycleEventCount = engine->triggerShape.getLength(); - parseUserFsio(PASS_ENGINE_PARAMETER_F); + applyFsioConfiguration(PASS_ENGINE_PARAMETER_F); } #if EFI_ENGINE_CONTROL || defined(__DOXYGEN__) diff --git a/firmware/controllers/core/core.mk b/firmware/controllers/core/core.mk index 3186186cb5..0341a42829 100644 --- a/firmware/controllers/core/core.mk +++ b/firmware/controllers/core/core.mk @@ -3,6 +3,6 @@ CONTROLLERS_CORE_SRC = $(PROJECT_DIR)/controllers/core/avg_values.c CONTROLLERS_CORE_SRC_CPP = $(PROJECT_DIR)/controllers/core/EfiWave.cpp \ $(PROJECT_DIR)/controllers/core/table_helper.cpp \ - $(PROJECT_DIR)/controllers/core/logic_expression.cpp \ + $(PROJECT_DIR)/controllers/core/fsio_core.cpp \ $(PROJECT_DIR)/controllers/core/interpolation.cpp \ - $(PROJECT_DIR)/controllers/core/le_functions.cpp + $(PROJECT_DIR)/controllers/core/fsio_impl.cpp diff --git a/firmware/controllers/core/fl_stack.h b/firmware/controllers/core/fl_stack.h index 7331b3a557..7a10c68484 100644 --- a/firmware/controllers/core/fl_stack.h +++ b/firmware/controllers/core/fl_stack.h @@ -9,6 +9,8 @@ #ifndef FL_STACK_H_ #define FL_STACK_H_ +#include "error_handling.h" + template class FLStack { public: diff --git a/firmware/controllers/core/logic_expression.cpp b/firmware/controllers/core/fsio_core.cpp similarity index 81% rename from firmware/controllers/core/logic_expression.cpp rename to firmware/controllers/core/fsio_core.cpp index 27c31781d8..997960bce6 100644 --- a/firmware/controllers/core/logic_expression.cpp +++ b/firmware/controllers/core/fsio_core.cpp @@ -1,6 +1,6 @@ /** - * @file logic_expression.cpp - * @brief Logical expressions handling logic + * @file fsio_core.cpp + * @brief core FSUI handling logic * * Here we parse and evaluate logical expressions in * http://en.wikipedia.org/wiki/Reverse_Polish_notation @@ -17,8 +17,8 @@ #if EFI_FSIO || defined(__DOXYGEN__) -#include "logic_expression.h" -#include "le_functions.h" +#include "fsio_core.h" +#include "fsio_impl.h" LENameOrdinalPair * LE_FIRST = NULL; @@ -47,26 +47,6 @@ static LENameOrdinalPair leMax(LE_METHOD_MAX, "max"); static LENameOrdinalPair leMin(LE_METHOD_MIN, "min"); static LENameOrdinalPair leIf(LE_METHOD_IF, "if"); -#define LE_EVAL_POOL_SIZE 32 - -#if EFI_PROD_CODE || EFI_SIMULATOR -static Logging logger; -#endif - -static LECalculator evalCalc; -static LEElement evalPoolElements[LE_EVAL_POOL_SIZE]; -static LEElementPool evalPool(evalPoolElements, LE_EVAL_POOL_SIZE); - -#define SYS_ELEMENT_POOL_SIZE 128 -#define UD_ELEMENT_POOL_SIZE 128 - -static LEElement sysElements[SYS_ELEMENT_POOL_SIZE]; -LEElementPool sysPool(sysElements, SYS_ELEMENT_POOL_SIZE); - -static LEElement userElements[UD_ELEMENT_POOL_SIZE]; -LEElementPool userPool(userElements, UD_ELEMENT_POOL_SIZE); -LEElement * fsioLogics[LE_COMMAND_COUNT] CCM_OPTIONAL; - LENameOrdinalPair::LENameOrdinalPair(le_action_e action, const char *name) { this->action = action; this->name = name; @@ -385,45 +365,4 @@ LEElement *LEElementPool::parseExpression(const char * line) { return first; } -EXTERN_ENGINE; - -void parseUserFsio(DECLARE_ENGINE_PARAMETER_F) { - board_configuration_s * boardConfiguration = &engineConfiguration->bc; - for (int i = 0; i < LE_COMMAND_COUNT; i++) { - brain_pin_e brainPin = boardConfiguration->fsioPins[i]; - - if (brainPin != GPIO_UNASSIGNED) { - const char *formula = boardConfiguration->le_formulas[i]; - LEElement *logic = userPool.parseExpression(formula); - if (logic == NULL) { - warning(OBD_PCM_Processor_Fault, "parsing [%s]", formula); - } - - fsioLogics[i] = logic; - } - } -} - -#if (EFI_PROD_CODE || EFI_SIMULATOR) || defined(__DOXYGEN__) - -static void eval(char *line, Engine *engine) { - line = unquote(line); - scheduleMsg(&logger, "Parsing [%s]", line); - evalPool.reset(); - LEElement * e = evalPool.parseExpression(line); - if (e == NULL) { - scheduleMsg(&logger, "parsing failed"); - } else { - float result = evalCalc.getValue2(e, engine); - scheduleMsg(&logger, "Eval result: %f", result); - } -} - -void initEval(Engine *engine) { - initLogging(&logger, "le"); - addConsoleActionSP("eval", (VoidCharPtrVoidPtr) eval, engine); -} - -#endif - #endif /* EFI_FSIO */ diff --git a/firmware/controllers/core/logic_expression.h b/firmware/controllers/core/fsio_core.h similarity index 95% rename from firmware/controllers/core/logic_expression.h rename to firmware/controllers/core/fsio_core.h index 72568ad769..1c75625d2b 100644 --- a/firmware/controllers/core/logic_expression.h +++ b/firmware/controllers/core/fsio_core.h @@ -1,5 +1,5 @@ /** - * @file logic_expression.h + * @file fsio_core.h * * @date Oct 3, 2014 * @author Andrey Belomutskiy, (c) 2012-2014 @@ -112,7 +112,5 @@ public: const char *getNextToken(const char *line, char *buffer); bool isNumeric(const char* line); le_action_e parseAction(const char * line); -void initEval(Engine *engine); -void parseUserFsio(DECLARE_ENGINE_PARAMETER_F); #endif /* LOGIC_EXPRESSION_H_ */ diff --git a/firmware/controllers/core/fsio_impl.cpp b/firmware/controllers/core/fsio_impl.cpp new file mode 100644 index 0000000000..46dc81b9be --- /dev/null +++ b/firmware/controllers/core/fsio_impl.cpp @@ -0,0 +1,340 @@ +/** + * @file fsio_impl.cpp + * @brief FSIO as it's used for GPIO + * + * @date Oct 5, 2014 + * @author Andrey Belomutskiy, (c) 2012-2014 + */ + +#include "main.h" + +#if EFI_FSIO || defined(__DOXYGEN__) + +#include "fsio_impl.h" +#include "allsensors.h" +#include "rpm_calculator.h" +#include "efiGpio.h" +#include "pin_repository.h" +#include "pwm_generator.h" +// todo: that's about bench test mode, wrong header for sure! +#include "injector_central.h" + +/** + * Here we define all rusEfi-specific methods + */ +static LENameOrdinalPair leRpm(LE_METHOD_RPM, "rpm"); +static LENameOrdinalPair leTps(LE_METHOD_TPS, "tps"); +static LENameOrdinalPair leMaf(LE_METHOD_MAF, "maf"); +static LENameOrdinalPair leVBatt(LE_METHOD_VBATT, "vbatt"); +static LENameOrdinalPair leFan(LE_METHOD_FAN, "fan"); +static LENameOrdinalPair leCoolant(LE_METHOD_COOLANT, "coolant"); +static LENameOrdinalPair leAcToggle(LE_METHOD_AC_TOGGLE, "ac_on_switch"); +static LENameOrdinalPair leFanOnSetting(LE_METHOD_FAN_ON_SETTING, "fan_on_setting"); +static LENameOrdinalPair leFanOffSetting(LE_METHOD_FAN_OFF_SETTING, "fan_off_setting"); +static LENameOrdinalPair leTimeSinceBoot(LE_METHOD_TIME_SINCE_BOOT, "time_since_boot"); +static LENameOrdinalPair leFsioSsetting(LE_METHOD_FSIO_SETTING, "fsio_setting"); + +#define LE_EVAL_POOL_SIZE 32 + +#if EFI_PROD_CODE || EFI_SIMULATOR +static Logging logger; +#endif + +static LECalculator evalCalc; +static LEElement evalPoolElements[LE_EVAL_POOL_SIZE]; +static LEElementPool evalPool(evalPoolElements, LE_EVAL_POOL_SIZE); + +#define SYS_ELEMENT_POOL_SIZE 128 +#define UD_ELEMENT_POOL_SIZE 128 + +static LEElement sysElements[SYS_ELEMENT_POOL_SIZE]; +LEElementPool sysPool(sysElements, SYS_ELEMENT_POOL_SIZE); + +static LEElement userElements[UD_ELEMENT_POOL_SIZE]; +LEElementPool userPool(userElements, UD_ELEMENT_POOL_SIZE); +static LEElement * fsioLogics[LE_COMMAND_COUNT] CCM_OPTIONAL; + +static LEElement * acRelayLogic; +static LEElement * fuelPumpLogic; +static LEElement * radiatorFanLogic; +static LEElement * alternatorLogic; + +void setFsioExt(engine_configuration_s *engineConfiguration, int index, brain_pin_e pin, const char * exp, int freq) { + board_configuration_s *boardConfiguration = &engineConfiguration->bc; + + boardConfiguration->fsioPins[index] = pin; + strcpy(boardConfiguration->le_formulas[index], exp); + boardConfiguration->fsioFrequency[index] = freq; +} + +void setFsio(engine_configuration_s *engineConfiguration, int index, brain_pin_e pin, const char * exp) { + setFsioExt(engineConfiguration, index, pin, exp, 0); +} + +EXTERN_ENGINE; + +void applyFsioConfiguration(DECLARE_ENGINE_PARAMETER_F) { + board_configuration_s * boardConfiguration = &engineConfiguration->bc; + for (int i = 0; i < LE_COMMAND_COUNT; i++) { + brain_pin_e brainPin = boardConfiguration->fsioPins[i]; + + if (brainPin != GPIO_UNASSIGNED) { + const char *formula = boardConfiguration->le_formulas[i]; + LEElement *logic = userPool.parseExpression(formula); + if (logic == NULL) { + warning(OBD_PCM_Processor_Fault, "parsing [%s]", formula); + } + + fsioLogics[i] = logic; + } + } +} + +#if (EFI_PROD_CODE || EFI_SIMULATOR) || defined(__DOXYGEN__) + +static SimplePwm fsioPwm[LE_COMMAND_COUNT] CCM_OPTIONAL; + +static LECalculator calc; +extern LEElement * fsioLogics[LE_COMMAND_COUNT]; + +static void handleFsio(Engine *engine, int index) { + if (boardConfiguration->fsioPins[index] == GPIO_UNASSIGNED) + return; + + bool_t isPwmMode = boardConfiguration->fsioFrequency[index] != 0; + + io_pin_e pin = (io_pin_e) ((int) GPIO_0 + index); + + float fvalue = calc.getValue2(fsioLogics[index], engine); + engine->engineConfiguration2->fsioLastValue[index] = fvalue; + + if (isPwmMode) { + fsioPwm[index].setSimplePwmDutyCycle(fvalue); + } else { + int value = (int) fvalue; + if (value != getOutputPinValue(pin)) { + // scheduleMsg(&logger, "setting %s %s", getIo_pin_e(pin), boolToString(value)); + setOutputPinValue(pin, value); + } + } +} + +static void setPinState(io_pin_e ioPin, LEElement *element, Engine *engine) { + if (element == NULL) { + warning(OBD_PCM_Processor_Fault, "invalid expression for %s", getIo_pin_e(ioPin)); + } else { + int value = calc.getValue2(element, engine); + if (value != getOutputPinValue(ioPin)) { + if (isRunningBenchTest()) + return; // let's not mess with bench testing + scheduleMsg(&logger, "setting %s %s", getIo_pin_e(ioPin), boolToString(value)); + setOutputPinValue(ioPin, value); + } + } +} + +static void showFsio(const char *msg, LEElement *element) { + if (msg != NULL) + scheduleMsg(&logger, "%s:", msg); + while (element != NULL) { + scheduleMsg(&logger, "action %d: fValue=%f iValue=%d", element->action, element->fValue, element->iValue); + element = element->next; + } + scheduleMsg(&logger, ""); +} + +static void showFsioInfo(void) { + scheduleMsg(&logger, "sys used %d/user used %d", sysPool.getSize(), userPool.getSize()); + showFsio("a/c", acRelayLogic); + showFsio("fuel", fuelPumpLogic); + showFsio("fan", radiatorFanLogic); + showFsio("alt", alternatorLogic); + + for (int i = 0; i < LE_COMMAND_COUNT; i++) { + char * exp = boardConfiguration->le_formulas[i]; + if (exp[0] != 0) { + /** + * in case of FSIO user interface indexes are starting with 0, the argument for that + * is the fact that the target audience is more software developers + */ + scheduleMsg(&logger, "FSIO #%d [%s] at %s@%dHz value=%f", i, exp, + hwPortname(boardConfiguration->fsioPins[i]), boardConfiguration->fsioFrequency[i], + engineConfiguration2->fsioLastValue[i]); +// scheduleMsg(&logger, "user-defined #%d value=%f", i, engine->engineConfiguration2->fsioLastValue[i]); + showFsio(NULL, fsioLogics[i]); + } + } + for (int i = 0; i < LE_COMMAND_COUNT; i++) { + float v = boardConfiguration->fsio_setting[i]; + if (!cisnan(v)) { + scheduleMsg(&logger, "user property #%d: %f", i + 1, v); + } + } +} + +/** + * set_fsio_setting 0 0.11 + */ +static void setFsioSetting(float indexF, float value) { + int index = indexF; + if (index < 0 || index >= LE_COMMAND_COUNT) { + scheduleMsg(&logger, "invalid index %d", index); + return; + } + engineConfiguration->bc.fsio_setting[index] = value; + showFsioInfo(); +} + +static void setFsioFrequency(int index, int frequency) { + index--; + if (index < 0 || index >= LE_COMMAND_COUNT) { + scheduleMsg(&logger, "invalid index %d", index); + return; + } + boardConfiguration->fsioFrequency[index] = frequency; + scheduleMsg(&logger, "Setting FSIO frequency %d on #%d", frequency, index + 1); +} + +static void setFsioPin(const char *indexStr, const char *pinName) { + int index = atoi(indexStr) - 1; + if (index < 0 || index >= LE_COMMAND_COUNT) { + scheduleMsg(&logger, "invalid index %d", index); + return; + } + brain_pin_e pin = parseBrainPin(pinName); + // todo: extract method - code duplication with other 'set_xxx_pin' methods? + if (pin == GPIO_INVALID) { + scheduleMsg(&logger, "invalid pin name [%s]", pinName); + return; + } + boardConfiguration->fsioPins[index] = pin; + scheduleMsg(&logger, "FSIO pin #%d [%s]", (index + 1), hwPortname(pin)); +} + +static void setUserOutput(const char *indexStr, const char *quotedLine, Engine *engine) { + int index = atoi(indexStr) - 1; + if (index < 0 || index >= LE_COMMAND_COUNT) { + scheduleMsg(&logger, "invalid index %d", index); + return; + } + char * l = unquote((char*) quotedLine); + if (strlen(l) > LE_COMMAND_LENGTH - 1) { + scheduleMsg(&logger, "Too long %d", strlen(l)); + return; + } + + scheduleMsg(&logger, "setting user out #%d to [%s]", index + 1, l); + strcpy(engine->engineConfiguration->bc.le_formulas[index], l); + // this would apply the changes + applyFsioConfiguration(PASS_ENGINE_PARAMETER_F); + showFsioInfo(); +} + +static void eval(char *line, Engine *engine) { + line = unquote(line); + scheduleMsg(&logger, "Parsing [%s]", line); + evalPool.reset(); + LEElement * e = evalPool.parseExpression(line); + if (e == NULL) { + scheduleMsg(&logger, "parsing failed"); + } else { + float result = evalCalc.getValue2(e, engine); + scheduleMsg(&logger, "Eval result: %f", result); + } +} + +float getLEValue(Engine *engine, calc_stack_t *s, le_action_e action) { + efiAssert(engine!=NULL, "getLEValue", NAN); + switch (action) { + case LE_METHOD_FAN: + return getOutputPinValue(FAN_RELAY); + case LE_METHOD_AC_TOGGLE: + return getAcToggle(engine); + case LE_METHOD_COOLANT: + return getCoolantTemperature(engine); + case LE_METHOD_INTAKE_AIR: + return getIntakeAirTemperature(engine); + case LE_METHOD_RPM: + return engine->rpmCalculator.rpm(); + case LE_METHOD_TIME_SINCE_BOOT: + return getTimeNowSeconds(); + case LE_METHOD_FAN_OFF_SETTING: + return engine->engineConfiguration->fanOffTemperature; + case LE_METHOD_FAN_ON_SETTING: + return engine->engineConfiguration->fanOnTemperature; + case LE_METHOD_VBATT: + return getVBatt(engine->engineConfiguration); + default: + firmwareError("FSIO unexpected %d", action); + return NAN; + } +} + +void runFsio(void) { + for (int i = 0; i < LE_COMMAND_COUNT; i++) { + handleFsio(engine, i); + } + +#if EFI_FUEL_PUMP + if (boardConfiguration->fuelPumpPin != GPIO_UNASSIGNED && engineConfiguration->isFuelPumpEnabled) { + setPinState(FUEL_PUMP_RELAY, fuelPumpLogic, engine); + } +#endif + + if (boardConfiguration->acRelayPin != GPIO_UNASSIGNED) { + setPinState(AC_RELAY, acRelayLogic, engine); + } + + if (boardConfiguration->alternatorControlPin != GPIO_UNASSIGNED) { + setPinState(ALTERNATOR_SWITCH, alternatorLogic, engine); + } + + if (boardConfiguration->fanPin != GPIO_UNASSIGNED) { +// setPinState(FAN_RELAY, radiatorFanLogic, engine); + } + +} + +static pin_output_mode_e defa = OM_DEFAULT; + +void initFsioImpl(Engine *engine) { + initLogging(&logger, "le"); + +#if EFI_FUEL_PUMP + fuelPumpLogic = sysPool.parseExpression(FUEL_PUMP_LOGIC); +#endif + + acRelayLogic = sysPool.parseExpression(AC_RELAY_LOGIC); + radiatorFanLogic = sysPool.parseExpression(FAN_CONTROL_LOGIC); + + alternatorLogic = sysPool.parseExpression(ALTERNATOR_LOGIC); + + for (int i = 0; i < LE_COMMAND_COUNT; i++) { + brain_pin_e brainPin = boardConfiguration->fsioPins[i]; + + if (brainPin != GPIO_UNASSIGNED) { + //mySetPadMode2("user-defined", boardConfiguration->gpioPins[i], PAL_STM32_MODE_OUTPUT); + + io_pin_e pin = (io_pin_e) ((int) GPIO_0 + i); + + int frequency = boardConfiguration->fsioFrequency[i]; + if (frequency == 0) { + outputPinRegisterExt2(getPinName(pin), pin, boardConfiguration->fsioPins[i], &defa); + } else { + startSimplePwmExt(&fsioPwm[i], "FSIO", brainPin, pin, frequency, 0.5f, applyPinState); + } + } + } + + addConsoleActionSSP("set_fsio", (VoidCharPtrCharPtrVoidPtr) setUserOutput, engine); + addConsoleActionSS("set_fsio_pin", (VoidCharPtrCharPtr) setFsioPin); + addConsoleActionII("set_fsio_frequency", (VoidIntInt) setFsioFrequency); + addConsoleActionFF("set_fsio_setting", setFsioSetting); + addConsoleAction("fsioinfo", showFsioInfo); + + addConsoleActionSP("eval", (VoidCharPtrVoidPtr) eval, engine); +} + +#endif + +#endif /* EFI_FSIO */ diff --git a/firmware/controllers/core/le_functions.h b/firmware/controllers/core/fsio_impl.h similarity index 82% rename from firmware/controllers/core/le_functions.h rename to firmware/controllers/core/fsio_impl.h index 42f410c1bb..d727118eab 100644 --- a/firmware/controllers/core/le_functions.h +++ b/firmware/controllers/core/fsio_impl.h @@ -1,5 +1,6 @@ /** - * @file le_functions.h + * @file fsio_impl.h + * @brief FSIO as it's used for GPIO * * @date Oct 5, 2014 * @author Andrey Belomutskiy, (c) 2012-2014 @@ -8,8 +9,8 @@ #ifndef LE_FUNCTIONS_H_ #define LE_FUNCTIONS_H_ +#include "fsio_core.h" #include "engine.h" -#include "logic_expression.h" /** * In human language that's @@ -32,4 +33,8 @@ float getLEValue(Engine *engine, calc_stack_t *s, le_action_e action); void setFsio(engine_configuration_s *engineConfiguration, int index, brain_pin_e pin, const char * exp); void setFsioExt(engine_configuration_s *engineConfiguration, int index, brain_pin_e pin, const char * exp, int freq); +void initFsioImpl(Engine *engine); +void runFsio(void); +void applyFsioConfiguration(DECLARE_ENGINE_PARAMETER_F); + #endif /* LE_FUNCTIONS_H_ */ diff --git a/firmware/controllers/core/le_functions.cpp b/firmware/controllers/core/le_functions.cpp deleted file mode 100644 index 3bcabf9aee..0000000000 --- a/firmware/controllers/core/le_functions.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/** - * @file le_functions.cpp - * - * @date Oct 5, 2014 - * @author Andrey Belomutskiy, (c) 2012-2014 - */ - -#include "main.h" - -#if EFI_FSIO || defined(__DOXYGEN__) - -#include "le_functions.h" -#include "allsensors.h" -#include "rpm_calculator.h" -#include "efiGpio.h" - -//extern LENameOrdinalPair * LE_FIRST; - -/** - * Here we define all rusEfi-specific methods - */ -static LENameOrdinalPair leRpm(LE_METHOD_RPM, "rpm"); -static LENameOrdinalPair leTps(LE_METHOD_TPS, "tps"); -static LENameOrdinalPair leMaf(LE_METHOD_MAF, "maf"); -static LENameOrdinalPair leVBatt(LE_METHOD_VBATT, "vbatt"); -static LENameOrdinalPair leFan(LE_METHOD_FAN, "fan"); -static LENameOrdinalPair leCoolant(LE_METHOD_COOLANT, "coolant"); -static LENameOrdinalPair leAcToggle(LE_METHOD_AC_TOGGLE, "ac_on_switch"); -static LENameOrdinalPair leFanOnSetting(LE_METHOD_FAN_ON_SETTING, "fan_on_setting"); -static LENameOrdinalPair leFanOffSetting(LE_METHOD_FAN_OFF_SETTING, "fan_off_setting"); -static LENameOrdinalPair leTimeSinceBoot(LE_METHOD_TIME_SINCE_BOOT, "time_since_boot"); -static LENameOrdinalPair leFsioSsetting(LE_METHOD_FSIO_SETTING, "fsio_setting"); - -#if EFI_PROD_CODE || EFI_SIMULATOR -float getLEValue(Engine *engine, calc_stack_t *s, le_action_e action) { - efiAssert(engine!=NULL, "getLEValue", NAN); - switch (action) { - case LE_METHOD_FAN: - return getOutputPinValue(FAN_RELAY); - case LE_METHOD_AC_TOGGLE: - return getAcToggle(engine); - case LE_METHOD_COOLANT: - return getCoolantTemperature(engine); - case LE_METHOD_INTAKE_AIR: - return getIntakeAirTemperature(engine); - case LE_METHOD_RPM: - return engine->rpmCalculator.rpm(); - case LE_METHOD_TIME_SINCE_BOOT: - return getTimeNowSeconds(); - case LE_METHOD_FAN_OFF_SETTING: - return engine->engineConfiguration->fanOffTemperature; - case LE_METHOD_FAN_ON_SETTING: - return engine->engineConfiguration->fanOnTemperature; - case LE_METHOD_VBATT: - return getVBatt(engine->engineConfiguration); - default: - firmwareError("FSIO unexpected %d", action); - return NAN; - } -} -#endif - -void setFsioExt(engine_configuration_s *engineConfiguration, int index, brain_pin_e pin, const char * exp, int freq) { - board_configuration_s *boardConfiguration = &engineConfiguration->bc; - - boardConfiguration->fsioPins[index] = pin; - strcpy(boardConfiguration->le_formulas[index], exp); - boardConfiguration->fsioFrequency[index] = freq; -} - -void setFsio(engine_configuration_s *engineConfiguration, int index, brain_pin_e pin, const char * exp) { - setFsioExt(engineConfiguration, index, pin, exp, 0); -} - -#endif /* EFI_FSIO */ diff --git a/firmware/controllers/engine_controller.cpp b/firmware/controllers/engine_controller.cpp index 4289b8188b..bf87143e57 100644 --- a/firmware/controllers/engine_controller.cpp +++ b/firmware/controllers/engine_controller.cpp @@ -22,8 +22,11 @@ */ #include "main.h" +#include "engine_configuration.h" #include "trigger_central.h" #include "engine_controller.h" +#include "fsio_core.h" +#include "fsio_impl.h" #include "idle_thread.h" #include "rpm_calculator.h" #include "signal_executor.h" @@ -35,7 +38,6 @@ #include "injector_central.h" #include "ignition_central.h" #include "rfiutil.h" -#include "engine_configuration.h" #include "engine_math.h" #include "wave_analyzer.h" #include "allsensors.h" @@ -52,23 +54,13 @@ #include "ec2.h" #include "PwmTester.h" #include "engine.h" -#include "logic_expression.h" -#include "le_functions.h" #include "pin_repository.h" #include "pwm_generator.h" -static LEElement * acRelayLogic; -static LEElement * fuelPumpLogic; -static LEElement * radiatorFanLogic; -static LEElement * alternatorLogic; - extern OutputPin outputs[IO_PIN_COUNT]; extern pin_output_mode_e *pinDefaultState[IO_PIN_COUNT]; extern bool hasFirmwareErrorFlag; -extern LEElementPool sysPool; -extern LEElementPool userPool; - persistent_config_container_s persistentState CCM_OPTIONAL; /** @@ -194,144 +186,6 @@ static void cylinderCleanupControl(Engine *engine) { } } -#if EFI_FSIO -static SimplePwm fsioPwm[LE_COMMAND_COUNT] CCM_OPTIONAL; - -static LECalculator calc; -extern LEElement * fsioLogics[LE_COMMAND_COUNT]; - -static void handleFsio(Engine *engine, int index) { - if (boardConfiguration->fsioPins[index] == GPIO_UNASSIGNED) - return; - - bool_t isPwmMode = boardConfiguration->fsioFrequency[index] != 0; - - io_pin_e pin = (io_pin_e) ((int) GPIO_0 + index); - - float fvalue = calc.getValue2(fsioLogics[index], engine); - engine->engineConfiguration2->fsioLastValue[index] = fvalue; - - if (isPwmMode) { - fsioPwm[index].setSimplePwmDutyCycle(fvalue); - } else { - int value = (int) fvalue; - if (value != getOutputPinValue(pin)) { - // scheduleMsg(&logger, "setting %s %s", getIo_pin_e(pin), boolToString(value)); - setOutputPinValue(pin, value); - } - } -} - -static void setPinState(io_pin_e ioPin, LEElement *element, Engine *engine) { - if (element == NULL) { - warning(OBD_PCM_Processor_Fault, "invalid expression for %s", getIo_pin_e(ioPin)); - } else { - int value = calc.getValue2(element, engine); - if (value != getOutputPinValue(ioPin)) { - if (isRunningBenchTest()) - return; // let's not mess with bench testing - scheduleMsg(&logger, "setting %s %s", getIo_pin_e(ioPin), boolToString(value)); - setOutputPinValue(ioPin, value); - } - } -} - -static void showFsio(const char *msg, LEElement *element) { - if (msg != NULL) - scheduleMsg(&logger, "%s:", msg); - while (element != NULL) { - scheduleMsg(&logger, "action %d: fValue=%f iValue=%d", element->action, element->fValue, element->iValue); - element = element->next; - } - scheduleMsg(&logger, ""); -} - -static void showFsioInfo(void) { - scheduleMsg(&logger, "sys used %d/user used %d", sysPool.getSize(), userPool.getSize()); - showFsio("a/c", acRelayLogic); - showFsio("fuel", fuelPumpLogic); - showFsio("fan", radiatorFanLogic); - showFsio("alt", alternatorLogic); - - for (int i = 0; i < LE_COMMAND_COUNT; i++) { - char * exp = boardConfiguration->le_formulas[i]; - if (exp[0] != 0) { - /** - * in case of FSIO user interface indexes are starting with 0, the argument for that - * is the fact that the target audience is more software developers - */ - scheduleMsg(&logger, "FSIO #%d [%s] at %s@%dHz value=%f", i, exp, - hwPortname(boardConfiguration->fsioPins[i]), boardConfiguration->fsioFrequency[i], - engineConfiguration2->fsioLastValue[i]); -// scheduleMsg(&logger, "user-defined #%d value=%f", i, engine->engineConfiguration2->fsioLastValue[i]); - showFsio(NULL, fsioLogics[i]); - } - } - for (int i = 0; i < LE_COMMAND_COUNT; i++) { - float v = boardConfiguration->fsio_setting[i]; - if (!cisnan(v)) { - scheduleMsg(&logger, "user property #%d: %f", i + 1, v); - } - } -} - -static void setFsioSetting(float indexF, float value) { - int index = indexF; - if (index < 0 || index >= LE_COMMAND_COUNT) { - scheduleMsg(&logger, "invalid index %d", index); - return; - } - engineConfiguration->bc.fsio_setting[index] = value; - showFsioInfo(); -} - -static void setFsioFrequency(int index, int frequency) { - index--; - if (index < 0 || index >= LE_COMMAND_COUNT) { - scheduleMsg(&logger, "invalid index %d", index); - return; - } - boardConfiguration->fsioFrequency[index] = frequency; - scheduleMsg(&logger, "Setting FSIO frequency %d on #%d", frequency, index + 1); -} - -static void setFsioPin(const char *indexStr, const char *pinName) { - int index = atoi(indexStr) - 1; - if (index < 0 || index >= LE_COMMAND_COUNT) { - scheduleMsg(&logger, "invalid index %d", index); - return; - } - brain_pin_e pin = parseBrainPin(pinName); - // todo: extract method - code duplication with other 'set_xxx_pin' methods? - if (pin == GPIO_INVALID) { - scheduleMsg(&logger, "invalid pin name [%s]", pinName); - return; - } - boardConfiguration->fsioPins[index] = pin; - scheduleMsg(&logger, "FSIO pin #%d [%s]", (index + 1), hwPortname(pin)); -} - -static void setUserOutput(const char *indexStr, const char *quotedLine, Engine *engine) { - int index = atoi(indexStr) - 1; - if (index < 0 || index >= LE_COMMAND_COUNT) { - scheduleMsg(&logger, "invalid index %d", index); - return; - } - char * l = unquote((char*) quotedLine); - if (strlen(l) > LE_COMMAND_LENGTH - 1) { - scheduleMsg(&logger, "Too long %d", strlen(l)); - return; - } - - scheduleMsg(&logger, "setting user out #%d to [%s]", index + 1, l); - strcpy(engine->engineConfiguration->bc.le_formulas[index], l); - // this would apply the changes - parseUserFsio(PASS_ENGINE_PARAMETER_F); - showFsioInfo(); -} - -#endif /* EFI_FSIO */ - static void onEvenyGeneralMilliseconds(Engine *engine) { /** * We need to push current value into the 64 bit counter often enough so that we do not miss an overflow @@ -348,30 +202,8 @@ static void onEvenyGeneralMilliseconds(Engine *engine) { engine->watchdog(); engine->updateSlowSensors(); -#if EFI_FSIO + runFsio(); - for (int i = 0; i < LE_COMMAND_COUNT; i++) { - handleFsio(engine, i); - } - -#if EFI_FUEL_PUMP - if (boardConfiguration->fuelPumpPin != GPIO_UNASSIGNED && engineConfiguration->isFuelPumpEnabled) { - setPinState(FUEL_PUMP_RELAY, fuelPumpLogic, engine); - } -#endif - - if (boardConfiguration->acRelayPin != GPIO_UNASSIGNED) { - setPinState(AC_RELAY, acRelayLogic, engine); - } - - if (boardConfiguration->alternatorControlPin != GPIO_UNASSIGNED) { - setPinState(ALTERNATOR_SWITCH, alternatorLogic, engine); - } - - if (boardConfiguration->fanPin != GPIO_UNASSIGNED) { -// setPinState(FAN_RELAY, radiatorFanLogic, engine); - } -#endif updateErrorCodes(); @@ -474,8 +306,6 @@ static void setFloat(const char *offsetStr, const char *valueStr) { scheduleMsg(&logger, "setting float @%d to %f", offset, value); } -static pin_output_mode_e d = OM_DEFAULT; - void initEngineContoller(Engine *engine) { if (hasFirmwareError()) { return; @@ -565,46 +395,12 @@ void initEngineContoller(Engine *engine) { } #endif -#if EFI_FUEL_PUMP - fuelPumpLogic = sysPool.parseExpression(FUEL_PUMP_LOGIC); -#endif - - acRelayLogic = sysPool.parseExpression(AC_RELAY_LOGIC); - radiatorFanLogic = sysPool.parseExpression(FAN_CONTROL_LOGIC); - - alternatorLogic = sysPool.parseExpression(ALTERNATOR_LOGIC); - addConsoleAction("analoginfo", printAnalogInfo); -#if EFI_FSIO - for (int i = 0; i < LE_COMMAND_COUNT; i++) { - brain_pin_e brainPin = boardConfiguration->fsioPins[i]; - - if (brainPin != GPIO_UNASSIGNED) { - //mySetPadMode2("user-defined", boardConfiguration->gpioPins[i], PAL_STM32_MODE_OUTPUT); - - io_pin_e pin = (io_pin_e) ((int) GPIO_0 + i); - - int frequency = boardConfiguration->fsioFrequency[i]; - if (frequency == 0) { - outputPinRegisterExt2(getPinName(pin), pin, boardConfiguration->fsioPins[i], &d); - } else { - startSimplePwmExt(&fsioPwm[i], "FSIO", brainPin, pin, frequency, 0.5f, applyPinState); - } - } - } - - addConsoleActionSSP("set_fsio", (VoidCharPtrCharPtrVoidPtr) setUserOutput, engine); - addConsoleActionSS("set_fsio_pin", (VoidCharPtrCharPtr) setFsioPin); - addConsoleActionII("set_fsio_frequency", (VoidIntInt) setFsioFrequency); - addConsoleActionFF("set_fsio_setting", setFsioSetting); - addConsoleAction("fsioinfo", showFsioInfo); -#endif - addConsoleActionSS("set_float", (VoidCharPtrCharPtr) setFloat); addConsoleActionII("set_int", (VoidIntInt) setInt); addConsoleActionI("get_float", getFloat); addConsoleActionI("get_int", getInt); - initEval(engine); + initFsioImpl(engine); } diff --git a/firmware/rusefi.cpp b/firmware/rusefi.cpp index 8414715366..3a9f414b4c 100644 --- a/firmware/rusefi.cpp +++ b/firmware/rusefi.cpp @@ -265,5 +265,5 @@ int getRusEfiVersion(void) { return 1; // this is here to make the compiler happy about the unused array if (UNUSED_CCM_SIZE == 0) return 1; // this is here to make the compiler happy about the unused array - return 20141226; + return 20141227; } diff --git a/hardware/mini48-stm32/mini-stm32-board.png b/hardware/mini48-stm32/mini-stm32-board.png index f6c1418fba..b14f73da18 100644 Binary files a/hardware/mini48-stm32/mini-stm32-board.png and b/hardware/mini48-stm32/mini-stm32-board.png differ diff --git a/hardware/mini48-stm32/mini48-stm32.cmp b/hardware/mini48-stm32/mini48-stm32.cmp index 51887b2075..7529287ca7 100644 --- a/hardware/mini48-stm32/mini48-stm32.cmp +++ b/hardware/mini48-stm32/mini48-stm32.cmp @@ -1,4 +1,4 @@ -Cmp-Mod V01 Created by CvPcb (22-Jun-2014 BZR 4027)-stable date = Чт. 25 дек. 2014 14:44:43 +Cmp-Mod V01 Created by CvPcb (22-Jun-2014 BZR 4027)-stable date = Сб. 27 дек. 2014 20:57:53 BeginCmp TimeStamp = /549BD2BA; @@ -133,13 +133,6 @@ ValeurCmp = CONN_20; IdModule = PIN_ARRAY_20X1; EndCmp -BeginCmp -TimeStamp = /549BE47C; -Reference = Q1; -ValeurCmp = DTA114E; -IdModule = SOT323; -EndCmp - BeginCmp TimeStamp = /549BD29D; Reference = R1; @@ -211,9 +204,9 @@ IdModule = lqfp48; EndCmp BeginCmp -TimeStamp = /549BE1BB; +TimeStamp = /549EE660; Reference = U2; -ValeurCmp = STF202; +ValeurCmp = NUF2101MT1G; IdModule = SOT-457; EndCmp diff --git a/hardware/mini48-stm32/mini48-stm32.kicad_pcb b/hardware/mini48-stm32/mini48-stm32.kicad_pcb index 872edc9a6f..0e5af32287 100644 --- a/hardware/mini48-stm32/mini48-stm32.kicad_pcb +++ b/hardware/mini48-stm32/mini48-stm32.kicad_pcb @@ -1,15 +1,15 @@ (kicad_pcb (version 3) (host pcbnew "(2013-07-07 BZR 4022)-stable") (general - (links 113) + (links 112) (no_connects 0) (area 97.221 72.855001 194.818001 100.965001) (thickness 1.6) - (drawings 11) - (tracks 454) + (drawings 12) + (tracks 451) (zones 0) - (modules 34) - (nets 53) + (modules 33) + (nets 52) ) (page A4) @@ -125,16 +125,16 @@ (net 24 /30) (net 25 /31) (net 26 /33) - (net 27 /4) - (net 28 /5) - (net 29 /6) - (net 30 /7) - (net 31 /8) - (net 32 /9) - (net 33 /BOOT0) - (net 34 /D+) - (net 35 /D-) - (net 36 /DISK) + (net 27 /35) + (net 28 /4) + (net 29 /5) + (net 30 /6) + (net 31 /7) + (net 32 /8) + (net 33 /9) + (net 34 /BOOT0) + (net 35 /D+) + (net 36 /D-) (net 37 /OSC32_IN) (net 38 /OSC32_OUT) (net 39 /Reset) @@ -142,15 +142,14 @@ (net 41 /VCC) (net 42 /VIN) (net 43 GND) - (net 44 N-0000015) - (net 45 N-0000016) - (net 46 N-0000017) - (net 47 N-0000019) - (net 48 N-0000022) - (net 49 N-000003) - (net 50 N-0000053) - (net 51 N-0000054) - (net 52 N-0000055) + (net 44 N-0000013) + (net 45 N-0000015) + (net 46 N-0000019) + (net 47 N-000002) + (net 48 N-0000020) + (net 49 N-0000051) + (net 50 N-0000052) + (net 51 N-0000053) (net_class Default "Это класс цепей по умолчанию." (clearance 0.1524) @@ -186,6 +185,7 @@ (add_net /30) (add_net /31) (add_net /33) + (add_net /35) (add_net /4) (add_net /5) (add_net /6) @@ -195,7 +195,6 @@ (add_net /BOOT0) (add_net /D+) (add_net /D-) - (add_net /DISK) (add_net /OSC32_IN) (add_net /OSC32_OUT) (add_net /Reset) @@ -203,15 +202,14 @@ (add_net /VCC) (add_net /VIN) (add_net GND) + (add_net N-0000013) (add_net N-0000015) - (add_net N-0000016) - (add_net N-0000017) (add_net N-0000019) - (add_net N-0000022) - (add_net N-000003) + (add_net N-000002) + (add_net N-0000020) + (add_net N-0000051) + (add_net N-0000052) (add_net N-0000053) - (add_net N-0000054) - (add_net N-0000055) ) (module TL-1105 (layer F.Cu) (tedit 52FDF5EA) (tstamp 53367C1E) @@ -275,7 +273,7 @@ ) (pad 2 smd rect (at 0.9525 0) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) - (net 46 N-0000017) + (net 48 N-0000020) ) (model smd/chip_cms.wrl (at (xyz 0 0 0)) @@ -339,7 +337,7 @@ ) (pad 2 smd rect (at 0.9525 0) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) - (net 51 N-0000054) + (net 50 N-0000052) ) (model smd/chip_cms.wrl (at (xyz 0 0 0)) @@ -403,7 +401,7 @@ ) (pad 2 smd rect (at 0.9525 0) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) - (net 50 N-0000053) + (net 49 N-0000051) ) (model smd/chip_cms.wrl (at (xyz 0 0 0)) @@ -528,11 +526,11 @@ (fp_arc (start -3.175 0) (end -3.175 2.54) (angle 90) (layer F.SilkS) (width 0.3175)) (pad 1 thru_hole circle (at -2.54 0) (size 1.4224 1.4224) (drill 0.762) (layers *.Cu *.Mask F.SilkS) - (net 51 N-0000054) + (net 50 N-0000052) ) (pad 2 thru_hole circle (at 2.54 0) (size 1.4224 1.4224) (drill 0.762) (layers *.Cu *.Mask F.SilkS) - (net 50 N-0000053) + (net 49 N-0000051) ) (model discret/xtal/crystal_hc18u_vertical.wrl (at (xyz 0 0 0)) @@ -558,19 +556,19 @@ (fp_circle (center 0 0) (end 2.032 0.3175) (layer F.SilkS) (width 0.15)) (pad 1 thru_hole rect (at -3.25 -2.25 270) (size 2 1.5) (drill 1) (layers *.Cu *.Mask F.SilkS) - (net 47 N-0000019) + (net 45 N-0000015) ) (pad 1 thru_hole rect (at 3.25 -2.25 270) (size 2 1.5) (drill 1) (layers *.Cu *.Mask F.SilkS) - (net 47 N-0000019) + (net 45 N-0000015) ) (pad 2 thru_hole rect (at 3.35 2.25 270) (size 2 1.5) (drill 1) (layers *.Cu *.Mask F.SilkS) - (net 33 /BOOT0) + (net 34 /BOOT0) ) (pad 2 thru_hole rect (at -3.25 2.25 270) (size 2 1.5) (drill 1) (layers *.Cu *.Mask F.SilkS) - (net 33 /BOOT0) + (net 34 /BOOT0) ) (model 3d/pcb_push.wrl (at (xyz 0 0 0)) @@ -579,44 +577,6 @@ ) ) - (module SOT323 (layer F.Cu) (tedit 450AC34A) (tstamp 549BED77) - (at 171.577 85.725) - (tags "SMD SOT") - (path /549BE47C) - (attr smd) - (fp_text reference Q1 (at 0.127 -2.032) (layer F.SilkS) - (effects (font (size 0.762 0.762) (thickness 0.09906))) - ) - (fp_text value DTA114E (at 0 0) (layer F.SilkS) hide - (effects (font (size 0.70104 0.70104) (thickness 0.09906))) - ) - (fp_line (start 0.254 0.508) (end 0.889 0.508) (layer F.SilkS) (width 0.127)) - (fp_line (start 0.889 0.508) (end 0.889 -0.508) (layer F.SilkS) (width 0.127)) - (fp_line (start -0.889 -0.508) (end -0.889 0.508) (layer F.SilkS) (width 0.127)) - (fp_line (start -0.889 0.508) (end -0.254 0.508) (layer F.SilkS) (width 0.127)) - (fp_line (start 0.254 0.635) (end 0.254 0.508) (layer F.SilkS) (width 0.127)) - (fp_line (start -0.254 0.508) (end -0.254 0.635) (layer F.SilkS) (width 0.127)) - (fp_line (start 0.889 -0.508) (end -0.889 -0.508) (layer F.SilkS) (width 0.127)) - (fp_line (start -0.254 0.635) (end 0.254 0.635) (layer F.SilkS) (width 0.127)) - (pad 2 smd rect (at -0.65024 -0.94996) (size 0.59944 1.00076) - (layers F.Cu F.Paste F.Mask) - (net 41 /VCC) - ) - (pad 1 smd rect (at 0.65024 -0.94996) (size 0.59944 1.00076) - (layers F.Cu F.Paste F.Mask) - (net 36 /DISK) - ) - (pad 3 smd rect (at 0 0.94996) (size 0.59944 1.00076) - (layers F.Cu F.Paste F.Mask) - (net 44 N-0000015) - ) - (model smd/SOT323.wrl - (at (xyz 0 0 0.001)) - (scale (xyz 0.3937 0.3937 0.3937)) - (rotate (xyz 0 0 0)) - ) - ) - (module SOT223 (layer F.Cu) (tedit 200000) (tstamp 549BED87) (at 168.275 91.44 90) (descr "module CMS SOT223 4 pins") @@ -651,7 +611,7 @@ ) (pad 1 smd rect (at -2.286 3.302 90) (size 1.016 2.032) (layers F.Cu F.Paste F.Mask) - (net 49 N-000003) + (net 47 N-000002) ) (model smd/SOT223.wrl (at (xyz 0 0 0)) @@ -660,14 +620,14 @@ ) ) - (module SOT-457 (layer F.Cu) (tedit 52FCF6A8) (tstamp 549BED96) - (at 175.514 88.392) + (module SOT-457 (layer F.Cu) (tedit 52FCF6A8) (tstamp 549EE5C3) + (at 175.768 89.027 270) (tags "SOT 457") - (path /549BE1BB) - (fp_text reference U2 (at 0 0) (layer F.SilkS) + (path /549EE660) + (fp_text reference U2 (at 0 0 270) (layer F.SilkS) (effects (font (size 0.50038 0.50038) (thickness 0.10922))) ) - (fp_text value STF202 (at 0 -2.3495) (layer F.SilkS) + (fp_text value NUF2101MT1G (at 0 -2.3495 270) (layer F.SilkS) (effects (font (size 0.50038 0.50038) (thickness 0.10922))) ) (fp_line (start -1.016 0.6985) (end -1.5875 0.1905) (layer F.SilkS) (width 0.15)) @@ -675,30 +635,30 @@ (fp_line (start 1.524 -0.6985) (end 1.524 0.6985) (layer F.SilkS) (width 0.15)) (fp_line (start 1.524 0.6985) (end -1.5875 0.6985) (layer F.SilkS) (width 0.15)) (fp_line (start -1.5875 0.6985) (end -1.5875 -0.6985) (layer F.SilkS) (width 0.15)) - (pad 1 smd rect (at -0.95 1.2) (size 0.7 1) - (layers F.Cu F.Paste F.Mask) - (net 44 N-0000015) - ) - (pad 2 smd rect (at 0 1.2) (size 0.7 1) - (layers F.Cu F.Paste F.Mask) - (net 34 /D+) - ) - (pad 3 smd rect (at 0.95 1.2) (size 0.7 1) - (layers F.Cu F.Paste F.Mask) - (net 35 /D-) - ) - (pad 4 smd rect (at 0.95 -1.2) (size 0.7 1) - (layers F.Cu F.Paste F.Mask) - (net 17 /24_USBDM) - ) - (pad 5 smd rect (at 0 -1.2) (size 0.7 1) + (pad 1 smd rect (at -0.95 1.2 270) (size 0.7 1) (layers F.Cu F.Paste F.Mask) (net 16 /23_USBDP) ) - (pad 6 smd rect (at -0.95 -1.2) (size 0.7 1) + (pad 2 smd rect (at 0 1.2 270) (size 0.7 1) (layers F.Cu F.Paste F.Mask) (net 43 GND) ) + (pad 3 smd rect (at 0.95 1.2 270) (size 0.7 1) + (layers F.Cu F.Paste F.Mask) + (net 17 /24_USBDM) + ) + (pad 4 smd rect (at 0.95 -1.2 270) (size 0.7 1) + (layers F.Cu F.Paste F.Mask) + (net 36 /D-) + ) + (pad 5 smd rect (at 0 -1.2 270) (size 0.7 1) + (layers F.Cu F.Paste F.Mask) + (net 1 /+5v) + ) + (pad 6 smd rect (at -0.95 -1.2 270) (size 0.7 1) + (layers F.Cu F.Paste F.Mask) + (net 35 /D+) + ) (model smd/smd_transistors/tsot-6.wrl (at (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -730,7 +690,7 @@ ) (pad 2 smd rect (at 0.9525 0 180) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) - (net 49 N-000003) + (net 47 N-000002) ) (model smd/chip_cms.wrl (at (xyz 0 0 0)) @@ -763,7 +723,7 @@ ) (pad 2 smd rect (at 0.9525 0) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) - (net 49 N-000003) + (net 47 N-000002) ) (model smd/chip_cms.wrl (at (xyz 0 0 0)) @@ -795,7 +755,7 @@ ) (pad 2 smd rect (at 0.9525 0) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) - (net 45 N-0000016) + (net 44 N-0000013) ) (model smd/chip_cms.wrl (at (xyz 0 0 0)) @@ -823,7 +783,7 @@ (fp_line (start 1.524 0.762) (end 0.508 0.762) (layer F.SilkS) (width 0.09906)) (pad 1 smd rect (at -0.9525 0 90) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) - (net 49 N-000003) + (net 47 N-000002) ) (pad 2 smd rect (at 0.9525 0 90) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) @@ -859,7 +819,7 @@ ) (pad 2 smd rect (at 0.9525 0 180) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) - (net 48 N-0000022) + (net 46 N-0000019) ) (model smd/chip_cms.wrl (at (xyz 0 0 0)) @@ -887,7 +847,7 @@ (fp_line (start 1.524 0.762) (end 0.508 0.762) (layer F.SilkS) (width 0.09906)) (pad 1 smd rect (at -0.9525 0) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) - (net 46 N-0000017) + (net 48 N-0000020) ) (pad 2 smd rect (at 0.9525 0) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) @@ -923,7 +883,7 @@ ) (pad 2 smd rect (at 0.9525 0 270) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) - (net 33 /BOOT0) + (net 34 /BOOT0) ) (model smd/chip_cms.wrl (at (xyz 0 0 0)) @@ -951,7 +911,7 @@ (fp_line (start 1.524 0.762) (end 0.508 0.762) (layer F.SilkS) (width 0.09906)) (pad 1 smd rect (at -0.9525 0) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) - (net 47 N-0000019) + (net 45 N-0000015) ) (pad 2 smd rect (at 0.9525 0) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) @@ -983,11 +943,11 @@ (fp_line (start 1.524 0.762) (end 0.508 0.762) (layer F.SilkS) (width 0.09906)) (pad 1 smd rect (at -0.9525 0) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) - (net 52 N-0000055) + (net 51 N-0000053) ) (pad 2 smd rect (at 0.9525 0) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask) - (net 33 /BOOT0) + (net 34 /BOOT0) ) (model smd/chip_cms.wrl (at (xyz 0 0 0)) @@ -1173,7 +1133,7 @@ ) (pad 3 thru_hole circle (at -19.05 0) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS) - (net 33 /BOOT0) + (net 34 /BOOT0) ) (pad 4 thru_hole circle (at -16.51 0) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS) @@ -1214,11 +1174,11 @@ ) (pad 2 smd rect (at -0.8 -4.191 90) (size 0.508 2.54) (layers F.Cu F.Paste F.Mask) - (net 35 /D-) + (net 36 /D-) ) (pad 3 smd rect (at 0 -4.191 90) (size 0.508 2.54) (layers F.Cu F.Paste F.Mask) - (net 34 /D+) + (net 35 /D+) ) (pad 4 smd rect (at 0.8 -4.191 90) (size 0.508 2.54) (layers F.Cu F.Paste F.Mask) @@ -1229,19 +1189,19 @@ ) (pad 6 smd rect (at -4.5 1.603 180) (size 2.794 2) (layers F.Cu F.Paste F.Mask) - (net 46 N-0000017) + (net 48 N-0000020) ) (pad 6 smd rect (at 4.5 1.603 180) (size 2.794 2) (layers F.Cu F.Paste F.Mask) - (net 46 N-0000017) + (net 48 N-0000020) ) (pad 6 smd rect (at -4.5 -3.897 180) (size 2.794 2) (layers F.Cu F.Paste F.Mask) - (net 46 N-0000017) + (net 48 N-0000020) ) (pad 6 smd rect (at 4.5 -3.897 180) (size 2.794 2) (layers F.Cu F.Paste F.Mask) - (net 46 N-0000017) + (net 48 N-0000020) ) (pad "" thru_hole circle (at -2.159 -1.397 180) (size 1.016 1.016) (drill 0.762) (layers *.Cu *.Mask F.SilkS) @@ -1350,7 +1310,7 @@ (fp_arc (start -0.99822 0) (end -0.99822 -0.34798) (angle 180) (layer F.SilkS) (width 0.1016)) (pad 1 smd rect (at -1.04902 0 180) (size 1.19888 1.19888) (layers F.Cu F.Paste F.Mask) - (net 48 N-0000022) + (net 46 N-0000019) ) (pad 2 smd rect (at 1.04902 0 180) (size 1.19888 1.19888) (layers F.Cu F.Paste F.Mask) @@ -1432,7 +1392,7 @@ (fp_arc (start -0.99822 0) (end -0.99822 -0.34798) (angle 180) (layer F.SilkS) (width 0.1016)) (pad 1 smd rect (at -1.04902 0) (size 1.19888 1.19888) (layers F.Cu F.Paste F.Mask) - (net 45 N-0000016) + (net 44 N-0000013) ) (pad 2 smd rect (at 1.04902 0) (size 1.19888 1.19888) (layers F.Cu F.Paste F.Mask) @@ -1508,6 +1468,7 @@ ) (pad 6 thru_hole circle (at -11.43 0) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS) + (net 27 /35) ) (pad 7 thru_hole circle (at -8.89 0) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS) @@ -1523,27 +1484,27 @@ ) (pad 10 thru_hole circle (at -1.27 0) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS) - (net 32 /9) + (net 33 /9) ) (pad 11 thru_hole circle (at 1.27 0) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS) - (net 31 /8) + (net 32 /8) ) (pad 12 thru_hole circle (at 3.81 0) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS) - (net 30 /7) + (net 31 /7) ) (pad 13 thru_hole circle (at 6.35 0) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS) - (net 29 /6) + (net 30 /6) ) (pad 14 thru_hole circle (at 8.89 0) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS) - (net 28 /5) + (net 29 /5) ) (pad 15 thru_hole circle (at 11.43 0) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS) - (net 27 /4) + (net 28 /4) ) (pad 16 thru_hole circle (at 13.97 0) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS) @@ -1607,11 +1568,11 @@ ) (pad 5 smd rect (at -0.7493 4.09956 315) (size 0.29972 1.30048) (layers F.Cu F.Paste F.Mask) - (net 51 N-0000054) + (net 50 N-0000052) ) (pad 6 smd rect (at -0.24892 4.09956 315) (size 0.29972 1.30048) (layers F.Cu F.Paste F.Mask) - (net 50 N-0000053) + (net 49 N-0000051) ) (pad 7 smd rect (at 0.24892 4.09956 315) (size 0.29972 1.30048) (layers F.Cu F.Paste F.Mask) @@ -1635,23 +1596,23 @@ ) (pad 13 smd rect (at 4.09956 2.75082 315) (size 1.30048 0.29972) (layers F.Cu F.Paste F.Mask) - (net 31 /8) + (net 32 /8) ) (pad 14 smd rect (at 4.09956 2.25044 315) (size 1.30048 0.29972) (layers F.Cu F.Paste F.Mask) - (net 30 /7) + (net 31 /7) ) (pad 15 smd rect (at 4.09956 1.75006 315) (size 1.30048 0.29972) (layers F.Cu F.Paste F.Mask) - (net 29 /6) + (net 30 /6) ) (pad 16 smd rect (at 4.09956 1.24968 315) (size 1.30048 0.29972) (layers F.Cu F.Paste F.Mask) - (net 28 /5) + (net 29 /5) ) (pad 17 smd rect (at 4.09956 0.7493 315) (size 1.30048 0.29972) (layers F.Cu F.Paste F.Mask) - (net 27 /4) + (net 28 /4) ) (pad 18 smd rect (at 4.09956 0.24892 315) (size 1.30048 0.29972) (layers F.Cu F.Paste F.Mask) @@ -1727,7 +1688,7 @@ ) (pad 44 smd rect (at -4.09956 0.7493 315) (size 1.30048 0.29972) (layers F.Cu F.Paste F.Mask) - (net 33 /BOOT0) + (net 34 /BOOT0) ) (pad 9 smd rect (at 1.24968 4.09956 315) (size 0.29972 1.30048) (layers F.Cu F.Paste F.Mask) @@ -1743,7 +1704,7 @@ ) (pad 12 smd rect (at 2.75082 4.09956 315) (size 0.29972 1.30048) (layers F.Cu F.Paste F.Mask) - (net 32 /9) + (net 33 /9) ) (pad 21 smd rect (at 4.09956 -1.24968 315) (size 1.30048 0.29972) (layers F.Cu F.Paste F.Mask) @@ -1779,11 +1740,11 @@ ) (pad 45 smd rect (at -4.09956 1.24968 315) (size 1.30048 0.29972) (layers F.Cu F.Paste F.Mask) - (net 52 N-0000055) + (net 51 N-0000053) ) (pad 46 smd rect (at -4.09956 1.75006 315) (size 1.30048 0.29972) (layers F.Cu F.Paste F.Mask) - (net 36 /DISK) + (net 27 /35) ) (pad 47 smd rect (at -4.09956 2.25044 315) (size 1.30048 0.29972) (layers F.Cu F.Paste F.Mask) @@ -1800,6 +1761,9 @@ ) ) + (gr_text "rev 0.2" (at 173.736 81.788) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.25))) + ) (dimension 78.994 (width 0.25) (layer Dwgs.User) (gr_text 3,1100" (at 148.971 73.930001) (layer Dwgs.User) (effects (font (size 1 1) (thickness 0.25))) @@ -1836,11 +1800,17 @@ (gr_line (start 188.341 78.994) (end 188.341 98.806) (angle 90) (layer Edge.Cuts) (width 0.15)) (gr_line (start 109.474 78.994) (end 188.341 78.994) (angle 90) (layer Edge.Cuts) (width 0.15)) + (segment (start 176.968 89.027) (end 176.149 89.027) (width 0.254) (layer F.Cu) (net 1)) + (segment (start 176.149 91.186) (end 178.3585 91.186) (width 0.254) (layer F.Cu) (net 1) (tstamp 549EE664)) + (segment (start 175.768 90.805) (end 176.149 91.186) (width 0.254) (layer F.Cu) (net 1) (tstamp 549EE661)) + (segment (start 175.768 89.408) (end 175.768 90.805) (width 0.254) (layer F.Cu) (net 1) (tstamp 549EE65C)) + (segment (start 176.149 89.027) (end 175.768 89.408) (width 0.254) (layer F.Cu) (net 1) (tstamp 549EE655)) (segment (start 179.959 90.754) (end 178.3585 90.754) (width 0.254) (layer F.Cu) (net 1)) (segment (start 179.3875 96.266) (end 178.6125 96.266) (width 0.254) (layer F.Cu) (net 1)) (segment (start 178.1045 96.266) (end 178.3585 96.012) (width 0.254) (layer F.Cu) (net 1)) (segment (start 176.9745 96.266) (end 178.1045 96.266) (width 0.254) (layer F.Cu) (net 1)) - (segment (start 178.3585 90.754) (end 178.3585 96.012) (width 0.254) (layer F.Cu) (net 1)) + (segment (start 178.3585 90.754) (end 178.3585 91.186) (width 0.254) (layer F.Cu) (net 1)) + (segment (start 178.3585 91.186) (end 178.3585 96.012) (width 0.254) (layer F.Cu) (net 1) (tstamp 549EE66A)) (segment (start 178.3585 96.012) (end 178.6125 96.266) (width 0.254) (layer F.Cu) (net 1)) (via (at 143.701 92.4147) (size 0.889) (layers F.Cu B.Cu) (net 2)) (segment (start 142.3878 92.4147) (end 143.701 92.4147) (width 0.254) (layer F.Cu) (net 2)) @@ -1909,22 +1879,20 @@ (segment (start 138.6662 83.9836) (end 138.6662 82.2782) (width 0.254) (layer F.Cu) (net 15)) (segment (start 138.7528 84.0701) (end 138.6662 83.9836) (width 0.254) (layer F.Cu) (net 15)) (segment (start 138.0593 84.7636) (end 138.7528 84.0701) (width 0.254) (layer F.Cu) (net 15)) - (segment (start 175.514 87.192) (end 175.514 86.233) (width 0.254) (layer F.Cu) (net 16)) - (segment (start 173.6641 84.709) (end 167.9575 79.8195) (width 0.254) (layer B.Cu) (net 16) (tstamp 549C0D75)) - (segment (start 167.9575 79.8195) (end 141.6685 79.8195) (width 0.254) (layer B.Cu) (net 16) (tstamp 549C0D7A)) - (segment (start 141.6685 79.8195) (end 140.208 81.28) (width 0.254) (layer B.Cu) (net 16) (tstamp 549C0D84)) - (via (at 173.6725 84.709) (size 0.889) (layers F.Cu B.Cu) (net 16)) - (segment (start 173.6725 84.709) (end 173.6641 84.709) (width 0.254) (layer B.Cu) (net 16)) - (segment (start 173.99 84.709) (end 173.6725 84.709) (width 0.254) (layer F.Cu) (net 16) (tstamp 549C0F7A)) - (segment (start 175.514 86.233) (end 173.99 84.709) (width 0.254) (layer F.Cu) (net 16) (tstamp 549C0F79)) + (segment (start 174.568 88.077) (end 174.568 87.7) (width 0.254) (layer F.Cu) (net 16)) + (segment (start 142.062202 79.425798) (end 140.208 81.28) (width 0.254) (layer F.Cu) (net 16) (tstamp 549EE6E1)) + (segment (start 166.293798 79.425798) (end 142.062202 79.425798) (width 0.254) (layer F.Cu) (net 16) (tstamp 549EE6D9)) + (segment (start 174.568 87.7) (end 166.293798 79.425798) (width 0.254) (layer F.Cu) (net 16) (tstamp 549EE6D5)) (segment (start 140.208 83.3227) (end 140.208 81.28) (width 0.254) (layer F.Cu) (net 16)) (segment (start 138.4132 85.1175) (end 140.208 83.3227) (width 0.254) (layer F.Cu) (net 16)) - (segment (start 176.464 87.192) (end 176.464 86.3615) (width 0.254) (layer F.Cu) (net 17)) + (segment (start 174.568 89.977) (end 173.797 89.977) (width 0.254) (layer F.Cu) (net 17)) + (segment (start 144.145 79.883) (end 142.748 81.28) (width 0.254) (layer F.Cu) (net 17) (tstamp 549EE6C6)) + (segment (start 165.989 79.883) (end 144.145 79.883) (width 0.254) (layer F.Cu) (net 17) (tstamp 549EE6BB)) + (segment (start 173.228 87.122) (end 165.989 79.883) (width 0.254) (layer F.Cu) (net 17) (tstamp 549EE6B3)) + (segment (start 173.228 89.408) (end 173.228 87.122) (width 0.254) (layer F.Cu) (net 17) (tstamp 549EE6AF)) + (segment (start 173.797 89.977) (end 173.228 89.408) (width 0.254) (layer F.Cu) (net 17) (tstamp 549EE6AB)) (segment (start 142.748 81.4903) (end 142.748 81.28) (width 0.254) (layer F.Cu) (net 17)) (segment (start 138.767 85.4713) (end 142.748 81.4903) (width 0.254) (layer F.Cu) (net 17)) - (segment (start 170.249 80.1465) (end 176.464 86.3615) (width 0.254) (layer F.Cu) (net 17)) - (segment (start 143.8815 80.1465) (end 170.249 80.1465) (width 0.254) (layer F.Cu) (net 17)) - (segment (start 142.748 81.28) (end 143.8815 80.1465) (width 0.254) (layer F.Cu) (net 17)) (segment (start 143.7136 82.8544) (end 145.288 81.28) (width 0.254) (layer F.Cu) (net 18)) (segment (start 142.0916 82.8544) (end 143.7136 82.8544) (width 0.254) (layer F.Cu) (net 18)) (segment (start 139.1209 85.8251) (end 142.0916 82.8544) (width 0.254) (layer F.Cu) (net 18)) @@ -1979,77 +1947,76 @@ (segment (start 130.5284 92.5453) (end 129.9965 92.0134) (width 0.254) (layer B.Cu) (net 26)) (segment (start 135.4715 92.5453) (end 130.5284 92.5453) (width 0.254) (layer B.Cu) (net 26)) (segment (start 136.9627 91.0541) (end 135.4715 92.5453) (width 0.254) (layer B.Cu) (net 26)) - (segment (start 146.2124 94.9044) (end 147.828 96.52) (width 0.254) (layer F.Cu) (net 27)) - (segment (start 142.0504 94.9044) (end 146.2124 94.9044) (width 0.254) (layer F.Cu) (net 27)) - (segment (start 140.1683 93.0223) (end 142.0504 94.9044) (width 0.254) (layer F.Cu) (net 27)) - (segment (start 139.4606 93.0223) (end 140.1683 93.0223) (width 0.254) (layer F.Cu) (net 27)) - (segment (start 138.767 92.3287) (end 139.4606 93.0223) (width 0.254) (layer F.Cu) (net 27)) - (segment (start 139.3225 93.5918) (end 138.4132 92.6825) (width 0.254) (layer F.Cu) (net 28)) - (segment (start 140.0301 93.5918) (end 139.3225 93.5918) (width 0.254) (layer F.Cu) (net 28)) - (segment (start 141.8396 95.4013) (end 140.0301 93.5918) (width 0.254) (layer F.Cu) (net 28)) - (segment (start 144.1693 95.4013) (end 141.8396 95.4013) (width 0.254) (layer F.Cu) (net 28)) - (segment (start 145.288 96.52) (end 144.1693 95.4013) (width 0.254) (layer F.Cu) (net 28)) - (segment (start 142.2507 96.52) (end 142.748 96.52) (width 0.254) (layer F.Cu) (net 29)) - (segment (start 139.9237 94.193) (end 142.2507 96.52) (width 0.254) (layer F.Cu) (net 29)) - (segment (start 139.2159 94.193) (end 139.9237 94.193) (width 0.254) (layer F.Cu) (net 29)) - (segment (start 138.0593 93.0364) (end 139.2159 94.193) (width 0.254) (layer F.Cu) (net 29)) - (segment (start 140.208 95.8925) (end 140.208 96.52) (width 0.254) (layer F.Cu) (net 30)) - (segment (start 137.7056 93.3901) (end 140.208 95.8925) (width 0.254) (layer F.Cu) (net 30)) - (segment (start 137.668 94.8146) (end 137.668 96.52) (width 0.254) (layer F.Cu) (net 31)) - (segment (start 138.0452 94.4374) (end 137.668 94.8146) (width 0.254) (layer F.Cu) (net 31)) - (segment (start 137.3517 93.744) (end 138.0452 94.4374) (width 0.254) (layer F.Cu) (net 31)) - (segment (start 135.128 94.8146) (end 135.128 96.52) (width 0.254) (layer F.Cu) (net 32)) - (segment (start 134.7509 94.4374) (end 135.128 94.8146) (width 0.254) (layer F.Cu) (net 32)) - (segment (start 135.4443 93.744) (end 134.7509 94.4374) (width 0.254) (layer F.Cu) (net 32)) - (via (at 131.8274 85.7486) (size 0.889) (layers F.Cu B.Cu) (net 33)) - (segment (start 147.587 85.3545) (end 147.7995 85.142) (width 0.254) (layer F.Cu) (net 33)) - (segment (start 147.587 85.5345) (end 147.587 85.3545) (width 0.254) (layer F.Cu) (net 33)) - (segment (start 148.88 85.142) (end 147.7995 85.142) (width 0.254) (layer F.Cu) (net 33)) - (segment (start 146.558 85.5345) (end 147.587 85.5345) (width 0.254) (layer F.Cu) (net 33)) - (segment (start 148.88 91.742) (end 147.7995 91.742) (width 0.254) (layer B.Cu) (net 33)) - (segment (start 147.7995 91.208) (end 147.7775 91.186) (width 0.254) (layer F.Cu) (net 33)) - (segment (start 147.7995 91.742) (end 147.7995 91.208) (width 0.254) (layer F.Cu) (net 33)) - (segment (start 147.0025 91.186) (end 147.7775 91.186) (width 0.254) (layer F.Cu) (net 33)) - (segment (start 148.88 91.742) (end 147.7995 91.742) (width 0.254) (layer F.Cu) (net 33)) - (segment (start 148.88 85.142) (end 147.7995 85.142) (width 0.254) (layer B.Cu) (net 33)) - (segment (start 131.8274 85.7487) (end 131.8274 85.7486) (width 0.254) (layer F.Cu) (net 33)) - (segment (start 132.187 85.7487) (end 131.8274 85.7487) (width 0.254) (layer F.Cu) (net 33)) - (segment (start 132.9693 86.531) (end 132.187 85.7487) (width 0.254) (layer F.Cu) (net 33)) - (segment (start 144.8476 86.9437) (end 145.4227 87.5188) (width 0.254) (layer B.Cu) (net 33)) - (segment (start 135.8106 86.9437) (end 144.8476 86.9437) (width 0.254) (layer B.Cu) (net 33)) - (segment (start 135.3923 87.362) (end 135.8106 86.9437) (width 0.254) (layer B.Cu) (net 33)) - (segment (start 133.4408 87.362) (end 135.3923 87.362) (width 0.254) (layer B.Cu) (net 33)) - (segment (start 131.8274 85.7486) (end 133.4408 87.362) (width 0.254) (layer B.Cu) (net 33)) - (segment (start 147.7995 85.142) (end 145.4227 87.5188) (width 0.254) (layer B.Cu) (net 33)) - (segment (start 145.4227 89.3652) (end 147.7995 91.742) (width 0.254) (layer B.Cu) (net 33)) - (segment (start 145.4227 87.5188) (end 145.4227 89.3652) (width 0.254) (layer B.Cu) (net 33)) - (segment (start 130.3779 84.2991) (end 131.8274 85.7486) (width 0.254) (layer B.Cu) (net 33)) - (segment (start 120.3671 84.2991) (end 130.3779 84.2991) (width 0.254) (layer B.Cu) (net 33)) - (segment (start 117.348 81.28) (end 120.3671 84.2991) (width 0.254) (layer B.Cu) (net 33)) - (segment (start 177.7867 88.7615) (end 175.514 88.7615) (width 0.254) (layer F.Cu) (net 34)) - (segment (start 178.1792 89.154) (end 177.7867 88.7615) (width 0.254) (layer F.Cu) (net 34)) - (segment (start 179.959 89.154) (end 178.1792 89.154) (width 0.254) (layer F.Cu) (net 34)) - (segment (start 175.514 89.592) (end 175.514 88.7615) (width 0.254) (layer F.Cu) (net 34)) - (segment (start 177.5065 89.954) (end 177.1445 89.592) (width 0.254) (layer F.Cu) (net 35)) - (segment (start 179.959 89.954) (end 177.5065 89.954) (width 0.254) (layer F.Cu) (net 35)) - (segment (start 176.464 89.592) (end 177.1445 89.592) (width 0.254) (layer F.Cu) (net 35)) - (via (at 137.5661 88.0991) (size 0.889) (layers F.Cu B.Cu) (net 36)) - (via (at 142.8512 89.2553) (size 0.889) (layers F.Cu B.Cu) (net 36)) - (segment (start 172.2272 84.775) (end 171.597 84.775) (width 0.254) (layer F.Cu) (net 36)) - (segment (start 138.7223 89.2553) (end 142.8512 89.2553) (width 0.254) (layer B.Cu) (net 36)) - (segment (start 137.5661 88.0991) (end 138.7223 89.2553) (width 0.254) (layer B.Cu) (net 36)) - (segment (start 171.597 84.1448) (end 171.597 84.775) (width 0.254) (layer F.Cu) (net 36)) - (segment (start 171.3962 83.944) (end 171.597 84.1448) (width 0.254) (layer F.Cu) (net 36)) - (segment (start 165.2515 83.944) (end 171.3962 83.944) (width 0.254) (layer F.Cu) (net 36)) - (segment (start 161.3326 87.8629) (end 165.2515 83.944) (width 0.254) (layer F.Cu) (net 36)) - (segment (start 157.7977 87.8629) (end 161.3326 87.8629) (width 0.254) (layer F.Cu) (net 36)) - (segment (start 156.4053 89.2553) (end 157.7977 87.8629) (width 0.254) (layer F.Cu) (net 36)) - (segment (start 142.8512 89.2553) (end 156.4053 89.2553) (width 0.254) (layer F.Cu) (net 36)) - (segment (start 133.3426 88.3197) (end 132.2616 87.2387) (width 0.254) (layer F.Cu) (net 36)) - (segment (start 135.3876 88.3197) (end 133.3426 88.3197) (width 0.254) (layer F.Cu) (net 36)) - (segment (start 135.5716 88.5037) (end 135.3876 88.3197) (width 0.254) (layer F.Cu) (net 36)) - (segment (start 137.1615 88.5037) (end 135.5716 88.5037) (width 0.254) (layer F.Cu) (net 36)) - (segment (start 137.5661 88.0991) (end 137.1615 88.5037) (width 0.254) (layer F.Cu) (net 36)) + (segment (start 137.795 88.519) (end 137.795 91.567) (width 0.254) (layer B.Cu) (net 27)) + (segment (start 137.795 88.519) (end 137.1615 88.5037) (width 0.254) (layer F.Cu) (net 27)) + (segment (start 137.1615 88.5037) (end 135.5716 88.5037) (width 0.254) (layer F.Cu) (net 27)) + (segment (start 135.5716 88.5037) (end 135.3876 88.3197) (width 0.254) (layer F.Cu) (net 27)) + (segment (start 135.3876 88.3197) (end 133.3426 88.3197) (width 0.254) (layer F.Cu) (net 27)) + (segment (start 132.2616 87.2387) (end 133.3426 88.3197) (width 0.254) (layer F.Cu) (net 27)) + (via (at 137.795 88.519) (size 0.889) (layers F.Cu B.Cu) (net 27)) + (segment (start 126.238 97.79) (end 124.968 96.52) (width 0.254) (layer B.Cu) (net 27) (tstamp 549EE826)) + (segment (start 128.27 97.79) (end 126.238 97.79) (width 0.254) (layer B.Cu) (net 27) (tstamp 549EE824)) + (segment (start 128.778 97.282) (end 128.27 97.79) (width 0.254) (layer B.Cu) (net 27) (tstamp 549EE820)) + (segment (start 128.778 95.885) (end 128.778 97.282) (width 0.254) (layer B.Cu) (net 27) (tstamp 549EE81A)) + (segment (start 129.413 95.25) (end 128.778 95.885) (width 0.254) (layer B.Cu) (net 27) (tstamp 549EE818)) + (segment (start 130.429 95.25) (end 129.413 95.25) (width 0.254) (layer B.Cu) (net 27) (tstamp 549EE80B)) + (segment (start 132.588 93.091) (end 130.429 95.25) (width 0.254) (layer B.Cu) (net 27) (tstamp 549EE805)) + (segment (start 136.271 93.091) (end 132.588 93.091) (width 0.254) (layer B.Cu) (net 27) (tstamp 549EE801)) + (segment (start 137.795 91.567) (end 136.271 93.091) (width 0.254) (layer B.Cu) (net 27) (tstamp 549EE7FC)) + (segment (start 146.2124 94.9044) (end 147.828 96.52) (width 0.254) (layer F.Cu) (net 28)) + (segment (start 142.0504 94.9044) (end 146.2124 94.9044) (width 0.254) (layer F.Cu) (net 28)) + (segment (start 140.1683 93.0223) (end 142.0504 94.9044) (width 0.254) (layer F.Cu) (net 28)) + (segment (start 139.4606 93.0223) (end 140.1683 93.0223) (width 0.254) (layer F.Cu) (net 28)) + (segment (start 138.767 92.3287) (end 139.4606 93.0223) (width 0.254) (layer F.Cu) (net 28)) + (segment (start 139.3225 93.5918) (end 138.4132 92.6825) (width 0.254) (layer F.Cu) (net 29)) + (segment (start 140.0301 93.5918) (end 139.3225 93.5918) (width 0.254) (layer F.Cu) (net 29)) + (segment (start 141.8396 95.4013) (end 140.0301 93.5918) (width 0.254) (layer F.Cu) (net 29)) + (segment (start 144.1693 95.4013) (end 141.8396 95.4013) (width 0.254) (layer F.Cu) (net 29)) + (segment (start 145.288 96.52) (end 144.1693 95.4013) (width 0.254) (layer F.Cu) (net 29)) + (segment (start 142.2507 96.52) (end 142.748 96.52) (width 0.254) (layer F.Cu) (net 30)) + (segment (start 139.9237 94.193) (end 142.2507 96.52) (width 0.254) (layer F.Cu) (net 30)) + (segment (start 139.2159 94.193) (end 139.9237 94.193) (width 0.254) (layer F.Cu) (net 30)) + (segment (start 138.0593 93.0364) (end 139.2159 94.193) (width 0.254) (layer F.Cu) (net 30)) + (segment (start 140.208 95.8925) (end 140.208 96.52) (width 0.254) (layer F.Cu) (net 31)) + (segment (start 137.7056 93.3901) (end 140.208 95.8925) (width 0.254) (layer F.Cu) (net 31)) + (segment (start 137.668 94.8146) (end 137.668 96.52) (width 0.254) (layer F.Cu) (net 32)) + (segment (start 138.0452 94.4374) (end 137.668 94.8146) (width 0.254) (layer F.Cu) (net 32)) + (segment (start 137.3517 93.744) (end 138.0452 94.4374) (width 0.254) (layer F.Cu) (net 32)) + (segment (start 135.128 94.8146) (end 135.128 96.52) (width 0.254) (layer F.Cu) (net 33)) + (segment (start 134.7509 94.4374) (end 135.128 94.8146) (width 0.254) (layer F.Cu) (net 33)) + (segment (start 135.4443 93.744) (end 134.7509 94.4374) (width 0.254) (layer F.Cu) (net 33)) + (via (at 131.8274 85.7486) (size 0.889) (layers F.Cu B.Cu) (net 34)) + (segment (start 147.587 85.3545) (end 147.7995 85.142) (width 0.254) (layer F.Cu) (net 34)) + (segment (start 147.587 85.5345) (end 147.587 85.3545) (width 0.254) (layer F.Cu) (net 34)) + (segment (start 148.88 85.142) (end 147.7995 85.142) (width 0.254) (layer F.Cu) (net 34)) + (segment (start 146.558 85.5345) (end 147.587 85.5345) (width 0.254) (layer F.Cu) (net 34)) + (segment (start 148.88 91.742) (end 147.7995 91.742) (width 0.254) (layer B.Cu) (net 34)) + (segment (start 147.7995 91.208) (end 147.7775 91.186) (width 0.254) (layer F.Cu) (net 34)) + (segment (start 147.7995 91.742) (end 147.7995 91.208) (width 0.254) (layer F.Cu) (net 34)) + (segment (start 147.0025 91.186) (end 147.7775 91.186) (width 0.254) (layer F.Cu) (net 34)) + (segment (start 148.88 91.742) (end 147.7995 91.742) (width 0.254) (layer F.Cu) (net 34)) + (segment (start 148.88 85.142) (end 147.7995 85.142) (width 0.254) (layer B.Cu) (net 34)) + (segment (start 131.8274 85.7487) (end 131.8274 85.7486) (width 0.254) (layer F.Cu) (net 34)) + (segment (start 132.187 85.7487) (end 131.8274 85.7487) (width 0.254) (layer F.Cu) (net 34)) + (segment (start 132.9693 86.531) (end 132.187 85.7487) (width 0.254) (layer F.Cu) (net 34)) + (segment (start 144.8476 86.9437) (end 145.4227 87.5188) (width 0.254) (layer B.Cu) (net 34)) + (segment (start 135.8106 86.9437) (end 144.8476 86.9437) (width 0.254) (layer B.Cu) (net 34)) + (segment (start 135.3923 87.362) (end 135.8106 86.9437) (width 0.254) (layer B.Cu) (net 34)) + (segment (start 133.4408 87.362) (end 135.3923 87.362) (width 0.254) (layer B.Cu) (net 34)) + (segment (start 131.8274 85.7486) (end 133.4408 87.362) (width 0.254) (layer B.Cu) (net 34)) + (segment (start 147.7995 85.142) (end 145.4227 87.5188) (width 0.254) (layer B.Cu) (net 34)) + (segment (start 145.4227 89.3652) (end 147.7995 91.742) (width 0.254) (layer B.Cu) (net 34)) + (segment (start 145.4227 87.5188) (end 145.4227 89.3652) (width 0.254) (layer B.Cu) (net 34)) + (segment (start 130.3779 84.2991) (end 131.8274 85.7486) (width 0.254) (layer B.Cu) (net 34)) + (segment (start 120.3671 84.2991) (end 130.3779 84.2991) (width 0.254) (layer B.Cu) (net 34)) + (segment (start 117.348 81.28) (end 120.3671 84.2991) (width 0.254) (layer B.Cu) (net 34)) + (segment (start 179.959 89.154) (end 178.435 89.154) (width 0.254) (layer F.Cu) (net 35)) + (segment (start 177.866 88.077) (end 176.968 88.077) (width 0.254) (layer F.Cu) (net 35) (tstamp 549EE5F7)) + (segment (start 178.054 88.265) (end 177.866 88.077) (width 0.254) (layer F.Cu) (net 35) (tstamp 549EE5F5)) + (segment (start 178.054 88.773) (end 178.054 88.265) (width 0.254) (layer F.Cu) (net 35) (tstamp 549EE5F2)) + (segment (start 178.435 89.154) (end 178.054 88.773) (width 0.254) (layer F.Cu) (net 35) (tstamp 549EE5EB)) + (segment (start 179.959 89.954) (end 176.991 89.954) (width 0.254) (layer F.Cu) (net 36)) + (segment (start 176.991 89.954) (end 176.968 89.977) (width 0.254) (layer F.Cu) (net 36) (tstamp 549EE5E6)) (via (at 133.178 89.6214) (size 0.889) (layers F.Cu B.Cu) (net 37)) (segment (start 128.988 90.094) (end 128.988 88.8135) (width 0.254) (layer B.Cu) (net 37)) (segment (start 129.032 88.7695) (end 129.032 87.8205) (width 0.254) (layer B.Cu) (net 37)) @@ -2095,15 +2062,11 @@ (segment (start 157.1625 91.694) (end 157.9375 91.694) (width 0.254) (layer F.Cu) (net 41)) (segment (start 112.268 81.28) (end 112.268 82.3725) (width 0.254) (layer F.Cu) (net 41)) (segment (start 160.693 89.494) (end 161.8236 89.494) (width 0.254) (layer F.Cu) (net 41)) - (segment (start 170.2966 84.9229) (end 169.2405 85.979) (width 0.254) (layer F.Cu) (net 41)) - (segment (start 170.2966 84.775) (end 170.2966 84.9229) (width 0.254) (layer F.Cu) (net 41)) - (segment (start 170.9268 84.775) (end 170.2966 84.775) (width 0.254) (layer F.Cu) (net 41)) (segment (start 157.0615 92.824) (end 157.1625 92.723) (width 0.254) (layer F.Cu) (net 41)) (segment (start 156.9085 92.824) (end 157.0615 92.824) (width 0.254) (layer F.Cu) (net 41)) (segment (start 157.1625 91.694) (end 157.1625 92.723) (width 0.254) (layer F.Cu) (net 41)) (segment (start 156.9085 93.853) (end 156.9085 92.824) (width 0.254) (layer F.Cu) (net 41)) (segment (start 168.4655 85.979) (end 168.853 85.979) (width 0.254) (layer F.Cu) (net 41)) - (segment (start 168.853 85.979) (end 169.2405 85.979) (width 0.254) (layer F.Cu) (net 41)) (segment (start 170.2305 87.3565) (end 170.2305 89.154) (width 0.254) (layer F.Cu) (net 41)) (segment (start 168.853 85.979) (end 170.2305 87.3565) (width 0.254) (layer F.Cu) (net 41)) (segment (start 171.577 89.154) (end 170.2305 89.154) (width 0.254) (layer F.Cu) (net 41)) @@ -2161,6 +2124,11 @@ (segment (start 135.1727 89.2959) (end 135.1727 91.8926) (width 0.254) (layer F.Cu) (net 41)) (segment (start 141.242 89.8537) (end 140.5486 89.1602) (width 0.254) (layer F.Cu) (net 41)) (segment (start 160.528 96.52) (end 163.3855 96.52) (width 0.254) (layer F.Cu) (net 42)) + (segment (start 174.568 89.027) (end 175.26 89.027) (width 0.254) (layer F.Cu) (net 43)) + (segment (start 176.53 86.36) (end 177.673 86.36) (width 0.254) (layer F.Cu) (net 43) (tstamp 549EE67F)) + (segment (start 175.768 87.122) (end 176.53 86.36) (width 0.254) (layer F.Cu) (net 43) (tstamp 549EE67D)) + (segment (start 175.768 88.519) (end 175.768 87.122) (width 0.254) (layer F.Cu) (net 43) (tstamp 549EE679)) + (segment (start 175.26 89.027) (end 175.768 88.519) (width 0.254) (layer F.Cu) (net 43) (tstamp 549EE675)) (segment (start 129.125 92.2515) (end 128.157 92.2515) (width 0.254) (layer F.Cu) (net 43)) (via (at 127.508 92.9005) (size 0.889) (layers F.Cu B.Cu) (net 43)) (segment (start 128.157 92.2515) (end 127.508 92.9005) (width 0.254) (layer F.Cu) (net 43) (tstamp 549C1092)) @@ -2171,9 +2139,6 @@ (segment (start 174.752 92.2655) (end 176.5935 92.2655) (width 0.254) (layer F.Cu) (net 43)) (via (at 176.7205 92.3925) (size 0.889) (layers F.Cu B.Cu) (net 43)) (segment (start 176.5935 92.2655) (end 176.7205 92.3925) (width 0.254) (layer F.Cu) (net 43) (tstamp 549C0F96)) - (segment (start 174.564 87.192) (end 174.06 87.192) (width 0.254) (layer F.Cu) (net 43)) - (via (at 173.228 86.36) (size 0.889) (layers F.Cu B.Cu) (net 43)) - (segment (start 174.06 87.192) (end 173.228 86.36) (width 0.254) (layer F.Cu) (net 43) (tstamp 549C0F85)) (segment (start 137.705525 84.409872) (end 137.705525 84.417475) (width 0.254) (layer F.Cu) (net 43)) (via (at 136.525 85.471) (size 0.889) (layers F.Cu B.Cu) (net 43)) (segment (start 136.652 85.471) (end 136.525 85.471) (width 0.254) (layer F.Cu) (net 43) (tstamp 549C0E6B)) @@ -2217,79 +2182,75 @@ (via (at 187.071 96.266) (size 0.889) (layers F.Cu B.Cu) (net 43)) (segment (start 179.959 87.554) (end 178.359 87.554) (width 0.254) (layer F.Cu) (net 43)) (via (at 177.673 84.328) (size 0.889) (layers F.Cu B.Cu) (net 43)) - (segment (start 177.673 86.868) (end 177.673 84.328) (width 0.254) (layer F.Cu) (net 43) (tstamp 549C0771)) + (segment (start 177.673 86.868) (end 177.673 86.36) (width 0.254) (layer F.Cu) (net 43) (tstamp 549C0771)) + (segment (start 177.673 86.36) (end 177.673 84.328) (width 0.254) (layer F.Cu) (net 43) (tstamp 549EE683)) (segment (start 178.359 87.554) (end 177.673 86.868) (width 0.254) (layer F.Cu) (net 43) (tstamp 549C076D)) (segment (start 184.2135 81.788) (end 182.0545 81.788) (width 0.254) (layer F.Cu) (net 43)) - (segment (start 173.2485 87.7163) (end 172.2072 86.675) (width 0.254) (layer F.Cu) (net 44)) - (segment (start 173.2485 89.592) (end 173.2485 87.7163) (width 0.254) (layer F.Cu) (net 44)) - (segment (start 174.564 89.592) (end 173.2485 89.592) (width 0.254) (layer F.Cu) (net 44)) - (segment (start 171.577 86.675) (end 172.2072 86.675) (width 0.254) (layer F.Cu) (net 44)) - (segment (start 183.355 96.266) (end 181.2925 96.266) (width 0.254) (layer F.Cu) (net 45)) - (segment (start 180.253 93.654) (end 185.753 93.654) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 180.1495 81.788) (end 180.1495 82.817) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 180.253 82.9205) (end 180.1495 82.817) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 180.253 83.3235) (end 180.253 82.9205) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 180.253 84.654) (end 180.253 83.9887) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 180.253 83.9887) (end 180.253 83.3235) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 186.1185 82.958) (end 186.1185 81.788) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 185.753 83.3235) (end 186.1185 82.958) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 185.753 84.654) (end 185.753 83.3235) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 185.753 93.654) (end 185.753 92.3235) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 185.0878 91.6583) (end 185.753 92.3235) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 185.0878 85.3192) (end 185.0878 91.6583) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 181.5835 85.3192) (end 185.0878 85.3192) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 180.253 83.9887) (end 181.5835 85.3192) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 185.0878 85.3192) (end 185.753 84.654) (width 0.254) (layer F.Cu) (net 46)) - (segment (start 153.38 91.642) (end 153.38 85.142) (width 0.254) (layer B.Cu) (net 47)) - (segment (start 154.4825 91.664) (end 154.4605 91.642) (width 0.254) (layer F.Cu) (net 47)) - (segment (start 154.4825 91.694) (end 154.4825 91.664) (width 0.254) (layer F.Cu) (net 47)) - (segment (start 153.38 91.642) (end 154.4605 91.642) (width 0.254) (layer F.Cu) (net 47)) - (segment (start 155.2575 91.694) (end 154.4825 91.694) (width 0.254) (layer F.Cu) (net 47)) - (segment (start 123.2405 93.726) (end 123.4945 93.472) (width 0.254) (layer F.Cu) (net 48)) - (segment (start 121.572 93.726) (end 123.2405 93.726) (width 0.254) (layer F.Cu) (net 48)) - (segment (start 124.2695 93.472) (end 123.4945 93.472) (width 0.254) (layer F.Cu) (net 48)) - (segment (start 175.0695 96.266) (end 174.682 96.266) (width 0.254) (layer F.Cu) (net 49)) - (segment (start 174.752 96.196) (end 174.752 94.1705) (width 0.254) (layer F.Cu) (net 49)) - (segment (start 174.682 96.266) (end 174.752 96.196) (width 0.254) (layer F.Cu) (net 49)) - (segment (start 173.2785 93.726) (end 173.723 94.1705) (width 0.254) (layer F.Cu) (net 49)) - (segment (start 171.577 93.726) (end 173.2785 93.726) (width 0.254) (layer F.Cu) (net 49)) - (segment (start 174.752 94.1705) (end 173.723 94.1705) (width 0.254) (layer F.Cu) (net 49)) - (segment (start 168.8595 93.726) (end 171.577 93.726) (width 0.254) (layer F.Cu) (net 49)) - (segment (start 166.0655 96.52) (end 168.8595 93.726) (width 0.254) (layer F.Cu) (net 49)) - (segment (start 165.2905 96.52) (end 166.0655 96.52) (width 0.254) (layer F.Cu) (net 49)) - (via (at 134.3581 90.1957) (size 0.889) (layers F.Cu B.Cu) (net 50)) - (segment (start 122.8725 85.9155) (end 125.095 88.138) (width 0.254) (layer F.Cu) (net 50)) - (segment (start 122.8725 84.328) (end 122.8725 85.9155) (width 0.254) (layer F.Cu) (net 50)) - (segment (start 134.3581 90.5879) (end 134.3581 90.1957) (width 0.254) (layer F.Cu) (net 50)) - (segment (start 133.3231 91.6229) (end 134.3581 90.5879) (width 0.254) (layer F.Cu) (net 50)) - (segment (start 134.3581 89.634) (end 134.3581 90.1957) (width 0.254) (layer B.Cu) (net 50)) - (segment (start 131.7442 87.0201) (end 134.3581 89.634) (width 0.254) (layer B.Cu) (net 50)) - (segment (start 126.2129 87.0201) (end 131.7442 87.0201) (width 0.254) (layer B.Cu) (net 50)) - (segment (start 125.095 88.138) (end 126.2129 87.0201) (width 0.254) (layer B.Cu) (net 50)) - (segment (start 120.015 88.138) (end 120.015 92.9005) (width 0.254) (layer B.Cu) (net 51)) - (segment (start 131.1588 93.3509) (end 129.9351 94.5746) (width 0.254) (layer B.Cu) (net 51)) - (segment (start 129.9351 94.5746) (end 126.836 94.5746) (width 0.254) (layer B.Cu) (net 51)) - (segment (start 131.1588 93.0795) (end 132.9693 91.269) (width 0.254) (layer F.Cu) (net 51)) - (segment (start 131.1588 93.0795) (end 131.1588 93.3509) (width 0.254) (layer F.Cu) (net 51)) - (via (at 131.1588 93.3509) (size 0.889) (layers F.Cu B.Cu) (net 51)) - (segment (start 121.6891 94.5746) (end 126.836 94.5746) (width 0.254) (layer B.Cu) (net 51) (tstamp 549C10F1)) - (segment (start 120.015 92.9005) (end 121.6891 94.5746) (width 0.254) (layer B.Cu) (net 51) (tstamp 549C10E8)) - (segment (start 120.015 90.7285) (end 120.0785 90.792) (width 0.254) (layer F.Cu) (net 51)) - (segment (start 120.015 88.138) (end 120.015 90.7285) (width 0.254) (layer F.Cu) (net 51)) - (segment (start 120.0785 91.821) (end 120.0785 90.792) (width 0.254) (layer F.Cu) (net 51)) - (segment (start 143.891 91.059) (end 143.891 90.932) (width 0.254) (layer B.Cu) (net 52)) - (segment (start 145.0975 91.186) (end 144.3225 91.186) (width 0.254) (layer F.Cu) (net 52)) - (segment (start 143.891 91.059) (end 144.2698 91.1333) (width 0.254) (layer F.Cu) (net 52)) - (segment (start 144.2698 91.1333) (end 144.3225 91.186) (width 0.254) (layer F.Cu) (net 52)) - (via (at 143.891 91.059) (size 0.889) (layers F.Cu B.Cu) (net 52)) - (segment (start 136.3933 88.5143) (end 136.3933 87.7275) (width 0.254) (layer B.Cu) (net 52) (tstamp 549C0928)) - (segment (start 138.049 90.17) (end 136.3933 88.5143) (width 0.254) (layer B.Cu) (net 52) (tstamp 549C0925)) - (segment (start 143.129 90.17) (end 138.049 90.17) (width 0.254) (layer B.Cu) (net 52) (tstamp 549C0922)) - (segment (start 143.891 90.932) (end 143.129 90.17) (width 0.254) (layer B.Cu) (net 52) (tstamp 549C091F)) - (via (at 136.3933 87.7275) (size 0.889) (layers F.Cu B.Cu) (net 52)) - (segment (start 133.4582 87.7275) (end 136.3933 87.7275) (width 0.254) (layer F.Cu) (net 52)) - (segment (start 132.6155 86.8848) (end 133.4582 87.7275) (width 0.254) (layer F.Cu) (net 52)) - (segment (start 136.3933 88.0597) (end 136.3933 87.7275) (width 0.254) (layer B.Cu) (net 52)) + (segment (start 183.355 96.266) (end 181.2925 96.266) (width 0.254) (layer F.Cu) (net 44)) + (segment (start 153.38 91.642) (end 153.38 85.142) (width 0.254) (layer B.Cu) (net 45)) + (segment (start 154.4825 91.664) (end 154.4605 91.642) (width 0.254) (layer F.Cu) (net 45)) + (segment (start 154.4825 91.694) (end 154.4825 91.664) (width 0.254) (layer F.Cu) (net 45)) + (segment (start 153.38 91.642) (end 154.4605 91.642) (width 0.254) (layer F.Cu) (net 45)) + (segment (start 155.2575 91.694) (end 154.4825 91.694) (width 0.254) (layer F.Cu) (net 45)) + (segment (start 123.2405 93.726) (end 123.4945 93.472) (width 0.254) (layer F.Cu) (net 46)) + (segment (start 121.572 93.726) (end 123.2405 93.726) (width 0.254) (layer F.Cu) (net 46)) + (segment (start 124.2695 93.472) (end 123.4945 93.472) (width 0.254) (layer F.Cu) (net 46)) + (segment (start 175.0695 96.266) (end 174.682 96.266) (width 0.254) (layer F.Cu) (net 47)) + (segment (start 174.752 96.196) (end 174.752 94.1705) (width 0.254) (layer F.Cu) (net 47)) + (segment (start 174.682 96.266) (end 174.752 96.196) (width 0.254) (layer F.Cu) (net 47)) + (segment (start 173.2785 93.726) (end 173.723 94.1705) (width 0.254) (layer F.Cu) (net 47)) + (segment (start 171.577 93.726) (end 173.2785 93.726) (width 0.254) (layer F.Cu) (net 47)) + (segment (start 174.752 94.1705) (end 173.723 94.1705) (width 0.254) (layer F.Cu) (net 47)) + (segment (start 168.8595 93.726) (end 171.577 93.726) (width 0.254) (layer F.Cu) (net 47)) + (segment (start 166.0655 96.52) (end 168.8595 93.726) (width 0.254) (layer F.Cu) (net 47)) + (segment (start 165.2905 96.52) (end 166.0655 96.52) (width 0.254) (layer F.Cu) (net 47)) + (segment (start 180.253 93.654) (end 185.753 93.654) (width 0.254) (layer F.Cu) (net 48)) + (segment (start 180.1495 81.788) (end 180.1495 82.817) (width 0.254) (layer F.Cu) (net 48)) + (segment (start 180.253 82.9205) (end 180.1495 82.817) (width 0.254) (layer F.Cu) (net 48)) + (segment (start 180.253 83.3235) (end 180.253 82.9205) (width 0.254) (layer F.Cu) (net 48)) + (segment (start 180.253 84.654) (end 180.253 83.9887) (width 0.254) (layer F.Cu) (net 48)) + (segment (start 180.253 83.9887) (end 180.253 83.3235) (width 0.254) (layer F.Cu) (net 48)) + (segment (start 186.1185 82.958) (end 186.1185 81.788) (width 0.254) (layer F.Cu) (net 48)) + (segment (start 185.753 83.3235) (end 186.1185 82.958) (width 0.254) (layer F.Cu) (net 48)) + (segment (start 185.753 84.654) (end 185.753 83.3235) (width 0.254) (layer F.Cu) (net 48)) + (segment (start 185.753 93.654) (end 185.753 92.3235) (width 0.254) (layer F.Cu) (net 48)) + (segment (start 185.0878 91.6583) (end 185.753 92.3235) (width 0.254) (layer F.Cu) (net 48)) + (segment (start 185.0878 85.3192) (end 185.0878 91.6583) (width 0.254) (layer F.Cu) (net 48)) + (segment (start 181.5835 85.3192) (end 185.0878 85.3192) (width 0.254) (layer F.Cu) (net 48)) + (segment (start 180.253 83.9887) (end 181.5835 85.3192) (width 0.254) (layer F.Cu) (net 48)) + (segment (start 185.0878 85.3192) (end 185.753 84.654) (width 0.254) (layer F.Cu) (net 48)) + (via (at 134.3581 90.1957) (size 0.889) (layers F.Cu B.Cu) (net 49)) + (segment (start 122.8725 85.9155) (end 125.095 88.138) (width 0.254) (layer F.Cu) (net 49)) + (segment (start 122.8725 84.328) (end 122.8725 85.9155) (width 0.254) (layer F.Cu) (net 49)) + (segment (start 134.3581 90.5879) (end 134.3581 90.1957) (width 0.254) (layer F.Cu) (net 49)) + (segment (start 133.3231 91.6229) (end 134.3581 90.5879) (width 0.254) (layer F.Cu) (net 49)) + (segment (start 134.3581 89.634) (end 134.3581 90.1957) (width 0.254) (layer B.Cu) (net 49)) + (segment (start 131.7442 87.0201) (end 134.3581 89.634) (width 0.254) (layer B.Cu) (net 49)) + (segment (start 126.2129 87.0201) (end 131.7442 87.0201) (width 0.254) (layer B.Cu) (net 49)) + (segment (start 125.095 88.138) (end 126.2129 87.0201) (width 0.254) (layer B.Cu) (net 49)) + (segment (start 120.015 88.138) (end 120.015 92.9005) (width 0.254) (layer B.Cu) (net 50)) + (segment (start 131.1588 93.3509) (end 129.9351 94.5746) (width 0.254) (layer B.Cu) (net 50)) + (segment (start 129.9351 94.5746) (end 126.836 94.5746) (width 0.254) (layer B.Cu) (net 50)) + (segment (start 131.1588 93.0795) (end 132.9693 91.269) (width 0.254) (layer F.Cu) (net 50)) + (segment (start 131.1588 93.0795) (end 131.1588 93.3509) (width 0.254) (layer F.Cu) (net 50)) + (via (at 131.1588 93.3509) (size 0.889) (layers F.Cu B.Cu) (net 50)) + (segment (start 121.6891 94.5746) (end 126.836 94.5746) (width 0.254) (layer B.Cu) (net 50) (tstamp 549C10F1)) + (segment (start 120.015 92.9005) (end 121.6891 94.5746) (width 0.254) (layer B.Cu) (net 50) (tstamp 549C10E8)) + (segment (start 120.015 90.7285) (end 120.0785 90.792) (width 0.254) (layer F.Cu) (net 50)) + (segment (start 120.015 88.138) (end 120.015 90.7285) (width 0.254) (layer F.Cu) (net 50)) + (segment (start 120.0785 91.821) (end 120.0785 90.792) (width 0.254) (layer F.Cu) (net 50)) + (segment (start 136.3933 87.7275) (end 143.0995 87.7275) (width 0.254) (layer B.Cu) (net 51)) + (segment (start 143.891 88.519) (end 143.891 91.059) (width 0.254) (layer B.Cu) (net 51) (tstamp 549EE7E1)) + (segment (start 143.0995 87.7275) (end 143.891 88.519) (width 0.254) (layer B.Cu) (net 51) (tstamp 549EE7D8)) + (segment (start 143.891 91.059) (end 143.891 90.932) (width 0.254) (layer B.Cu) (net 51)) + (segment (start 145.0975 91.186) (end 144.3225 91.186) (width 0.254) (layer F.Cu) (net 51)) + (via (at 143.891 91.059) (size 0.889) (layers F.Cu B.Cu) (net 51)) + (segment (start 144.2698 91.1333) (end 144.3225 91.186) (width 0.254) (layer F.Cu) (net 51)) + (segment (start 143.891 91.059) (end 144.2698 91.1333) (width 0.254) (layer F.Cu) (net 51)) + (via (at 136.3933 87.7275) (size 0.889) (layers F.Cu B.Cu) (net 51)) + (segment (start 133.4582 87.7275) (end 136.3933 87.7275) (width 0.254) (layer F.Cu) (net 51)) + (segment (start 132.6155 86.8848) (end 133.4582 87.7275) (width 0.254) (layer F.Cu) (net 51)) + (segment (start 136.3933 88.0597) (end 136.3933 87.7275) (width 0.254) (layer B.Cu) (net 51)) (zone (net 43) (net_name GND) (layer B.Cu) (tstamp 53370432) (hatch edge 0.508) (connect_pads (clearance 0.508)) @@ -2315,15 +2276,14 @@ (xy 137.391339 95.122759) (xy 136.877697 95.334991) (xy 136.484372 95.72763) (xy 136.39805 95.935514) (xy 136.313009 95.729697) (xy 135.92037 95.336372) (xy 135.407099 95.123244) (xy 134.851339 95.122759) (xy 134.337697 95.334991) (xy 133.944372 95.72763) (xy 133.85805 95.935514) (xy 133.773009 95.729697) (xy 133.38037 95.336372) (xy 132.867099 95.123244) (xy 132.311339 95.122759) - (xy 131.797697 95.334991) (xy 131.404372 95.72763) (xy 131.31805 95.935514) (xy 131.233009 95.729697) (xy 130.84037 95.336372) - (xy 130.408573 95.157075) (xy 130.408573 95.157074) (xy 130.473915 95.113415) (xy 131.15693 94.430399) (xy 131.372584 94.430587) - (xy 131.769489 94.266589) (xy 132.073422 93.963186) (xy 132.238113 93.566568) (xy 132.238338 93.3073) (xy 135.4715 93.3073) - (xy 135.4715 93.307299) (xy 135.763104 93.249296) (xy 135.763105 93.249296) (xy 136.010315 93.084115) (xy 136.960831 92.133599) - (xy 137.176484 92.133787) (xy 137.573389 91.969789) (xy 137.877322 91.666386) (xy 138.042013 91.269768) (xy 138.042308 90.930668) - (xy 138.049 90.932) (xy 142.811609 90.932) (xy 142.811313 91.272784) (xy 142.958964 91.630128) (xy 142.786378 91.802414) - (xy 142.621687 92.199032) (xy 142.621313 92.628484) (xy 142.785311 93.025389) (xy 143.088714 93.329322) (xy 143.485332 93.494013) - (xy 143.702872 93.494202) (xy 144.734884 94.526215) (xy 144.734885 94.526215) (xy 144.982095 94.691396) (xy 145.2737 94.7494) - (xy 155.139769 94.7494) (xy 155.513427 95.123057) + (xy 131.797697 95.334991) (xy 131.404372 95.72763) (xy 131.31805 95.935514) (xy 131.233009 95.729697) (xy 131.13006 95.626569) + (xy 132.90363 93.853) (xy 136.271 93.853) (xy 136.271 93.852999) (xy 136.562604 93.794996) (xy 136.562605 93.794996) + (xy 136.809815 93.629815) (xy 138.333815 92.105816) (xy 138.333815 92.105815) (xy 138.498996 91.858605) (xy 138.556999 91.567) + (xy 138.557 91.567) (xy 138.557 89.283641) (xy 138.709622 89.131286) (xy 138.874313 88.734668) (xy 138.874526 88.4895) + (xy 142.783869 88.4895) (xy 143.129 88.83463) (xy 143.129 90.294358) (xy 142.976378 90.446714) (xy 142.811687 90.843332) + (xy 142.811313 91.272784) (xy 142.958964 91.630128) (xy 142.786378 91.802414) (xy 142.621687 92.199032) (xy 142.621313 92.628484) + (xy 142.785311 93.025389) (xy 143.088714 93.329322) (xy 143.485332 93.494013) (xy 143.702872 93.494202) (xy 144.734884 94.526215) + (xy 144.734885 94.526215) (xy 144.982095 94.691396) (xy 145.2737 94.7494) (xy 155.139769 94.7494) (xy 155.513427 95.123057) ) ) (filled_polygon @@ -2336,163 +2296,170 @@ (xy 182.981354 90.1702) (xy 182.526641 90.169803) (xy 182.106389 90.343447) (xy 181.784577 90.664698) (xy 181.6102 91.084646) (xy 181.609803 91.539359) (xy 181.783447 91.959611) (xy 182.104698 92.281423) (xy 182.524646 92.4558) (xy 182.979359 92.456197) (xy 183.399611 92.282553) (xy 183.721423 91.961302) (xy 183.8958 91.541354) (xy 183.896197 91.086641) (xy 183.896197 93.9165) - (xy 172.092257 93.9165) (xy 172.092257 98.096) (xy 115.608607 98.096) (xy 115.608607 97.500212) (xy 114.808 96.699605) - (xy 114.628395 96.87921) (xy 114.628395 96.52) (xy 113.827788 95.719393) (xy 113.66511 95.766053) (xy 113.66511 95.632245) - (xy 113.568641 95.398771) (xy 113.390168 95.219987) (xy 113.156864 95.123111) (xy 112.904245 95.12289) (xy 112.67311 95.12289) - (xy 112.67311 94.037755) (xy 112.67311 91.786245) (xy 112.67311 87.537755) (xy 112.67311 85.286245) (xy 112.576641 85.052771) - (xy 112.398168 84.873987) (xy 112.164864 84.777111) (xy 111.912245 84.77689) (xy 111.57375 84.777) (xy 111.415 84.93575) - (xy 111.415 86.285) (xy 112.51425 86.285) (xy 112.673 86.12625) (xy 112.67311 85.286245) (xy 112.67311 87.537755) - (xy 112.673 86.69775) (xy 112.51425 86.539) (xy 111.415 86.539) (xy 111.415 87.88825) (xy 111.57375 88.047) - (xy 111.912245 88.04711) (xy 112.164864 88.046889) (xy 112.398168 87.950013) (xy 112.576641 87.771229) (xy 112.67311 87.537755) - (xy 112.67311 91.786245) (xy 112.576641 91.552771) (xy 112.398168 91.373987) (xy 112.164864 91.277111) (xy 111.912245 91.27689) - (xy 111.57375 91.277) (xy 111.415 91.43575) (xy 111.415 92.785) (xy 112.51425 92.785) (xy 112.673 92.62625) - (xy 112.67311 91.786245) (xy 112.67311 94.037755) (xy 112.673 93.19775) (xy 112.51425 93.039) (xy 111.415 93.039) - (xy 111.415 94.38825) (xy 111.57375 94.547) (xy 111.912245 94.54711) (xy 112.164864 94.546889) (xy 112.398168 94.450013) - (xy 112.576641 94.271229) (xy 112.67311 94.037755) (xy 112.67311 95.12289) (xy 111.380245 95.12289) (xy 111.146771 95.219359) - (xy 110.967987 95.397832) (xy 110.871111 95.631136) (xy 110.87089 95.883755) (xy 110.87089 97.407755) (xy 110.967359 97.641229) - (xy 111.145832 97.820013) (xy 111.379136 97.916889) (xy 111.631755 97.91711) (xy 113.155755 97.91711) (xy 113.389229 97.820641) - (xy 113.568013 97.642168) (xy 113.664889 97.408864) (xy 113.665007 97.273916) (xy 113.827788 97.320607) (xy 114.628395 96.52) - (xy 114.628395 96.87921) (xy 114.007393 97.500212) (xy 114.076858 97.742396) (xy 114.600304 97.929143) (xy 115.155369 97.90136) - (xy 115.539142 97.742396) (xy 115.608607 97.500212) (xy 115.608607 98.096) (xy 110.184 98.096) (xy 110.184 94.452574) - (xy 110.411136 94.546889) (xy 110.663755 94.54711) (xy 111.00225 94.547) (xy 111.161 94.38825) (xy 111.161 93.039) - (xy 111.141 93.039) (xy 111.141 92.785) (xy 111.161 92.785) (xy 111.161 91.43575) (xy 111.00225 91.277) - (xy 110.663755 91.27689) (xy 110.411136 91.277111) (xy 110.184 91.371425) (xy 110.184 87.952574) (xy 110.411136 88.046889) - (xy 110.663755 88.04711) (xy 111.00225 88.047) (xy 111.161 87.88825) (xy 111.161 86.539) (xy 111.141 86.539) - (xy 111.141 86.285) (xy 111.161 86.285) (xy 111.161 84.93575) (xy 111.00225 84.777) (xy 110.663755 84.77689) - (xy 110.411136 84.777111) (xy 110.184 84.871425) (xy 110.184 79.704) (xy 140.706369 79.704) (xy 140.515381 79.894987) - (xy 140.487099 79.883244) (xy 139.931339 79.882759) (xy 139.417697 80.094991) (xy 139.024372 80.48763) (xy 138.93805 80.695514) - (xy 138.853009 80.489697) (xy 138.46037 80.096372) (xy 137.947099 79.883244) (xy 137.391339 79.882759) (xy 136.877697 80.094991) - (xy 136.484372 80.48763) (xy 136.39805 80.695514) (xy 136.313009 80.489697) (xy 135.92037 80.096372) (xy 135.407099 79.883244) - (xy 134.851339 79.882759) (xy 134.337697 80.094991) (xy 133.944372 80.48763) (xy 133.85805 80.695514) (xy 133.773009 80.489697) - (xy 133.38037 80.096372) (xy 132.867099 79.883244) (xy 132.311339 79.882759) (xy 131.797697 80.094991) (xy 131.404372 80.48763) - (xy 131.31805 80.695514) (xy 131.233009 80.489697) (xy 130.84037 80.096372) (xy 130.327099 79.883244) (xy 129.771339 79.882759) - (xy 129.257697 80.094991) (xy 128.864372 80.48763) (xy 128.77805 80.695514) (xy 128.693009 80.489697) (xy 128.30037 80.096372) - (xy 127.787099 79.883244) (xy 127.231339 79.882759) (xy 126.717697 80.094991) (xy 126.324372 80.48763) (xy 126.23805 80.695514) - (xy 126.153009 80.489697) (xy 125.76037 80.096372) (xy 125.247099 79.883244) (xy 124.691339 79.882759) (xy 124.177697 80.094991) - (xy 123.784372 80.48763) (xy 123.69805 80.695514) (xy 123.613009 80.489697) (xy 123.22037 80.096372) (xy 122.707099 79.883244) - (xy 122.151339 79.882759) (xy 121.637697 80.094991) (xy 121.244372 80.48763) (xy 121.15805 80.695514) (xy 121.073009 80.489697) - (xy 120.68037 80.096372) (xy 120.167099 79.883244) (xy 119.611339 79.882759) (xy 119.097697 80.094991) (xy 118.704372 80.48763) - (xy 118.61805 80.695514) (xy 118.533009 80.489697) (xy 118.14037 80.096372) (xy 117.627099 79.883244) (xy 117.071339 79.882759) - (xy 116.557697 80.094991) (xy 116.164372 80.48763) (xy 116.084605 80.67973) (xy 116.030396 80.548858) (xy 115.788212 80.479393) - (xy 115.608607 80.658998) (xy 115.608607 80.299788) (xy 115.539142 80.057604) (xy 115.015696 79.870857) (xy 114.460631 79.89864) - (xy 114.076858 80.057604) (xy 114.007393 80.299788) (xy 114.808 81.100395) (xy 115.608607 80.299788) (xy 115.608607 80.658998) - (xy 114.987605 81.28) (xy 115.788212 82.080607) (xy 116.030396 82.011142) (xy 116.080508 81.870678) (xy 116.162991 82.070303) - (xy 116.55563 82.463628) (xy 117.068901 82.676756) (xy 117.624661 82.677241) (xy 117.655053 82.664683) (xy 119.828285 84.837915) - (xy 120.075495 85.003096) (xy 120.3671 85.0611) (xy 122.122845 85.0611) (xy 122.11039 85.091245) (xy 122.1105 85.37575) - (xy 122.26925 85.5345) (xy 123.317 85.5345) (xy 123.317 85.5145) (xy 123.571 85.5145) (xy 123.571 85.5345) - (xy 124.61875 85.5345) (xy 124.7775 85.37575) (xy 124.77761 85.091245) (xy 124.765154 85.0611) (xy 127.845441 85.0611) - (xy 127.794859 85.111771) (xy 127.69839 85.345245) (xy 127.6985 85.62975) (xy 127.85725 85.7885) (xy 128.905 85.7885) - (xy 128.905 85.7685) (xy 129.159 85.7685) (xy 129.159 85.7885) (xy 130.20675 85.7885) (xy 130.3655 85.62975) - (xy 130.365602 85.364432) (xy 130.7479 85.746731) (xy 130.747713 85.962384) (xy 130.8699 86.2581) (xy 130.365521 86.2581) - (xy 130.3655 86.20125) (xy 130.20675 86.0425) (xy 129.159 86.0425) (xy 129.159 86.0625) (xy 128.905 86.0625) - (xy 128.905 86.0425) (xy 127.85725 86.0425) (xy 127.6985 86.20125) (xy 127.698478 86.2581) (xy 126.2129 86.2581) - (xy 125.921295 86.316104) (xy 125.674084 86.481285) (xy 125.363334 86.792034) (xy 124.828399 86.791567) (xy 124.712778 86.83934) - (xy 124.681141 86.762771) (xy 124.532628 86.614) (xy 124.681141 86.465229) (xy 124.77761 86.231755) (xy 124.7775 85.94725) - (xy 124.61875 85.7885) (xy 123.571 85.7885) (xy 123.571 85.8085) (xy 123.317 85.8085) (xy 123.317 85.7885) - (xy 122.26925 85.7885) (xy 122.1105 85.94725) (xy 122.11039 86.231755) (xy 122.206859 86.465229) (xy 122.355473 86.614102) - (xy 122.207487 86.761832) (xy 122.110611 86.995136) (xy 122.11039 87.247755) (xy 122.11039 88.136755) (xy 122.206859 88.370229) - (xy 122.385332 88.549013) (xy 122.499951 88.596607) (xy 122.478771 88.605359) (xy 122.299987 88.783832) (xy 122.203111 89.017136) - (xy 122.20289 89.269755) (xy 122.20289 91.169755) (xy 122.299359 91.403229) (xy 122.477832 91.582013) (xy 122.711136 91.678889) - (xy 122.963755 91.67911) (xy 124.263755 91.67911) (xy 124.497229 91.582641) (xy 124.676013 91.404168) (xy 124.772889 91.170864) - (xy 124.77311 90.918245) (xy 124.77311 90.856) (xy 125.961169 90.856) (xy 126.149901 91.044732) (xy 125.828311 91.177611) - (xy 125.524378 91.481014) (xy 125.359687 91.877632) (xy 125.359313 92.307084) (xy 125.523311 92.703989) (xy 125.826714 93.007922) - (xy 126.223332 93.172613) (xy 126.652784 93.172987) (xy 127.049689 93.008989) (xy 127.283686 92.7754) (xy 127.70289 92.7754) - (xy 127.70289 93.8126) (xy 126.836 93.8126) (xy 124.77311 93.8126) (xy 124.77311 92.218245) (xy 124.676641 91.984771) - (xy 124.498168 91.805987) (xy 124.264864 91.709111) (xy 124.012245 91.70889) (xy 122.712245 91.70889) (xy 122.478771 91.805359) - (xy 122.299987 91.983832) (xy 122.203111 92.217136) (xy 122.20289 92.469755) (xy 122.20289 93.8126) (xy 122.00473 93.8126) - (xy 120.777 92.584869) (xy 120.777 89.279482) (xy 121.155587 88.901556) (xy 121.360965 88.40695) (xy 121.361433 87.871399) - (xy 121.156918 87.376436) (xy 120.778556 86.997413) (xy 120.28395 86.792035) (xy 119.748399 86.791567) (xy 119.253436 86.996082) - (xy 118.874413 87.374444) (xy 118.669035 87.86905) (xy 118.668567 88.404601) (xy 118.873082 88.899564) (xy 119.251444 89.278587) - (xy 119.253 89.279233) (xy 119.253 92.9005) (xy 119.311004 93.192105) (xy 119.476185 93.439315) (xy 120.669669 94.6328) - (xy 119.66693 94.6328) (xy 117.407315 92.373185) (xy 117.17311 92.216694) (xy 117.17311 92.216693) (xy 117.17311 91.786245) - (xy 117.076641 91.552771) (xy 116.898168 91.373987) (xy 116.664864 91.277111) (xy 116.55 91.27701) (xy 116.55 87.94711) - (xy 116.663755 87.94711) (xy 116.897229 87.850641) (xy 117.076013 87.672168) (xy 117.172889 87.438864) (xy 117.17311 87.186245) - (xy 117.17311 85.186245) (xy 117.076641 84.952771) (xy 116.898168 84.773987) (xy 116.664864 84.677111) (xy 116.412245 84.67689) - (xy 115.608607 84.67689) (xy 115.608607 82.260212) (xy 114.808 81.459605) (xy 114.628395 81.63921) (xy 114.628395 81.28) - (xy 113.827788 80.479393) (xy 113.66511 80.526053) (xy 113.66511 80.392245) (xy 113.568641 80.158771) (xy 113.390168 79.979987) - (xy 113.156864 79.883111) (xy 112.904245 79.88289) (xy 111.380245 79.88289) (xy 111.146771 79.979359) (xy 110.967987 80.157832) - (xy 110.871111 80.391136) (xy 110.87089 80.643755) (xy 110.87089 82.167755) (xy 110.967359 82.401229) (xy 111.145832 82.580013) - (xy 111.379136 82.676889) (xy 111.631755 82.67711) (xy 113.155755 82.67711) (xy 113.389229 82.580641) (xy 113.568013 82.402168) - (xy 113.664889 82.168864) (xy 113.665007 82.033916) (xy 113.827788 82.080607) (xy 114.628395 81.28) (xy 114.628395 81.63921) - (xy 114.007393 82.260212) (xy 114.076858 82.502396) (xy 114.600304 82.689143) (xy 115.155369 82.66136) (xy 115.539142 82.502396) - (xy 115.608607 82.260212) (xy 115.608607 84.67689) (xy 114.912245 84.67689) (xy 114.678771 84.773359) (xy 114.499987 84.951832) - (xy 114.403111 85.185136) (xy 114.40289 85.437755) (xy 114.40289 87.437755) (xy 114.499359 87.671229) (xy 114.677832 87.850013) - (xy 114.911136 87.946889) (xy 115.026 87.946989) (xy 115.026 91.27689) (xy 114.912245 91.27689) (xy 114.678771 91.373359) - (xy 114.499987 91.551832) (xy 114.403111 91.785136) (xy 114.40289 92.037755) (xy 114.40289 94.037755) (xy 114.499359 94.271229) - (xy 114.677832 94.450013) (xy 114.911136 94.546889) (xy 115.163755 94.54711) (xy 116.663755 94.54711) (xy 116.897229 94.450641) - (xy 117.076013 94.272168) (xy 117.098025 94.219155) (xy 118.675655 95.796786) (xy 118.61805 95.935514) (xy 118.533009 95.729697) - (xy 118.14037 95.336372) (xy 117.627099 95.123244) (xy 117.071339 95.122759) (xy 116.557697 95.334991) (xy 116.164372 95.72763) - (xy 116.084605 95.91973) (xy 116.030396 95.788858) (xy 115.788212 95.719393) (xy 115.608607 95.898998) (xy 115.608607 95.539788) - (xy 115.539142 95.297604) (xy 115.015696 95.110857) (xy 114.460631 95.13864) (xy 114.076858 95.297604) (xy 114.007393 95.539788) - (xy 114.808 96.340395) (xy 115.608607 95.539788) (xy 115.608607 95.898998) (xy 114.987605 96.52) (xy 115.788212 97.320607) - (xy 116.030396 97.251142) (xy 116.080508 97.110678) (xy 116.162991 97.310303) (xy 116.55563 97.703628) (xy 117.068901 97.916756) - (xy 117.624661 97.917241) (xy 118.138303 97.705009) (xy 118.531628 97.31237) (xy 118.617949 97.104485) (xy 118.702991 97.310303) - (xy 119.09563 97.703628) (xy 119.608901 97.916756) (xy 120.164661 97.917241) (xy 120.678303 97.705009) (xy 121.071628 97.31237) - (xy 121.157949 97.104485) (xy 121.242991 97.310303) (xy 121.63563 97.703628) (xy 122.148901 97.916756) (xy 122.704661 97.917241) - (xy 123.218303 97.705009) (xy 123.611628 97.31237) (xy 123.697949 97.104485) (xy 123.782991 97.310303) (xy 124.17563 97.703628) - (xy 124.688901 97.916756) (xy 125.244661 97.917241) (xy 125.758303 97.705009) (xy 126.151628 97.31237) (xy 126.237949 97.104485) - (xy 126.322991 97.310303) (xy 126.71563 97.703628) (xy 127.228901 97.916756) (xy 127.784661 97.917241) (xy 128.298303 97.705009) - (xy 128.691628 97.31237) (xy 128.777949 97.104485) (xy 128.862991 97.310303) (xy 129.25563 97.703628) (xy 129.768901 97.916756) - (xy 130.324661 97.917241) (xy 130.838303 97.705009) (xy 131.231628 97.31237) (xy 131.317949 97.104485) (xy 131.402991 97.310303) - (xy 131.79563 97.703628) (xy 132.308901 97.916756) (xy 132.864661 97.917241) (xy 133.378303 97.705009) (xy 133.771628 97.31237) - (xy 133.857949 97.104485) (xy 133.942991 97.310303) (xy 134.33563 97.703628) (xy 134.848901 97.916756) (xy 135.404661 97.917241) - (xy 135.918303 97.705009) (xy 136.311628 97.31237) (xy 136.397949 97.104485) (xy 136.482991 97.310303) (xy 136.87563 97.703628) - (xy 137.388901 97.916756) (xy 137.944661 97.917241) (xy 138.458303 97.705009) (xy 138.851628 97.31237) (xy 138.937949 97.104485) - (xy 139.022991 97.310303) (xy 139.41563 97.703628) (xy 139.928901 97.916756) (xy 140.484661 97.917241) (xy 140.998303 97.705009) - (xy 141.391628 97.31237) (xy 141.477949 97.104485) (xy 141.562991 97.310303) (xy 141.95563 97.703628) (xy 142.468901 97.916756) - (xy 143.024661 97.917241) (xy 143.538303 97.705009) (xy 143.931628 97.31237) (xy 144.017949 97.104485) (xy 144.102991 97.310303) - (xy 144.49563 97.703628) (xy 145.008901 97.916756) (xy 145.564661 97.917241) (xy 146.078303 97.705009) (xy 146.471628 97.31237) - (xy 146.557949 97.104485) (xy 146.642991 97.310303) (xy 147.03563 97.703628) (xy 147.548901 97.916756) (xy 148.104661 97.917241) - (xy 148.618303 97.705009) (xy 149.011628 97.31237) (xy 149.097949 97.104485) (xy 149.182991 97.310303) (xy 149.57563 97.703628) - (xy 150.088901 97.916756) (xy 150.644661 97.917241) (xy 151.158303 97.705009) (xy 151.551628 97.31237) (xy 151.637949 97.104485) - (xy 151.722991 97.310303) (xy 152.11563 97.703628) (xy 152.628901 97.916756) (xy 153.184661 97.917241) (xy 153.698303 97.705009) - (xy 154.091628 97.31237) (xy 154.177949 97.104485) (xy 154.262991 97.310303) (xy 154.65563 97.703628) (xy 155.168901 97.916756) - (xy 155.724661 97.917241) (xy 156.238303 97.705009) (xy 156.631628 97.31237) (xy 156.717949 97.104485) (xy 156.802991 97.310303) - (xy 157.19563 97.703628) (xy 157.708901 97.916756) (xy 158.264661 97.917241) (xy 158.778303 97.705009) (xy 159.171628 97.31237) - (xy 159.257949 97.104485) (xy 159.342991 97.310303) (xy 159.73563 97.703628) (xy 160.248901 97.916756) (xy 160.804661 97.917241) - (xy 161.318303 97.705009) (xy 161.711628 97.31237) (xy 161.924756 96.799099) (xy 161.925241 96.243339) (xy 161.713009 95.729697) - (xy 161.32037 95.336372) (xy 160.807099 95.123244) (xy 160.251339 95.122759) (xy 159.737697 95.334991) (xy 159.344372 95.72763) - (xy 159.25805 95.935514) (xy 159.173009 95.729697) (xy 158.78037 95.336372) (xy 158.267099 95.123244) (xy 157.711339 95.122759) - (xy 157.680947 95.135316) (xy 155.994215 93.448585) (xy 155.747005 93.283404) (xy 155.4554 93.2254) (xy 154.380903 93.2254) - (xy 154.489229 93.180641) (xy 154.668013 93.002168) (xy 154.764889 92.768864) (xy 154.76511 92.516245) (xy 154.76511 90.516245) - (xy 154.668641 90.282771) (xy 154.490168 90.103987) (xy 154.256864 90.007111) (xy 154.142 90.00701) (xy 154.142 86.77711) - (xy 154.255755 86.77711) (xy 154.489229 86.680641) (xy 154.668013 86.502168) (xy 154.764889 86.268864) (xy 154.76511 86.016245) - (xy 154.76511 84.016245) (xy 154.668641 83.782771) (xy 154.490168 83.603987) (xy 154.256864 83.507111) (xy 154.004245 83.50689) - (xy 152.504245 83.50689) (xy 152.270771 83.603359) (xy 152.091987 83.781832) (xy 151.995111 84.015136) (xy 151.99489 84.267755) - (xy 151.99489 86.267755) (xy 152.091359 86.501229) (xy 152.269832 86.680013) (xy 152.503136 86.776889) (xy 152.618 86.776989) - (xy 152.618 90.00689) (xy 152.504245 90.00689) (xy 152.270771 90.103359) (xy 152.091987 90.281832) (xy 151.995111 90.515136) - (xy 151.99489 90.767755) (xy 151.99489 92.767755) (xy 152.091359 93.001229) (xy 152.269832 93.180013) (xy 152.379136 93.2254) - (xy 150.044566 93.2254) (xy 150.168013 93.102168) (xy 150.264889 92.868864) (xy 150.26511 92.616245) (xy 150.26511 90.616245) - (xy 150.168641 90.382771) (xy 149.990168 90.203987) (xy 149.756864 90.107111) (xy 149.504245 90.10689) (xy 148.004245 90.10689) - (xy 147.770771 90.203359) (xy 147.591987 90.381832) (xy 147.569974 90.434843) (xy 146.1847 89.049569) (xy 146.1847 87.83443) - (xy 147.569881 86.449249) (xy 147.591359 86.501229) (xy 147.769832 86.680013) (xy 148.003136 86.776889) (xy 148.255755 86.77711) - (xy 149.755755 86.77711) (xy 149.989229 86.680641) (xy 150.168013 86.502168) (xy 150.264889 86.268864) (xy 150.26511 86.016245) - (xy 150.26511 84.016245) (xy 150.168641 83.782771) (xy 149.990168 83.603987) (xy 149.756864 83.507111) (xy 149.504245 83.50689) - (xy 148.004245 83.50689) (xy 147.770771 83.603359) (xy 147.591987 83.781832) (xy 147.495111 84.015136) (xy 147.49489 84.267755) - (xy 147.49489 84.446693) (xy 147.260684 84.603185) (xy 145.422699 86.441169) (xy 145.386415 86.404885) (xy 145.139205 86.239704) - (xy 144.8476 86.1817) (xy 135.900371 86.1817) (xy 135.810589 85.964411) (xy 135.507186 85.660478) (xy 135.110568 85.495787) - (xy 134.893027 85.495597) (xy 131.907517 82.510087) (xy 132.308901 82.676756) (xy 132.864661 82.677241) (xy 133.378303 82.465009) - (xy 133.771628 82.07237) (xy 133.857949 81.864485) (xy 133.942991 82.070303) (xy 134.33563 82.463628) (xy 134.848901 82.676756) - (xy 135.404661 82.677241) (xy 135.918303 82.465009) (xy 136.311628 82.07237) (xy 136.397949 81.864485) (xy 136.482991 82.070303) - (xy 136.87563 82.463628) (xy 137.388901 82.676756) (xy 137.944661 82.677241) (xy 138.458303 82.465009) (xy 138.851628 82.07237) - (xy 138.937949 81.864485) (xy 139.022991 82.070303) (xy 139.41563 82.463628) (xy 139.928901 82.676756) (xy 140.484661 82.677241) - (xy 140.998303 82.465009) (xy 141.391628 82.07237) (xy 141.477949 81.864485) (xy 141.562991 82.070303) (xy 141.95563 82.463628) - (xy 142.468901 82.676756) (xy 143.024661 82.677241) (xy 143.421667 82.513201) (xy 142.813368 83.1215) (xy 142.597716 83.121313) - (xy 142.200811 83.285311) (xy 141.896878 83.588714) (xy 141.732187 83.985332) (xy 141.731813 84.414784) (xy 141.895811 84.811689) - (xy 142.199214 85.115622) (xy 142.595832 85.280313) (xy 143.025284 85.280687) (xy 143.422189 85.116689) (xy 143.726122 84.813286) - (xy 143.890813 84.416668) (xy 143.891002 84.199127) (xy 144.58763 83.5025) (xy 148.9075 83.5025) (xy 148.9075 83.502499) - (xy 149.199104 83.444496) (xy 149.199105 83.444496) (xy 149.446315 83.279315) (xy 150.060618 82.665012) (xy 150.088901 82.676756) - (xy 150.644661 82.677241) (xy 151.158303 82.465009) (xy 151.551628 82.07237) (xy 151.637949 81.864485) (xy 151.722991 82.070303) - (xy 152.11563 82.463628) (xy 152.628901 82.676756) (xy 153.184661 82.677241) (xy 153.698303 82.465009) (xy 154.091628 82.07237) - (xy 154.177949 81.864485) (xy 154.262991 82.070303) (xy 154.65563 82.463628) (xy 155.168901 82.676756) (xy 155.724661 82.677241) - (xy 156.238303 82.465009) (xy 156.631628 82.07237) (xy 156.717949 81.864485) (xy 156.802991 82.070303) (xy 157.19563 82.463628) - (xy 157.708901 82.676756) (xy 158.264661 82.677241) (xy 158.778303 82.465009) (xy 159.171628 82.07237) (xy 159.257949 81.864485) - (xy 159.342991 82.070303) (xy 159.73563 82.463628) (xy 160.248901 82.676756) (xy 160.804661 82.677241) (xy 161.318303 82.465009) - (xy 161.711628 82.07237) (xy 161.924756 81.559099) (xy 161.925241 81.003339) (xy 161.750941 80.5815) (xy 167.675627 80.5815) - (xy 172.592923 84.796132) (xy 172.592813 84.922784) (xy 172.756811 85.319689) (xy 173.060214 85.623622) (xy 173.456832 85.788313) - (xy 173.886284 85.788687) (xy 174.283189 85.624689) (xy 174.587122 85.321286) (xy 174.751813 84.924668) (xy 174.752187 84.495216) - (xy 174.588189 84.098311) (xy 174.284786 83.794378) (xy 173.888168 83.629687) (xy 173.573515 83.629412) (xy 168.993657 79.704) - (xy 187.631 79.704) (xy 187.631 98.096) + (xy 172.092257 93.9165) (xy 172.092257 98.096) (xy 129.04163 98.096) (xy 129.316815 97.820816) (xy 129.316815 97.820815) + (xy 129.364821 97.748968) (xy 129.364822 97.748968) (xy 129.768901 97.916756) (xy 130.324661 97.917241) (xy 130.838303 97.705009) + (xy 131.231628 97.31237) (xy 131.317949 97.104485) (xy 131.402991 97.310303) (xy 131.79563 97.703628) (xy 132.308901 97.916756) + (xy 132.864661 97.917241) (xy 133.378303 97.705009) (xy 133.771628 97.31237) (xy 133.857949 97.104485) (xy 133.942991 97.310303) + (xy 134.33563 97.703628) (xy 134.848901 97.916756) (xy 135.404661 97.917241) (xy 135.918303 97.705009) (xy 136.311628 97.31237) + (xy 136.397949 97.104485) (xy 136.482991 97.310303) (xy 136.87563 97.703628) (xy 137.388901 97.916756) (xy 137.944661 97.917241) + (xy 138.458303 97.705009) (xy 138.851628 97.31237) (xy 138.937949 97.104485) (xy 139.022991 97.310303) (xy 139.41563 97.703628) + (xy 139.928901 97.916756) (xy 140.484661 97.917241) (xy 140.998303 97.705009) (xy 141.391628 97.31237) (xy 141.477949 97.104485) + (xy 141.562991 97.310303) (xy 141.95563 97.703628) (xy 142.468901 97.916756) (xy 143.024661 97.917241) (xy 143.538303 97.705009) + (xy 143.931628 97.31237) (xy 144.017949 97.104485) (xy 144.102991 97.310303) (xy 144.49563 97.703628) (xy 145.008901 97.916756) + (xy 145.564661 97.917241) (xy 146.078303 97.705009) (xy 146.471628 97.31237) (xy 146.557949 97.104485) (xy 146.642991 97.310303) + (xy 147.03563 97.703628) (xy 147.548901 97.916756) (xy 148.104661 97.917241) (xy 148.618303 97.705009) (xy 149.011628 97.31237) + (xy 149.097949 97.104485) (xy 149.182991 97.310303) (xy 149.57563 97.703628) (xy 150.088901 97.916756) (xy 150.644661 97.917241) + (xy 151.158303 97.705009) (xy 151.551628 97.31237) (xy 151.637949 97.104485) (xy 151.722991 97.310303) (xy 152.11563 97.703628) + (xy 152.628901 97.916756) (xy 153.184661 97.917241) (xy 153.698303 97.705009) (xy 154.091628 97.31237) (xy 154.177949 97.104485) + (xy 154.262991 97.310303) (xy 154.65563 97.703628) (xy 155.168901 97.916756) (xy 155.724661 97.917241) (xy 156.238303 97.705009) + (xy 156.631628 97.31237) (xy 156.717949 97.104485) (xy 156.802991 97.310303) (xy 157.19563 97.703628) (xy 157.708901 97.916756) + (xy 158.264661 97.917241) (xy 158.778303 97.705009) (xy 159.171628 97.31237) (xy 159.257949 97.104485) (xy 159.342991 97.310303) + (xy 159.73563 97.703628) (xy 160.248901 97.916756) (xy 160.804661 97.917241) (xy 161.318303 97.705009) (xy 161.711628 97.31237) + (xy 161.924756 96.799099) (xy 161.925241 96.243339) (xy 161.713009 95.729697) (xy 161.32037 95.336372) (xy 160.807099 95.123244) + (xy 160.251339 95.122759) (xy 159.737697 95.334991) (xy 159.344372 95.72763) (xy 159.25805 95.935514) (xy 159.173009 95.729697) + (xy 158.78037 95.336372) (xy 158.267099 95.123244) (xy 157.711339 95.122759) (xy 157.680947 95.135316) (xy 155.994215 93.448585) + (xy 155.747005 93.283404) (xy 155.4554 93.2254) (xy 154.380903 93.2254) (xy 154.489229 93.180641) (xy 154.668013 93.002168) + (xy 154.764889 92.768864) (xy 154.76511 92.516245) (xy 154.76511 90.516245) (xy 154.668641 90.282771) (xy 154.490168 90.103987) + (xy 154.256864 90.007111) (xy 154.142 90.00701) (xy 154.142 86.77711) (xy 154.255755 86.77711) (xy 154.489229 86.680641) + (xy 154.668013 86.502168) (xy 154.764889 86.268864) (xy 154.76511 86.016245) (xy 154.76511 84.016245) (xy 154.668641 83.782771) + (xy 154.490168 83.603987) (xy 154.256864 83.507111) (xy 154.004245 83.50689) (xy 152.504245 83.50689) (xy 152.270771 83.603359) + (xy 152.091987 83.781832) (xy 151.995111 84.015136) (xy 151.99489 84.267755) (xy 151.99489 86.267755) (xy 152.091359 86.501229) + (xy 152.269832 86.680013) (xy 152.503136 86.776889) (xy 152.618 86.776989) (xy 152.618 90.00689) (xy 152.504245 90.00689) + (xy 152.270771 90.103359) (xy 152.091987 90.281832) (xy 151.995111 90.515136) (xy 151.99489 90.767755) (xy 151.99489 92.767755) + (xy 152.091359 93.001229) (xy 152.269832 93.180013) (xy 152.379136 93.2254) (xy 150.044566 93.2254) (xy 150.168013 93.102168) + (xy 150.264889 92.868864) (xy 150.26511 92.616245) (xy 150.26511 90.616245) (xy 150.168641 90.382771) (xy 149.990168 90.203987) + (xy 149.756864 90.107111) (xy 149.504245 90.10689) (xy 148.004245 90.10689) (xy 147.770771 90.203359) (xy 147.591987 90.381832) + (xy 147.569974 90.434843) (xy 146.1847 89.049569) (xy 146.1847 87.83443) (xy 147.569881 86.449249) (xy 147.591359 86.501229) + (xy 147.769832 86.680013) (xy 148.003136 86.776889) (xy 148.255755 86.77711) (xy 149.755755 86.77711) (xy 149.989229 86.680641) + (xy 150.168013 86.502168) (xy 150.264889 86.268864) (xy 150.26511 86.016245) (xy 150.26511 84.016245) (xy 150.168641 83.782771) + (xy 149.990168 83.603987) (xy 149.756864 83.507111) (xy 149.504245 83.50689) (xy 148.004245 83.50689) (xy 147.770771 83.603359) + (xy 147.591987 83.781832) (xy 147.495111 84.015136) (xy 147.49489 84.267755) (xy 147.49489 84.446693) (xy 147.260684 84.603185) + (xy 145.422699 86.441169) (xy 145.386415 86.404885) (xy 145.139205 86.239704) (xy 144.8476 86.1817) (xy 135.900371 86.1817) + (xy 135.810589 85.964411) (xy 135.507186 85.660478) (xy 135.110568 85.495787) (xy 134.893027 85.495597) (xy 131.907517 82.510087) + (xy 132.308901 82.676756) (xy 132.864661 82.677241) (xy 133.378303 82.465009) (xy 133.771628 82.07237) (xy 133.857949 81.864485) + (xy 133.942991 82.070303) (xy 134.33563 82.463628) (xy 134.848901 82.676756) (xy 135.404661 82.677241) (xy 135.918303 82.465009) + (xy 136.311628 82.07237) (xy 136.397949 81.864485) (xy 136.482991 82.070303) (xy 136.87563 82.463628) (xy 137.388901 82.676756) + (xy 137.944661 82.677241) (xy 138.458303 82.465009) (xy 138.851628 82.07237) (xy 138.937949 81.864485) (xy 139.022991 82.070303) + (xy 139.41563 82.463628) (xy 139.928901 82.676756) (xy 140.484661 82.677241) (xy 140.998303 82.465009) (xy 141.391628 82.07237) + (xy 141.477949 81.864485) (xy 141.562991 82.070303) (xy 141.95563 82.463628) (xy 142.468901 82.676756) (xy 143.024661 82.677241) + (xy 143.421667 82.513201) (xy 142.813368 83.1215) (xy 142.597716 83.121313) (xy 142.200811 83.285311) (xy 141.896878 83.588714) + (xy 141.732187 83.985332) (xy 141.731813 84.414784) (xy 141.895811 84.811689) (xy 142.199214 85.115622) (xy 142.595832 85.280313) + (xy 143.025284 85.280687) (xy 143.422189 85.116689) (xy 143.726122 84.813286) (xy 143.890813 84.416668) (xy 143.891002 84.199127) + (xy 144.58763 83.5025) (xy 148.9075 83.5025) (xy 148.9075 83.502499) (xy 149.199104 83.444496) (xy 149.199105 83.444496) + (xy 149.446315 83.279315) (xy 150.060618 82.665012) (xy 150.088901 82.676756) (xy 150.644661 82.677241) (xy 151.158303 82.465009) + (xy 151.551628 82.07237) (xy 151.637949 81.864485) (xy 151.722991 82.070303) (xy 152.11563 82.463628) (xy 152.628901 82.676756) + (xy 153.184661 82.677241) (xy 153.698303 82.465009) (xy 154.091628 82.07237) (xy 154.177949 81.864485) (xy 154.262991 82.070303) + (xy 154.65563 82.463628) (xy 155.168901 82.676756) (xy 155.724661 82.677241) (xy 156.238303 82.465009) (xy 156.631628 82.07237) + (xy 156.717949 81.864485) (xy 156.802991 82.070303) (xy 157.19563 82.463628) (xy 157.708901 82.676756) (xy 158.264661 82.677241) + (xy 158.778303 82.465009) (xy 159.171628 82.07237) (xy 159.257949 81.864485) (xy 159.342991 82.070303) (xy 159.73563 82.463628) + (xy 160.248901 82.676756) (xy 160.804661 82.677241) (xy 161.318303 82.465009) (xy 161.711628 82.07237) (xy 161.924756 81.559099) + (xy 161.925241 81.003339) (xy 161.713009 80.489697) (xy 161.32037 80.096372) (xy 160.807099 79.883244) (xy 160.251339 79.882759) + (xy 159.737697 80.094991) (xy 159.344372 80.48763) (xy 159.25805 80.695514) (xy 159.173009 80.489697) (xy 158.78037 80.096372) + (xy 158.267099 79.883244) (xy 157.711339 79.882759) (xy 157.197697 80.094991) (xy 156.804372 80.48763) (xy 156.71805 80.695514) + (xy 156.633009 80.489697) (xy 156.24037 80.096372) (xy 155.727099 79.883244) (xy 155.171339 79.882759) (xy 154.657697 80.094991) + (xy 154.264372 80.48763) (xy 154.17805 80.695514) (xy 154.093009 80.489697) (xy 153.70037 80.096372) (xy 153.187099 79.883244) + (xy 152.631339 79.882759) (xy 152.117697 80.094991) (xy 151.724372 80.48763) (xy 151.63805 80.695514) (xy 151.553009 80.489697) + (xy 151.16037 80.096372) (xy 150.647099 79.883244) (xy 150.091339 79.882759) (xy 149.577697 80.094991) (xy 149.184372 80.48763) + (xy 149.09805 80.695514) (xy 149.013009 80.489697) (xy 148.62037 80.096372) (xy 148.107099 79.883244) (xy 147.551339 79.882759) + (xy 147.037697 80.094991) (xy 146.644372 80.48763) (xy 146.55805 80.695514) (xy 146.473009 80.489697) (xy 146.08037 80.096372) + (xy 145.567099 79.883244) (xy 145.011339 79.882759) (xy 144.497697 80.094991) (xy 144.104372 80.48763) (xy 144.01805 80.695514) + (xy 143.933009 80.489697) (xy 143.54037 80.096372) (xy 143.027099 79.883244) (xy 142.471339 79.882759) (xy 141.957697 80.094991) + (xy 141.564372 80.48763) (xy 141.47805 80.695514) (xy 141.393009 80.489697) (xy 141.00037 80.096372) (xy 140.487099 79.883244) + (xy 139.931339 79.882759) (xy 139.417697 80.094991) (xy 139.024372 80.48763) (xy 138.93805 80.695514) (xy 138.853009 80.489697) + (xy 138.46037 80.096372) (xy 137.947099 79.883244) (xy 137.391339 79.882759) (xy 136.877697 80.094991) (xy 136.484372 80.48763) + (xy 136.39805 80.695514) (xy 136.313009 80.489697) (xy 135.92037 80.096372) (xy 135.407099 79.883244) (xy 134.851339 79.882759) + (xy 134.337697 80.094991) (xy 133.944372 80.48763) (xy 133.85805 80.695514) (xy 133.773009 80.489697) (xy 133.38037 80.096372) + (xy 132.867099 79.883244) (xy 132.311339 79.882759) (xy 131.797697 80.094991) (xy 131.404372 80.48763) (xy 131.31805 80.695514) + (xy 131.233009 80.489697) (xy 130.84037 80.096372) (xy 130.327099 79.883244) (xy 129.771339 79.882759) (xy 129.257697 80.094991) + (xy 128.864372 80.48763) (xy 128.77805 80.695514) (xy 128.693009 80.489697) (xy 128.30037 80.096372) (xy 127.787099 79.883244) + (xy 127.231339 79.882759) (xy 126.717697 80.094991) (xy 126.324372 80.48763) (xy 126.23805 80.695514) (xy 126.153009 80.489697) + (xy 125.76037 80.096372) (xy 125.247099 79.883244) (xy 124.691339 79.882759) (xy 124.177697 80.094991) (xy 123.784372 80.48763) + (xy 123.69805 80.695514) (xy 123.613009 80.489697) (xy 123.22037 80.096372) (xy 122.707099 79.883244) (xy 122.151339 79.882759) + (xy 121.637697 80.094991) (xy 121.244372 80.48763) (xy 121.15805 80.695514) (xy 121.073009 80.489697) (xy 120.68037 80.096372) + (xy 120.167099 79.883244) (xy 119.611339 79.882759) (xy 119.097697 80.094991) (xy 118.704372 80.48763) (xy 118.61805 80.695514) + (xy 118.533009 80.489697) (xy 118.14037 80.096372) (xy 117.627099 79.883244) (xy 117.071339 79.882759) (xy 116.557697 80.094991) + (xy 116.164372 80.48763) (xy 116.084605 80.67973) (xy 116.030396 80.548858) (xy 115.788212 80.479393) (xy 115.608607 80.658998) + (xy 115.608607 80.299788) (xy 115.539142 80.057604) (xy 115.015696 79.870857) (xy 114.460631 79.89864) (xy 114.076858 80.057604) + (xy 114.007393 80.299788) (xy 114.808 81.100395) (xy 115.608607 80.299788) (xy 115.608607 80.658998) (xy 114.987605 81.28) + (xy 115.788212 82.080607) (xy 116.030396 82.011142) (xy 116.080508 81.870678) (xy 116.162991 82.070303) (xy 116.55563 82.463628) + (xy 117.068901 82.676756) (xy 117.624661 82.677241) (xy 117.655053 82.664683) (xy 119.828285 84.837915) (xy 120.075495 85.003096) + (xy 120.3671 85.0611) (xy 122.122845 85.0611) (xy 122.11039 85.091245) (xy 122.1105 85.37575) (xy 122.26925 85.5345) + (xy 123.317 85.5345) (xy 123.317 85.5145) (xy 123.571 85.5145) (xy 123.571 85.5345) (xy 124.61875 85.5345) + (xy 124.7775 85.37575) (xy 124.77761 85.091245) (xy 124.765154 85.0611) (xy 127.845441 85.0611) (xy 127.794859 85.111771) + (xy 127.69839 85.345245) (xy 127.6985 85.62975) (xy 127.85725 85.7885) (xy 128.905 85.7885) (xy 128.905 85.7685) + (xy 129.159 85.7685) (xy 129.159 85.7885) (xy 130.20675 85.7885) (xy 130.3655 85.62975) (xy 130.365602 85.364432) + (xy 130.7479 85.746731) (xy 130.747713 85.962384) (xy 130.8699 86.2581) (xy 130.365521 86.2581) (xy 130.3655 86.20125) + (xy 130.20675 86.0425) (xy 129.159 86.0425) (xy 129.159 86.0625) (xy 128.905 86.0625) (xy 128.905 86.0425) + (xy 127.85725 86.0425) (xy 127.6985 86.20125) (xy 127.698478 86.2581) (xy 126.2129 86.2581) (xy 125.921295 86.316104) + (xy 125.674084 86.481285) (xy 125.363334 86.792034) (xy 124.828399 86.791567) (xy 124.712778 86.83934) (xy 124.681141 86.762771) + (xy 124.532628 86.614) (xy 124.681141 86.465229) (xy 124.77761 86.231755) (xy 124.7775 85.94725) (xy 124.61875 85.7885) + (xy 123.571 85.7885) (xy 123.571 85.8085) (xy 123.317 85.8085) (xy 123.317 85.7885) (xy 122.26925 85.7885) + (xy 122.1105 85.94725) (xy 122.11039 86.231755) (xy 122.206859 86.465229) (xy 122.355473 86.614102) (xy 122.207487 86.761832) + (xy 122.110611 86.995136) (xy 122.11039 87.247755) (xy 122.11039 88.136755) (xy 122.206859 88.370229) (xy 122.385332 88.549013) + (xy 122.499951 88.596607) (xy 122.478771 88.605359) (xy 122.299987 88.783832) (xy 122.203111 89.017136) (xy 122.20289 89.269755) + (xy 122.20289 91.169755) (xy 122.299359 91.403229) (xy 122.477832 91.582013) (xy 122.711136 91.678889) (xy 122.963755 91.67911) + (xy 124.263755 91.67911) (xy 124.497229 91.582641) (xy 124.676013 91.404168) (xy 124.772889 91.170864) (xy 124.77311 90.918245) + (xy 124.77311 90.856) (xy 125.961169 90.856) (xy 126.149901 91.044732) (xy 125.828311 91.177611) (xy 125.524378 91.481014) + (xy 125.359687 91.877632) (xy 125.359313 92.307084) (xy 125.523311 92.703989) (xy 125.826714 93.007922) (xy 126.223332 93.172613) + (xy 126.652784 93.172987) (xy 127.049689 93.008989) (xy 127.283686 92.7754) (xy 127.70289 92.7754) (xy 127.70289 93.8126) + (xy 126.836 93.8126) (xy 124.77311 93.8126) (xy 124.77311 92.218245) (xy 124.676641 91.984771) (xy 124.498168 91.805987) + (xy 124.264864 91.709111) (xy 124.012245 91.70889) (xy 122.712245 91.70889) (xy 122.478771 91.805359) (xy 122.299987 91.983832) + (xy 122.203111 92.217136) (xy 122.20289 92.469755) (xy 122.20289 93.8126) (xy 122.00473 93.8126) (xy 120.777 92.584869) + (xy 120.777 89.279482) (xy 121.155587 88.901556) (xy 121.360965 88.40695) (xy 121.361433 87.871399) (xy 121.156918 87.376436) + (xy 120.778556 86.997413) (xy 120.28395 86.792035) (xy 119.748399 86.791567) (xy 119.253436 86.996082) (xy 118.874413 87.374444) + (xy 118.669035 87.86905) (xy 118.668567 88.404601) (xy 118.873082 88.899564) (xy 119.251444 89.278587) (xy 119.253 89.279233) + (xy 119.253 92.9005) (xy 119.311004 93.192105) (xy 119.476185 93.439315) (xy 120.669669 94.6328) (xy 119.66693 94.6328) + (xy 117.407315 92.373185) (xy 117.17311 92.216694) (xy 117.17311 92.216693) (xy 117.17311 91.786245) (xy 117.076641 91.552771) + (xy 116.898168 91.373987) (xy 116.664864 91.277111) (xy 116.55 91.27701) (xy 116.55 87.94711) (xy 116.663755 87.94711) + (xy 116.897229 87.850641) (xy 117.076013 87.672168) (xy 117.172889 87.438864) (xy 117.17311 87.186245) (xy 117.17311 85.186245) + (xy 117.076641 84.952771) (xy 116.898168 84.773987) (xy 116.664864 84.677111) (xy 116.412245 84.67689) (xy 115.608607 84.67689) + (xy 115.608607 82.260212) (xy 114.808 81.459605) (xy 114.628395 81.63921) (xy 114.628395 81.28) (xy 113.827788 80.479393) + (xy 113.66511 80.526053) (xy 113.66511 80.392245) (xy 113.568641 80.158771) (xy 113.390168 79.979987) (xy 113.156864 79.883111) + (xy 112.904245 79.88289) (xy 111.380245 79.88289) (xy 111.146771 79.979359) (xy 110.967987 80.157832) (xy 110.871111 80.391136) + (xy 110.87089 80.643755) (xy 110.87089 82.167755) (xy 110.967359 82.401229) (xy 111.145832 82.580013) (xy 111.379136 82.676889) + (xy 111.631755 82.67711) (xy 113.155755 82.67711) (xy 113.389229 82.580641) (xy 113.568013 82.402168) (xy 113.664889 82.168864) + (xy 113.665007 82.033916) (xy 113.827788 82.080607) (xy 114.628395 81.28) (xy 114.628395 81.63921) (xy 114.007393 82.260212) + (xy 114.076858 82.502396) (xy 114.600304 82.689143) (xy 115.155369 82.66136) (xy 115.539142 82.502396) (xy 115.608607 82.260212) + (xy 115.608607 84.67689) (xy 114.912245 84.67689) (xy 114.678771 84.773359) (xy 114.499987 84.951832) (xy 114.403111 85.185136) + (xy 114.40289 85.437755) (xy 114.40289 87.437755) (xy 114.499359 87.671229) (xy 114.677832 87.850013) (xy 114.911136 87.946889) + (xy 115.026 87.946989) (xy 115.026 91.27689) (xy 114.912245 91.27689) (xy 114.678771 91.373359) (xy 114.499987 91.551832) + (xy 114.403111 91.785136) (xy 114.40289 92.037755) (xy 114.40289 94.037755) (xy 114.499359 94.271229) (xy 114.677832 94.450013) + (xy 114.911136 94.546889) (xy 115.163755 94.54711) (xy 116.663755 94.54711) (xy 116.897229 94.450641) (xy 117.076013 94.272168) + (xy 117.098025 94.219155) (xy 118.675655 95.796786) (xy 118.61805 95.935514) (xy 118.533009 95.729697) (xy 118.14037 95.336372) + (xy 117.627099 95.123244) (xy 117.071339 95.122759) (xy 116.557697 95.334991) (xy 116.164372 95.72763) (xy 116.084605 95.91973) + (xy 116.030396 95.788858) (xy 115.788212 95.719393) (xy 115.608607 95.898998) (xy 115.608607 95.539788) (xy 115.539142 95.297604) + (xy 115.015696 95.110857) (xy 114.460631 95.13864) (xy 114.076858 95.297604) (xy 114.007393 95.539788) (xy 114.808 96.340395) + (xy 115.608607 95.539788) (xy 115.608607 95.898998) (xy 114.987605 96.52) (xy 115.788212 97.320607) (xy 116.030396 97.251142) + (xy 116.080508 97.110678) (xy 116.162991 97.310303) (xy 116.55563 97.703628) (xy 117.068901 97.916756) (xy 117.624661 97.917241) + (xy 118.138303 97.705009) (xy 118.531628 97.31237) (xy 118.617949 97.104485) (xy 118.702991 97.310303) (xy 119.09563 97.703628) + (xy 119.608901 97.916756) (xy 120.164661 97.917241) (xy 120.678303 97.705009) (xy 121.071628 97.31237) (xy 121.157949 97.104485) + (xy 121.242991 97.310303) (xy 121.63563 97.703628) (xy 122.148901 97.916756) (xy 122.704661 97.917241) (xy 123.218303 97.705009) + (xy 123.611628 97.31237) (xy 123.697949 97.104485) (xy 123.782991 97.310303) (xy 124.17563 97.703628) (xy 124.688901 97.916756) + (xy 125.244661 97.917241) (xy 125.275052 97.904683) (xy 125.466369 98.096) (xy 115.608607 98.096) (xy 115.608607 97.500212) + (xy 114.808 96.699605) (xy 114.628395 96.87921) (xy 114.628395 96.52) (xy 113.827788 95.719393) (xy 113.66511 95.766053) + (xy 113.66511 95.632245) (xy 113.568641 95.398771) (xy 113.390168 95.219987) (xy 113.156864 95.123111) (xy 112.904245 95.12289) + (xy 112.67311 95.12289) (xy 112.67311 94.037755) (xy 112.67311 91.786245) (xy 112.67311 87.537755) (xy 112.67311 85.286245) + (xy 112.576641 85.052771) (xy 112.398168 84.873987) (xy 112.164864 84.777111) (xy 111.912245 84.77689) (xy 111.57375 84.777) + (xy 111.415 84.93575) (xy 111.415 86.285) (xy 112.51425 86.285) (xy 112.673 86.12625) (xy 112.67311 85.286245) + (xy 112.67311 87.537755) (xy 112.673 86.69775) (xy 112.51425 86.539) (xy 111.415 86.539) (xy 111.415 87.88825) + (xy 111.57375 88.047) (xy 111.912245 88.04711) (xy 112.164864 88.046889) (xy 112.398168 87.950013) (xy 112.576641 87.771229) + (xy 112.67311 87.537755) (xy 112.67311 91.786245) (xy 112.576641 91.552771) (xy 112.398168 91.373987) (xy 112.164864 91.277111) + (xy 111.912245 91.27689) (xy 111.57375 91.277) (xy 111.415 91.43575) (xy 111.415 92.785) (xy 112.51425 92.785) + (xy 112.673 92.62625) (xy 112.67311 91.786245) (xy 112.67311 94.037755) (xy 112.673 93.19775) (xy 112.51425 93.039) + (xy 111.415 93.039) (xy 111.415 94.38825) (xy 111.57375 94.547) (xy 111.912245 94.54711) (xy 112.164864 94.546889) + (xy 112.398168 94.450013) (xy 112.576641 94.271229) (xy 112.67311 94.037755) (xy 112.67311 95.12289) (xy 111.380245 95.12289) + (xy 111.146771 95.219359) (xy 110.967987 95.397832) (xy 110.871111 95.631136) (xy 110.87089 95.883755) (xy 110.87089 97.407755) + (xy 110.967359 97.641229) (xy 111.145832 97.820013) (xy 111.379136 97.916889) (xy 111.631755 97.91711) (xy 113.155755 97.91711) + (xy 113.389229 97.820641) (xy 113.568013 97.642168) (xy 113.664889 97.408864) (xy 113.665007 97.273916) (xy 113.827788 97.320607) + (xy 114.628395 96.52) (xy 114.628395 96.87921) (xy 114.007393 97.500212) (xy 114.076858 97.742396) (xy 114.600304 97.929143) + (xy 115.155369 97.90136) (xy 115.539142 97.742396) (xy 115.608607 97.500212) (xy 115.608607 98.096) (xy 110.184 98.096) + (xy 110.184 94.452574) (xy 110.411136 94.546889) (xy 110.663755 94.54711) (xy 111.00225 94.547) (xy 111.161 94.38825) + (xy 111.161 93.039) (xy 111.141 93.039) (xy 111.141 92.785) (xy 111.161 92.785) (xy 111.161 91.43575) + (xy 111.00225 91.277) (xy 110.663755 91.27689) (xy 110.411136 91.277111) (xy 110.184 91.371425) (xy 110.184 87.952574) + (xy 110.411136 88.046889) (xy 110.663755 88.04711) (xy 111.00225 88.047) (xy 111.161 87.88825) (xy 111.161 86.539) + (xy 111.141 86.539) (xy 111.141 86.285) (xy 111.161 86.285) (xy 111.161 84.93575) (xy 111.00225 84.777) + (xy 110.663755 84.77689) (xy 110.411136 84.777111) (xy 110.184 84.871425) (xy 110.184 79.704) (xy 187.631 79.704) + (xy 187.631 98.096) ) ) ) @@ -2616,8 +2583,8 @@ ) (filled_polygon (pts - (xy 140.011793 88.5339) (xy 138.55442 88.5339) (xy 138.645413 88.314768) (xy 138.645787 87.885316) (xy 138.481789 87.488411) - (xy 138.178386 87.184478) (xy 137.781768 87.019787) (xy 137.352316 87.019413) (xy 137.252805 87.060529) (xy 137.005586 86.812878) + (xy 140.011793 88.5339) (xy 138.874487 88.5339) (xy 138.874687 88.305216) (xy 138.710689 87.908311) (xy 138.407286 87.604378) + (xy 138.010668 87.439687) (xy 137.581216 87.439313) (xy 137.46251 87.488361) (xy 137.308989 87.116811) (xy 137.005586 86.812878) (xy 136.608968 86.648187) (xy 136.179516 86.647813) (xy 135.974263 86.732621) (xy 135.974587 86.361316) (xy 135.810589 85.964411) (xy 135.582301 85.735724) (xy 135.628488 85.689619) (xy 135.840422 85.477684) (xy 135.840597 85.477261) (xy 135.98231 85.335797) (xy 136.194244 85.123862) (xy 136.194419 85.123439) (xy 136.336132 84.981975) (xy 136.398024 84.920082) (xy 136.425778 84.947885) @@ -2651,93 +2618,82 @@ ) (filled_polygon (pts - (xy 169.4685 88.392) (xy 166.4335 88.392) (xy 166.4335 87.15375) (xy 166.4335 86.106) (xy 165.63975 86.106) - (xy 165.481 86.26475) (xy 165.48089 86.551745) (xy 165.481111 86.804364) (xy 165.577987 87.037668) (xy 165.756771 87.216141) - (xy 165.990245 87.31261) (xy 166.27475 87.3125) (xy 166.4335 87.15375) (xy 166.4335 88.392) (xy 162.1636 88.392) - (xy 162.12821 88.399039) (xy 162.12821 88.14492) (xy 165.56713 84.706) (xy 165.843556 84.706) (xy 165.756771 84.741859) - (xy 165.577987 84.920332) (xy 165.481111 85.153636) (xy 165.48089 85.406255) (xy 165.481 85.69325) (xy 165.63975 85.852) - (xy 166.4335 85.852) (xy 166.4335 85.832) (xy 166.6875 85.832) (xy 166.6875 85.852) (xy 166.7075 85.852) + (xy 172.466 88.01089) (xy 170.9925 88.01089) (xy 170.9925 87.3565) (xy 170.934496 87.064895) (xy 170.769315 86.817685) + (xy 169.54511 85.59348) (xy 169.54511 85.154745) (xy 169.448641 84.921271) (xy 169.270168 84.742487) (xy 169.036864 84.645611) + (xy 168.784245 84.64539) (xy 167.895245 84.64539) (xy 167.661771 84.741859) (xy 167.513 84.890371) (xy 167.364229 84.741859) + (xy 167.130755 84.64539) (xy 166.84625 84.6455) (xy 166.6875 84.80425) (xy 166.6875 85.852) (xy 166.7075 85.852) (xy 166.7075 86.106) (xy 166.6875 86.106) (xy 166.6875 87.15375) (xy 166.84625 87.3125) (xy 167.130755 87.31261) (xy 167.364229 87.216141) (xy 167.513102 87.067526) (xy 167.660832 87.215513) (xy 167.894136 87.312389) (xy 168.146755 87.31261) - (xy 169.035755 87.31261) (xy 169.08757 87.2912) (xy 169.4685 87.67213) (xy 169.4685 88.392) + (xy 169.035755 87.31261) (xy 169.08757 87.2912) (xy 169.4685 87.67213) (xy 169.4685 88.392) (xy 166.4335 88.392) + (xy 166.4335 87.15375) (xy 166.4335 86.106) (xy 166.4335 85.852) (xy 166.4335 84.80425) (xy 166.27475 84.6455) + (xy 165.990245 84.64539) (xy 165.756771 84.741859) (xy 165.577987 84.920332) (xy 165.481111 85.153636) (xy 165.48089 85.406255) + (xy 165.481 85.69325) (xy 165.63975 85.852) (xy 166.4335 85.852) (xy 166.4335 86.106) (xy 165.63975 86.106) + (xy 165.481 86.26475) (xy 165.48089 86.551745) (xy 165.481111 86.804364) (xy 165.577987 87.037668) (xy 165.756771 87.216141) + (xy 165.990245 87.31261) (xy 166.27475 87.3125) (xy 166.4335 87.15375) (xy 166.4335 88.392) (xy 162.1636 88.392) + (xy 162.12821 88.399039) (xy 162.12821 88.067725) (xy 162.031741 87.834251) (xy 161.890835 87.6931) (xy 162.031741 87.551949) + (xy 162.12821 87.318475) (xy 162.12821 84.466005) (xy 162.031741 84.232531) (xy 161.853268 84.053747) (xy 161.619964 83.956871) + (xy 161.367345 83.95665) (xy 160.97875 83.95676) (xy 160.82 84.11551) (xy 160.82 85.76524) (xy 161.96935 85.76524) + (xy 162.1281 85.60649) (xy 162.12821 84.466005) (xy 162.12821 87.318475) (xy 162.1281 86.17799) (xy 161.96935 86.01924) + (xy 160.82 86.01924) (xy 160.82 86.03924) (xy 160.566 86.03924) (xy 160.566 86.01924) (xy 160.566 85.76524) + (xy 160.566 84.11551) (xy 160.40725 83.95676) (xy 160.018655 83.95665) (xy 159.766036 83.956871) (xy 159.532732 84.053747) + (xy 159.354259 84.232531) (xy 159.25779 84.466005) (xy 159.2579 85.60649) (xy 159.41665 85.76524) (xy 160.566 85.76524) + (xy 160.566 86.01924) (xy 159.41665 86.01924) (xy 159.2579 86.17799) (xy 159.25779 87.318475) (xy 159.354259 87.551949) + (xy 159.495253 87.693189) (xy 159.354887 87.833312) (xy 159.258011 88.066616) (xy 159.25779 88.319235) (xy 159.25779 89.286279) + (xy 158.026823 90.517246) (xy 157.967168 90.457487) (xy 157.733864 90.360611) (xy 157.481245 90.36039) (xy 156.61592 90.36039) + (xy 155.873615 89.618085) (xy 155.626405 89.452904) (xy 155.3348 89.3949) (xy 142.3257 89.3949) (xy 142.034095 89.452904) + (xy 141.984443 89.48608) (xy 141.398338 88.899976) (xy 141.426141 88.872222) (xy 141.710562 88.5878) (xy 153.9822 88.5878) + (xy 153.9822 88.587799) (xy 154.273804 88.529796) (xy 154.273805 88.529796) (xy 154.521015 88.364615) (xy 160.220618 82.665011) + (xy 160.248901 82.676756) (xy 160.804661 82.677241) (xy 161.318303 82.465009) (xy 161.711628 82.07237) (xy 161.924756 81.559099) + (xy 161.925241 81.003339) (xy 161.777178 80.645) (xy 165.673369 80.645) (xy 172.466 87.43763) (xy 172.466 88.01089) ) ) (filled_polygon (pts - (xy 172.672321 83.647451) (xy 172.653824 83.639771) (xy 172.401205 83.63955) (xy 172.158242 83.63955) (xy 172.135815 83.605985) - (xy 171.935015 83.405185) (xy 171.687805 83.240004) (xy 171.3962 83.182) (xy 165.2515 83.182) (xy 164.959895 83.240004) - (xy 164.712684 83.405185) (xy 162.12821 85.989658) (xy 162.12821 84.466005) (xy 162.031741 84.232531) (xy 161.853268 84.053747) - (xy 161.619964 83.956871) (xy 161.367345 83.95665) (xy 160.97875 83.95676) (xy 160.82 84.11551) (xy 160.82 85.76524) - (xy 161.96935 85.76524) (xy 162.1281 85.60649) (xy 162.12821 84.466005) (xy 162.12821 85.989658) (xy 162.033989 86.083879) - (xy 161.96935 86.01924) (xy 160.82 86.01924) (xy 160.82 86.03924) (xy 160.566 86.03924) (xy 160.566 86.01924) - (xy 160.566 85.76524) (xy 160.566 84.11551) (xy 160.40725 83.95676) (xy 160.018655 83.95665) (xy 159.766036 83.956871) - (xy 159.532732 84.053747) (xy 159.354259 84.232531) (xy 159.25779 84.466005) (xy 159.2579 85.60649) (xy 159.41665 85.76524) - (xy 160.566 85.76524) (xy 160.566 86.01924) (xy 159.41665 86.01924) (xy 159.2579 86.17799) (xy 159.25781 87.1009) - (xy 157.7977 87.1009) (xy 157.506095 87.158904) (xy 157.258884 87.324085) (xy 156.089669 88.4933) (xy 154.328424 88.4933) - (xy 154.521015 88.364615) (xy 160.220618 82.665011) (xy 160.248901 82.676756) (xy 160.804661 82.677241) (xy 161.318303 82.465009) - (xy 161.711628 82.07237) (xy 161.924756 81.559099) (xy 161.925241 81.003339) (xy 161.886054 80.9085) (xy 169.933369 80.9085) - (xy 172.672321 83.647451) - ) - ) - (filled_polygon - (pts - (xy 174.260359 86.056989) (xy 174.088245 86.05689) (xy 173.854771 86.153359) (xy 173.675987 86.331832) (xy 173.579111 86.565136) - (xy 173.57889 86.817755) (xy 173.579 86.90625) (xy 173.737748 87.064998) (xy 173.674828 87.064998) (xy 172.746015 86.136185) - (xy 172.498805 85.971004) (xy 172.477962 85.966858) (xy 172.454687 85.91053) (xy 172.652715 85.91053) (xy 172.886189 85.814061) - (xy 173.064973 85.635588) (xy 173.068511 85.627067) (xy 173.456832 85.788313) (xy 173.886284 85.788687) (xy 173.96113 85.75776) - (xy 174.260359 86.056989) - ) - ) - (filled_polygon - (pts - (xy 177.604058 90.716) (xy 177.5965 90.754) (xy 177.5965 94.953636) (xy 177.545864 94.932611) (xy 177.293245 94.93239) - (xy 176.404245 94.93239) (xy 176.170771 95.028859) (xy 176.021897 95.177473) (xy 175.904081 95.059452) (xy 175.988513 94.975168) - (xy 176.085389 94.741864) (xy 176.08561 94.489245) (xy 176.08561 93.600245) (xy 175.989141 93.366771) (xy 175.840628 93.218) - (xy 175.989141 93.069229) (xy 176.08561 92.835755) (xy 176.08561 91.695245) (xy 175.989141 91.461771) (xy 175.810668 91.282987) - (xy 175.577364 91.186111) (xy 175.324745 91.18589) (xy 175.03775 91.186) (xy 174.879 91.34475) (xy 174.879 92.1385) - (xy 175.92675 92.1385) (xy 176.0855 91.97975) (xy 176.08561 91.695245) (xy 176.08561 92.835755) (xy 176.0855 92.55125) - (xy 175.92675 92.3925) (xy 174.879 92.3925) (xy 174.879 92.4125) (xy 174.625 92.4125) (xy 174.625 92.3925) - (xy 174.625 92.1385) (xy 174.625 91.34475) (xy 174.46625 91.186) (xy 174.179255 91.18589) (xy 173.926636 91.186111) - (xy 173.693332 91.282987) (xy 173.514859 91.461771) (xy 173.41839 91.695245) (xy 173.4185 91.97975) (xy 173.57725 92.1385) - (xy 174.625 92.1385) (xy 174.625 92.3925) (xy 173.57725 92.3925) (xy 173.4185 92.55125) (xy 173.41839 92.835755) - (xy 173.488651 93.005801) (xy 173.2785 92.964) (xy 173.17512 92.964) (xy 173.131641 92.858771) (xy 172.953168 92.679987) - (xy 172.719864 92.583111) (xy 172.592982 92.583) (xy 172.719864 92.582889) (xy 172.953168 92.486013) (xy 173.131641 92.307229) - (xy 173.22811 92.073755) (xy 173.228 91.72575) (xy 173.06925 91.567) (xy 171.704 91.567) (xy 171.704 91.587) - (xy 171.45 91.587) (xy 171.45 91.567) (xy 170.08475 91.567) (xy 169.926 91.72575) (xy 169.92589 92.073755) - (xy 170.022359 92.307229) (xy 170.200832 92.486013) (xy 170.434136 92.582889) (xy 170.435279 92.58289) (xy 170.435245 92.58289) - (xy 170.201771 92.679359) (xy 170.022987 92.857832) (xy 169.978902 92.964) (xy 168.8595 92.964) (xy 168.567895 93.022004) - (xy 168.320684 93.187185) (xy 166.62411 94.883759) (xy 166.62411 93.394555) (xy 166.624 91.72575) (xy 166.46525 91.567) - (xy 165.1 91.567) (xy 165.1 93.74505) (xy 165.25875 93.9038) (xy 165.863245 93.90391) (xy 166.115864 93.903689) - (xy 166.349168 93.806813) (xy 166.527641 93.628029) (xy 166.62411 93.394555) (xy 166.62411 94.883759) (xy 166.159719 95.34815) - (xy 166.095168 95.283487) (xy 165.861864 95.186611) (xy 165.609245 95.18639) (xy 164.846 95.18639) (xy 164.846 93.74505) - (xy 164.846 91.567) (xy 163.48075 91.567) (xy 163.322 91.72575) (xy 163.32189 93.394555) (xy 163.418359 93.628029) - (xy 163.596832 93.806813) (xy 163.830136 93.903689) (xy 164.082755 93.90391) (xy 164.68725 93.9038) (xy 164.846 93.74505) - (xy 164.846 95.18639) (xy 164.720245 95.18639) (xy 164.486771 95.282859) (xy 164.337897 95.431473) (xy 164.190168 95.283487) - (xy 163.956864 95.186611) (xy 163.704245 95.18639) (xy 162.815245 95.18639) (xy 162.581771 95.282859) (xy 162.402987 95.461332) - (xy 162.306111 95.694636) (xy 162.306055 95.758) (xy 161.724703 95.758) (xy 161.713009 95.729697) (xy 161.32037 95.336372) - (xy 160.807099 95.123244) (xy 160.251339 95.122759) (xy 159.89311 95.270775) (xy 159.89311 94.425745) (xy 159.89311 93.280255) - (xy 159.892889 93.027636) (xy 159.796013 92.794332) (xy 159.617229 92.615859) (xy 159.383755 92.51939) (xy 159.09925 92.5195) - (xy 158.9405 92.67825) (xy 158.9405 93.726) (xy 159.73425 93.726) (xy 159.893 93.56725) (xy 159.89311 93.280255) - (xy 159.89311 94.425745) (xy 159.893 94.13875) (xy 159.73425 93.98) (xy 158.9405 93.98) (xy 158.9405 95.02775) - (xy 159.09925 95.1865) (xy 159.383755 95.18661) (xy 159.617229 95.090141) (xy 159.796013 94.911668) (xy 159.892889 94.678364) - (xy 159.89311 94.425745) (xy 159.89311 95.270775) (xy 159.737697 95.334991) (xy 159.344372 95.72763) (xy 159.25805 95.935514) - (xy 159.173009 95.729697) (xy 158.78037 95.336372) (xy 158.419537 95.186541) (xy 158.52775 95.1865) (xy 158.6865 95.02775) - (xy 158.6865 93.98) (xy 158.6665 93.98) (xy 158.6665 93.726) (xy 158.6865 93.726) (xy 158.6865 92.67825) - (xy 158.52775 92.5195) (xy 158.243245 92.51939) (xy 158.241595 92.520071) (xy 158.241889 92.519364) (xy 158.242002 92.389377) - (xy 158.476315 92.232815) (xy 158.496049 92.20328) (xy 159.449876 91.249453) (xy 159.532732 91.332453) (xy 159.766036 91.429329) - (xy 160.018655 91.42955) (xy 161.618855 91.42955) (xy 161.852329 91.333081) (xy 162.031113 91.154608) (xy 162.127989 90.921304) - (xy 162.12821 90.668685) (xy 162.12821 90.189306) (xy 162.12821 90.189305) (xy 162.362415 90.032815) (xy 162.47923 89.916) - (xy 163.321918 89.916) (xy 163.322 91.15425) (xy 163.48075 91.313) (xy 164.846 91.313) (xy 164.846 91.293) - (xy 165.1 91.293) (xy 165.1 91.313) (xy 166.46525 91.313) (xy 166.624 91.15425) (xy 166.624081 89.916) - (xy 169.978879 89.916) (xy 170.022359 90.021229) (xy 170.200832 90.200013) (xy 170.434136 90.296889) (xy 170.561017 90.297) - (xy 170.434136 90.297111) (xy 170.200832 90.393987) (xy 170.022359 90.572771) (xy 169.92589 90.806245) (xy 169.926 91.15425) - (xy 170.08475 91.313) (xy 171.45 91.313) (xy 171.45 91.293) (xy 171.704 91.293) (xy 171.704 91.313) - (xy 173.06925 91.313) (xy 173.228 91.15425) (xy 173.22811 90.806245) (xy 173.131641 90.572771) (xy 172.953168 90.393987) - (xy 172.719864 90.297111) (xy 172.718755 90.29711) (xy 172.866932 90.235884) (xy 172.956895 90.295996) (xy 173.2485 90.354) - (xy 173.635185 90.354) (xy 173.675359 90.451229) (xy 173.853832 90.630013) (xy 174.087136 90.726889) (xy 174.339755 90.72711) - (xy 175.039755 90.72711) (xy 175.040283 90.726891) (xy 175.289755 90.72711) (xy 175.989755 90.72711) (xy 175.990283 90.726891) - (xy 176.239755 90.72711) (xy 176.939755 90.72711) (xy 177.173229 90.630641) (xy 177.17352 90.63035) (xy 177.214895 90.657996) - (xy 177.5065 90.716) (xy 177.604058 90.716) + (xy 177.5965 94.953636) (xy 177.545864 94.932611) (xy 177.293245 94.93239) (xy 176.404245 94.93239) (xy 176.170771 95.028859) + (xy 176.021897 95.177473) (xy 175.904081 95.059452) (xy 175.988513 94.975168) (xy 176.085389 94.741864) (xy 176.08561 94.489245) + (xy 176.08561 93.600245) (xy 175.989141 93.366771) (xy 175.840628 93.218) (xy 175.989141 93.069229) (xy 176.08561 92.835755) + (xy 176.0855 92.55125) (xy 175.92675 92.3925) (xy 174.879 92.3925) (xy 174.879 92.4125) (xy 174.625 92.4125) + (xy 174.625 92.3925) (xy 174.625 92.1385) (xy 174.625 91.34475) (xy 174.46625 91.186) (xy 174.179255 91.18589) + (xy 173.926636 91.186111) (xy 173.693332 91.282987) (xy 173.514859 91.461771) (xy 173.41839 91.695245) (xy 173.4185 91.97975) + (xy 173.57725 92.1385) (xy 174.625 92.1385) (xy 174.625 92.3925) (xy 173.57725 92.3925) (xy 173.4185 92.55125) + (xy 173.41839 92.835755) (xy 173.488651 93.005801) (xy 173.2785 92.964) (xy 173.17512 92.964) (xy 173.131641 92.858771) + (xy 172.953168 92.679987) (xy 172.719864 92.583111) (xy 172.592982 92.583) (xy 172.719864 92.582889) (xy 172.953168 92.486013) + (xy 173.131641 92.307229) (xy 173.22811 92.073755) (xy 173.228 91.72575) (xy 173.06925 91.567) (xy 171.704 91.567) + (xy 171.704 91.587) (xy 171.45 91.587) (xy 171.45 91.567) (xy 170.08475 91.567) (xy 169.926 91.72575) + (xy 169.92589 92.073755) (xy 170.022359 92.307229) (xy 170.200832 92.486013) (xy 170.434136 92.582889) (xy 170.435279 92.58289) + (xy 170.435245 92.58289) (xy 170.201771 92.679359) (xy 170.022987 92.857832) (xy 169.978902 92.964) (xy 168.8595 92.964) + (xy 168.567895 93.022004) (xy 168.320684 93.187185) (xy 166.62411 94.883759) (xy 166.62411 93.394555) (xy 166.624 91.72575) + (xy 166.46525 91.567) (xy 165.1 91.567) (xy 165.1 93.74505) (xy 165.25875 93.9038) (xy 165.863245 93.90391) + (xy 166.115864 93.903689) (xy 166.349168 93.806813) (xy 166.527641 93.628029) (xy 166.62411 93.394555) (xy 166.62411 94.883759) + (xy 166.159719 95.34815) (xy 166.095168 95.283487) (xy 165.861864 95.186611) (xy 165.609245 95.18639) (xy 164.846 95.18639) + (xy 164.846 93.74505) (xy 164.846 91.567) (xy 163.48075 91.567) (xy 163.322 91.72575) (xy 163.32189 93.394555) + (xy 163.418359 93.628029) (xy 163.596832 93.806813) (xy 163.830136 93.903689) (xy 164.082755 93.90391) (xy 164.68725 93.9038) + (xy 164.846 93.74505) (xy 164.846 95.18639) (xy 164.720245 95.18639) (xy 164.486771 95.282859) (xy 164.337897 95.431473) + (xy 164.190168 95.283487) (xy 163.956864 95.186611) (xy 163.704245 95.18639) (xy 162.815245 95.18639) (xy 162.581771 95.282859) + (xy 162.402987 95.461332) (xy 162.306111 95.694636) (xy 162.306055 95.758) (xy 161.724703 95.758) (xy 161.713009 95.729697) + (xy 161.32037 95.336372) (xy 160.807099 95.123244) (xy 160.251339 95.122759) (xy 159.89311 95.270775) (xy 159.89311 94.425745) + (xy 159.89311 93.280255) (xy 159.892889 93.027636) (xy 159.796013 92.794332) (xy 159.617229 92.615859) (xy 159.383755 92.51939) + (xy 159.09925 92.5195) (xy 158.9405 92.67825) (xy 158.9405 93.726) (xy 159.73425 93.726) (xy 159.893 93.56725) + (xy 159.89311 93.280255) (xy 159.89311 94.425745) (xy 159.893 94.13875) (xy 159.73425 93.98) (xy 158.9405 93.98) + (xy 158.9405 95.02775) (xy 159.09925 95.1865) (xy 159.383755 95.18661) (xy 159.617229 95.090141) (xy 159.796013 94.911668) + (xy 159.892889 94.678364) (xy 159.89311 94.425745) (xy 159.89311 95.270775) (xy 159.737697 95.334991) (xy 159.344372 95.72763) + (xy 159.25805 95.935514) (xy 159.173009 95.729697) (xy 158.78037 95.336372) (xy 158.419537 95.186541) (xy 158.52775 95.1865) + (xy 158.6865 95.02775) (xy 158.6865 93.98) (xy 158.6665 93.98) (xy 158.6665 93.726) (xy 158.6865 93.726) + (xy 158.6865 92.67825) (xy 158.52775 92.5195) (xy 158.243245 92.51939) (xy 158.241595 92.520071) (xy 158.241889 92.519364) + (xy 158.242002 92.389377) (xy 158.476315 92.232815) (xy 158.496049 92.20328) (xy 159.449876 91.249453) (xy 159.532732 91.332453) + (xy 159.766036 91.429329) (xy 160.018655 91.42955) (xy 161.618855 91.42955) (xy 161.852329 91.333081) (xy 162.031113 91.154608) + (xy 162.127989 90.921304) (xy 162.12821 90.668685) (xy 162.12821 90.189306) (xy 162.12821 90.189305) (xy 162.362415 90.032815) + (xy 162.47923 89.916) (xy 163.321918 89.916) (xy 163.322 91.15425) (xy 163.48075 91.313) (xy 164.846 91.313) + (xy 164.846 91.293) (xy 165.1 91.293) (xy 165.1 91.313) (xy 166.46525 91.313) (xy 166.624 91.15425) + (xy 166.624081 89.916) (xy 169.978879 89.916) (xy 170.022359 90.021229) (xy 170.200832 90.200013) (xy 170.434136 90.296889) + (xy 170.561017 90.297) (xy 170.434136 90.297111) (xy 170.200832 90.393987) (xy 170.022359 90.572771) (xy 169.92589 90.806245) + (xy 169.926 91.15425) (xy 170.08475 91.313) (xy 171.45 91.313) (xy 171.45 91.293) (xy 171.704 91.293) + (xy 171.704 91.313) (xy 173.06925 91.313) (xy 173.228 91.15425) (xy 173.22811 90.806245) (xy 173.131641 90.572771) + (xy 172.953168 90.393987) (xy 172.719864 90.297111) (xy 172.718755 90.29711) (xy 172.945705 90.203336) (xy 173.258184 90.515815) + (xy 173.258185 90.515815) (xy 173.505395 90.680996) (xy 173.529149 90.68572) (xy 173.529359 90.686229) (xy 173.707832 90.865013) + (xy 173.941136 90.961889) (xy 174.193755 90.96211) (xy 175.037251 90.96211) (xy 175.064004 91.096605) (xy 175.123714 91.185967) + (xy 175.03775 91.186) (xy 174.879 91.34475) (xy 174.879 92.1385) (xy 175.92675 92.1385) (xy 176.0855 91.97975) + (xy 176.085517 91.935372) (xy 176.149 91.948) (xy 177.5965 91.948) (xy 177.5965 94.953636) ) ) (filled_polygon @@ -2765,14 +2721,14 @@ (xy 178.22089 83.779755) (xy 178.22089 85.779755) (xy 178.317359 86.013229) (xy 178.495832 86.192013) (xy 178.729136 86.288889) (xy 178.981755 86.28911) (xy 181.775755 86.28911) (xy 181.889237 86.24222) (xy 181.784577 86.346698) (xy 181.6102 86.766646) (xy 181.610185 86.783041) (xy 181.589168 86.761987) (xy 181.355864 86.665111) (xy 181.103245 86.66489) (xy 180.24475 86.665) - (xy 180.086 86.82375) (xy 180.086 87.427) (xy 180.106 87.427) (xy 180.106 87.46489) (xy 179.832 87.46489) - (xy 179.832 87.427) (xy 179.832 86.82375) (xy 179.67325 86.665) (xy 178.814755 86.66489) (xy 178.562136 86.665111) - (xy 178.328832 86.761987) (xy 178.150359 86.940771) (xy 178.05389 87.174245) (xy 178.054 87.26825) (xy 178.21275 87.427) - (xy 179.832 87.427) (xy 179.832 87.46489) (xy 178.563245 87.46489) (xy 178.329771 87.561359) (xy 178.150987 87.739832) - (xy 178.148905 87.744844) (xy 178.054 87.83975) (xy 178.05389 87.933755) (xy 178.062156 87.95376) (xy 178.054111 87.973136) - (xy 178.054041 88.052677) (xy 177.7867 87.9995) (xy 177.373882 87.9995) (xy 177.448889 87.818864) (xy 177.44911 87.566245) - (xy 177.44911 86.566245) (xy 177.352641 86.332771) (xy 177.187349 86.167191) (xy 177.167996 86.069895) (xy 177.002815 85.822685) - (xy 177.002815 85.822684) (xy 170.88413 79.704) (xy 187.631 79.704) (xy 187.631 83.237029) + (xy 180.086 86.82375) (xy 180.086 87.427) (xy 180.106 87.427) (xy 180.106 87.46489) (xy 179.812 87.46489) + (xy 179.812 87.427) (xy 179.832 87.427) (xy 179.832 86.82375) (xy 179.67325 86.665) (xy 178.814755 86.66489) + (xy 178.562136 86.665111) (xy 178.328832 86.761987) (xy 178.150359 86.940771) (xy 178.05389 87.174245) (xy 178.054 87.26825) + (xy 178.161067 87.375317) (xy 178.157605 87.373004) (xy 177.975756 87.336832) (xy 177.975755 87.336831) (xy 177.828168 87.188987) + (xy 177.594864 87.092111) (xy 177.342245 87.09189) (xy 176.342245 87.09189) (xy 176.108771 87.188359) (xy 175.929987 87.366832) + (xy 175.833111 87.600136) (xy 175.83289 87.852755) (xy 175.83289 88.339377) (xy 175.703 88.426166) (xy 175.70311 88.301245) + (xy 175.70311 87.601245) (xy 175.606641 87.367771) (xy 175.428168 87.188987) (xy 175.194864 87.092111) (xy 175.037604 87.091973) + (xy 167.64963 79.704) (xy 187.631 79.704) (xy 187.631 83.237029) ) ) (filled_polygon diff --git a/hardware/mini48-stm32/mini48-stm32.net b/hardware/mini48-stm32/mini48-stm32.net index 8c4f9f6dee..b3d9f59391 100644 --- a/hardware/mini48-stm32/mini48-stm32.net +++ b/hardware/mini48-stm32/mini48-stm32.net @@ -1,7 +1,7 @@ (export (version D) (design - (source /home/rox/Art_Electro/MY_PROJ/mini48-stm32/mini48-stm32.sch) - (date "Сб. 27 дек. 2014 12:16:03") + (source /home/rox/Art_Electro/RUSEFI/SVN-rusefi/mini48-stm32/mini48-stm32.sch) + (date "Сб. 27 дек. 2014 20:56:42") (tool "eeschema (22-Jun-2014 BZR 4027)-stable")) (components (comp (ref X1) @@ -155,16 +155,6 @@ (libsource (lib device) (part C)) (sheetpath (names /) (tstamps /)) (tstamp 549BDC77)) - (comp (ref U2) - (value STF202) - (libsource (lib art-electro-ic) (part STF202)) - (sheetpath (names /) (tstamps /)) - (tstamp 549BE1BB)) - (comp (ref Q1) - (value DTA114E) - (libsource (lib transistors) (part DTA114E)) - (sheetpath (names /) (tstamps /)) - (tstamp 549BE47C)) (comp (ref P1) (value CONN_20) (libsource (lib conn) (part CONN_20)) @@ -174,7 +164,12 @@ (value CONN_20) (libsource (lib conn) (part CONN_20)) (sheetpath (names /) (tstamps /)) - (tstamp 549BE7DA))) + (tstamp 549BE7DA)) + (comp (ref U2) + (value NUF2101MT1G) + (libsource (lib art-electro-ic) (part NUF2101MT1G)) + (sheetpath (names /) (tstamps /)) + (tstamp 549EE660))) (libparts (libpart (lib device) (part C) (description "Condensateur non polarise") @@ -251,6 +246,32 @@ (pins (pin (num 1) (name 1) (type passive)) (pin (num 2) (name 2) (type passive)))) + (libpart (lib conn) (part CONN_20) + (description "Symbole general de connexion") + (fields + (field (name Reference) P) + (field (name Value) CONN_20)) + (pins + (pin (num 1) (name P1) (type passive)) + (pin (num 2) (name P2) (type passive)) + (pin (num 3) (name P3) (type passive)) + (pin (num 4) (name P4) (type passive)) + (pin (num 5) (name P5) (type passive)) + (pin (num 6) (name P6) (type passive)) + (pin (num 7) (name P7) (type passive)) + (pin (num 8) (name P8) (type passive)) + (pin (num 9) (name P9) (type passive)) + (pin (num 10) (name P10) (type passive)) + (pin (num 11) (name P11) (type passive)) + (pin (num 12) (name P12) (type passive)) + (pin (num 13) (name P13) (type passive)) + (pin (num 14) (name P14) (type passive)) + (pin (num 15) (name P15) (type passive)) + (pin (num 16) (name P16) (type passive)) + (pin (num 17) (name P17) (type passive)) + (pin (num 18) (name P18) (type passive)) + (pin (num 19) (name P19) (type passive)) + (pin (num 20) (name P20) (type passive)))) (libpart (lib art-electro-stm32) (part STM32F103C8) (description "STM8S105C4(C6), 8-bit microcontroller, 16MHz, 16(32)KB Flash, 2KB RAM, VQFP48") (footprints @@ -309,50 +330,24 @@ (pin (num 46) (name PB9) (type BiDi)) (pin (num 47) (name VSS_3) (type power_in)) (pin (num 48) (name VDD_3) (type power_in)))) - (libpart (lib conn) (part CONN_20) - (description "Symbole general de connexion") - (fields - (field (name Reference) P) - (field (name Value) CONN_20)) - (pins - (pin (num 1) (name P1) (type passive)) - (pin (num 2) (name P2) (type passive)) - (pin (num 3) (name P3) (type passive)) - (pin (num 4) (name P4) (type passive)) - (pin (num 5) (name P5) (type passive)) - (pin (num 6) (name P6) (type passive)) - (pin (num 7) (name P7) (type passive)) - (pin (num 8) (name P8) (type passive)) - (pin (num 9) (name P9) (type passive)) - (pin (num 10) (name P10) (type passive)) - (pin (num 11) (name P11) (type passive)) - (pin (num 12) (name P12) (type passive)) - (pin (num 13) (name P13) (type passive)) - (pin (num 14) (name P14) (type passive)) - (pin (num 15) (name P15) (type passive)) - (pin (num 16) (name P16) (type passive)) - (pin (num 17) (name P17) (type passive)) - (pin (num 18) (name P18) (type passive)) - (pin (num 19) (name P19) (type passive)) - (pin (num 20) (name P20) (type passive)))) - (libpart (lib art-electro-ic) (part STF202) - (description "USB Filter with ESD Protection") + (libpart (lib art-electro-ic) (part NUF2101MT1G) + (description "EMI Filter and line termination for USB upstream") (footprints (fp SOT*)) (fields (field (name Reference) U) - (field (name Value) STF202) + (field (name Value) NUF2101MT1G) (field (name Footprint) ~) (field (name Datasheet) ~)) (pins - (pin (num 1) (name Vbus) (type power_in)) - (pin (num 2) (name D+) (type input)) - (pin (num 3) (name D-) (type input)) - (pin (num 4) (name DP) (type output)) - (pin (num 5) (name DM) (type output)) - (pin (num 6) (name GND) (type power_in)))) + (pin (num 1) (name D+out) (type output)) + (pin (num 2) (name GND) (type power_in)) + (pin (num 3) (name D-out) (type output)) + (pin (num 4) (name D-) (type input)) + (pin (num 5) (name Vbus) (type power_in)) + (pin (num 6) (name D+) (type input)))) (libpart (lib art-electro-power) (part LM2937) - (description "Voltage Regulators 3.3v 0.5A SOT 223/263") + (description "Voltage Regulators 3.3v SOT 223/263") (footprints (fp SOT223) (fp TO263)) @@ -366,18 +361,6 @@ (pin (num 2) (name GND) (type passive)) (pin (num 3) (name Vout) (type power_out)) (pin (num 4) (name ~) (type passive)))) - (libpart (lib transistors) (part DTA114E) - (description "DTA114E, Digital Transistor, 10k/10k, SOT23") - (footprints - (fp SOT23*) - (fp SC59*)) - (fields - (field (name Reference) Q) - (field (name Value) DTA114E)) - (pins - (pin (num 1) (name B) (type input)) - (pin (num 2) (name E) (type passive)) - (pin (num 3) (name C) (type passive)))) (libpart (lib art-electro-conn) (part LED_0805) (footprints (fp LED-0805*)) @@ -390,7 +373,6 @@ (pin (num 1) (name A) (type passive)) (pin (num 2) (name K) (type passive)))) (libpart (lib art-electro-conn) (part MINI-USB) - (description "MINI USB") (footprints (fp MINI-USB*)) (fields @@ -410,230 +392,223 @@ (uri /usr/share/kicad/library/device.lib)) (library (logical conn) (uri /usr/share/kicad/library/conn.lib)) - (library (logical art-electro-ic) - (uri ../art_el_lib/art-electro-ic.lib)) (library (logical art-electro-stm32) - (uri ../art_el_lib/art-electro-stm32.lib)) + (uri ../rusefi_lib/art-electro-stm32.lib)) (library (logical art-electro-power) - (uri ../art_el_lib/art-electro-power.lib)) - (library (logical transistors) - (uri /usr/share/kicad/library/transistors.lib)) + (uri ../rusefi_lib/art-electro-power.lib)) + (library (logical art-electro-ic) + (uri ../rusefi_lib/art-electro-ic.lib)) (library (logical art-electro-conn) - (uri ../art_el_lib/art-electro-conn.lib))) + (uri ../rusefi_lib/art-electro-conn.lib))) (nets - (net (code 1) (name /23_USBDP) - (node (ref P2) (pin 12)) - (node (ref U2) (pin 5)) - (node (ref U1) (pin 33))) - (net (code 2) (name GND) + (net (code 1) (name GND) (node (ref C11) (pin 2)) (node (ref C10) (pin 2)) + (node (ref C9) (pin 2)) (node (ref C6) (pin 1)) + (node (ref U2) (pin 2)) (node (ref D4) (pin 2)) (node (ref J1) (pin 5)) (node (ref D1) (pin 2)) - (node (ref U1) (pin 8)) + (node (ref C3) (pin 1)) (node (ref P2) (pin 2)) - (node (ref U1) (pin 35)) + (node (ref R6) (pin 1)) (node (ref SW1) (pin 1)) (node (ref U1) (pin 47)) - (node (ref C4) (pin 1)) + (node (ref U1) (pin 35)) (node (ref U1) (pin 23)) - (node (ref R6) (pin 1)) (node (ref C5) (pin 1)) - (node (ref C9) (pin 2)) - (node (ref C3) (pin 1)) + (node (ref C4) (pin 1)) + (node (ref U1) (pin 8)) (node (ref C7) (pin 2)) (node (ref C2) (pin 1)) (node (ref C8) (pin 2)) - (node (ref C12) (pin 2)) (node (ref C1) (pin 1)) - (node (ref R2) (pin 2)) - (node (ref U3) (pin 4)) - (node (ref U2) (pin 6)) (node (ref U3) (pin 2)) - (node (ref P1) (pin 2))) - (net (code 3) (name "") - (node (ref C12) (pin 1)) - (node (ref D3) (pin 2)) + (node (ref U3) (pin 4)) + (node (ref P1) (pin 2)) + (node (ref R2) (pin 2)) + (node (ref C12) (pin 2))) + (net (code 2) (name "") (node (ref U3) (pin 1)) - (node (ref D2) (pin 2))) - (net (code 4) (name /D+) - (node (ref U2) (pin 2)) - (node (ref J1) (pin 3))) - (net (code 5) (name /D-) - (node (ref U2) (pin 3)) + (node (ref D2) (pin 2)) + (node (ref D3) (pin 2)) + (node (ref C12) (pin 1))) + (net (code 3) (name /D+) + (node (ref J1) (pin 3)) + (node (ref U2) (pin 6))) + (net (code 4) (name /D-) + (node (ref U2) (pin 4)) (node (ref J1) (pin 2))) - (net (code 6) (name /24_USBDM) - (node (ref P2) (pin 13)) - (node (ref U1) (pin 32)) - (node (ref U2) (pin 4))) - (net (code 7) (name /+5v) - (node (ref D3) (pin 1)) + (net (code 5) (name /+5v) (node (ref R3) (pin 1)) + (node (ref D3) (pin 1)) + (node (ref U2) (pin 5)) (node (ref J1) (pin 1))) - (net (code 8) (name /VCC) - (node (ref U3) (pin 3)) - (node (ref C11) (pin 1)) - (node (ref U1) (pin 48)) - (node (ref C10) (pin 1)) - (node (ref P2) (pin 1)) - (node (ref R5) (pin 2)) - (node (ref U1) (pin 24)) - (node (ref U1) (pin 36)) - (node (ref C7) (pin 1)) - (node (ref Q1) (pin 2)) - (node (ref C8) (pin 1)) - (node (ref P1) (pin 1)) - (node (ref C9) (pin 1)) - (node (ref U1) (pin 9)) - (node (ref R1) (pin 2))) - (net (code 9) (name /VIN) - (node (ref P1) (pin 20)) - (node (ref D2) (pin 1))) - (net (code 10) (name /Reset) - (node (ref U1) (pin 7)) - (node (ref SW1) (pin 2)) - (node (ref R1) (pin 1)) - (node (ref P1) (pin 7)) - (node (ref C6) (pin 2))) - (net (code 11) (name "") - (node (ref P1) (pin 6))) - (net (code 12) (name "") - (node (ref P1) (pin 5))) - (net (code 13) (name /14) - (node (ref U1) (pin 2)) - (node (ref P1) (pin 4))) - (net (code 14) (name /DISK) - (node (ref Q1) (pin 1)) - (node (ref U1) (pin 46))) - (net (code 15) (name "") + (net (code 6) (name /23_USBDP) (node (ref U2) (pin 1)) - (node (ref Q1) (pin 3))) - (net (code 16) (name "") + (node (ref U1) (pin 33)) + (node (ref P2) (pin 12))) + (net (code 7) (name /VCC) + (node (ref P2) (pin 1)) + (node (ref U1) (pin 24)) + (node (ref U1) (pin 48)) + (node (ref U1) (pin 9)) + (node (ref R5) (pin 2)) + (node (ref C8) (pin 1)) + (node (ref C9) (pin 1)) + (node (ref C7) (pin 1)) + (node (ref R1) (pin 2)) + (node (ref U3) (pin 3)) + (node (ref U1) (pin 36)) + (node (ref C10) (pin 1)) + (node (ref P1) (pin 1)) + (node (ref C11) (pin 1))) + (net (code 8) (name /VIN) + (node (ref D2) (pin 1)) + (node (ref P1) (pin 20))) + (net (code 9) (name /14) + (node (ref P1) (pin 4)) + (node (ref U1) (pin 2))) + (net (code 10) (name /35) + (node (ref U1) (pin 46)) + (node (ref P1) (pin 6))) + (net (code 11) (name "") + (node (ref P1) (pin 5))) + (net (code 12) (name /VBAT) + (node (ref P1) (pin 3)) + (node (ref U1) (pin 1))) + (net (code 13) (name "") (node (ref D1) (pin 1)) (node (ref R3) (pin 2))) - (net (code 17) (name "") + (net (code 14) (name "") + (node (ref J1) (pin 4))) + (net (code 15) (name "") + (node (ref SW2) (pin 1)) + (node (ref R5) (pin 1))) + (net (code 16) (name /BOOT0) + (node (ref U1) (pin 44)) + (node (ref P2) (pin 3)) + (node (ref SW2) (pin 2)) + (node (ref R4) (pin 2)) + (node (ref R6) (pin 2))) + (net (code 17) (name /24_USBDM) + (node (ref P2) (pin 13)) + (node (ref U2) (pin 3)) + (node (ref U1) (pin 32))) + (net (code 18) (name /33) + (node (ref U1) (pin 19)) + (node (ref R7) (pin 1))) + (net (code 19) (name "") + (node (ref R7) (pin 2)) + (node (ref D4) (pin 1))) + (net (code 20) (name "") (node (ref R2) (pin 1)) (node (ref C1) (pin 2)) (node (ref J1) (pin 6))) - (net (code 18) (name "") - (node (ref J1) (pin 4))) - (net (code 19) (name "") - (node (ref R5) (pin 1)) - (node (ref SW2) (pin 1))) - (net (code 20) (name /BOOT0) - (node (ref P2) (pin 3)) - (node (ref R4) (pin 2)) - (node (ref SW2) (pin 2)) - (node (ref R6) (pin 2)) - (node (ref U1) (pin 44))) - (net (code 21) (name /33) - (node (ref U1) (pin 19)) - (node (ref R7) (pin 1))) - (net (code 22) (name "") - (node (ref D4) (pin 1)) - (node (ref R7) (pin 2))) - (net (code 23) (name /11) - (node (ref U1) (pin 10)) - (node (ref P1) (pin 8))) - (net (code 24) (name /18) - (node (ref P2) (pin 7)) - (node (ref U1) (pin 40))) - (net (code 25) (name /31) - (node (ref U1) (pin 25)) - (node (ref P2) (pin 20))) - (net (code 26) (name /30) - (node (ref P2) (pin 19)) - (node (ref U1) (pin 26))) - (net (code 27) (name /29) - (node (ref U1) (pin 27)) - (node (ref P2) (pin 18))) - (net (code 28) (name /28) - (node (ref U1) (pin 28)) - (node (ref P2) (pin 17))) - (net (code 29) (name /27) - (node (ref P2) (pin 16)) - (node (ref U1) (pin 29))) - (net (code 30) (name /26) - (node (ref P2) (pin 15)) - (node (ref U1) (pin 30))) - (net (code 31) (name /25) - (node (ref P2) (pin 14)) - (node (ref U1) (pin 31))) - (net (code 32) (name /22) - (node (ref U1) (pin 34)) - (node (ref P2) (pin 11))) - (net (code 33) (name /21) - (node (ref P2) (pin 10)) - (node (ref U1) (pin 37))) - (net (code 34) (name /20) - (node (ref U1) (pin 38)) - (node (ref P2) (pin 9))) - (net (code 35) (name /19) - (node (ref P2) (pin 8)) - (node (ref U1) (pin 39))) - (net (code 36) (name /17) - (node (ref U1) (pin 41)) - (node (ref P2) (pin 6))) - (net (code 37) (name /16) - (node (ref P2) (pin 5)) - (node (ref U1) (pin 42))) - (net (code 38) (name /15) - (node (ref P2) (pin 4)) - (node (ref U1) (pin 43))) - (net (code 39) (name /0) - (node (ref U1) (pin 22)) - (node (ref P1) (pin 19))) - (net (code 40) (name /1) - (node (ref P1) (pin 18)) - (node (ref U1) (pin 21))) - (net (code 41) (name /2) - (node (ref U1) (pin 20)) - (node (ref P1) (pin 17))) - (net (code 42) (name /3) + (net (code 21) (name /29) + (node (ref P2) (pin 18)) + (node (ref U1) (pin 27))) + (net (code 22) (name /2) + (node (ref P1) (pin 17)) + (node (ref U1) (pin 20))) + (net (code 23) (name /3) (node (ref P1) (pin 16)) (node (ref U1) (pin 18))) - (net (code 43) (name /4) - (node (ref P1) (pin 15)) - (node (ref U1) (pin 17))) - (net (code 44) (name /5) + (net (code 24) (name /4) + (node (ref U1) (pin 17)) + (node (ref P1) (pin 15))) + (net (code 25) (name /5) (node (ref P1) (pin 14)) (node (ref U1) (pin 16))) - (net (code 45) (name /6) + (net (code 26) (name /6) (node (ref U1) (pin 15)) (node (ref P1) (pin 13))) - (net (code 46) (name /7) - (node (ref P1) (pin 12)) - (node (ref U1) (pin 14))) - (net (code 47) (name /8) + (net (code 27) (name /7) + (node (ref U1) (pin 14)) + (node (ref P1) (pin 12))) + (net (code 28) (name /8) (node (ref U1) (pin 13)) (node (ref P1) (pin 11))) - (net (code 48) (name /9) + (net (code 29) (name /9) (node (ref U1) (pin 12)) (node (ref P1) (pin 10))) - (net (code 49) (name /10) + (net (code 30) (name /10) (node (ref U1) (pin 11)) (node (ref P1) (pin 9))) - (net (code 50) (name /VBAT) - (node (ref U1) (pin 1)) - (node (ref P1) (pin 3))) - (net (code 51) (name /OSC32_OUT) + (net (code 31) (name /11) + (node (ref U1) (pin 10)) + (node (ref P1) (pin 8))) + (net (code 32) (name /Reset) + (node (ref U1) (pin 7)) + (node (ref R1) (pin 1)) + (node (ref P1) (pin 7)) + (node (ref SW1) (pin 2)) + (node (ref C6) (pin 2))) + (net (code 33) (name /31) + (node (ref P2) (pin 20)) + (node (ref U1) (pin 25))) + (net (code 34) (name /30) + (node (ref U1) (pin 26)) + (node (ref P2) (pin 19))) + (net (code 35) (name /1) + (node (ref U1) (pin 21)) + (node (ref P1) (pin 18))) + (net (code 36) (name /28) + (node (ref P2) (pin 17)) + (node (ref U1) (pin 28))) + (net (code 37) (name /27) + (node (ref U1) (pin 29)) + (node (ref P2) (pin 16))) + (net (code 38) (name /26) + (node (ref P2) (pin 15)) + (node (ref U1) (pin 30))) + (net (code 39) (name /25) + (node (ref P2) (pin 14)) + (node (ref U1) (pin 31))) + (net (code 40) (name /22) + (node (ref P2) (pin 11)) + (node (ref U1) (pin 34))) + (net (code 41) (name /21) + (node (ref P2) (pin 10)) + (node (ref U1) (pin 37))) + (net (code 42) (name /20) + (node (ref U1) (pin 38)) + (node (ref P2) (pin 9))) + (net (code 43) (name /19) + (node (ref P2) (pin 8)) + (node (ref U1) (pin 39))) + (net (code 44) (name /18) + (node (ref P2) (pin 7)) + (node (ref U1) (pin 40))) + (net (code 45) (name /17) + (node (ref U1) (pin 41)) + (node (ref P2) (pin 6))) + (net (code 46) (name /16) + (node (ref U1) (pin 42)) + (node (ref P2) (pin 5))) + (net (code 47) (name /0) + (node (ref U1) (pin 22)) + (node (ref P1) (pin 19))) + (net (code 48) (name /15) + (node (ref U1) (pin 43)) + (node (ref P2) (pin 4))) + (net (code 49) (name /OSC32_OUT) (node (ref U1) (pin 4)) (node (ref X2) (pin 1)) (node (ref C4) (pin 2))) - (net (code 52) (name /OSC32_IN) - (node (ref X2) (pin 2)) + (net (code 50) (name /OSC32_IN) (node (ref C5) (pin 2)) + (node (ref X2) (pin 2)) (node (ref U1) (pin 3))) - (net (code 53) (name "") + (net (code 51) (name "") (node (ref X1) (pin 2)) (node (ref C3) (pin 2)) (node (ref U1) (pin 6))) - (net (code 54) (name "") + (net (code 52) (name "") (node (ref U1) (pin 5)) (node (ref C2) (pin 2)) (node (ref X1) (pin 1))) - (net (code 55) (name "") + (net (code 53) (name "") (node (ref U1) (pin 45)) (node (ref R4) (pin 1))))) \ No newline at end of file diff --git a/hardware/mini48-stm32/mini48-stm32.sch b/hardware/mini48-stm32/mini48-stm32.sch index a3a9d17d92..c01527d710 100644 --- a/hardware/mini48-stm32/mini48-stm32.sch +++ b/hardware/mini48-stm32/mini48-stm32.sch @@ -17,10 +17,10 @@ $Descr A4 11693 8268 encoding utf-8 Sheet 1 1 Title "Maplemini fork" -Date "25 dec 2014" +Date "27 dec 2014" Rev "" Comp "Art_Electro" -Comment1 "v1.0" +Comment1 "v1.2" Comment2 "Art_Electro" Comment3 "" Comment4 "" @@ -422,7 +422,7 @@ Text Label 4425 2350 0 60 ~ 0 Text Label 4425 2450 0 60 ~ 0 15 Text Label 4425 2650 0 60 ~ 0 -DISK +35 Text Label 4425 2850 0 60 ~ 0 0 Text Label 4425 2950 0 60 ~ 0 @@ -757,9 +757,9 @@ F 3 "~" H 1100 6250 60 0000 C CNN 1 1100 6250 1 0 0 -1 $EndComp -Text Label 4925 7300 0 60 ~ 0 +Text Label 4925 6800 0 60 ~ 0 24_USBDM -Text Label 4925 7050 0 60 ~ 0 +Text Label 4925 7300 0 60 ~ 0 23_USBDP $Comp L GND #PWR020 @@ -882,12 +882,12 @@ $EndComp $Comp L GND #PWR026 U 1 1 549BD32C -P 4775 6800 -F 0 "#PWR026" H 4775 6800 30 0001 C CNN -F 1 "GND" H 4775 6730 30 0001 C CNN -F 2 "" H 4775 6800 60 0001 C CNN -F 3 "" H 4775 6800 60 0001 C CNN - 1 4775 6800 +P 4925 7050 +F 0 "#PWR026" H 4925 7050 30 0001 C CNN +F 1 "GND" H 4925 6980 30 0001 C CNN +F 2 "" H 4925 7050 60 0001 C CNN +F 3 "" H 4925 7050 60 0001 C CNN + 1 4925 7050 0 -1 -1 0 $EndComp Wire Wire Line @@ -911,9 +911,9 @@ F 3 "" H 5450 4800 60 0000 C CNN $EndComp Text Notes 6675 4650 0 60 ~ 0 3.3v -Text Label 3375 7050 2 60 ~ 0 +Text Label 3225 7300 2 60 ~ 0 D+ -Text Label 3375 7300 2 60 ~ 0 +Text Label 3225 6800 2 60 ~ 0 D- Text Notes 8900 6650 0 60 ~ 0 diodes schottky 20V 1A SD0805S020S1R0 @@ -964,38 +964,8 @@ Wire Wire Line Wire Wire Line 5650 4800 5925 4800 Connection ~ 5750 4800 -$Comp -L STF202 U2 -U 1 1 549BE1BB -P 4075 7050 -F 0 "U2" H 4175 7450 70 0000 C CNN -F 1 "STF202" H 4075 6650 70 0000 C CNN -F 2 "~" H 4075 7050 60 0000 C CNN -F 3 "~" H 4075 7050 60 0000 C CNN - 1 4075 7050 - 1 0 0 -1 -$EndComp -$Comp -L DTA114E Q1 -U 1 1 549BE47C -P 3125 6600 -F 0 "Q1" H 3070 6440 40 0000 R CNN -F 1 "DTA114E" H 3125 6750 40 0000 R CNN -F 2 "" H 3125 6600 60 0000 C CNN -F 3 "" H 3125 6600 60 0000 C CNN - 1 3125 6600 - 1 0 0 1 -$EndComp Wire Wire Line 3225 6800 3375 6800 -Wire Wire Line - 3225 6400 3225 6325 -Wire Wire Line - 2875 6600 2675 6600 -Text Label 3225 6325 0 60 ~ 0 -VCC -Text Label 2675 6600 2 60 ~ 0 -DISK $Comp L CONN_20 P1 U 1 1 549BE7CD @@ -1137,7 +1107,6 @@ Wire Wire Line Wire Wire Line 8375 3175 8250 3175 NoConn ~ 7125 1675 -NoConn ~ 7125 1775 Text Label 7250 1875 0 60 ~ 0 Reset Text Label 7250 1975 0 60 ~ 0 @@ -1194,4 +1163,27 @@ Wire Wire Line 7250 3075 7125 3075 Wire Wire Line 7250 3175 7125 3175 +Text Label 7250 1775 0 60 ~ 0 +35 +Wire Wire Line + 7125 1775 7250 1775 +Text Label 3225 7050 2 60 ~ 0 ++5v +$Comp +L NUF2101MT1G U2 +U 1 1 549EE660 +P 4075 7050 +F 0 "U2" H 4175 7450 70 0000 C CNN +F 1 "NUF2101MT1G" H 4075 6650 70 0000 C CNN +F 2 "~" H 4075 7050 60 0000 C CNN +F 3 "~" H 4075 7050 60 0000 C CNN + 1 4075 7050 + -1 0 0 1 +$EndComp +Wire Wire Line + 3375 7050 3225 7050 +Wire Wire Line + 3375 7300 3225 7300 +Wire Wire Line + 4775 6800 4925 6800 $EndSCHEMATC diff --git a/unit_tests/test_logic_expression.cpp b/unit_tests/test_logic_expression.cpp index cd3661924f..9e23d09a04 100644 --- a/unit_tests/test_logic_expression.cpp +++ b/unit_tests/test_logic_expression.cpp @@ -9,10 +9,8 @@ #include "main.h" #include "test_logic_expression.h" -#include "logic_expression.h" -#include "le_functions.h" +#include "fsio_impl.h" #include "cli_registry.h" -#include "engine.h" #define TEST_POOL_SIZE 256