diff --git a/docs/LilyGo_TBeam_V1.1.pdf b/docs/LilyGo_TBeam_V1.1.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..1e5e6252d4e9c881f699f8e8c32bfe16fde49097
Binary files /dev/null and b/docs/LilyGo_TBeam_V1.1.pdf differ
diff --git a/docs/dimensions.webp b/docs/dimensions.webp
new file mode 100644
index 0000000000000000000000000000000000000000..7ff044c08b4b21ce00444354d478d3050a5a853d
Binary files /dev/null and b/docs/dimensions.webp differ
diff --git a/src/config.h.sample b/src/config.h.sample
new file mode 100644
index 0000000000000000000000000000000000000000..c6f45b771592ecf29c680b1215d648a42dc14204
--- /dev/null
+++ b/src/config.h.sample
@@ -0,0 +1,8 @@
+
+//char DevEUIString[] = "0102030405060708";
+//char AppEUIString[] = "70B3D50A0B0C0D0E";
+//char AppKeyString[] = "00112233445566778899AABBCCDDEEFF";
+
+#define TTN_DEVEUI { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; // LSB / little-endian / "byte order reversed"
+#define TTN_APPEUI { 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0xD5, 0xB3, 0x70 }; // LSB / little-endian / "byte order reversed"
+#define TTN_APPKEY { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF }; // MSB / big-endian / "byte order same as string"
diff --git a/src/main.cpp b/src/main.cpp
index 9e5569fa81166d686263e0d4e0681d5cf6808bac..cf9ab95b564886220666d526405008cfd6374d09 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -12,7 +12,6 @@ public:
   cLoRaWAN(){};
 
 protected:
-  // you'll need to provide implementations for each of the following.
   virtual bool GetOtaaProvisioningInfo(Arduino_LoRaWAN::OtaaProvisioningInfo *) override;
   virtual void NetSaveFCntUp(uint32_t uFCntUp) override;
   virtual void NetSaveFCntDown(uint32_t uFCntDown) override;
@@ -54,13 +53,12 @@ void cLoRaWAN::NetSaveSessionInfo(
 }
 
 const cLoRaWAN::lmic_pinmap pinMap = {
-     .nss = 18,
-     .rxtx = cLoRaWAN::lmic_pinmap::LMIC_UNUSED_PIN,
-     .rst = 23,
-     .dio = { 26, 33, 32 },
+    .nss = 18,
+    .rxtx = cLoRaWAN::lmic_pinmap::LMIC_UNUSED_PIN,
+    .rst = 23,
+    .dio = {26, 33, cLoRaWAN::lmic_pinmap::LMIC_UNUSED_PIN},
 };
 
-
 AXP20X_Class axp;
 HardwareSerial GPS(1);
 TinyGPSPlus gps;
@@ -80,53 +78,70 @@ void setupPower()
   {
     Serial.println("AXP192 Begin FAIL");
   }
