diff --git a/notebooks/ePix100/Characterize_Darks_ePix100_NBC.ipynb b/notebooks/ePix100/Characterize_Darks_ePix100_NBC.ipynb
index 4b22d84b093aaeb25c778a6babe8da414a45167b..e98cab0f6027c59c489c1c06ec44264018e9020a 100644
--- a/notebooks/ePix100/Characterize_Darks_ePix100_NBC.ipynb
+++ b/notebooks/ePix100/Characterize_Darks_ePix100_NBC.ipynb
@@ -181,27 +181,9 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "# Get timestamp of first train\n",
-    "train_time_stamp = run_dir.train_timestamps()[0].astype(datetime)/1e9\n",
-    "train_time_stamp = datetime.fromtimestamp(train_time_stamp)\n",
-    "\n",
-    "# Acessing receiver slow data through new device configuration\n",
-    "if train_time_stamp > datetime(2023,5,19): # date of device upgrade\n",
-    "    rcvr_src = f\"{karabo_id}/DET/RECEIVER\"\n",
-    "# Acessing receiver slow data through old device configuration\n",
-    "else:\n",
-    "    rcvr_src = f\"{karabo_id}/DET/RECEIVER:daqOutput\""
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "ctrl_data = epix100lib.epix100Ctrl(\n",
+    " ctrl_data = epix100lib.epix100Ctrl(\n",
     "    run_dc=run_dir,\n",
-    "    rcvr_src=rcvr_src,\n",
+    "    instrument_src=instrument_src,\n",
     "    ctrl_src=f\"{karabo_id}/DET/CONTROL\",\n",
     "    )\n",
     "# Read integration time\n",
diff --git a/notebooks/ePix100/Correction_ePix100_NBC.ipynb b/notebooks/ePix100/Correction_ePix100_NBC.ipynb
index ae2579f91a4fa1d6995eabc924709e311d0ca3ec..b11c5e40777d3cecef457be8584d2987f775dccd 100644
--- a/notebooks/ePix100/Correction_ePix100_NBC.ipynb
+++ b/notebooks/ePix100/Correction_ePix100_NBC.ipynb
@@ -190,27 +190,6 @@
     "step_timer = StepTimer()"
    ]
   },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# Get timestamp of first train\n",
-    "train_time_stamp = run_dc.train_timestamps()[0].astype(datetime)/1e9\n",
-    "train_time_stamp = datetime.fromtimestamp(train_time_stamp)\n",
-    "\n",
-    "# Acessing receiver slow data through new device configuration\n",
-    "if train_time_stamp > datetime(2023,5,19): # date of device upgrade\n",
-    "    rcvr_src = f\"{karabo_id}/DET/RECEIVER\"\n",
-    "    key_prefix = 'slowdata'\n",
-    "# Acessing receiver slow data through old device configuration\n",
-    "else:\n",
-    "    rcvr_src = f\"{karabo_id}/DET/RECEIVER:daqOutput\"\n",
-    "    key_prefix = 'data'\n",
-    "    "
-   ]
-  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -229,7 +208,7 @@
     "# Read control data.\n",
     "ctrl_data = epix100lib.epix100Ctrl(\n",
     "    run_dc=run_dc,\n",
-    "    rcvr_src=rcvr_src,\n",
+    "    instrument_src=instrument_src,\n",
     "    ctrl_src=f\"{karabo_id}/DET/CONTROL\",\n",
     "    )\n",
     "\n",
@@ -665,7 +644,7 @@
     "    step_timer.start()  # Correct data. \n",
     "\n",
     "    # Overwrite seq_dc after eliminating empty trains or/and applying limited images.\n",
-    "    slow_data_dc = seq_dc.select(rcvr_src,require_all=True).select_trains(np.s_[:corr_ntrains])\n",
+    "    slow_data_dc = seq_dc.select(instrument_src,require_all=True).select_trains(np.s_[:corr_ntrains])\n",
     "    seq_dc = seq_dc.select(\n",
     "        instrument_src, \"*\", require_all=True).select_trains(np.s_[:corr_ntrains])\n",
     "\n",
@@ -697,19 +676,6 @@
     "        # Create count/first datasets at INDEX source.\n",
     "        outp_source.create_index(data=image_counts)\n",
     "\n",
