├── PECMAC125A_DLCT03C20.png ├── README.md ├── Python └── PECMAC125A.py ├── Java └── PECMAC125A.java ├── Arduino └── PECMAC125A.ino ├── Particle └── PECMAC125A.ino └── .categories /PECMAC125A_DLCT03C20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ControlEverythingCommunity/PECMAC/HEAD/PECMAC125A_DLCT03C20.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![PECMAC125A](PECMAC125A_DLCT03C20.png)](https://www.controleverything.com/content/Current?sku=PECMAC125A_DLCT03C20) 2 | # PECMAC125A 3 | PECMAC125A Current Monitoring Controller. 4 | 5 | The PECMAC125A has twelve 5-Amp current monitoring channels. 6 | 7 | This Device is available from ControlEverything.com [SKU: PECMAC125A_DLCT03C20] 8 | 9 | https://www.controleverything.com/content/Current?sku=PECMAC125A_DLCT03C20 10 | 11 | This Sample code can be used with Raspberry pi, Arduino and Particle. 12 | 13 | ## Java 14 | Download and install pi4j library on Raspberry pi. Steps to install pi4j are provided at: 15 | 16 | http://pi4j.com/install.html 17 | 18 | Download (or git pull) the code in pi. 19 | 20 | Compile the java program. 21 | ```cpp 22 | $> pi4j PECMAC125A.java 23 | ``` 24 | 25 | Run the java program. 26 | ```cpp 27 | $> pi4j PECMAC125A 28 | ``` 29 | 30 | ## Python 31 | Download and install smbus library on Raspberry pi. Steps to install smbus are provided at: 32 | 33 | https://pypi.python.org/pypi/smbus-cffi/0.5.1 34 | 35 | Download (or git pull) the code in pi. Run the program. 36 | 37 | ```cpp 38 | $> python PECMAC125A.py 39 | ``` 40 | 41 | ## Arduino 42 | Download and install Arduino Software (IDE) on your machine. Steps to install Arduino are provided at: 43 | 44 | https://www.arduino.cc/en/Main/Software 45 | 46 | Download (or git pull) the code and double click the file to run the program. 47 | 48 | Compile and upload the code on Arduino IDE and see the output on Serial Monitor. 49 | 50 | 51 | ## Particle Photon 52 | 53 | Login to your Photon and setup your device according to steps provided at: 54 | 55 | https://docs.particle.io/guide/getting-started/connect/photon/ 56 | 57 | Download (or git pull) the code. Go to online IDE and copy the code. 58 | 59 | https://build.particle.io/build/ 60 | 61 | Verify and flash the code on your Photon. Code output is shown in logs at dashboard: 62 | 63 | https://dashboard.particle.io/user/logs 64 | 65 | #####The code output is the current value of the devices in ampere. 66 | -------------------------------------------------------------------------------- /Python/PECMAC125A.py: -------------------------------------------------------------------------------- 1 | # Distributed with a free-will license. 2 | # Use it any way you want, profit or free, provided it fits in the licenses of its associated works. 3 | # PECMAC125A 4 | # This code is designed to work with the PECMAC125A_DLCT03C20 I2C Mini Module available from ControlEverything.com. 5 | # https://www.controleverything.com/content/Current?sku=PECMAC125A_DLCT03C20#tabs-0-product_tabset-2 6 | 7 | import smbus 8 | import time 9 | 10 | # Get I2C bus 11 | bus = smbus.SMBus(1) 12 | 13 | # PECMAC125A address, 0x2A(42) 14 | # Command for reading device identification data 15 | # 0x6A(106), 0x02(2), 0x00(0),0x00(0), 0x00(0) 0x00(0), 0xFE(254) 16 | # Header byte-2, command-2, byte 3, 4, 5 and 6 are reserved, checksum 17 | command2 = [0x6A, 0x02, 0x00, 0x00, 0x00, 0x00, 0xFE] 18 | bus.write_i2c_block_data(0x2A, 0x92, command2) 19 | 20 | time.sleep(0.5) 21 | 22 | # PECMAC125A address, 0x2A(42) 23 | # Read data back from 0x55(85), 3 bytes 24 | # Type of Sensor, Maximum Current, No. of Channels 25 | data = bus.read_i2c_block_data(0x2A, 0x55, 3) 26 | 27 | # Convert the data 28 | typeOfSensor = data[0] 29 | maxCurrent = data[1] 30 | noOfChannel = data[2] 31 | 32 | # Output data to screen 33 | print "Type of Sensor : %d" %typeOfSensor 34 | print "Maximum Current : %d A" %maxCurrent 35 | print "No. of Channels : %d" %noOfChannel 36 | 37 | # PECMAC125A address, 0x2A(42) 38 | # Command for reading current 39 | # 0x6A(106), 0x01(1), 0x01(1),0x0C(12), 0x00(0), 0x00(0) 0x0A(10) 40 | # Header byte-2, command-1, start channel-1, stop channel-12, byte 5 and 6 reserved, checksum 41 | command1 = [0x6A, 0x01, 0x01, 0x0C, 0x00, 0x00, 0x0A] 42 | bus.write_i2c_block_data(0x2A, 0x92, command1) 43 | 44 | time.sleep(0.5) 45 | 46 | # PECMAC125A address, 0x2A(42) 47 | # Read data back from 0x55(85), No. of Channels * 3 bytes 48 | # current MSB1, current MSB, current LSB 49 | data1 = bus.read_i2c_block_data(0x2A, 0x55, noOfChannel*3) 50 | 51 | # Convert the data 52 | for i in range(0, noOfChannel) : 53 | msb1 = data1[i * 3] 54 | msb = data1[1 + i * 3] 55 | lsb = data1[2 + i * 3] 56 | 57 | # Convert the data to ampere 58 | current = (msb1 * 65536 + msb * 256 + lsb) / 1000.0 59 | 60 | # Output data to screen 61 | print "Channel no : %d " %(i + 1) 62 | print "Current Value : %.3f A" %current 63 | -------------------------------------------------------------------------------- /Java/PECMAC125A.java: -------------------------------------------------------------------------------- 1 | // Distributed with a free-will license. 2 | // Use it any way you want, profit or free, provided it fits in the licenses of its associated works. 3 | // PECMAC125A 4 | // This code is designed to work with the PECMAC125A_DLCT03C20 I2C Mini Module available from ControlEverything.com. 5 | // https://www.controleverything.com/content/Current?sku=PECMAC125A_DLCT03C20#tabs-0-product_tabset-2 6 | 7 | import com.pi4j.io.i2c.I2CBus; 8 | import com.pi4j.io.i2c.I2CDevice; 9 | import com.pi4j.io.i2c.I2CFactory; 10 | import java.io.IOException; 11 | 12 | public class PECMAC125A 13 | { 14 | public static void main(String args[]) throws Exception 15 | { 16 | // Create I2C bus 17 | I2CBus bus = I2CFactory.getInstance(I2CBus.BUS_1); 18 | // Get I2C device, PECMAC125A I2C address is 0x2A(42) 19 | I2CDevice device = bus.getDevice(0x2A); 20 | 21 | // Read configuration command 22 | // Header byte-1, Header byte-2, command-2, byte 3, 4, 5 and 6 are reserved, checksum 23 | byte[] readConfigCommand = {(byte)0x92, (byte)0x6A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}; 24 | populateChecksum(readConfigCommand); 25 | 26 | // Send read configuration command 27 | device.write(readConfigCommand, 0, 8); 28 | Thread.sleep(300); 29 | 30 | byte[] data = new byte[36]; 31 | // Read 3 bytes of data 32 | // TypeOfSensor, maxCurrent, noOfChannel 33 | device.read(data, 0, 3); 34 | 35 | int typeOfSensor = data[0]; 36 | int maxCurrent = data[1]; 37 | byte noOfChannel = (byte)data[2]; 38 | 39 | // Output data to screen 40 | System.out.printf("Type Of Sensor : %d %n", typeOfSensor); 41 | System.out.printf("Max Current : %d A %n", maxCurrent); 42 | System.out.printf("No Of Channel : %d %n", noOfChannel); 43 | 44 | // Read current command 45 | // Header byte-1, Header byte-2, command-1, start channel-1, stop channel-12, byte 5 and 6 reserved, checksum 46 | byte[] readCurrentCommand = {(byte)0x92, (byte)0x6A, 0x01, 0x01, noOfChannel, 0x00, 0x00, 0x00}; 47 | populateChecksum(readCurrentCommand); 48 | 49 | // Send read current command 50 | device.write(readCurrentCommand, 0, 8); 51 | Thread.sleep(300); 52 | 53 | // Read Current data 54 | // msb1, msb, lsb 55 | device.read(data, 0, noOfChannel * 3 + 1); 56 | Thread.sleep(500); 57 | 58 | for(int i = 0; i < noOfChannel; i++) 59 | { 60 | int msb1 = (data[i * 3] & 0xFF); 61 | int msb = (data[1 + i * 3] & 0xFF); 62 | int lsb = (data[2 + i * 3] & 0xFF); 63 | float current = (float)((msb1 * 65536.0) + (msb * 256.0) + lsb); 64 | 65 | // Convert the data to ampere 66 | current = current / 1000; 67 | 68 | // Output data to screen 69 | System.out.printf("Channel : %d %n", i+1); 70 | System.out.printf("Current : %.3f A %n", current); 71 | } 72 | } 73 | 74 | private static void populateChecksum(byte[] command) 75 | { 76 | byte sum = 0x00; 77 | for(int i = 0; i < command.length - 1; i++) 78 | { 79 | sum += command[i]; 80 | } 81 | command[command.length - 1] = sum; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /Arduino/PECMAC125A.ino: -------------------------------------------------------------------------------- 1 | // Distributed with a free-will license. 2 | // Use it any way you want, profit or free, provided it fits in the licenses of its associated works. 3 | // PECMAC125A 4 | // This code is designed to work with the PECMAC125A_DLCT03C20 I2C Mini Module available from ControlEverything.com. 5 | // https://www.controleverything.com/content/Current?sku=PECMAC125A_DLCT03C20#tabs-0-product_tabset-2 6 | 7 | #include 8 | 9 | // PECMAC125A I2C address is 2A(42) 10 | #define Addr 0x2A 11 | 12 | unsigned int data[36]; 13 | int typeOfSensor = 0; 14 | int maxCurrent = 0; 15 | int noOfChannel = 0; 16 | void setup() 17 | { 18 | // Initialise I2C communication as MASTER 19 | Wire.begin(); 20 | // Initialise Serial Communication, set baud rate = 9600 21 | Serial.begin(9600); 22 | 23 | // Start I2C transmission 24 | Wire.beginTransmission(Addr); 25 | // Command header byte-1 26 | Wire.write(0x92); 27 | // Command header byte-2 28 | Wire.write(0x6A); 29 | // Command 2 is used to read no of sensor type, Max current, No. of channel 30 | Wire.write(0x02); 31 | // Reserved 32 | Wire.write(0x00); 33 | // Reserved 34 | Wire.write(0x00); 35 | // Reserved 36 | Wire.write(0x00); 37 | // Reserved 38 | Wire.write(0x00); 39 | // CheckSum 40 | Wire.write(0xFE); 41 | // Stop I2C transmission 42 | Wire.endTransmission(); 43 | 44 | // Request 6 bytes of data 45 | Wire.requestFrom(Addr, 6); 46 | 47 | // Read 6 bytes of data 48 | if (Wire.available() == 6) 49 | { 50 | data[0] = Wire.read(); 51 | data[1] = Wire.read(); 52 | data[2] = Wire.read(); 53 | data[3] = Wire.read(); 54 | data[4] = Wire.read(); 55 | data[5] = Wire.read(); 56 | } 57 | 58 | typeOfSensor = data[0]; 59 | maxCurrent = data[1]; 60 | noOfChannel = data[2]; 61 | 62 | // Output data to serial monitor 63 | Serial.print("Type Of Sensor : "); 64 | Serial.println(typeOfSensor); 65 | Serial.print("Max Current : "); 66 | Serial.print(maxCurrent); 67 | Serial.println(" Amp"); 68 | Serial.print("No. Of Channel : "); 69 | Serial.println(noOfChannel); 70 | delay(300); 71 | } 72 | 73 | void loop() 74 | { 75 | for (int j = 1; j < noOfChannel + 1; j++) 76 | { 77 | // Start I2C Transmission 78 | Wire.beginTransmission(Addr); 79 | // Command header byte-1 80 | Wire.write(0x92); 81 | // Command header byte-2 82 | Wire.write(0x6A); 83 | // Command 1 84 | Wire.write(0x01); 85 | // Start Channel No. 86 | Wire.write(j); 87 | // End Channel No. 88 | Wire.write(j); 89 | // Reserved 90 | Wire.write(0x00); 91 | // Reserved 92 | Wire.write(0x00); 93 | // CheckSum 94 | Wire.write((0x92 + 0x6A + 0x01 + j + j + 0x00 + 0x00) & 0xFF); 95 | // Stop I2C Transmission 96 | Wire.endTransmission(); 97 | delay(500); 98 | 99 | // Request 3 bytes of data 100 | Wire.requestFrom(Addr, 3); 101 | 102 | // Read 3 bytes of data 103 | // msb1, msb, lsb 104 | int msb1 = Wire.read(); 105 | int msb = Wire.read(); 106 | int lsb = Wire.read(); 107 | float current = (msb1 * 65536) + (msb * 256) + lsb; 108 | 109 | // Convert the data to ampere 110 | current = current / 1000; 111 | 112 | // Output to the serial monitor 113 | Serial.print("Channel : "); 114 | Serial.println(j); 115 | Serial.print("Current Value : "); 116 | Serial.println(current); 117 | delay(1000); 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /Particle/PECMAC125A.ino: -------------------------------------------------------------------------------- 1 | // Distributed with a free-will license. 2 | // Use it any way you want, profit or free, provided it fits in the licenses of its associated works. 3 | // PECMAC125A 4 | // This code is designed to work with the PECMAC125A_DLCT03C20 I2C Mini Module available from ControlEverything.com. 5 | // https://www.controleverything.com/content/Current?sku=PECMAC125A_DLCT03C20#tabs-0-product_tabset-2 6 | 7 | #include 8 | #include 9 | 10 | // PECMAC125A I2C address is 0x2A(42) 11 | #define Addr 0x2A 12 | 13 | unsigned int data[36]; 14 | int typeOfSensor = 0; 15 | int maxCurrent = 0; 16 | int noOfChannel = 0; 17 | double current = 0.0; 18 | void setup() 19 | { 20 | // Set variable 21 | Particle.variable("i2cdevice", "PECMAC125A"); 22 | Particle.variable("typeOfSensor", typeOfSensor); 23 | Particle.variable("maxCurrent", maxCurrent); 24 | Particle.variable("noOfChannel", noOfChannel); 25 | Particle.variable("Current", current); 26 | 27 | // Initialise I2C communication as MASTER 28 | Wire.begin(); 29 | // Initialise Serial Communication, set baud rate = 9600 30 | Serial.begin(9600); 31 | 32 | // Start I2C transmission 33 | Wire.beginTransmission(Addr); 34 | // Command header byte-1 35 | Wire.write(0x92); 36 | // Command header byte-2 37 | Wire.write(0x6A); 38 | // Command 2 is used to read no of sensor type, Max current, No. of channel 39 | Wire.write(0x02); 40 | // Reserved 41 | Wire.write(0x00); 42 | // Reserved 43 | Wire.write(0x00); 44 | // Reserved 45 | Wire.write(0x00); 46 | // Reserved 47 | Wire.write(0x00); 48 | // CheckSum 49 | Wire.write(0xFE); 50 | // Stop I2C transmission 51 | Wire.endTransmission(); 52 | 53 | // Request 6 bytes of data 54 | Wire.requestFrom(Addr, 6); 55 | 56 | // Read 6 bytes of data 57 | if (Wire.available() == 6) 58 | { 59 | data[0] = Wire.read(); 60 | data[1] = Wire.read(); 61 | data[2] = Wire.read(); 62 | data[3] = Wire.read(); 63 | data[4] = Wire.read(); 64 | data[5] = Wire.read(); 65 | } 66 | typeOfSensor = data[0]; 67 | maxCurrent = data[1]; 68 | noOfChannel = data[2]; 69 | 70 | // Output data to dashboard 71 | Particle.publish("Type Of Sensor : ", String(typeOfSensor)); 72 | delay(1000); 73 | Particle.publish("Max Current : ", String(maxCurrent)); 74 | delay(1000); 75 | Particle.publish("No. Of Channel : ", String(noOfChannel)); 76 | delay(1000); 77 | } 78 | 79 | void loop() 80 | { 81 | for (int j = 1; j < noOfChannel + 1; j++) 82 | { 83 | // Start I2C Transmission 84 | Wire.beginTransmission(Addr); 85 | // Command header byte-1 86 | Wire.write(0x92); 87 | // Command header byte-2 88 | Wire.write(0x6A); 89 | // Command 1 90 | Wire.write(0x01); 91 | // Start Channel No. 92 | Wire.write(j); 93 | // End Channel No. 94 | Wire.write(j); 95 | // Reserved 96 | Wire.write(0x00); 97 | // Reserved 98 | Wire.write(0x00); 99 | // CheckSum 100 | Wire.write((0x92 + 0x6A + 0x01 + j + j + 0x00 + 0x00) & 0xFF); 101 | // Stop I2C Transmission 102 | Wire.endTransmission(); 103 | delay(500); 104 | 105 | // Request 3 bytes of data 106 | Wire.requestFrom(Addr, 3); 107 | 108 | // Read 3 bytes of data 109 | // msb1, msb, lsb 110 | int msb1 = Wire.read(); 111 | int msb = Wire.read(); 112 | int lsb = Wire.read(); 113 | current = (msb1 * 65536) + (msb * 256) + lsb; 114 | 115 | // Convert the data to ampere 116 | current = current / 1000; 117 | 118 | // Output data to dashboard 119 | Particle.publish("Channel : ", String(j)); 120 | delay(1000); 121 | Particle.publish("Current Value : ", String(current)); 122 | delay(1000); 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /.categories: -------------------------------------------------------------------------------- 1 | lang:java 2 | lang:python 3 | lang:arduino 4 | lang:particle 5 | sku:PECMAC110A_DLCT03C20 6 | sku:PECMAC110A_DLCT27C10 7 | sku:PECMAC115A_DLCT03C20 8 | sku:PECMAC120A_DLCT03C20 9 | sku:PECMAC120A_DLCT27C10 10 | sku:PECMAC1210A_DLCT03C20 11 | sku:PECMAC1210A_DLCT03CL20 12 | sku:PECMAC1210A_DLCT27C10 13 | sku:PECMAC1210A_OPCT16AL 14 | sku:PECMAC1215A_DLCT03C20 15 | sku:PECMAC1215A_DLCT03CL20 16 | sku:PECMAC1220A_DLCT03C20 17 | sku:PECMAC1220A_DLCT03CL20 18 | sku:PECMAC1220A_DLCT27C10 19 | sku:PECMAC1220A_OPCT16AL 20 | sku:PECMAC1230A_DLCT27C10 21 | sku:PECMAC1230A_OPCT16AL 22 | sku:PECMAC1250A_DLCT27C10 23 | sku:PECMAC1250A_OPCT16AL 24 | sku:PECMAC125A_DLCT03C20 25 | sku:PECMAC125A_DLCT03CL20 26 | sku:PECMAC1270A_DLCT27C10 27 | sku:PECMAC130A_DLCT27C10 28 | sku:PECMAC150A_DLCT27C10 29 | sku:PECMAC15A_DLCT03C20 30 | sku:PECMAC170A_DLCT27C10 31 | sku:PECMAC210A_DLCT03C20 32 | sku:PECMAC210A_DLCT27C10 33 | sku:PECMAC215A_DLCT03C20 34 | sku:PECMAC220A_DLCT03C20 35 | sku:PECMAC220A_DLCT27C10 36 | sku:PECMAC230A_DLCT27C10 37 | sku:PECMAC250A_DLCT27C10 38 | sku:PECMAC25A_DLCT03C20 39 | sku:PECMAC270A_DLCT27C10 40 | sku:PECMAC410A_DLCT03C20 41 | sku:PECMAC410A_DLCT27C10 42 | sku:PECMAC415A_DLCT03C20 43 | sku:PECMAC420A_DLCT03C20 44 | sku:PECMAC420A_DLCT27C10 45 | sku:PECMAC430A_DLCT27C10 46 | sku:PECMAC450A_DLCT27C10 47 | sku:PECMAC45A_DLCT03C20 48 | sku:PECMAC470A_DLCT27C10 49 | sku:PECMAC610A_DLCT03CL20 50 | sku:PECMAC610A_OPCT16AL 51 | sku:PECMAC615A_DLCT03CL20 52 | sku:PECMAC620A_DLCT03CL20 53 | sku:PECMAC620A_OPCT16AL 54 | sku:PECMAC630A_OPCT16AL 55 | sku:PECMAC650A_OPCT16AL 56 | sku:PECMAC65A_DLCT03CL20 57 | sku:PECMAC810A_DLCT03C20 58 | sku:PECMAC810A_DLCT27C10 59 | sku:PECMAC815A_DLCT03C20 60 | sku:PECMAC820A_DLCT03C20 61 | sku:PECMAC820A_DLCT27C10 62 | sku:PECMAC830A_DLCT27C10 63 | sku:PECMAC850A_DLCT27C10 64 | sku:PECMAC85A_DLCT03C20 65 | sku:PECMAC870A_DLCT27C10 66 | sku:SCCMAC110A_DLCT03C20 67 | sku:SCCMAC110A_DLCT27C10 68 | sku:SCCMAC115A_DLCT03C20 69 | sku:SCCMAC120A_DLCT03C20 70 | sku:SCCMAC120A_DLCT27C10 71 | sku:SCCMAC1210A_DLCT03C20 72 | sku:SCCMAC1210A_DLCT03CL20 73 | sku:SCCMAC1210A_DLCT27C10 74 | sku:SCCMAC1210A_OPCT16AL 75 | sku:SCCMAC1215A_DLCT03C20 76 | sku:SCCMAC1215A_DLCT03CL20 77 | sku:SCCMAC1220A_DLCT03C20 78 | sku:SCCMAC1220A_DLCT03CL20 79 | sku:SCCMAC1220A_OPCT16AL 80 | sku:SCCMAC1230A_OPCT16AL 81 | sku:SCCMAC1250A_DLCT27C10 82 | sku:SCCMAC1250A_OPCT16AL 83 | sku:SCCMAC125A_DLCT03C20 84 | sku:SCCMAC125A_DLCT03CL20 85 | sku:SCCMAC1270A_DLCT27C10 86 | sku:SCCMAC130A_DLCT27C10 87 | sku:SCCMAC150A_DLCT27C10 88 | sku:SCCMAC15A_DLCT03C20 89 | sku:SCCMAC170A_DLCT27C10 90 | sku:SCCMAC210A_DLCT03C20 91 | sku:SCCMAC210A_DLCT27C10 92 | sku:SCCMAC215A_DLCT03C20 93 | sku:SCCMAC220A_DLCT03C20 94 | sku:SCCMAC220A_DLCT27C10 95 | sku:SCCMAC230A_DLCT27C10 96 | sku:SCCMAC250A_DLCT27C10 97 | sku:SCCMAC25A_DLCT03C20 98 | sku:SCCMAC270A_DLCT27C10 99 | sku:SCCMAC410A_DLCT03C20 100 | sku:SCCMAC410A_DLCT27C10 101 | sku:SCCMAC415A_DLCT03C20 102 | sku:SCCMAC420A_DLCT03C20 103 | sku:SCCMAC420A_DLCT27C10 104 | sku:SCCMAC430A_DLCT27C10 105 | sku:SCCMAC450A_DLCT27C10 106 | sku:SCCMAC45A_DLCT03C20 107 | sku:SCCMAC470A_DLCT27C10 108 | sku:SCCMAC610A_DLCT03CL20 109 | sku:SCCMAC610A_OPCT16AL 110 | sku:SCCMAC615A_DLCT03CL20 111 | sku:SCCMAC620A_DLCT03CL20 112 | sku:SCCMAC620A_OPCT16AL 113 | sku:SCCMAC630A_OPCT16AL 114 | sku:SCCMAC650A_OPCT16AL 115 | sku:SCCMAC65A_DLCT03CL20 116 | sku:SCCMAC810A_DLCT03C20 117 | sku:SCCMAC810A_DLCT27C10 118 | sku:SCCMAC815A_DLCT03C20 119 | sku:SCCMAC820A_DLCT03C20 120 | sku:SCCMAC820A_DLCT27C10 121 | sku:SCCMAC830A_DLCT27C10 122 | sku:SCCMAC850A_DLCT27C10 123 | sku:SCCMAC85A_DLCT03C20 124 | sku:SCCMAC870A_DLCT27C10 125 | sku:I2CCMAC110A_DLCT03C20 126 | sku:I2CCMAC110A_DLCT27C10 127 | sku:I2CCMAC115A_DLCT03C20 128 | sku:I2CCMAC120A_DLCT03C20 129 | sku:I2CCMAC120A_DLCT27C10 130 | sku:I2CCMAC1210A_DLCT03C20 131 | sku:I2CCMAC1210A_DLCT03CL20 132 | sku:I2CCMAC1210A_DLCT27C10 133 | sku:I2CCMAC1210A_OPCT16AL 134 | sku:I2CCMAC1215A_DLCT03C20 135 | sku:I2CCMAC1215A_DLCT03CL20 136 | sku:I2CCMAC1220A_DLCT03C20 137 | sku:I2CCMAC1220A_DLCT03CL20 138 | sku:I2CCMAC1220A_DLCT27C10 139 | sku:I2CCMAC1220A_OPCT16AL 140 | sku:I2CCMAC1230A_DLCT27C10 141 | sku:I2CCMAC1230A_OPCT16AL 142 | sku:I2CCMAC1250A_DLCT27C10 143 | sku:I2CCMAC1250A_OPCT16AL 144 | sku:I2CCMAC125A_DLCT03C20 145 | sku:I2CCMAC125A_DLCT03CL20 146 | sku:I2CCMAC1270A_DLCT27C10 147 | sku:I2CCMAC130A_DLCT27C10 148 | sku:I2CCMAC150A_DLCT27C10 149 | sku:I2CCMAC15A_DLCT03C20 150 | sku:I2CCMAC170A_DLCT27C10 151 | sku:I2CCMAC210A_DLCT03C20 152 | sku:I2CCMAC210A_DLCT27C10 153 | sku:I2CCMAC215A_DLCT03C20 154 | sku:I2CCMAC220A_DLCT03C20 155 | sku:I2CCMAC220A_DLCT27C10 156 | sku:I2CCMAC230A_DLCT27C10 157 | sku:I2CCMAC250A_DLCT27C10 158 | sku:I2CCMAC25A_DLCT03C20 159 | sku:I2CCMAC270A_DLCT27C10 160 | sku:I2CCMAC410A_DLCT03C20 161 | sku:I2CCMAC410A_DLCT27C10 162 | sku:I2CCMAC415A_DLCT03C20 163 | sku:I2CCMAC420A_DLCT03C20 164 | sku:I2CCMAC420A_DLCT27C10 165 | sku:I2CCMAC430A_DLCT27C10 166 | sku:I2CCMAC450A_DLCT27C10 167 | sku:I2CCMAC45A_DLCT03C20 168 | sku:I2CCMAC610A_DLCT03CL20 169 | sku:I2CCMAC610A_OPCT16AL 170 | sku:I2CCMAC615A_DLCT03CL20 171 | sku:I2CCMAC620A_DLCT03CL20 172 | sku:I2CCMAC620A_OPCT16AL 173 | sku:I2CCMAC630A_OPCT16AL 174 | sku:I2CCMAC650A_OPCT16AL 175 | sku:I2CCMAC65A_DLCT03CL20 176 | sku:I2CCMAC810A_DLCT03C20 177 | sku:I2CCMAC810A_DLCT27C10 178 | sku:I2CCMAC815A_DLCT03C20 179 | sku:I2CCMAC820A_DLCT03C20 180 | sku:I2CCMAC820A_DLCT27C10 181 | sku:I2CCMAC830A_DLCT27C10 182 | sku:I2CCMAC850A_DLCT27C10 183 | sku:I2CCMAC85A_DLCT03C20 184 | sku:I2CCMAC870A_DLCT27C10 185 | sku:PECMAC330A_OPCT16AL 186 | sku:PECMAC370A_OPCT16AL 187 | sku:PECMAC3100A_OPCT16AL 188 | sku:PECMAC210A_OPCT16AL 189 | sku:PECMAC230A_OPCT16AL 190 | sku:PECMAC270A_OPCT16AL 191 | sku:PECMAC2100A_OPCT16AL 192 | sku:PECMAC620A_OPCT16AL 193 | sku:PECMAC420A_OPCT16AL 194 | sku:PECMAC320A_OPCT16AL 195 | sku:PECMAC610A_OPCT16AL 196 | sku:PECMAC220A_OPCT16AL 197 | sku:PECMAC650A_OPCT16AL 198 | sku:PECMAC450A_OPCT16AL 199 | sku:PECMAC350A_OPCT16AL 200 | sku:PECMAC250A_OPCT16AL 201 | sku:PECMAC110A_OPCT16AL 202 | sku:PECMAC130A_OPCT16AL 203 | sku:PECMAC170A_OPCT16AL 204 | sku:PECMAC1100A_OPCT16AL 205 | sku:PECMAC120A_OPCT16AL 206 | sku:PECMAC630A_OPCT16AL 207 | sku:PECMAC150A_OPCT16AL 208 | sku:PECMAC670A_OPCT16AL 209 | sku:PECMAC6100A_OPCT16AL 210 | sku:PECMAC410A_OPCT16AL 211 | sku:PECMAC430A_OPCT16AL 212 | sku:PECMAC470A_OPCT16AL 213 | sku:PECMAC4100A_OPCT16AL 214 | sku:PECMAC310A_OPCT16AL 215 | --------------------------------------------------------------------------------