User Tools

Site Tools


papalink-usbcont

PapaLink USB Controller

PapaLink USB Controller is a device that sits between your PC or a laptop and the PapaLink bus. It allows you to control your PapaLink devices and read and write data on them.

Drivers, API and software

We currently officially support Windows and Linux. MacOSX support is planned for 2025. Software may already work with minimal changes on MacOSX and BSDs but we currently depend on community efforts to test this.

The controller requires driver software to operate. We provide a Python API that allows you to control PapaLink devices from your own programs and scripts, and integrate all the other packages that the Python ecosystem has to offer. Python is a widely used, mature, open-source, easy-to-use programming language that allows even inexperienced programmers to write great programs.

For simple experiments and for just testing PapaLink devices, we also provide a free graphical user interface - PapaLinkGUI - that makes controlling devices easy. No coding required. It is based on the PapaLink Python API.

We are planning for C API that would make it easy to interface PapaLink USB Controller from virtually any programming language. However, PapaLink still under active development and at this stage we avoid spending duplicate resources on this matter. PapaLink is open-source, however, and we are there not to stop you if someone were to beat us in our game ;)

Hardware

The underlying micro-controller in the PapaLink USB Controller is Arduino Nano Every. It has a USB 2.0 micro-USB interface and when pluggen into the host device, it shows up as a USB serial device creating a virtual COM port on your OS. Thanks to this standard behaviour no dedicated kernel driver is needed. However, it is not easy to interface your program directly with the PapaLink AVR Controller Firmware running on the USB Controller. That is where the PapaLink Python API comes to help.

The Arduino board is wrapped in a 3D-printed PET-G casing. In one end you have a 3-pin PapaLink male plug that fits into the female socket present in PapaLink hubs and devices. 3-pins? One pin is missing and that is the 12 V power pin - The USB controller draws no power from the PapaLink bus but runs from the USB port. This design choice is to isolate and prevent the PapaLink 12 V power supply from frying your PC.

Firmware

The Arduino board runs a firmware that translates incoming UART messages to PapaLink protocol messages carried over the I2C protocol to the connected devices. This firwmare is called PapaLink AVR Controller Firmware.

papalink-usbcont.txt · Last modified: 2024/09/19 12:38 by admin