def __init__(self, bcm_number):
         self.id = bcm_number
 
+    def __repr__(self):
+        return str(self.id)
+
+    def __eq__(self, other):
+        return self.id == other
+
     def init(self, mode=IN, pull=None):
         if mode != None:
-            print("set %d to mode %d" % (self.id, mode))
             if mode == self.IN:
                 self._mode = self.IN
                 GPIO.setup(self.id, GPIO.IN)
             else:
                 raise RuntimeError("Invalid mode for pin: %s" % self.id)
         if pull != None:
-            print("set %d to pull %d" % (self.id, pull))
             if self._mode != self.IN:
                 raise RuntimeError("Cannot set pull resistor on output")
             if pull == self.PULL_UP:
 
     def value(self, val=None):
         if val != None:
-            print("set %d to value %d" %(self.id, val))
             if val == self.LOW:
                 self._value = val
                 GPIO.output(self.id, val)
 D27 = Pin(27)
 
 # ordered as spiId, sckId, mosiId, misoId
-spiPorts = ((1, SCLK, MOSI, MISO), (2, SCLK_2, MOSI_2, MISO_2))
+spiPorts = ((0, SCLK, MOSI, MISO), (1, SCLK_2, MOSI_2, MISO_2))
 
 # ordered as uartId, txId, rxId
 uartPorts = (
 )
 
 i2cPorts = (
-    (1, SDA, SCL),
+    (1, SCL, SDA),
 )