From 3d9787d04b670f0ea63b629944cb31141b78e76d Mon Sep 17 00:00:00 2001 From: IKB3D <150914724+IKB3D@users.noreply.github.com> Date: Mon, 29 Jan 2024 18:55:21 +0000 Subject: [PATCH 01/72] Update trademark-grants.mdx Added IKB3D Grant --- docs/legal/trademark-grants.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/legal/trademark-grants.mdx b/docs/legal/trademark-grants.mdx index 6ffe8eed..0d736dd9 100644 --- a/docs/legal/trademark-grants.mdx +++ b/docs/legal/trademark-grants.mdx @@ -51,3 +51,5 @@ This process ensures transparency and community involvement in the granting of t - Details: Emmett is producing 'Axanar!,' a non-commercial Star Trek fan puppet show. The Meshtastic logo/trademark will used only in a positive manner, to hint to the audience that Meshtastic is still up and running in the year 2380. The use of the Meshtastic Logo and Trademarks does not imply Emmett Plant or Axanar! is sponsored or endorsed by Meshtastic. Emmett also agrees to maintain compliance with the Meshtastic Legal requirements. This grant is revocable at any time for any reason. - Grant: [Simon - muzi.works](https://instagram.com/muzi.works) - Details: Simon is a Meshtastic designer of devices, device enclosures and accessories that carry the "Meshtastic" , Meshtastic.org URL and "M" logos. The use of the Meshtastic Logo and Trademarks does not imply Simon is sponsored or endorsed by Meshtastic. Simon also agrees to maintain compliance with the Meshtastic Legal requirements. This grant is revokable at any time for any reason. +- Grant: [Chris Ridley - IKB3D](https://ikb3d.co.uk) + - Details: Chris designs devices, device enclosures and accessories which are sold through his online shop and other online marketplaces. Many of these carry the "Meshtastic" , Meshtastic.org URL and "M" logos. The use of the Meshtastic Logo and Trademarks does not imply Simon is sponsored or endorsed by Meshtastic. Simon also agrees to maintain compliance with the Meshtastic Legal requirements. This grant is revokable at any time for any reason. From 0d661ee4c91095b31cb3e15b709db0a1e7538886 Mon Sep 17 00:00:00 2001 From: pdxlocations Date: Thu, 1 Feb 2024 08:46:32 -0800 Subject: [PATCH 02/72] add mqtt to integrations index --- docs/software/integrations/index.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/software/integrations/index.mdx b/docs/software/integrations/index.mdx index 567221d0..3b01a150 100644 --- a/docs/software/integrations/index.mdx +++ b/docs/software/integrations/index.mdx @@ -13,4 +13,6 @@ Current Meshtastic integrations: - [ATAK Plugin](/docs/software/integrations/integrations-atak-plugin) - Official Meshtastic ATAK Plugin for sending CoT to IMeshService in the Meshtastic Android app. +- [MQTT](/docs/software/integrations/mqtt) - Bridging mesh networks over the internet and integrating Meshtastic protocols with popular technologies such as Mome Assistant, Node Red, and Adafruit IO. + Support for the integrated products should be sought from their respective authors or vendors. From 302ff258c4632cfd4b9a661731bda7fd5e8ab60c Mon Sep 17 00:00:00 2001 From: pdxlocations Date: Sat, 3 Feb 2024 21:23:09 -0800 Subject: [PATCH 03/72] move enclosures --- docs/community/enclosures/_category_.yml | 6 ++++++ .../enclosures.mdx => community/enclosures/heltec-v2.mdx} | 7 ++++--- .../enclosures/lilygo-lora32-v2.mdx} | 7 ++++--- .../enclosures/rak}/harbor-breeze-solar-enclosure.mdx | 0 .../rak/enclosures => community/enclosures/rak}/index.mdx | 7 ++++--- .../enclosures.mdx => community/enclosures/tbeam.mdx} | 7 ++++--- .../enclosures.mdx => community/enclosures/techo.mdx} | 5 +++-- docs/hardware/devices/lora/buttons.mdx | 2 +- docs/hardware/devices/lora/gpio.mdx | 2 +- docs/hardware/devices/tbeam/buttons.mdx | 2 +- docs/hardware/devices/techo/buttons.mdx | 2 +- 11 files changed, 29 insertions(+), 18 deletions(-) create mode 100644 docs/community/enclosures/_category_.yml rename docs/{hardware/devices/heltec/enclosures.mdx => community/enclosures/heltec-v2.mdx} (86%) rename docs/{hardware/devices/lora/enclosures.mdx => community/enclosures/lilygo-lora32-v2.mdx} (86%) rename docs/{hardware/devices/rak/enclosures => community/enclosures/rak}/harbor-breeze-solar-enclosure.mdx (100%) rename docs/{hardware/devices/rak/enclosures => community/enclosures/rak}/index.mdx (95%) rename docs/{hardware/devices/tbeam/enclosures.mdx => community/enclosures/tbeam.mdx} (86%) rename docs/{hardware/devices/techo/enclosures.mdx => community/enclosures/techo.mdx} (83%) diff --git a/docs/community/enclosures/_category_.yml b/docs/community/enclosures/_category_.yml new file mode 100644 index 00000000..83a6f549 --- /dev/null +++ b/docs/community/enclosures/_category_.yml @@ -0,0 +1,6 @@ +position: 3 +label: Enclosures +collapsible: true # make the category collapsible +link: + type: generated-index + title: Meshtastic Community Enclosures diff --git a/docs/hardware/devices/heltec/enclosures.mdx b/docs/community/enclosures/heltec-v2.mdx similarity index 86% rename from docs/hardware/devices/heltec/enclosures.mdx rename to docs/community/enclosures/heltec-v2.mdx index 07a10c7f..54ee5804 100644 --- a/docs/hardware/devices/heltec/enclosures.mdx +++ b/docs/community/enclosures/heltec-v2.mdx @@ -1,8 +1,9 @@ --- -id: enclosures +id: heltec-enclosures title: Heltec LoRa 32 Enclosures -sidebar_label: Enclosures -sidebar_position: 2 +description: Enclosures +sidebar_label: Heltec V2 +sidebar_position: 5 --- import Tropho from "/img/enclosures/3dp-tropho-heltec32.webp"; diff --git a/docs/hardware/devices/lora/enclosures.mdx b/docs/community/enclosures/lilygo-lora32-v2.mdx similarity index 86% rename from docs/hardware/devices/lora/enclosures.mdx rename to docs/community/enclosures/lilygo-lora32-v2.mdx index 9ede5c36..51a7786c 100644 --- a/docs/hardware/devices/lora/enclosures.mdx +++ b/docs/community/enclosures/lilygo-lora32-v2.mdx @@ -1,8 +1,9 @@ --- -id: enclosures +id: lilygo-lora32-v2-enclosures title: LILYGO® TTGO Lora Enclosures -sidebar_label: Enclosures -sidebar_position: 3 +description: Enclosures +sidebar_label: LILYGO® Lora V2 +sidebar_position: 4 --- import Tropho from "/img/enclosures/3dp-tropho-lora32.webp"; diff --git a/docs/hardware/devices/rak/enclosures/harbor-breeze-solar-enclosure.mdx b/docs/community/enclosures/rak/harbor-breeze-solar-enclosure.mdx similarity index 100% rename from docs/hardware/devices/rak/enclosures/harbor-breeze-solar-enclosure.mdx rename to docs/community/enclosures/rak/harbor-breeze-solar-enclosure.mdx diff --git a/docs/hardware/devices/rak/enclosures/index.mdx b/docs/community/enclosures/rak/index.mdx similarity index 95% rename from docs/hardware/devices/rak/enclosures/index.mdx rename to docs/community/enclosures/rak/index.mdx index 568f9061..d0ff123d 100644 --- a/docs/hardware/devices/rak/enclosures/index.mdx +++ b/docs/community/enclosures/rak/index.mdx @@ -1,8 +1,9 @@ --- -id: enclosures +id: rak-enclosures title: RAK WisBlock Enclosures -sidebar_label: Enclosures -sidebar_position: 3 +description: Enclosures +sidebar_label: RAK WisBlock +sidebar_position: 1 --- ## Created by KeithMon/Voltaic Enclosures diff --git a/docs/hardware/devices/tbeam/enclosures.mdx b/docs/community/enclosures/tbeam.mdx similarity index 86% rename from docs/hardware/devices/tbeam/enclosures.mdx rename to docs/community/enclosures/tbeam.mdx index add81e79..9141a9df 100644 --- a/docs/hardware/devices/tbeam/enclosures.mdx +++ b/docs/community/enclosures/tbeam.mdx @@ -1,8 +1,9 @@ --- -id: enclosures +id: tbeam-enclosures title: T-Beam Enclosures -sidebar_label: Enclosures -sidebar_position: 3 +description: Enclosures +sidebar_label: T-Beam V1 +sidebar_position: 2 --- ## Created by tropho/TonyG diff --git a/docs/hardware/devices/techo/enclosures.mdx b/docs/community/enclosures/techo.mdx similarity index 83% rename from docs/hardware/devices/techo/enclosures.mdx rename to docs/community/enclosures/techo.mdx index e554ab83..748053fc 100644 --- a/docs/hardware/devices/techo/enclosures.mdx +++ b/docs/community/enclosures/techo.mdx @@ -1,7 +1,8 @@ --- -id: enclosures +id: techo-enclosures title: T-Echo Enclosures -sidebar_label: Enclosures +description: Enclosures +sidebar_label: T-Echo sidebar_position: 3 --- diff --git a/docs/hardware/devices/lora/buttons.mdx b/docs/hardware/devices/lora/buttons.mdx index 5d23852f..987f8d46 100644 --- a/docs/hardware/devices/lora/buttons.mdx +++ b/docs/hardware/devices/lora/buttons.mdx @@ -2,7 +2,7 @@ id: buttons title: LILYGO® TTGO Lora Hardware Buttons sidebar_label: Buttons -sidebar_position: 3 +sidebar_position: 1 --- ## Functionality diff --git a/docs/hardware/devices/lora/gpio.mdx b/docs/hardware/devices/lora/gpio.mdx index cc11587a..773b1cc1 100644 --- a/docs/hardware/devices/lora/gpio.mdx +++ b/docs/hardware/devices/lora/gpio.mdx @@ -2,7 +2,7 @@ id: gpio title: LILYGO® TTGO Lora GPIO sidebar_label: GPIO -sidebar_position: 4 +sidebar_position: 2 --- ## GPIO IO12 diff --git a/docs/hardware/devices/tbeam/buttons.mdx b/docs/hardware/devices/tbeam/buttons.mdx index 34973c17..9f3ed3b1 100644 --- a/docs/hardware/devices/tbeam/buttons.mdx +++ b/docs/hardware/devices/tbeam/buttons.mdx @@ -2,7 +2,7 @@ id: buttons title: T-Beam Hardware Buttons sidebar_label: Buttons -sidebar_position: 3 +sidebar_position: 1 --- ## Functionality diff --git a/docs/hardware/devices/techo/buttons.mdx b/docs/hardware/devices/techo/buttons.mdx index b68ad41b..7cd9ada8 100644 --- a/docs/hardware/devices/techo/buttons.mdx +++ b/docs/hardware/devices/techo/buttons.mdx @@ -2,7 +2,7 @@ id: buttons title: T-Echo Hardware Buttons sidebar_label: Buttons -sidebar_position: 3 +sidebar_position: 1 --- ## Functionality From 7c04aa616a15c62b94ed2b6f6b2c788c0ef05cf8 Mon Sep 17 00:00:00 2001 From: pdxlocations Date: Sat, 3 Feb 2024 21:48:45 -0800 Subject: [PATCH 04/72] fix facebook image --- src/pages/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/index.tsx b/src/pages/index.tsx index b25c19d5..ce404608 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -36,7 +36,7 @@ const SocialCards: SocialCardProps[] = [ facebook ), }, From 0d0ba9b0db78ad39f5e38ea27c4e69a9bf44664a Mon Sep 17 00:00:00 2001 From: pdxlocations <117498748+pdxlocations@users.noreply.github.com> Date: Sat, 3 Feb 2024 22:13:12 -0800 Subject: [PATCH 05/72] Fix typo --- docs/software/integrations/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/software/integrations/index.mdx b/docs/software/integrations/index.mdx index 3b01a150..28f70a0a 100644 --- a/docs/software/integrations/index.mdx +++ b/docs/software/integrations/index.mdx @@ -13,6 +13,6 @@ Current Meshtastic integrations: - [ATAK Plugin](/docs/software/integrations/integrations-atak-plugin) - Official Meshtastic ATAK Plugin for sending CoT to IMeshService in the Meshtastic Android app. -- [MQTT](/docs/software/integrations/mqtt) - Bridging mesh networks over the internet and integrating Meshtastic protocols with popular technologies such as Mome Assistant, Node Red, and Adafruit IO. +- [MQTT](/docs/software/integrations/mqtt) - Bridging mesh networks over the internet and integrating Meshtastic protocols with popular technologies such as Home Assistant, Node Red, and Adafruit IO. Support for the integrated products should be sought from their respective authors or vendors. From 02e51ca5de4326b49e9c651e1e069337e68dba66 Mon Sep 17 00:00:00 2001 From: "thomas.ekstrand" Date: Sun, 4 Feb 2024 20:15:41 -0600 Subject: [PATCH 06/72] Add a comparison table of device roles --- docs/configuration/radio/device.mdx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/configuration/radio/device.mdx b/docs/configuration/radio/device.mdx index 1e4d1750..f831b632 100644 --- a/docs/configuration/radio/device.mdx +++ b/docs/configuration/radio/device.mdx @@ -30,6 +30,24 @@ Acceptable values: | `CLIENT_HIDDEN` | Client Hidden - Used for nodes that "only speak when spoken to." Turns off all of the routine broadcasts but allows for ad-hoc communication. Still rebroadcasts, but with local only rebroadcast mode (known meshes only). Can be used for clandestine operation or to dramatically reduce airtime / power consumption | | `LOST_AND_FOUND` | Lost and Found - Used to automatically send a text message with current position at frequent intervals to the primary channel for the device: "I'm lost! Position: lat / long" | +#### Role Comparison + +This table shows the **default** values after selecting a preset. As always, individual settings can be adjusted after choosing a preset. + +| Device Role | Bluetooth/Wi-Fi Enabled | Screen Enabled | Power Consumption | Retransmit | Prioritized Routing | Visible in Nodes List | +| -------------- | ----------------------- | -------------- | ----------------- | ---------- | ------------------- | --------------------- | +| CLIENT | Yes | Yes | Regular | Yes | No | Yes | +| CLIENT_MUTE | Yes | Yes | Lowest | No | No | Yes | +| CLIENT_HIDDEN | Yes | Yes | Lowest | Local only | No | No | +| TRACKER | No | No | Regular | No | No | Yes | +| LOST_AND_FOUND | No | No | Regular | No | No | Yes | +| SENSOR | No | No | High | No | No | Yes | +| TAK | Yes | Optional | Low | Yes | No | Yes | +| ROUTER | No | No | High | Yes | Yes | Yes | +| ROUTER_CLIENT | Yes | Yes | Highest | Yes | Yes | Yes | +| REPEATER | No | No | High | Yes | Yes | No | + + ### Rebroadcast Mode This setting defines the device's behavior for how messages are rebroadcasted. From 54e223fddd4323d4cd79939f945b1601d796ff7d Mon Sep 17 00:00:00 2001 From: "thomas.ekstrand" Date: Mon, 5 Feb 2024 14:02:13 -0600 Subject: [PATCH 07/72] ble/wifi enabled updates --- docs/configuration/radio/device.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/configuration/radio/device.mdx b/docs/configuration/radio/device.mdx index f831b632..044ae889 100644 --- a/docs/configuration/radio/device.mdx +++ b/docs/configuration/radio/device.mdx @@ -39,13 +39,13 @@ This table shows the **default** values after selecting a preset. As always, ind | CLIENT | Yes | Yes | Regular | Yes | No | Yes | | CLIENT_MUTE | Yes | Yes | Lowest | No | No | Yes | | CLIENT_HIDDEN | Yes | Yes | Lowest | Local only | No | No | -| TRACKER | No | No | Regular | No | No | Yes | -| LOST_AND_FOUND | No | No | Regular | No | No | Yes | -| SENSOR | No | No | High | No | No | Yes | +| TRACKER | Yes | No | Regular | No | No | Yes | +| LOST_AND_FOUND | Yes | No | Regular | No | No | Yes | +| SENSOR | Yes | No | High | No | No | Yes | | TAK | Yes | Optional | Low | Yes | No | Yes | | ROUTER | No | No | High | Yes | Yes | Yes | | ROUTER_CLIENT | Yes | Yes | Highest | Yes | Yes | Yes | -| REPEATER | No | No | High | Yes | Yes | No | +| REPEATER | Yes | No | High | Yes | Yes | No | ### Rebroadcast Mode From 5d2dba16ab89c0ed4b12a849645d31954230f305 Mon Sep 17 00:00:00 2001 From: "thomas.ekstrand" Date: Tue, 6 Feb 2024 19:22:48 -0600 Subject: [PATCH 08/72] 301 old faq page to new --- vercel.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vercel.json b/vercel.json index fe06a139..960c91f9 100644 --- a/vercel.json +++ b/vercel.json @@ -56,6 +56,10 @@ { "source": "/docs/software/mqtt/", "destination": "/docs/software/integrations/mqtt" + }, + { + "source": "/docs/getting-started/faq", + "destination": "/docs/faq/" } ] } From 14cb08dd38bfee263f1f1ae60535042564e1765f Mon Sep 17 00:00:00 2001 From: "thomas.ekstrand" Date: Tue, 6 Feb 2024 19:21:46 -0600 Subject: [PATCH 09/72] enforce trailing slash in docusaurus --- docusaurus.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/docusaurus.config.js b/docusaurus.config.js index dd90736d..0199cfeb 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -9,6 +9,7 @@ const config = { "An open source, off-grid, decentralized, mesh network built to run on affordable, low-power devices", url: "https://meshtastic.org", baseUrl: "/", + trailingSlash: true, onBrokenLinks: "throw", onBrokenMarkdownLinks: "warn", favicon: "design/web/favicon.ico", From 76e5b7ee5d58ee62f08729a5f1662e95064fa3c3 Mon Sep 17 00:00:00 2001 From: "thomas.ekstrand" Date: Wed, 7 Feb 2024 09:30:14 -0600 Subject: [PATCH 10/72] fix trailing slash incompataible links --- docs/configuration/module/canned-message.mdx | 2 +- docs/configuration/tips.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/configuration/module/canned-message.mdx b/docs/configuration/module/canned-message.mdx index 75fcb1b1..b6fca729 100644 --- a/docs/configuration/module/canned-message.mdx +++ b/docs/configuration/module/canned-message.mdx @@ -23,7 +23,7 @@ Enables the canned message module. Sends a bell character with each message. -The [External Notification Module](external-notification) can be set up to beep when a new message arrives. +The [External Notification Module](external-notification.mdx) can be set up to beep when a new message arrives. This module can also be configured to beep only when a message contains the bell character. ### Messages diff --git a/docs/configuration/tips.mdx b/docs/configuration/tips.mdx index 5ec7b052..32f49e61 100644 --- a/docs/configuration/tips.mdx +++ b/docs/configuration/tips.mdx @@ -65,5 +65,5 @@ This configures the frequency the radio is set to. Check out the [frequency cal - If you are part of a large mesh and don't know what a setting does, don't change it (unless you're super curious). - Leave your [MAX HOPS](/docs/configuration/radio/lora#max-hops) set to 3 unless you're sure you need more (or less) to reach your destination node. - TEST your settings and hardware before you install in hard-to-reach locations. -- Connecting a node to the [public MQTT server](./module/mqtt#connect-to-the-default-public-server) may publish the locations of all nodes in your mesh to the internet. This will also add every globally connected node to your node database and potentially flood your mesh with all types of packets. +- Connecting a node to the [public MQTT server](/docs/configuration/module/mqtt#connect-to-the-default-public-server) may publish the locations of all nodes in your mesh to the internet. This will also add every globally connected node to your node database and potentially flood your mesh with all types of packets. From fe9d5f8e157a5ca0d916710f1c86808dd610dca0 Mon Sep 17 00:00:00 2001 From: jopdyke <111011098+jopdyke@users.noreply.github.com> Date: Wed, 7 Feb 2024 15:31:14 -0500 Subject: [PATCH 11/72] Update index.mdx US distributor link was linking to RAKs website which ships from China. Re-added correct US distributor links via Rokland for Gen1 and Gen2 kits. Rokland will be restocking Gen2 kits within the next few weeks. Gen1 kits are in stock. --- docs/hardware/devices/rak/index.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/hardware/devices/rak/index.mdx b/docs/hardware/devices/rak/index.mdx index 3f3ad0ff..94e7fe15 100644 --- a/docs/hardware/devices/rak/index.mdx +++ b/docs/hardware/devices/rak/index.mdx @@ -24,4 +24,6 @@ Please see the RAK documentation for the correct way to connect your hardware to - RAK's [GitHub Page](https://github.com/RAKWireless/WisBlock) for the WisBlock - Purchase links - See purchase links under specific base boards, core modules, and peripherals - - US Distributor [RAK Wireless Starter Kit](https://store.rakwireless.com/products/wisblock-meshtastic-starter-kit) + - China RAK Direct [RAK Wireless Starter Kit w/ Gen2 Base board](https://store.rakwireless.com/products/wisblock-meshtastic-starter-kit) + - US Distributor Rokland [RAK Wireless Starter Kit w/ Gen2 Base board](https://store.rokland.com/products/rak-wireless-wisblock-meshtastic-starter-kit) + - US Distributor Rokland [RAK Wireless Starter Kit w/ Gen1 Base board](https://store.rokland.com/products/rakwireless-meshtastic-starter-kit-alternative-with-rak5005-o-base) From 2f09750a0b39be2b92a53ebe5300e020c3b7805f Mon Sep 17 00:00:00 2001 From: jopdyke <111011098+jopdyke@users.noreply.github.com> Date: Wed, 7 Feb 2024 15:37:01 -0500 Subject: [PATCH 12/72] Update core-modules.mdx added US distributor for RAK11200 --- docs/hardware/devices/rak/core-modules.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/hardware/devices/rak/core-modules.mdx b/docs/hardware/devices/rak/core-modules.mdx index 77dcc300..1d29a24c 100644 --- a/docs/hardware/devices/rak/core-modules.mdx +++ b/docs/hardware/devices/rak/core-modules.mdx @@ -119,6 +119,8 @@ The RAK11200 does not contain a LoRa transceiver, and thus needs to be added sep - International - [RAK Wireless Store](https://store.rakwireless.com/products/wiscore-esp32-module-rak11200) - [RAK Wireless Aliexpress](https://www.aliexpress.us/item/3256802312474717.html) + - US + - [Rokland](https://store.rokland.com/products/rakwireless-rak11200-wifi-and-ble-espressif-esp32-wrover-pid-110023) RAK4631 5005 11200 Date: Wed, 7 Feb 2024 15:38:39 -0500 Subject: [PATCH 13/72] Update core-modules.mdx added US distributor for RAK11310 --- docs/hardware/devices/rak/core-modules.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/hardware/devices/rak/core-modules.mdx b/docs/hardware/devices/rak/core-modules.mdx index 77dcc300..c33ea429 100644 --- a/docs/hardware/devices/rak/core-modules.mdx +++ b/docs/hardware/devices/rak/core-modules.mdx @@ -164,6 +164,8 @@ The RAK11200 does not contain a LoRa transceiver, and thus needs to be added sep - International - [RAK Wireless Store](https://store.rakwireless.com/products/rak11310-wisblock-lpwan-module) - [RAK Wireless Aliexpress](https://www.aliexpress.us/item/3256803225175784.html) + - US + - [Rokland](https://store.rokland.com/products/rak-raspberry-pi-rp2040-core-module-for-lorawan-with-lora-sx1262-us915-mhz-rak11310-pid-116003) From 8d538b83c63d589f18697943b1fcffb1e51912f9 Mon Sep 17 00:00:00 2001 From: jopdyke <111011098+jopdyke@users.noreply.github.com> Date: Wed, 7 Feb 2024 16:03:56 -0500 Subject: [PATCH 14/72] Update core-modules.mdx adjusted US purchase links to be above International for both the RAK11200 & RAK11310 --- docs/hardware/devices/rak/core-modules.mdx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/hardware/devices/rak/core-modules.mdx b/docs/hardware/devices/rak/core-modules.mdx index 1d29a24c..f1316ee8 100644 --- a/docs/hardware/devices/rak/core-modules.mdx +++ b/docs/hardware/devices/rak/core-modules.mdx @@ -116,11 +116,11 @@ The RAK11200 does not contain a LoRa transceiver, and thus needs to be added sep - Firmware file: `firmware-rak11200-X.X.X.xxxxxxx.bin` - Further information on the RAK11200 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK11200/Overview/#product-description). - Purchase Links: + - US + - [Rokland](https://store.rokland.com/products/rakwireless-rak11200-wifi-and-ble-espressif-esp32-wrover-pid-110023) - International - [RAK Wireless Store](https://store.rakwireless.com/products/wiscore-esp32-module-rak11200) - [RAK Wireless Aliexpress](https://www.aliexpress.us/item/3256802312474717.html) - - US - - [Rokland](https://store.rokland.com/products/rakwireless-rak11200-wifi-and-ble-espressif-esp32-wrover-pid-110023) RAK4631 5005 11200 Date: Wed, 7 Feb 2024 23:12:50 +0000 Subject: [PATCH 15/72] Fix typos in Meshtastic flasher URLs (#983) * Update nrf52-erase.mdx Fix typo in flasher URL * Update drag-n-drop.mdx Fix typo in Flasher URL --- docs/getting-started/flashing-firmware/nrf52/drag-n-drop.mdx | 2 +- docs/getting-started/flashing-firmware/nrf52/nrf52-erase.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/getting-started/flashing-firmware/nrf52/drag-n-drop.mdx b/docs/getting-started/flashing-firmware/nrf52/drag-n-drop.mdx index 4f37a841..27bff140 100644 --- a/docs/getting-started/flashing-firmware/nrf52/drag-n-drop.mdx +++ b/docs/getting-started/flashing-firmware/nrf52/drag-n-drop.mdx @@ -12,7 +12,7 @@ import Link from "@docusaurus/Link"; ## Flash Firmware :::info -You may now use the [Meshtastic Web Flasher](https://flasher.mesthastic.org) to download and copy firmware to your nRF52 or RP2040-based devices. Alternatively, follow the instructions below to download and install firmware. +You may now use the [Meshtastic Web Flasher](https://flasher.meshtastic.org) to download and copy firmware to your nRF52 or RP2040-based devices. Alternatively, follow the instructions below to download and install firmware. ::: ### nRF52 diff --git a/docs/getting-started/flashing-firmware/nrf52/nrf52-erase.mdx b/docs/getting-started/flashing-firmware/nrf52/nrf52-erase.mdx index 15314e47..2b19073a 100644 --- a/docs/getting-started/flashing-firmware/nrf52/nrf52-erase.mdx +++ b/docs/getting-started/flashing-firmware/nrf52/nrf52-erase.mdx @@ -10,7 +10,7 @@ import Link from "@docusaurus/Link"; Meshtastic uses the [littlefs](https://github.com/littlefs-project/littlefs) library to store configuration, logs, and other data in the internal flash of nRF52 & RP2040 devices. Updating the firmware does _not_ erase this additional data, which can cause issues when the format and location of data changes between releases. :::info -You may now use the [Meshtastic Web Flasher](https://flasher.mesthastic.org) to Factory Erase your nRF52 or RP2040-based devices. Visit the flasher, select your board, and click the trash can icon to the right of the Flash button. This will open a dialogue to begin the erase procedure. +You may now use the [Meshtastic Web Flasher](https://flasher.meshtastic.org) to Factory Erase your nRF52 or RP2040-based devices. Visit the flasher, select your board, and click the trash can icon to the right of the Flash button. This will open a dialogue to begin the erase procedure. Alternatively, follow the instructions below. ::: From 9bf9637614e4b68ac971456a2ed0715fffed6ec0 Mon Sep 17 00:00:00 2001 From: HarukiToreda <116696711+5kamisama5@users.noreply.github.com> Date: Wed, 7 Feb 2024 18:47:00 -0500 Subject: [PATCH 16/72] Add triple press button action for heltec (#976) Just adding the triple click function. Co-authored-by: rcarteraz Co-authored-by: Tommy Ekstrand --- docs/hardware/devices/heltec/buttons.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/hardware/devices/heltec/buttons.mdx b/docs/hardware/devices/heltec/buttons.mdx index 1e4ff0c4..cba4792a 100644 --- a/docs/hardware/devices/heltec/buttons.mdx +++ b/docs/hardware/devices/heltec/buttons.mdx @@ -13,3 +13,4 @@ sidebar_position: 1 - **Long press:** Will signal the device to shutdown after 5 seconds. - **Single press:** Changes the information page displayed on the device's screen. - **Double press:** Sends an adhoc ping of the device's position to the network. + - **Triple press:** Enables/Disables the GPS Module on demand. If an NPN Transistor is added it will cut power to the GPS board. The NPN pin must be configured on the PIN_GPS_EN inside the Position module in the App for this switching to work. From 3795f6a2c2c92629a199d7285e3926211cd9eeca Mon Sep 17 00:00:00 2001 From: pdxlocations <117498748+pdxlocations@users.noreply.github.com> Date: Thu, 8 Feb 2024 10:04:04 -0800 Subject: [PATCH 17/72] MQTT subpage path forwrading --- vercel.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vercel.json b/vercel.json index 960c91f9..e8ea1798 100644 --- a/vercel.json +++ b/vercel.json @@ -57,6 +57,10 @@ "source": "/docs/software/mqtt/", "destination": "/docs/software/integrations/mqtt" }, + { + "source": "/docs/software/mqtt/:path*/", + "destination": "/docs/software/integrations/mqtt/:path*/" + }, { "source": "/docs/getting-started/faq", "destination": "/docs/faq/" From ddc2b53af9953d246aeda83b28db371758082a44 Mon Sep 17 00:00:00 2001 From: Tommy Ekstrand Date: Thu, 8 Feb 2024 15:23:54 -0600 Subject: [PATCH 18/72] fix biome errors (#977) --- .github/workflows/ci.yml | 4 +- biome.json | 3 +- docusaurus.config.js | 252 +++++++++--------- package.json | 2 +- pnpm-lock.yaml | 56 ++-- sidebars.js | 12 +- src/components/ColorMode.tsx | 2 +- src/components/PageLayout.tsx | 2 +- src/components/homepage/SocialCard.tsx | 2 +- src/components/tools/FrequencyCalculator.tsx | 162 +++++------ .../downloads/_components/FirmwareCard.tsx | 6 +- src/pages/downloads/index.tsx | 5 +- src/pages/index.tsx | 5 +- src/pages/tools/OEM.tsx | 13 +- src/utils/calculateADC.ts | 4 +- tailwind.config.ts | 38 +-- 16 files changed, 288 insertions(+), 280 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index faac55cb..6a941be2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: version: latest - name: Run Biome - run: biome ci . + run: biome ci . --diagnostic-level=error build: runs-on: ubuntu-latest steps: @@ -40,4 +40,4 @@ jobs: run: pnpm install - name: Build Package - run: pnpm run build \ No newline at end of file + run: pnpm run build diff --git a/biome.json b/biome.json index 32a4e0fe..570d35bb 100644 --- a/biome.json +++ b/biome.json @@ -4,7 +4,8 @@ "enabled": true }, "files": { - "ignoreUnknown": true + "ignoreUnknown": true, + "ignore": ["*.json"] }, "vcs": { "enabled": true, diff --git a/docusaurus.config.js b/docusaurus.config.js index 0199cfeb..25e054f8 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -4,137 +4,137 @@ require("dotenv").config(); /** @type {import('@docusaurus/types').Config} */ const config = { - title: "Meshtastic", - tagline: - "An open source, off-grid, decentralized, mesh network built to run on affordable, low-power devices", - url: "https://meshtastic.org", - baseUrl: "/", - trailingSlash: true, - onBrokenLinks: "throw", - onBrokenMarkdownLinks: "warn", - favicon: "design/web/favicon.ico", - organizationName: "meshtastic", - projectName: "meshtastic", - themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ { - docs: { - sidebar: { - autoCollapseCategories: true, - }, - }, - navbar: { - title: "Meshtastic", - hideOnScroll: true, - logo: { - alt: "Meshtastic Logo", - src: "design/logo/svg/Mesh_Logo_Black.svg", - srcDark: "design/logo/svg/Mesh_Logo_White.svg", - }, - items: [ - { - label: "Docs", - to: "docs/introduction", - }, - { - label: "Downloads", - to: "downloads", - }, - { - label: "About", - position: "right", - items: [ - { - label: "Introduction", - to: "docs/introduction", - }, - { - label: "Getting Started", - to: "docs/getting-started", - }, - { - label: "Contributing", - to: "docs/contributing", - }, - { - label: "Legal", - to: "docs/legal", - }, - { - label: "FAQs", - to: "docs/faq", - }, - ], - }, - { - href: "https://github.com/meshtastic", - position: "right", - className: "header-github-link", - "aria-label": "GitHub repository", - }, - ], - }, - footer: { - copyright: `Powered by ▲ Vercel | Meshtastic® is a registered trademark of Meshtastic LLC. | Legal Information.`, - }, - algolia: { - appId: "IG2GQB8L3V", - apiKey: "2e4348812173ec7ea6f7879c7032bb21", - indexName: "meshtastic", - contextualSearch: false, - searchPagePath: "search", - }, - colorMode: { - respectPrefersColorScheme: true, - }, - mermaid: { - theme: { light: "base", dark: "base" }, - options: { - themeVariables: { - primaryColor: "#67EA94", - primaryTextColor: "var(--tw-prose-headings)", - primaryBorderColor: "#4D4D4D", - lineColor: "#EAD667", - secondaryColor: "#EA67BD", - tertiaryColor: "#677CEA", - }, - }, - }, + title: "Meshtastic", + tagline: + "An open source, off-grid, decentralized, mesh network built to run on affordable, low-power devices", + url: "https://meshtastic.org", + baseUrl: "/", + trailingSlash: true, + onBrokenLinks: "throw", + onBrokenMarkdownLinks: "warn", + favicon: "design/web/favicon.ico", + organizationName: "meshtastic", + projectName: "meshtastic", + themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ { + docs: { + sidebar: { + autoCollapseCategories: true, + }, }, - plugins: [ - () => { - return { - name: "docusaurus-tailwindcss", - configurePostCss(postcssOptions) { - postcssOptions.plugins.push(require("tailwindcss")); - postcssOptions.plugins.push(require("autoprefixer")); - return postcssOptions; - }, - }; + navbar: { + title: "Meshtastic", + hideOnScroll: true, + logo: { + alt: "Meshtastic Logo", + src: "design/logo/svg/Mesh_Logo_Black.svg", + srcDark: "design/logo/svg/Mesh_Logo_White.svg", + }, + items: [ + { + label: "Docs", + to: "docs/introduction", }, - ], - presets: [ - [ - "@docusaurus/preset-classic", - /** @type {import('@docusaurus/preset-classic').Options} */ + { + label: "Downloads", + to: "downloads", + }, + { + label: "About", + position: "right", + items: [ { - docs: { - sidebarPath: require.resolve("./sidebars.js"), - editUrl: "https://github.com/meshtastic/meshtastic/edit/master/", - breadcrumbs: false, - showLastUpdateAuthor: true, - }, - theme: { - customCss: require.resolve("./src/css/custom.css"), - }, + label: "Introduction", + to: "docs/introduction", }, - ], + { + label: "Getting Started", + to: "docs/getting-started", + }, + { + label: "Contributing", + to: "docs/contributing", + }, + { + label: "Legal", + to: "docs/legal", + }, + { + label: "FAQs", + to: "docs/faq", + }, + ], + }, + { + href: "https://github.com/meshtastic", + position: "right", + className: "header-github-link", + "aria-label": "GitHub repository", + }, + ], + }, + footer: { + copyright: `Powered by ▲ Vercel | Meshtastic® is a registered trademark of Meshtastic LLC. | Legal Information.`, + }, + algolia: { + appId: "IG2GQB8L3V", + apiKey: "2e4348812173ec7ea6f7879c7032bb21", + indexName: "meshtastic", + contextualSearch: false, + searchPagePath: "search", + }, + colorMode: { + respectPrefersColorScheme: true, + }, + mermaid: { + theme: { light: "base", dark: "base" }, + options: { + themeVariables: { + primaryColor: "#67EA94", + primaryTextColor: "var(--tw-prose-headings)", + primaryBorderColor: "#4D4D4D", + lineColor: "#EAD667", + secondaryColor: "#EA67BD", + tertiaryColor: "#677CEA", + }, + }, + }, + }, + plugins: [ + () => { + return { + name: "docusaurus-tailwindcss", + configurePostCss(postcssOptions) { + postcssOptions.plugins.push(require("tailwindcss")); + postcssOptions.plugins.push(require("autoprefixer")); + return postcssOptions; + }, + }; + }, + ], + presets: [ + [ + "@docusaurus/preset-classic", + /** @type {import('@docusaurus/preset-classic').Options} */ + { + docs: { + sidebarPath: require.resolve("./sidebars.js"), + editUrl: "https://github.com/meshtastic/meshtastic/edit/master/", + breadcrumbs: false, + showLastUpdateAuthor: true, + }, + theme: { + customCss: require.resolve("./src/css/custom.css"), + }, + }, ], - customFields: { - API_URL: process.env.API_URL, - }, - markdown: { - mermaid: true, - }, - themes: ["@docusaurus/theme-mermaid"], + ], + customFields: { + API_URL: process.env.API_URL, + }, + markdown: { + mermaid: true, + }, + themes: ["@docusaurus/theme-mermaid"], }; module.exports = config; diff --git a/package.json b/package.json index 7190f1d0..060e19c9 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "tailwindcss": "^3.4.1" }, "devDependencies": { - "@biomejs/biome": "^1.5.0", + "@biomejs/biome": "^1.5.3", "@buf/meshtastic_protobufs.bufbuild_es": "1.6.0-20240106203407-94f78518ac45.1", "@docusaurus/module-type-aliases": "3.1.0", "@tailwindcss/typography": "^0.5.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0e7f8a2e..0c6cfb15 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -65,8 +65,8 @@ dependencies: devDependencies: '@biomejs/biome': - specifier: ^1.5.0 - version: 1.5.0 + specifier: ^1.5.3 + version: 1.5.3 '@buf/meshtastic_protobufs.bufbuild_es': specifier: 1.6.0-20240106203407-94f78518ac45.1 version: 1.6.0-20240106203407-94f78518ac45.1(@bufbuild/protobuf@1.6.0) @@ -1551,24 +1551,24 @@ packages: to-fast-properties: 2.0.0 dev: false - /@biomejs/biome@1.5.0: - resolution: {integrity: sha512-ln+o5jbs109qpeDoA+5n+vlAPai3DhlK0tHtZXzQvu4tswFgxNiJCeIXmlW1DYHziTmtBImV3Y0uhbm2iVSE3Q==} + /@biomejs/biome@1.5.3: + resolution: {integrity: sha512-yvZCa/g3akwTaAQ7PCwPWDCkZs3Qa5ONg/fgOUT9e6wAWsPftCjLQFPXBeGxPK30yZSSpgEmRCfpGTmVbUjGgg==} engines: {node: '>=14.*'} hasBin: true requiresBuild: true optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.5.0 - '@biomejs/cli-darwin-x64': 1.5.0 - '@biomejs/cli-linux-arm64': 1.5.0 - '@biomejs/cli-linux-arm64-musl': 1.5.0 - '@biomejs/cli-linux-x64': 1.5.0 - '@biomejs/cli-linux-x64-musl': 1.5.0 - '@biomejs/cli-win32-arm64': 1.5.0 - '@biomejs/cli-win32-x64': 1.5.0 + '@biomejs/cli-darwin-arm64': 1.5.3 + '@biomejs/cli-darwin-x64': 1.5.3 + '@biomejs/cli-linux-arm64': 1.5.3 + '@biomejs/cli-linux-arm64-musl': 1.5.3 + '@biomejs/cli-linux-x64': 1.5.3 + '@biomejs/cli-linux-x64-musl': 1.5.3 + '@biomejs/cli-win32-arm64': 1.5.3 + '@biomejs/cli-win32-x64': 1.5.3 dev: true - /@biomejs/cli-darwin-arm64@1.5.0: - resolution: {integrity: sha512-3+D7axf04dpadGMOaqb2q+zyQnhWW0o/Imt7TJBWsoE0N3/+28Wht8g3UEHHcUL5FPuGIfsE+NcYntBaaAsEIg==} + /@biomejs/cli-darwin-arm64@1.5.3: + resolution: {integrity: sha512-ImU7mh1HghEDyqNmxEZBoMPr8SxekkZuYcs+gynKlNW+TALQs7swkERiBLkG9NR0K1B3/2uVzlvYowXrmlW8hw==} engines: {node: '>=14.*'} cpu: [arm64] os: [darwin] @@ -1576,8 +1576,8 @@ packages: dev: true optional: true - /@biomejs/cli-darwin-x64@1.5.0: - resolution: {integrity: sha512-8k5aaLWE/B6ZAXLC+z/Vwh9ogyiSaiRIfvg+F9foxuneHl2R/D/2Iy7pvd3Yoi4Kf6/MBdowekPVezGP4/Kbcw==} + /@biomejs/cli-darwin-x64@1.5.3: + resolution: {integrity: sha512-vCdASqYnlpq/swErH7FD6nrFz0czFtK4k/iLgj0/+VmZVjineFPgevOb+Sr9vz0tk0GfdQO60bSpI74zU8M9Dw==} engines: {node: '>=14.*'} cpu: [x64] os: [darwin] @@ -1585,8 +1585,8 @@ packages: dev: true optional: true - /@biomejs/cli-linux-arm64-musl@1.5.0: - resolution: {integrity: sha512-+1B3J8tWLTOvP3+00Cap+XhEXMvxwCHvVfuywUsB7Sqd66NWic3wKJuGbGcS3PuCWtGuIFsiQMNAGqiOXG4uBQ==} + /@biomejs/cli-linux-arm64-musl@1.5.3: + resolution: {integrity: sha512-DYuMizUYUBYfS0IHGjDrOP1RGipqWfMGEvNEJ398zdtmCKLXaUvTimiox5dvx4X15mBK5M2m8wgWUgOP1giUpQ==} engines: {node: '>=14.*'} cpu: [arm64] os: [linux] @@ -1594,8 +1594,8 @@ packages: dev: true optional: true - /@biomejs/cli-linux-arm64@1.5.0: - resolution: {integrity: sha512-RiecxG71E1jnqiJZ3FaikVBDRkk2ohIxBo0O4o68g87y6Hug//G0S83sj6Wqyn8DgKMCRWQg+XYMgk5CwLVowA==} + /@biomejs/cli-linux-arm64@1.5.3: + resolution: {integrity: sha512-cupBQv0sNF1OKqBfx7EDWMSsKwRrBUZfjXawT4s6hKV6ALq7p0QzWlxr/sDmbKMLOaLQtw2Qgu/77N9rm+f9Rg==} engines: {node: '>=14.*'} cpu: [arm64] os: [linux] @@ -1603,8 +1603,8 @@ packages: dev: true optional: true - /@biomejs/cli-linux-x64-musl@1.5.0: - resolution: {integrity: sha512-4S2rLluc0WT+XTbLTgcm9+5EEFwJmoGiUEzR6N0P2sIjZD8c5KNf9Ou46BP1Pdg5AgqV+IIClGPK1I80ApSh1Q==} + /@biomejs/cli-linux-x64-musl@1.5.3: + resolution: {integrity: sha512-UUHiAnlDqr2Y/LpvshBFhUYMWkl2/Jn+bi3U6jKuav0qWbbBKU/ByHgR4+NBxpKBYoCtWxhnmatfH1bpPIuZMw==} engines: {node: '>=14.*'} cpu: [x64] os: [linux] @@ -1612,8 +1612,8 @@ packages: dev: true optional: true - /@biomejs/cli-linux-x64@1.5.0: - resolution: {integrity: sha512-TlTsG+ptSmnDTUsAAYsXyGOXMcFiF8SiwhPdj4YsNkJRgx9M2curEVcTVm66FINIPK6VJTUcEDahFlx3NPUOzA==} + /@biomejs/cli-linux-x64@1.5.3: + resolution: {integrity: sha512-YQrSArQvcv4FYsk7Q91Yv4uuu5F8hJyORVcv3zsjCLGkjIjx2RhjYLpTL733SNL7v33GmOlZY0eFR1ko38tuUw==} engines: {node: '>=14.*'} cpu: [x64] os: [linux] @@ -1621,8 +1621,8 @@ packages: dev: true optional: true - /@biomejs/cli-win32-arm64@1.5.0: - resolution: {integrity: sha512-sWOi1SR+YqJuXElBncGRnWBR7IN7ni6GQY4Zm/vTpP6nVA0dX5C301eQUW1N/VnFQb6fyrJTcBslDUKyemsN/g==} + /@biomejs/cli-win32-arm64@1.5.3: + resolution: {integrity: sha512-HxatYH7vf/kX9nrD+pDYuV2GI9GV8EFo6cfKkahAecTuZLPxryHx1WEfJthp5eNsE0+09STGkKIKjirP0ufaZA==} engines: {node: '>=14.*'} cpu: [arm64] os: [win32] @@ -1630,8 +1630,8 @@ packages: dev: true optional: true - /@biomejs/cli-win32-x64@1.5.0: - resolution: {integrity: sha512-OoqgUXyzmRwX466bklOsWS7WdcvWtBuxF94DXATNe7bUiBa2tlW8QX7VVZvPnMKH57E5J619AkB3b5fhzyUhXA==} + /@biomejs/cli-win32-x64@1.5.3: + resolution: {integrity: sha512-fMvbSouZEASU7mZH8SIJSANDm5OqsjgtVXlbUqxwed6BP7uuHRSs396Aqwh2+VoW8fwTpp6ybIUoC9FrzB0kyA==} engines: {node: '>=14.*'} cpu: [x64] os: [win32] diff --git a/sidebars.js b/sidebars.js index bad0a43f..59c9276a 100644 --- a/sidebars.js +++ b/sidebars.js @@ -2,10 +2,10 @@ /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ module.exports = { - Sidebar: [ - { - type: "autogenerated", - dirName: ".", - }, - ], + Sidebar: [ + { + type: "autogenerated", + dirName: ".", + }, + ], }; diff --git a/src/components/ColorMode.tsx b/src/components/ColorMode.tsx index ae020458..dbfdde8b 100644 --- a/src/components/ColorMode.tsx +++ b/src/components/ColorMode.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import type React from "react"; export interface ColorModeProps { children: React.ReactNode; diff --git a/src/components/PageLayout.tsx b/src/components/PageLayout.tsx index 2554bd29..6426846a 100644 --- a/src/components/PageLayout.tsx +++ b/src/components/PageLayout.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import type React from "react"; import Layout from "@theme/Layout"; diff --git a/src/components/homepage/SocialCard.tsx b/src/components/homepage/SocialCard.tsx index df145aa3..eee77026 100644 --- a/src/components/homepage/SocialCard.tsx +++ b/src/components/homepage/SocialCard.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import type React from "react"; import { FiExternalLink } from "react-icons/fi"; diff --git a/src/components/tools/FrequencyCalculator.tsx b/src/components/tools/FrequencyCalculator.tsx index 475691e3..aeb53e7a 100644 --- a/src/components/tools/FrequencyCalculator.tsx +++ b/src/components/tools/FrequencyCalculator.tsx @@ -2,11 +2,11 @@ import { Protobuf, Types } from "@meshtastic/js"; import React, { useEffect } from "react"; interface Region { - freq_start: number; - freq_end: number; - duty_cycle: number; + freqStart: number; + freqEnd: number; + dutyCycle: number; spacing: number; - power_limit: number; + powerLimit: number; } interface Modem { @@ -22,181 +22,181 @@ const RegionData = new Map< [ Protobuf.Config.Config_LoRaConfig_RegionCode.US, { - freq_start: 902.0, - freq_end: 928.0, - duty_cycle: 100, + freqStart: 902.0, + freqEnd: 928.0, + dutyCycle: 100, spacing: 0, - power_limit: 30, + powerLimit: 30, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.EU_433, { - freq_start: 433.0, - freq_end: 434.0, - duty_cycle: 10, + freqStart: 433.0, + freqEnd: 434.0, + dutyCycle: 10, spacing: 0, - power_limit: 12, + powerLimit: 12, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.EU_868, { - freq_start: 869.4, - freq_end: 869.65, - duty_cycle: 10, + freqStart: 869.4, + freqEnd: 869.65, + dutyCycle: 10, spacing: 0, - power_limit: 27, + powerLimit: 27, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.CN, { - freq_start: 470.0, - freq_end: 510.0, - duty_cycle: 100, + freqStart: 470.0, + freqEnd: 510.0, + dutyCycle: 100, spacing: 0, - power_limit: 19, + powerLimit: 19, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.JP, { - freq_start: 920.8, - freq_end: 927.8, - duty_cycle: 100, + freqStart: 920.8, + freqEnd: 927.8, + dutyCycle: 100, spacing: 0, - power_limit: 16, + powerLimit: 16, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.ANZ, { - freq_start: 915.0, - freq_end: 928.0, - duty_cycle: 100, + freqStart: 915.0, + freqEnd: 928.0, + dutyCycle: 100, spacing: 0, - power_limit: 30, + powerLimit: 30, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.RU, { - freq_start: 868.7, - freq_end: 869.2, - duty_cycle: 100, + freqStart: 868.7, + freqEnd: 869.2, + dutyCycle: 100, spacing: 0, - power_limit: 20, + powerLimit: 20, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.KR, { - freq_start: 920.0, - freq_end: 923.0, - duty_cycle: 100, + freqStart: 920.0, + freqEnd: 923.0, + dutyCycle: 100, spacing: 0, - power_limit: 0, + powerLimit: 0, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.TW, { - freq_start: 920.0, - freq_end: 925.0, - duty_cycle: 100, + freqStart: 920.0, + freqEnd: 925.0, + dutyCycle: 100, spacing: 0, - power_limit: 0, + powerLimit: 0, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.IN, { - freq_start: 865.0, - freq_end: 867.0, - duty_cycle: 100, + freqStart: 865.0, + freqEnd: 867.0, + dutyCycle: 100, spacing: 0, - power_limit: 30, + powerLimit: 30, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.NZ_865, { - freq_start: 864.0, - freq_end: 868.0, - duty_cycle: 100, + freqStart: 864.0, + freqEnd: 868.0, + dutyCycle: 100, spacing: 0, - power_limit: 36, + powerLimit: 36, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.TH, { - freq_start: 920.0, - freq_end: 925.0, - duty_cycle: 100, + freqStart: 920.0, + freqEnd: 925.0, + dutyCycle: 100, spacing: 0, - power_limit: 16, + powerLimit: 16, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.UA_433, { - freq_start: 433.0, - freq_end: 434.7, - duty_cycle: 10, + freqStart: 433.0, + freqEnd: 434.7, + dutyCycle: 10, spacing: 0, - power_limit: 10, + powerLimit: 10, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.UA_868, { - freq_start: 868.0, - freq_end: 868.6, - duty_cycle: 1, + freqStart: 868.0, + freqEnd: 868.6, + dutyCycle: 1, spacing: 0, - power_limit: 14, + powerLimit: 14, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.MY_433, { - freq_start: 433.0, - freq_end: 435.0, - duty_cycle: 100, + freqStart: 433.0, + freqEnd: 435.0, + dutyCycle: 100, spacing: 0, - power_limit: 20, + powerLimit: 20, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.MY_919, { - freq_start: 919.0, - freq_end: 924.0, - duty_cycle: 100, + freqStart: 919.0, + freqEnd: 924.0, + dutyCycle: 100, spacing: 0, - power_limit: 27, + powerLimit: 27, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.LORA_24, { - freq_start: 2400.0, - freq_end: 2483.5, - duty_cycle: 100, + freqStart: 2400.0, + freqEnd: 2483.5, + dutyCycle: 100, spacing: 0, - power_limit: 10, + powerLimit: 10, }, ], [ Protobuf.Config.Config_LoRaConfig_RegionCode.UNSET, { - freq_start: 902.0, - freq_end: 928.0, - duty_cycle: 100, + freqStart: 902.0, + freqEnd: 928.0, + dutyCycle: 100, spacing: 0, - power_limit: 30, + powerLimit: 30, }, ], ]); @@ -290,7 +290,7 @@ export const FrequencyCalculator = (): JSX.Element => { const selectedRegion = RegionData.get(region); const selectedModemPreset = modemPresets.get(modemPreset); const calculatedNumChannels = Math.floor( - (selectedRegion.freq_end - selectedRegion.freq_start) / + (selectedRegion.freqEnd - selectedRegion.freqStart) / (selectedRegion.spacing + selectedModemPreset.bw / 1000), ); @@ -304,7 +304,7 @@ export const FrequencyCalculator = (): JSX.Element => { setChannel(updatedChannel); setChannelFrequency( - selectedRegion.freq_start + + selectedRegion.freqStart + selectedModemPreset.bw / 2000 + updatedChannel * (selectedModemPreset.bw / 1000), ); @@ -318,7 +318,7 @@ export const FrequencyCalculator = (): JSX.Element => { value={modemPreset} onChange={(e) => setModemPreset( - parseInt( + Number.parseInt( e.target.value, ) as Protobuf.Config.Config_LoRaConfig_ModemPreset, ) @@ -335,7 +335,7 @@ export const FrequencyCalculator = (): JSX.Element => { setChannel(parseInt(e.target.value))} + onChange={(e) => setChannel(Number.parseInt(e.target.value))} > {Array.from(Array(numChannels).keys()).map((key) => (