diff --git a/README.md b/README.md
index 49e701bf..0fb86f77 100644
--- a/README.md
+++ b/README.md
@@ -18,13 +18,15 @@ This can all be done with a single small and cheap ESP32 board for less than $20
# Hardware
Currently supported IoT boards:
-- Heltec LoRa-32
-- TTGOv1
-- TTGOv2
-- Pycom LoPy
-- Pycom LoPy4
-- LoLin32 with [LoraNode32 shield](https://github.com/hallard/LoLin32-Lora)
-- LoLin32 Lite with [LoraNode32-Lite shield](https://github.com/hallard/LoLin32-Lite-Lora)
+- Heltec LoRa-32 {1}
+- TTGOv1 {1}
+- TTGOv2 {1}
+- Pycom LoPy {2}
+- Pycom LoPy4 {2}
+- LoLin32 with [LoraNode32 shield](https://github.com/hallard/LoLin32-Lora) {2}{3}
+- LoLin32 Lite with [LoraNode32-Lite shield](https://github.com/hallard/LoLin32-Lite-Lora) {2}{3}
+
+{1} on board OLED Display supported; {2} on board RGB LED supported; {3} on board Hardware unique DEVEUI supported
Target platform must be selected in [platformio.ini](https://github.com/cyberman54/ESP32-Paxcounter/blob/master/platformio.ini).
Hardware dependent settings (pinout etc.) are stored in board files in /hal directory.
@@ -50,6 +52,8 @@ Use PlatformIO with your preferred IDE for
Before compiling the code, create file loraconf.h in the /src directory from the template [loraconf.sample.h](https://github.com/cyberman54/ESP32-Paxcounter/blob/master/src/loraconf.sample.h) and populate it with your personal APPEUI und APPKEY for the LoRaWAN network. Only OTAA join is supported, not ABP. The DEVEUI will be derived from the device's MAC adress during device startup and is shown as well on the device's display (if it has one) as on the serial console for copying it to your LoRaWAN network server settings. If you enter a DEVEUI in loraconf.h it will be used instead.
+**If Using a board with Microchip 24AA02E64 Unique ID for deveui, it will override the one of loraconf.h**
+
# Uploading
To upload the code to your ESP32 board this needs to be switched from run to bootloader mode. Boards with USB bridge like Heltec and TTGO usually have an onboard logic which allows soft switching by the upload tool. In PlatformIO this happenes automatically.
@@ -177,7 +181,7 @@ Note: all settings are stored in NVRAM and will be reloaded when device starts.
0x80 get device configuration
-device answers with it's current configuration. The configuration is a C structure declared in file [globals.h](src/globals.h#L23-L38) with the following definition:
+device answers with it's current configuration. The configuration is a C structure declared in file [globals.h](src/globals.h#L24-L41) with the following definition:
byte 1: Lora SF (7..12)
byte 2: Lora TXpower (2..15)
@@ -205,14 +209,12 @@ device answers with it's current configuration. The configuration is a C structu
# RGB Led color description
-Description of the RGB LED color (Lopy and Lolin32 only):
+Description of the RGB LED color (LoPy/LoPy4 and Lolin32 only):
-- Yellow quick blink
- - LoRaWAN join
-- Blue blink
- - LoRaWAN transmit (including receive windows)
-- Magenta each blink
- - BLE Scan, seen a device (new or not)
+- Yellow quick blink: joining LoRaWAN network in progress or pending
+- Blue blink: LoRaWAN data transmit (including waiting for receive windows) in progress or pending
+- Green each blink: seen a Wifi device, new or not, while Wifi scanning
+- Magenta each blink: seen a BLE device, new or not, while BLE scanning
# License
diff --git a/src/hal/heltec.h b/src/hal/heltec.h
index 53930484..eb9aa31c 100644
--- a/src/hal/heltec.h
+++ b/src/hal/heltec.h
@@ -3,6 +3,7 @@
#define CFG_sx1276_radio 1
#define HAS_DISPLAY U8X8_SSD1306_128X64_NONAME_HW_I2C // OLED-Display on board
+//#define DISPLAY_FLIP 1 // uncomment this for rotated display
#define HAS_LED GPIO_NUM_25 // white LED on board
#define HAS_BUTTON GPIO_NUM_0 // button "PROG" on board
diff --git a/src/hal/lolin32_lora.h b/src/hal/lolin32_lora.h
index 168f5da8..a1bdbe09 100644
--- a/src/hal/lolin32_lora.h
+++ b/src/hal/lolin32_lora.h
@@ -5,6 +5,7 @@
#define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature
#define HAS_DISPLAY U8X8_SSD1306_128X64_NONAME_HW_I2C // OLED-Display on board
+//#define DISPLAY_FLIP 1 // uncomment this for rotated display
#define HAS_LED NOT_A_PIN // Led os on same pin as Lora SS pin, to avoid problems, we don't use it
#define LED_ACTIVE_LOW 1 // Onboard LED is active when pin is LOW
// Anyway shield is on over the LoLin32 board, so we won't be able to see this LED
diff --git a/src/hal/lolin32lite_lora.h b/src/hal/lolin32lite_lora.h
index d631ccc0..fe2adac8 100644
--- a/src/hal/lolin32lite_lora.h
+++ b/src/hal/lolin32lite_lora.h
@@ -5,6 +5,7 @@
#define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature
#define HAS_DISPLAY U8X8_SSD1306_128X64_NONAME_HW_I2C // OLED-Display on board
+//#define DISPLAY_FLIP 1 // uncomment this for rotated display
#define HAS_LED 22 // ESP32 GPIO12 (pin22) On Board LED
#define LED_ACTIVE_LOW 1 // Onboard LED is active when pin is LOW
#define HAS_RGB_LED 13 // ESP32 GPIO13 (pin13) On Board Shield WS2812B RGB LED
diff --git a/src/hal/ttgov1.h b/src/hal/ttgov1.h
index 55f6eebf..ab6b4f2c 100644
--- a/src/hal/ttgov1.h
+++ b/src/hal/ttgov1.h
@@ -3,6 +3,7 @@
#define CFG_sx1276_radio 1
#define HAS_DISPLAY U8X8_SSD1306_128X64_NONAME_HW_I2C // OLED-Display on board
+//#define DISPLAY_FLIP 1 // uncomment this for rotated display
#define HAS_LED GPIO_NUM_2 // white LED on board
#define LED_ACTIVE_LOW 1 // Onboard LED is active when pin is LOW
#define HAS_BUTTON GPIO_NUM_0 // button "PRG" on board
diff --git a/src/hal/ttgov2.h b/src/hal/ttgov2.h
index aeaaebbe..537990af 100644
--- a/src/hal/ttgov2.h
+++ b/src/hal/ttgov2.h
@@ -3,6 +3,7 @@
#define CFG_sx1276_radio 1 // HPD13A LoRa SoC
#define HAS_DISPLAY U8X8_SSD1306_128X64_NONAME_HW_I2C
+//#define DISPLAY_FLIP 1 // uncomment this for rotated display
#define HAS_LED NOT_A_PIN // on-board LED is wired to SCL (used by display) therefore totally useless
// disable brownout detection (needed on TTGOv2 for battery powered operation)
diff --git a/src/loraconf.sample.h b/src/loraconf.sample.h
index 300b4d0d..cbfd3d47 100644
--- a/src/loraconf.sample.h
+++ b/src/loraconf.sample.h
@@ -12,6 +12,8 @@
// Set your DEVEUI here, if you have one. You can leave this untouched,
// then the DEVEUI will be generated during runtime from device's MAC adress
// Note: Use same format as in TTN console (cut & paste, for your convenience)
+// *** Take care : If Using a board with Microchip 24AA02E64 Uinique ID for deveui, **
+// *** this DEVEUI will be overwriten by the one contained in the Microchip module ***
static const u1_t DEVEUI[8]={ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
// Note: Use msb format for APPEUI as in TTN console (cut & paste, for your convenience)
diff --git a/src/lorawan.cpp b/src/lorawan.cpp
index 0f0f86eb..6fde8a50 100644
--- a/src/lorawan.cpp
+++ b/src/lorawan.cpp
@@ -7,6 +7,10 @@
#include