a future with
  • smarter electronics
  • iolinker

Not just a low cost FPGA board. THE ultimate IO interface for your Arduino & others.

iolinker is the IO multiplexing approach of the future, and simplifies any development so far that it will save you hours at first, then days and in the end maybe weeks. Simple to use and optimized for low cost and high power. Come enjoy the future of embedded high-tech with us.

A disruptive technology.

Hearty Zarsuela, chip researcher

Full of features. Full of possibilities.

  • Reprogrammable FPGA board with Lattice LCMXO3L-4300E-5UWG81CTR50 FPGA
  • Preprogrammed and usable out of the box as your IO interface of choice.
  • 49 GPIOs for PWM or IO extension usage, VCCIO is 3.3V.
  • Boards can be connected in parallel, to create endless IO extension.
  • IOs can be linked to each other, i.e. you tell the FPGA to connect them, and it forwards the input signal from one pin to another. (Read more about the iolinker chip function.)
  • UART, SPI or I2C interfaces are available.
  • We aim to create the ultimate IO interface for you. If you have feature requests, please share them with us.

Develop faster.
Develop more thoroughly.
Shorten prototype expenses with schematics in software, ideal for good version control.
Create more flexible bus interfaces.
Develop IO intensive applications quickly.
Integrate automatic self tests in your hardware.
Don’t throw away hardware, but change the schematic in your software.

Pure beauty in hardware.

Pure beauty in software.

Use our open source library on GitHub to integrate iolinker boards into your Arduino, Raspberry Pi, PC application or something entirely different — within minutes.

#include <IOLinker.h>

IOLinker iolinker;

void setup() {
    Serial.begin(IOLINKER_BAUDRATE); // Use Serial1 on Arduino Leonardo!
    while (!Serial) {
            ; // wait for serial port to connect. Needed for Leonardo only

    /* Connect to iolinker */

    /* P1 and P2 are outputs, P3 to P49 are inputs */
    iolinker.setPinType(IOLinker::IOLINKER_OUTPUT, 0);
    iolinker.setPinType(IOLinker::IOLINKER_OUTPUT, 1);
    iolinker.setPinType(IOLinker::IOLINKER_INPUT, 2, 48);

    /* Set P1 and P2 high */
    iolinker.setOutput(true, 0, 1);

    /* Output a PWM signal on P1 */
    iolinker.pwm(50, 0);

    /* Connect P2 to P3 */
    iolinker.link(2, 1);

Don’t wanna write code?

Use the iolinker designer for code generation. It all happens automatically, and creates C++ or Bash sources for you.
Soon available open source for live configuration on Raspberry Pis!


Your Cart