---
title: "lvJanus: a CAEN FERS readout board in LabVIEW"
description: "A Windows DLL that lets LabVIEW drive a CAEN FERS-5200 data-acquisition board through CAEN's open-source Janus software."
date: 2024-06-14T18:45:12+02:00
lastmod: 2026-10-16T18:58:52+02:00
url: https://klimek.link/projects/lv-janus/
author: "Marcin Klimek"
source: https://klimek.link/projects/lv-janus/
---

# lvJanus: a CAEN FERS readout board in LabVIEW

CAEN's **FERS-5200** front-end boards come with **Janus**, an open-source (GPL) readout program written in C that configures the board, talks to it over USB or Ethernet and reads the data. With **lvJanus** I turned that code into a **DLL** that **LabVIEW** can call, so the board can become part of a larger LabVIEW measurement setup.

I kept the `stdcall` interface deliberately small, with four functions:

- `initialize()` loads the Janus configuration file and connects to the board;
- `send_receive(out, out_size, in, in_size)` sends a command buffer from LabVIEW to the board and returns the response;
- `dump_info()` writes the board and firmware information to the log;
- `destroy()` closes the connection.

Underneath sits the Janus/FERS library itself (including the register map of the A5203 picosecond TDC unit) with a thin C++ wrapper that logs through spdlog. The solution also builds a small console program, which I used to test the same calls without LabVIEW.

*Diagram: LabVIEW calls four DLL functions that wrap the Janus library*

[Source on GitHub](https://github.com/marcinklimek/lv_janus).

Source: https://klimek.link/projects/lv-janus/
