HiSeq2000 - Next Level Hacking

From Hackteria Wiki
Jump to: navigation, search


We got a HiSeq 2000, Next Level Sequencing Machine from the Genomics Facility of Department of Biosystems Science and Engineering in Basel. Contact through Biozentrum, University of Basel. We got it for free with the only disclaimer: "The biohackers should understand that they are responsible to organize and pay for the transport as well as that there is no warranty or support that can be given neither by us nor the DBSSE."

This type of machine seems to be quite difficult to get up and running and also reagents, flowcell-kits and software licences can be expensive. Since more of these machines seem to show up in second hand (there are new machine generations by Illumina) it would be worth trying to find a way to make them work. Sequencing for all.

The HiSeq2000 (200Gb) was introduced in the year 2010. Followed by HiSeq2500 (500Gb) in 2012. And HiSeq X Ten (1000Gb) in 2014. In 2017 the NovaSeq series of machines was launched.
The machine is a quite early on, from March 2011, Serial Number is 700792, so the machine can not be updated to software and chemistry v4. Only machines with SN# 7001403 or higher can get the FPGA update v4.
27747171 1313614108739672 1344364391 o.jpg

First Inspection

I made a first inspection on the machine. It seems very well made (2011). I still think it would be cool to make it run as is. It's basically a big microfluidic system. So if we get the pumps and the cameras to work we can hack it into anything we want 🙂. Even if it's not for sequencing - it's basically a holder for flow-cells with a fluorescence camera attached to it. And 16 channels with pumps and selector valves that attach to the flow cells. Plus a fridge and a computer. And peltier for heating and cooling (pcr). Now trying to get the control software. I also think the system is "relatively" open... the software can be downloaded and kind of installs, there is no ID checking on the supplies or anything. Looks very hackable. Also all the cases can be opened easily. Let's do a weekend hack-session on it.

I think it's great opportunity to learn about next level sequencing and about how theses machines work.

Fluidic System:
27356260 1310155019085581 6425750036040119481 o.jpg

Some pictures from the inside of the machine:

