diff --git a/core_tools/data/ds/ds2xarray.py b/core_tools/data/ds/ds2xarray.py
index 3312a72634715f69065f78329b6de6688719b20e..84600785287d275c191806b89b39d7791171781e 100644
--- a/core_tools/data/ds/ds2xarray.py
+++ b/core_tools/data/ds/ds2xarray.py
@@ -4,8 +4,10 @@ import json
 import string
 from qcodes.utils.helpers import NumpyJSONEncoder
 
-def _add_coord(ds, param):
+def _add_coord(ds, param, dup=0):
     name = param.param_name
+    if dup > 0:
+        name += f'-{dup}'
     data = param()
     attrs = {
             'units':param.unit,
@@ -16,12 +18,17 @@ def _add_coord(ds, param):
         if (np.array_equal(data , ds.coords[name].data, equal_nan=True)
             and attrs == ds.coords[name].attrs):
             # coord already added
-            return
-        raise Exception('Cannot handle conversion with duplicate coordinate names that are not equal. '
-                        f'(coord={name})')
+            return name
+        print('*** Duplicate *** ', name, ds.attrs['uuid'])
+#        print(data)
+#        print(ds.coords[name].data)
+        return _add_coord(ds, param, dup+1)
+#        raise Exception('Cannot handle conversion with duplicate coordinate names that are not equal. '
+#                        f'(coord={name})')
 
     ds.coords[name] = data
     ds.coords[name].attrs = attrs
+    return name
 
 def _add_data_var(ds, var, dims, param_index):
     name = var.param_name
@@ -61,20 +68,19 @@ def ds2xarray(ct_ds):
             if param.ndim <= 2:
                 if param.ndim > 0:
                     coord = param.x
-                    dims.append(coord.param_name)
-                    _add_coord(ds, coord)
+                    dim_name = _add_coord(ds, coord)
+                    dims.append(dim_name)
                 if param.ndim > 1:
                     coord = param.y
-                    dims.append(coord.param_name)
-                    _add_coord(ds, coord)
+                    dim_name = _add_coord(ds, coord)
+                    dims.append(dim_name)
             else:
                 for i in range(param.ndim):
                     dim_name  = string.ascii_lowercase[8+i]
 
                     coord = getattr(param, dim_name)
-                    dims.append(coord.param_name)
-                    _add_coord(ds, coord)
-                    _add_coord(ds, coord)
+                    dim_name = _add_coord(ds, coord)
+                    dims.append(dim_name)
 
             _add_data_var(ds, param, dims, param_index)