Small PCB that fits onto the header of a Controllino-MEGA allowing it to interface with CAN devices through SPI. Does not take up any output/input pins!
Utilises the MCP2515 arduino library. See futher information in the examples folder.
#include <Controllino.h>
#include "mcp2515.h"
#define BIT_RATE CAN_500KBPS
#define NODE_ID 0x0A // Node-ID = 10
#define FUNCTION_CODE 0x180 // CANopen PDO1_TX
// Setup MCP2515 lib with SPI chip-select pin
MCP2515 can(CONTROLLINO_PIN_HEADER_SS);
void setup() {
Serial.begin(115200);
Controllino_RTC_init();
can.reset();
can.setBitrate(BIT_RATE, MCP_8MHZ);
can.setNormalMode();
}
void loop() {
can_frame frame{};
frame.can_dlc = 8;
frame.can_id = FUNCTION_CODE | NODE_ID;
if (can.sendMessage(&frame) == MCP2515::ERROR_OK) {
Serial.println("TX");
} else {
Serial.println("ERR");
}
delay(5000);
}
The bill-of-materials can be found here. The componets only cost $12 AUD ($8 USD).
Compress the gerber folder and upload to your PCB manufactuer of choice (e.g. jlcpcb or PCBway etc.). As the components are SMD (0805 smallest size) get a stencil (top-side of PCB only) to make assembly easier. PCB plus stencil is roughly $15 AUD ($10 USD).
Controllino-CAN is licenced under the GNU General Public Licence v3.0 as outlined in the LICENCE.