diff --git a/bin/install-bootloader.sh b/bin/install-bootloader.sh
index 5dde70505..eeb2071b9 100755
--- a/bin/install-bootloader.sh
+++ b/bin/install-bootloader.sh
@@ -2,7 +2,20 @@
set -e
+# dependencies
+# apt install srecord
+
BOOTDIR=/home/kevinh/development/meshtastic/Adafruit_nRF52_Bootloader
+BOARD=othernet_ppr1
+BOOTVER=0.3.2
+BOOTNUM=128
+BOOTSHA=gc01b9ea
+SDCODE=s113
+SDVER=7.2.0
+PROJ=ppr1
+
+# FIXME for nRF52840 use 0xff000, for nRF52833 use 0x7f000
+BOOTSET=0x7f000
nrfjprog --eraseall -f nrf52
@@ -11,12 +24,12 @@ nrfjprog --eraseall -f nrf52
# first 4 bytes should be 0x01 to indicate valid app image
# second 4 bytes should be 0x00 to indicate no CRC required for image
echo "01 00 00 00 00 00 00 00" | xxd -r -p - >/tmp/bootconf.bin
-srec_cat /tmp/bootconf.bin -binary -offset 0xff000 -output /tmp/bootconf.hex -intel
+srec_cat /tmp/bootconf.bin -binary -offset $BOOTSET -output /tmp/bootconf.hex -intel
-echo Generating merged hex file
-mergehex -m $BOOTDIR/_build/build-ttgo_eink/ttgo_eink_bootloader-0.3.2-124-g69bd8eb-dirty_s140_6.1.1.hex .pio/build/eink/firmware.hex /tmp/bootconf.hex -o ttgo_eink_full.hex
+echo Generating merged hex file from .pio/build/$PROJ/firmware.hex
+mergehex -o ${BOARD}_full.hex -m $BOOTDIR/_build/build-$BOARD/${BOARD}_bootloader-$BOOTVER-$BOOTNUM-$BOOTSHA-dirty_${SDCODE}_$SDVER.hex .pio/build/$PROJ/firmware.hex /tmp/bootconf.hex
echo Telling bootloader app region is valid and telling CPU to run
-nrfjprog --program ttgo_eink_full.hex -f nrf52 --reset
+nrfjprog --program ${BOARD}_full.hex -f nrf52 --reset
# nrfjprog --readuicr /tmp/uicr.hex; objdump -s /tmp/uicr.hex | less
diff --git a/bin/nrf52832-gdbserver.sh b/bin/nrf52832-gdbserver.sh
index 15fb8fbff..122a43301 100755
--- a/bin/nrf52832-gdbserver.sh
+++ b/bin/nrf52832-gdbserver.sh
@@ -1,3 +1,3 @@
-JLinkGDBServerCLExe -if SWD -select USB -port 2331 -device NRF52840_XXAA
+JLinkGDBServerCLExe -if SWD -select USB -port 2331 -device NRF52832_XXAA
diff --git a/bin/nrf52833-gdbserver.sh b/bin/nrf52833-gdbserver.sh
new file mode 100755
index 000000000..03636e755
--- /dev/null
+++ b/bin/nrf52833-gdbserver.sh
@@ -0,0 +1,3 @@
+
+
+JLinkGDBServerCLExe -if SWD -select USB -port 2331 -device NRF52833_XXAA
diff --git a/bin/nrf52840-gdbserver.sh b/bin/nrf52840-gdbserver.sh
index 122a43301..15fb8fbff 100755
--- a/bin/nrf52840-gdbserver.sh
+++ b/bin/nrf52840-gdbserver.sh
@@ -1,3 +1,3 @@
-JLinkGDBServerCLExe -if SWD -select USB -port 2331 -device NRF52832_XXAA
+JLinkGDBServerCLExe -if SWD -select USB -port 2331 -device NRF52840_XXAA
diff --git a/bin/upload-to-bootloader.sh b/bin/upload-to-bootloader.sh
index 55a039a67..ba4b7b48c 100755
--- a/bin/upload-to-bootloader.sh
+++ b/bin/upload-to-bootloader.sh
@@ -1,4 +1,4 @@
echo "Converting to uf2 for NRF52 Adafruit bootloader"
-bin/uf2conv.py .pio/build/lora-relay-v1/firmware.hex -f 0xADA52840
+bin/uf2conv.py .pio/build/lora-relay-v2/firmware.hex -f 0xADA52840
# cp flash.uf2 /media/kevinh/FTH*BOOT/
diff --git a/bin/version.sh b/bin/version.sh
index 4e8e08ae9..1a7f96efd 100644
--- a/bin/version.sh
+++ b/bin/version.sh
@@ -1,3 +1,3 @@
-export VERSION=1.1.6
\ No newline at end of file
+export VERSION=1.1.7
\ No newline at end of file
diff --git a/bin/view-map.sh b/bin/view-map.sh
new file mode 100755
index 000000000..badeb0843
--- /dev/null
+++ b/bin/view-map.sh
@@ -0,0 +1,2 @@
+echo using amap tool to display memory map
+amap .pio/build/output.map
diff --git a/boards/eink.json b/boards/eink.json
index d9f40e804..e2414b23f 100644
--- a/boards/eink.json
+++ b/boards/eink.json
@@ -5,7 +5,7 @@
},
"core": "nRF5",
"cpu": "cortex-m4",
- "extra_flags": "-DARDUINO_NRF52840_LORA_RELAY_V1 -DNRF52840_XXAA",
+ "extra_flags": "-DARDUINO_NRF52840_TTGO_EINK -DNRF52840_XXAA",
"f_cpu": "64000000L",
"hwids": [
[
diff --git a/boards/lora-relay-v2.json b/boards/lora-relay-v2.json
new file mode 100644
index 000000000..2cca8ae9a
--- /dev/null
+++ b/boards/lora-relay-v2.json
@@ -0,0 +1,46 @@
+{
+ "build": {
+ "arduino": {
+ "ldscript": "nrf52840_s140_v6.ld"
+ },
+ "core": "nRF5",
+ "cpu": "cortex-m4",
+ "extra_flags": "-DARDUINO_NRF52840_LORA_RELAY_V2 -DNRF52840_XXAA",
+ "f_cpu": "64000000L",
+ "hwids": [["0x239A", "0x4406"]],
+ "usb_product": "LORA_RELAY",
+ "mcu": "nrf52840",
+ "variant": "lora_relay_v2",
+ "variants_dir": "variants",
+ "bsp": {
+ "name": "adafruit"
+ },
+ "softdevice": {
+ "sd_flags": "-DS140",
+ "sd_name": "s140",
+ "sd_version": "6.1.1",
+ "sd_fwid": "0x00B6"
+ },
+ "bootloader": {
+ "settings_addr": "0xFF000"
+ }
+ },
+ "connectivity": ["bluetooth"],
+ "debug": {
+ "jlink_device": "nRF52840_xxAA",
+ "onboard_tools": ["jlink"],
+ "svd_path": "nrf52840.svd"
+ },
+ "frameworks": ["arduino"],
+ "name": "Meshtastic Lora Relay V1 (Adafruit BSP)",
+ "upload": {
+ "maximum_ram_size": 248832,
+ "maximum_size": 815104,
+ "require_upload_port": true,
+ "speed": 115200,
+ "protocol": "jlink",
+ "protocols": ["jlink", "nrfjprog", "stlink"]
+ },
+ "url": "https://github.com/BigCorvus/SX1262-LoRa-BLE-Relay",
+ "vendor": "BigCorvus"
+}
diff --git a/boards/ppr1.json b/boards/ppr1.json
new file mode 100644
index 000000000..4c0528245
--- /dev/null
+++ b/boards/ppr1.json
@@ -0,0 +1,46 @@
+{
+ "build": {
+ "arduino": {
+ "ldscript": "nrf52833_s113_v7.ld"
+ },
+ "core": "nRF5",
+ "cpu": "cortex-m4",
+ "extra_flags": "-DARDUINO_NRF52833_PPR -DNRF52833_XXAA",
+ "f_cpu": "64000000L",
+ "hwids": [["0x239A", "0x4406"]],
+ "usb_product": "PPR",
+ "mcu": "nrf52833",
+ "variant": "ppr",
+ "variants_dir": "variants",
+ "bsp": {
+ "name": "adafruit"
+ },
+ "softdevice": {
+ "sd_flags": "-DS113",
+ "sd_name": "s113",
+ "sd_version": "7.2.0",
+ "sd_fwid": "0x00b6"
+ },
+ "bootloader": {
+ "settings_addr": "0xFF000"
+ }
+ },
+ "connectivity": ["bluetooth"],
+ "debug": {
+ "jlink_device": "nRF52833_xxAA",
+ "onboard_tools": ["jlink"],
+ "svd_path": "nrf52833.svd"
+ },
+ "frameworks": ["arduino"],
+ "name": "Meshtastic PPR1 (Adafruit BSP)",
+ "upload": {
+ "maximum_ram_size": 248832,
+ "maximum_size": 815104,
+ "require_upload_port": true,
+ "speed": 115200,
+ "protocol": "jlink",
+ "protocols": ["jlink", "nrfjprog", "stlink"]
+ },
+ "url": "https://meshtastic.org/",
+ "vendor": "Othernet"
+}
diff --git a/docs/hardware/pinetab/PineTab LoRa schematic.pdf b/docs/hardware/pinetab/PineTab LoRa schematic.pdf
new file mode 100644
index 000000000..9529a30c8
Binary files /dev/null and b/docs/hardware/pinetab/PineTab LoRa schematic.pdf differ
diff --git a/docs/hardware/pinetab/ch341h_datasheet.pdf b/docs/hardware/pinetab/ch341h_datasheet.pdf
new file mode 100644
index 000000000..4e3bea23e
--- /dev/null
+++ b/docs/hardware/pinetab/ch341h_datasheet.pdf
@@ -0,0 +1,990 @@
+%PDF-1.6
%
+2 0 obj
<>
endobj
196 0 obj
<>stream
+
+
+
+
+ application/pdf
+
+
+ Provided By ALLDATASHEET.COM(FREE DATASHEET DOWNLOAD SITE)
+
+
+
+
+ DATASHEET SEARCH SITE | WWW.ALLDATASHEET.COM
+
+
+
+
+ DATASHEET SEARCH, DATABOOK, COMPONENT, FREE DOWNLOAD SITE
+
+
+
+
+ PDF
+ DATASHEET
+ PDF DATASHEET
+ IC
+ CHIP
+ SEMICONDUCTOR
+ TRANSISTOR
+ ELECTRONIC COMPONENT
+ ISO COMPONENT
+ ALLDATASHEET
+ DATABOOK
+ CATALOG
+ ARCHIVE
+
+
+
+
+ D:20091209171130+08'00'
+ pdfFactory Pro www.fineprint.cn
+ pdfFactory Pro 3.16 (Windows XP Professional Chinese)
+
+
+ PDF, DATASHEET, PDF DATASHEET, IC, CHIP, SEMICONDUCTOR, TRANSISTOR, ELECTRONIC COMPONENT, ISO COMPONENT, ALLDATASHEET, DATABOOK, CATALOG, ARCHIVE
+
+
+ 2019-04-08T11:26:17+09:00
+ 2019-04-08T11:26:17+09:00
+ 2019-04-08T11:26:17+09:00
+
+
+ uuid:04c8c137-1a4e-4765-9839-dd92a8631224
+ uuid:c1ff7b8c-1d00-40d0-bd2f-1e0f374798cd
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+endstream
endobj
123 0 obj
<>
endobj
3 0 obj
<>
endobj
124 0 obj
<>
endobj
6 0 obj
<>/ProcSet[/PDF/Text]>>/Type/Page>>
endobj
14 0 obj
<>/ProcSet[/PDF/Text/ImageC/ImageI]/XObject<>>>/Type/Page>>
endobj
21 0 obj
<>/ProcSet[/PDF/Text]>>/Type/Page>>
endobj
24 0 obj
<>/ProcSet[/PDF/Text]>>/Type/Page>>
endobj
27 0 obj
<>/ProcSet[/PDF/Text]>>/Type/Page>>
endobj
30 0 obj
<>/ProcSet[/PDF/Text]>>/Type/Page>>
endobj
33 0 obj
<>/ProcSet[/PDF/Text]>>/Type/Page>>
endobj
36 0 obj
<>/ProcSet[/PDF/Text]>>/Type/Page>>
endobj
39 0 obj
<>/ProcSet[/PDF/Text]>>/Type/Page>>
endobj
43 0 obj
<>/ProcSet[/PDF/Text]>>/Type/Page>>
endobj
46 0 obj
<>/ProcSet[/PDF/Text/ImageC/ImageI]/XObject<>>>/Type/Page>>
endobj
54 0 obj
<>/ProcSet[/PDF/Text/ImageC/ImageI]/XObject<>>>/Type/Page>>
endobj
65 0 obj
<>/ProcSet[/PDF/Text/ImageC/ImageI]/XObject<>>>/Type/Page>>
endobj
80 0 obj
<>/ProcSet[/PDF/Text/ImageC/ImageI]/XObject<>>>/Type/Page>>
endobj
78 0 obj
<>stream
+HWMo6W%H}t =h
$Gc7nKIErf(JNܢ+gys88|-XŅd`JpY %Vf%W hWERoQ=`Pn/Tx= *7B05~mOJCYxHQLT_o
+~m?#LчVi-1^]%nn59 Q9 WL*8%mwy~\y][9)(\H_wdoXD/|s-R/!m0t5* sp1$7%jm+hI
+T"S g*lՅ+<<}69P ߓ(AVwFlpu3P Kf
+c¤
+.AdDc5Faf\Q]A
JH G@%PQ yٻb,^*RĖJAQ&%3w%Q0G1o 5J~Rl@VTpiUxeMd?dB%`&
+ZP:;jżi,nEkTe-gYIaASOLYZp sz~ Iuۻ:hvn^妥;@}YάK?pZG\0zI=-_vFly|
+ʯ}%T'8 p5vQ8$eE>A~q
EQ-JH3i&
+ ,
Ȃ?<Ç,L=?ҳHsh9q/z\Ca $G˨]#+͆,j(60VF$|@g slT7ukhPMCJe?uʰlNi
6 ʯb!4Gh< r"NVo;++A=LifT#j28Jq %O 90,j!7UKHr40H>M V&"^` O;J1)o:L_Qѳ7$ފpB]`ƄChHjXa(]O0dz>AR1,wk(Gm0J7RqIB[!,2F-|;'h%qi$9^\⣚=q,`aş棈n;>&6RVEkR3`w|lY
+
+D}.T
ˆ}fkC$ǎRKT_1
+b*Д_RqfF,Ct dBWEXLt1XQ
ֆT$nGdSx[r+*^Ikd{mZ
+endstream
endobj
81 0 obj
<>stream
+HW*]
++>Q4ϥLÃR0E/ e>+L.C.""&xO*v/@kܖm~Jт(#Cvs uk?ơub+oX.{A[^9P(=NyO6Z`Uh? O[j.e1m.~:IQ'_U5