diff --git a/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/eeprom.bin b/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/eeprom.bin index 3787c1b..c270007 100755 Binary files a/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/eeprom.bin and b/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/eeprom.bin differ diff --git a/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/eeprom.hex b/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/eeprom.hex index 625d11f..9ef1f9e 100755 --- a/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/eeprom.hex +++ b/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/eeprom.hex @@ -1,10 +1,10 @@ -:2000000080060344640000000000000000001400AA0A000000600000020000000100000084 +:2000000080060344640000000000000000001400D0D1BED0007000000200000001000000F9 :20002000000000000000000000000000000000000010000200120002040000000000000096 :200040000000000000000000000000000000000000000000000000000000000000000000A0 :20006000000000000000000000000000000000000000000000000000000000000F00010070 -:200080000A002000040D456173657243415420363030300E4D616368696E65436F6E7472AE +:200080000A002000040D456173657243415420373030300E4D616368696E65436F6E7472AD :2000A0006F6C06494D474342591A4D6574616C4D7573696E677320456173657243415420A9 -:2000C000363030301E001000020301040013000000000000000000001100000000000000FE +:2000C000373030301E001000020301040013000000000000000000001100000000000000FD :2000E000000000000000000028000200010203002900100000100002260001010012000249 :20010000220001020016000024000103001A000020000104FFFFFFFFFFFFFFFFFFFFFFFF49 :20012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF diff --git a/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/esi.json b/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/esi.json index 61bc303..6dd7836 100755 --- a/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/esi.json +++ b/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/esi.json @@ -1,8 +1,8 @@ { "form": { "VendorName": "MetalMusings", - "VendorID": "0xaaa", - "ProductCode": "0x6000", + "VendorID": "0xd0bed1d0", + "ProductCode": "0x7000", "ProfileNo": "5001", "RevisionNumber": "0x002", "SerialNumber": "0x001", @@ -17,8 +17,8 @@ "TextGroupType": "MachineControl", "TextGroupName5": "Plasma cutter", "ImageName": "IMGCBY", - "TextDeviceType": "EaserCAT 6000", - "TextDeviceName": "MetalMusings EaserCAT 6000", + "TextDeviceType": "EaserCAT 7000", + "TextDeviceName": "MetalMusings EaserCAT 7000", "Port0Physical": "Y", "Port1Physical": "Y", "Port2Physical": " ", @@ -36,12 +36,12 @@ "sdo": { "2000": { "otype": "VAR", - "name": "VelocityScale", + "name": "VoltageScale", "access": "RO", "dtype": "REAL32", - "value": "0", + "value": "1", "isSDOitem": true, - "data": "&Obj.VelocityScale" + "data": "&Obj.VoltageScale" }, "A": { "otype": "RECORD", @@ -83,25 +83,25 @@ }, "6001": { "otype": "VAR", - "name": "Velocity", + "name": "ArcVoltage", "access": "RO", "pdo_mappings": [ "txpdo" ], "dtype": "REAL32", "value": "0", - "data": "&Obj.Velocity" + "data": "&Obj.ArcVoltage" }, "6002": { "otype": "VAR", - "name": "Frequency", + "name": "Voltage", "access": "RO", "pdo_mappings": [ "txpdo" ], - "dtype": "UNSIGNED32", + "dtype": "REAL32", "value": "0", - "data": "&Obj.Frequency" + "data": "&Obj.Voltage" } }, "rxpdo": { diff --git a/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/objectlist.c b/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/objectlist.c index e060eb0..08980b4 100755 --- a/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/objectlist.c +++ b/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/objectlist.c @@ -19,12 +19,12 @@ static const char acName1600_01[] = "Output4"; static const char acName1A00[] = "Input12"; static const char acName1A00_00[] = "Max SubIndex"; static const char acName1A00_01[] = "Input12"; -static const char acName1A01[] = "Velocity"; +static const char acName1A01[] = "ArcVoltage"; static const char acName1A01_00[] = "Max SubIndex"; -static const char acName1A01_01[] = "Velocity"; -static const char acName1A02[] = "Frequency"; +static const char acName1A01_01[] = "ArcVoltage"; +static const char acName1A02[] = "Voltage"; static const char acName1A02_00[] = "Max SubIndex"; -static const char acName1A02_01[] = "Frequency"; +static const char acName1A02_01[] = "Voltage"; static const char acName1C00[] = "Sync Manager Communication Type"; static const char acName1C00_00[] = "Max SubIndex"; static const char acName1C00_01[] = "Communications Type SM0"; @@ -39,10 +39,10 @@ static const char acName1C13_00[] = "Max SubIndex"; static const char acName1C13_01[] = "PDO Mapping"; static const char acName1C13_02[] = "PDO Mapping"; static const char acName1C13_03[] = "PDO Mapping"; -static const char acName2000[] = "VelocityScale"; +static const char acName2000[] = "VoltageScale"; static const char acName6000[] = "Input12"; -static const char acName6001[] = "Velocity"; -static const char acName6002[] = "Frequency"; +static const char acName6001[] = "ArcVoltage"; +static const char acName6002[] = "Voltage"; static const char acName7000[] = "Output4"; const _objd SDO1000[] = @@ -51,7 +51,7 @@ const _objd SDO1000[] = }; const _objd SDO1008[] = { - {0x0, DTYPE_VISIBLE_STRING, 208, ATYPE_RO, acName1008, 0, "MetalMusings EaserCAT 6000"}, + {0x0, DTYPE_VISIBLE_STRING, 208, ATYPE_RO, acName1008, 0, "MetalMusings EaserCAT 7000"}, }; const _objd SDO1009[] = { @@ -64,8 +64,8 @@ const _objd SDO100A[] = const _objd SDO1018[] = { {0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1018_00, 4, NULL}, - {0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1018_01, 2730, NULL}, - {0x02, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1018_02, 24576, NULL}, + {0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1018_01, 3502166480, NULL}, + {0x02, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1018_02, 28672, NULL}, {0x03, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1018_03, 2, NULL}, {0x04, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1018_04, 1, &Obj.serial}, }; @@ -111,7 +111,7 @@ const _objd SDO1C13[] = }; const _objd SDO2000[] = { - {0x0, DTYPE_REAL32, 32, ATYPE_RO, acName2000, 0x00000000, &Obj.VelocityScale}, + {0x0, DTYPE_REAL32, 32, ATYPE_RO, acName2000, 0x3f800000, &Obj.VoltageScale}, }; const _objd SDO6000[] = { @@ -119,11 +119,11 @@ const _objd SDO6000[] = }; const _objd SDO6001[] = { - {0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_TXPDO, acName6001, 0x00000000, &Obj.Velocity}, + {0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_TXPDO, acName6001, 0x00000000, &Obj.ArcVoltage}, }; const _objd SDO6002[] = { - {0x0, DTYPE_UNSIGNED32, 32, ATYPE_RO | ATYPE_TXPDO, acName6002, 0, &Obj.Frequency}, + {0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_TXPDO, acName6002, 0x00000000, &Obj.Voltage}, }; const _objd SDO7000[] = { diff --git a/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/utypes.h b/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/utypes.h index c6113d6..3353c11 100755 --- a/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/utypes.h +++ b/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/lib/soes-esi/utypes.h @@ -14,8 +14,8 @@ typedef struct /* Inputs */ int32_t Input12; - float Velocity; - uint32_t Frequency; + float ArcVoltage; + float Voltage; /* Outputs */ @@ -23,7 +23,7 @@ typedef struct /* Parameters */ - float VelocityScale; + float VoltageScale; } _Objects; extern _Objects Obj; diff --git a/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/platformio.ini b/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/platformio.ini index e25f715..763559b 100755 --- a/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/platformio.ini +++ b/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/platformio.ini @@ -18,7 +18,7 @@ debug_build_flags = -O0 -g -ggdb monitor_port = COM15 monitor_filters = send_on_enter, time, colorize, log2file monitor_speed = 115200 -build_flags = -Wl,--no-warn-rwx-segment +build_flags = -Wl,--no-warn-rwx-segment -DECAT lib_deps = SPI robtillaart/ADS1X15@^0.5.1 diff --git a/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/src/main.cpp b/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/src/main.cpp index ab515a0..df8caf3 100755 --- a/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/src/main.cpp +++ b/Cards/EaserCAT-7000-DIO+THCAD+I2C/Firmware/src/main.cpp @@ -40,12 +40,13 @@ void cb_get_inputs(void) // Set Master inputs, slave outputs, last operation { for (int i = 0; i < sizeof(inputPin); i++) Obj.Input12 = digitalRead(inputPin[i]) == HIGH ? bitset(Obj.Input12, i) : bitclear(Obj.Input12, i); - float scale = Obj.VelocityScale; + + float scale = Obj.VoltageScale; if (scale == 0.0) scale = 1.0; - float ADCvoltage = ADS.getValue(ADS.toVoltage(value)); - Obj.ArcVoltage = scale * ADCvoltage; // Scaled voltage, supposedly to give Plasma voltage - Obj.Voltage = ADCvoltage; // Raw voltage, read by ADC + float ADCvoltage = ADS.toVoltage(ADS.getValue()); + Obj.ArcVoltage = scale*ADCvoltage; // * ADCvoltage; // Scaled voltage, to give Plasma arc voltage + Obj.Voltage = ADCvoltage; // Raw voltage, read by ADC } void ESC_interrupt_enable(uint32_t mask); @@ -67,10 +68,10 @@ static esc_cfg_t config = .post_object_download_hook = NULL, .rxpdo_override = NULL, .txpdo_override = NULL, - .esc_hw_interrupt_enable = ESC_interrupt_enable, - .esc_hw_interrupt_disable = ESC_interrupt_disable, + .esc_hw_interrupt_enable = NULL, // ESC_interrupt_enable, + .esc_hw_interrupt_disable = NULL, // ESC_interrupt_disable, .esc_hw_eep_handler = NULL, - .esc_check_dc_handler = dc_checker, + .esc_check_dc_handler = NULL, // dc_checker, }; volatile byte serveIRQ = 0; @@ -107,14 +108,14 @@ void setup(void) ADS.setWireClock(400000UL); // 400 kHz ADS.readADC(0); // first read to trigger settings -#if 0 +#ifdef ECAT ecat_slv_init(&config); #endif } void loop(void) { -#if 0 +#ifdef ECAT uint64_t dTime; if (serveIRQ) {