0x00, 0x00, 0x05, 0x00,
                                           0x00, 0x00, 0x00, 0x00};
 
+/* Counter request packets */
+static const u8 START_COUNTER_REQUEST[]        = {0x00, 0x01, 0x00, 0x0C,
+                                          0x00, 0x08, 0x01, 0x09,
+                                          0x02, 0x20, 0x00, 0x00};
+
+static const u8 STOP_COUNTER_REQUEST[] = {0x00, 0x01, 0x00, 0x0C,
+                                          0x00, 0x08, 0x01, 0x0C,
+                                          0x02, 0x20, 0x00, 0x00};
+
+static const u8 READ_COUNTER_REQUEST[] = {0x00, 0x01, 0x00, 0x0C,
+                                          0x00, 0x08, 0x01, 0x0E,
+                                          0x02, 0x20, 0x00, 0x00};
+
+static const u8 WRITE_COUNTER_REQUEST[]        = {0x00, 0x01, 0x00, 0x10,
+                                          0x00, 0x0C, 0x01, 0x0F,
+                                          0x02, 0x20, 0x00, 0x00,
+                                          0x00, 0x00, 0x00, 0x00};
+
 /* Response packets */
 static const u8 GENERIC_RESPONSE[]     = {0x00, 0x01, 0x00, 0x0C,
                                           0x00, 0x08, 0x01, 0x00,
                                           0x00, 0x00, 0x00, 0x02,
                                           0x00, 0x03, 0x00, 0x00};
 
+static const u8 READ_COUNTER_RESPONSE[]        = {0x00, 0x01, 0x00, 0x10,
+                                          0x00, 0x0C, 0x01, 0x00,
+                                          0x00, 0x00, 0x00, 0x02,
+                                          0x00, 0x00, 0x00, 0x00};
+
 enum commands {
        READ_PORT,
        WRITE_PORT,
-       SET_PORT_DIR
+       SET_PORT_DIR,
+       START_COUNTER,
+       STOP_COUNTER,
+       READ_COUNTER,
+       WRITE_COUNTER
 };
 
 struct ni6501_private {