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
+H‰íWMoÜ6½ûWÈ%²´H}¬tµ� =¤hë
й$ëõGc¯·±7nòëKIErf(J»NÜ¢ðÁ+‰gÞ¼ys´88|-XÅ…d‹óƒ¢ä¢`óJpY²Å ›%<Éeª¾-ÙóŶøó i~_¶¿y’&óöëJ¿í#kÕþ4ËŠ¬yuö|è‰4O‹æÕ=½¨u
+Vf%W h—Wíò£¶ŽERoQ…¬æ=`P�ò¦ößn/ðõTxïâ= ¬*ƒ7»B�05~mOÌJ··C﬚YéxHQóøLä¼èT„_oê
+~Žë‡”m?#‘LàчòšŽV�‡i‘Æä-Š1¯^í]%¸nãn¦59›¯ «Q…9 ÔW·ÒÙÔé©LÌÆ*Ë8Ö�Ò%Þ󲤄Òmwï¥yáí~\yâ]–ªùôÑ[ÚÉ9)¤(\Hê_wd‰ÑÊoXDö•/áÒ|ßs-ƒR/ÅÚ!ýñƒž»m0Ót5* ƒsÀp‹¨�1$7±%ÆjßÎm²Ñ+hàI
+T"S ûÁ ¬Ãg*lÑÕ…‰Ð+Ð<¶<}69£»³àß÷P ß“(AÄñVwF¥lp‚�«u¨3P ûƒK˜fÂ
+‹c¤
+ÿŒ.AdüDc5Faf÷\Qø]Â’A
¨Jô�¾HÌ øÈ<‘Rïû•òJWr×ûù y¿Õ¡ð°þì—7ÂøœÑÓÜ—ØD@m;¸gØÇ=ª8Š‚HlÿÏJ`Vz¼¼±3…šr#ÓG�ƒ>G£¢Ž®¹@%‡PQ… ¸yÚÙ»ŸbË,^*RíÄ–Jà°äAQ¨&’%õ3Ðwú%¸ƒÇQ¬¶ï÷¯¯ôõæ×0G1äÃo‘ ù΃Ô5ˆJÃÚÂ~Rl@VTpi¯U–¨xeM›údÁá»ä?ñæðµdB%ãü`&…
+•ZPð:;jż‹i›,nEkÎõîTïe-í³‚gYûIaA·ÉSý¢OLYZpª sz¾~ì IÃáÚu•Û»ó:–hv¹ÙÍÝní^ê妥;çÛ@}YάÁéKÔ?pŸÖÜZG\0¡zIÑ=-ê_vFlªyÿ|
+„ʯï}¹�“¨—Ð%T'Ù÷8� pð5vQ8âù$eEã‚èã>A~¸qÑé
EQ-ÂJîí�H3®Êi&š
+ Ž,ø
È‚“?¬È<Ç,Líîœà=?ˆÒ³Hshû9‹q/z\C×Ça $�G˨]Ôû#æÝ+ìÖÿ͆,j(6‘¡0V�…F$|Ð@g ¶ëslðTþ𨄑¸è7˜¶ukÈóhPŸ‡M¢×CºJˆe?£uæÈʰl¿‡‹´�N‡i¡–¸
6 ʯbÆÑ!4Gh< r"NÏV©oÒÀä°;µ¹Õ++—A=Lçi·ãfTâ#j28ÛèJºqžØþñ‚¤¡¬àÌ %¿O 9Öú0ï,j! ó7ÆùÊÃUKHå“úr4¯0ßH>Mà ¢€VÞ&›"^î‰Á`à «O;ÈJ›Ö1íô)†ý�o:¦áLî_Qѳ˜7$——ÞŠŽÐpB¼]û`ÝÆ„žòþÁüChºH‡jXêÝa(Ø]�À†è°ßO�0ñ¡òdz>œA÷R¹¯¦1,™wk(ŠÇö�Gm¡¦0J7RÕqIB¯¸¸[è!,Ï£2F‡-|§Á;Û'h%qóiÄ$9œ^\⣚=qÐ,`Èaş棈–ên;À�äº>Ñ&•°6RVàEkRø¶3`ÀwÝ|lØÁY
+
+D}.©T
ˆ}fçíÑkCš‰Å$ÛÇŽRKÒTóû¥_Û1
+b¨ø*óД_RqfFŽ,Ct ŽdîBWEX‡Lä”t1X¨Q
– Ö†è™ÓT$nGdòùSŸ©xó[rÖú+*^Ik¸dÝ{î¼mÞ½ZüÀÁ•
+endstream
endobj
81 0 obj
<>stream
+H‰íWšó*]ƒÌ
+´+È×ýïíÖ>QÁÄ4óÏ¥ÓLÛäÈÃRÿËÃÅ0E/¯ öe>+›¸L¸.œC«•¶ÿ¾."´æ"&‘x´OÀ*Žv/‘ì@kÜ–»½mþ~´Jë«Ñ‚í³Ì(�¸#Cëvs í¥ukœ?Æ¡¹Ó×u°ð�b+oX ®îÉ.{A[£²Í Í^9Ú´›Pµ¹(“=NãÞyO‡6žÙÂûâÑZ`ôUh?Æ À½O�·[Ðjÿï².e1‚m.Ú~:I®åQ¾'_�¶®ÛU¹˜5º