USB-C Controller

Hey Frank,

Then it is likely that you haven’t bought or used a Desktop Computer in the last ten years. Even with USB 3.x, the USB-A socket is still the standard for host side (and the USB-B socket for the device side).

The Onefinity Controller, which is based on Buildbotics Controller, contains a Raspberry Pi 3, wich is a single-board desktop computer.

USB-C ports are found on Android smartphones and tablets, and increasingly on small laptops, but there only in addition to USB-A sockets. Also USB-C is not a USB standard, but a Connector standard. It is designed to serve for many purposes, of which USB is only one. It was developed to meet the demands of smartphone manufacturers to have a connector that is very small, rotation-symmetrical and serves for multiple technologies in one connector (like e.g. USB, DisplayPort, MHL, Thunderbolt, HDMI or VirtualLink).

So a CNC Controller Manufacturer may ask: For what would I need that? Is it worth the cost?

The USB host adapter that is built into the Raspberry Pi 3 is the Microchip LAN7500. If you want to replace this host adapter by one that supports USB-C ports, it is the question how to attach it to the system.

The problem is, on Raspberry Pis up to model 3, the USB host adapter and other peripheral devices are not attached to the CPU directly, but over a peripheral controller, and even this peripheral controller is not connected directly to the ARM Cortex-A53 CPU, but to the VideoCore IV. Therefore peripheral devices are relatively slow:

Raspi_Broadcom_mtk_IG__50pct

Schematic structure of the Raspberry Pi

Contrary to what one might expect, it is not the ARM CPU that leads the Raspis, but the VideoCore multimedia processor - and that is also the limiting factor.

Source: Überreife Himbeere - Wie es mit dem Raspberry Pi weitergeht - Heise c’t 8/2016 S. 148

It’s only with Rasperry Pi 4 that USB and Ethernet host adapters are connected directly to the CPU over PCIe, allowing for USB 3.0 including USB On-The-Go and Gigabit Ethernet.

As you see, it’s not that simple. And if you ask, why not switch to Raspberry Pi 4 then? I think the answer of the manufacturer of Onefinity CNC or of Buildbotics.com Controller would be: “This is a CNC controller. What do you expect from a CNC controller?” The files that you want to upload to this CNC controller using a USB flash drive or over WiFi or Ethernet are G-code files in plain ASCII. That are small files, interface speed practically does no matter at all, so USB 2.0, WiFi 802.11 b/g/n (with up to 72.2 Mbps) and Fast Ethernet (100 Mbps) are fast enough. And a CNC Controller is no smartphone. There are no problems of space on the back panel. The designer of a CNC Controller would always use hardware that just fits the needs of such a device in order to calculate final price of its product. And even if the Raspberry Pi 3 inside the CNC Controller is replaced one day by Raspberry Pi 4: It has not USB-C sockets either. Except for the power supply, but this socket is not accessible from the outside of the CNC Controller.

2 Likes