Skip to the content
4 layers72.8 × 82.1 mmHalberd v2, the printed circuit board in 3D

The Halberd coupling (paper), named after its characteristic PCB shape, is a replacement of the Robotiq I/O Coupling enhanced with a Nina B301 microcontroller, developed at IDLab-AIRO, Ghent University (Belgium), imec.

Size
72.8 × 82.1 mm
Copper layers
4
Thickness
1.6 mm
Parts
77
Nets
92
Pads
380
Tracks, vias
827, 226
Pours
337
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
30 Aug 2023
Updated
21 Mar 2026

Overview

Halberd v2 is an open-source printed circuit board by RemkoPr, from the RemkoPr/airo-halberd repository on GitHub. It is a 4-layer board of 72.8 × 82.1 mm with 77 parts on 92 nets, routed with 827 tracks and 226 vias.

It is built around the AP63300WU, TXB0102DCU and AP2112K-3.3TRG1, with the BSS159NH6327XTSA2, GT-USB-7025 and LTST-C170GKT among its other parts. Its parts include 20 resistors, 14 capacitors, 12 connectors, 7 transistors and 6 ICs.

Main components

9

README

README.md

airo-halberd

The Halberd coupling (paper), named after its characteristic PCB shape, is a replacement of the Robotiq I/O Coupling enhanced with a Nina B301 microcontroller, developed at IDLab-AIRO, Ghent University (Belgium), imec. It is particularly suited towards robotic manipulation augmented by tactile sensing in the fingertips: the tactile sensors can be read from the robot wrist, without the need for external power or data cables.

This repo contains KiCad board files and SolidWorks casing design files of the project. See below for a guide from ordering to usage.

Features

Our coupling features the safety circuit present on the original Robotiq I/O Coupling, augmented with a Nina B301 microcontroller unit (MCU), capable of communicating wirelessly over Bluetooth Low Energy (BLE) and Wi-Fi. Eight analog pins and 15 digital pins are exposed. An SPI, UART, and two I2C interfaces are supported by a subset of the digital pins. The board is Arduino compatible and programmable over a micro USB interface.

Ordering & Assembly

The PCB was designed for JLCPCB's JLC04161H-7628 impedance controlled board material, with 1 oz. outer copper weight, 0.5 oz. inner copper weight, and 1.6mm board thickness. The reason why this matters is the use of an external antenna: a short trace connects the antenna (ANT) pin of the Nina B301 to a u.FL connector. This trace must be matched at 50Ω. Using JLCPCB's impedance calculator, the width of the trace was determined to be 0.350mm for the given board specifications. If you are unable to order a board with these specifications, you may suffer from degraded antenna performance, though the effect is suspected to be small as the antenna trace is only 0.75mm long (compare this to a wavelength of 122.45mm at 2.45GHz). Note that the board width of 1.6mm is essential for the pogo pin connection to the gripper.

A bill of materials (BOM) is included in main folder of this repo, mostly automatically generated from KiCad for ordering at JLCPCB, supplemented with some mechanical parts. For the production files you can use to order assembly at JLCPCB, see KiCad > halberd_v2 > production. The cable connecting the coupling to the robot is hard to find: it's an M8 8-pole female 90° circular connector. Many manufacturers provide this, however, usually the pin aligment is along the cable direction, while the Robotiq cable has a 90° angle between the pin aligment divet and the cable direction. So far, I've only found amissiontech to be willing to produce small volumes of this specific connector. Structural parts can be 3D printed in standard PLA and are found in the SolidWorks/parts_to_print folder. The below graphic indicates how the different parts fit together.

Usage

Programming

To program the board, first install the airo-nrf52840-boards package in your Arduino IDE. Compile ("Verify") the standard Blink example (File > Examples > 01.Basics > Blink) for the Halberd (I/O Coupling) board. Find the Blink.ino.with_bootloader.hex file by marking compilation in File > Preferences > Show verbose output during and monitoring the console output after compilation. Flash the .hex onto the board using a JLink EDU Mini, which you can connect to the board via the provided 10-pin 1.27mm pitch header next to the Nina-B301. This will automatically flash the Arduino bootloader, and the green LED should start blinking. From this point on you can program the board straight from the Arduino IDE over a µUSB connection.

Debugging

