Listen to this article
Scythe Robotics released its first open-source software stack. CANfetti is a CANopen-compliant stack developed to overcome the limitations of existing libraries. Written and refined over the past several years by Scythe’s firmware and software teams, CANfetti significantly lowers the barrier to entry with an open-source, easy-to-use, and production-grade library for robust CANopen communications.
“Given the complex communication needs across the range of specialized components in Scythe M.52, we knew we’d have to leverage a higher level CAN protocol,” said Matt Quick, lead firmware engineer at Scythe. “A number of our vendors already support CANopen, making it a great fit for us. But as advantageous as CANopen is, the available open source libraries were frankly a headache to integrate and had severe functional limitations, so we built our own solution.”
The Scythe team found the APIs and designs of current open-source frameworks too constraining for integrating into its M.52 autonomous lawnmower in a consistent manner across both firmware and software.
To overcome the rigidity of other options, CANfetti introduces the ability to use dynamic Object Dictionary types that allow easier integration of complex runtime behavior. And with a significantly more flexible API, CANfetti provides engineers with a drop-in CANopen stack that doesn’t get in the way and lets them build their system around it.
Most open-source CANopen libraries are no longer actively being developed, with many abandoned libraries sitting in various states of disrepair and becoming rapidly outdated without community or commercial support. CANfetti represents Scythe’s first step in its commitment to updating and expanding the open-source firmware ecosystem.
“Creating a much more robust CANopen stack at Scythe allowed us to integrate critical components that weren’t previously compatible,” said Davis Foster, Scythe’s head of hardware.
“With CANfetti, we’ve been able to integrate more sophisticated components – like advanced sensors, battery modules, and motor controllers – into M.52, resulting in much better machine performance. By publishing CANfetti, we hope to support more companies that are building exciting, cutting-edge machines of all kinds and promote innovation across the field of robotics at large.”
Learn more about the motivation behind and benefits of CANfetti on the Scythe Robotics blog and find CANfetti on GitHub.
Zach Goins, senior autonomy software engineer at Scythe Robotics, will discuss Scythe’s decision to use Rust for software development during his talk at the Robotics Summit & Expo called “Oxidizing Your Software Development: Rust for Robotics.” The talk will take place at the Boston Convention Center on May 11, 2023, at 2:00 PM.