-  axp.setPowerOutPut(AXP192_LDO2, AXP202_ON);
-  axp.setPowerOutPut(AXP192_LDO3, AXP202_ON);
-  axp.setPowerOutPut(AXP192_DCDC2, AXP202_ON);
-  axp.setPowerOutPut(AXP192_EXTEN, AXP202_ON);
-  axp.setPowerOutPut(AXP192_DCDC1, AXP202_ON);
+  axp.setPowerOutPut(AXP192_DCDC1, AXP202_OFF); // OLED, etc.: off
+  axp.setPowerOutPut(AXP192_DCDC2, AXP202_OFF); // N/C: off
+  axp.setPowerOutPut(AXP192_DCDC3, AXP202_ON);  // ESP32: on
+  axp.setPowerOutPut(AXP192_LDO2, AXP202_ON);   // LORA:  on
+  axp.setPowerOutPut(AXP192_LDO3, AXP202_ON);   // GPS:   on
+  axp.setDCDC3Voltage(3300);                    // ESP32: 3.3V
+  axp.setLDO2Voltage(3300);                     // LORA:  3.3V
+  axp.setLDO3Voltage(3300);                     // GPS:   3.3V
   axp.setChgLEDMode(AXP20X_LED_OFF);
 }
 
 void setupGps()
 {
-  GPS.begin(9600, SERIAL_8N1, 34, 12); //17-TX 18-RX
+  GPS.begin(9600, SERIAL_8N1, 34, 12); // IO34: RX, IO12: TX
 }
 
 void printStatus()
 {
   axp.setChgLEDMode(AXP20X_LED_LOW_LEVEL);
   while (GPS.available())
+  {
     gps.encode(GPS.read());
+  }
   Serial.println("**********************");
   Serial.println("--- Power ---");
+  Serial.printf("DCDC1/OLED Status   : %s\n", axp.isDCDC1Enable() ? "enabled" : "disabled");
+  Serial.printf("DCDC1/OLED Voltage  : %g V\n", (float)axp.getDCDC1Voltage() / 1000);
+  Serial.printf("DCDC2/N/C Status    : %s\n", axp.isDCDC2Enable() ? "enabled" : "disabled");
+  Serial.printf("DCDC2/N/C Voltage   : %g V\n", (float)axp.getDCDC2Voltage() / 1000);
+  Serial.printf("DCDC3/ESP32 Status  : %s\n", axp.isDCDC3Enable() ? "enabled" : "disabled");
+  Serial.printf("DCDC3/ESP32 Voltage : %g V\n", (float)axp.getDCDC3Voltage() / 1000);
+  Serial.printf("LDO2/LoRa Status    : %s\n", axp.isLDO2Enable() ? "enabled" : "disabled");
+  Serial.printf("LDO2/LoRa Voltage   : %g V\n", (float)axp.getLDO2Voltage() / 1000);
+  Serial.printf("LDO3/GPS Status     : %s\n", axp.isLDO3Enable() ? "enabled" : "disabled");
+  Serial.printf("LDO3/GPS Voltage    : %g V\n", (float)axp.getLDO3Voltage() / 1000);
+  Serial.println("--- Battery ---");
   Serial.printf("Battery Connected: %s\n", axp.isBatteryConnect() ? "true" : "false");
   if (axp.isBatteryConnect())
   {
-    Serial.printf("Battery Charging Enabled: %s\n", axp.isChargeingEnable() ? "true" : "false");
-    Serial.printf("Battery Charging: %s\n", axp.isChargeing() ? "true" : "false");
-    Serial.printf("Battery Voltage: %.2f V\n", axp.getBattVoltage() / 1000);
-    Serial.printf("Battery Percentage: %d %%\n", axp.getBattPercentage());
-    Serial.printf("Battery Charge Current: %g mA\n", axp.getSettingChargeCurrent());
+    Serial.printf("Battery Percentage : %d %%\n", axp.getBattPercentage());
+    Serial.printf("Battery Voltage    : %g V\n", axp.getBattVoltage() / 1000);
+    Serial.printf("Charging Enabled   : %s\n", axp.isChargeingEnable() ? "true" : "false");
+    Serial.printf("Battery Charging   : %s\n", axp.isChargeing() ? "true" : "false");
+    Serial.printf("Set Charge Current : %g mA\n", axp.getSettingChargeCurrent());
   }
-  Serial.printf("Chip Temp: %.1f C°\n", axp.getTemp() / 10);
+  Serial.println("--- Chip ---");
+  Serial.printf("Chip Temp : %.1f C°\n", axp.getTemp() / 10);
   Serial.println("--- GPS ---");
-  Serial.print("Latitude  : ");
+  Serial.print("Latitude   : ");
   Serial.println(gps.location.lat(), 5);
-  Serial.print("Longitude : ");
+  Serial.print("Longitude  : ");
   Serial.println(gps.location.lng(), 4);
-  Serial.print("Satellites: ");
+  Serial.print("Satellites : ");
   Serial.println(gps.satellites.value());
-  Serial.print("Altitude  : ");
+  Serial.print("Altitude   : ");
   Serial.print(gps.altitude.feet() / 3.2808);
   Serial.println("M");
-  Serial.print("Time      : ");
+  Serial.print("Time       : ");
   Serial.print(gps.time.hour());
   Serial.print(":");
   Serial.print(gps.time.minute());
   Serial.print(":");
   Serial.println(gps.time.second());
-  Serial.print("Speed     : ");
+  Serial.print("Speed      : ");
   Serial.println(gps.speed.kmph());
   Serial.println("**********************");
   axp.setChgLEDMode(AXP20X_LED_OFF);