I want to propose that we designate a set of dev kits as the official reference hardware maintainers should use when developing embedded versions of UAVCAN. The reasons for standardizing are:
-
To avoid getting distracted by supporting a wide range of MCUs – The reference implementations should be device agnostic but the limited amount of time the maintainers have should be spent on the core implementation and not ports to various targets.
-
Make it possible to automate on-target testing – If we have too many supported targets it will become onerous to support a full test automation matrix build.
-
Simplify development – Too many targets supported by a given reference implementation will make testing changes difficult.
Remember that the community is free to contribute any port that is of adequate quality and for which the contributer makes some effort to provide ongoing support.
And onto my proposals:
Requirements
- The MCU shall contain a single Cortex M0+, M4, M7, M23, M33, or M35P core.
- The MCU shall have at least two ISO compliant CAN-FD peripherals.
- The development kit shall have two CAN transceivers connected to the MCU.
Candidates
The ST micro STM32H743 Nucleo-144 (~$25 USD – https://www.digikey.com/product-detail/en/stmicroelectronics/NUCLEO-H743ZI/497-17786-ND/7809236). We like this board’s peripherals but the devkit does not have CAN transceivers. If we standardize on this board we’ll have to develop a CAN shield for it (not sure if Zubax can provide this?)
@iain.galloway , does NXP have an inexpensive devkit that has an M0+ or M4 core with 2 CAN-FD peripherals and transceivers? If the part was also automotive rated this would be ideal.
The Atmel V71 xplained (https://www.digikey.com/products/en/development-boards-kits-programmers/evaluation-boards-embedded-mcu-dsp/786?k=v71%20ultra) is very expensive (~$200USD) but does come with a single CAN transceiver. This is also a crazy powerful MCU being a 300MHz M7 core. I’m concerned that we would not catch performance problems if we used something this beefy as a reference. That said, it leaves a lot of room for sophisticated, on-target testing.
The Atmel C21 xplained (https://www.digikey.com/product-detail/en/microchip-technology/ATSAMC21-XPRO/ATSAMC21-XPRO-ND/5256707) is much cheaper and does come with a CAN transceiver. This is an M0+ core so it would keep us honest (I wonder how much money Atmel saves by removing the e from explained?).