diff --git a/gpio/m0/index.html b/gpio/m0/index.html
index 5c644ac3baf5194494a61abd581d6a47af59e4ce..6b71358acc01965d4f58a7fd50d56a56a94babb8 100644
--- a/gpio/m0/index.html
+++ b/gpio/m0/index.html
@@ -16,8 +16,8 @@ pre code {
 <h1>M0 - ATSAMD21</h1>
 
 <figure>
-<img src='m0-feather.jpg'>
-<figcaption>Ring oscillator with M0.</figcaption>
+<img src='m0-feather.jpg' height=50%>
+<figcaption>Ring oscillator with M0 Feather.</figcaption>
 </figure>
 
 <p>This ring oscillator runs on the 'M0' ATSAMD21, which is a fairly popular microcontroller with an Arm Cortex M0 at it's heart. It has native USB functionality, and is supported with an Adafruit bootloader, making writing and running code fairly straightforward. I used Adafruit's Feather dev board for this test.</p>
@@ -40,36 +40,32 @@ pre code {
 #define PIN_11_PORT 0
 #define PIN_11_PIN 16
 
-#define LED_OUTSET PORT->Group[PIN_LED_PORT].OUTSET.reg
-#define LED_OUTCLR PORT->Group[PIN_LED_PORT].OUTCLR.reg
-
-#define RING_PORT_OUTSET PORT->Group[PIN_10_PORT].OUTSET.reg
-#define RING_PORT_OUTCLR PORT->Group[PIN_10_PORT].OUTCLR.reg
-#define RING_PORT_OUT_MASK (1UL << PIN_10_PIN)
-
-#define RING_PORT_IN PORT->Group[PIN_11_PORT].IN.reg
-#define RING_PORT_IN_MASK (1UL << PIN_11_PIN)
+uint32_t ulPin = 11;
 
 void setup() {
-  // set a pin to in
-  PORT->Group[PIN_LED_PORT].PINCFG[PIN_LED_PIN].reg = (uint8_t)(PORT_PINCFG_INEN);
-  // setting same pin to out (arduino configures an output as both, so it can read its own state. handy
-  PORT->Group[PIN_LED_PORT].DIRSET.reg = (uint32_t)(1 << PIN_LED_PIN);
+  // set a pin to in / out ... starting
+  PORT->Group[g_APinDescription[ulPin].ulPort].PINCFG[g_APinDescription[ulPin].ulPin].reg = (uint8_t)(PORT_PINCFG_INEN) ;
+  PORT->Group[g_APinDescription[ulPin].ulPort].DIRSET.reg = (uint32_t)(1 << g_APinDescription[ulPin].ulPin) ;
 
-  // set 10 to output
-  PORT->Group[PIN_10_PORT].DIRSET.reg = (uint32_t)(1 << PIN_10_PIN);
-
-  // set 11 to input
-  PORT->Group[PIN_11_PORT].PINCFG[PIN_11_PIN].reg = (uint8_t)(PORT_PINCFG_INEN);
+  //pinMode(10, OUTPUT);
+  //pinMode(11, INPUT);
 
-  // do loop
-  while (1) { // no loop just c
-    RING_PORT_IN & RING_PORT_IN_MASK ? RING_PORT_OUTCLR = RING_PORT_OUT_MASK : RING_PORT_OUTSET = RING_PORT_OUT_MASK;
-  }
 }
 
 void loop() {
-
+  EPortType port = g_APinDescription[ulPin].ulPort;
+  uint32_t pin = g_APinDescription[ulPin].ulPin;
+  uint32_t pinMask = (1ul << pin);
+
+  Serial.print("11, port: ");
+  Serial.print(port);
+  Serial.print(" pin: ");
+  Serial.print(pin);
+  Serial.println("");
+  PORT->Group[port].OUTSET.reg = pinMask;
+  delay(100);
+  PORT->Group[port].OUTCLR.reg = pinMask;
+  delay(100);
 }
 </code>
 </pre>
@@ -77,18 +73,12 @@ void loop() {
 <p>This enabled me to write the code that I ran during the test, where the M0 clocked at 1.45MHz. Scope traces and code below.</p>
 
 <figure>
-<img src="m0-scope.jpg" height=25%>
+<img src="m0-scope.jpg" height=50%>
 <figcaption>Adafruit Feather dev board used in this test.</figcaption>
 </figure>
 
 <pre>
   <code>
-/*
-   I found most of these definitions in the arduino cores in
-   AppData/Local/Arduino15/packages/adafruit/hardware/samd/1.0.19/cores/arduino/wiring_digital.c & wiring_digital.h
-   also samd/1.0.19/variants/variant.h and variant.cpp and pins_arduino.h
-*/
-
 #define PIN_10_PORT 0
 #define PIN_10_PIN 18
 
@@ -125,7 +115,7 @@ void loop() {
 <p>With the Arduino digitalWrite and digitalRead calls, the ring is ~162khz</p>
 
 <figure>
-<img src='m0-scope-arduino.jpg'>
+<img src='m0-scope-arduino.jpg' height=50%>
 <figcaption>Ring oscillator with M0 using Arduino library calls.</figcaption>
 </figure>
 
diff --git a/gpio/m0/m0_port/m0_port.ino b/gpio/m0/m0_port/m0_port.ino
index 32643ad39078ed6e305f691b39639762370752ff..d33aecf5830cd19d265ea1bed23c9cdc108ca56e 100644
--- a/gpio/m0/m0_port/m0_port.ino
+++ b/gpio/m0/m0_port/m0_port.ino
@@ -1,41 +1,35 @@
 /*
    I found most of these definitions in the arduino cores in
    AppData/Local/Arduino15/packages/adafruit/hardware/samd/1.0.19/cores/arduino/wiring_digital.c & wiring_digital.h
+   also samd/1.0.19/variants/variant.h and variant.cpp and pins_arduino.h
 */
 
-#define PIN_LED_PORT 0
-#define PIN_LED_PIN 17
-
 #define PIN_10_PORT 0
 #define PIN_10_PIN 18
 
 #define PIN_11_PORT 0
 #define PIN_11_PIN 16
 
-uint32_t ulPin = 11;
+#define RING_PORT_OUTSET PORT->Group[PIN_10_PORT].OUTSET.reg
+#define RING_PORT_OUTCLR PORT->Group[PIN_10_PORT].OUTCLR.reg
+#define RING_PORT_OUT_MASK (1UL << PIN_10_PIN)
+
+#define RING_PORT_IN PORT->Group[PIN_11_PORT].IN.reg
+#define RING_PORT_IN_MASK (1UL << PIN_11_PIN)
 
 void setup() {
-  // set a pin to in / out ... starting
-  PORT->Group[g_APinDescription[ulPin].ulPort].PINCFG[g_APinDescription[ulPin].ulPin].reg = (uint8_t)(PORT_PINCFG_INEN) ;
-  PORT->Group[g_APinDescription[ulPin].ulPort].DIRSET.reg = (uint32_t)(1 << g_APinDescription[ulPin].ulPin) ;
+  // set 10 to output
+  PORT->Group[PIN_10_PORT].DIRSET.reg = (uint32_t)(1 << PIN_10_PIN);
 
-  //pinMode(10, OUTPUT);
-  //pinMode(11, INPUT);
+  // set 11 to input
+  PORT->Group[PIN_11_PORT].PINCFG[PIN_11_PIN].reg = (uint8_t)(PORT_PINCFG_INEN);
 
+  // do loop
+  while (1) { // no loop just c
+    RING_PORT_IN & RING_PORT_IN_MASK ? RING_PORT_OUTCLR = RING_PORT_OUT_MASK : RING_PORT_OUTSET = RING_PORT_OUT_MASK;
+  }
 }
 
 void loop() {
-  EPortType port = g_APinDescription[ulPin].ulPort;
-  uint32_t pin = g_APinDescription[ulPin].ulPin;
-  uint32_t pinMask = (1ul << pin);
-
-  Serial.print("11, port: ");
-  Serial.print(port);
-  Serial.print(" pin: ");
-  Serial.print(pin);
-  Serial.println("");
-  PORT->Group[port].OUTSET.reg = pinMask;
-  delay(100);
-  PORT->Group[port].OUTCLR.reg = pinMask;
-  delay(100);
+
 }
diff --git a/gpio/m0/m0_portSearch/m0_portSearch.ino b/gpio/m0/m0_portSearch/m0_portSearch.ino
index d33aecf5830cd19d265ea1bed23c9cdc108ca56e..32643ad39078ed6e305f691b39639762370752ff 100644
--- a/gpio/m0/m0_portSearch/m0_portSearch.ino
+++ b/gpio/m0/m0_portSearch/m0_portSearch.ino
@@ -1,35 +1,41 @@
 /*
    I found most of these definitions in the arduino cores in
    AppData/Local/Arduino15/packages/adafruit/hardware/samd/1.0.19/cores/arduino/wiring_digital.c & wiring_digital.h
-   also samd/1.0.19/variants/variant.h and variant.cpp and pins_arduino.h
 */
 
+#define PIN_LED_PORT 0
+#define PIN_LED_PIN 17
+
 #define PIN_10_PORT 0
 #define PIN_10_PIN 18
 
 #define PIN_11_PORT 0
 #define PIN_11_PIN 16
 
-#define RING_PORT_OUTSET PORT->Group[PIN_10_PORT].OUTSET.reg
-#define RING_PORT_OUTCLR PORT->Group[PIN_10_PORT].OUTCLR.reg
-#define RING_PORT_OUT_MASK (1UL << PIN_10_PIN)
-
-#define RING_PORT_IN PORT->Group[PIN_11_PORT].IN.reg
-#define RING_PORT_IN_MASK (1UL << PIN_11_PIN)
+uint32_t ulPin = 11;
 
 void setup() {
-  // set 10 to output
-  PORT->Group[PIN_10_PORT].DIRSET.reg = (uint32_t)(1 << PIN_10_PIN);
+  // set a pin to in / out ... starting
+  PORT->Group[g_APinDescription[ulPin].ulPort].PINCFG[g_APinDescription[ulPin].ulPin].reg = (uint8_t)(PORT_PINCFG_INEN) ;
+  PORT->Group[g_APinDescription[ulPin].ulPort].DIRSET.reg = (uint32_t)(1 << g_APinDescription[ulPin].ulPin) ;
 
-  // set 11 to input
-  PORT->Group[PIN_11_PORT].PINCFG[PIN_11_PIN].reg = (uint8_t)(PORT_PINCFG_INEN);
+  //pinMode(10, OUTPUT);
+  //pinMode(11, INPUT);
 
-  // do loop
-  while (1) { // no loop just c
-    RING_PORT_IN & RING_PORT_IN_MASK ? RING_PORT_OUTCLR = RING_PORT_OUT_MASK : RING_PORT_OUTSET = RING_PORT_OUT_MASK;
-  }
 }
 
 void loop() {
-
+  EPortType port = g_APinDescription[ulPin].ulPort;
+  uint32_t pin = g_APinDescription[ulPin].ulPin;
+  uint32_t pinMask = (1ul << pin);
+
+  Serial.print("11, port: ");
+  Serial.print(port);
+  Serial.print(" pin: ");
+  Serial.print(pin);
+  Serial.println("");
+  PORT->Group[port].OUTSET.reg = pinMask;
+  delay(100);
+  PORT->Group[port].OUTCLR.reg = pinMask;
+  delay(100);
 }