-    "        # Store uncorrected RAW image datasets for the corrected trains.\n",
-    "\n",
-    "        data_raw_fields = [  # /data/\n",
-    "            \"ambTemp\", \"analogCurr\", \"analogInputVolt\", \"backTemp\",\n",
-    "            \"digitalInputVolt\", \"guardCurr\", \"relHumidity\", \"digitalCurr\"\n",
-    "        ]\n",
-    "        for field in data_raw_fields:\n",
-    "            field_arr = slow_data_dc[rcvr_src, f\"{key_prefix}.{field}\"].ndarray()\n",
-    "\n",
-    "            outp_source.create_key(\n",
-    "                f\"data.{field}\", data=field_arr,\n",
-    "                chunks=(chunk_size_idim, *field_arr.shape[1:]))\n",
-    "\n",
     "        image_raw_fields = [  # /data/image/\n",
     "            \"binning\", \"bitsPerPixel\", \"dimTypes\", \"dims\",\n",
     "            \"encoding\", \"flipX\", \"flipY\", \"roiOffsets\", \"rotation\",\n",
@@ -726,6 +692,9 @@
     "            \"data.image.pixels\", data=data, chunks=dataset_chunk)\n",
     "        outp_source.create_key(\n",
     "            \"data.trainId\", data=seq_dc.train_ids, chunks=min(50, len(seq_dc.train_ids)))\n",
+    "        outp_source.create_key(\n",
+    "            \"data.pulsenId\", data=list(seq_dc[instrument_src]['data.pulseId'].ndarray().squeeze()), chunks=min(50, len(seq_dc.train_ids)))\n",
+    "        \n",
     "        if pattern_classification:\n",
     "            # Add main corrected `data.image.pixels` dataset and store corrected data.\n",
     "            outp_source.create_key(\n",
diff --git a/src/cal_tools/epix100/epix100lib.py b/src/cal_tools/epix100/epix100lib.py
index c54002a44f9a30f9705ea14f2d0f1f482c25bdbb..b2a3a73ac1f419680d6d09e016265ae72812e0df 100644
--- a/src/cal_tools/epix100/epix100lib.py
+++ b/src/cal_tools/epix100/epix100lib.py
@@ -6,16 +6,16 @@ class epix100Ctrl():
         self,
         run_dc: extra_data.DataCollection,
         ctrl_src: str,
-        rcvr_src: str,
+        instrument_src: str,
     ):
         """Read epix100 parameters to use later while quering CALCAT.
         :param run_dir: EXtra-data RunDirectory DataCollection object.
-        :param ctrl_src: CONTROL/*/DET/CONTROL source for accessing slow data from controler.
-        :param rcvr_src: CONTROL/*/DET/RECEIVER source for accessing slow data from receiver.
+        :param ctrl_src: CONTROL source for accessing slow data.
+        :param instrument_src: INSTRUMENT source for accessing fast data.
         """
         self.run_dc = run_dc
         self.ctrl_src = ctrl_src
-        self.rcvr_src = rcvr_src
+        self.instrument_src = instrument_src
 
     def get_integration_time(self):
         return self.run_dc[
@@ -23,20 +23,25 @@ class epix100Ctrl():
 
     def get_temprature(self):
         """Get temperature value from CONTROL.
-        Temprature is stored in Celsius
         atol is degree variation tolerance.
         """
+        # old receiver device configuration
+        # temperature was stored in:
+        #   source: 'MID_EXP_EPIX-1/DET/RECEIVER:daqOutput'
+        #   key: 'data.backTemp'
+        if 'data.backTemp' in self.run_dc[self.instrument_src]:
+            # using `item()` because data.backTemp shape evolved from (n_trains,) to (n_trains, 1)
+            # atol = 100 because temperature was in C/100
+            return self.run_dc[
+                self.instrument_src, 'data.backTemp'].as_single_value(
+                reduce_by='mean', atol=100).item() / 100 
         
-        # older device configuration
-        if self.rcvr_src.find('daqOutput') > 0:
-            atol = 100 # temperature was in C/100
-            data_key = 'data.backTemp'
-        # new device configuration
-        else: 
-            atol = 1
-            data_key = 'slowdata.backTemp'
-        
-        # data.backTemp shape evolved from (n_trains,) to (n_trains, 1)        
-        return self.run_dc[
-            self.rcvr_src, data_key].as_single_value(
-                reduce_by='mean', atol=atol).item() / atol
\ No newline at end of file
+        # new (2023) receiver device configuration 
+        # temperature is stored in:
+        #   source: 'MID_EXP_EPIX-1/DET/RECEIVER'
+        #   key: 'slowdata.backTemp.value'
+        else:
+            return self.run_dc[
+                self.instrument_src.split(':daqOutput')[0], 'slowdata.backTemp.value'].as_single_value(
+                reduce_by='mean', atol=1)
+    
\ No newline at end of file