AMD Xilinx KR260 Robotics Starter Kit: Democratizing Smart Robots
AMD Xilinx KR260 Robotics Starter Kit: Adaptable FPGA Robot Brains for Everyone
Last summer, we got to go hands-on with AMD Xilinx's KV260 Vision AI Starter Kit, which combined the company's K26 System-on-a-Module (SoM) with a daughterboard that had copious IO for image recognition AI. At the time, we found the experience to be a bit rough around the edges. However, it was easy to see that the setup had a lot of promise with a potent FPGA, a solid foundation of good development tools, and plenty of IO. At the time, the KR260 Robotics Starter Kit had also been freshly announced, but wouldn't be available until later.
|AMD Xilinx KR260 Robotics Starter Kit: MSRP $349
AMD Xilinx upgrades the industrial robotics market with the KR260, an affordable starter kit that packs a whole lot of I/O.
Well, that day has come. The KR260 uses the same K26 SoM as the KV260, but trades out all the camera IO for networking controllers and sensor inputs. This time the focus is on industrial robotics, which makes our job a little harder. With image recognition in the KV260 and adorable AI-powered tour guides, like we saw with NVIDIA's Jetson AGX Orin Developer Kit, the benefits are readily apparent and easy to demonstrate. With the KR260, the applications are just as practical, and perhaps even more critical for our daily lives, but maybe not quite as visual.
We'll get to that all in due time, of course, but first let's take a tour of our entrant for today...
AMD Xilinx KR260 Robotics Starter KitAs we said earlier, the star of the show is the K26 SoM, which is based on AMD Xilinx's Zynq UltraScale+ architecture. The specs here haven't changed much; it's still got the same 256,000 programmable logic cells with upwards of 1.4 TOPS of processing horsepower. This time, however, we have to focus on a different set of IO. Along with all the camera interfaces and USB IO we mentioned before, there's also up to 40 Gigabits of Ethernet connectivity, split four ways. The quad-core Arm Cortex A53 cluster and 4 GB of DDR4 memory are still present, too, but as before they're mostly there to tell the FPGA what to do, not to be a primary processor.
When we get to the daughterboard, you'll see the KR260 is vastly different from its sibling. On one edge we find a SFP+ port that can accept a 10 Gbps Ethernet adapter. Next to that we find four 12-pin Pmod interfaces which are used to connect sensors. Manufacturing sensitive components requires a controlled environment, and when combined with an array of temperature and humidity sensors, the KR260 can be quite the useful controller. There's also the standard micro-USB port for things like COM port communication with a host (typical in embedded systems) that also doubles as a USB JTAG header. At the top edge, there's even a Raspberry Pi-compatible GPIO header.
On the other side we find four RJ-45 ports connected to four Gigabit Ethernet controllers. Two of those ports are Industrial Ethernet ports, which will be important when we start talking about a network of industrial robots in a factory. Industrial Ethernet supports an extra application layer that helps the systems sync up with incredibly precise timing -- something that we can verify with an oscilloscope. The other Ethernet controllers are still useful for things like internal network connectivity and communicating with the Internet.
The back edge of the board also hosts four USB 3.0 headers and a DisplayPort output, both of which are necessary if you want to use the KR260 in a self-contained development environment as opposed to connecting it to a Linux PC running AMD Xilinx's Vitis development environment and tool chain. There's also a standard barrel connector for the included 12v power adapter. Around the back of the board is a micro SD card slot used for running an embedded Linux distro.
The choice in Linux distributions is much the same as the KV260: Petalinux Embedded or Ubuntu 22.04 LTS Desktop. Unlike our experience with the KV260, however, our KR260 review units all came with the latest firmware out of the box ready for the latest Ubuntu image. As a result, getting up and running was as simple as downloading the Ubuntu image and using balenaEtcher to write the image to the included SD card. Insert the SD card and hook up the necessary cables, and we're off to the races.
Xilinx KR260: Multi-Node Real-Time RoboticsThink about an automated (or even semi-automated) factory for a moment. Often times there are dozens of moving parts, robotic arms that move pieces around, other arms that are soldering surface-mounted components, packaging, and so on. The timing required to keep all of those operations in sync and moving as quickly as possible can be pretty overwhelming to ponder. If an arm moving boards out of a soldering station moves too quickly while another robot is installing components, suddenly you end up with ruined parts and burned PCBs. Or if an arm goes to grab a part and from another robot and it's not there, suddenly perfectly serviceable pieces are scattered about the environment.
Like anything else, this requires timing, and it's probably unsurprising to discover it's one part software and one part hardware. On the hardware side, the KR260's motherboard has that pair of Industrial Ethernet ports that can lock down the timing and ensure there's no jitter in frame delivery, which keeps everything in sync. Processing those packets, on the other hand, is the software's responsibility. The 802.1AS protocol is more commonly known as Time-Sensitive Networking, and it's used to lock down time synchronization between different clients. If each board only had one of these, it'd be enough to get by, but you'd need expensive Time-Sensitive switches that also implement this protocol.
But with two ports on each KR260, it's possible to build a very precise network with all of the clients in perfect sync without any extra hardware beyond the Gigabit Ethernet ports and the K26 SoM's FPGA. Remember that the KR260, like the KV260 before it, runs a Linux distribution, either Petalinux or Ubuntu. Running on top of Linux, the software side of our robotics network relies on Robot Operating System v2, more commonly known as ROS 2.
ROS 2 is a set of libraries used to build robotics applications. AMD Xilinx provides some accelerator applications built on that foundation, including the TSN application we're about to dig into. The Multi-Node TSN Accelerator programs the FPGA logic required to keep all of the various robots in sync, freeing up the other resources of the K26 SoM to actually control the factory.
AMD Xilinx told us that in their time at ROSCon in October of last year, there was a lot of interest in synchronizing multiple functions to keep a factory floor operating at full capacity without having products wind up in the trash bins due to nodes falling out of sync. Fortunately, the company came prepared, as there has been software in the works to make this easy to do.
Why Time Sensitive Networking MattersAs AMD Xilinx walked us through their TSN and multi-node communication story, it became apparent that for a factory to run at peak efficiency, the intricate timing required to keep everything moving can't stop and wait for all nodes to acknowledge a command and let it run. Instead, every piece of hardware has to lock in step like a marching band performing a halftime show at a college bowl game.
Basically, TSN is the Internet of Things on a grand scale. IoT can be a bit of a dirty word in the consumer space as devices fall out of support and have unpatched vulnerabilities, or spy on their users unwittingly. However, on an industrial level, nodes need to be able to all talk to each other. It's literally an Internet of Things that rely on synchronization and monitoring to keep the industrial complex moving.
The time-sensitive part of the TSN name makes it useful for plenty of other use cases as well, from running your car's infotainment devices and safety features to distributed monitoring for environmental control. AMD Xilinx has been at the forefront of this sort of thing for years, and it's interesting to look back on this presentation from 2017 and see how much of what the company (Xilinx at the time) predicted would be a trend and how much of that has come to fruition in more recent times.
The KR260 Robotics Starter Kit Development ExperienceAs we alluded to, the AMD Xilinx KR260 Robotics Starter Kit can run a couple of Linux distributions. Despite the existence of Ubuntu Desktop, however, don't mistake this for a standalone developer box. This unit is meant for embedded development across a USB cable and on a dedicated Linux PC. All of the development tools, like Vitis, are meant to run on a host PC. That Linux host then connects to the KR260 over USB COM ports to program the SoM. That means the KR260 workflow is familiar for those who are used to working with other embedded platforms, like Terasic's DE10 series, which you might find in a MiSTer build.
To be clear, this is the common workflow that embedded engineers have been using since the dawn of time. We don't think the embedded space will be like this always and forever, though, as NVIDIA's Jetson AGX Orin Developer Kit demonstrated. However, that's a $2,000 tool with a much higher power draw and extra resources, so it's not exactly fair to compare it to the $349 KR260. However, we think that students in particular will want to have the option of coding directly on the device rather than the typical cycle of code, compile, and push new builds across a wire.