Lausanne Bio-Hackerspace Hackuarium got a HiSeq2000 (SN# 700918) and Gustavo dissected it. Here some pictures that Rachel sent me with comments form what I think components are:



Some images describing the Illumina Next-Generation Sequencing Chemistry:

Illumina uses a process called "Sequencing-by-synthesis"
The HiSeq (and MiSeq) use 4-colour SBS

The full DNA to Data solution:

Paper on the 4 color SBS:

Video with the possibilities for library preparation:
Library prep kit with sample purification by magnetic beads:

The CBot 2 System is used to prepare the clusters on the flow cell:

HiSeq (and TrueSeq) Rapid Cluster Kits can be clustered on the HiSeq (on-board cluster). They also seem to have a lower read and are cheaper:

Chemisty Kits Option (running on our machine):

All Library Prep Kits
Cluster Generation (cBot needed):

  • TruSeq SR Cluster Kit v3 - cBot-HS - Price: 4360 CHF
  • TruSeq PE Cluster Kit v3 - cBot-HS - Price: 6674 CHF
  • TruSeq Rapid SR and PE Cluster Kits, cBot Duo Cluster Kit - Price: Request

Maybe not compatible (for reference):

  • HiSeq SR Rapid Cluster Kit v2, Price: 1002 CHF
  • HiSeq PE Rapid Cluster Kit v2, Price: 1540 CHF

SBS Reagents:

  • TruSeq SBS Kit v3 - HS (50 cycles), Price: 2552 CHF
  • TruSeq Rapid SBS Kit - HS, Price: Request

Maybe not compatible (for reference):

  • HiSeq Rapid SBS Kit v2 (50 cycles), Price: 587 CHF


  • Are the "HiSeq Rapid Cluster Kit v2" compatible with HiSeq (before the v4 update). Or are the "TrueSeq Rapid Cluster Kits"?
  • What Kit can be clustered on our HiSeq?

HiSeq Sequencing Protocol

PositionReagent Description

1	ICR (ICB)		Incorporation Mix Reagent			ViciPosition="1"
2	Water (PW1)		250 ml bottle with laboratory grade water	ViciPosition="2"
3	SMR			Scanning Mix Reagent 				ViciPosition="3"
4	SBS Buffer 1 (SB1)	High Salt Buffer				ViciPosition="4"
5	SBS Buffer 2 (SB2)	Incorporation Buffer				ViciPosition="5"
6	SBS Buffer 2 (SB2)	Incorporation Buffer				ViciPosition="6"
7	CMR			Cleavage Mix Reagent				ViciPosition="7"
8	SBS Buffer 3 (SB3)	Cleavage Buffer					ViciPosition="8"

FirstBase Incorporation

Pump SBS Buffer 2 (SB2) (5) - Incorporation Buffer
Delay 26 seconds
Flowcell Temp 55°
Pump ICR (1)- Incorporation Mix Reagent
Delay 26
Delay 80 seconds
Pump ICR (1) - Incorporation Mix Reagent
Delay 26 seconds
Delay 211 seconds 
Flowcell Temp 20°
Pump SBS Buffer 2 (SB2) (5) - Incorporation Buffer
Delay 26 seconds



Pump SBS Buffer 3 (SB3) (8) - Cleavage Buffer
Delay 26 seconds
Flowcell Temp 55°
Pump CMR (7) - Cleavage Mix Reagent
Delay 26 seconds
Delay 80 seconds
Pump CMR (7) - Cleavage Mix Reagent
Delay 26 seconds 
Delay 80 seconds 
Pump CMR (7) - Cleavage Mix Reagent
Delay 26 seconds 
Delay 80 seconds 

Buffer Wash

Pump SB2 (6) - Incorporation Buffer
Delay 26 seconds
Pump SBS Buffer 1 (SB1) (4) - High Salt Buffer
Delay 26 second
Pump SB2 (6) - Incorporation Buffer
Delay 26 seconds 


Pump SBS Buffer 2 (SB2) (6) - Incorporation Buffer
Delay 25 seconds

Flow Cell A (BC001ACXX), Cycle #1

Chemistry FirstBase, Incorporation

Selecting Reagent SB2 (5)
Opening shutoff valve
Pumping Reagent SB2 (5), Aspirating port PortB
Delay 26 seconds
Pumping Reagent SB2 (5), Dispensing port PortC
Closing shutoff valve
Flowcell Temp 55°
Selecting Reagent ICB (1)
Opening shutoff valve
Pumping Reagent ICB (1), Aspirating port PortB
Delay 26
Closing shutoff valve
Delay 80 seconds
Selecting Reagent ICB (1)
Pumping Reagent ICB (1), Aspirating port PortB
Delay 26 seconds
Pumping Reagent ICB (1), Dispensing port PortC
Closing shutoff valve
Delay 211 seconds 
Flowcell Temp 20°
Selecting Reagent SB2 (5)
Opening shutoff valve
Pumping Reagent SB2 (5), Aspirating port PortB
Delay 26 seconds
Pumping Reagent SB2 (5), Dispensing port PortC
Closing shutoff valve


Imaging, Resuming Chemistry
Chemistry, Selecting Reagent SRE (3)
Opening shutoff valve
Pumping Reagent SRE (3), Aspirating port PortB
Delay 26 seconds
Pumping Reagent SRE (3), Dispensing port PortC
Closing shutoff valve
Flowcell Temp 20°
Waiting for imaging module
Imaging, Top Surface
Imaging, Top Surface, Aligning
Imaging, Top Surface, Aligning, Tilt
Imaging, Top Surface, Aligning, Tilt, Programming Camera
Imaging, Top Surface, Aligning, Tilt, Resizing Image
Move Emission Filter 11(sim) to OutOfPath
MoveSendTrigger Z Motor

Cycle #1, Imaging, Top Surface, Aligning, Tilt, Imaging, Frame #3

Copying Images
Aligning, Tilt, Saving focus image
Move EmissionFilterSet1(sim) ('A') to 'Bandpass2'
Handling Template Image C001
Frame #697
Saving Thumbnail Image
Image Analysis Flow Cell A 01, ImageProcessing, ProcessEarlyCycleAnalysis

CameraTDI Cleanup

Wait for frames then close excitation filters
Move Excitation Filter 2 to 'BlockPosition'

Flow Cell A (BC001ACXX), Cycle #1, Imaging, Bottom Surface, Lane 8, Swath 3 - X = 25.46642 Y = 93.43, Channels A, G, T, C, Scanning

Dither Clean Up Command

Cycle #2, Chemistry CompleteCycle


Cycle #2, Chemistry CompleteCycle, Deblock
Deblock, Selecting Reagent SB3 (8)
Deblock, Opening shutoff valve
Pumping Reagent SB3 (8)
Pumping Reagent SB3 (8), Aspirating port PortB
Delay 26 seconds
Pumping Reagent SB3 (8), Dispensing port PortC
Closing shutoff valve
Flowcell Temp 55°
Deblock, Selecting Reagent CMR (7)
Opening shutoff valve
Pumping Reagent CMR (7), Aspirating port PortB
Delay 26 seconds
Closing shutoff valve
Delay 80 seconds
Deblock, Selecting Reagent CMR (7)
Pumping Reagent CMR (7), Aspirating port PortB
Delay 26 of 26 seconds 
Closing shutoff valve
Delay 80 of 80 seconds 
Selecting Reagent CMR (7)
Pumping Reagent CMR (7), Aspirating port PortB
Closing shutoff valve
Delay 80 of 80 seconds 

Buffer Wash

Buffer Wash, Pumping Reagent SB2 (6), Aspirating port PortB
Delay 1 seconds
Closing shutoff valve
Selecting Reagent SB1 (4)
Opening shutoff valve
Pumping Reagent SB1 (4), Aspirating port PortB
Delay 26 second
Pumping Reagent SB1 (4), Dispensing port PortC
Closing shutoff valve
Selecting Reagent SB2 (6)
Opening shutoff valve
Pumping Reagent SB2 (6), Aspirating port PortB
Delay 26 seconds 
Closing shutoff valve


Flowcell Temp 55°
Incorporation, Selecting Reagent ICB (1)
Opening shutoff valve
Pumping Reagent ICB (1), Aspirating port PortB
Delay 26 seconds
Closing shutoff valve
Delay 80 of 80 seconds
Selecting Reagent ICB (1)
Pumping Reagent ICB (1), Aspirating port PortB
Delay 2 of 26 seconds
Closing shutoff valve
Delay 211 of 211 seconds
Flowcell Temp 20°
Selecting Reagent SB2 (6)=
Pumping Reagent SB2 (6), Aspirating port PortB
Delay 16 of 26 seconds
Closing shutoff valve


Chemistry, Selecting Reagent SB2 (6)
Pumping Reagent SB2 (6), Aspirating port PortB
Delay 25 of 26 seconds
Closing shutoff valve


Control Software

Our machine with SN# 700792 can not be updated to HiSeq Control Software (HCS) v2.2.37 or higher.
Possible options are (depends on software on the FGPA, how to find out?):

  • HCS v1.5, RTA v1.13
  • HCS v2.0, RTA v1.17
  • HCS v2.2.38, RTA v1.18 - Not compatible
  • HCS v2.2.58, RTA v1.18 - Not compatible

On the "do not eject" virtual drive from the machine it looks as if the last update was:
So that was just after releas of HCS 2.0

The HiSeq instrument computer employs 64-bit Windows Vista.


  • Does V2.0 have a Rapid Run mode?
  • What is the "Include_Override.cfg" file?

Download for hcs_1-5-15-1:
Download for hcs_2_0_12:

Cropping and Stitching of Scans


Workstation (Computer)

Dell Precision T7500 Tower-Workstation
AMD FirePro V3750 256MB
48 Giga Ram

29746587 1362014643899618 773048584 o.jpg
http://euro.dell.com/content/products/productdetails.aspx/workstation-precision-t7500?c=de&l=de&s=corp http://www.dell.com/support/article/us/en/4/sln291329/precision-t7500-windows-xp-and-windows-vista-driver-install-guide?lang=en#Broadcom57XXGigabitControllerDriver
All the drives were removed from the computer when we got it. There is a raid controller board, an ethernet card and the Phoenix Video Card installed in the machine.

29829408 1362014100566339 2138466687 o.jpg

Unfortunately the computer has a problem with the power supply and does not start up properly and we need to press the button on the powersupply to get it going somehow.

GraficsCardHiSeq.jpg The Phoenix PCI Express x1
The screen comes with a touch screeen interface.

Software Installation

We had to completely reinstall the control computer. All the files needed to get the machine up and running could be found (2018) as free downloads on the internet. Here is how:

  • First install Windows Vista
  • Install the ethernet driver, the grafics card driver and the Chip-Set Driver from the Dell Support Hompage (links below)
  • Install the HiSeq Controll software (in our case we guessed Version HCS 2.0, depends on the FPGA version and SN of the machine) using the install.bat
  • The connect the HiSeq and turn it on, wait for 2 minutes until all the serial device show up
  • Then had to install the FTDI2xx64 driver for the USB serial ports from the FTDI website (for Windows Vista)
  • Also had to put a copy of the FTDI2XX.dll in the Illumina/ControlSoftware folder. (why?)
  • Install the Camera driver DCAM-API v15.10.4787, https://dcam-api.com/downloads/
  • Reboot
  • Also put a copy of the camera.dll into the Illumina/ControlSoftware folder (not sure if needed).
  • Then the software keeps asking for an "Override" file on C:, so I copied to "Override_xx" file from the "DONOTEJECT" drive of the machine to C: and renamed it to "override.cfg"
  • Also the software needs drives up to E: for data / setting storage (just used some USB sticks)
  • Then start the control software and wait for the initialization to complete.


After many tries the successfully initialized machine interface:

29541640 1361478403953242 2086585179088537567 n.jpg
29683271 1361478447286571 3161554923032478769 n.jpg
Ready for some sequencing (or further tests)

DCAP-api Driver:
USB / Serial Port Sniffer that can be useful to reverse engineer the communication:

Using the System with Recycled Chemistry and FlowChips

We were able to get some SBS chemistry (V4) and some used chip form a sequencing lab (Unil Lausanne). For every run that labs do there is about 15-20% chemistry left over and as there is only one flow chip contained in each kit, the chemisty can not usulay be used anymore. We also got some used flow chips that were allready processed. We managed to load the cheistry into our machine and start a sequencing run. (even thoug our machine is not suitable for V4 chemistry). The machine would first do a lot of pupming, then adjust to focus of the microscope in the corners of the flow chip and then start scanning the flow chanels by tiles and using the different lasers.

We set the software to store the scanned images:
Ss 2 2315 T.jpg
Dumped (compressed) image showing fluorescence of T bases.

Challenge: If there was a way to 'clean' to reuse them, cheap DIY sequencing would be possible usine left over chemistry and chips collected from a sequencing lab.

Technical Descriptions / Findings

The fluorescent readout system with lasers and CCD cameras

HiSeq+Optics.jpg836px-FluorescenceFilters 2008-09-28.svg.png
Patent by Illumina:

The HiSeq uses an epifluorescence microscope design shown in the diagram. Light of the excitation wavelength is focused on the specimen through the objective lens and the fluorescence emitted by the specimen is focused back the detector by the same objective.

Here you can see the two camera units with even the letters A G T C written on it.
IMG 20180201 221528.jpg

The laser calibration sheets that came with the machine:

The readout system of the HiSeq uses Line Imaging:

The Flow-Cell

FlowCell.jpg Flowcell.jpg
The recommended maximum cluster density is 750,000-850,000 clusters/mm² when using Illumina's v3 cluster generation and sequencing reagents in combination with HCS v1.4. That makes 866²-921² clusters or 1.08-1.12 um² in average per cluster.

Some rough calculations/estimations on what is going on in the machine

The DNA clusters are about 1 Micrometer in size. (or bigger for older machines/software, maybe 2-5 um)
The lines on the flow cells are about 1 mm large what means 1000 clusters. (Or lager, up to 1.7 mm)
The reading speed is about 1mm per second or 1000x1000 clusters per second. Or 1 Mega bases.
The lines are 6 cm long and there are 10 lines per flow cell.And two flow cells.
The means 600 Mega Clusters (Bases) per flowcell per complet run. And that takes about 600 seconds or 10 minutes.
Then flush the flow-cell to add the next base (SBS, sequencing by sythesis). Then start over again.
Unitl the whole 150 bases long DNA sequences are read.
This takes about 4 days... 10 Genoms.
The cluster are red in 4 colors / letters at the same time through 2 lasers exciting 4 colors in fluorescence.
By 4 CCD line cameras with Time delay and integration (TDI). Line cameras with 1 micrometer resolution, 1000 lines a second. Or 1 picture 1000x1000 per second...
The chemistry cost some hundreds to some thousands... but for what it does its not so bad. And you get the chemistry kit with the flowcell. So all the magic and the rest is just some kind of state of the art open hardware 🙂

Hardware components

Nice description on what hardware components are used in the HiSeq on the following page (see comments):

  • two lasers (Laserquantum ignis 660nm, gem 532nm with SMD6000 drivers)
  • filter revolvers, beam expanders (Linos 2-8x) followed by a barrel lenses for each wavelength, a combiner to join the two excitation wavelengths
  • piezo actuator for the Z-Stage (Physik Instrumente P-601 with driver E-601 and E-801 Sensor module)
  • Nikon CFI Plan APO VC 20x Objective.
  • XY-table (Parker 803-4099, something like the XR400 series, driven by a ViX-250-IH driver module).
  • The “Docking Station” with the Flowcells are mounted on three Stepper adjustable points to align them with the focal plane of the line scanner.
  • The fluorescence signal is divided by a fixed filter set 4x
  • 4 CCD cameras with S10405 line CCDs from Hamamatsu (DIL 40 package).
  • Two Hamamatsu Camera Control Boards (Model C10000-509) are each controlling two of these line cameras.
  • Illumina board with: line CCDs -> 8 LTC2203 25Msps 16-Bit ADCs -> Altera Cyclone II FPGA. Spartan XC3S4000 FPGA and XC95288 CPLD (both Xilinx)
  • Data is collected by the Phoenix AS-PHX-D48CL Frame grabber card in the Computer

IMG 20180706 115709.jpg
Hamamatsu TDI Line Camera Chip from the HiSeq

Port usage

Device Port Settings
ARM9BoardSerialPort / ARM9 Chem Port: COM3; ARM9CHEM ;CM00006 115200 baud
ARM9BoardDiagSerialPort / ARM9 Diag Port: COM6; ARM9DIAG
ARM9PEPort (PCIO) Board Port: COM4; PCIO (com_port_num) 115200 baud
FPGA P1 Command / command_com_port_num Port: COM10; IL000004 115200 baud
FPGA P2 Response / response_com_port_num Port: COM11; IL000005 115200 baud

FtdiViciValve1 / VICI A1: Port: COM16; VICIA1 ;CM00004 9600 baud (19200?)
FtdiViciValve2 / VICI A2: Port: COM20; VICIA2 ;CM00043 9600 baud
KloehnControllerPump / Kloehn A Port: COM18; KLOEHNA ;CM00001 9600 baud

FtdiViciValve1 / VICI B1: Port: COM17; VICIB1 ;CM00002 9600 baud
FtdiViciValve2 / VICI B2: Port: COM21; VICIB2 ;CM00044 9600 baud
KloehnControllerPump / Kloehn B Port: COM19; KLOEHNB ;CM00003 9600 baud

Laser 1,Green532,Smd6000

Port: COM12; IL000006

9600 baud
Laser 2,Red660,Smd6000 Port: COM13; IL000007 9600 baud

XMotor_MDrive_5mm (X-Stage)

Port: COM7; IL000001

9600 baud
YMotor_VixServoIH_10nm (Y-Stage) / Servo linear motor MT49420 Port: COM8; IL000002 9600 baud
Z-Stage Port: COM9; IL000003


Port: FTE2V9ML ; COM5 (com_port_num = 4)
PTC Port: COM2 (com_port_num = 1) 9600 baud
rs232 Port: COM10 (offset 9)
Test Port Port: IL000010
PC Camera Ctrl Port: COM14; IL000008

Phoenix Cam 1? / AS-PHX-D48CL-PE1 (C10000-509)

Port: COM22
Phoenix Cam 2? / AS-PHX-D48CL-PE1 (C10000-509) Port: COM23
Flash Drive Port: COM15; IL000009


During the software install I got this rather interesting list on the Hardware Manager showing all the device names.
After the installation of the USB serial port driver the names disappeared.


  • ARM9 Chem
  • ARM9 Diag
  • Flash Drive
  • FPGA P1 Command
  • FPGA P2 Response
  • Kloehn A
  • Kloehn B
  • Laser 1
  • Laser 2
  • Multimedia Video Controller  ?
  • PC Camera Ctrl ?
  • PCIO Board
  • Test Port ?
  • VICI A1
  • VICI A2
  • VICI B1
  • VICI B2
  • X-Stage
  • Y-Stage
  • Z-Stage


Data (D:) Data (E:) DVD (F:) Removable (G:) DoNoEject (H:)


The HiSeq commands were extracted form the Control Softare Log file. This file is created with every action of the software and contains a lot of information on what is going on, including the commands sent to the different devices via virtual serial port, set values and feedback from the machine. In the archive some logs including two (partial) sequencing runs. There is one spreadsheet with more extracted commands and one that shows the machine initialization sequence commands.

Main controll unit with a Field Programmable Gate Array (FPGA).

Command Receive Parameter Function
FPGA Board
MISCRVC\n MISCRVC 3.0.14 Reads version number of a board C
MISCRV\n MISCRV 3.10.3 Reads version number of a board
RESET\n @LOG The FPGA is now online. Enjoy! / RESET Reset And Cancel All Commmands, is about to reset FPGA
LEDMODEs m\n LEDMODEs s=[1,2]
m=[0-7] 0=off, 1=yellow, 2=pulse yellow, 3=green, 4=pulse green, 5=blue, 6=pulse blue, 7=nightrider (sweep) blue
Big front LED-bar light mode. s=1 left, s=2 right section (for each flow cell)
LEDPULSRATE r\n LEDPULSRATE r=[1-255] (milliseconds) Puls rate of LED-bar. Controls, the frame update rate for the pulsing animation.
LEDSWPRATE r\n LEDSWPRATE r=[1-255] (milliseconds) Sweeping rate of LED-bar. Controls, the frame update rate for the sweeping animation.
LEDMODETMPST 0\n LEDMODETMPST 0 = single mode / 1= Full size blue nightrider sweep. Special LED nightrider mode
Emission Filters
EM2VL_DN p\n EM2VL_DN p=[9..91 / 10,20,40] (percent) Emission Filter 2, Down Velocity (Percent) (Down=out of path, really is up)
EM2VL_UP p\n EM2VL_UP p=[9..91 / 10,20,40] (percent) Emission Filter 2, Up Velocity (Percent) (Up=in of path, really is down)
EM2RDV_DN\n EM2RDV_DN v v = [9..91] 10 Emission Filter 2, Read Down Velocity
EM2RDV_UP\n EM2RDV_UP v v = [9..91] 10 Emission Filter 2, Read Up velocity
EM2O\n Move filter Out of Path
EM2I\n Move filter In of Path
EM2RD\n EM2RD 0 1 0 0 a b c d =[0,1] / a= , b=inPathSensor , c=OutOfPathSensor , d= / position = IntoPath / OutOfPath / Unknown Read Filter Position (Sensor)
Excitation Filters
EXsHM2\n EXsHM2 s=[1,2] filter path Home excitation filter 1 or 2 to laser-safe blocked position.
EXsMV p\n s=[1,2] p=[-71,71] (OD0.4) / 270.0000 degrees / 71 Moved 'Reflective' to index 2 (OD2.5) 90 degrees Move Excitation Filter Wheel by p (71 = 90 degrees 35.5=1 step?
EXsVL p\n s=[1,2] p=[131072] Set Excitation Filter Wheel speed?
EXsCUR p\n s=[1,2] p=[35] Set Excitation Filter Wheel Current?
Tilt Motor Control
TnMOVETO p\n T1MOVETO 18504 n = [1,2,3] (motor), p=[0..ca.34300] (6560 steps / mm) 0 = all down / (steps, 656 steps/mm)? / (3025 steps (4.610 mm)? Tilt motor (n) closed-loop absolute encoder moves. (Home Motor and Clear Register before use)
TnRD\n TnRD q n = [1,2,3] (motor) q=steps ?encoder und motor steps equal? Read tilt motor encoder.
TnVL p\n T1VL n = [1,2,3] (motor) p=62500 Tilt motor (n) set velocity ?
TnCUR 35\n TnCUR n = [1,2,3] (motor) p=35 Motor Current?
TnCR T1CR n =[1,2,3] Clear Counter Register of Motor Encoder
T1HM T1HM / @TILTPOS3 p n = [1,2,3] (motor) / p=steps Tilt motor (n) homing.
DOORSSTATE p\n DOORSSTATE p=[0,1] Set door state ?
Laser Control
LASERPB p\n LASERPB p p=[0..255/500/or more] (DAC/mW?) Set laser power.
SWLSRSHUT p\n SWLSRSHUT p=[0,1] Closing / Opening laser shutter controls laser shutter
LSEN\n LSEN Laser Safety Enable Reporting
TDI Control (Time Delay Integration)
TDIYERD\n TDIYERD 9108548 Y Encoder Read. 100'000 = 1 mm / Before scan, Y encoder from FPGA = 9 108 548 counts (91.085 mm)
TDIYEWR p\n p=encoder value [0..1'000'000+] 100'000 = 1 mm / ? 6000012 / 6000008 Write Y Motor Encoder Value
TDIYARM2 2816 1\n TDIYARM2 TDI Scan Setup, Arm FPGA, FPGA Arm TDI
TDIYARM3 a b\n a= ImageLines (160000) / b = Y Position to go to (start)? TDI Scan Setup, Arm FPGA, FPGA Arm TDI
TDICLINES\n TDICLINES q q=3619 Returns number of clearing lines sent before image lines sent for the TDIYARM2 command
TDIPULSES\n TDIPULSES 1613 Returns number of Pulses sent by the FPGA. FPGA sent 1612 triggers to the camera. Actual triggers sent?
TDIYPOS 9101938\n TDIYPOS TDI Scan Setup, Arm FPGA, Set Y starting position for the TDIYARM2 command
TDIBB 0\n TDI Brunos BBs something
TDIMASK 24\n The version that supports the variable mask size of Hamamatsu's new camera's model
TDIZ_PI_STAGE\n Offaxis Camera Initialize
Z-Axis of optical lense
ZADCR\n ZADCR 1266 ADC noise = 10, warning limit = 655, error limit = 3277, numSamples = 10x8, avg = 1263, posNoise = 10, negNoise = 10 Read position of Z-Optical lense - ADC Read
ZDACW p\n p=0..65535 (0 is all down) Write position of Z-Optical lense - ADC Write
ZADCAE n\n n = [0/1]
ZMV p ZMV p=[1311..64224] Z-Move And Trigger. Move Z-motor with ramp. ZMV will trigger camera immediately and ramp is HW controlled
ZYT a b\n ZYT a ? / b=[-1,0,1,2,3,4] Delay Z move until Y = a (encoder value)
ZARM a\n ZARM a Arm Z motor and start the ramp when Y = encoder value set in ZYT
ZTRG 0\n ZTRG trigger
ZSPEC -47 65491\n
ZSTEP p\n p=[0..1'000'000+] 1288471=1.00 mm/s Set Z Motor Velocity
ZSEL 0\n arg 0..3 1= / 2= / 3 = ITF Focus
ZCLK 1\n
MIOSPIINIT\n Initialize Compensator SPI
MIOCOMPR\n Compensator: Selecting Galvo-type compensator Set Compensator OUT Path
MIOCOMPF\n Set Compensator IN of Path
MIOSEL n\n MIOSEL 2 n = [0=galvo, 1=mag comp, 2= new galvo] (2 default)
MIOGSTEPS a b c\n 1 1 0 / 30 1 0 /30 5000 0 / 30 5000 2 (galvo ramp steps must be greater than 0) Excitation Filter 1: Homed to center of sensor in 1292.4745 ms / Compensator: Moved OutOfPath in 420 ms
MIOGVAL a b c\n p= 0 0 / 200 0 / 200 130 a = Galvo IN DAC (0..255) / b= Galvo OUT DAC (0..255) / c?
MIOMVAL a b\n a = Mag comp PUSH DAC must be between 0 and 255 / b = Mag comp PULL DAC must be between 0 and 255
Software Settings?
SW_BRUNO 1\n Set Bruno (Machine Type) Software
SWBEADCOMPAT p\n p=[0,1] 0 = Multi-channel dither, 1 = Original single channel dither & original normalization Software channel dither control?
SWCEILING p\n p=..65535 Set max intensity value used in dither metric
SWFTLSR p\n SWFTLSR p=[0,1] (Off, On) Control focus tracking laser
SWTIME p\n p=[0,1] Stores microsecond timestamp in 6th pixel of each row of image
SWVIX p\n p=[0,1] SWVIX (enable/disable VIX power) VixMotor?
SWZLAG p\n p= 10 /25 Z-Axis lag?

ARM9BoardSerialPort (ARM9CHEM)
Chemistry controller with an ARM9 chip (ARM is a group of older 32-bit RISC processors).

AllDeviceSensorMonitor DoorSensorMonitor FlowSensorMonitor LiquidLevelSensorMonitor TemperatureSensorMonitor VacuumSensorMonitor PowerSensorMonitor BubbleSensorMonitor SipperSensorMonitor SolenoidSensorMonitor
Command Receive Parameter Function
INIT\r A1 Do INIT at start to initialize board
 ?IDN\r Illumina,Bruno Fluidics Controller,0,v2.0340:A1\r\n Get Controller Version
 ?PRETMP\r 9.007C
 ?VSTAT\r 3:A1\r\n
 ?VSENSE:1\r 4:A1\r\n
 ?FCTEMP:s:t\r 23.824C:A1\r\n s=[0,1] (flow cell) t=temp (°C) Get Flow Cell temperature
FCTEMP:s:t\r A1\r\n s=[0,1] (flow cell) t=temp (°C) Set Flow Cell temperature
FCTEMP:s:[P, I, D, S, F]:p\r (Proportional=0.8, Integral=0.2, Derivative=0, Frw_StepSize=1.875, Frw_Threshold=6.0 A1\r\n s=[0,1] (flow cell) p=value Set Flow Cell temperature controller parameters.
FCRTD:s:[B , M]:p\r (Offset, Slope) A1\r\n s=[0,1] (flow cell) p=value Set flow cell temperature sensor parameters.
(Resistance Temperature Detectors (RTD))
 ?RETEMP:s:t\r  ??  ??\r\n s=[0,1] (flow cell) t=temp (°C) Get reagent chiller temperature.
(Proportional=0.8, Integral=0.2, Derivative=0, Feed-Frw_StepSize=1.875, Feed-Frw_Threshold=6.0)
A1\r\n s=[0,1] (flow cell) t=temp (°C) Set reagent chiller temperature.
RETEC:s:[P, I, D, S, F]:p\r
(Proportional=0.8, Integral=0.2, Derivative=0, Feed-Frw_StepSize=1.875, Feed-Frw_Threshold=6.0)
A1\r\n s=[0,1] (reagent chiller) p=value Set reagent chiller temperature controller parameters.
Thermoelectric cooler (TEC)
RERTD:s:[B , M]:p\r (Offset, Slope) A1\r\n s=[0,1] (reagent chiller) p=value Set reagent chiller temperature sensor parameters.
(Resistance Temperature Detectors (RTD))
?PRETMP\r 10.937C:A1\r\n
 ?asyphon:0\r p=[0,1] Read syphone (pump)
asyphon:p:q\r p=[0,1] , p=[0,1] Aspire from syphone (pump)
VACUUM:p\r A1\r\n p=[0,1] Turn vacuum on and off.

Program Controlled Input/Output Board (PCIO) with an ARM9 chip.

Command Receive Parameter Function
 ?IDN\r Illumina,PCIO Controller,0,v0.0035:A1\r\n Get Controller Version
?HDDRVER\r Recv 0.000000:A1\r\n
WASTE:0:1\r A1\r\n p=[0,1] , p=[0,1] Waste cotroll
PVALVE:0:1\r A1\r\n Valve?


Command Receive Parameter Function
MA x\r\n> 10'000 = 24.43mm 1= 2.44 um  ? x = Postion Move Abolute
MR x\r (-409190 to negative limit) x = Postion Move Relative
PM=0\n PM=0\r\n> Homing part 3 finished OK
VI=410\n VI=410\r\n> After Checking for motion / negative limit sensor, response = 'PR MV\r\n1\r\n?'
VM=4096 VM=4096\r\n
DE=1\n DE=1\r\n>
VI=1 VI=1\r\n Setting velocity for finding negative limit sensor to 10.00 mm/sec
PR ER\n PR ER\r\n0\r\n>
PR ER\r PR ER\r\n84\r\n>
PR VM PR VM\r\n6144\r\n 6144 (15 mm/sec) Parameter Read velocity
PR VI PR VI\r\n410\r\n 410 (1.0009765625 mm/sec) Parameter Read velocity
EX 1\n exit?


Command Receive Parameter Function
1Dp\n p=[-5'000'000..5'000'000] 100'000 = 1 mm / 1 = 10 nm Set Y goto position
1G\n Execute
1W(GP,6)\n set motor gain for scan / 1W(GP,7)\n set motor gain for fast move? Set motor gain


Command Receive Parameter Function
VERSION?\r SMD-G-1.1.2\r\n\r\n Read Laser Version.
STAT?\r ENABLED\r\n Read laser status.
POWER=p\r p=[0,430] (milliwatt) Set laser power.
POWER?\r pmW\r\n (0000mW\r\n) p (milliwatt) Read laser power.
ON\r Turn laser on.
OFF\r Turn laser off.


Command Parameter Function


Command Parameter Function

Thermal Sensor and Regulation Parameter

Thermal calibration - flow cells (Calibrated during manufactoring for each instrument)
FlowCell1RTD_Slope=               0.957142;0.92;0.9742857
FlowCell1RTD_Offset=              0.8571434;1.800001;0.764286
FlowCell2RTD_Slope=               0.951428;0.91;0.9471429
FlowCell2RTD_Offset=              0.9714298;1.849998;1.207142

Thermal calibration - chiller

Reagent1RTD_Slope=                1 
Reagent1RTD_Offset=               0
Reagent2RTD_Slope=                1
Reagent2RTD_Offset=               0
Reagent3RTD_Slope=                0.9833334
Reagent3RTD_Offset=               0.2833328

Temperature servo-loop parameters (Instrument type dependent, e.g., Bruno vs. Harmonia)

FlowCell1TEC_Servo_Proportional= 	0.2
FlowCell1TEC_Servo_Integral=		0.1
FlowCell1TEC_Servo_Derivative=		0.0
FlowCell1TEC_Feed_Frw_StepSize=		1.875
FlowCell1TEC_Feed_Frw_Threshold=	6.0
FlowCell2TEC_Servo_Proportional=	0.2    	
FlowCell2TEC_Servo_Integral=		0.1
FlowCell2TEC_Servo_Derivative=          0.0
FlowCell2TEC_Feed_Frw_StepSize=		1.875
FlowCell2TEC_Feed_Frw_Threshold=  	6.0

Chiller servo-loop parameters

Reagent1TEC_Servo_Proportional=   	0.8 
Reagent1TEC_Servo_Integral=   	 	0.2
Reagent1TEC_Servo_Derivative=		0.0
Reagent1TEC_Feed_Frw_StepSize=   	1.875
Reagent1TEC_Feed_Frw_Threshold=   	6.0 
Reagent2TEC_Servo_Proportional=	 	0.8
Reagent2TEC_Servo_Integral=		0.2
Reagent2TEC_Servo_Derivative=		0.0
Reagent2TEC_Feed_Frw_StepSize=		1.875
Reagent2TEC_Feed_Frw_Threshold=   	6.0 
Reagent3TEC_Servo_Proportional=	 	1.7
Reagent3TEC_Servo_Integral=		1.1
Reagent3TEC_Servo_Derivative=		0.0


FPGACommandSuffix =               1
0 = BlockPosition, Home           ; NOTE!!! If spelling is changed, C# code must also be changed!!!
1 = OD4.0
2 = OD2.0
3 = OD0.6
4 = OpenBandPassPosition          ; Open. NOTE!!! If spelling is changed, C# code must also be changed!!!
5 = OD0.2
6 = OD1.4
7 = OD1.5


FPGACommandSuffix =               2
0 = BlockPosition,Home            ; NOTE!!! If spelling is changed, C# code must also be changed!!!
1 = OD4.5
2 = OD3.0
3 = OD2.0
4 = OpenBandPassPosition          ; Open. NOTE!!! If spelling is changed, C# code must also be changed!!!
5 = OD0.2
6 = OD0.9
7 = OD1.0


FPGACommandSuffix =               3
Positions =                       0, 399, 799, 1199 
0 = Home, Open, Sequencing_AC
1 = Unused1, Sequencing_GT
2 = Unused2
3 = Unused3, Beadchip

Each filter set represents 4 positions on a wheel

[EmissionFilterSet1]  ; This is for SensorPath 1

FPGACommandSuffix = 1
NumPositions = 4
Positions =                       0, 399, 799, 1199
0 = Filter.610-60, Home, Blocked                     
1 = Filter.740-60                              
2 = Wedge                               
3 = Open


FPGACommandSuffix = 2
NumPositions = 4
Positions =                       0, 399, 799, 1199
0 = Filter.687-20, Home, Blocked          
1 = Filter.558-32                   
2 = Wedge                                    
3 = Open

VacuumDACSetting= 2500  ; 0 to 4095, HiSeq is 2130

Optical System

HiSeq2000 Optical Assy
Fluoreszenz2000.png HiSeqOptics.jpg
Excitations and emission wavelength.

[Analytical Channels]
Channel1 = Grn
Channel2 = Red

[Sequencing Channels]
Channel1 = C
Channel2 = A
Channel3 = T
Channel4 = G

Path SensorPath LaserPath ExcitationPosition EmissionPosition ChromaticCompensatorPosition
Analytical Channel Grn 1 1 OpenBandPassPosition Filter.610-60 Beadchip
Analytical Channel Red 2 2 OpenBandPassPosition Filter.687-20 Beadchip
Analytical Channel Reflective 2 2 OD2.5 Only Ex 2 Open Open
Analytical Channel Reflective Autocenter 2 2 OD2.5 Only Ex 2 Open Open
Analytical Channel Emissive 1 1 OD1.0 ETF like scanning Filter.610-60 Beadchip
Sequencing Channel A 2 2 OpenBandPassPosition Filter.687-20 Sequencing_AC
Sequencing Channel T 1 1 OpenBandPassPosition Filter.610-60 Sequencing_GT
Sequencing Channel G 2 1 OpenBandPassPosition Filter.558-32 Sequencing_GT
Sequencing Channel C 1 2 OpenBandPassPosition Filter.740-60 Sequencing_AC
Sequencing Channel Reflective 2 2 OD2.5 Only Ex2 Open Open
Sequencing Channel Emissive 1 2 OpenBandPassPosition Filter.740-60 Open

Using the HiSeq2000 as aFluorescent Scanning Microscope

With many of the commands known it is possible to use the HiSeq2000 as a transmission or fluorescent scanning microscope. We developed a simple control software based on PureData to send commands to the HiSeq control hardware and get images from the scanning microscope. To view, set-up and read the scanner cameras we used HCImage software and TDIScan tool both available for free from Hamamatsu.

Downloads: https://hcimage.com/download/

https://dcam-api.com/downloads/ DCAM-API v15.10.4787


Bright filed transmission microscope scans

An power LED was mounted on the XY table, facing up for transmission microscopy. Images can be scanned with a 0.35 um resolution and in long, 0.7 mm large bands. Some pictures show several bands fitted together using ImageJ. The original images are in 16 bit grayscale TIFF format.

CheckBright.jpg Pollen2.jpg Pollen.jpg
Check Cells, Lycopodium clavatum, Pollen in bight field mode

Yeast.jpg Daphnia.jpg GepWing.jpg GepWingZoom$.jpg
Large scale scan of yeast cells, daphnia, gep wing, Zoom shows detail

Fluorescent microscope scans

Using the laser and the filers, florescent samples can be scanned. We used different dyes that were suitable for the excitation and emission wavelength of the system.


  • Nile Red
  • Erythrosin B
  • Glow stick chemistry
  • fluorescent microbeads

Fluo3.jpg FluorescentCheckCellMontage.jpg FluorescentCheckCellMontage2.jpg CheckFlorescentAndBright.jpg
Microbeads 0.5um, Fluorescently stained check cells, zoom

LySomeFlu.jpg LySomeFlu det.jpg Montage.jpg MontageCOLOR.jpg Stack (RGB).jpg
Lycopodium with fluorescent dye, Lycopodium zoom, large scale scann, brightfield overlay with fluorescent image

Daphnia with fluorescent micro-beads
Link to full resolution image:

Initialization Sequence for use with PureData sketch to scann (yes, we need a better software): (HiSeq Control Software must be installed on Windows Vista)

 Boot Computer
 Turn on HiSeq2000
 Wait for all ports to initialize (DoNotEject drive to show up)
 Start HiSeq Control Software to initialize machine
 Start Windows Task Manager, go to Process window and "End Process" "HiSeqControlSoftware.exe"
 Start HCImageLive
 Choose Camera
 Start "Live"
 Set Exposure
 On PureData "HiSeq3"
 Open Ports 
 Set X-Motor Position
 Set Y-Motor Position
 Home all 3 Tilt Motors
 Set Tilt Motor Encoders to zero
 Set Tilt Motos to "middle position", looking at Live Image, try to focus while moving up stage with Tilt Motors
 Use Z-Drive to fine tune focus
 Exit HCImageLive
 Start TDI Scan Software
 Set Sensor Mode to "TDI"
 Set "Line Bundle Height" to 2000
 Set "Repeat" to 4
 Set Trigger Source to "External"
 In PD:
 Set "Y-Motor Speed" to 0.16
 Set "TDI Arm Lines" to 8000
 Hit "Y-Motor Position" bang
 Hit "Start Y-Scan" bang  
 In TDI Scan Software hit "Sequencial"
 In PD hit "SCAN Automatic"
 You should get a scan image.

Links and Information

Illumina Next Level Sequencing:
Illumina Paired End Sequencing for Dummies:
Expert Videos:
HiSeq2000 support page:
HiSeq 2000 User Guide:

HiSeq Compatibility Chart:

Video of the scanning:

Illumina Support:
Switzerland +41 565800000 +41 800200442

OpenSeq / Discussion

The goal is to make it work!
Let's discuss on the forum.. http://forum.hackteria.org/t/hiseq2000-next-level-hacking/325/1

- Where to get/buy the reagents and flow cells
- Hackquarium Lausanne got a similar machine and dissasembled it. We can get pointers from Gustavo on how to take it all apart!
- Muffatto there's a fluorescence microscope inside (afaik), the issue is to reduce it in size and still have it working
- Muffatto: erik from biocurious reverse engineered the chemistry of the system for BGI - Bengt: Absolutely in on building an openseq kind of thing that can run original reagents. And then re-engineering the system for smaller/cheaper/simpler - even better if combined with an effort to make open reagents - but that is 2 tracks that can progress independently

How about making an Open Source Next Level Sequencing machine - OpenSeq.
Maybe a bit slower and smaller.. like 1 genome per day 🙂
Not sure a price tag of 500k euro is justified for such a machine...
Maybe similar to the iSeq100: