ninjaNIRS 2020


At the Neurophotonics Center at Boston University, we are developing a wearable, modular fNIRS system called ninjaNIRS. At our current stage, we have a prototype version of the device (ninjaNIRS 2020) compatible with up to 24 dual optodes (source and detector in one). We have also developed 3D printed solutions for encasing the optode and control unit, as well as to hold the optodes on the head on the required locations for each experiment. As this is an open project, schematics for the hardware and mechanical drawings can be downloaded directly from this page.

Control unit

The ninjaNIRS system consists of two main components: the optodes and the control unit. The system is designed to be modular and be able to use a variable number of optodes depending on the user needs.  The newest release of ninjaNIRS (2020) is compatible with up to 24 dual optodes. In future versions, the user will be able to interconnect several control units in order to achieve a larger number of optodes and channels. The control unit is based on an FPGA and is also equipped with an Arduino Teensy to implement supporting functions.

Dual optodes

The current version of the ninjaNIRS system (2020) uses dual optodes (source plus detector on each optode). These optodes can be configured as sources, detectors or as short separation. Each dual optode is equipped with an FPGA to pre-process the information sent to the control unit. The detector technology used in these optodes is a PIN photodiode (Vishay VEMD5060X01), and the light sources are dual  LEDs at 730 and 850 nm (Marubeni SMT730D/850D). The dual optodes are held in custom made 3D printed enclosure with two custom made light pipes (one for transmitting the light in and another for transmitting the light out). In this enclosure, the detector is equipped with an IR gel filter to reduce the amount visible light reaching it.


ninjaCap is a procedurally generated 3D printed cap. Users of our AtlasViewer software can use their probe designs (SD files) to generate a computer model of the probe locations on the head. After that, our ninjaCap software creates several printable panels, which are then stitched together to build the cap.


ninjaNIRS 2020 is compatible with one external accelerometer. The accelerometer enclosure is made to fit in the ninjaCap optode holders.

Remote trigger board

This board is used to send TTL triggers wirelessly to the ninjaNIRS unit.


ninjaGUI is a Matlab-based graphic user interface designed to be used with our ninjaNIRS devices. The code is open and can be accessed on Instructions on its use and code documentation can be found at the wiki of the GitHub repository for the project (


The current version of the ninjaNIRS system requires several hardware accessories to operate:

Battery: ninjaNIRS requires a 12 V power supply to operate.  A 3 Ampere power source is enough to run a 24 optode system with no issues. For portability, we are using 12 V power banks (for example, the YB1203000-USB).

Backpack: we are using commercial backpacks to carry the unit on the back of the user.

USB-C: The ninjaNIRS control unit is connected to a computer through a USB-C cable.

Computer: ninjaNIRS 2020 is controlled with serial commands through an USB port. Our current solution is issue these commands and read the produced data with a Windows computer. The best way to perform measurements for a neuroscience experiment using ninjaNIRS is through our custom GUI, ninjaGUI. The control unit can be connected to a desktop PC using a long USB cable, or alternatively, can be connected to a laptop on the back of the user (controlled with a remote desktop application) for extra portability.

Performance tests

NEP measurements for ninjaNIRS 2020.

File downloads

PDF and Eagle Schematics

Control unit schematics

Breakout board schematics

Breakout adapter board schematics

Dual optode PCB 1 schematics

Dual optode PCB 2 schematics

Accelerometer and remote receiver PCB schematics

Accelerometer schematics

Remote trigger schematics

Firmware files

Control unit firmware

Dual optode firmware

Arduino firmware for control unit (accelerometer and remote trigger board support)

Mechanical drawings

Control unit enclosure (RevAf)

This control unit enclosure (for control unit model BZB-CUENC-SA) was designed to be 3D printed. We provide download links for the complete assembly (SolidWorks 2020) as well as STEP and STL versions of the enclosure components for portability. We have successfully printed these part on SLS nylon. Required resolution is around 0.25 mm.

SolidWorks 2020 assembly download

STEP model download

STL model download

Dual optode enclosure (RevAE)

This enclosure is used to both protect the optode electronics and allow them to be mounted on the head in combination with a ninjaCap. It also includes light pipes to transport the light to and from the scalp to the PCB. It was designed to be 3D printed. We have successfully printed these part on SLS nylon. Required resolution is around 0.25 mm.

SolidWorks 2020 version download

STEP version download

STL version download

Accelerometer enclosure

Other components

Light pipes

IR filter

Connectorized wires

Assembly documents

The documents in this section describe suggested procedures to assemble the various hardware components  in our 3D printed enclosures.

Optode assembly document

Disclaimer or responsibility: all the schematics provided on this website are provided for informational purposes only. Neither Boston University, the Neurophotonics center nor the people associated with the BOAS lab are to be liable or held responsible for any potential damage caused by the use of the technologies here shared. Any use of the information provided here is strictly at your own risk.