diff --git a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/src/main.cpp b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/src/main.cpp index b917f0b..c3ebe8c 100755 --- a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/src/main.cpp +++ b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/src/main.cpp @@ -34,7 +34,7 @@ volatile double posCmd1, posCmd2, posCmd3, posCmd4; volatile float posScale1, posScale2, posScale3, posScale4; volatile float maxAcc1, maxAcc2, maxAcc3, maxAcc4; volatile uint8_t enable1, enable2, enable3, enable4; -volatile uint32_t basePeriod; +volatile uint32_t basePeriod, newBasePeriod; volatile uint16_t basePeriodCnt; volatile uint16_t deltaMakePulsesCnt; volatile uint64_t makePulsesCnt = 0; @@ -103,7 +103,7 @@ void cb_set_outputs(void) // Get Master outputs, slave inputs, first operation enable3 = Obj.Enable3; enable4 = Obj.Enable4; if (Obj.BasePeriod != 0) // Use default value from setup() if not set by SDO. - basePeriod = Obj.BasePeriod; + newBasePeriod = Obj.BasePeriod; } void cb_get_inputs(void) // Set Master inputs, slave outputs, last operation @@ -197,7 +197,7 @@ void setup(void) pinMode(PE5, OUTPUT); // Step 4 pinMode(PE4, OUTPUT); // Dir 4 - basePeriod = BASE_PERIOD; // Random-ish number, but it should work + basePeriod = newBasePeriod = BASE_PERIOD; // Random-ish number, but it should work. Change through sdos baseTimer = new HardwareTimer(TIM11); // The base period timer baseTimer->setOverflow(BASE_PERIOD / 1000, MICROSEC_FORMAT); // Or the line above, This one is uncalibrated @@ -345,8 +345,13 @@ void updateStepperGenerators(void) posScale1, posScale2, posScale3, posScale4, maxAcc1, maxAcc2, maxAcc3, maxAcc4, enable1, enable2, enable3, enable4, - sync0CycleTime); // Update positions - Step->makeAllPulses(); // Make first step right here + sync0CycleTime); // Update positions + Step->makeAllPulses(); // Make first step right here + if (newBasePeriod != basePeriod) // Changed via sdos + { + basePeriod = newBasePeriod; + baseTimer->setOverflow(basePeriod / 1000, MICROSEC_FORMAT); // update timer frequency + } basePeriodCnt = sync0CycleTime / basePeriod; // baseTimer->refresh(); // baseTimer->resume(); diff --git a/Cards/EaserCAT-7000-DIO+I2C/Firmware/.vscode/c_cpp_properties.json b/Cards/EaserCAT-7000-DIO+I2C/Firmware/.vscode/c_cpp_properties.json index af194dc..787240f 100755 --- a/Cards/EaserCAT-7000-DIO+I2C/Firmware/.vscode/c_cpp_properties.json +++ b/Cards/EaserCAT-7000-DIO+I2C/Firmware/.vscode/c_cpp_properties.json @@ -8,97 +8,99 @@ { "name": "PlatformIO", "includePath": [ - "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/include", - "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/src", - "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi", - "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes", - "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/MyMCP3221", - "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/ADS1X15", - "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/MCP3X21", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Wire/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SPI/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/cores/arduino/avr", - "/home/debian/.platformio/packages/framework-arduinoststm32/cores/arduino/stm32", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc/LL", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/inc", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/inc", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Inc", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Src", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/STM32F4xx", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/open-amp/lib/include", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/libmetal/lib/include", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/virtual_driver", - "/home/debian/.platformio/packages/framework-cmsis/CMSIS/Core/Include", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Include", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc", - "/home/debian/.platformio/packages/framework-cmsis/CMSIS/DSP/Include", - "/home/debian/.platformio/packages/framework-cmsis/CMSIS/DSP/PrivateInclude", - "/home/debian/.platformio/packages/framework-arduinoststm32/cores/arduino", - "/home/debian/.platformio/packages/framework-arduinoststm32/variants/STM32F4xx/F407V(E-G)T_F417V(E-G)T", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/CMSIS_DSP/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/EEPROM/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/IWatchdog/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Keyboard/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Mouse/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/RGB_LED_TLC59731/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Servo/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SoftwareSerial/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SubGhz/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/src", + "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/include", + "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/src", + "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/MyMCP3221", + "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi", + "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes", + "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/ADS1X15", + "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/MCP3X21", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Wire/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SPI/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/cores/arduino/avr", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/cores/arduino/stm32", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc/LL", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/inc", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/inc", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Inc", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/STM32F4xx", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/open-amp/lib/include", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/libmetal/lib/include", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/virtual_driver", + "C:/Users/Hakan/.platformio/packages/framework-cmsis/CMSIS/Core/Include", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Include", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc", + "C:/Users/Hakan/.platformio/packages/framework-cmsis/CMSIS/DSP/Include", + "C:/Users/Hakan/.platformio/packages/framework-cmsis/CMSIS/DSP/PrivateInclude", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/cores/arduino", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/variants/STM32F4xx/F407V(E-G)T_F417V(E-G)T", + "C:/Users/Hakan/.platformio/lib/RunningAverage", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/CMSIS_DSP/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/EEPROM/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/IWatchdog/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Keyboard/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Mouse/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/RGB_LED_TLC59731/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Servo/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SoftwareSerial/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SubGhz/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/src", "" ], "browse": { "limitSymbolsToIncludedHeaders": true, "path": [ - "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/include", - "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/src", - "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi", - "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes", - "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/MyMCP3221", - "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/ADS1X15", - "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/MCP3X21", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Wire/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SPI/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/cores/arduino/avr", - "/home/debian/.platformio/packages/framework-arduinoststm32/cores/arduino/stm32", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc/LL", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/inc", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/inc", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Inc", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Src", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/STM32F4xx", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/open-amp/lib/include", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/libmetal/lib/include", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/virtual_driver", - "/home/debian/.platformio/packages/framework-cmsis/CMSIS/Core/Include", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Include", - "/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc", - "/home/debian/.platformio/packages/framework-cmsis/CMSIS/DSP/Include", - "/home/debian/.platformio/packages/framework-cmsis/CMSIS/DSP/PrivateInclude", - "/home/debian/.platformio/packages/framework-arduinoststm32/cores/arduino", - "/home/debian/.platformio/packages/framework-arduinoststm32/variants/STM32F4xx/F407V(E-G)T_F417V(E-G)T", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/CMSIS_DSP/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/EEPROM/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/IWatchdog/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Keyboard/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Mouse/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/RGB_LED_TLC59731/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Servo/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SoftwareSerial/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SubGhz/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/src", - "/home/debian/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/src", + "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/include", + "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/src", + "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/MyMCP3221", + "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi", + "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes", + "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/ADS1X15", + "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/MCP3X21", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Wire/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SPI/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/cores/arduino/avr", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/cores/arduino/stm32", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc/LL", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/inc", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/inc", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Inc", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/STM32F4xx", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/open-amp/lib/include", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/libmetal/lib/include", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/virtual_driver", + "C:/Users/Hakan/.platformio/packages/framework-cmsis/CMSIS/Core/Include", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Include", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc", + "C:/Users/Hakan/.platformio/packages/framework-cmsis/CMSIS/DSP/Include", + "C:/Users/Hakan/.platformio/packages/framework-cmsis/CMSIS/DSP/PrivateInclude", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/cores/arduino", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/variants/STM32F4xx/F407V(E-G)T_F417V(E-G)T", + "C:/Users/Hakan/.platformio/lib/RunningAverage", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/CMSIS_DSP/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/EEPROM/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/IWatchdog/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Keyboard/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Mouse/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/RGB_LED_TLC59731/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Servo/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SoftwareSerial/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SubGhz/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/src", + "C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/src", "" ] }, @@ -122,7 +124,7 @@ ], "cStandard": "gnu17", "cppStandard": "gnu++17", - "compilerPath": "/home/debian/.platformio/packages/toolchain-gccarmnoneeabi/bin/arm-none-eabi-gcc", + "compilerPath": "C:/Users/Hakan/.platformio/packages/toolchain-gccarmnoneeabi/bin/arm-none-eabi-gcc.exe", "compilerArgs": [ "-mcpu=cortex-m4", "-mthumb", diff --git a/Cards/EaserCAT-7000-DIO+I2C/Firmware/.vscode/launch.json b/Cards/EaserCAT-7000-DIO+I2C/Firmware/.vscode/launch.json index ba649ec..0c515ea 100755 --- a/Cards/EaserCAT-7000-DIO+I2C/Firmware/.vscode/launch.json +++ b/Cards/EaserCAT-7000-DIO+I2C/Firmware/.vscode/launch.json @@ -12,11 +12,11 @@ "type": "platformio-debug", "request": "launch", "name": "PIO Debug", - "executable": "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/build/genericSTM32F407VGT6/firmware.elf", + "executable": "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/build/genericSTM32F407VGT6/firmware.elf", "projectEnvName": "genericSTM32F407VGT6", - "toolchainBinDir": "/home/debian/.platformio/packages/toolchain-gccarmnoneeabi/bin", + "toolchainBinDir": "C:/Users/Hakan/.platformio/packages/toolchain-gccarmnoneeabi/bin", "internalConsoleOptions": "openOnSessionStart", - "svdPath": "/home/debian/.platformio/platforms/ststm32/misc/svd/STM32F40x.svd", + "svdPath": "C:/Users/Hakan/.platformio/platforms/ststm32/misc/svd/STM32F40x.svd", "preLaunchTask": { "type": "PlatformIO", "task": "Pre-Debug" @@ -26,21 +26,21 @@ "type": "platformio-debug", "request": "launch", "name": "PIO Debug (skip Pre-Debug)", - "executable": "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/build/genericSTM32F407VGT6/firmware.elf", + "executable": "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/build/genericSTM32F407VGT6/firmware.elf", "projectEnvName": "genericSTM32F407VGT6", - "toolchainBinDir": "/home/debian/.platformio/packages/toolchain-gccarmnoneeabi/bin", + "toolchainBinDir": "C:/Users/Hakan/.platformio/packages/toolchain-gccarmnoneeabi/bin", "internalConsoleOptions": "openOnSessionStart", - "svdPath": "/home/debian/.platformio/platforms/ststm32/misc/svd/STM32F40x.svd" + "svdPath": "C:/Users/Hakan/.platformio/platforms/ststm32/misc/svd/STM32F40x.svd" }, { "type": "platformio-debug", "request": "launch", "name": "PIO Debug (without uploading)", - "executable": "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/build/genericSTM32F407VGT6/firmware.elf", + "executable": "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/build/genericSTM32F407VGT6/firmware.elf", "projectEnvName": "genericSTM32F407VGT6", - "toolchainBinDir": "/home/debian/.platformio/packages/toolchain-gccarmnoneeabi/bin", + "toolchainBinDir": "C:/Users/Hakan/.platformio/packages/toolchain-gccarmnoneeabi/bin", "internalConsoleOptions": "openOnSessionStart", - "svdPath": "/home/debian/.platformio/platforms/ststm32/misc/svd/STM32F40x.svd", + "svdPath": "C:/Users/Hakan/.platformio/platforms/ststm32/misc/svd/STM32F40x.svd", "loadMode": "manual" } ] diff --git a/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/MetalMusings_EaserCAT_7000.xml b/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/MetalMusings_EaserCAT_7000.xml index 0e2d3b8..dd63af7 100755 --- a/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/MetalMusings_EaserCAT_7000.xml +++ b/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/MetalMusings_EaserCAT_7000.xml @@ -171,6 +171,78 @@ + + DT1604 + 48 + + 0 + Max SubIndex + USINT + 8 + 0 + + ro + + + + 1 + EnableOhmicSensing + UDINT + 32 + 16 + + ro + + + + + DT1605 + 48 + + 0 + Max SubIndex + USINT + 8 + 0 + + ro + + + + 1 + OhmicSensingSetupTime + UDINT + 32 + 16 + + ro + + + + + DT1606 + 48 + + 0 + Max SubIndex + USINT + 8 + 0 + + ro + + + + 1 + OhmicSensingVoltageLimit + UDINT + 32 + 16 + + ro + + + DT1A00 48 @@ -291,6 +363,30 @@ + + DT1A05 + 48 + + 0 + Max SubIndex + USINT + 8 + 0 + + ro + + + + 1 + OhmicSensingSensed + UDINT + 32 + 16 + + ro + + + DT1C00ARR USINT @@ -326,15 +422,15 @@ DT1C12ARR UINT - 64 + 112 1 - 4 + 7 DT1C12 - 80 + 128 0 Max SubIndex @@ -348,7 +444,7 @@ Elements DT1C12ARR - 64 + 112 16 ro @@ -358,15 +454,15 @@ DT1C13ARR UINT - 80 + 96 1 - 5 + 6 DT1C13 - 96 + 112 0 Max SubIndex @@ -380,7 +476,7 @@ Elements DT1C13ARR - 80 + 96 16 ro @@ -595,6 +691,72 @@ + + #x1604 + EnableOhmicSensing + DT1604 + 48 + + + Max SubIndex + + 1 + + + + EnableOhmicSensing + + #x70040008 + + + + + + + + #x1605 + OhmicSensingSetupTime + DT1605 + 48 + + + Max SubIndex + + 1 + + + + OhmicSensingSetupTime + + #x70050020 + + + + + + + + #x1606 + OhmicSensingVoltageLimit + DT1606 + 48 + + + Max SubIndex + + 1 + + + + OhmicSensingVoltageLimit + + #x70060020 + + + + + + #x1A00 Input12 @@ -705,6 +867,28 @@ + + #x1A05 + OhmicSensingSensed + DT1A05 + 48 + + + Max SubIndex + + 1 + + + + OhmicSensingSensed + + #x60050008 + + + + + + #x1C00 Sync Manager Communication Type @@ -749,12 +933,12 @@ #x1C12 Sync Manager 2 PDO Assignment DT1C12 - 80 + 128 Max SubIndex - 4 + 7 @@ -781,6 +965,24 @@ #x1603 + + PDO Mapping + + #x1604 + + + + PDO Mapping + + #x1605 + + + + PDO Mapping + + #x1606 + + @@ -789,12 +991,12 @@ #x1C13 Sync Manager 3 PDO Assignment DT1C13 - 96 + 112 Max SubIndex - 5 + 6 @@ -827,6 +1029,12 @@ #x1A04 + + PDO Mapping + + #x1A05 + + @@ -932,6 +1140,19 @@ T + + #x6005 + OhmicSensingSensed + USINT + 8 + + 0 + + + ro + T + + #x7000 Output4 @@ -984,6 +1205,45 @@ R + + #x7004 + EnableOhmicSensing + USINT + 8 + + 0 + + + ro + R + + + + #x7005 + OhmicSensingSetupTime + UDINT + 32 + + 0 + + + ro + R + + + + #x7006 + OhmicSensingVoltageLimit + REAL + 32 + + 0 + + + ro + R + + @@ -1038,6 +1298,39 @@ REAL + + #x1604 + EnableOhmicSensing + + #x7004 + #x0 + 8 + EnableOhmicSensing + USINT + + + + #x1605 + OhmicSensingSetupTime + + #x7005 + #x0 + 32 + OhmicSensingSetupTime + UDINT + + + + #x1606 + OhmicSensingVoltageLimit + + #x7006 + #x0 + 32 + OhmicSensingVoltageLimit + REAL + + #x1A00 Input12 @@ -1093,6 +1386,17 @@ REAL + + #x1A05 + OhmicSensingSensed + + #x6005 + #x0 + 8 + OhmicSensingSensed + USINT + + diff --git a/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/ecat_options.h b/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/ecat_options.h index 6340438..b4423a1 100755 --- a/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/ecat_options.h +++ b/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/ecat_options.h @@ -33,8 +33,8 @@ #define SM3_smc 0x20 #define SM3_act 1 -#define MAX_MAPPINGS_SM2 4 -#define MAX_MAPPINGS_SM3 5 +#define MAX_MAPPINGS_SM2 7 +#define MAX_MAPPINGS_SM3 6 #define MAX_RXPDO_SIZE 512 #define MAX_TXPDO_SIZE 512 diff --git a/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/esi.json b/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/esi.json index 33d98fa..3e98d6f 100755 --- a/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/esi.json +++ b/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/esi.json @@ -142,6 +142,17 @@ "dtype": "REAL32", "value": "0", "data": "&Obj.LowpassFilteredVoltage" + }, + "6005": { + "otype": "VAR", + "name": "OhmicSensingSensed", + "access": "RO", + "pdo_mappings": [ + "txpdo" + ], + "dtype": "UNSIGNED8", + "value": "0", + "data": "&Obj.OhmicSensingSensed" } }, "rxpdo": { @@ -189,6 +200,39 @@ "value": "0", "data": "&Obj.LowPassFilterThresholdVoltage" }, + "7004": { + "otype": "VAR", + "name": "EnableOhmicSensing", + "access": "RO", + "pdo_mappings": [ + "rxpdo" + ], + "dtype": "UNSIGNED8", + "value": "0", + "data": "&Obj.EnableOhmicSensing" + }, + "7005": { + "otype": "VAR", + "name": "OhmicSensingSetupTime", + "access": "RO", + "pdo_mappings": [ + "rxpdo" + ], + "dtype": "UNSIGNED32", + "value": "0", + "data": "&Obj.OhmicSensingSetupTime" + }, + "7006": { + "otype": "VAR", + "name": "OhmicSensingVoltageLimit", + "access": "RO", + "pdo_mappings": [ + "rxpdo" + ], + "dtype": "REAL32", + "value": "0", + "data": "&Obj.OhmicSensingVoltageLimit" + }, "60664": { "otype": "VAR", "name": "ActualPosition", diff --git a/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/objectlist.c b/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/objectlist.c index 30d3a8e..9914f76 100755 --- a/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/objectlist.c +++ b/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/objectlist.c @@ -25,6 +25,15 @@ static const char acName1602_01[] = "VoltageOffset"; static const char acName1603[] = "LowPassFilterThresholdVoltage"; static const char acName1603_00[] = "Max SubIndex"; static const char acName1603_01[] = "LowPassFilterThresholdVoltage"; +static const char acName1604[] = "EnableOhmicSensing"; +static const char acName1604_00[] = "Max SubIndex"; +static const char acName1604_01[] = "EnableOhmicSensing"; +static const char acName1605[] = "OhmicSensingSetupTime"; +static const char acName1605_00[] = "Max SubIndex"; +static const char acName1605_01[] = "OhmicSensingSetupTime"; +static const char acName1606[] = "OhmicSensingVoltageLimit"; +static const char acName1606_00[] = "Max SubIndex"; +static const char acName1606_01[] = "OhmicSensingVoltageLimit"; static const char acName1A00[] = "Input12"; static const char acName1A00_00[] = "Max SubIndex"; static const char acName1A00_01[] = "Input12"; @@ -40,6 +49,9 @@ static const char acName1A03_01[] = "Status"; static const char acName1A04[] = "LowpassFilteredVoltage"; static const char acName1A04_00[] = "Max SubIndex"; static const char acName1A04_01[] = "LowpassFilteredVoltage"; +static const char acName1A05[] = "OhmicSensingSensed"; +static const char acName1A05_00[] = "Max SubIndex"; +static const char acName1A05_01[] = "OhmicSensingSensed"; static const char acName1C00[] = "Sync Manager Communication Type"; static const char acName1C00_00[] = "Max SubIndex"; static const char acName1C00_01[] = "Communications Type SM0"; @@ -52,6 +64,9 @@ static const char acName1C12_01[] = "PDO Mapping"; static const char acName1C12_02[] = "PDO Mapping"; static const char acName1C12_03[] = "PDO Mapping"; static const char acName1C12_04[] = "PDO Mapping"; +static const char acName1C12_05[] = "PDO Mapping"; +static const char acName1C12_06[] = "PDO Mapping"; +static const char acName1C12_07[] = "PDO Mapping"; static const char acName1C13[] = "Sync Manager 3 PDO Assignment"; static const char acName1C13_00[] = "Max SubIndex"; static const char acName1C13_01[] = "PDO Mapping"; @@ -59,6 +74,7 @@ static const char acName1C13_02[] = "PDO Mapping"; static const char acName1C13_03[] = "PDO Mapping"; static const char acName1C13_04[] = "PDO Mapping"; static const char acName1C13_05[] = "PDO Mapping"; +static const char acName1C13_06[] = "PDO Mapping"; static const char acName2000[] = "I2C_devicetype"; static const char acName2001[] = "I2C_address"; static const char acName2002[] = "LowpassFilterPoleFrequency"; @@ -67,10 +83,14 @@ static const char acName6001[] = "RawData"; static const char acName6002[] = "CalculatedVoltage"; static const char acName6003[] = "Status"; static const char acName6004[] = "LowpassFilteredVoltage"; +static const char acName6005[] = "OhmicSensingSensed"; static const char acName7000[] = "Output4"; static const char acName7001[] = "VoltageScale"; static const char acName7002[] = "VoltageOffset"; static const char acName7003[] = "LowPassFilterThresholdVoltage"; +static const char acName7004[] = "EnableOhmicSensing"; +static const char acName7005[] = "OhmicSensingSetupTime"; +static const char acName7006[] = "OhmicSensingVoltageLimit"; const _objd SDO1000[] = { @@ -116,6 +136,21 @@ const _objd SDO1603[] = {0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1603_00, 1, NULL}, {0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1603_01, 0x70030020, NULL}, }; +const _objd SDO1604[] = +{ + {0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1604_00, 1, NULL}, + {0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1604_01, 0x70040008, NULL}, +}; +const _objd SDO1605[] = +{ + {0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1605_00, 1, NULL}, + {0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1605_01, 0x70050020, NULL}, +}; +const _objd SDO1606[] = +{ + {0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1606_00, 1, NULL}, + {0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1606_01, 0x70060020, NULL}, +}; const _objd SDO1A00[] = { {0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1A00_00, 1, NULL}, @@ -141,6 +176,11 @@ const _objd SDO1A04[] = {0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1A04_00, 1, NULL}, {0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1A04_01, 0x60040020, NULL}, }; +const _objd SDO1A05[] = +{ + {0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1A05_00, 1, NULL}, + {0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1A05_01, 0x60050008, NULL}, +}; const _objd SDO1C00[] = { {0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1C00_00, 4, NULL}, @@ -151,20 +191,24 @@ const _objd SDO1C00[] = }; const _objd SDO1C12[] = { - {0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1C12_00, 4, NULL}, + {0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1C12_00, 7, NULL}, {0x01, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_01, 0x1600, NULL}, {0x02, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_02, 0x1601, NULL}, {0x03, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_03, 0x1602, NULL}, {0x04, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_04, 0x1603, NULL}, + {0x05, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_05, 0x1604, NULL}, + {0x06, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_06, 0x1605, NULL}, + {0x07, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_07, 0x1606, NULL}, }; const _objd SDO1C13[] = { - {0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1C13_00, 5, NULL}, + {0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1C13_00, 6, NULL}, {0x01, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C13_01, 0x1A00, NULL}, {0x02, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C13_02, 0x1A01, NULL}, {0x03, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C13_03, 0x1A02, NULL}, {0x04, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C13_04, 0x1A03, NULL}, {0x05, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C13_05, 0x1A04, NULL}, + {0x06, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C13_06, 0x1A05, NULL}, }; const _objd SDO2000[] = { @@ -198,6 +242,10 @@ const _objd SDO6004[] = { {0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_TXPDO, acName6004, 0x00000000, &Obj.LowpassFilteredVoltage}, }; +const _objd SDO6005[] = +{ + {0x0, DTYPE_UNSIGNED8, 8, ATYPE_RO | ATYPE_TXPDO, acName6005, 0, &Obj.OhmicSensingSensed}, +}; const _objd SDO7000[] = { {0x0, DTYPE_UNSIGNED8, 8, ATYPE_RO | ATYPE_RXPDO, acName7000, 0, &Obj.Output4}, @@ -214,6 +262,18 @@ const _objd SDO7003[] = { {0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7003, 0x00000000, &Obj.LowPassFilterThresholdVoltage}, }; +const _objd SDO7004[] = +{ + {0x0, DTYPE_UNSIGNED8, 8, ATYPE_RO | ATYPE_RXPDO, acName7004, 0, &Obj.EnableOhmicSensing}, +}; +const _objd SDO7005[] = +{ + {0x0, DTYPE_UNSIGNED32, 32, ATYPE_RO | ATYPE_RXPDO, acName7005, 0, &Obj.OhmicSensingSetupTime}, +}; +const _objd SDO7006[] = +{ + {0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7006, 0x00000000, &Obj.OhmicSensingVoltageLimit}, +}; const _objectlist SDOobjects[] = { @@ -226,14 +286,18 @@ const _objectlist SDOobjects[] = {0x1601, OTYPE_RECORD, 1, 0, acName1601, SDO1601}, {0x1602, OTYPE_RECORD, 1, 0, acName1602, SDO1602}, {0x1603, OTYPE_RECORD, 1, 0, acName1603, SDO1603}, + {0x1604, OTYPE_RECORD, 1, 0, acName1604, SDO1604}, + {0x1605, OTYPE_RECORD, 1, 0, acName1605, SDO1605}, + {0x1606, OTYPE_RECORD, 1, 0, acName1606, SDO1606}, {0x1A00, OTYPE_RECORD, 1, 0, acName1A00, SDO1A00}, {0x1A01, OTYPE_RECORD, 1, 0, acName1A01, SDO1A01}, {0x1A02, OTYPE_RECORD, 1, 0, acName1A02, SDO1A02}, {0x1A03, OTYPE_RECORD, 1, 0, acName1A03, SDO1A03}, {0x1A04, OTYPE_RECORD, 1, 0, acName1A04, SDO1A04}, + {0x1A05, OTYPE_RECORD, 1, 0, acName1A05, SDO1A05}, {0x1C00, OTYPE_ARRAY, 4, 0, acName1C00, SDO1C00}, - {0x1C12, OTYPE_ARRAY, 4, 0, acName1C12, SDO1C12}, - {0x1C13, OTYPE_ARRAY, 5, 0, acName1C13, SDO1C13}, + {0x1C12, OTYPE_ARRAY, 7, 0, acName1C12, SDO1C12}, + {0x1C13, OTYPE_ARRAY, 6, 0, acName1C13, SDO1C13}, {0x2000, OTYPE_VAR, 0, 0, acName2000, SDO2000}, {0x2001, OTYPE_VAR, 0, 0, acName2001, SDO2001}, {0x2002, OTYPE_VAR, 0, 0, acName2002, SDO2002}, @@ -242,9 +306,13 @@ const _objectlist SDOobjects[] = {0x6002, OTYPE_VAR, 0, 0, acName6002, SDO6002}, {0x6003, OTYPE_VAR, 0, 0, acName6003, SDO6003}, {0x6004, OTYPE_VAR, 0, 0, acName6004, SDO6004}, + {0x6005, OTYPE_VAR, 0, 0, acName6005, SDO6005}, {0x7000, OTYPE_VAR, 0, 0, acName7000, SDO7000}, {0x7001, OTYPE_VAR, 0, 0, acName7001, SDO7001}, {0x7002, OTYPE_VAR, 0, 0, acName7002, SDO7002}, {0x7003, OTYPE_VAR, 0, 0, acName7003, SDO7003}, + {0x7004, OTYPE_VAR, 0, 0, acName7004, SDO7004}, + {0x7005, OTYPE_VAR, 0, 0, acName7005, SDO7005}, + {0x7006, OTYPE_VAR, 0, 0, acName7006, SDO7006}, {0xffff, 0xff, 0xff, 0xff, NULL, NULL} }; diff --git a/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/utypes.h b/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/utypes.h index 5d781ab..2fd1a01 100755 --- a/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/utypes.h +++ b/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi/utypes.h @@ -18,6 +18,7 @@ typedef struct float CalculatedVoltage; uint8_t Status; float LowpassFilteredVoltage; + uint8_t OhmicSensingSensed; /* Outputs */ @@ -25,6 +26,9 @@ typedef struct float VoltageScale; float VoltageOffset; float LowPassFilterThresholdVoltage; + uint8_t EnableOhmicSensing; + uint32_t OhmicSensingSetupTime; + float OhmicSensingVoltageLimit; /* Parameters */ diff --git a/Cards/EaserCAT-7000-DIO+I2C/Firmware/platformio.ini b/Cards/EaserCAT-7000-DIO+I2C/Firmware/platformio.ini index 3901510..b2b200e 100755 --- a/Cards/EaserCAT-7000-DIO+I2C/Firmware/platformio.ini +++ b/Cards/EaserCAT-7000-DIO+I2C/Firmware/platformio.ini @@ -15,7 +15,7 @@ board = genericSTM32F407VGT6 upload_protocol = stlink debug_tool = stlink debug_build_flags = -O0 -g -ggdb -monitor_port = COM21 +monitor_port = COM4 monitor_filters = send_on_enter, time, colorize, log2file monitor_speed = 115200 build_flags = -Wl,--no-warn-rwx-segment -DECAT diff --git a/Cards/EaserCAT-7000-DIO+I2C/Firmware/src/main.cpp b/Cards/EaserCAT-7000-DIO+I2C/Firmware/src/main.cpp index 7feae44..a8fac79 100755 --- a/Cards/EaserCAT-7000-DIO+I2C/Firmware/src/main.cpp +++ b/Cards/EaserCAT-7000-DIO+I2C/Firmware/src/main.cpp @@ -56,8 +56,11 @@ void cb_set_outputs(void) // Get Master outputs, slave inputs, first operation } float oldLowPassGain = 0; +float oldLowPassFilteredVoltage = 0; uint32_t oldLowpassFilterPoleFrequency = 0; +uint32_t timeSinceOhmicSensingEnabled = 0; + void cb_get_inputs(void) // Set Master inputs, slave outputs, last operation { static float validData0 = 0.0, validVoltage0 = 0.0; @@ -150,14 +153,32 @@ void cb_get_inputs(void) // Set Master inputs, slave outputs, last operation float gain = oldLowPassGain; if (oldLowpassFilterPoleFrequency != Obj.LowpassFilterPoleFrequency) { - gain = 1 - expf(-2.0 * M_PI * Obj.LowpassFilterPoleFrequency * 1.0e-9 * ESC_SYNC0cycletime()); + gain = 1 - expf(-2.0 * M_PI * Obj.LowpassFilterPoleFrequency * 0.001 /*1.0e-9 * ESC_SYNC0cycletime()*/); oldLowPassGain = gain; oldLowpassFilterPoleFrequency = Obj.LowpassFilterPoleFrequency; } if (Obj.CalculatedVoltage < Obj.LowPassFilterThresholdVoltage) Obj.LowpassFilteredVoltage = Obj.CalculatedVoltage; // Just forward else - Obj.LowpassFilteredVoltage += (Obj.CalculatedVoltage - Obj.LowpassFilteredVoltage) * gain; + Obj.LowpassFilteredVoltage = oldLowPassFilteredVoltage + (Obj.CalculatedVoltage - oldLowPassFilteredVoltage) * gain; + oldLowPassFilteredVoltage = Obj.LowpassFilteredVoltage; + + Obj.OhmicSensingSensed = 0; + if (Obj.EnableOhmicSensing && stat == 0) + { + timeSinceOhmicSensingEnabled++; // Lazy and just use iterations now. + if (timeSinceOhmicSensingEnabled >= Obj.OhmicSensingSetupTime) // Let's check + { // + if (Obj.CalculatedVoltage < Obj.OhmicSensingVoltageLimit) // Limit hit, set output + { + Obj.OhmicSensingSensed = 1; + } + } + } + else + { + timeSinceOhmicSensingEnabled = 0; + } } void ESC_interrupt_enable(uint32_t mask); diff --git a/Cards/THCLIP/Kicad/THCLIP.kicad_sch b/Cards/THCLIP/Kicad/THCLIP.kicad_sch index 737a201..47aa618 100644 --- a/Cards/THCLIP/Kicad/THCLIP.kicad_sch +++ b/Cards/THCLIP/Kicad/THCLIP.kicad_sch @@ -1113,98 +1113,457 @@ ) ) ) + (symbol "Relay:Relay_SPDT" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "K1" + (at 13.716 0.508 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "Relay_SPDT" + (at 11.8802 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 11.43 -1.27 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Relay SPDT, monostable, EN50005" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "1P2T 1-Form-C single pole throw" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "Relay?SPDT*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "Relay_SPDT_0_0" + (polyline + (pts + (xy 7.62 5.08) (xy 7.62 2.54) (xy 6.985 3.175) (xy 7.62 3.81) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "Relay_SPDT_0_1" + (rectangle + (start -10.16 5.08) + (end 10.16 -5.08) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + (rectangle + (start -8.255 1.905) + (end -1.905 -1.905) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -7.62 -1.905) (xy -2.54 1.905) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -5.08 -5.08) (xy -5.08 -1.905) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -5.08 5.08) (xy -5.08 1.905) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.905 0) (xy -1.27 0) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -0.635 0) (xy 0 0) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.635 0) (xy 1.27 0) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.905 0) (xy 2.54 0) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 3.175 0) (xy 3.81 0) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 5.08 -2.54) (xy 3.175 3.81) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 5.08 -2.54) (xy 5.08 -5.08) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 2.54 5.08) (xy 2.54 2.54) (xy 3.175 3.175) (xy 2.54 3.81) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + ) + (symbol "Relay_SPDT_1_1" + (pin passive line + (at 5.08 -7.62 90) + (length 2.54) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "30" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -5.08 -7.62 90) + (length 2.54) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "85" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -5.08 7.62 270) + (length 2.54) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "86" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 7.62 7.62 270) + (length 2.54) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "87" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 2.54 7.62 270) + (length 2.54) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "87a" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) ) (junction - (at 68.58 71.12) + (at 123.19 69.85) (diameter 0) (color 0 0 0 0) (uuid "1363a363-cf6d-449f-aa65-f8dca29f6885") ) (junction - (at 62.23 43.18) + (at 116.84 41.91) (diameter 0) (color 0 0 0 0) (uuid "2aaefd86-bd07-4033-844c-50cc23b381ff") ) (junction - (at 186.69 38.1) + (at 114.3 72.39) + (diameter 0) + (color 0 0 0 0) + (uuid "2d25cf04-1435-496a-840d-6cc600973a34") + ) + (junction + (at 241.3 36.83) (diameter 0) (color 0 0 0 0) (uuid "34f9172b-8c54-4a0f-9b5d-9335143bfaa5") ) (junction - (at 142.24 48.26) + (at 196.85 46.99) (diameter 0) (color 0 0 0 0) (uuid "37c43951-6260-4d7a-83d0-3b2bc434c8d4") ) (junction - (at 71.12 73.66) + (at 125.73 72.39) (diameter 0) (color 0 0 0 0) (uuid "3e1c1d1b-ca80-497c-bd0d-c5b2f6933349") ) (junction - (at 86.36 48.26) + (at 140.97 46.99) (diameter 0) (color 0 0 0 0) (uuid "3f27100a-11ee-414d-aff4-e59353b86b78") ) (junction - (at 124.46 48.26) + (at 114.3 62.23) + (diameter 0) + (color 0 0 0 0) + (uuid "43366fcb-8e71-4fca-96fb-593d55a97d32") + ) + (junction + (at 114.3 64.77) + (diameter 0) + (color 0 0 0 0) + (uuid "4eafaebd-0832-4946-a958-5de5d3753027") + ) + (junction + (at 179.07 46.99) (diameter 0) (color 0 0 0 0) (uuid "540c0c40-d521-4548-ad79-45d842153b39") ) (junction - (at 142.24 43.18) + (at 196.85 41.91) (diameter 0) (color 0 0 0 0) (uuid "5c7eae82-fc48-44a7-87e3-2b169c51f7a6") ) (junction - (at 190.5 53.34) + (at 90.17 64.77) + (diameter 0) + (color 0 0 0 0) + (uuid "63c485c2-b166-4145-bba1-3b5ccbb00737") + ) + (junction + (at 245.11 52.07) (diameter 0) (color 0 0 0 0) (uuid "63e40dca-c178-4255-8f44-c475b0a60b2a") ) (junction - (at 177.8 53.34) + (at 232.41 52.07) (diameter 0) (color 0 0 0 0) (uuid "91716cb1-5341-4824-8f1e-3dc14ac5a6c6") ) (junction - (at 63.5 48.26) + (at 114.3 69.85) (diameter 0) (color 0 0 0 0) - (uuid "a6d838f8-dc2d-403d-9a07-3f8605eea2d6") + (uuid "9baf92f7-57d2-4447-8f28-5fb66756f6b2") ) (junction - (at 121.92 43.18) + (at 176.53 41.91) (diameter 0) (color 0 0 0 0) (uuid "b42c242e-32de-4c09-8c31-8db31843586f") ) (junction - (at 177.8 45.72) + (at 232.41 44.45) (diameter 0) (color 0 0 0 0) (uuid "edb256d2-e21b-4584-871a-23efe329c1c6") ) (junction - (at 190.5 34.29) + (at 245.11 33.02) (diameter 0) (color 0 0 0 0) (uuid "f5abadfb-2abb-4ee4-96de-60678d4af991") ) + (junction + (at 71.12 62.23) + (diameter 0) + (color 0 0 0 0) + (uuid "f83688b5-5e33-4a7c-898c-c9cdac149870") + ) (no_connect - (at 59.69 68.58) + (at 114.3 67.31) (uuid "838addef-1b41-4507-a7b0-dad4a6d31c93") ) (wire (pts - (xy 193.04 48.26) (xy 186.69 48.26) + (xy 247.65 46.99) (xy 241.3 46.99) ) (stroke (width 0) @@ -1214,7 +1573,27 @@ ) (wire (pts - (xy 167.64 43.18) (xy 163.83 43.18) + (xy 69.85 62.23) (xy 71.12 62.23) + ) + (stroke + (width 0) + (type dash) + ) + (uuid "0cc2e13d-3c3e-4a75-9602-a02f99a5de44") + ) + (wire + (pts + (xy 88.9 69.85) (xy 114.3 69.85) + ) + (stroke + (width 0) + (type dash) + ) + (uuid "133989b5-bec2-4117-aac6-e664c56664d7") + ) + (wire + (pts + (xy 222.25 41.91) (xy 218.44 41.91) ) (stroke (width 0) @@ -1224,7 +1603,7 @@ ) (wire (pts - (xy 121.92 43.18) (xy 142.24 43.18) + (xy 176.53 41.91) (xy 196.85 41.91) ) (stroke (width 0) @@ -1234,7 +1613,7 @@ ) (wire (pts - (xy 142.24 48.26) (xy 143.51 48.26) + (xy 196.85 46.99) (xy 198.12 46.99) ) (stroke (width 0) @@ -1244,7 +1623,7 @@ ) (wire (pts - (xy 72.39 67.31) (xy 71.12 67.31) + (xy 127 66.04) (xy 125.73 66.04) ) (stroke (width 0) @@ -1254,7 +1633,7 @@ ) (wire (pts - (xy 142.24 43.18) (xy 143.51 43.18) + (xy 196.85 41.91) (xy 198.12 41.91) ) (stroke (width 0) @@ -1264,7 +1643,7 @@ ) (wire (pts - (xy 186.69 48.26) (xy 186.69 38.1) + (xy 241.3 46.99) (xy 241.3 36.83) ) (stroke (width 0) @@ -1274,7 +1653,7 @@ ) (wire (pts - (xy 190.5 34.29) (xy 201.93 34.29) + (xy 245.11 33.02) (xy 256.54 33.02) ) (stroke (width 0) @@ -1284,7 +1663,17 @@ ) (wire (pts - (xy 190.5 45.72) (xy 190.5 34.29) + (xy 49.53 62.23) (xy 69.85 62.23) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2820b866-48a7-48e9-9cfb-4c2f6f1a74d0") + ) + (wire + (pts + (xy 245.11 44.45) (xy 245.11 33.02) ) (stroke (width 0) @@ -1294,7 +1683,7 @@ ) (wire (pts - (xy 71.12 73.66) (xy 124.46 73.66) + (xy 125.73 72.39) (xy 179.07 72.39) ) (stroke (width 0) @@ -1304,7 +1693,7 @@ ) (wire (pts - (xy 177.8 38.1) (xy 186.69 38.1) + (xy 232.41 36.83) (xy 241.3 36.83) ) (stroke (width 0) @@ -1314,7 +1703,7 @@ ) (wire (pts - (xy 167.64 34.29) (xy 190.5 34.29) + (xy 222.25 33.02) (xy 245.11 33.02) ) (stroke (width 0) @@ -1324,7 +1713,7 @@ ) (wire (pts - (xy 177.8 53.34) (xy 190.5 53.34) + (xy 232.41 52.07) (xy 245.11 52.07) ) (stroke (width 0) @@ -1334,7 +1723,7 @@ ) (wire (pts - (xy 124.46 73.66) (xy 124.46 48.26) + (xy 179.07 72.39) (xy 179.07 46.99) ) (stroke (width 0) @@ -1344,7 +1733,7 @@ ) (wire (pts - (xy 190.5 53.34) (xy 201.93 53.34) + (xy 245.11 52.07) (xy 256.54 52.07) ) (stroke (width 0) @@ -1354,7 +1743,7 @@ ) (wire (pts - (xy 167.64 48.26) (xy 167.64 53.34) + (xy 222.25 46.99) (xy 222.25 52.07) ) (stroke (width 0) @@ -1364,7 +1753,7 @@ ) (wire (pts - (xy 186.69 38.1) (xy 201.93 38.1) + (xy 241.3 36.83) (xy 256.54 36.83) ) (stroke (width 0) @@ -1374,7 +1763,7 @@ ) (wire (pts - (xy 72.39 64.77) (xy 68.58 64.77) + (xy 127 63.5) (xy 123.19 63.5) ) (stroke (width 0) @@ -1384,7 +1773,17 @@ ) (wire (pts - (xy 63.5 48.26) (xy 86.36 48.26) + (xy 140.97 44.45) (xy 140.97 46.99) + ) + (stroke + (width 0) + (type default) + ) + (uuid "46393979-ddc3-4339-8d80-10fb99f652a8") + ) + (wire + (pts + (xy 118.11 46.99) (xy 140.97 46.99) ) (stroke (width 0) @@ -1394,7 +1793,17 @@ ) (wire (pts - (xy 59.69 73.66) (xy 71.12 73.66) + (xy 71.12 62.23) (xy 71.12 49.53) + ) + (stroke + (width 0) + (type dash) + ) + (uuid "4a0d3c63-8a28-443d-994f-099f6d0f91a9") + ) + (wire + (pts + (xy 114.3 72.39) (xy 125.73 72.39) ) (stroke (width 0) @@ -1404,7 +1813,7 @@ ) (wire (pts - (xy 58.42 43.18) (xy 62.23 43.18) + (xy 113.03 41.91) (xy 116.84 41.91) ) (stroke (width 0) @@ -1414,7 +1823,7 @@ ) (wire (pts - (xy 62.23 63.5) (xy 62.23 43.18) + (xy 116.84 62.23) (xy 116.84 41.91) ) (stroke (width 0) @@ -1424,7 +1833,7 @@ ) (wire (pts - (xy 68.58 64.77) (xy 68.58 71.12) + (xy 123.19 63.5) (xy 123.19 69.85) ) (stroke (width 0) @@ -1434,7 +1843,7 @@ ) (wire (pts - (xy 111.76 64.77) (xy 109.22 64.77) + (xy 166.37 63.5) (xy 163.83 63.5) ) (stroke (width 0) @@ -1444,7 +1853,17 @@ ) (wire (pts - (xy 124.46 48.26) (xy 142.24 48.26) + (xy 87.63 64.77) (xy 90.17 64.77) + ) + (stroke + (width 0) + (type default) + ) + (uuid "53c492c9-3382-4147-9a67-d7884b253d96") + ) + (wire + (pts + (xy 179.07 46.99) (xy 196.85 46.99) ) (stroke (width 0) @@ -1454,7 +1873,7 @@ ) (wire (pts - (xy 163.83 45.72) (xy 177.8 45.72) + (xy 218.44 44.45) (xy 232.41 44.45) ) (stroke (width 0) @@ -1464,7 +1883,7 @@ ) (wire (pts - (xy 190.5 50.8) (xy 190.5 53.34) + (xy 245.11 49.53) (xy 245.11 52.07) ) (stroke (width 0) @@ -1474,7 +1893,7 @@ ) (bus (pts - (xy 153.67 20.32) (xy 153.67 58.42) + (xy 208.28 19.05) (xy 208.28 57.15) ) (stroke (width 0) @@ -1484,7 +1903,57 @@ ) (wire (pts - (xy 142.24 57.15) (xy 142.24 48.26) + (xy 69.85 72.39) (xy 72.39 72.39) + ) + (stroke + (width 0) + (type dash) + ) + (uuid "62fa120d-251a-4d07-9807-5985395ef33c") + ) + (wire + (pts + (xy 71.12 49.53) (xy 99.06 49.53) + ) + (stroke + (width 0) + (type dash) + ) + (uuid "6c24dd97-1787-4265-8bb1-ac294e410a98") + ) + (wire + (pts + (xy 99.06 49.53) (xy 99.06 62.23) + ) + (stroke + (width 0) + (type dash) + ) + (uuid "6de31fb8-fa56-4175-b39f-05524c9dd389") + ) + (wire + (pts + (xy 88.9 69.85) (xy 88.9 72.39) + ) + (stroke + (width 0) + (type dash) + ) + (uuid "76f766ef-2b5f-4e8c-bc77-368d7f2f6674") + ) + (wire + (pts + (xy 88.9 72.39) (xy 87.63 72.39) + ) + (stroke + (width 0) + (type dash) + ) + (uuid "777a6bb0-a425-4704-ad07-bee7c250fda3") + ) + (wire + (pts + (xy 196.85 55.88) (xy 196.85 46.99) ) (stroke (width 0) @@ -1494,7 +1963,17 @@ ) (wire (pts - (xy 167.64 34.29) (xy 167.64 43.18) + (xy 43.18 52.07) (xy 90.17 52.07) + ) + (stroke + (width 0) + (type default) + ) + (uuid "801fd85a-3220-46cb-a0c6-8f8f65c86b94") + ) + (wire + (pts + (xy 222.25 33.02) (xy 222.25 41.91) ) (stroke (width 0) @@ -1504,17 +1983,7 @@ ) (wire (pts - (xy 82.55 53.34) (xy 86.36 53.34) - ) - (stroke - (width 0) - (type default) - ) - (uuid "8f7f6974-751d-4489-a724-9a10dbb450ba") - ) - (wire - (pts - (xy 99.06 43.18) (xy 109.22 43.18) + (xy 153.67 41.91) (xy 163.83 41.91) ) (stroke (width 0) @@ -1524,7 +1993,7 @@ ) (wire (pts - (xy 116.84 43.18) (xy 121.92 43.18) + (xy 171.45 41.91) (xy 176.53 41.91) ) (stroke (width 0) @@ -1534,7 +2003,17 @@ ) (wire (pts - (xy 59.69 66.04) (xy 63.5 66.04) + (xy 90.17 52.07) (xy 90.17 64.77) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9ef2d65e-656e-4c21-9180-10b861423cb5") + ) + (wire + (pts + (xy 114.3 64.77) (xy 118.11 64.77) ) (stroke (width 0) @@ -1544,7 +2023,7 @@ ) (wire (pts - (xy 193.04 45.72) (xy 190.5 45.72) + (xy 247.65 44.45) (xy 245.11 44.45) ) (stroke (width 0) @@ -1554,17 +2033,27 @@ ) (wire (pts - (xy 86.36 48.26) (xy 86.36 53.34) + (xy 140.97 46.99) (xy 140.97 50.8) ) (stroke (width 0) - (type default) + (type dash) ) (uuid "a85bacdb-704a-4675-a55a-36d7546c1ba3") ) (wire (pts - (xy 59.69 63.5) (xy 62.23 63.5) + (xy 95.25 80.01) (xy 95.25 72.39) + ) + (stroke + (width 0) + (type dash) + ) + (uuid "a89fed86-1e2f-4129-9517-91678f8ce156") + ) + (wire + (pts + (xy 114.3 62.23) (xy 116.84 62.23) ) (stroke (width 0) @@ -1574,7 +2063,7 @@ ) (wire (pts - (xy 167.64 53.34) (xy 177.8 53.34) + (xy 222.25 52.07) (xy 232.41 52.07) ) (stroke (width 0) @@ -1584,7 +2073,17 @@ ) (wire (pts - (xy 86.36 48.26) (xy 124.46 48.26) + (xy 69.85 80.01) (xy 95.25 80.01) + ) + (stroke + (width 0) + (type dash) + ) + (uuid "b5c7e80d-611b-4bcc-a902-1b8737fdc1a6") + ) + (wire + (pts + (xy 140.97 46.99) (xy 179.07 46.99) ) (stroke (width 0) @@ -1594,7 +2093,7 @@ ) (wire (pts - (xy 71.12 67.31) (xy 71.12 73.66) + (xy 125.73 66.04) (xy 125.73 72.39) ) (stroke (width 0) @@ -1604,7 +2103,27 @@ ) (wire (pts - (xy 142.24 38.1) (xy 142.24 43.18) + (xy 71.12 62.23) (xy 72.39 62.23) + ) + (stroke + (width 0) + (type dash) + ) + (uuid "c9bcbe80-5806-4c3c-8b0a-7db10cdc6273") + ) + (wire + (pts + (xy 69.85 80.01) (xy 69.85 72.39) + ) + (stroke + (width 0) + (type dash) + ) + (uuid "cdc56245-aaf8-45e1-9d26-811c998d3675") + ) + (wire + (pts + (xy 196.85 36.83) (xy 196.85 41.91) ) (stroke (width 0) @@ -1614,7 +2133,7 @@ ) (wire (pts - (xy 68.58 71.12) (xy 121.92 71.12) + (xy 123.19 69.85) (xy 176.53 69.85) ) (stroke (width 0) @@ -1624,7 +2143,17 @@ ) (wire (pts - (xy 193.04 50.8) (xy 190.5 50.8) + (xy 90.17 64.77) (xy 114.3 64.77) + ) + (stroke + (width 0) + (type dash) + ) + (uuid "e04adea6-4f7e-4034-859b-9bbf5d6765aa") + ) + (wire + (pts + (xy 247.65 49.53) (xy 245.11 49.53) ) (stroke (width 0) @@ -1634,7 +2163,7 @@ ) (wire (pts - (xy 163.83 48.26) (xy 167.64 48.26) + (xy 218.44 46.99) (xy 222.25 46.99) ) (stroke (width 0) @@ -1644,7 +2173,7 @@ ) (wire (pts - (xy 59.69 71.12) (xy 68.58 71.12) + (xy 114.3 69.85) (xy 123.19 69.85) ) (stroke (width 0) @@ -1654,7 +2183,17 @@ ) (wire (pts - (xy 63.5 66.04) (xy 63.5 48.26) + (xy 95.25 72.39) (xy 114.3 72.39) + ) + (stroke + (width 0) + (type dash) + ) + (uuid "f5f7a16a-026c-4b5d-81ac-5dd3a4bf1f1b") + ) + (wire + (pts + (xy 118.11 64.77) (xy 118.11 46.99) ) (stroke (width 0) @@ -1664,7 +2203,7 @@ ) (wire (pts - (xy 62.23 43.18) (xy 91.44 43.18) + (xy 116.84 41.91) (xy 146.05 41.91) ) (stroke (width 0) @@ -1674,17 +2213,17 @@ ) (wire (pts - (xy 58.42 48.26) (xy 63.5 48.26) + (xy 99.06 62.23) (xy 114.3 62.23) ) (stroke (width 0) - (type default) + (type dash) ) - (uuid "fdc42d48-05fa-49f6-959c-d90e52733927") + (uuid "fc0c193d-7874-4486-8a09-a1a945b565c9") ) (wire (pts - (xy 121.92 71.12) (xy 121.92 43.18) + (xy 176.53 69.85) (xy 176.53 41.91) ) (stroke (width 0) @@ -1693,8 +2232,20 @@ (uuid "fe22e5d4-73c6-42f7-9745-211d488e6020") ) (rectangle - (start 245.11 17.78) - (end 281.94 41.91) + (start 24.13 48.26) + (end 53.34 67.945) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + (uuid 021b5a84-835c-4573-a63b-73f3c8461b7e) + ) + (rectangle + (start 242.57 88.9) + (end 279.4 113.03) (stroke (width 0) (type default) @@ -1704,9 +2255,621 @@ ) (uuid a9d0f8c2-7075-4e26-83e8-15065199ba8a) ) - (text "E7000\nRecieve input height sensing signal\nActivate relay to break workpiece and torch shield ground\nThis activates 24VDC sensing voltage between electrode and work piece ground (1 mA)\nWhen Arc voltage > x V: send contact Signal (repeat signal x times?)\n exit sensing mode\nAfter x msecs: exit sensing mode\nLoss of height sensing signal: exit sensing mode\n\nExit of sensing mode: disable height sensings voltage. This releases relay and shuts off sensing voltage.\n\n" + (image + (at 50.8 140.335) + (scale 2.94325) + (uuid "c5e78400-7bf2-4d5d-a95d-2930c2a4ddab") + (data "iVBORw0KGgoAAAANSUhEUgAAAP4AAADpCAYAAAAERYpyAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9" + "kT1Iw0AcxV9TS0WqDlYQcchQnSyIijpKFYtgobQVWnUwufRDaNKQpLg4Cq4FBz8Wqw4uzro6uAqC" + "4AeIu+Ck6CIl/i8ptIjx4Lgf7+497t4BQr3MVLNjDFA1y0jFY2I2tyIGXxFAP3oQxrTETD2RXsjA" + "c3zdw8fXuyjP8j735+hW8iYDfCLxLNMNi3ideGrT0jnvE4dZSVKIz4lHDbog8SPXZZffOBcdFnhm" + "2Mik5ojDxGKxjeU2ZiVDJZ4kjiiqRvlC1mWF8xZntVxlzXvyF4by2nKa6zSHEMciEkhChIwqNlCG" + "hSitGikmUrQf8/APOv4kuWRybYCRYx4VqJAcP/gf/O7WLEyMu0mhGBB4se2PYSC4CzRqtv19bNuN" + "E8D/DFxpLX+lDsx8kl5raZEjoHcbuLhuafIecLkDDDzpkiE5kp+mUCgA72f0TTmg7xboWnV7a+7j" + "9AHIUFdLN8DBITBSpOw1j3d3tvf275lmfz+2AHLC9vu/DQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlw" + "SFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+kFFQ4bA2gZfx0AAAAZdEVYdENvbW1lbnQAQ3JlYXRl" + "ZCB3aXRoIEdJTVBXgQ4XAAAgAElEQVR42uydd3xUVdrHv/fOTHpCAoEUkgAJCSQhdAigAgqISpdF" + "QUFd1wJiZdVdV3df3dW1oS4WRHQVRUGwIrB0EVAQaYFAgJCQBEhINb1Mu+f9Y3KvM5NJg6Ag83w+" + "Q0lm7px77vk9vUhCCIGb3OSmy4pk9xa4yU1u4LvJTW5yA99NbnKTG/hucpOb3MB3k5vc5Aa+m9zk" + "Jjfw3eQmN7mB7yY3uckNfDe5yU1u4LvJTW76FUnv3oLfL9mysa2AVM/jJSRJAMKO5zv/301u4Lvp" + "kiZJ0v5V/3L5LoSwf6+b3MB30yUs7VVcC1AUhCKBbAO4VI9yIQT2NVqSG/1u4LvpUicFULCYTLz9" + "1iJqay1Isg5FWJFkgRA2BR9JR3LyEEYOv1JT+yXJrfb/7rVBd1nu71LeoygKYKWkuIjeib2pqTah" + "IKMIBYHFJu2RkPUG5j36GM/84+9IKEiSQJJ07i10S3w3XaIsHaEIsrNOUl5WjhAyVkVGSGBVTAgE" + "ICFbBRaLpf5/bnID302XPvYlOHTwIFarFUmSiYiIJLp7DIow2xgDEpKsp2u3bvWMwE1u4Lvp0lX0" + "7TB8OPWwLaAnyYy6dgzTZ9yMTmd7k5BsVn1kVKTNJyBJNmbg3kI38N10qYG+Pi4vBEJR+GHnLkR9" + "OG/qzdOIi4/DajITFBSEj483kqQgyxLICu5Y/uVkCbqde79L4AvFSl1tFWGdwqmpMyPrPekzoD/H" + "0g5jNhmJjunOzFm3csst0+kcHo4sSUiyzdUvSQb3RrqB76ZLU+Ir5OWeIjY6FpNFICQ9QpKRJavN" + "FpBkPDw9mfqHqTz22KMk9OyBrKuX+W7g/+7Jrdv9XhkAUFBYVM/ebT/w8fbmiiuuIKRjByQUzCYj" + "X3+1ipUrPgdZBiHhFgNu4LvpEiez2UJ8QgIBAQHcfPPNZGSeYOvWb1m16ismTRyPLEvU1tWyY+dO" + "ELIN9O4YvlvVd9OlquqDQEFRLEgCamvN6Aye6A06W5KOYuKzlSt59tkXOHYii9DOkZzIOIFeFuhk" + "Cdmduvu7J7dX//fKABQrWSczOXkyh9OnzzJw8GB6xvfEoJeRkPHy8MDDYEAgUBTrLzn77kwet6rv" + "pkvXwheKwoF9+3j2X8/x3L//zSefLEex2gBuNpkpKiymtKwMCUH7oEB0MshuwLslvpsucY4uy3gY" + "PNi1axeSrOerL79g4IC+DB06hLTUg2zYtIXC4hKQZOJ69NCq9iS3yHcD302XLklI9OnTh7DQUPLz" + "iziVncUL/36eQYMHkn78OIcOHabOZCGqS1dGjByJBChCQXZX510e58Pt3PsdKvrCFsc3m4z857XX" + "eeuthZzNz8eqWOsbbsgg64iMimL6jBncdvttxEZH27L4JC656jxXR9i+54C7z4Ab+JcN2Rx2CigS" + "JrOZ1d98w/r168nLP0t4eARjrh3LyJHDCQ4Otqn4MshIlyRItEiG098qA5BltwbjBv7lAnyh2BL0" + "AAlF67YjsMXrZVlGkn6RiOrrUrTwFUVBkiQsFovDvajAd0t8t43fQFIIIeodWvUqsIRWoXYpnxdJ" + "km2hOqsVWRJIsozVYkHWySBsZTu2vxUkJCRJf4k9N6XekwHl5eWsWvUNa9asQa/X07dvX8aNG0fP" + "nj3Q6XRu4Lslfv3BAQT1h8dqRRIKp7KzuW7cBKprjfgHdeDHXT/g7+tz0Xu5NebVzOGWJEl7n32v" + "PXvJeBHL9Po+YTIKAiGsSMKKUATbtu7gT/fMJi/vLFaLRW0qSJeu0cybN49Zt92Ct7cHOp0OIQQ6" + "t+Pycpf4Gvwxm43MnTuXk5mZKOipqjNfEgqvPXid7VpnYNvbv86/u6QklZ0p8+MPO5k+YzqlFdVY" + "LQo2U96mr+VkZ7Honbfp0DGIaVOnYLVa0cnudOTLGvgSSj3wFaprqrhj5u1s3vxt/U8VFEX8Zmp+" + "c11v7X9vMpmoqamhtraWyspK6urqMJlMmM1mrPXJOvYS3WAwoNfr8fX1xdvbGx8fH7y9vfHy8kKn" + "0zWpLVwEtou6AQghSE9P59aZMykvr0CRdNx732weemAuJcVFLF68mDVr/0dJUQE/7d7F1CmTkHWy" + "be/cav/lCXytbBUFxWJl3979bNy0BSHpkLCiKBdW1jcmmV39XghbP7yamhpKSkooLi7m559/Ji8v" + "j4qKCioqKjAajVgsFsxms4Pa7wxW9bsURUGWZXQ6HXq9HoPBgLe3N506dSIwMJDAwECCg4Np3749" + "nTp1wmAwtNhBduEYhJ3WImzP7rvvtnK2oBAhJAKDgnjwoQfpHt2N6G5dsFhM9OrVCy9vb+J6xGle" + "fbetf5kCX9QfGoSCEApZWVl88cWXmMwWukXHkJV1ogH4LjT4ndV1k8lEcXExubm5pKenk5+fT2lp" + "KbW1tfWdc395r4eHB76+vgQEBODv74+npyceHh54eHig1+sbHPTa2lqNkdTV1VFbW0tNTQ3FxcUU" + "FRWhKIrGOGRZJjQ0lJCQEMLCwggPDycsLIyAgADt2k3Fz9t+z7Q/kBDs2rWzfj/0xMXF0a1rF06e" + "zMRorCM6JoaBgwZj8PC0RS/qc5HdTcUuW4lf79ATCuVlZaxfv56NGzYQGhbGrTNn8ey//s/WdFLi" + "VwG+KqGrqqo4cuQI2dnZ5OTkUFhYqIWm9Ho9fn5+dOnSheDgYDp06EDnzp3x9/cnICAALy8v9Hq9" + "A9Abk/qqtFclv8ViwWg0UlNTQ1FREWVlZfz888+UlJRQVFREYWEhubm5WrjMz8+PsLAwevfuTdeu" + "XQkPD0ev11/wJBlh/0CEbUZI+rF0zVMTFRnB5ys/Y8OGdRjr6ggJDWXgoMFcedVVREZGILmTeNyq" + "PtjU5x9//JEvv/iC3NxcHvvL3xh59Uie/ZetY8WFPiSKolBcXExGRgYnTpwgKyuLn3/+GQAPDw+C" + "g4OJiIigR48ehIaG0r59e7y9vR1CU/Ze+paq3faf1ev16HQ6PD098ff3JzQ01EGCWywWzp49S0FB" + "AXl5eeTl5ZGfn09mZibHjx8HoHPnzsTGxtKjRw969OiBh4fHr+aQLS4q0oaCnDiRznPPpXDi+DGQ" + "JPQGDzZv2ca0kznccusMYrt3c1cdXtbAFwoIwYkTGXz+xVfsP3CIyKgo/vjH28jLy7OJEgQS1nov" + "gEASaHH+xkDWlGlg/zuz2czu3btJS0sjKyuLyspKTZIOGTKE6OhooqKiCAkJQa/XNwpcV1755qS9" + "s6PP+brOPzMYDERGRhIZGal9vrq6mry8PFJSUjh58iRnz57l1KlTbNu2jdjYWBITE+nRo4eDb6At" + "/AH1DYTsXfpUV9WAsIXuDh46jF4nMWBgf8rLyjl9JpcT6el8vPRjgoKC6P7AHCSpPppRH877JXfj" + "MuUG4jIixVIn0tMOiTtm3iq8PL1EdHSseOedd4XZXCt+3LVDGGRZyCDad+goSquqhFFRhNlqFVar" + "VSiK0vh1FUV7Wevfr37GbDaLnTt3ijlz5oiwsDAxfvx48f7774vs7GxRV1cnzGazMJvN2mcuiX2s" + "vy+TySSsVqswGo1i5cqVYtq0aaJr165iyJAh4qWXXhLHjh1rsCcWi6XZ/Wz4hfUvYRWKYhJWU5WI" + "CAkWOmQhSV5C0vuIL1etEWZznSgvLRTPPvMP0SGovdDrvMTgocNFndkirFaLUKzmXy5l96/LkS4r" + "4Jf/XCSee+bvIjgoUHh5eosHH5gncnPzhaJYxa6dO4S3wSAMskEEBQWL0spqUWu2iDqzRZgsVmFt" + "BvjqoVZfVVVVYtGiRWLo0KEiODhYzJw5U2zYsEEYjUYHIKifE0JcEsC3Z3DOoDabzSI7O1ssXrxY" + "jBo1SkRHR4uXXnpJ5ObmCrPZrIFeZXStBb4iFGFVzMJirhH9eiUIHbKQZU8R1T1eVJsswmIxCoup" + "Rqxfu0pcMSRZyJJedI2OEzUms1AUq1AUixv4lyPwd32/TUy4brQwyJLw8vASERFdRa9efUWvpD6i" + "e0yM8NJ5CINsEHq9l4hP6iuefPpf4vTZAmGyKsLSQolfUlIiPvvsM3HDDTeInj17igULFoi8vDxh" + "sVgcDr+zZtBqKfgbkrpWZ+DbM7/q6mqxa9cujfHNmTNHHDp0SGN85yLxbcC3CMVqFNMmTxAesk7I" + "kofo1T9ZVBlNwmSuExZzjdixbbO4bvQ1Qi9JIjQ8QhitVmGxmN3At6PLysa3WBUsFisSYLaYyc09" + "w5kzZ5AkgSwJZCHbctyF4NjRY+SeOYPZbNL8Sor4xSsuSZIWXhNC8PPPP7N27VoWL15MRUUF06ZN" + "4+uvv9Ycab9dDLxxX8S5lq7aV7s19jkfHx+Sk5PZvn07e/bsYcGCBQwdOpTrr7+eV155hfDw8AbX" + "dOWzqDfq6916srbevn37sGb1OhQgOzuL2to6PHw8EAiqKquoqqkGWcbH1xdFEejd7YUc9/tyullJ" + "lpDkX/K9QbHVoCOQJdkW45dsJa06nWybMIOa/i0cQKLGvK1WK0uWLGHSpEm89dZbTJ8+nfXr1/Pk" + "k08iy/JFUxLqCvT26bsXbM8liSFDhvDJJ5+QmppKcHAw48aNY/78+eTl5TmUzboqq7V7AHZ+fRh/" + "wzgMHgZkCWorK/n7k0+hWBWqK6vZu3c/R4+lI5CIiopyYNJuqt/Sy6lIx2IxYTGbUJT6gZGal1hh" + "756fGDNmLBaroF379hxNP46fnx+eBtvhsp8pWVtby549e9i8eTM5OTn07duXq666ip49e+Lr6/tL" + "iWv91v6W4FfXoCiKxqycw4IXLulGNGAusiyTmprK999/z6FDhxBCkJSUxIgRI0hISECWZRRFcUoh" + "FggBSr1/XxJWsJj5+MOlPPV//ySvqBiEoGtUZ8wmE0XFJVgUQWJSHx55dB4zbp6Gjvo07PomI5e7" + "V/+yUvV1Oj06nfMtKwhFwdPLCyFJCEkgSQJvTy88DQbbAbGLJR07dow1a9aQkpKCv78/119/PePG" + "jcPf37/RENuvDXL1b7PZTFpaGjk5ORQUFFBTU4PJZMLf35+goCAiIiKIjo6mY8eOGAwGlyr/+d6D" + "PRNUr9WrVy+io6M5fvw4O3bsICUlhWPHjjFr1iwGDhzYgFmoS9DAKtk6CE3+wx8oLqtk5eefc/DQ" + "QbKzc0AC/4B2JPfrx4xbbmX0NVfbxoPhxL3dEv/ybcQh6lN3AdKOHOGhh+ehKAoBAQEsW7YMb29v" + "7RAajUaOHDnCO++8g8lkYvDgwVx77bXExsb+5s0enDMBa2pqOHr0KLt37+bo0aNabr76si/i8fHx" + "ISYmhptuuomAgAAHsF/Ikl01e7CqqoqDBw+ydetWjh8/zvDhwxk/fjyhoaEOdr9zWbEtmxCqqqrZ" + "/t029u/fT87pU3h5eREREcGgwYPp178/QYGB9U1E3eQGvoMqaqvJKysr4+DBVJsapNeTnJyspaPm" + "5uby7bffsmvXLkJCQrjhhhvo37+/pjJfDMBXVfmsrCy2bNnCwYMHURSF/v37Ex0dTWhoqM108fSk" + "vLyckpISTp8+zYkTJzhz5gwdO3Zk3LhxDB482KGo5ULdm71UF0JQVFTEhx9+yJ49ewgPD2fcuHEM" + "Hz4cT0/PBgzI3oSQJAnFqmC1WjmbfxZPT0/atWuHp5eXzTWAuwOPG/iNHj7VO9+wqOXs2bNs2rSJ" + "vXv3EhcXx+zZs/H392+g0v8Wh8ve0Wg0Gjlw4ADffPMN+fn59OrVi+HDhzNgwIAm11ZRUcHhw4dZ" + "unQplZWVjB8/nokTJ+Lt7f2rAV8lo9HItm3bWL16NcXFxSQnJ3PHHXfQrl07x/ZgdsBXoyz2poRz" + "lqIb+Jc98O1v1T79VXWA/XKY8vLy2Lp1K8eOHcPX15ekpCSGDBlC+/btGzjrfquDpRbPKIrC999/" + "z4oVK5AkiQkTJpCcnExAQECjqrIzCLOysli5ciXbtm1j4sSJ/OlPf8LDw+OCO/+c7wfgzJkzrF69" + "mm3btjFy5EjGjh1L165dG5TX2qcnN3aM3aB3A59fgkEq8B2dTlarFYDS0lImTZpEXFwc8+bNIz4+" + "Xgs7XUwHSV2v0WhkypQp3Hrrrdx8881aGNGZQalMzRX4VNCVlZUxYcIEunbtyocffohOp/vVoxJq" + "HwKdTsdjjz3G9u3bmTVrFrNmzdL8EKrXX22uITX1yN3YdwPfWerb370Qgr179/LHP/6Ru+++m1mz" + "ZtGuXTuAiyombw98IQTPPfccvr6+zJ49Gy8vr3NmUiojyc3NZfDgwaxdu5Z+/fr9Jvethh7r6ur4" + "6quvWLhwIUlJScybN09zqNqJdTsdrlHlzk1O3PVyKtMRQljtXra0U1s6rVUsWbJEBAYGir/+9a+i" + "rq6uQVrtxZg6e/z4cREcHCyysrKExWI553WqufNq2u3y5cvF008/LSoqKn6zmgB1300mk9i1a5eY" + "OnWquO6668TmzZsd0oYV5wRcxenlpgZ0WUl8V5lhqlR55plnWLJkCW+++SaTJk3CYDC0WNI1jDtL" + "TTrjnN97ruaDxWLhwQcfpKSkhE8//fS8bVr7FGSAu+66izvuuIOrrrrqN3WUqRGL06dP8+abb7Jn" + "zx6++eYbTRtzfr7uARpuVb/BwVAdYuqBqq2t5c477yQlJYUVK1bQu3dvTU1u6SF3Dk05t9Nq6iCe" + "D5jKysro1q0b2dnZDo68tvK433fffcTGxjJ37lwHRvhbJCapr7KyMpYsWcLnn3/OsmXLiIyMbFA7" + "4HboNU+XZZddNcllx44dfP3114waNYr3338fHx+fVh0a9TDW1taSmZnJoUOHyMzMpLS01AHw6vvC" + "wsK4+uqriYuL05xU5wOkJUuWMHjwYC1rsK33qFevXqSnp3PixAkSExN/0zl06ncHBgbywAMPEBkZ" + "yQMPPEBcXBz33Xefg9ffTc2T7umnn37693yD9sUZqiSuqKhg8+bNfPXVV4SEhPDggw/i5eXlIOmb" + "am1tH0uurq5myZIlbNiwgczMTA3g0dHRxMXFERYWRrt27bBareTl5bF//34yMzPR6/W0b99ea1fV" + "ml736nvffvttEhMTGTVq1AWRxGfPnuXkyZOEh4cTHR3doky+xhTIxhpzNtZluLEuQarjMj4+no4d" + "O7J161ZSUlKIiYmhY8eOTbYcc9NlJvHt1fDy8nI2btzIunXr6NatGzfffLMGvuYOtEO2mKKQk5PD" + "p59+SlZWFj179mTAgAFalpxz80uLxUJubi7r168nNTWVDz/8kGHDhjF69GhCQ0NbdUjVdWRlZTFm" + "zJgLVmHXvn17JEmirKzsnHwd9mQ2m6mpqaGyspLa2lo8PT3x8/PDz88Pg8HQgBG0pGT4mmuuISAg" + "gDfeeINXXnmFf//733Ts2NFB03KD/jIHvnqA169fz4YNG4iPj+emm27SyjabdYbYxfolSeLYsWO8" + "8cYblJaW8sADD9CnTx/8/PwaBa/BYCAqKoo77riD48ePs3HjRrZs2UJhYSFTpkwhOjq61b6KiooK" + "OnTo0KZ7ZbVaNeB4e3sjyzK1tbXnbJfn5OSQmppKZmYmRUVF1NTUaNf38PCgQ4cOdOnShfj4eHr1" + "6tXk83P+mSzLJCcn4+npyYIFC/jiiy+YMmWKAyN1k9vGZ/369axbt46kpCQN9C2VlvbSLCMjg/nz" + "52O1WnnwwQcZMmSIZibYaxfOh1WWZTw9Penduzfh4eFs3LiRjRs3YrFYePzxx1utvciy3GBizvmS" + "c6ZfS6Wv8/rKy8s5cOAAK1euRAiBp6cngYGBREZG4uPjg9FopKKigoKCArKzs9m+fTvDhw9n1KhR" + "dOjQodkoiX3GXu/evXnsscd4/vnnAZg6dSqdOnVyo/tyA76raTV5eXls3LiRXr16OUh65yYQzVFl" + "ZSWvvfYa1dXV/OMf/yAhIcEhSqAoCgUFBRw4cIDKykpCQ0O1zrP2RT3BwcFMmDABvV7PunXryMrK" + "olu3bi0+8LIs0759ewoKCi7YHlZVVSGEwNfXt0V7rWoiJ06cYP369Rw+fJjIyEgGDBhAjx496Ny5" + "M76+vg4Vj4WFhWRkZHDo0CHWrFnD3r17mTZtGgMHDmzU1+KqejA+Pp6rrrqKnTt3otfrmTJlCsHB" + "wY12Hbrs6XeXouOi4+3hw4dFVFSU2LRpkzCZTFqzx9Yku6jXmzx5srjlllu0/nn23/Ptt9+KUaNG" + "CU9PTyHLstDpdEKn04ng4GAxffp0sW3bNlFXV6d9Tu2wu23bNhEfHy8qKiocElOaW8v//d//ienT" + "p7dpkpF9T8D33ntP3HfffeKnn35qdF32jUbLysrEwoULxRVXXCH++c9/iry8PJdJUPaddu33z2Kx" + "iPXr14vQ0FDxwAMPiJqamhZ1H7a/xv79+8WMGTPE7NmzRUZGhtbrUH2Pm36nzTadgX/69GmRkJAg" + "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" + "rkJggg==" + ) + ) + (text "E7000\nRecieve input height sensing signal\nActivate dc-dc converter\n - 24V DC will appear on the dc-dc converter output\n - 0.24 mA will flow through via 100 kOhm resistor (shorted output)\n - Relay will activate\n - Connection between work piece ground and torch shield ground is broken\n - Output will be unshorted, current through resistor stops flowing\n - 23V voltage appears between electrode and work piece ground\nWhen Arc voltage > x V: send contact Signal (repeat signal x times?)\n exit sensing mode\nAfter x msecs: exit sensing mode\nLoss of height sensing signal: exit sensing mode\n\nExit of sensing mode: disable height sensings voltage. This releases relay and shuts off sensing voltage.\n\n" (exclude_from_sim no) - (at 157.734 98.552 0) + (at 157.734 135.128 0) (effects (font (size 1.27 1.27) @@ -1717,7 +2880,7 @@ ) (text ">1.5V 1mA" (exclude_from_sim no) - (at 170.688 44.704 0) + (at 225.298 43.434 0) (effects (font (size 1.27 1.27) @@ -1725,9 +2888,19 @@ ) (uuid "21ef9072-3d1e-4509-9099-3fcc99afe0e3") ) + (text "To torch" + (exclude_from_sim no) + (at 63.246 51.308 0) + (effects + (font + (size 1.27 1.27) + ) + ) + (uuid "227e3737-cd69-402a-b2ae-c0bc5b1261c1") + ) (text "Mounting" (exclude_from_sim no) - (at 257.302 16.002 0) + (at 254.762 87.122 0) (effects (font (size 1.27 1.27) @@ -1735,9 +2908,40 @@ ) (uuid "27e903f8-2cda-408a-b35c-af8280e3ce25") ) - (text "Relay\n-----\nMeasured 10-12 A during blow back start/blow back arc.\nThis the current that will go through the relay during start.'\nAny 24VDC >20A relay with less than 2W power draw works.\n2W is coil current 83 mA, dc-dc converter spec says 3 W/125 mA." + (text "To machine" (exclude_from_sim no) - (at 22.86 83.566 0) + (at 63.5 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + ) + (uuid "6676e5b0-03f5-483e-911b-a6d979a65f61") + ) + (text "FY0022 connector\n8-9 Torch shield safety\n1+4 Torch ground" + (exclude_from_sim no) + (at 76.962 125.73 0) + (effects + (font + (size 3 3) + ) + (justify left) + ) + (uuid "67e9e54f-c8e7-4b96-a272-790b8967119c") + ) + (text "Torch connector" + (exclude_from_sim no) + (at 32.258 46.482 0) + (effects + (font + (size 1.27 1.27) + ) + ) + (uuid "b69ffa1b-fe2f-4907-81cc-a5493874820e") + ) + (text "Relay\n-----\nMeasured 10-12 A during blow back start/blow back arc.\nThis the current that will go through the relay during start.\nNo current flows during plasma cutting.\nAny 24VDC >20A relay with less than 2W power draw works.\n2W is coil current 83 mA, dc-dc converter spec says 3 W/125 mA." + (exclude_from_sim no) + (at 49.022 93.98 0) (effects (font (size 1.27 1.27) @@ -1746,9 +2950,31 @@ ) (uuid "efdba791-5331-4111-a184-bb1ee3633e5a") ) + (global_label "ELECTRODE (-)" + (shape input) + (at 140.97 50.8 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "21b92cb8-9313-494e-a439-650105674ea9") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 123.1682 50.8 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) (global_label "Connected during sensing" (shape input) - (at 86.36 50.8 0) + (at 140.97 49.53 0) (fields_autoplaced yes) (effects (font @@ -1758,7 +2984,7 @@ ) (uuid "2826dd6c-5cf3-4548-9834-ac92358b94e8") (property "Intersheetrefs" "${INTERSHEET_REFS}" - (at 114.3215 50.8 0) + (at 168.9315 49.53 0) (effects (font (size 1.27 1.27) @@ -1768,9 +2994,53 @@ ) ) ) - (global_label "+24V UNREG" + (global_label "TORCH" (shape input) - (at 142.24 38.1 180) + (at 43.18 52.07 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "3b9ab9c0-4966-4ac5-97d8-2fd91fed1207") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 34.0262 52.07 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "WORK PIECE GND (+)" + (shape input) + (at 49.53 62.23 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "5ed7d4b3-93a7-471d-bef8-146b1d44ec30") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 25.741 62.23 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "24V UNREG +" + (shape input) + (at 196.85 36.83 180) (fields_autoplaced yes) (effects (font @@ -1780,7 +3050,7 @@ ) (uuid "6d625087-2465-4970-a850-93c9993d32c2") (property "Intersheetrefs" "${INTERSHEET_REFS}" - (at 126.8572 38.1 0) + (at 180.4996 36.83 0) (effects (font (size 1.27 1.27) @@ -1790,9 +3060,9 @@ ) ) ) - (global_label "TORCH GND" + (global_label "TORCH" (shape input) - (at 58.42 48.26 180) + (at 140.97 44.45 180) (fields_autoplaced yes) (effects (font @@ -1802,7 +3072,7 @@ ) (uuid "6ec9d393-3507-4a78-9366-ffaf8d0786fc") (property "Intersheetrefs" "${INTERSHEET_REFS}" - (at 44.4281 48.26 0) + (at 131.8162 44.45 0) (effects (font (size 1.27 1.27) @@ -1812,9 +3082,9 @@ ) ) ) - (global_label "-24V UNREG" + (global_label "24V UNREG GND" (shape input) - (at 142.24 57.15 180) + (at 196.85 55.88 180) (fields_autoplaced yes) (effects (font @@ -1824,7 +3094,7 @@ ) (uuid "7d9a57dc-1da5-4ae1-8acb-fb0a54f669f3") (property "Intersheetrefs" "${INTERSHEET_REFS}" - (at 126.8572 57.15 0) + (at 178.2015 55.88 0) (effects (font (size 1.27 1.27) @@ -1836,7 +3106,7 @@ ) (global_label "Relay (-)" (shape input) - (at 72.39 67.31 0) + (at 127 66.04 0) (fields_autoplaced yes) (effects (font @@ -1846,7 +3116,7 @@ ) (uuid "8caec950-0429-404a-a48e-73695e8faee2") (property "Intersheetrefs" "${INTERSHEET_REFS}" - (at 84.749 67.31 0) + (at 139.359 66.04 0) (effects (font (size 1.27 1.27) @@ -1858,7 +3128,7 @@ ) (global_label "WORK PIECE GND (+)" (shape input) - (at 58.42 43.18 180) + (at 113.03 41.91 180) (fields_autoplaced yes) (effects (font @@ -1868,7 +3138,7 @@ ) (uuid "8e0e7ccc-b90d-4c7e-83fd-c7e85d9863d3") (property "Intersheetrefs" "${INTERSHEET_REFS}" - (at 34.631 43.18 0) + (at 89.241 41.91 0) (effects (font (size 1.27 1.27) @@ -1880,7 +3150,7 @@ ) (global_label "+24VDC" (shape input) - (at 201.93 34.29 0) + (at 256.54 33.02 0) (fields_autoplaced yes) (effects (font @@ -1890,7 +3160,7 @@ ) (uuid "b05a7639-1711-400c-a733-4aef8f69e8c9") (property "Intersheetrefs" "${INTERSHEET_REFS}" - (at 212.5352 34.29 0) + (at 267.1452 33.02 0) (effects (font (size 1.27 1.27) @@ -1902,7 +3172,7 @@ ) (global_label "-24VDC" (shape input) - (at 201.93 53.34 0) + (at 256.54 52.07 0) (fields_autoplaced yes) (effects (font @@ -1912,7 +3182,7 @@ ) (uuid "bd606692-a779-472b-8869-42d1e6141454") (property "Intersheetrefs" "${INTERSHEET_REFS}" - (at 212.5352 53.34 0) + (at 267.1452 52.07 0) (effects (font (size 1.27 1.27) @@ -1922,31 +3192,9 @@ ) ) ) - (global_label "ELECTRODE (-)" - (shape input) - (at 82.55 53.34 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - (uuid "de3c183a-11d5-48a4-abd7-979b95fbe48c") - (property "Intersheetrefs" "${INTERSHEET_REFS}" - (at 64.7482 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - (hide yes) - ) - ) - ) (global_label "SENSING SIGNAL (24VDC)" (shape input) - (at 201.93 38.1 0) + (at 256.54 36.83 0) (fields_autoplaced yes) (effects (font @@ -1956,7 +3204,7 @@ ) (uuid "de424800-6af7-4893-a026-1ea6454cc777") (property "Intersheetrefs" "${INTERSHEET_REFS}" - (at 229.2267 38.1 0) + (at 283.8367 36.83 0) (effects (font (size 1.27 1.27) @@ -1968,7 +3216,7 @@ ) (global_label "Relay (+)" (shape input) - (at 72.39 64.77 0) + (at 127 63.5 0) (fields_autoplaced yes) (effects (font @@ -1978,7 +3226,7 @@ ) (uuid "fd468efe-5bf8-438c-b460-f5e9d5af6f85") (property "Intersheetrefs" "${INTERSHEET_REFS}" - (at 84.749 64.77 0) + (at 139.359 63.5 0) (effects (font (size 1.27 1.27) @@ -1990,7 +3238,7 @@ ) (symbol (lib_id "Device:R") - (at 95.25 43.18 90) + (at 149.86 41.91 90) (unit 1) (exclude_from_sim no) (in_bom yes) @@ -1998,7 +3246,7 @@ (dnp no) (uuid "1431b03f-edc2-4586-b646-d5c3e81e275c") (property "Reference" "R1" - (at 101.6 42.164 90) + (at 156.21 40.894 90) (effects (font (size 1.27 1.27) @@ -2006,8 +3254,8 @@ (justify left) ) ) - (property "Value" "10k" - (at 97.028 43.18 90) + (property "Value" "100k" + (at 151.638 41.91 90) (effects (font (size 1.27 1.27) @@ -2016,7 +3264,7 @@ ) ) (property "Footprint" "Resistor_SMD:R_2512_6332Metric_Pad1.40x3.35mm_HandSolder" - (at 95.25 44.958 90) + (at 149.86 43.688 90) (effects (font (size 1.27 1.27) @@ -2025,7 +3273,7 @@ ) ) (property "Datasheet" "~" - (at 95.25 43.18 0) + (at 149.86 41.91 0) (effects (font (size 1.27 1.27) @@ -2034,7 +3282,7 @@ ) ) (property "Description" "Resistor" - (at 95.25 43.18 0) + (at 149.86 41.91 0) (effects (font (size 1.27 1.27) @@ -2059,7 +3307,7 @@ ) (symbol (lib_id "Mechanical:MountingHole") - (at 254 26.67 0) + (at 251.46 97.79 0) (unit 1) (exclude_from_sim yes) (in_bom no) @@ -2068,7 +3316,7 @@ (fields_autoplaced yes) (uuid "16840c9c-f009-445b-809d-ad6f9c769100") (property "Reference" "H2" - (at 256.54 25.4578 0) + (at 254 96.5778 0) (effects (font (size 1.27 1.27) @@ -2077,7 +3325,7 @@ ) ) (property "Value" "MountingHole" - (at 256.54 27.8821 0) + (at 254 99.0021 0) (effects (font (size 1.27 1.27) @@ -2086,7 +3334,7 @@ ) ) (property "Footprint" "MountingHole:MountingHole_3.2mm_M3" - (at 254 26.67 0) + (at 251.46 97.79 0) (effects (font (size 1.27 1.27) @@ -2095,7 +3343,7 @@ ) ) (property "Datasheet" "~" - (at 254 26.67 0) + (at 251.46 97.79 0) (effects (font (size 1.27 1.27) @@ -2104,7 +3352,7 @@ ) ) (property "Description" "Mounting Hole without connection" - (at 254 26.67 0) + (at 251.46 97.79 0) (effects (font (size 1.27 1.27) @@ -2123,7 +3371,7 @@ ) (symbol (lib_id "Mechanical:MountingHole") - (at 254 30.48 0) + (at 251.46 101.6 0) (unit 1) (exclude_from_sim yes) (in_bom no) @@ -2132,7 +3380,7 @@ (fields_autoplaced yes) (uuid "309cf554-7dea-456d-be45-443beb1eb356") (property "Reference" "H3" - (at 256.54 29.2678 0) + (at 254 100.3878 0) (effects (font (size 1.27 1.27) @@ -2141,7 +3389,7 @@ ) ) (property "Value" "MountingHole" - (at 256.54 31.6921 0) + (at 254 102.8121 0) (effects (font (size 1.27 1.27) @@ -2150,7 +3398,7 @@ ) ) (property "Footprint" "MountingHole:MountingHole_3.2mm_M3" - (at 254 30.48 0) + (at 251.46 101.6 0) (effects (font (size 1.27 1.27) @@ -2159,7 +3407,7 @@ ) ) (property "Datasheet" "~" - (at 254 30.48 0) + (at 251.46 101.6 0) (effects (font (size 1.27 1.27) @@ -2168,7 +3416,7 @@ ) ) (property "Description" "Mounting Hole without connection" - (at 254 30.48 0) + (at 251.46 101.6 0) (effects (font (size 1.27 1.27) @@ -2187,7 +3435,7 @@ ) (symbol (lib_id "Device:R") - (at 177.8 49.53 0) + (at 232.41 48.26 0) (mirror y) (unit 1) (exclude_from_sim no) @@ -2196,7 +3444,7 @@ (dnp no) (uuid "3a591332-2880-45d2-b8af-f17237b886c3") (property "Reference" "R5" - (at 179.578 53.594 90) + (at 234.188 52.324 90) (effects (font (size 1.27 1.27) @@ -2205,7 +3453,7 @@ ) ) (property "Value" "2k" - (at 177.8 51.054 90) + (at 232.41 49.784 90) (effects (font (size 1.27 1.27) @@ -2214,7 +3462,7 @@ ) ) (property "Footprint" "Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder" - (at 179.578 49.53 90) + (at 234.188 48.26 90) (effects (font (size 1.27 1.27) @@ -2223,7 +3471,7 @@ ) ) (property "Datasheet" "~" - (at 177.8 49.53 0) + (at 232.41 48.26 0) (effects (font (size 1.27 1.27) @@ -2232,7 +3480,7 @@ ) ) (property "Description" "Resistor" - (at 177.8 49.53 0) + (at 232.41 48.26 0) (effects (font (size 1.27 1.27) @@ -2257,7 +3505,7 @@ ) (symbol (lib_id "Mechanical:MountingHole") - (at 254 22.86 0) + (at 251.46 93.98 0) (unit 1) (exclude_from_sim yes) (in_bom no) @@ -2266,7 +3514,7 @@ (fields_autoplaced yes) (uuid "4a92cd42-854d-40b8-94c8-4c25d0aae700") (property "Reference" "H1" - (at 256.54 21.6478 0) + (at 254 92.7678 0) (effects (font (size 1.27 1.27) @@ -2275,7 +3523,7 @@ ) ) (property "Value" "MountingHole" - (at 256.54 24.0721 0) + (at 254 95.1921 0) (effects (font (size 1.27 1.27) @@ -2284,7 +3532,7 @@ ) ) (property "Footprint" "MountingHole:MountingHole_3.2mm_M3" - (at 254 22.86 0) + (at 251.46 93.98 0) (effects (font (size 1.27 1.27) @@ -2293,7 +3541,7 @@ ) ) (property "Datasheet" "~" - (at 254 22.86 0) + (at 251.46 93.98 0) (effects (font (size 1.27 1.27) @@ -2302,7 +3550,7 @@ ) ) (property "Description" "Mounting Hole without connection" - (at 254 22.86 0) + (at 251.46 93.98 0) (effects (font (size 1.27 1.27) @@ -2321,7 +3569,7 @@ ) (symbol (lib_id "Converter_DCDC:TEC3-2413UI") - (at 153.67 45.72 0) + (at 208.28 44.45 0) (mirror y) (unit 1) (exclude_from_sim no) @@ -2330,7 +3578,7 @@ (dnp no) (uuid "5753cea9-0491-4408-b552-c37b3775e175") (property "Reference" "U1" - (at 153.67 36.4955 0) + (at 208.28 35.2255 0) (effects (font (size 1.27 1.27) @@ -2338,7 +3586,7 @@ ) ) (property "Value" "RS3K-2424S/H3" - (at 153.67 38.9198 0) + (at 208.28 37.6498 0) (effects (font (size 1.27 1.27) @@ -2346,7 +3594,7 @@ ) ) (property "Footprint" "Converter_DCDC:Converter_DCDC_TRACO_TEC3-24xxUI_THT" - (at 153.67 52.324 0) + (at 208.28 51.054 0) (effects (font (size 1.27 1.27) @@ -2355,7 +3603,7 @@ ) ) (property "Datasheet" "https://www.tracopower.com/products/tec3ui.pdf" - (at 153.67 54.61 0) + (at 208.28 53.34 0) (effects (font (size 1.27 1.27) @@ -2364,7 +3612,7 @@ ) ) (property "Description" "3W DC/DC converter regulated, 9-75V input, 15V fixed output voltage, 200mA output, 2.0kVDC isolation, SIP-8" - (at 153.67 45.72 0) + (at 208.28 44.45 0) (effects (font (size 1.27 1.27) @@ -2404,7 +3652,7 @@ ) (symbol (lib_id "Mechanical:MountingHole") - (at 254 34.29 0) + (at 251.46 105.41 0) (unit 1) (exclude_from_sim yes) (in_bom no) @@ -2413,7 +3661,7 @@ (fields_autoplaced yes) (uuid "75680c8b-7d96-4d2b-b7b2-23a19e38eb58") (property "Reference" "H4" - (at 256.54 33.0778 0) + (at 254 104.1978 0) (effects (font (size 1.27 1.27) @@ -2422,7 +3670,7 @@ ) ) (property "Value" "MountingHole" - (at 256.54 35.5021 0) + (at 254 106.6221 0) (effects (font (size 1.27 1.27) @@ -2431,7 +3679,7 @@ ) ) (property "Footprint" "MountingHole:MountingHole_3.2mm_M3" - (at 254 34.29 0) + (at 251.46 105.41 0) (effects (font (size 1.27 1.27) @@ -2440,7 +3688,7 @@ ) ) (property "Datasheet" "~" - (at 254 34.29 0) + (at 251.46 105.41 0) (effects (font (size 1.27 1.27) @@ -2449,7 +3697,7 @@ ) ) (property "Description" "Mounting Hole without connection" - (at 254 34.29 0) + (at 251.46 105.41 0) (effects (font (size 1.27 1.27) @@ -2468,7 +3716,7 @@ ) (symbol (lib_id "Device:R") - (at 177.8 41.91 0) + (at 232.41 40.64 0) (mirror y) (unit 1) (exclude_from_sim no) @@ -2477,7 +3725,7 @@ (dnp no) (uuid "8109579b-8512-4b4b-86fc-2597c123d118") (property "Reference" "R4" - (at 179.578 45.974 90) + (at 234.188 44.704 90) (effects (font (size 1.27 1.27) @@ -2486,7 +3734,7 @@ ) ) (property "Value" "10k" - (at 177.8 43.942 90) + (at 232.41 42.672 90) (effects (font (size 1.27 1.27) @@ -2495,7 +3743,7 @@ ) ) (property "Footprint" "Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder" - (at 179.578 41.91 90) + (at 234.188 40.64 90) (effects (font (size 1.27 1.27) @@ -2504,7 +3752,7 @@ ) ) (property "Datasheet" "~" - (at 177.8 41.91 0) + (at 232.41 40.64 0) (effects (font (size 1.27 1.27) @@ -2513,7 +3761,7 @@ ) ) (property "Description" "Resistor" - (at 177.8 41.91 0) + (at 232.41 40.64 0) (effects (font (size 1.27 1.27) @@ -2536,9 +3784,87 @@ ) ) ) + (symbol + (lib_id "Relay:Relay_SPDT") + (at 80.01 67.31 270) + (mirror x) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board no) + (dnp no) + (uuid "8260ab10-cd2d-4f99-82e2-03c7f476e427") + (property "Reference" "K1" + (at 80.518 53.594 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "Relay_SPDT" + (at 80.01 55.4298 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 78.74 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 80.01 67.31 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Relay SPDT, monostable, EN50005" + (at 80.01 67.31 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "87" + (uuid "109207e9-7811-4e78-b147-91bc987d22cc") + ) + (pin "86" + (uuid "267496a6-5ae1-4385-88f1-cf516fccd2f2") + ) + (pin "30" + (uuid "b7fc9016-2c91-4802-b982-0b3f54a18ddc") + ) + (pin "85" + (uuid "b936b87c-6caf-4e38-b29c-ba34efb4fc55") + ) + (pin "87a" + (uuid "53f3d762-a6e3-4517-9176-e62b7722d015") + ) + (instances + (project "" + (path "/2f7c1153-70ce-434d-b080-3c6aade9d7b3" + (reference "K1") + (unit 1) + ) + ) + ) + ) (symbol (lib_id "Diode:1N4007") - (at 113.03 43.18 0) + (at 167.64 41.91 0) (unit 1) (exclude_from_sim no) (in_bom yes) @@ -2546,7 +3872,7 @@ (dnp no) (uuid "9c723cc0-ade8-4448-b420-262985c3b551") (property "Reference" "D1" - (at 110.236 42.418 0) + (at 164.846 41.148 0) (effects (font (size 1.27 1.27) @@ -2554,7 +3880,7 @@ ) ) (property "Value" "1N4007" - (at 107.696 44.196 0) + (at 162.306 42.926 0) (effects (font (size 1.27 1.27) @@ -2562,7 +3888,7 @@ ) ) (property "Footprint" "Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal" - (at 113.03 47.625 0) + (at 167.64 46.355 0) (effects (font (size 1.27 1.27) @@ -2571,7 +3897,7 @@ ) ) (property "Datasheet" "http://www.vishay.com/docs/88503/1n4001.pdf" - (at 113.03 43.18 0) + (at 167.64 41.91 0) (effects (font (size 1.27 1.27) @@ -2580,7 +3906,7 @@ ) ) (property "Description" "1000V 1A General Purpose Rectifier Diode, DO-41" - (at 113.03 43.18 0) + (at 167.64 41.91 0) (effects (font (size 1.27 1.27) @@ -2589,7 +3915,7 @@ ) ) (property "Sim.Device" "D" - (at 113.03 43.18 0) + (at 167.64 41.91 0) (effects (font (size 1.27 1.27) @@ -2598,7 +3924,7 @@ ) ) (property "Sim.Pins" "1=K 2=A" - (at 113.03 43.18 0) + (at 167.64 41.91 0) (effects (font (size 1.27 1.27) @@ -2623,7 +3949,7 @@ ) (symbol (lib_id "Connector:Conn_01x05_Pin") - (at 54.61 68.58 0) + (at 109.22 67.31 0) (unit 1) (exclude_from_sim no) (in_bom yes) @@ -2632,7 +3958,7 @@ (fields_autoplaced yes) (uuid "e0478a0e-7911-4bc7-9b8a-0c0438ea6e9a") (property "Reference" "J3" - (at 55.245 59.2793 0) + (at 109.855 58.0093 0) (effects (font (size 1.27 1.27) @@ -2640,7 +3966,7 @@ ) ) (property "Value" "Conn_01x05_Pin" - (at 55.245 61.7036 0) + (at 109.855 60.4336 0) (effects (font (size 1.27 1.27) @@ -2648,7 +3974,7 @@ ) ) (property "Footprint" "Connector_Phoenix_MC:PhoenixContact_MCV_1,5_5-G-3.5_1x05_P3.50mm_Vertical" - (at 54.61 68.58 0) + (at 109.22 67.31 0) (effects (font (size 1.27 1.27) @@ -2657,7 +3983,7 @@ ) ) (property "Datasheet" "~" - (at 54.61 68.58 0) + (at 109.22 67.31 0) (effects (font (size 1.27 1.27) @@ -2666,7 +3992,7 @@ ) ) (property "Description" "Generic connector, single row, 01x05, script generated" - (at 54.61 68.58 0) + (at 109.22 67.31 0) (effects (font (size 1.27 1.27) @@ -2700,7 +4026,7 @@ ) (symbol (lib_id "Connector:Conn_01x03_Pin") - (at 198.12 48.26 0) + (at 252.73 46.99 0) (mirror y) (unit 1) (exclude_from_sim no) @@ -2709,7 +4035,7 @@ (dnp no) (uuid "e6bf06e6-0318-4cc3-a193-63cb4bd373c6") (property "Reference" "J2" - (at 197.485 41.4993 0) + (at 252.095 40.2293 0) (effects (font (size 1.27 1.27) @@ -2717,7 +4043,7 @@ ) ) (property "Value" "Conn_01x03_Pin" - (at 202.692 55.88 0) + (at 257.302 54.61 0) (effects (font (size 1.27 1.27) @@ -2725,7 +4051,7 @@ ) ) (property "Footprint" "Connector_Phoenix_MC:PhoenixContact_MCV_1,5_3-G-3.5_1x03_P3.50mm_Vertical" - (at 198.12 48.26 0) + (at 252.73 46.99 0) (effects (font (size 1.27 1.27) @@ -2734,7 +4060,7 @@ ) ) (property "Datasheet" "~" - (at 198.12 48.26 0) + (at 252.73 46.99 0) (effects (font (size 1.27 1.27) @@ -2743,7 +4069,7 @@ ) ) (property "Description" "Generic connector, single row, 01x03, script generated" - (at 198.12 48.26 0) + (at 252.73 46.99 0) (effects (font (size 1.27 1.27) diff --git a/README.md b/README.md index d1f7d37..3703b9f 100644 --- a/README.md +++ b/README.md @@ -172,6 +172,15 @@ Pay attention to the polarity when connecting the plasma voltage leads the THTIC The experience with these cards has been very good so far. I have used the THTIC the most, cutting for at least an hour of cutting time, with THC enabled and active. A status variable shows that it has been working the whole time, no stops or resets. The THTIC2 has been used much less, but it behaves the same as the THTIC card, meaning it just works. +## THCLIP Enable ohmic sensing with the IPTM-60 torch + +This is for the torches known as IPT-60 PT-60 S45 IPTM-60 IPTM-80 and many more that have blowback start with the torch tip exposed and normally shortened to the torch electrode. Normally this torch can't use ohmic sensing since all parts are connected to ground. At least on my machine, a Herocut 8000, the blowback start cable from the torch can be cut during sensing. This enables ohmic sensing and it continues to operate in other situations. +![THCLIP](Utils/Pictures/THCLIP1.png) +![THCLIP](Utils/Pictures/THCLIP2.png) +I have made an adaptation to the EaserCAT 7000 to handle the contact. There is a short setup time needed to make sure the relay is activated before starting to watch for contact, a tenth of a second seems enough. Then it watches for a shift from some 7V to a settable limit, say 4V, to indicate contact. Works like a charm. + +The Trafimet torch hose connectors are called FY0022 and FY0023. The relay is a 24V 40A standard car relay. Check out the Kicad schematics for the other parts. + ## License Don't violate the original licenses. No warranties. Use it any way you like.\