{"title":"COMMU Module Extend RS485/TTL CAN/I2C Port","handle":"commu-module-extend-rs485-ttl-can-i2c-port","url":"/products/commu-module-extend-rs485-ttl-can-i2c-port","description":"   Description COMMU&nbsp;is a Muti-Communication-Interface-Converter. Integrated with 2IIC, 1TTL, 1CAN, 1RS485. Apparently COMMU has packed with most of series communications. Default connection: TTL - UART0, RS485 - UART2. Since ESP32 pin map is allowed for re-assign, you can re-assign or re-mapping the TTL or RS485 interface to other pins.  Product Features  2x I2C Interface 1x CAN Interface 1x RS485 Interface 1x TTL Interface CAN controller: MCP2515-1/SO RS485 Transceiver: SP3485EN-L/TR   Kit includes 1x M5Stack COMMU Module Documents Datasheet  SP3485 MCP2515  Learn Example Arduino IDE CAN communication These are two COMMU examples for CAN communication, tansmitter and receiver. Press Button A to sent the message, and display the received message on the screen. Step 1: Copy&nbsp;MCP_CAN_lib file&nbsp;to&nbsp;C:\\Users\\&lt;user_name&gt;\\Documents\\Arduino\\libraries,&nbsp;Step 2: Open project file&nbsp;commu_can_transmitter.ino, and&nbsp;commu_can_receiver.ino&nbsp;Step 3: Compile and upload the two project to two M5Cores separatly. Below code is incomplete. If you want the complete code, please click&nbsp;here. /*     commu_can_transmitter.ino */ #include &lt;M5Stack.h&gt; #include &lt;mcp_can.h&gt; #include \"m5_logo.h\"  #define CAN0_INT 15 // Set INT to pin 2 MCP_CAN CAN0(12);   // Set CS to pin 10  // declaration byte data[8] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07};  // initialization M5.begin(); CAN0.begin(MCP_ANY, CAN_1000KBPS, MCP_8MHZ); /* Change to normal mode to allow messages tobe transmitted */ CAN0.setMode(MCP_NORMAL);  // send data CAN0.sendMsgBuf(0x100, 0, 8, data);  /*     commu_can_receiver.ino */ #include &lt;M5Stack.h&gt; #include &lt;mcp_can.h&gt; #include \"m5_logo.h\"  #define CAN0_INT 15 // Set INT to pin 2 MCP_CAN CAN0(12);   // Set CS to pin 10  // declaration byte data[8] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07};  // initialization M5.begin(); /* Initialize MCP2515 running at 16MHz with a baudrate of 500kb/s */ /* and the masks and filters disabled. */ CAN0.begin(MCP_ANY, CAN_1000KBPS, MCP_8MHZ); /* Set operation mode to normal so theMCP2515 sends acks to received data. */ CAN0.setMode(MCP_NORMAL); pinMode(CAN0_INT, INPUT);// Configuring pin for /INT input  // read data CAN0.readMsgBuf(&amp;rxId, &amp;len, rxBuf);   More information PinMap CANESP32 ChipCAN_CSGPIO12CAN_INTGPIO15CAN_SCKGPIO18CAN_MISOGPIO19CAN_MOSIGPIO23I2C InterfaceESP32 ChipIIC_SDAGPIO21IIC_SCLGPIO22 Schematic  ","vendor":"Little Bird","product_type":"physical","in_stock":false,"options":[],"variants":[{"id":4833,"title":"Default Title","sku":"M5-M011","price":24.49,"compare_at_price":0.0,"on_sale":false,"in_stock":false,"available_quantity":0,"option1":"Default Title"}]}