diff --git a/Console.h b/Console.h index 0399bbd..b9d0812 100644 --- a/Console.h +++ b/Console.h @@ -80,10 +80,10 @@ bool console_serve_file(String path) { } if (path == "/r/manual/index.html") { - path = "/m.html" + path = "/m.html"; } if (path == "/r/manual/Reticulum Manual.pdf") { - path = "/h.html" + path = "/h.html"; } diff --git a/Console/Makefile b/Console/Makefile index 2e517c5..88373cd 100644 --- a/Console/Makefile +++ b/Console/Makefile @@ -18,12 +18,17 @@ pages: pages-debug: python ./build.py --no-gz --no-remap + +sourcepack: + @echo Packing firmware sources... + zip --junk-paths -r build/rnode_firmware.zip ../arduino-cli.yaml ../Bluetooth.h ../Config.h ../Console.h ../Device.h ../Display.h ../Framing.h ../Graphics.h ../LICENSE ../LoRa.cpp ../LoRa.h ../Makefile ../MD5.cpp ../MD5.h ../partition_hashes ../Power.h ../README.md ../release_hashes.py ../RNode_Firmware.ino ../ROM.h ../Utilities.h data: @echo Including assets... @cp assets/css/* build/css/ @cp assets/gfx/* build/gfx/ @cp assets/images/* build/images/ + @cp assets/stl/* build/3d/ # @cp assets/scripts/* build/scripts/ # @cp -r ../../Reticulum/docs/manual/* build/reticulum_manual/ # @cp -r ../../Reticulum/docs/Reticulum\ Manual.pdf build/reticulum_manual/ @@ -33,9 +38,9 @@ external: rm -r $(PATH_PACKAGES)/reticulum.network cp -r $(PATH_RETICULUM_WEBSITE)/build $(PATH_PACKAGES)/reticulum.network -site: clean external dirs data pages +site: clean external dirs data sourcepack pages -local: clean external dirs data pages-debug +local: clean external dirs data sourcepack pages-debug serve: python -m http.server 7777 --bind 127.0.0.1 --directory ./build diff --git a/Console/assets/images/bg_h_1.webp b/Console/assets/images/bg_h_1.webp new file mode 100644 index 0000000..e650d09 Binary files /dev/null and b/Console/assets/images/bg_h_1.webp differ diff --git a/Console/assets/images/bg_h_2.webp b/Console/assets/images/bg_h_2.webp new file mode 100644 index 0000000..3057d68 Binary files /dev/null and b/Console/assets/images/bg_h_2.webp differ diff --git a/Console/assets/images/bg_h_2_orig.webp b/Console/assets/images/bg_h_2_orig.webp new file mode 100644 index 0000000..81473d5 Binary files /dev/null and b/Console/assets/images/bg_h_2_orig.webp differ diff --git a/Console/assets/images/g1p.jpeg b/Console/assets/images/g1p.jpeg deleted file mode 100644 index 24c28ef..0000000 Binary files a/Console/assets/images/g1p.jpeg and /dev/null differ diff --git a/Console/assets/images/g1p.webp b/Console/assets/images/g1p.webp new file mode 100644 index 0000000..e1465ee Binary files /dev/null and b/Console/assets/images/g1p.webp differ diff --git a/Console/assets/stl/Handheld_RNode_v2.1_Parts.7z b/Console/assets/stl/Handheld_RNode_v2.1_Parts.7z new file mode 100644 index 0000000..6eae268 Binary files /dev/null and b/Console/assets/stl/Handheld_RNode_v2.1_Parts.7z differ diff --git a/Console/source/builds/handheld.md b/Console/source/builds/handheld.md index 307c23d..b76b9f1 100644 --- a/Console/source/builds/handheld.md +++ b/Console/source/builds/handheld.md @@ -7,9 +7,8 @@ This build recipe will help you create an RNode that is suitable for mobile and handheld operation, and offers both wireless and wired connectivity to host devices. It is also useful for permanent installation indoors, or even outdoors, as long as it is protected from water ingress and direct sunlight. -When you have completed this guide, you will end up with an RNode like this: - -![Completed Handheld RNode]({ASSET_PATH}images/bg_h_1.webp) +Completed Handheld RNode +
*A completed Handheld RNode*
### Table of Contents @@ -42,8 +41,8 @@ If you have the version with an *SMA* connector, you will have to desolder it, a You will also need to demount the OLED display from the small acrylic riser on the board, and unscrew and discard the riser, since the OLED display will be mounted directly into a matching slot in the 3D-printed case. -![Compatible board]({ASSET_PATH}images/bg_h_2.webp) -*The correct board version for this RNode build recipe* +Compatible board +
*The correct board version for this RNode build recipe*
### Step 3: Obtain Materials @@ -63,7 +62,7 @@ In addition to the board, you will need a few other components to build this RNo ### Step 4: 3D Print Parts -To complete the build of this RNode, you will need to 3D-print the parts for the casing. Download, extract and slice the STL files from the [parts package](#p) in your preffered software. +To complete the build of this RNode, you will need to 3D-print the parts for the casing. Download, extract and slice the STL files from the [parts package]({ASSET_PATH}3d/Handheld_RNode_v2.1_Parts.7z) in your preffered software. - Two of the parts should are LED light-guides, and should be printed in a semi-translucent material: - The `LED_Window.stl` file is a light-guide for the NeoPixel LED, mounted in the circular cutout at the top of the device. @@ -76,7 +75,9 @@ To complete the build of this RNode, you will need to 3D-print the parts for the - The `Case_Bottom_No_Battery.stl` file is an alternative bottom shell for the case. It does not have space for a battery, but results in a very compact device. - The `Case_Battery_Door.stl` file is the door for the battery compartment of the device. It snap-fits tightly into place in the bottom shell, and features a small slot for opening with a flathead screwdriver or similar. -All files are dimensioned to fit together perfectly without any scaling on a well-tuned 3D-printer. The recommended layer height for all files is 0.15mm. +All files are dimensioned to fit together perfectly without any scaling on a well-tuned 3D-printer. + +The recommended layer height for all files is 0.15mm for FDM printers. ### Step 5: Install Tools @@ -139,4 +140,6 @@ With the firmware installed and configured, and the case parts printed, it's tim 11. Optionally, connect the male JST connector of the **battery** to the female JST connector on the **board**. 12. Fit the **battery door** into place. -Congratulations, Your Handheld RNode is now complete! Flip the power switch, and start using it! +Congratulations, Your Handheld RNode is now complete! + +Flip the power switch, and start using it! \ No newline at end of file diff --git a/Console/source/guides/loracomms.md b/Console/source/guides/loracomms.md index 35b9770..a8fa550 100644 --- a/Console/source/guides/loracomms.md +++ b/Console/source/guides/loracomms.md @@ -1,6 +1,6 @@ [date]: <> (2023-01-14) [title]: <> (Private, Secure and Uncensorable Messaging Over a LoRa Mesh) -[image]: <> (images/g1p.jpeg) +[image]: <> (images/g1p.webp) [excerpt]: <> (Or: How to set up a completely private, independent and encrypted communication system in half an hour, using stuff you can buy for under $100.)
{DATE}
# Private, Secure and Uncensorable Messaging Over a LoRa Mesh diff --git a/Console/source/replicate.md b/Console/source/replicate.md index 2f0cdd8..f455aea 100644 --- a/Console/source/replicate.md +++ b/Console/source/replicate.md @@ -2,7 +2,10 @@ ## Create RNodes This section contains the tools and guides necessary to create more RNodes. Creating any number of RNodes is **completely free and unrestricted** for all personal, non-commercial and humanitarian purposes. If doing so provides value to you or your community, you are encouraged to [contribute](./contribute.html) whatever you find to be reasonable. -In addition, you are very much **encouraged** to create RNodes for sale or commercial purposes, and doing so requires buying a copy of the RNode Firmware for each unit produced for commercial purposes. Please read the [selling RNodes]({ASSET_PATH}sell_rnodes.html) section for more details. +In addition, you are very much **encouraged** to create RNodes for sale or commercial purposes. Doing so requires buying a copy of the RNode Firmware for each unit produced for commercial purposes. Please read the [selling RNodes]({ASSET_PATH}sell_rnodes.html) section for more details. + +### Firmware Source Code +If you would like to inspect or compile the RNode Firmware source code yourself, you can download a copy of the [RNode Firmware source-code]({ASSET_PATH}rnode_firmware.zip) stored in this RNode. ### Getting Started To create your own RNodes, there are generally three distinct paths you can take: