//Reads all traffic on CAN0 and forwards it to CAN1 (and in the reverse direction) but modifies some frames first. // Required libraries #include "variant.h" #include //Leave defined if you use native port, comment if using programming port #define Serial SerialUSB void setup() { Serial.begin(115200); // Initialize CAN0 and CAN1, Set the proper baud rates here Can0.begin(CAN_BPS_250K); Can1.begin(CAN_BPS_250K); Can0.watchFor(); } void sendData() { CAN_FRAME outgoing; outgoing.id = 0x400; outgoing.extended = false; outgoing.priority = 4; //0-15 lower is higher priority outgoing.data.s0 = 0xFEED; outgoing.data.byte[2] = 0xDD; outgoing.data.byte[3] = 0x55; outgoing.data.high = 0xDEADBEEF; Can0.sendFrame(outgoing); } void loop(){ CAN_FRAME incoming; static unsigned long lastTime = 0; if (Can0.available() > 0) { Can0.read(incoming); Can1.sendFrame(incoming); } if (Can1.available() > 0) { Can1.read(incoming); Can0.sendFrame(incoming); } if ((millis() - lastTime) > 1000) { lastTime = millis(); sendData(); } }