CyphalRobotController07/CAN

January 22, 2024 ยท View on GitHub

CyphalRobotController07/CAN

Main controller board for the T07 robot platform and similar robots with a Raspberry Pi Pico to connect via CAN using OpenCyphal and UCANPHY Micro

CyphalRobotController07/CAN rendering

features

  • power supply for the whole system
    • 5 V for the cyphal network and embedded board (Raspberry Pi or Beagle Bone Black)
    • switchable output of battery voltage to supply additional hardware
    • switchable output of battery voltage to supply LED or head lamp
    • Input voltage up to 40 V
    • Blade type fuse (ATO fuse)
    • Power Pole connector
    • measurement of input voltage and current with TI INA232
  • control 2 DC motors
    • 2 quad encoders for motors
    • emergency stop
    • Infineon IFX007T drivers, up to 40V and 55A
  • 3 ultra sonic sensors HC-SR04 (not implemented yet)
  • I2C bus
    • qwiic connector
    • 9 axis IMU Bosch BNO055 via I2C
    • back-EMF measurement with ADS1015
    • EEPROM 24LC64
  • serial port for optional GNSS
  • Neopixel for status
  • CAN with Cyphal support

Firmware

Pin Usage

Raspberry Pi Pico (CN1)

PinPin NameSignalDirectionDescription
1GP0UART0_TXoutputreserved for future use (GNSS)
2GP1UART0_RXinputreserved for future use (GNSS)
3GNDGNDGND
4GP2QUAD0inputQuad encoder A channel 0
5GP3QUAD1inputQuad encoder A channel 1
6GP4I2C0_SDAbidirfor eeprom and qwiic connector
7GP5I2C0_SCLoutputfor eeprom and qwiic connector
8GNDGNDGND
9GP6PWM4outputmotor pwm output 4
10GP7PWM3outputmotor pwm output 3
11GP8PWM2outputmotor pwm output 2
12GP9PWM1outputmotor pwm output 1
13GNDGNDGND
14GP10INH34outputmotor inhibit output 3 and 4
15GP11INH12outputmotor inhibit output 1 and 2
16GP12EM_STOPinputemergency stop
17GP13NEOPIXELoutputNeopixel
18GNDGNDGND
19GP14QUAD2inputQuad encoder B channel 0
20GP15QUAD3inputQuad encoder B channel 1
21GP16SPI_MISOinputSPI for MCP2515
22GP17MCP2515_CSoutputSPI for MCP2515
23GNDGNDGND
24GP18SPI_CLKoutputSPI for MCP2515
25GP19SPI_MOSIoutputSPI for MCP2515
26GP20MCP2515_INTinputinterrupt for MCP2515
27GP21OUTPUT0outputpower output 0
28GNDGNDGND
29GP22OUTPUT1outputpower output 1
30RUNRESETinputReset for Board
31GP26ANALOG_INPUT0analog inputanalog input 0
32GP27ANALOG_INPUT1analog inputanalog input 1
33GNDGNDGND
34GP28ANALOG_INPUT2analog inputanalog input 2
35ADC_VREFanalog
363V3 (OUT)3V3-railpowersupply voltage for board
373V3_ENinput
38GNDGNDGND
39VSYSpower
40VBUS5V-railpowersupply voltage for board

I2C devices

addressdevicedescription
0x40INA232voltage and current measurement
0x48ADS1015motor measurement
0x4ABNO055IMU
0x5024LC64eeprom for storage of settings

Pinout

I2C (J1)

compatible to the Sparkfun qwiic standard (https://www.sparkfun.com/qwiic). JST SH 1mm 4-pin.

pin numbersignal
1GND
2+3V3
3I2C_SDA
4I2C_SCL

serial (J3)

JST SH 1mm 4-pin.

pin numbersignal
1GND
2+3V3
3SER_TX
4SER_RX

neopixel connector (J4)

connector for Adafruit Neopixel RGB leds (https://learn.adafruit.com/adafruit-neopixel-uberguide/the-magic-of-neopixels). JST PH 2mm 3-pin.

pin numbersignal
1neopixel
2+5V
3GND

CAN (J5 and J6)

UCANPHY Micro connector, according to the UCANPHY_Specification (https://forum.opencyphal.org/t/cyphal-can-physical-layer-specification-v1-0/1471). JST GH 1.25mm 4-pin.

pin numbersignal
1+5V
2CANH
3CANL
4GND

emergency stop (J7)

screw terminal 3.81 mm 2-pin.

pin numbersignal
1EM_STOP
2GND

motor output (J8 and J9)

screw terminal 3.81 mm 2-pin.

pin numbersignal
1MOTOR+
2MOTOR-

power input (J10 and J11)

screw terminal 3.81 mm 2-pin or Anderson Power Pole.

pin numbersignal
1+BATT
2GND

power output (J12)

screw terminal 3.81 mm 2-pin.

pin numbersignal
1+5V
2GND

switched power output (J13 and J14)

screw terminal 3.81 mm 2-pin.

pin numbersignal
1+OUT
2GND

quad encoder input (J15 and J16)

This is a regular 0.1-inch pin header.

pin numbersignal
1GND
2+3V3
3QUAD_A
4QUAD_B

analog input (J17)

This is a regular 0.1-inch pin header.

pin numbersignal
1GND
2+3V3
3ANALOG_INPUT2
4ANALOG_INPUT1
5ANALOG_INPUT0

power output (J18)

screw terminal 3.81 mm 2-pin.

pin numbersignal
1+BATT
2GND

combined motor and encoder output (J19 and J20)

This is a 0.1-inch header. It should fit to thid motor: https://precisionminidrives.com/product/37mm-gear-motor-with-encoder-%e2%88%92-50mm-type-model-nfp-jgb37-3530-en

pin numbersignal
1MOTOR+
2MOTOR-
1GND
2+3V3
3QUAD_A
4QUAD_B

PCB

Top

CyphalRobotController07/CAN PCB top

Bottom

CyphalRobotController07/CAN PCB bot