From 0db91a29a6bcca2fecc138803f377d3aa22401f9 Mon Sep 17 00:00:00 2001
From: Michael DM Dryden <mdryden@chem.utoronto.ca>
Date: Wed, 19 Oct 2016 19:44:52 -0400
Subject: [PATCH] Mostly working

---
 dstat_interface/interface/acv.glade           | 360 +++++++++---------
 dstat_interface/interface/adc_pot.glade       |  58 ++-
 dstat_interface/interface/adc_pot.py          |  12 +-
 .../interface/analysis_options.glade          |  66 ++--
 dstat_interface/interface/calib.glade         | 182 +++------
 dstat_interface/interface/chronoamp.glade     |  52 ++-
 dstat_interface/interface/cv.glade            | 290 ++++++--------
 dstat_interface/interface/db.glade            |  73 ++--
 dstat_interface/interface/db.py               |  23 +-
 dstat_interface/interface/dpv.glade           | 241 ++++--------
 .../interface/dstatinterface.glade            | 277 +++++++-------
 dstat_interface/interface/exp_int.py          |  38 +-
 dstat_interface/interface/lsv.glade           | 101 ++---
 dstat_interface/interface/pd.glade            | 156 +++-----
 dstat_interface/interface/potexp.glade        |  31 +-
 dstat_interface/interface/save.py             |  64 ++--
 dstat_interface/interface/swv.glade           | 260 +++++--------
 dstat_interface/main.py                       |  54 +--
 dstat_interface/plot.py                       |  30 +-
 19 files changed, 968 insertions(+), 1400 deletions(-)

diff --git a/dstat_interface/interface/acv.glade b/dstat_interface/interface/acv.glade
index 3f7b376..d664e83 100644
--- a/dstat_interface/interface/acv.glade
+++ b/dstat_interface/interface/acv.glade
@@ -1,190 +1,181 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
 <interface>
-  <requires lib="gtk+" version="2.24"/>
-  <!-- interface-naming-policy project-wide -->
+  <requires lib="gtk+" version="3.10"/>
   <object class="GtkWindow" id="window1">
     <property name="can_focus">False</property>
     <child>
       <object class="GtkScrolledWindow" id="scrolledwindow1">
         <property name="visible">True</property>
         <property name="can_focus">True</property>
-        <property name="hscrollbar_policy">automatic</property>
-        <property name="vscrollbar_policy">automatic</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <child>
           <object class="GtkViewport" id="viewport1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkVBox" id="vbox1">
+              <object class="GtkBox" id="vbox1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="orientation">vertical</property>
                 <child>
-                  <object class="GtkFrame" id="frame1">
+                  <object class="GtkFrame" id="frame2">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">out</property>
                     <child>
-                      <object class="GtkAlignment" id="alignment1">
+                      <object class="GtkAlignment" id="alignment2">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="bottom_padding">5</property>
                         <property name="left_padding">5</property>
                         <property name="right_padding">5</property>
                         <child>
-                          <object class="GtkTable" id="table1">
+                          <object class="GtkGrid">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="n_rows">3</property>
-                            <property name="n_columns">3</property>
-                            <child>
-                              <object class="GtkLabel" id="label3">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Potential (mV)</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
-                              </packing>
-                            </child>
+                            <property name="row_homogeneous">True</property>
                             <child>
-                              <object class="GtkLabel" id="label4">
+                              <object class="GtkLabel" id="label8">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Time (s)</property>
+                                <property name="hexpand">True</property>
+                                <property name="label" translatable="yes">Start (mV)</property>
                               </object>
                               <packing>
-                                <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label5">
+                              <object class="GtkLabel" id="label9">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
+                                <property name="hexpand">True</property>
+                                <property name="label" translatable="yes">Stop (mV)</property>
                               </object>
                               <packing>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label6">
+                              <object class="GtkLabel" id="label10">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Cleaning</property>
+                                <property name="hexpand">True</property>
+                                <property name="label" translatable="yes">Slope (mV/s)</property>
                               </object>
                               <packing>
-                                <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">2</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label7">
+                              <object class="GtkEntry" id="start_entry">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Deposition</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">●</property>
+                                <property name="width_chars">8</property>
+                                <property name="text" translatable="yes">0</property>
+                                <property name="xalign">1</property>
+                                <property name="primary_icon_activatable">False</property>
+                                <property name="secondary_icon_activatable">False</property>
                               </object>
                               <packing>
-                                <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="clean_mV">
+                              <object class="GtkEntry" id="stop_entry">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="dep_mV">
+                              <object class="GtkEntry" id="slope_entry">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="dep_s">
+                              <object class="GtkLabel" id="label11">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="hexpand">True</property>
+                                <property name="label" translatable="yes">Amplitude (mV)</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">3</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label12">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="hexpand">True</property>
+                                <property name="label" translatable="yes">Frequency (Hz)</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">4</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkEntry" id="amplitude_entry">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
-                                <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
-                                <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">3</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="clean_s">
+                              <object class="GtkEntry" id="freq_entry">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
-                                <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
-                                <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">4</property>
                               </packing>
                             </child>
                           </object>
@@ -192,10 +183,10 @@
                       </object>
                     </child>
                     <child type="label">
-                      <object class="GtkLabel" id="label1">
+                      <object class="GtkLabel" id="label2">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">Preconditioning</property>
+                        <property name="label" translatable="yes">Experiment</property>
                         <property name="use_markup">True</property>
                       </object>
                     </child>
@@ -208,211 +199,215 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkFrame" id="frame2">
+                  <object class="GtkFrame" id="frame1">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">out</property>
                     <child>
-                      <object class="GtkAlignment" id="alignment2">
+                      <object class="GtkAlignment" id="alignment1">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="bottom_padding">5</property>
                         <property name="left_padding">5</property>
                         <property name="right_padding">5</property>
                         <child>
-                          <object class="GtkTable" id="table2">
+                          <object class="GtkGrid">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="n_rows">5</property>
-                            <property name="n_columns">2</property>
-                            <property name="column_spacing">10</property>
-                            <property name="homogeneous">True</property>
+                            <property name="row_homogeneous">True</property>
                             <child>
-                              <object class="GtkLabel" id="label8">
+                              <object class="GtkLabel" id="label3">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Start (mV)</property>
+                                <property name="label" translatable="yes">Potential (mV)</property>
                               </object>
                               <packing>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label9">
+                              <object class="GtkLabel" id="label4">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Stop (mV)</property>
+                                <property name="label" translatable="yes">Time (s)</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label6">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="hexpand">True</property>
+                                <property name="label" translatable="yes">Cleaning</property>
                               </object>
                               <packing>
+                                <property name="left_attach">0</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label10">
+                              <object class="GtkLabel" id="label7">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Slope (mV/s)</property>
+                                <property name="hexpand">True</property>
+                                <property name="label" translatable="yes">Deposition</property>
                               </object>
                               <packing>
+                                <property name="left_attach">0</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="start_entry">
+                              <object class="GtkEntry" id="clean_mV">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="top_attach">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="stop_entry">
+                              <object class="GtkEntry" id="dep_mV">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="top_attach">2</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="slope_entry">
+                              <object class="GtkEntry" id="dep_s">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
+                                <property name="left_attach">2</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label11">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Amplitude (mV)</property>
-                              </object>
-                              <packing>
-                                <property name="top_attach">3</property>
-                                <property name="bottom_attach">4</property>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label12">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Frequency (Hz)</property>
-                              </object>
-                              <packing>
-                                <property name="top_attach">4</property>
-                                <property name="bottom_attach">5</property>
-                                <property name="y_options">GTK_FILL</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="amplitude_entry">
+                              <object class="GtkEntry" id="clean_s">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">3</property>
-                                <property name="bottom_attach">4</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="freq_entry">
+                              <object class="GtkLabel" id="label5">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">●</property>
-                                <property name="width_chars">8</property>
-                                <property name="text" translatable="yes">0</property>
-                                <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
-                                <property name="primary_icon_activatable">False</property>
-                                <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
+                                <property name="can_focus">False</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">4</property>
-                                <property name="bottom_attach">5</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="left_attach">9</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
                           </object>
                         </child>
                       </object>
                     </child>
                     <child type="label">
-                      <object class="GtkLabel" id="label2">
+                      <object class="GtkLabel" id="label1">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">Experiment</property>
+                        <property name="label" translatable="yes">Preconditioning</property>
                         <property name="use_markup">True</property>
                       </object>
                     </child>
@@ -428,16 +423,15 @@
                   <object class="GtkLabel" id="label13">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="xpad">20</property>
-                    <property name="ypad">20</property>
                     <property name="label" translatable="yes">Experiment not yet implemented</property>
                     <attributes>
                       <attribute name="weight" value="bold"/>
                     </attributes>
                   </object>
                   <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="padding">6</property>
                     <property name="position">2</property>
                   </packing>
                 </child>
diff --git a/dstat_interface/interface/adc_pot.glade b/dstat_interface/interface/adc_pot.glade
index 6cb4371..fcb0d6e 100644
--- a/dstat_interface/interface/adc_pot.glade
+++ b/dstat_interface/interface/adc_pot.glade
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
 <interface>
-  <requires lib="gtk+" version="2.24"/>
-  <!-- interface-naming-policy project-wide -->
+  <requires lib="gtk+" version="3.10"/>
   <object class="GtkListStore" id="gain_liststore">
     <columns>
       <!-- column-name index -->
@@ -196,13 +196,15 @@
   <object class="GtkWindow" id="window1">
     <property name="can_focus">False</property>
     <child>
-      <object class="GtkVBox" id="vbox1">
+      <object class="GtkBox" id="vbox1">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
         <child>
-          <object class="GtkVBox" id="vbox2">
+          <object class="GtkBox" id="vbox2">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
+            <property name="orientation">vertical</property>
             <child>
               <object class="GtkFrame" id="adc_frame">
                 <property name="visible">True</property>
@@ -217,12 +219,11 @@
                     <property name="left_padding">5</property>
                     <property name="right_padding">5</property>
                     <child>
-                      <object class="GtkTable" id="table1">
+                      <object class="GtkGrid">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="n_rows">4</property>
-                        <property name="n_columns">2</property>
-                        <property name="row_spacing">2</property>
+                        <property name="row_homogeneous">True</property>
+                        <property name="column_homogeneous">True</property>
                         <child>
                           <object class="GtkLabel" id="label2">
                             <property name="visible">True</property>
@@ -230,6 +231,10 @@
                             <property name="tooltip_text" translatable="yes">Gain of the ADC's programmable gain amplifier. Default is 2 - gives full scale input.</property>
                             <property name="label" translatable="yes">PGA Setting</property>
                           </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
                         </child>
                         <child>
                           <object class="GtkLabel" id="label3">
@@ -238,8 +243,8 @@
                             <property name="label" translatable="yes">Sample Rate</property>
                           </object>
                           <packing>
+                            <property name="left_attach">0</property>
                             <property name="top_attach">1</property>
-                            <property name="bottom_attach">2</property>
                           </packing>
                         </child>
                         <child>
@@ -252,10 +257,7 @@
                           </object>
                           <packing>
                             <property name="left_attach">1</property>
-                            <property name="right_attach">2</property>
                             <property name="top_attach">2</property>
-                            <property name="bottom_attach">3</property>
-                            <property name="x_options">GTK_EXPAND</property>
                           </packing>
                         </child>
                         <child>
@@ -266,8 +268,8 @@
                             <property name="label" translatable="yes">Input Buffer</property>
                           </object>
                           <packing>
+                            <property name="left_attach">0</property>
                             <property name="top_attach">2</property>
-                            <property name="bottom_attach">3</property>
                           </packing>
                         </child>
                         <child>
@@ -278,7 +280,7 @@
                           </object>
                           <packing>
                             <property name="left_attach">1</property>
-                            <property name="right_attach">2</property>
+                            <property name="top_attach">0</property>
                           </packing>
                         </child>
                         <child>
@@ -289,9 +291,7 @@
                           </object>
                           <packing>
                             <property name="left_attach">1</property>
-                            <property name="right_attach">2</property>
                             <property name="top_attach">1</property>
-                            <property name="bottom_attach">2</property>
                           </packing>
                         </child>
                         <child>
@@ -302,8 +302,8 @@
                             <property name="label" translatable="yes">2 Electrode Mode</property>
                           </object>
                           <packing>
+                            <property name="left_attach">0</property>
                             <property name="top_attach">3</property>
-                            <property name="bottom_attach">4</property>
                           </packing>
                         </child>
                         <child>
@@ -315,10 +315,7 @@
                           </object>
                           <packing>
                             <property name="left_attach">1</property>
-                            <property name="right_attach">2</property>
                             <property name="top_attach">3</property>
-                            <property name="bottom_attach">4</property>
-                            <property name="x_options">GTK_EXPAND</property>
                           </packing>
                         </child>
                       </object>
@@ -336,8 +333,7 @@
               </object>
               <packing>
                 <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="padding">2</property>
+                <property name="fill">True</property>
                 <property name="position">0</property>
               </packing>
             </child>
@@ -355,9 +351,10 @@
                     <property name="left_padding">5</property>
                     <property name="right_padding">5</property>
                     <child>
-                      <object class="GtkHBox" id="hbox1">
+                      <object class="GtkGrid">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="column_homogeneous">True</property>
                         <child>
                           <object class="GtkLabel" id="label6">
                             <property name="visible">True</property>
@@ -366,9 +363,8 @@
                             <property name="label" translatable="yes">Gain</property>
                           </object>
                           <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
                           </packing>
                         </child>
                         <child>
@@ -378,9 +374,8 @@
                             <property name="model">gain_liststore</property>
                           </object>
                           <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
                           </packing>
                         </child>
                       </object>
@@ -405,8 +400,9 @@
             </child>
           </object>
           <packing>
-            <property name="expand">True</property>
-            <property name="fill">True</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="padding">2</property>
             <property name="position">0</property>
           </packing>
         </child>
diff --git a/dstat_interface/interface/adc_pot.py b/dstat_interface/interface/adc_pot.py
index aafaacd..28619d1 100755
--- a/dstat_interface/interface/adc_pot.py
+++ b/dstat_interface/interface/adc_pot.py
@@ -18,7 +18,13 @@
 #     You should have received a copy of the GNU General Public License
 #     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-import gtk
+try:
+    import gi
+    gi.require_version('Gtk', '3.0')
+    from gi.repository import Gtk
+except ImportError:
+    print "ERR: GTK not available"
+    sys.exit(1)
 
 from errors import InputError, VarError, ErrorLogger
 _logger = ErrorLogger(sender="dstat_adc_pot")
@@ -44,10 +50,10 @@ v1_2_gain = [(0, "Bypass", 0),
 
 class adc_pot(object):
     def __init__(self):
-        self.builder = gtk.Builder()
+        self.builder = Gtk.Builder()
         self.builder.add_from_file('interface/adc_pot.glade')
         self.builder.connect_signals(self)
-        self.cell = gtk.CellRendererText()
+        self.cell = Gtk.CellRendererText()
         
         ui_keys = ['buffer_true',
                    'short_true',
diff --git a/dstat_interface/interface/analysis_options.glade b/dstat_interface/interface/analysis_options.glade
index be8262f..dda2e6c 100644
--- a/dstat_interface/interface/analysis_options.glade
+++ b/dstat_interface/interface/analysis_options.glade
@@ -1,31 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
 <interface>
-  <requires lib="gtk+" version="2.24"/>
-  <!-- interface-naming-policy project-wide -->
-  <object class="GtkAdjustment" id="stats_start_adj">
-    <property name="lower">-3000</property>
-    <property name="upper">9999</property>
-    <property name="step_increment">0.5</property>
-    <property name="page_increment">10</property>
-  </object>
-  <object class="GtkAdjustment" id="stats_stop_adj">
-    <property name="lower">-3000</property>
-    <property name="upper">9999</property>
-    <property name="step_increment">0.5</property>
-    <property name="page_increment">10</property>
-  </object>
+  <requires lib="gtk+" version="3.10"/>
   <object class="GtkDialog" id="analysis_dialog">
     <property name="can_focus">False</property>
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Analysis Options…</property>
     <property name="type_hint">dialog</property>
     <child internal-child="vbox">
-      <object class="GtkVBox" id="dialog-vbox1">
+      <object class="GtkBox" id="dialog-vbox1">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
         <property name="spacing">2</property>
         <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area1">
+          <object class="GtkButtonBox" id="dialog-action_area1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="layout_style">end</property>
@@ -54,27 +43,18 @@
           </packing>
         </child>
         <child>
-          <object class="GtkTable" id="table1">
+          <object class="GtkGrid">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="n_rows">4</property>
-            <property name="n_columns">2</property>
-            <child>
-              <placeholder/>
-            </child>
-            <child>
-              <placeholder/>
-            </child>
             <child>
               <object class="GtkSpinButton" id="stats_start_spin">
                 <property name="visible">True</property>
                 <property name="sensitive">False</property>
                 <property name="can_focus">True</property>
                 <property name="invisible_char">●</property>
+                <property name="text" translatable="yes">0.00</property>
                 <property name="primary_icon_activatable">False</property>
                 <property name="secondary_icon_activatable">False</property>
-                <property name="primary_icon_sensitive">True</property>
-                <property name="secondary_icon_sensitive">True</property>
                 <property name="adjustment">stats_start_adj</property>
                 <property name="climb_rate">0.050000000000000003</property>
                 <property name="digits">2</property>
@@ -82,9 +62,7 @@
               </object>
               <packing>
                 <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
                 <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
               </packing>
             </child>
             <child>
@@ -93,10 +71,9 @@
                 <property name="sensitive">False</property>
                 <property name="can_focus">True</property>
                 <property name="invisible_char">●</property>
+                <property name="text" translatable="yes">0.00</property>
                 <property name="primary_icon_activatable">False</property>
                 <property name="secondary_icon_activatable">False</property>
-                <property name="primary_icon_sensitive">True</property>
-                <property name="secondary_icon_sensitive">True</property>
                 <property name="adjustment">stats_stop_adj</property>
                 <property name="climb_rate">0.050000000000000003</property>
                 <property name="digits">2</property>
@@ -105,9 +82,7 @@
               </object>
               <packing>
                 <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
                 <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
               </packing>
             </child>
             <child>
@@ -116,11 +91,14 @@
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
+                <property name="halign">center</property>
                 <property name="image_position">bottom</property>
                 <property name="draw_indicator">True</property>
               </object>
               <packing>
-                <property name="right_attach">2</property>
+                <property name="left_attach">0</property>
+                <property name="top_attach">0</property>
+                <property name="width">2</property>
               </packing>
             </child>
             <child>
@@ -130,11 +108,12 @@
                 <property name="sensitive">False</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
+                <property name="hexpand">True</property>
                 <property name="draw_indicator">True</property>
               </object>
               <packing>
+                <property name="left_attach">0</property>
                 <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
               </packing>
             </child>
             <child>
@@ -144,16 +123,17 @@
                 <property name="sensitive">False</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
+                <property name="hexpand">True</property>
                 <property name="draw_indicator">True</property>
               </object>
               <packing>
+                <property name="left_attach">0</property>
                 <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
               </packing>
             </child>
           </object>
           <packing>
-            <property name="expand">True</property>
+            <property name="expand">False</property>
             <property name="fill">True</property>
             <property name="position">1</property>
           </packing>
@@ -164,4 +144,16 @@
       <action-widget response="0">ok_button</action-widget>
     </action-widgets>
   </object>
+  <object class="GtkAdjustment" id="stats_start_adj">
+    <property name="lower">-3000</property>
+    <property name="upper">9999</property>
+    <property name="step_increment">0.5</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="stats_stop_adj">
+    <property name="lower">-3000</property>
+    <property name="upper">9999</property>
+    <property name="step_increment">0.5</property>
+    <property name="page_increment">10</property>
+  </object>
 </interface>
diff --git a/dstat_interface/interface/calib.glade b/dstat_interface/interface/calib.glade
index 2c72437..ff4b40f 100644
--- a/dstat_interface/interface/calib.glade
+++ b/dstat_interface/interface/calib.glade
@@ -1,40 +1,28 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
 <interface>
-  <requires lib="gtk+" version="2.24"/>
-  <!-- interface-naming-policy project-wide -->
+  <requires lib="gtk+" version="3.10"/>
   <object class="GtkWindow" id="window1">
     <property name="can_focus">False</property>
     <child>
       <object class="GtkScrolledWindow" id="scrolledwindow1">
         <property name="visible">True</property>
         <property name="can_focus">True</property>
-        <property name="hscrollbar_policy">automatic</property>
-        <property name="vscrollbar_policy">automatic</property>
         <child>
           <object class="GtkViewport" id="viewport1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkVBox" id="vbox1">
+              <object class="GtkBox" id="vbox1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="orientation">vertical</property>
                 <child>
-                  <object class="GtkTable" id="table1">
+                  <object class="GtkGrid">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="n_rows">13</property>
-                    <property name="n_columns">2</property>
-                    <property name="homogeneous">True</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
+                    <property name="row_homogeneous">True</property>
                     <child>
                       <object class="GtkEntry" id="time_entry">
                         <property name="visible">True</property>
@@ -44,18 +32,12 @@
                         <property name="width_chars">8</property>
                         <property name="text" translatable="yes">0</property>
                         <property name="xalign">1</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
-                        <property name="y_padding">3</property>
+                        <property name="top_attach">0</property>
                       </packing>
                     </child>
                     <child>
@@ -65,19 +47,8 @@
                         <property name="label" translatable="yes">Measurement Time (s)</property>
                       </object>
                       <packing>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkHSeparator" id="hseparator1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                      </object>
-                      <packing>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
                       </packing>
                     </child>
                     <child>
@@ -87,10 +58,8 @@
                         <property name="label" translatable="yes">Resistor</property>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">2</property>
-                        <property name="bottom_attach">3</property>
-                        <property name="x_options"/>
-                        <property name="x_padding">10</property>
                       </packing>
                     </child>
                     <child>
@@ -101,9 +70,7 @@
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">2</property>
-                        <property name="bottom_attach">3</property>
                       </packing>
                     </child>
                     <child>
@@ -113,9 +80,8 @@
                         <property name="label" translatable="yes">100 Ω</property>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">3</property>
-                        <property name="bottom_attach">4</property>
-                        <property name="x_options"/>
                       </packing>
                     </child>
                     <child>
@@ -125,9 +91,8 @@
                         <property name="label" translatable="yes">3 kΩ</property>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">4</property>
-                        <property name="bottom_attach">5</property>
-                        <property name="x_options">GTK_EXPAND</property>
                       </packing>
                     </child>
                     <child>
@@ -137,9 +102,8 @@
                         <property name="label" translatable="yes">30 kΩ</property>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">5</property>
-                        <property name="bottom_attach">6</property>
-                        <property name="x_options">GTK_EXPAND</property>
                       </packing>
                     </child>
                     <child>
@@ -149,9 +113,8 @@
                         <property name="label" translatable="yes">300 kΩ</property>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">6</property>
-                        <property name="bottom_attach">7</property>
-                        <property name="x_options">GTK_EXPAND</property>
                       </packing>
                     </child>
                     <child>
@@ -161,9 +124,8 @@
                         <property name="label" translatable="yes">3 MΩ</property>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">7</property>
-                        <property name="bottom_attach">8</property>
-                        <property name="x_options">GTK_EXPAND</property>
                       </packing>
                     </child>
                     <child>
@@ -173,9 +135,8 @@
                         <property name="label" translatable="yes">30 MΩ</property>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">8</property>
-                        <property name="bottom_attach">9</property>
-                        <property name="x_options">GTK_EXPAND</property>
                       </packing>
                     </child>
                     <child>
@@ -185,9 +146,8 @@
                         <property name="label" translatable="yes">100 MΩ</property>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">9</property>
-                        <property name="bottom_attach">10</property>
-                        <property name="x_options">GTK_EXPAND</property>
                       </packing>
                     </child>
                     <child>
@@ -199,20 +159,12 @@
                         <property name="width_chars">8</property>
                         <property name="text" translatable="yes">0</property>
                         <property name="xalign">1</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">5</property>
-                        <property name="bottom_attach">6</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
-                        <property name="y_padding">3</property>
                       </packing>
                     </child>
                     <child>
@@ -224,20 +176,12 @@
                         <property name="width_chars">8</property>
                         <property name="text" translatable="yes">0</property>
                         <property name="xalign">1</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">4</property>
-                        <property name="bottom_attach">5</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
-                        <property name="y_padding">3</property>
                       </packing>
                     </child>
                     <child>
@@ -249,20 +193,12 @@
                         <property name="width_chars">8</property>
                         <property name="text" translatable="yes">0</property>
                         <property name="xalign">1</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">3</property>
-                        <property name="bottom_attach">4</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
-                        <property name="y_padding">3</property>
                       </packing>
                     </child>
                     <child>
@@ -274,20 +210,12 @@
                         <property name="width_chars">8</property>
                         <property name="text" translatable="yes">0</property>
                         <property name="xalign">1</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">6</property>
-                        <property name="bottom_attach">7</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
-                        <property name="y_padding">3</property>
                       </packing>
                     </child>
                     <child>
@@ -299,20 +227,12 @@
                         <property name="width_chars">8</property>
                         <property name="text" translatable="yes">0</property>
                         <property name="xalign">1</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">7</property>
-                        <property name="bottom_attach">8</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
-                        <property name="y_padding">3</property>
                       </packing>
                     </child>
                     <child>
@@ -324,20 +244,12 @@
                         <property name="width_chars">8</property>
                         <property name="text" translatable="yes">0</property>
                         <property name="xalign">1</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">8</property>
-                        <property name="bottom_attach">9</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
-                        <property name="y_padding">3</property>
                       </packing>
                     </child>
                     <child>
@@ -349,20 +261,12 @@
                         <property name="width_chars">8</property>
                         <property name="text" translatable="yes">0</property>
                         <property name="xalign">1</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">9</property>
-                        <property name="bottom_attach">10</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
-                        <property name="y_padding">3</property>
                       </packing>
                     </child>
                     <child>
@@ -374,12 +278,8 @@
                         <signal name="clicked" handler="on_read_button_clicked" swapped="no"/>
                       </object>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">10</property>
-                        <property name="bottom_attach">11</property>
-                        <property name="x_options">GTK_EXPAND | GTK_SHRINK</property>
-                        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">11</property>
                       </packing>
                     </child>
                     <child>
@@ -391,12 +291,8 @@
                         <signal name="clicked" handler="on_write_button_clicked" swapped="no"/>
                       </object>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">11</property>
-                        <property name="bottom_attach">12</property>
-                        <property name="x_options">GTK_EXPAND | GTK_SHRINK</property>
-                        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">12</property>
                       </packing>
                     </child>
                     <child>
@@ -408,18 +304,34 @@
                         <signal name="clicked" handler="on_measure_button_clicked" swapped="no"/>
                       </object>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">12</property>
-                        <property name="bottom_attach">13</property>
-                        <property name="x_options">GTK_EXPAND | GTK_SHRINK</property>
-                        <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">10</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSeparator">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                        <property name="width">2</property>
                       </packing>
                     </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
                   </object>
                   <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
@@ -427,8 +339,8 @@
                   <object class="GtkLabel" id="label13">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="xpad">5</property>
-                    <property name="ypad">20</property>
+                    <property name="hexpand">True</property>
+                    <property name="vexpand">True</property>
                     <property name="label" translatable="yes">Measure with WE open.
 Offsets cannot exceed 16 bit unsigned int.</property>
                     <attributes>
diff --git a/dstat_interface/interface/chronoamp.glade b/dstat_interface/interface/chronoamp.glade
index b3ceb06..e0a22de 100644
--- a/dstat_interface/interface/chronoamp.glade
+++ b/dstat_interface/interface/chronoamp.glade
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
 <interface>
-  <requires lib="gtk+" version="2.24"/>
-  <!-- interface-naming-policy project-wide -->
+  <requires lib="gtk+" version="3.10"/>
   <object class="GtkListStore" id="ca_list">
     <columns>
       <!-- column-name millivolts -->
@@ -18,29 +18,34 @@
       <object class="GtkScrolledWindow" id="scrolledwindow1">
         <property name="visible">True</property>
         <property name="can_focus">True</property>
-        <property name="hscrollbar_policy">automatic</property>
-        <property name="vscrollbar_policy">automatic</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <child>
           <object class="GtkViewport" id="viewport1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkVBox" id="vbox1">
+              <object class="GtkBox" id="vbox1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="orientation">vertical</property>
                 <child>
-                  <object class="GtkTable" id="table1">
+                  <object class="GtkGrid">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="n_rows">3</property>
-                    <property name="n_columns">2</property>
+                    <property name="row_homogeneous">True</property>
+                    <property name="column_homogeneous">True</property>
                     <child>
                       <object class="GtkLabel" id="label1">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="label" translatable="yes">Potential (mV)</property>
                       </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                      </packing>
                     </child>
                     <child>
                       <object class="GtkEntry" id="potential_entry">
@@ -51,18 +56,13 @@
                         <property name="text" translatable="yes">0</property>
                         <property name="xalign">1</property>
                         <property name="truncate_multiline">True</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="caps_lock_warning">False</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_SHRINK</property>
+                        <property name="top_attach">0</property>
                       </packing>
                     </child>
                     <child>
@@ -72,8 +72,8 @@
                         <property name="label" translatable="yes">Time (s)</property>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
                       </packing>
                     </child>
                     <child>
@@ -85,20 +85,13 @@
                         <property name="text" translatable="yes">0</property>
                         <property name="xalign">1</property>
                         <property name="truncate_multiline">True</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="caps_lock_warning">False</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_SHRINK</property>
                       </packing>
                     </child>
                     <child>
@@ -111,8 +104,8 @@
                         <signal name="clicked" handler="on_add_button_clicked" swapped="no"/>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">2</property>
-                        <property name="bottom_attach">3</property>
                       </packing>
                     </child>
                     <child>
@@ -126,29 +119,26 @@
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">2</property>
-                        <property name="bottom_attach">3</property>
                       </packing>
                     </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="padding">5</property>
+                    <property name="fill">False</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkVBox" id="vbox2">
+                  <object class="GtkBox">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
+                    <property name="orientation">vertical</property>
                     <child>
                       <object class="GtkTreeView" id="treeview">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="model">ca_list</property>
-                        <property name="headers_clickable">False</property>
                         <property name="reorderable">True</property>
                         <property name="rules_hint">True</property>
                         <property name="enable_search">False</property>
@@ -157,6 +147,9 @@
                         <property name="show_expanders">False</property>
                         <property name="rubber_banding">True</property>
                         <property name="enable_grid_lines">both</property>
+                        <child internal-child="selection">
+                          <object class="GtkTreeSelection"/>
+                        </child>
                       </object>
                       <packing>
                         <property name="expand">True</property>
@@ -169,7 +162,6 @@
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="spacing">2</property>
-                        <property name="has_resize_grip">False</property>
                       </object>
                       <packing>
                         <property name="expand">False</property>
diff --git a/dstat_interface/interface/cv.glade b/dstat_interface/interface/cv.glade
index ab547ac..c65e4bc 100644
--- a/dstat_interface/interface/cv.glade
+++ b/dstat_interface/interface/cv.glade
@@ -1,190 +1,177 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
 <interface>
-  <requires lib="gtk+" version="2.24"/>
-  <!-- interface-naming-policy project-wide -->
+  <requires lib="gtk+" version="3.10"/>
   <object class="GtkWindow" id="window1">
     <property name="can_focus">False</property>
     <child>
       <object class="GtkScrolledWindow" id="scrolledwindow1">
         <property name="visible">True</property>
         <property name="can_focus">True</property>
-        <property name="hscrollbar_policy">automatic</property>
-        <property name="vscrollbar_policy">automatic</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <child>
           <object class="GtkViewport" id="viewport1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkVBox" id="vbox1">
+              <object class="GtkBox">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="orientation">vertical</property>
                 <child>
-                  <object class="GtkFrame" id="frame1">
+                  <object class="GtkFrame" id="frame2">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">out</property>
                     <child>
-                      <object class="GtkAlignment" id="alignment1">
+                      <object class="GtkAlignment" id="alignment2">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="bottom_padding">5</property>
                         <property name="left_padding">5</property>
                         <property name="right_padding">5</property>
                         <child>
-                          <object class="GtkTable" id="table1">
+                          <object class="GtkGrid">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="n_rows">3</property>
-                            <property name="n_columns">3</property>
+                            <property name="row_homogeneous">True</property>
+                            <property name="column_homogeneous">True</property>
                             <child>
-                              <object class="GtkLabel" id="label3">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Potential (mV)</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label4">
+                              <object class="GtkLabel" id="label8">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Time (s)</property>
+                                <property name="label" translatable="yes">Start (mV)</property>
                               </object>
                               <packing>
-                                <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label5">
+                              <object class="GtkLabel" id="label9">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Vertex 1 (mV)</property>
                               </object>
                               <packing>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label6">
+                              <object class="GtkLabel" id="label10">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Cleaning</property>
+                                <property name="label" translatable="yes">Vertex 2 (mV)</property>
                               </object>
                               <packing>
-                                <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">2</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label7">
+                              <object class="GtkEntry" id="start_entry">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Deposition</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">●</property>
+                                <property name="width_chars">8</property>
+                                <property name="text" translatable="yes">0</property>
+                                <property name="xalign">1</property>
+                                <property name="primary_icon_activatable">False</property>
+                                <property name="secondary_icon_activatable">False</property>
                               </object>
                               <packing>
-                                <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="clean_mV">
+                              <object class="GtkEntry" id="v1_entry">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="dep_mV">
+                              <object class="GtkEntry" id="v2_entry">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="dep_s">
+                              <object class="GtkLabel" id="label11">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Slope (mV/s)</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">3</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label12">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Scans</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">4</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkEntry" id="slope_entry">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
-                                <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
-                                <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">3</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="clean_s">
+                              <object class="GtkEntry" id="scans_entry">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
-                                <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
-                                <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">4</property>
                               </packing>
                             </child>
                           </object>
@@ -192,10 +179,10 @@
                       </object>
                     </child>
                     <child type="label">
-                      <object class="GtkLabel" id="label1">
+                      <object class="GtkLabel" id="label2">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">Preconditioning</property>
+                        <property name="label" translatable="yes">Experiment</property>
                         <property name="use_markup">True</property>
                       </object>
                     </child>
@@ -203,205 +190,146 @@
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
-                    <property name="padding">2</property>
+                    <property name="padding">1</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkFrame" id="frame2">
+                  <object class="GtkFrame" id="frame1">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">out</property>
                     <child>
-                      <object class="GtkAlignment" id="alignment2">
+                      <object class="GtkAlignment" id="alignment1">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="bottom_padding">5</property>
                         <property name="left_padding">5</property>
                         <property name="right_padding">5</property>
                         <child>
-                          <object class="GtkTable" id="table2">
+                          <object class="GtkGrid">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="n_rows">5</property>
-                            <property name="n_columns">2</property>
-                            <property name="column_spacing">10</property>
-                            <property name="homogeneous">True</property>
+                            <property name="row_homogeneous">True</property>
+                            <property name="column_homogeneous">True</property>
                             <child>
-                              <object class="GtkLabel" id="label8">
+                              <object class="GtkLabel" id="label3">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Start (mV)</property>
+                                <property name="vexpand">False</property>
+                                <property name="label" translatable="yes">Potential (mV)</property>
                               </object>
                               <packing>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label9">
+                              <object class="GtkLabel" id="label4">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Vertex 1 (mV)</property>
+                                <property name="label" translatable="yes">Time (s)</property>
                               </object>
                               <packing>
-                                <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label10">
+                              <object class="GtkLabel" id="label5">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Vertex 2 (mV)</property>
                               </object>
                               <packing>
-                                <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="start_entry">
+                              <object class="GtkLabel" id="label6">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">●</property>
-                                <property name="width_chars">8</property>
-                                <property name="text" translatable="yes">0</property>
-                                <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
-                                <property name="primary_icon_activatable">False</property>
-                                <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Cleaning</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="v1_entry">
+                              <object class="GtkLabel" id="label7">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Deposition</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">2</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkEntry" id="clean_mV">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="v2_entry">
+                              <object class="GtkEntry" id="dep_mV">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label11">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Slope (mV/s)</property>
-                              </object>
-                              <packing>
-                                <property name="top_attach">3</property>
-                                <property name="bottom_attach">4</property>
-                                <property name="y_options">GTK_FILL</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label12">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Scans</property>
-                              </object>
-                              <packing>
-                                <property name="top_attach">4</property>
-                                <property name="bottom_attach">5</property>
-                                <property name="y_options">GTK_FILL</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="slope_entry">
+                              <object class="GtkEntry" id="dep_s">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">3</property>
-                                <property name="bottom_attach">4</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">2</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="scans_entry">
+                              <object class="GtkEntry" id="clean_s">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">4</property>
-                                <property name="bottom_attach">5</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">1</property>
                               </packing>
                             </child>
                           </object>
@@ -409,10 +337,10 @@
                       </object>
                     </child>
                     <child type="label">
-                      <object class="GtkLabel" id="label2">
+                      <object class="GtkLabel" id="label1">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">Experiment</property>
+                        <property name="label" translatable="yes">Preconditioning</property>
                         <property name="use_markup">True</property>
                       </object>
                     </child>
diff --git a/dstat_interface/interface/db.glade b/dstat_interface/interface/db.glade
index 20a833a..e65d520 100644
--- a/dstat_interface/interface/db.glade
+++ b/dstat_interface/interface/db.glade
@@ -1,16 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
 <interface>
-  <requires lib="gtk+" version="2.24"/>
-  <!-- interface-naming-policy project-wide -->
+  <requires lib="gtk+" version="3.10"/>
   <object class="GtkWindow" id="db_window">
     <property name="can_focus">False</property>
     <property name="title" translatable="yes">Database</property>
     <property name="window_position">center-on-parent</property>
     <property name="destroy_with_parent">True</property>
     <child>
-      <object class="GtkVBox" id="vbox1">
+      <object class="GtkBox" id="vbox1">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
         <child>
           <object class="GtkCheckButton" id="db_enable_checkbutton">
             <property name="label" translatable="yes">Enable Database saving</property>
@@ -28,17 +29,11 @@
           </packing>
         </child>
         <child>
-          <object class="GtkTable" id="db_control_table">
+          <object class="GtkGrid" id="db_control_table">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="n_rows">5</property>
-            <property name="n_columns">3</property>
-            <child>
-              <placeholder/>
-            </child>
-            <child>
-              <placeholder/>
-            </child>
+            <property name="row_homogeneous">True</property>
+            <property name="column_homogeneous">True</property>
             <child>
               <object class="GtkLabel" id="label3">
                 <property name="visible">True</property>
@@ -46,8 +41,8 @@
                 <property name="label" translatable="yes">Measurement ID</property>
               </object>
               <packing>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
+                <property name="left_attach">0</property>
+                <property name="top_attach">0</property>
               </packing>
             </child>
             <child>
@@ -56,6 +51,10 @@
                 <property name="can_focus">False</property>
                 <property name="label" translatable="yes">Experiment ID</property>
               </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">1</property>
+              </packing>
             </child>
             <child>
               <object class="GtkEntry" id="exp_id_entry">
@@ -64,12 +63,10 @@
                 <property name="invisible_char">●</property>
                 <property name="primary_icon_activatable">False</property>
                 <property name="secondary_icon_activatable">False</property>
-                <property name="primary_icon_sensitive">True</property>
-                <property name="secondary_icon_sensitive">True</property>
               </object>
               <packing>
                 <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
               </packing>
             </child>
             <child>
@@ -80,14 +77,10 @@
                 <property name="invisible_char">●</property>
                 <property name="primary_icon_activatable">False</property>
                 <property name="secondary_icon_activatable">False</property>
-                <property name="primary_icon_sensitive">True</property>
-                <property name="secondary_icon_sensitive">True</property>
               </object>
               <packing>
                 <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
+                <property name="top_attach">0</property>
               </packing>
             </child>
             <child>
@@ -98,14 +91,10 @@
                 <property name="invisible_char">●</property>
                 <property name="primary_icon_activatable">False</property>
                 <property name="secondary_icon_activatable">False</property>
-                <property name="primary_icon_sensitive">True</property>
-                <property name="secondary_icon_sensitive">True</property>
               </object>
               <packing>
                 <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
                 <property name="top_attach">3</property>
-                <property name="bottom_attach">4</property>
               </packing>
             </child>
             <child>
@@ -115,8 +104,8 @@
                 <property name="label" translatable="yes">Patient ID</property>
               </object>
               <packing>
+                <property name="left_attach">0</property>
                 <property name="top_attach">3</property>
-                <property name="bottom_attach">4</property>
               </packing>
             </child>
             <child>
@@ -129,7 +118,7 @@
               </object>
               <packing>
                 <property name="left_attach">2</property>
-                <property name="right_attach">3</property>
+                <property name="top_attach">1</property>
               </packing>
             </child>
             <child>
@@ -139,8 +128,8 @@
                 <property name="label" translatable="yes">DB Path</property>
               </object>
               <packing>
+                <property name="left_attach">0</property>
                 <property name="top_attach">4</property>
-                <property name="bottom_attach">5</property>
               </packing>
             </child>
             <child>
@@ -150,14 +139,10 @@
                 <property name="invisible_char">●</property>
                 <property name="primary_icon_activatable">False</property>
                 <property name="secondary_icon_activatable">False</property>
-                <property name="primary_icon_sensitive">True</property>
-                <property name="secondary_icon_sensitive">True</property>
               </object>
               <packing>
                 <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
                 <property name="top_attach">4</property>
-                <property name="bottom_attach">5</property>
               </packing>
             </child>
             <child>
@@ -170,14 +155,9 @@
               </object>
               <packing>
                 <property name="left_attach">2</property>
-                <property name="right_attach">3</property>
                 <property name="top_attach">4</property>
-                <property name="bottom_attach">5</property>
               </packing>
             </child>
-            <child>
-              <placeholder/>
-            </child>
             <child>
               <object class="GtkLabel" id="label5">
                 <property name="visible">True</property>
@@ -185,8 +165,8 @@
                 <property name="label" translatable="yes">Measurement Name</property>
               </object>
               <packing>
+                <property name="left_attach">0</property>
                 <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
               </packing>
             </child>
             <child>
@@ -196,19 +176,24 @@
                 <property name="invisible_char">●</property>
                 <property name="primary_icon_activatable">False</property>
                 <property name="secondary_icon_activatable">False</property>
-                <property name="primary_icon_sensitive">True</property>
-                <property name="secondary_icon_sensitive">True</property>
               </object>
               <packing>
                 <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
                 <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
               </packing>
             </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
           </object>
           <packing>
-            <property name="expand">True</property>
+            <property name="expand">False</property>
             <property name="fill">True</property>
             <property name="position">1</property>
           </packing>
diff --git a/dstat_interface/interface/db.py b/dstat_interface/interface/db.py
index 2306b9e..cc31db7 100755
--- a/dstat_interface/interface/db.py
+++ b/dstat_interface/interface/db.py
@@ -22,22 +22,27 @@ import sys
 import logging
 from uuid import uuid4
 
-import gtk
-import gobject
+try:
+    import gi
+    gi.require_version('Gtk', '3.0')
+    from gi.repository import Gtk, GObject
+except ImportError:
+    print "ERR: GTK not available"
+    sys.exit(1)
 
 logger = logging.getLogger('dstat.interface.db')
 
-class DB_Window(gobject.GObject):
+class DB_Window(GObject.GObject):
     __gsignals__ = {
-                    'db-reset' : (gobject.SIGNAL_RUN_LAST,
-                                        gobject.TYPE_NONE,
-                                        (gobject.TYPE_STRING,)
+                    'db-reset' : (GObject.SIGNAL_RUN_LAST,
+                                        GObject.TYPE_NONE,
+                                        (GObject.TYPE_STRING,)
                                         )
                     }
     def __init__(self):
-        gobject.GObject.__init__(self)
+        GObject.GObject.__init__(self)
         
-        self.builder = gtk.Builder()
+        self.builder = Gtk.Builder()
         self.builder.add_from_file('interface/db.glade')
         self.builder.connect_signals(self)
         
@@ -135,4 +140,4 @@ class DB_Window(gobject.GObject):
         widget.hide()
         return True
         
-gobject.type_register(DB_Window)
\ No newline at end of file
+GObject.type_register(DB_Window)
\ No newline at end of file
diff --git a/dstat_interface/interface/dpv.glade b/dstat_interface/interface/dpv.glade
index e13b41d..9143f88 100644
--- a/dstat_interface/interface/dpv.glade
+++ b/dstat_interface/interface/dpv.glade
@@ -1,24 +1,25 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
 <interface>
-  <requires lib="gtk+" version="2.24"/>
-  <!-- interface-naming-policy project-wide -->
+  <requires lib="gtk+" version="3.10"/>
   <object class="GtkWindow" id="window1">
     <property name="can_focus">False</property>
     <child>
       <object class="GtkScrolledWindow" id="scrolledwindow1">
         <property name="visible">True</property>
         <property name="can_focus">True</property>
-        <property name="hscrollbar_policy">automatic</property>
-        <property name="vscrollbar_policy">automatic</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <child>
           <object class="GtkViewport" id="viewport1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkVBox" id="vbox1">
+              <object class="GtkBox" id="vbox1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="orientation">vertical</property>
                 <child>
                   <object class="GtkFrame" id="frame1">
                     <property name="visible">True</property>
@@ -33,54 +34,73 @@
                         <property name="left_padding">5</property>
                         <property name="right_padding">5</property>
                         <child>
-                          <object class="GtkTable" id="table1">
+                          <object class="GtkGrid">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="n_rows">3</property>
-                            <property name="n_columns">3</property>
+                            <property name="row_homogeneous">True</property>
+                            <property name="column_homogeneous">True</property>
                             <child>
-                              <object class="GtkLabel" id="label3">
+                              <object class="GtkEntry" id="clean_s">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Potential (mV)</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">●</property>
+                                <property name="width_chars">8</property>
+                                <property name="text" translatable="yes">0</property>
+                                <property name="xalign">1</property>
+                                <property name="primary_icon_activatable">False</property>
+                                <property name="secondary_icon_activatable">False</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label4">
+                              <object class="GtkEntry" id="dep_s">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Time (s)</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">●</property>
+                                <property name="width_chars">8</property>
+                                <property name="text" translatable="yes">0</property>
+                                <property name="xalign">1</property>
+                                <property name="primary_icon_activatable">False</property>
+                                <property name="secondary_icon_activatable">False</property>
                               </object>
                               <packing>
                                 <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="top_attach">2</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label5">
+                              <object class="GtkEntry" id="dep_mV">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">●</property>
+                                <property name="width_chars">8</property>
+                                <property name="text" translatable="yes">0</property>
+                                <property name="xalign">1</property>
+                                <property name="primary_icon_activatable">False</property>
+                                <property name="secondary_icon_activatable">False</property>
                               </object>
                               <packing>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">2</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label6">
+                              <object class="GtkEntry" id="clean_mV">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Cleaning</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">●</property>
+                                <property name="width_chars">8</property>
+                                <property name="text" translatable="yes">0</property>
+                                <property name="xalign">1</property>
+                                <property name="primary_icon_activatable">False</property>
+                                <property name="secondary_icon_activatable">False</property>
                               </object>
                               <packing>
+                                <property name="left_attach">1</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -90,101 +110,51 @@
                                 <property name="label" translatable="yes">Deposition</property>
                               </object>
                               <packing>
+                                <property name="left_attach">0</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="clean_mV">
+                              <object class="GtkLabel" id="label6">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">●</property>
-                                <property name="width_chars">8</property>
-                                <property name="text" translatable="yes">0</property>
-                                <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
-                                <property name="primary_icon_activatable">False</property>
-                                <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Cleaning</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
+                                <property name="left_attach">0</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="dep_mV">
+                              <object class="GtkLabel" id="label5">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">●</property>
-                                <property name="width_chars">8</property>
-                                <property name="text" translatable="yes">0</property>
-                                <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
-                                <property name="primary_icon_activatable">False</property>
-                                <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
+                                <property name="can_focus">False</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="dep_s">
+                              <object class="GtkLabel" id="label4">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">●</property>
-                                <property name="width_chars">8</property>
-                                <property name="text" translatable="yes">0</property>
-                                <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
-                                <property name="primary_icon_activatable">False</property>
-                                <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Time (s)</property>
                               </object>
                               <packing>
                                 <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
-                                <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="clean_s">
+                              <object class="GtkLabel" id="label3">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">●</property>
-                                <property name="width_chars">8</property>
-                                <property name="text" translatable="yes">0</property>
-                                <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
-                                <property name="primary_icon_activatable">False</property>
-                                <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Potential (mV)</property>
                               </object>
                               <packing>
-                                <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
-                                <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                           </object>
@@ -221,13 +191,11 @@
                         <property name="left_padding">5</property>
                         <property name="right_padding">5</property>
                         <child>
-                          <object class="GtkTable" id="table2">
+                          <object class="GtkGrid">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="n_rows">6</property>
-                            <property name="n_columns">2</property>
-                            <property name="column_spacing">10</property>
-                            <property name="homogeneous">True</property>
+                            <property name="row_homogeneous">True</property>
+                            <property name="column_homogeneous">True</property>
                             <child>
                               <object class="GtkLabel" id="label8">
                                 <property name="visible">True</property>
@@ -235,7 +203,8 @@
                                 <property name="label" translatable="yes">Start (mV)</property>
                               </object>
                               <packing>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
@@ -245,9 +214,8 @@
                                 <property name="label" translatable="yes">Stop (mV)</property>
                               </object>
                               <packing>
+                                <property name="left_attach">0</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -257,9 +225,8 @@
                                 <property name="label" translatable="yes">Step Size (mV)</property>
                               </object>
                               <packing>
+                                <property name="left_attach">0</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -270,18 +237,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
@@ -292,20 +253,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
                               </packing>
                             </child>
                             <child>
@@ -316,20 +269,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
                               </packing>
                             </child>
                             <child>
@@ -339,9 +284,8 @@
                                 <property name="label" translatable="yes">Pulse Height (mV)</property>
                               </object>
                               <packing>
+                                <property name="left_attach">0</property>
                                 <property name="top_attach">3</property>
-                                <property name="bottom_attach">4</property>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -351,9 +295,8 @@
                                 <property name="label" translatable="yes">Pulse Width (ms)</property>
                               </object>
                               <packing>
-                                <property name="top_attach">4</property>
-                                <property name="bottom_attach">5</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">5</property>
                               </packing>
                             </child>
                             <child>
@@ -364,20 +307,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">3</property>
-                                <property name="bottom_attach">4</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
                               </packing>
                             </child>
                             <child>
@@ -388,20 +323,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">4</property>
-                                <property name="bottom_attach">5</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="top_attach">5</property>
                               </packing>
                             </child>
                             <child>
@@ -412,8 +339,8 @@
                                 <property name="label" translatable="yes">Pulse Period (ms)</property>
                               </object>
                               <packing>
-                                <property name="top_attach">5</property>
-                                <property name="bottom_attach">6</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">4</property>
                               </packing>
                             </child>
                             <child>
@@ -424,20 +351,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">5</property>
-                                <property name="bottom_attach">6</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="top_attach">4</property>
                               </packing>
                             </child>
                           </object>
diff --git a/dstat_interface/interface/dstatinterface.glade b/dstat_interface/interface/dstatinterface.glade
index 6503660..e134224 100644
--- a/dstat_interface/interface/dstatinterface.glade
+++ b/dstat_interface/interface/dstatinterface.glade
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
 <interface>
-  <requires lib="gtk+" version="2.24"/>
-  <!-- interface-naming-policy project-wide -->
+  <requires lib="gtk+" version="3.10"/>
   <object class="GtkListStore" id="ExpComboListStore">
     <columns>
       <!-- column-name index -->
@@ -693,13 +693,15 @@ copy of the Program in return for a fee.
     <property name="authors">Michael Dryden
 Thanks to Christian Fobel for help with Dropbot Plugin</property>
     <property name="documenters"/>
+    <property name="logo_icon_name">image-missing</property>
     <child internal-child="vbox">
-      <object class="GtkVBox" id="dialog-vbox1">
+      <object class="GtkBox" id="dialog-vbox1">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
         <property name="spacing">2</property>
         <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area1">
+          <object class="GtkButtonBox" id="dialog-action_area1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="layout_style">end</property>
@@ -721,23 +723,18 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
   <object class="GtkImage" id="image1">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
-    <property name="yalign">0.47999998927116394</property>
+    <property name="halign">center</property>
     <property name="stock">gtk-missing-image</property>
   </object>
-  <object class="GtkImage" id="image2">
-    <property name="visible">True</property>
-    <property name="can_focus">False</property>
-    <property name="stock">gtk-save-as</property>
-  </object>
   <object class="GtkImage" id="image3">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
-    <property name="stock">gtk-save</property>
+    <property name="stock">gtk-save-as</property>
   </object>
   <object class="GtkImage" id="image4">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
-    <property name="stock">gtk-save</property>
+    <property name="stock">gtk-save-as</property>
   </object>
   <object class="GtkImage" id="image5">
     <property name="visible">True</property>
@@ -754,6 +751,11 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
     <property name="can_focus">False</property>
     <property name="stock">gtk-info</property>
   </object>
+  <object class="GtkImage" id="image8">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="stock">gtk-save-as</property>
+  </object>
   <object class="GtkListStore" id="serial_liststore">
     <columns>
       <!-- column-name serial -->
@@ -768,9 +770,10 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
     <property name="default_height">800</property>
     <signal name="destroy" handler="on_window1_destroy" swapped="no"/>
     <child>
-      <object class="GtkVBox" id="vbox1">
+      <object class="GtkBox" id="vbox1">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
         <child>
           <object class="GtkMenuBar" id="menubar1">
             <property name="visible">True</property>
@@ -779,25 +782,24 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
               <object class="GtkMenuItem" id="menuitem1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="label" translatable="yes">_File</property>
-                <property name="use_underline">True</property>
+                <property name="label" translatable="yes">File</property>
                 <child type="submenu">
                   <object class="GtkMenu" id="menu1">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <child>
                       <object class="GtkImageMenuItem" id="file_save_exp">
-                        <property name="label">Save current data...</property>
+                        <property name="label" translatable="yes">Save Experiment Data…</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="image">image2</property>
+                        <property name="image">image8</property>
                         <property name="use_stock">False</property>
                         <signal name="activate" handler="on_file_save_exp_activate" swapped="no"/>
                       </object>
                     </child>
                     <child>
                       <object class="GtkImageMenuItem" id="file_save_plot">
-                        <property name="label">Save Plots…</property>
+                        <property name="label" translatable="yes">Save Plot…</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="image">image3</property>
@@ -807,7 +809,7 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                     </child>
                     <child>
                       <object class="GtkImageMenuItem" id="file_save_params">
-                        <property name="label">Save Parameters…</property>
+                        <property name="label" translatable="yes">Save Parameters…</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="image">image4</property>
@@ -817,7 +819,7 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                     </child>
                     <child>
                       <object class="GtkImageMenuItem" id="file_load_params">
-                        <property name="label">Load Parameters…</property>
+                        <property name="label" translatable="yes">Load Parameters…</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="image">image5</property>
@@ -844,7 +846,6 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property name="label" translatable="yes">Dropbot</property>
-                <property name="use_underline">True</property>
                 <child type="submenu">
                   <object class="GtkMenu" id="menu2">
                     <property name="visible">True</property>
@@ -885,7 +886,7 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                     <property name="can_focus">False</property>
                     <child>
                       <object class="GtkImageMenuItem" id="menu_analysis_options">
-                        <property name="label">Analysis options…</property>
+                        <property name="label" translatable="yes">Analysis Options…</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="image">image6</property>
@@ -908,7 +909,7 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                     <property name="can_focus">False</property>
                     <child>
                       <object class="GtkImageMenuItem" id="menu_database_options">
-                        <property name="label">View…</property>
+                        <property name="label" translatable="yes">Database Options</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="image">image7</property>
@@ -923,8 +924,7 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
               <object class="GtkMenuItem" id="menuitem4">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="label" translatable="yes">_Help</property>
-                <property name="use_underline">True</property>
+                <property name="label" translatable="yes">About</property>
                 <child type="submenu">
                   <object class="GtkMenu" id="menu3">
                     <property name="visible">True</property>
@@ -951,31 +951,34 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
           </packing>
         </child>
         <child>
-          <object class="GtkHPaned" id="hpaned1">
+          <object class="GtkPaned">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="position">300</property>
             <property name="position_set">True</property>
+            <property name="wide_handle">True</property>
             <child>
-              <object class="GtkVBox" id="vbox2">
+              <object class="GtkBox">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="orientation">vertical</property>
                 <child>
-                  <object class="GtkVBox" id="vbox3">
+                  <object class="GtkBox">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
+                    <property name="orientation">vertical</property>
                     <child>
-                      <object class="GtkHBox" id="gain_adc_box">
+                      <object class="GtkBox" id="gain_adc_box">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="spacing">2</property>
+                        <property name="orientation">vertical</property>
                         <child>
                           <placeholder/>
                         </child>
                       </object>
                       <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
                         <property name="position">0</property>
                       </packing>
                     </child>
@@ -989,8 +992,8 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                         </attributes>
                       </object>
                       <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
                         <property name="padding">10</property>
                         <property name="position">1</property>
                       </packing>
@@ -1003,22 +1006,23 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                         <signal name="changed" handler="on_expcombobox_changed" swapped="no"/>
                       </object>
                       <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
                         <property name="position">2</property>
                       </packing>
                     </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
-                    <property name="fill">True</property>
+                    <property name="fill">False</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkHBox" id="exp_section_box">
+                  <object class="GtkBox" id="exp_section_box">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
+                    <property name="orientation">vertical</property>
                     <child>
                       <placeholder/>
                     </child>
@@ -1030,7 +1034,7 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkHBox" id="hbox1">
+                  <object class="GtkBox">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <child>
@@ -1079,7 +1083,6 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
-                    <property name="padding">5</property>
                     <property name="position">2</property>
                   </packing>
                 </child>
@@ -1095,79 +1098,20 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                 <property name="can_focus">True</property>
                 <property name="scrollable">True</property>
                 <child>
-                  <object class="GtkVBox" id="vbox4">
+                  <object class="GtkBox">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <child>
-                      <object class="GtkHBox" id="hbox3">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <child>
-                          <object class="GtkCheckButton" id="autosave_checkbutton">
-                            <property name="label" translatable="yes">Autosave</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="draw_indicator">True</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkFileChooserButton" id="autosavedir_button">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="action">select-folder</property>
-                            <property name="preview_widget_active">False</property>
-                            <property name="title" translatable="yes">Select a Save Folder</property>
-                          </object>
-                          <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkEntry" id="autosavename">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="has_tooltip">True</property>
-                            <property name="max_length">32</property>
-                            <property name="invisible_char">●</property>
-                            <property name="text" translatable="yes">filename</property>
-                            <property name="caps_lock_warning">False</property>
-                            <property name="primary_icon_stock">gtk-file</property>
-                            <property name="primary_icon_activatable">False</property>
-                            <property name="secondary_icon_activatable">False</property>
-                            <property name="primary_icon_sensitive">True</property>
-                            <property name="secondary_icon_sensitive">True</property>
-                            <property name="primary_icon_tooltip_text" translatable="yes">File name</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">2</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
+                    <property name="orientation">vertical</property>
                     <child>
                       <object class="GtkNotebook" id="plot_notebook">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="tab_pos">bottom</property>
                         <child>
-                          <object class="GtkHBox" id="plotbox">
+                          <object class="GtkBox" id="plotbox">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
+                            <property name="orientation">vertical</property>
                             <child>
                               <placeholder/>
                             </child>
@@ -1177,7 +1121,6 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                           <object class="GtkLabel" id="label4">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="xalign">0.40999999642372131</property>
                             <property name="label" translatable="yes">Main</property>
                           </object>
                           <packing>
@@ -1185,7 +1128,7 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkHBox" id="ft_box">
+                          <object class="GtkBox" id="ft_box">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <child>
@@ -1211,7 +1154,7 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkHBox" id="period_box">
+                          <object class="GtkBox" id="period_box">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <child>
@@ -1240,7 +1183,70 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                       <packing>
                         <property name="expand">True</property>
                         <property name="fill">True</property>
-                        <property name="position">1</property>
+                        <property name="position">-1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkBox">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="valign">start</property>
+                        <child>
+                          <object class="GtkCheckButton" id="autosave_checkbutton">
+                            <property name="label" translatable="yes">Autosave</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkFileChooserButton" id="autosavedir_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="valign">start</property>
+                            <property name="action">select-folder</property>
+                            <property name="preview_widget_active">False</property>
+                            <property name="title" translatable="yes">Select a Save Folder</property>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkEntry" id="autosavename">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="has_tooltip">True</property>
+                            <property name="valign">start</property>
+                            <property name="max_length">32</property>
+                            <property name="invisible_char">●</property>
+                            <property name="text" translatable="yes">filename</property>
+                            <property name="caps_lock_warning">False</property>
+                            <property name="primary_icon_stock">gtk-file</property>
+                            <property name="primary_icon_activatable">False</property>
+                            <property name="secondary_icon_activatable">False</property>
+                            <property name="primary_icon_tooltip_text" translatable="yes">File name</property>
+                            <property name="primary_icon_tooltip_markup" translatable="yes">File name</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                   </object>
@@ -1259,8 +1265,6 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                   <object class="GtkScrolledWindow" id="scrolledwindow1">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="hscrollbar_policy">automatic</property>
-                    <property name="vscrollbar_policy">automatic</property>
                     <child>
                       <object class="GtkTextView" id="datatextview1">
                         <property name="visible">True</property>
@@ -1291,8 +1295,6 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
                   <object class="GtkScrolledWindow" id="scrolledwindow2">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="hscrollbar_policy">automatic</property>
-                    <property name="vscrollbar_policy">automatic</property>
                     <child>
                       <object class="GtkTextView" id="datatextview2">
                         <property name="visible">True</property>
@@ -1333,42 +1335,42 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
           </packing>
         </child>
         <child>
-          <object class="GtkHBox" id="hbox2">
+          <object class="GtkBox">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <child>
-              <object class="GtkLabel" id="label1">
+              <object class="GtkStatusbar" id="statusbar">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="label" translatable="yes">Serial Port:</property>
+                <property name="spacing">2</property>
               </object>
               <packing>
-                <property name="expand">False</property>
+                <property name="expand">True</property>
                 <property name="fill">True</property>
-                <property name="padding">5</property>
+                <property name="pack_type">end</property>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <object class="GtkComboBox" id="serial_combobox">
+              <object class="GtkLabel" id="label1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="model">serial_liststore</property>
+                <property name="label" translatable="yes">Serial Port:</property>
               </object>
               <packing>
                 <property name="expand">False</property>
-                <property name="fill">False</property>
+                <property name="fill">True</property>
+                <property name="padding">5</property>
                 <property name="position">1</property>
               </packing>
             </child>
             <child>
-              <object class="GtkButton" id="serial_refresh">
-                <property name="label">gtk-refresh</property>
+              <object class="GtkComboBox" id="serial_combobox">
+                <property name="width_request">128</property>
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_stock">True</property>
-                <signal name="clicked" handler="on_serial_refresh_clicked" swapped="no"/>
+                <property name="can_focus">False</property>
+                <property name="halign">start</property>
+                <property name="model">serial_liststore</property>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -1421,13 +1423,13 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
               </packing>
             </child>
             <child>
-              <object class="GtkLabel" id="ocp_disp">
+              <object class="GtkButton" id="serial_refresh">
+                <property name="label">gtk-refresh</property>
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="xalign">0</property>
-                <property name="xpad">5</property>
-                <property name="label" translatable="yes">OCP:</property>
-                <property name="single_line_mode">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+                <signal name="clicked" handler="on_serial_refresh_clicked" swapped="no"/>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -1436,21 +1438,24 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
               </packing>
             </child>
             <child>
-              <object class="GtkStatusbar" id="statusbar">
+              <object class="GtkLabel" id="ocp_disp">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="spacing">2</property>
+                <property name="halign">start</property>
+                <property name="label" translatable="yes">OCP:</property>
+                <property name="single_line_mode">True</property>
               </object>
               <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="padding">3</property>
                 <property name="position">7</property>
               </packing>
             </child>
           </object>
           <packing>
             <property name="expand">False</property>
-            <property name="fill">False</property>
+            <property name="fill">True</property>
             <property name="position">2</property>
           </packing>
         </child>
diff --git a/dstat_interface/interface/exp_int.py b/dstat_interface/interface/exp_int.py
index 4c477a7..44ff614 100755
--- a/dstat_interface/interface/exp_int.py
+++ b/dstat_interface/interface/exp_int.py
@@ -20,8 +20,13 @@
 import os
 import sys
 
-import gtk
-import gobject
+try:
+    import gi
+    gi.require_version('Gtk', '3.0')
+    from gi.repository import Gtk, GObject
+except ImportError:
+    print "ERR: GTK not available"
+    sys.exit(1)
 
 import dstat_comm
 import __main__
@@ -33,7 +38,7 @@ class ExpInterface(object):
     experiment interfaces by populating self.entry.
     """
     def __init__(self, glade_path):
-        self.builder = gtk.Builder()
+        self.builder = Gtk.Builder()
         self.builder.add_from_file(glade_path)
         self.builder.connect_signals(self)
         self.entry = {} # to be used only for str parameters
@@ -87,15 +92,16 @@ class Chronoamp(ExpInterface):
         self.statusbar = self.builder.get_object('statusbar')
         self.model = self.builder.get_object('ca_list')
         self.treeview = self.builder.get_object('treeview')
-        self.cell_renderer = gtk.CellRendererText()
+        self.treeview.set_fixed_height_mode(False)
         
-        self.treeview.insert_column_with_attributes(-1, "Time",
-                                    self.cell_renderer, text=1).set_expand(True)
-        self.treeview.insert_column_with_attributes(-1, "Potential",
-                                    self.cell_renderer, text=0).set_expand(True)
+        for i, column_title in enumerate(["Potential", "Time"]):
+            renderer = Gtk.CellRendererText()
+            column = Gtk.TreeViewColumn(column_title, renderer, text=i)
+            column.set_expand(True)
+            self.treeview.append_column(column)
         
         self.selection = self.treeview.get_selection()
-        self.selection.set_mode(gtk.SELECTION_MULTIPLE)
+        self.selection.set_mode(Gtk.SelectionMode.MULTIPLE)
 
     def _fill_params(self):
         super(Chronoamp, self)._fill_params()
@@ -131,7 +137,7 @@ class Chronoamp(ExpInterface):
         referencelist = []
         
         for i in selected_rows:
-            referencelist.append(gtk.TreeRowReference(self.model, i))
+            referencelist.append(Gtk.TreeRowReference(self.model, i))
         
         for i in referencelist:
             self.model.remove(self.model.get_iter(i.get_path()))
@@ -321,7 +327,7 @@ class PD(ExpInterface):
             __main__.MAIN.start_ocp()
             
         finally:
-            gobject.timeout_add(700, restore_buttons, self.buttons)
+            GObject.timeout_add(700, restore_buttons, self.buttons)
         
     def on_threshold_button_clicked(self, data=None):
         __main__.MAIN.on_pot_stop_clicked()
@@ -340,7 +346,7 @@ class PD(ExpInterface):
             __main__.MAIN.start_ocp()
         
         finally:
-            gobject.timeout_add(700, restore_buttons, self.buttons)
+            GObject.timeout_add(700, restore_buttons, self.buttons)
             
     def on_shutter_button_toggled(self, widget):
         if self.bool['shutter_true'].get_active():
@@ -405,7 +411,7 @@ class CAL(ExpInterface):
             __main__.MAIN.start_ocp()
             
         finally:
-            gobject.timeout_add(700, restore_buttons, self.buttons)
+            GObject.timeout_add(700, restore_buttons, self.buttons)
         
     def on_write_button_clicked(self, data=None):
         for i in self.buttons:
@@ -427,7 +433,7 @@ class CAL(ExpInterface):
             __main__.MAIN.start_ocp()
             
         finally:
-            gobject.timeout_add(700, restore_buttons, self.buttons)
+            GObject.timeout_add(700, restore_buttons, self.buttons)
                 
     def on_measure_button_clicked(self, data=None):
         if (int(self.entry['time'].get_text()) <= 0 or int(self.entry['time'].get_text()) > 65535):
@@ -464,11 +470,11 @@ class CAL(ExpInterface):
             __main__.MAIN.start_ocp()
         
         finally:
-            gobject.timeout_add(700, restore_buttons, self.buttons)
+            GObject.timeout_add(700, restore_buttons, self.buttons)
             __main__.MAIN.spinner.stop()
 
 def restore_buttons(buttons):
-    """ Should be called with gobject callback """
+    """ Should be called with GObject callback """
     for i in buttons:
         i.set_sensitive(True)
         
diff --git a/dstat_interface/interface/lsv.glade b/dstat_interface/interface/lsv.glade
index 63c4468..404e1e4 100644
--- a/dstat_interface/interface/lsv.glade
+++ b/dstat_interface/interface/lsv.glade
@@ -1,24 +1,25 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
 <interface>
-  <requires lib="gtk+" version="2.24"/>
-  <!-- interface-naming-policy project-wide -->
+  <requires lib="gtk+" version="3.10"/>
   <object class="GtkWindow" id="window1">
     <property name="can_focus">False</property>
     <child>
       <object class="GtkScrolledWindow" id="scrolledwindow1">
         <property name="visible">True</property>
         <property name="can_focus">True</property>
-        <property name="hscrollbar_policy">automatic</property>
-        <property name="vscrollbar_policy">automatic</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <child>
           <object class="GtkViewport" id="viewport1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkVBox" id="vbox1">
+              <object class="GtkBox" id="vbox1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="orientation">vertical</property>
                 <child>
                   <object class="GtkFrame" id="frame1">
                     <property name="visible">True</property>
@@ -33,11 +34,11 @@
                         <property name="left_padding">5</property>
                         <property name="right_padding">5</property>
                         <child>
-                          <object class="GtkTable" id="table1">
+                          <object class="GtkGrid">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="n_rows">3</property>
-                            <property name="n_columns">3</property>
+                            <property name="row_homogeneous">True</property>
+                            <property name="column_homogeneous">True</property>
                             <child>
                               <object class="GtkLabel" id="label3">
                                 <property name="visible">True</property>
@@ -46,8 +47,7 @@
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
@@ -58,8 +58,7 @@
                               </object>
                               <packing>
                                 <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
@@ -68,7 +67,8 @@
                                 <property name="can_focus">False</property>
                               </object>
                               <packing>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
@@ -78,9 +78,8 @@
                                 <property name="label" translatable="yes">Cleaning</property>
                               </object>
                               <packing>
+                                <property name="left_attach">0</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -90,9 +89,8 @@
                                 <property name="label" translatable="yes">Deposition</property>
                               </object>
                               <packing>
+                                <property name="left_attach">0</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -103,19 +101,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -126,19 +117,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -149,19 +133,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -172,19 +149,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                           </object>
@@ -221,13 +191,11 @@
                         <property name="left_padding">5</property>
                         <property name="right_padding">5</property>
                         <child>
-                          <object class="GtkTable" id="table2">
+                          <object class="GtkGrid">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="n_rows">3</property>
-                            <property name="n_columns">2</property>
-                            <property name="column_spacing">10</property>
-                            <property name="homogeneous">True</property>
+                            <property name="row_homogeneous">True</property>
+                            <property name="column_homogeneous">True</property>
                             <child>
                               <object class="GtkLabel" id="label8">
                                 <property name="visible">True</property>
@@ -235,7 +203,8 @@
                                 <property name="label" translatable="yes">Start (mV)</property>
                               </object>
                               <packing>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
@@ -245,9 +214,8 @@
                                 <property name="label" translatable="yes">Stop (mV)</property>
                               </object>
                               <packing>
+                                <property name="left_attach">0</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -257,9 +225,8 @@
                                 <property name="label" translatable="yes">Slope (mV/s)</property>
                               </object>
                               <packing>
+                                <property name="left_attach">0</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -270,18 +237,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
@@ -292,20 +253,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
                               </packing>
                             </child>
                             <child>
@@ -316,20 +269,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
                               </packing>
                             </child>
                           </object>
diff --git a/dstat_interface/interface/pd.glade b/dstat_interface/interface/pd.glade
index bb72ff8..c39930e 100644
--- a/dstat_interface/interface/pd.glade
+++ b/dstat_interface/interface/pd.glade
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
 <interface>
-  <requires lib="gtk+" version="2.24"/>
-  <!-- interface-naming-policy project-wide -->
+  <requires lib="gtk+" version="3.10"/>
   <object class="GtkAdjustment" id="voltage_adjustment">
     <property name="upper">3000</property>
     <property name="step_increment">1</property>
@@ -13,24 +13,23 @@
       <object class="GtkScrolledWindow" id="scrolledwindow1">
         <property name="visible">True</property>
         <property name="can_focus">True</property>
-        <property name="hscrollbar_policy">automatic</property>
-        <property name="vscrollbar_policy">automatic</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <child>
           <object class="GtkViewport" id="viewport1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkVBox" id="vbox1">
+              <object class="GtkBox" id="vbox1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="orientation">vertical</property>
                 <child>
-                  <object class="GtkTable" id="table1">
+                  <object class="GtkGrid">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="n_rows">11</property>
-                    <property name="n_columns">2</property>
-                    <property name="homogeneous">True</property>
+                    <property name="column_homogeneous">True</property>
                     <child>
                       <object class="GtkEntry" id="time_entry">
                         <property name="visible">True</property>
@@ -39,20 +38,12 @@
                         <property name="width_chars">8</property>
                         <property name="text" translatable="yes">0</property>
                         <property name="xalign">1</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
-                        <property name="y_padding">3</property>
                       </packing>
                     </child>
                     <child>
@@ -62,7 +53,8 @@
                         <property name="label" translatable="yes">Bias Voltage (mV)</property>
                       </object>
                       <packing>
-                        <property name="y_options">GTK_FILL</property>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
                       </packing>
                     </child>
                     <child>
@@ -72,9 +64,8 @@
                         <property name="label" translatable="yes">Measurement Time (s)</property>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="y_options">GTK_FILL</property>
                       </packing>
                     </child>
                     <child>
@@ -83,10 +74,9 @@
                         <property name="can_focus">True</property>
                         <property name="max_length">4</property>
                         <property name="invisible_char">●</property>
+                        <property name="text" translatable="yes">0</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                         <property name="adjustment">voltage_adjustment</property>
                         <property name="climb_rate">1</property>
                         <property name="snap_to_ticks">True</property>
@@ -95,7 +85,7 @@
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
+                        <property name="top_attach">0</property>
                       </packing>
                     </child>
                     <child>
@@ -103,10 +93,13 @@
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="label" translatable="yes">Ambient Light Interlock</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">3</property>
-                        <property name="bottom_attach">4</property>
                       </packing>
                     </child>
                     <child>
@@ -120,10 +113,7 @@
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">3</property>
-                        <property name="bottom_attach">4</property>
-                        <property name="x_options">GTK_EXPAND</property>
                       </packing>
                     </child>
                     <child>
@@ -132,13 +122,12 @@
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
+                        <property name="halign">center</property>
                         <signal name="clicked" handler="on_threshold_button_clicked" swapped="no"/>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">4</property>
-                        <property name="bottom_attach">5</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
                       </packing>
                     </child>
                     <child>
@@ -149,20 +138,12 @@
                         <property name="width_chars">8</property>
                         <property name="text" translatable="yes">0</property>
                         <property name="xalign">1</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">4</property>
-                        <property name="bottom_attach">5</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
-                        <property name="y_padding">3</property>
                       </packing>
                     </child>
                     <child>
@@ -171,24 +152,12 @@
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
+                        <property name="halign">center</property>
                         <signal name="clicked" handler="on_light_button_clicked" swapped="no"/>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">5</property>
-                        <property name="bottom_attach">6</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkHSeparator" id="hseparator1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                      </object>
-                      <packing>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">2</property>
-                        <property name="bottom_attach">3</property>
                       </packing>
                     </child>
                     <child>
@@ -204,20 +173,7 @@
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">5</property>
-                        <property name="bottom_attach">6</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkHSeparator" id="hseparator2">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                      </object>
-                      <packing>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">6</property>
-                        <property name="bottom_attach">7</property>
                       </packing>
                     </child>
                     <child>
@@ -225,10 +181,13 @@
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="label" translatable="yes">Electromechanical Shutter</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">7</property>
-                        <property name="bottom_attach">8</property>
                       </packing>
                     </child>
                     <child>
@@ -237,13 +196,12 @@
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
-                        <property name="yalign">0.54000002145767212</property>
+                        <property name="halign">center</property>
                         <property name="draw_indicator">True</property>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">8</property>
-                        <property name="bottom_attach">9</property>
-                        <property name="x_options"/>
                       </packing>
                     </child>
                     <child>
@@ -254,20 +212,12 @@
                         <property name="width_chars">8</property>
                         <property name="text" translatable="yes">0</property>
                         <property name="xalign">1</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">8</property>
-                        <property name="bottom_attach">9</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
-                        <property name="y_padding">3</property>
                       </packing>
                     </child>
                     <child>
@@ -282,10 +232,7 @@
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">7</property>
-                        <property name="bottom_attach">8</property>
-                        <property name="x_options">GTK_EXPAND</property>
                       </packing>
                     </child>
                     <child>
@@ -295,8 +242,8 @@
                         <property name="label" translatable="yes">Start FFT after (s)</property>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">9</property>
-                        <property name="bottom_attach">10</property>
                       </packing>
                     </child>
                     <child>
@@ -310,16 +257,10 @@
                         <property name="xalign">1</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">9</property>
-                        <property name="bottom_attach">10</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
                       </packing>
                     </child>
                     <child>
@@ -329,8 +270,8 @@
                         <property name="label" translatable="yes">FFT Integral bandwidth (Hz)</property>
                       </object>
                       <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">10</property>
-                        <property name="bottom_attach">11</property>
                       </packing>
                     </child>
                     <child>
@@ -342,25 +283,44 @@
                         <property name="width_chars">8</property>
                         <property name="text">1</property>
                         <property name="xalign">1</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">10</property>
-                        <property name="bottom_attach">11</property>
-                        <property name="x_options"/>
-                        <property name="y_options">GTK_FILL</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSeparator">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_top">5</property>
+                        <property name="margin_bottom">5</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">2</property>
+                        <property name="width">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSeparator">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_top">5</property>
+                        <property name="margin_bottom">5</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">6</property>
+                        <property name="width">2</property>
                       </packing>
                     </child>
                   </object>
                   <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
@@ -368,8 +328,6 @@
                   <object class="GtkLabel" id="label13">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="xpad">20</property>
-                    <property name="ypad">20</property>
                     <attributes>
                       <attribute name="weight" value="bold"/>
                     </attributes>
diff --git a/dstat_interface/interface/potexp.glade b/dstat_interface/interface/potexp.glade
index 4d8d915..d4ec1e6 100644
--- a/dstat_interface/interface/potexp.glade
+++ b/dstat_interface/interface/potexp.glade
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
 <interface>
-  <requires lib="gtk+" version="2.24"/>
-  <!-- interface-naming-policy project-wide -->
+  <requires lib="gtk+" version="3.10"/>
   <object class="GtkListStore" id="ca_list">
     <columns>
       <!-- column-name millivolts -->
@@ -18,23 +18,24 @@
       <object class="GtkScrolledWindow" id="scrolledwindow1">
         <property name="visible">True</property>
         <property name="can_focus">True</property>
-        <property name="hscrollbar_policy">automatic</property>
-        <property name="vscrollbar_policy">automatic</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <child>
           <object class="GtkViewport" id="viewport1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkVBox" id="vbox1">
+              <object class="GtkBox" id="vbox1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="orientation">vertical</property>
                 <child>
-                  <object class="GtkTable" id="table1">
+                  <object class="GtkGrid">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="n_rows">2</property>
-                    <property name="n_columns">2</property>
+                    <property name="row_homogeneous">True</property>
+                    <property name="column_homogeneous">True</property>
                     <child>
                       <object class="GtkLabel" id="label2">
                         <property name="visible">True</property>
@@ -42,7 +43,8 @@
                         <property name="label" translatable="yes">Time (s)</property>
                       </object>
                       <packing>
-                        <property name="bottom_attach">2</property>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
                       </packing>
                     </child>
                     <child>
@@ -54,26 +56,19 @@
                         <property name="text" translatable="yes">0</property>
                         <property name="xalign">1</property>
                         <property name="truncate_multiline">True</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="caps_lock_warning">False</property>
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
-                        <property name="primary_icon_sensitive">True</property>
-                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_options">GTK_EXPAND</property>
-                        <property name="y_options">GTK_SHRINK</property>
+                        <property name="top_attach">0</property>
                       </packing>
                     </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="padding">5</property>
+                    <property name="fill">False</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
diff --git a/dstat_interface/interface/save.py b/dstat_interface/interface/save.py
index 675bcd1..982dcee 100755
--- a/dstat_interface/interface/save.py
+++ b/dstat_interface/interface/save.py
@@ -21,7 +21,13 @@
 import io
 import os
 
-import gtk
+try:
+    import gi
+    gi.require_version('Gtk', '3.0')
+    from gi.repository import Gtk
+except ImportError:
+    print "ERR: GTK not available"
+    sys.exit(1)
 import numpy as np
 import logging
 
@@ -31,11 +37,11 @@ from errors import InputError, VarError
 from params import save_params, load_params
 
 def manSave(current_exp):
-    fcd = gtk.FileChooserDialog("Save...", None, gtk.FILE_CHOOSER_ACTION_SAVE,
-                                (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
-                                 gtk.STOCK_SAVE, gtk.RESPONSE_OK))
+    fcd = Gtk.FileChooserDialog("Save...", None, Gtk.FILE_CHOOSER_ACTION_SAVE,
+                                (Gtk.STOCK_CANCEL, Gtk.RESPONSE_CANCEL,
+                                 Gtk.STOCK_SAVE, Gtk.RESPONSE_OK))
 
-    filters = [gtk.FileFilter()]
+    filters = [Gtk.FileFilter()]
     filters[0].set_name("Space separated text (.txt)")
     filters[0].add_pattern("*.txt")
 
@@ -45,7 +51,7 @@ def manSave(current_exp):
 
     response = fcd.run()
 
-    if response == gtk.RESPONSE_OK:
+    if response == Gtk.RESPONSE_OK:
         path = fcd.get_filename()
         logger.info("Selected filepath: %s", path)
         filter_selection = fcd.get_filter().get_name()
@@ -55,19 +61,19 @@ def manSave(current_exp):
             
         fcd.destroy()
 
-    elif response == gtk.RESPONSE_CANCEL:
+    elif response == Gtk.RESPONSE_CANCEL:
         fcd.destroy()
 
 def plot_save_dialog(plots):
-    fcd = gtk.FileChooserDialog("Save Plot…", None,
-                                gtk.FILE_CHOOSER_ACTION_SAVE,
-                                (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
-                                 gtk.STOCK_SAVE, gtk.RESPONSE_OK))
+    fcd = Gtk.FileChooserDialog("Save Plot…", None,
+                                Gtk.FILE_CHOOSER_ACTION_SAVE,
+                                (Gtk.STOCK_CANCEL, Gtk.RESPONSE_CANCEL,
+                                 Gtk.STOCK_SAVE, Gtk.RESPONSE_OK))
 
-    filters = [gtk.FileFilter()]
+    filters = [Gtk.FileFilter()]
     filters[0].set_name("Portable Document Format (.pdf)")
     filters[0].add_pattern("*.pdf")
-    filters.append(gtk.FileFilter())
+    filters.append(Gtk.FileFilter())
     filters[1].set_name("Portable Network Graphics (.png)")
     filters[1].add_pattern("*.png")
 
@@ -77,7 +83,7 @@ def plot_save_dialog(plots):
 
     response = fcd.run()
 
-    if response == gtk.RESPONSE_OK:
+    if response == Gtk.RESPONSE_OK:
         path = fcd.get_filename()
         logger.info("Selected filepath: %s", path)
         filter_selection = fcd.get_filter().get_name()
@@ -94,19 +100,19 @@ def plot_save_dialog(plots):
 
         fcd.destroy()
 
-    elif response == gtk.RESPONSE_CANCEL:
+    elif response == Gtk.RESPONSE_CANCEL:
         fcd.destroy()
 
 
 def man_param_save(window):
-    fcd = gtk.FileChooserDialog("Save Parameters…",
+    fcd = Gtk.FileChooserDialog("Save Parameters…",
                                 None,
-                                gtk.FILE_CHOOSER_ACTION_SAVE,
-                                (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
-                                 gtk.STOCK_SAVE, gtk.RESPONSE_OK)
+                                Gtk.FILE_CHOOSER_ACTION_SAVE,
+                                (Gtk.STOCK_CANCEL, Gtk.RESPONSE_CANCEL,
+                                 Gtk.STOCK_SAVE, Gtk.RESPONSE_OK)
                                 )
 
-    filters = [gtk.FileFilter()]
+    filters = [Gtk.FileFilter()]
     filters[0].set_name("Parameter File (.yml)")
     filters[0].add_pattern("*.yml")
 
@@ -116,7 +122,7 @@ def man_param_save(window):
 
     response = fcd.run()
 
-    if response == gtk.RESPONSE_OK:
+    if response == Gtk.RESPONSE_OK:
         path = fcd.get_filename()
         logger.info("Selected filepath: %s", path)
 
@@ -127,18 +133,18 @@ def man_param_save(window):
 
         fcd.destroy()
 
-    elif response == gtk.RESPONSE_CANCEL:
+    elif response == Gtk.RESPONSE_CANCEL:
         fcd.destroy()
 
 def man_param_load(window):
-    fcd = gtk.FileChooserDialog("Load Parameters…",
+    fcd = Gtk.FileChooserDialog("Load Parameters…",
                                 None,
-                                gtk.FILE_CHOOSER_ACTION_OPEN,
-                                (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
-                                 gtk.STOCK_OPEN, gtk.RESPONSE_OK)
+                                Gtk.FILE_CHOOSER_ACTION_OPEN,
+                                (Gtk.STOCK_CANCEL, Gtk.RESPONSE_CANCEL,
+                                 Gtk.STOCK_OPEN, Gtk.RESPONSE_OK)
                                 )
 
-    filters = [gtk.FileFilter()]
+    filters = [Gtk.FileFilter()]
     filters[0].set_name("Parameter File (.yml)")
     filters[0].add_pattern("*.yml")
 
@@ -147,7 +153,7 @@ def man_param_load(window):
 
     response = fcd.run()
 
-    if response == gtk.RESPONSE_OK:
+    if response == Gtk.RESPONSE_OK:
         path = fcd.get_filename()
         logger.info("Selected filepath: %s", path)
 
@@ -155,7 +161,7 @@ def man_param_load(window):
 
         fcd.destroy()
 
-    elif response == gtk.RESPONSE_CANCEL:
+    elif response == Gtk.RESPONSE_CANCEL:
         fcd.destroy()
 
 def autoSave(exp, path, name):
diff --git a/dstat_interface/interface/swv.glade b/dstat_interface/interface/swv.glade
index 62659c1..0a1e326 100644
--- a/dstat_interface/interface/swv.glade
+++ b/dstat_interface/interface/swv.glade
@@ -1,24 +1,25 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
 <interface>
-  <requires lib="gtk+" version="2.24"/>
-  <!-- interface-naming-policy project-wide -->
+  <requires lib="gtk+" version="3.10"/>
   <object class="GtkWindow" id="window1">
     <property name="can_focus">False</property>
     <child>
       <object class="GtkScrolledWindow" id="scrolledwindow1">
         <property name="visible">True</property>
         <property name="can_focus">True</property>
-        <property name="hscrollbar_policy">automatic</property>
-        <property name="vscrollbar_policy">automatic</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <child>
           <object class="GtkViewport" id="viewport1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkVBox" id="vbox1">
+              <object class="GtkBox" id="vbox1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="orientation">vertical</property>
                 <child>
                   <object class="GtkFrame" id="frame1">
                     <property name="visible">True</property>
@@ -33,11 +34,11 @@
                         <property name="left_padding">5</property>
                         <property name="right_padding">5</property>
                         <child>
-                          <object class="GtkTable" id="table1">
+                          <object class="GtkGrid">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="n_rows">3</property>
-                            <property name="n_columns">3</property>
+                            <property name="row_homogeneous">True</property>
+                            <property name="column_homogeneous">True</property>
                             <child>
                               <object class="GtkLabel" id="label3">
                                 <property name="visible">True</property>
@@ -46,8 +47,7 @@
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
@@ -58,8 +58,7 @@
                               </object>
                               <packing>
                                 <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
@@ -68,7 +67,8 @@
                                 <property name="can_focus">False</property>
                               </object>
                               <packing>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
                               </packing>
                             </child>
                             <child>
@@ -78,9 +78,8 @@
                                 <property name="label" translatable="yes">Cleaning</property>
                               </object>
                               <packing>
+                                <property name="left_attach">0</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -90,9 +89,8 @@
                                 <property name="label" translatable="yes">Deposition</property>
                               </object>
                               <packing>
+                                <property name="left_attach">0</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -103,19 +101,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -126,19 +117,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -149,19 +133,12 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
                                 <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
                             <child>
@@ -172,21 +149,17 @@
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">2</property>
-                                <property name="right_attach">3</property>
                                 <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
+                            <child>
+                              <placeholder/>
+                            </child>
                           </object>
                         </child>
                       </object>
@@ -221,251 +194,198 @@
                         <property name="left_padding">5</property>
                         <property name="right_padding">5</property>
                         <child>
-                          <object class="GtkTable" id="table2">
+                          <object class="GtkGrid">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="n_rows">7</property>
-                            <property name="n_columns">2</property>
-                            <property name="column_spacing">10</property>
-                            <property name="homogeneous">True</property>
+                            <property name="row_homogeneous">True</property>
+                            <property name="column_homogeneous">True</property>
                             <child>
-                              <object class="GtkLabel" id="label8">
+                              <object class="GtkEntry" id="scans_entry">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Start (mV)</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">●</property>
+                                <property name="width_chars">8</property>
+                                <property name="text" translatable="yes">0</property>
+                                <property name="xalign">1</property>
+                                <property name="primary_icon_activatable">False</property>
+                                <property name="secondary_icon_activatable">False</property>
                               </object>
                               <packing>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">6</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label9">
+                              <object class="GtkCheckButton" id="cyclic_checkbutton">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Stop (mV)</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="halign">center</property>
+                                <property name="valign">center</property>
+                                <property name="use_stock">True</property>
+                                <property name="draw_indicator">True</property>
                               </object>
                               <packing>
-                                <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">5</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label10">
+                              <object class="GtkLabel" id="label15">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Step Size (mV)</property>
+                                <property name="label" translatable="yes">Scans</property>
                               </object>
                               <packing>
-                                <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">6</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="start_entry">
+                              <object class="GtkLabel" id="label14">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">●</property>
-                                <property name="width_chars">8</property>
-                                <property name="text" translatable="yes">0</property>
-                                <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
-                                <property name="primary_icon_activatable">False</property>
-                                <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="tooltip_text" translatable="yes">Scan both forwards and backwards.</property>
+                                <property name="label" translatable="yes">Cyclic Mode</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">5</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="stop_entry">
+                              <object class="GtkEntry" id="freq_entry">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="top_attach">4</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="step_entry">
+                              <object class="GtkEntry" id="pulse_entry">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">2</property>
-                                <property name="bottom_attach">3</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="top_attach">3</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label11">
+                              <object class="GtkLabel" id="label12">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Pulse Height (mV)</property>
+                                <property name="label" translatable="yes">Frequency (Hz)</property>
                               </object>
                               <packing>
-                                <property name="top_attach">3</property>
-                                <property name="bottom_attach">4</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">4</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label12">
+                              <object class="GtkLabel" id="label11">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Frequency (Hz)</property>
+                                <property name="label" translatable="yes">Pulse Height (mV)</property>
                               </object>
                               <packing>
-                                <property name="top_attach">4</property>
-                                <property name="bottom_attach">5</property>
-                                <property name="y_options">GTK_FILL</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">3</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="pulse_entry">
+                              <object class="GtkEntry" id="step_entry">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">3</property>
-                                <property name="bottom_attach">4</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="top_attach">2</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="freq_entry">
+                              <object class="GtkEntry" id="stop_entry">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">●</property>
                                 <property name="width_chars">8</property>
                                 <property name="text" translatable="yes">0</property>
                                 <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
                                 <property name="primary_icon_activatable">False</property>
                                 <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">4</property>
-                                <property name="bottom_attach">5</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="top_attach">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label14">
+                              <object class="GtkEntry" id="start_entry">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="tooltip_text" translatable="yes">Scan both forwards and backwards.</property>
-                                <property name="label" translatable="yes">Cyclic Mode</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">●</property>
+                                <property name="width_chars">8</property>
+                                <property name="text" translatable="yes">0</property>
+                                <property name="xalign">1</property>
+                                <property name="primary_icon_activatable">False</property>
+                                <property name="secondary_icon_activatable">False</property>
                               </object>
                               <packing>
-                                <property name="top_attach">5</property>
-                                <property name="bottom_attach">6</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label15">
+                              <object class="GtkLabel" id="label10">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Scans</property>
+                                <property name="label" translatable="yes">Step Size (mV)</property>
                               </object>
                               <packing>
-                                <property name="top_attach">6</property>
-                                <property name="bottom_attach">7</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">2</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkCheckButton" id="cyclic_checkbutton">
+                              <object class="GtkLabel" id="label9">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="use_stock">True</property>
-                                <property name="draw_indicator">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Stop (mV)</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">5</property>
-                                <property name="bottom_attach">6</property>
-                                <property name="x_options"/>
-                                <property name="y_options"/>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkEntry" id="scans_entry">
+                              <object class="GtkLabel" id="label8">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">●</property>
-                                <property name="width_chars">8</property>
-                                <property name="text" translatable="yes">0</property>
-                                <property name="xalign">1</property>
-                                <property name="invisible_char_set">True</property>
-                                <property name="primary_icon_activatable">False</property>
-                                <property name="secondary_icon_activatable">False</property>
-                                <property name="primary_icon_sensitive">True</property>
-                                <property name="secondary_icon_sensitive">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Start (mV)</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">6</property>
-                                <property name="bottom_attach">7</property>
-                                <property name="x_options"/>
-                                <property name="y_options">GTK_FILL</property>
-                                <property name="y_padding">3</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                           </object>
diff --git a/dstat_interface/main.py b/dstat_interface/main.py
index a7e05d1..9c0e03b 100755
--- a/dstat_interface/main.py
+++ b/dstat_interface/main.py
@@ -28,22 +28,20 @@ from copy import deepcopy
 from collections import OrderedDict
 from datetime import datetime
 
+# try:
+#     import pygtk
+#     pygtk.require('2.0')
+# except ImportError:
+#     print "ERR: PyGTK 2.0 not available"
+#     sys.exit(1)
 try:
-    import pygtk
-    pygtk.require('2.0')
-except ImportError:
-    print "ERR: PyGTK 2.0 not available"
-    sys.exit(1)
-try:
-    import gtk
+    import gi
+    gi.require_version('Gtk', '3.0')
+    from gi.repository import Gtk, GObject
 except ImportError:
     print "ERR: GTK not available"
     sys.exit(1)
-try:
-    import gobject
-except ImportError:
-    print "ERR: gobject not available"
-    sys.exit(1)
+
 from serial import SerialException
 import logging
 os.chdir(os.path.dirname(os.path.abspath(sys.argv[0])))
@@ -80,10 +78,10 @@ logger = logging.getLogger("dstat.main")
 class Main(object):
     """Main program """
     def __init__(self):
-        self.builder = gtk.Builder()
+        self.builder = Gtk.Builder()
         self.builder.add_from_file('interface/dstatinterface.glade')
         self.builder.connect_signals(self)
-        self.cell = gtk.CellRendererText()
+        self.cell = Gtk.CellRendererText()
 
         # Create instance of interface components
         self.statusbar = self.builder.get_object('statusbar')
@@ -210,7 +208,7 @@ class Main(object):
 
         self.on_serial_disconnect_clicked()
         db.stop_db()
-        gtk.main_quit()
+        Gtk.main_quit()
 
     def on_gtk_about_activate(self, menuitem, data=None):
         """Display the about window."""
@@ -328,8 +326,8 @@ class Main(object):
                 logger.info("Start OCP")
                 comm.serial_instance.proc_pipe_p.send(comm.OCPExp())
 
-            self.ocp_proc = (gobject.timeout_add(300, self.ocp_running_data),
-                             gobject.timeout_add(250, self.ocp_running_proc)
+            self.ocp_proc = (GObject.timeout_add(300, self.ocp_running_data),
+                             GObject.timeout_add(250, self.ocp_running_proc)
                             )
             self.ocp_is_running = True
 
@@ -348,7 +346,7 @@ class Main(object):
             comm.serial_instance.ctrl_pipe_p.send('a')
 
             for i in self.ocp_proc:
-                gobject.source_remove(i)
+                GObject.source_remove(i)
             while self.ocp_running_proc():
                 pass
             self.ocp_is_running = False
@@ -483,11 +481,11 @@ class Main(object):
             while comm.serial_instance.data_pipe_p.poll():
                 comm.serial_instance.data_pipe_p.recv()
 
-            self.plot_proc = gobject.timeout_add(200,
+            self.plot_proc = GObject.timeout_add(200,
                                                 self.experiment_running_plot)
             self.experiment_proc = (
-                    gobject.idle_add(self.experiment_running_data),
-                    gobject.idle_add(self.experiment_running_proc)
+                    GObject.idle_add(self.experiment_running_data),
+                    GObject.idle_add(self.experiment_running_proc)
                                     )
 
         self.stop_ocp()
@@ -605,6 +603,8 @@ class Main(object):
             raise
 
         except KeyError as i:
+            import traceback
+            traceback.print_exc()
             logger.info("KeyError: %s", i)
             self.statusbar.push(self.error_context_id,
                                 "Experiment parameters must be integers.")
@@ -723,8 +723,8 @@ class Main(object):
         """
         try:
             self.current_exp.time = datetime.now()
-            gobject.source_remove(self.experiment_proc[0])
-            gobject.source_remove(self.plot_proc)  # stop automatic plot update
+            GObject.source_remove(self.experiment_proc[0])
+            GObject.source_remove(self.plot_proc)  # stop automatic plot update
             self.experiment_running_plot()  # make sure all data updated on plot
 
             self.databuffer.set_text("")
@@ -922,18 +922,18 @@ class Main(object):
         self.plugin.reset()
 
         # Periodically process outstanding message received on plugin sockets.
-        self.plugin_timeout_id = gtk.timeout_add(500,
+        self.plugin_timeout_id = Gtk.timeout_add(500,
                                                  self.plugin.check_sockets)
 
     def cleanup_plugin(self):
         if self.plugin_timeout_id is not None:
-            gobject.source_remove(self.plugin_timeout_id)
+            GObject.source_remove(self.plugin_timeout_id)
         if self.plugin is not None:
             self.plugin = None
 
 
 if __name__ == "__main__":
     multiprocessing.freeze_support()
-    gobject.threads_init()
+    GObject.threads_init()
     MAIN = Main()
-    gtk.main()
+    Gtk.main()
diff --git a/dstat_interface/plot.py b/dstat_interface/plot.py
index 7c5c017..1ce5a87 100755
--- a/dstat_interface/plot.py
+++ b/dstat_interface/plot.py
@@ -20,17 +20,20 @@
 """
 Creates data plot.
 """
-import gtk
+try:
+    import gi
+    gi.require_version('Gtk', '3.0')
+    from gi.repository import Gtk
+except ImportError:
+    print "ERR: GTK not available"
+    sys.exit(1)
+    
 from matplotlib.figure import Figure
 
-#from matplotlib.backends.backend_gtkcairo\
-#   import FigureCanvasGTKCairo as FigureCanvas
-#from matplotlib.backends.backend_gtkcairo\
-#   import NavigationToolbar2Cairo as NavigationToolbar
-from matplotlib.backends.backend_gtkagg \
-    import FigureCanvasGTKAgg as FigureCanvas
-from matplotlib.backends.backend_gtkagg \
-    import NavigationToolbar2GTKAgg as NavigationToolbar
+from matplotlib.backends.backend_gtk3agg \
+    import FigureCanvasGTK3Agg as FigureCanvas
+from matplotlib.backends.backend_gtk3 \
+    import NavigationToolbar2GTK3 as NavigationToolbar
 try:
     import seaborn as sns
 except ImportError:
@@ -110,12 +113,13 @@ class PlotBox(object):
                                    useOffset=False, axis='y')
 
         self.canvas = FigureCanvas(self.figure)
-        self.win = gtk.Window()
-        self.vbox = gtk.VBox()
+        self.canvas.set_vexpand(True)
+        self.win = Gtk.Window()
+        self.vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
         self.win.add(self.vbox)
-        self.vbox.pack_start(self.canvas)
+        self.vbox.pack_start(self.canvas, expand=True, fill=True, padding=0)
         self.toolbar = NavigationToolbar(self.canvas, self.win)
-        self.vbox.pack_start(self.toolbar, False, False)
+        self.vbox.pack_start(self.toolbar, expand=False, fill=False, padding=0)
         self.vbox.reparent(plotwindow_instance)
     
     def clearall(self):
-- 
GitLab