If you are connected to a UR robot via an ethernet connection, the Arduino IDE might show the error Method name - "openPort(); Exception type - Port not found when you try to upload. To avoid this, disconnect the ethernet cable, restart the Arduino IDE, and upload the code. You can now reconnect the ethernet cable.

Mounting

The Halberd coupling is mounted to your robotic arm just like the Robotiq I/O Coupling would be, similarly your Robotiq gripper is bolted to the Halberd just like it would be to the Robotiq I/O Coupling. The Halberd has the same height as the Robotiq I/O Coupling, so there's no need to redefine the robot's tool centre point. Also, the risk of self-collisions is no greater than when using the Robotiq I/O Coupling.

Application notes

  • When reading analog signals, it's best to not use D7-D13 for high-frequency switching (e.g. PWM): the digital noise could couple to the analog traces.
  • SERVO0-SERVO3 (also named D0-D3) are level shifted to 5V. The level shifter is bidirectional, so these pins can be used as digital inputs as well. However, the level shifter has a 4k series resistor at it's 5V output, making the D0-D3 pins less suited to drive resistive loads as a digital output: the HIGH output voltage would be divided accross this series resistor and the actual load.

Parts

77
QtyValueFootprintReferences
522µFCapacitor_SMD:C_0805_2012MetricC1, C2, C3, C8, C9
5TestPointTestPoint:TestPoint_Pad_D1.5mmTP1, TP2, TP3, TP4, TP5
41987724robotiq_wrist_coupling:1987724J3, J4, J5, J6
47k32Resistor_SMD:R_0603_1608MetricR3, R5, R7, R8
3470kResistor_SMD:R_0603_1608MetricR15, R16, R17
3BSS138K-13Package_TO_SOT_SMD:SOT-23-3Q1, Q3, Q4
3TestPointTestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mmTP6, TP7, TP8
2100kResistor_SMD:R_0603_1608MetricR9, R11
2100nFCapacitor_SMD:C_0603_1608MetricC11, C14
21nCapacitor_SMD:C_0603_1608MetricC5, C6
2330Resistor_SMD:R_0603_1608MetricR2, R6
25.1kResistor_SMD:R_0603_1608MetricR13, R18
2DIODErobotiq_wrist_coupling:DO-219ACD4, D5
2LTC4411ES5-TRMPBFPackage_TO_SOT_SMD:TSOT-23-5U1, U2
2RN2903robotiq_wrist_coupling:US6_RN2903Q2, Q5
2TXB0102DCUPackage_SO:VSSOP-8_2.3x2mm_P0.5mmU3, U4
10Resistor_SMD:R_0603_1608MetricR12
110PIN_HEADERrobotiq_wrist_coupling:10PIN_1.27PITCHJ9
110PIN_HEADERrobotiq_wrist_coupling:HOLE_2x5J11
110PIN_HEADERrobotiq_wrist_coupling:10PIN_SPRING_HEADERJ10
110uResistor_SMD:R_0805_2012MetricC12
112PIN_SERVO_HEADERrobotiq_wrist_coupling:12PIN_SERVO_HEADERJ15
1158kResistor_SMD:R_0603_1608MetricR19
115PIN_HEADERrobotiq_wrist_coupling:15PIN_HEADERJ8
11MResistor_SMD:R_0603_1608MetricR1
11µFCapacitor_SMD:C_0603_1608MetricC10
130.1kResistor_SMD:R_0603_1608MetricR20
13PIN_HEADERConnector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_VerticalJ7
147pFCapacitor_SMD:C_0603_1608MetricC15
14n7Capacitor_SMD:C_0805_2012MetricC4
14µ7 (1mOhm ESR)Capacitor_SMD:C_0603_1608MetricC13
150kResistor_SMD:R_0603_1608MetricR10
1560Resistor_SMD:R_0603_1608MetricR14
16µ8robotiq_wrist_coupling:SL0630-6R8ML1
1750Resistor_SMD:R_0603_1608MetricR4
1AP2112K-3.3TRG1robotiq_wrist_coupling:SOT95P285X140-5NIC2
1AP63300robotiq_wrist_coupling:TSOT23-6IC1
1BLM18EG101TN1DCapacitor_SMD:C_0603_1608MetricFL1
1BSS159NH6327XTSA2robotiq_wrist_coupling:BSS138Q6
1Conn_Coaxialrobotiq_wrist_coupling:2337019-1 µCOAXJ2
1GT-USB-7025robotiq_wrist_coupling:CONN16X1_GT-USB-7025_GSWJ1
1LED_RGBArobotiq_wrist_coupling:XZCCBDMEDGK161WD3
1LF110-33robotiq_wrist_coupling:1812L110-33F1
1LTST-C170GKTCapacitor_SMD:C_0805_2012MetricLED1
1PRTR5V0U2AX,215robotiq_wrist_coupling:SOT143BD1
1Si7469DProbotiq_wrist_coupling:si7469dpQ7
1TL3340robotiq_wrist_coupling:TL3340SW1
1~robotiq_wrist_coupling:NINA-B301-00BNINA1

