diff --git a/src/controlhost.jl b/src/controlhost.jl
index 0d55d006e5762ad40ba520222451d11f261431a7..a5f00c45daeb3b292ad7f285ddcf4dcff1ebefb7 100644
--- a/src/controlhost.jl
+++ b/src/controlhost.jl
@@ -100,6 +100,7 @@ struct CHClient{T}
 end
 CHTag(::Type{T}) where T = error("No controlhost tag defined for type '$(T)'")
 CHTag(::Type{DAQEvent}) = CHTag("IO_EVT")
+CHTag(::Type{DAQSummaryslice}) = CHTag("IO_SUM")
 CHClient(ip::IPv4, port::Integer, tags::Vector{CHTag}) = CHClient{CHMessage}(ip, port, tags)
 CHClient{T}(ip::IPv4, port::Integer) where T = CHClient{T}(ip, port, [CHTag(T)])
 Base.eltype(::CHClient{T}) where T = T
diff --git a/src/daq.jl b/src/daq.jl
index d2f9981fd1340b50c7fa8a2a1f81525cd45d449e..2b6f530d4a9fd291ed8cc2c5b1daf11ac98ab7b6 100644
--- a/src/daq.jl
+++ b/src/daq.jl
@@ -1,4 +1,5 @@
 # Online DAQ readout
+using StaticArrays
 
 function Base.read(s::IO, ::Type{T}; legacy=false) where T<:DAQEvent
     length = read(s, Int32)
@@ -52,3 +53,39 @@ function Base.read(s::IO, ::Type{T}; legacy=false) where T<:DAQEvent
 
     T(header, snapshot_hits, triggered_hits)
 end
+
+
+function Base.read(s::IO, ::Type{T}; legacy=false) where T<:DAQSummaryslice
+    length = read(s, Int32)
+    type = read(s, Int32)
+    version = Int16(0)
+    !legacy && (version = read(s, Int16))
+
+    detector_id = read(s, Int32)
+    run_id = read(s, Int32)
+    frame_index = read(s, Int32)
+    utc_seconds = read(s, UInt32)
+    utc_16nanosecondcycles = read(s, UInt32) # 16ns ticks
+
+    header = SummarysliceHeader(
+        detector_id,
+        run_id,
+        frame_index,
+        UTCExtended(utc_seconds, utc_16nanosecondcycles)
+    )
+    n_frames = read(s, Int32)
+    summary_frames = Vector{SummaryFrame}()
+    sizehint!(summary_frames, n_frames)
+    @inbounds for i ∈ 1:n_frames
+        dom_id = read(s, Int32)
+        daq = read(s, UInt32)
+        status = read(s,UInt32)
+        fifo = read(s,UInt32)
+        status3 = read(s,UInt32)
+        status4 = read(s,UInt32)
+        rates = @SVector [read(s,UInt8) for i ∈ 1:31]
+        push!(summary_frames, SummaryFrame(dom_id, daq, status, fifo, status3, status4, rates))
+    end
+
+    T(header, summary_frames)
+end
diff --git a/src/exports.jl b/src/exports.jl
index a4b7b646278fa1f9e441dc847bdb665ac09124f7..dfd35e56a0bca437f29a058c5bc47a34bbcc793b 100644
--- a/src/exports.jl
+++ b/src/exports.jl
@@ -44,6 +44,7 @@ ROOTFile,
 
 # Online dataformat
 DAQEvent,
+DAQSummaryslice,
 EventHeader,
 SnapshotHit,
 SummaryFrame,
diff --git a/src/types.jl b/src/types.jl
index 7cb51ff1065e96d5b18276c316a6e697d4299245..efb969cc157090eb315da5f2e71bceca679763f6 100644
--- a/src/types.jl
+++ b/src/types.jl
@@ -205,3 +205,13 @@ struct DAQEvent
     snapshot_hits::Vector{SnapshotHit}
     triggered_hits::Vector{TriggeredHit}
 end
+
+"""
+
+DAQSummaryslice from JLigier
+
+"""
+struct DAQSummaryslice
+    header::SummarysliceHeader
+    summary_frames::Vector{SummaryFrame}
+end