diff --git a/PiCowbell_CAN_Bus_Examples/CircuitPython_PiCowbell_CAN_Bus/code.py b/PiCowbell_CAN_Bus_Examples/CircuitPython_PiCowbell_CAN_Bus/code.py new file mode 100644 index 000000000..0b4eb2c30 --- /dev/null +++ b/PiCowbell_CAN_Bus_Examples/CircuitPython_PiCowbell_CAN_Bus/code.py @@ -0,0 +1,36 @@ +# SPDX-FileCopyrightText: Copyright (c) 2020 Bryan Siepert for Adafruit Industries +# +# SPDX-License-Identifier: MIT +'''Simple Test for the PiCowbell CAN Bus with Raspberry Pi Pico''' + +from time import sleep +import board +import busio +from digitalio import DigitalInOut +from adafruit_mcp2515.canio import Message, RemoteTransmissionRequest +from adafruit_mcp2515 import MCP2515 as CAN + + +cs = DigitalInOut(board.GP20) +cs.switch_to_output() +spi = busio.SPI(board.GP18, board.GP19, board.GP16) + +can_bus = CAN( + spi, cs, loopback=True, silent=True +) # use loopback to test without another device +while True: + with can_bus.listen(timeout=1.0) as listener: + + message = Message(id=0x1234ABCD, data=b"adafruit", extended=True) + send_success = can_bus.send(message) + print("Send success:", send_success) + message_count = listener.in_waiting() + print(message_count, "messages available") + for _i in range(message_count): + msg = listener.receive() + print("Message from ", hex(msg.id)) + if isinstance(msg, Message): + print("message data:", msg.data) + if isinstance(msg, RemoteTransmissionRequest): + print("RTR length:", msg.length) + sleep(1)