More from RemkoPr/airo-halberd

1
  • 2 layers22 × 16.5 mmUsb c power addon, the printed circuit board in 3D

    Usb c power addon

    RemkoPr/airo-halberd

    The Halberd coupling (paper), named after its characteristic PCB shape, is a replacement of the Robotiq I/O Coupling enhanced with a Nina B301 microcontroller, developed at IDLab-AIRO, Ghent University (Belgium), imec.

    4 parts4

Similar boards

  • 4 layers25.7 × 30.2 mmMotherBoard Instrumentation, the printed circuit board in 3D

    MotherBoard Instrumentation

    RemkoPr/airo-obin

    Modular readout PCB for instrumentation, i.e. sensorisation, of everyday objects to enhance learning of robot manipulation.

    47 parts
  • 2 layers53.3 × 68.6 mmArduino uno, the printed circuit board in 3D

    Arduino uno

    Chicken-Fried/Cave-Uno

    Modernized Arduino Uno R3 compatible board powered by Microchip ATmega328PB. Features driverless USB-C, 1.5A sync buck, ideal-diode OR-ing, dual I2C/SPI/UART, and LiDAR topographic artwork.

    85 parts
  • 4 layers88.9 × 96.5 mmErs s32-board, the printed circuit board in 3D

    Ers s32-board

    schrodlm/nxp_hal

    In this assignment the target platform changes from the STM32F407 to the NXP S32K118, an Arm Cortex‑M0+ microcontroller from the S32K1xx automotive family.

    138 parts
  • 4 layers85.7 × 73.9 mmLAITS HW, the printed circuit board in 3D

    LAITS HW

    tollsimy/LAITS-HW

    LAITS Hardware Repo

    200 parts
  • 4 layers117 × 60 mmCw lite main, the printed circuit board in 3D

    Cw lite main

    nikitalita/cw-kicad-conversions

    334 parts
  • 4 layers43.2 × 43.2 mmROCK Pi S CLAS HAT, the printed circuit board in 3D

    ROCK Pi S CLAS HAT

    takuhoTech/CelestNavi-HAT-for-ROCK-Pi-S

    ROCK Pi S CLAS HAT

    66 parts6MIT
  • 4 layers72.5 × 39.7 mmFOC RP2350, the printed circuit board in 3D

    FOC RP2350

    totaldesaster/SimpleFOC-Serial-Driver

    Advanced dual BLDC driver based on the RP2350 and DRV8323S ICs, designed to be controlled from a trajectory controller over RS-485, RS-422 or TTL UART. Features a compact high power design with two stacked PCBs.

    68 parts1GPL-3.0
  • 2 layers20 × 38.5 mmArm tiny pcb, the printed circuit board in 3D

    Arm tiny pcb

    Chicken-Fried/STM32-NanoCortex

    Ultra-compact USB-C development board powered by STM32F042 (ARM Cortex-M0) with native DFU, ceramic-only LDO power stage & CaveRover branding.

    29 partsCERN-OHL-S-2.0

Questions

How big is the Halberd v2 PCB?

It measures 72.8 × 82.1 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Halberd v2 use?

77 parts, built around the AP63300WU, TXB0102DCU, AP2112K-3.3TRG1 and BSS159NH6327XTSA2. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Halberd v2 KiCad files?

From the RemkoPr/airo-halberd repository on GitHub, at the commit this page was made from: the board is KiCad/halberd_v2/halberd_v2.kicad_pcb and its schematic KiCad/halberd_v2/halberd_v2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Halberd v2 design in my own project?

Its repository states no licence, so its author keeps all rights: ask RemkoPr before reusing the design.