Friday, May 17, 2024

LoRA / Meshtastic & Unlicensed ISM

What is LoRA?

LoRA (which stands for Long Range) is a wireless communication technology designed for long-range, low-power communication in the Internet of Things (IoT) applications. It operates on unlicensed radio bands and is known for its ability to transmit data over long distances while consuming minimal power. LoRA technology is often used for connecting devices that need to communicate over long distances, such as in smart city applications, industrial automation, agricultural monitoring, and much, much more.

The official organization of LoRA is called the LoRA Alliance. The LoRA Alliance is an open, nonprofit association that has a mission to standardize Low Power Wide Area Network (LPWAN) technologies to enable Internet of Things (IoT) applications worldwide. The Alliance collaborates with various companies and organizations to promote and advance the LoRaWAN protocol.

There are also different LoRa frequencies available for use. LoRa technology operates in different frequency bands depending on the region. The most common frequency bands for LoRa are 433 MHz, 868 MHz, and 915 MHz. These frequencies are used in different parts of the world to comply with local regulations and standards for wireless communication. Europe mainly uses 433 Mhz and 868 Mhz. 433 Mhz is still used in the United States, but just not as common. One project in particular that primarily uses 433 Mhz is TinyGS.

What the heck is TinyGS?!

TinyGS is a project that aims to create a global network of ground stations to receive and decode data from small satellites, also known as CubeSats. These ground stations are designed to be low-cost and easy to set up, allowing for a decentralized network that can support communication with a wide range of CubeSats. The project focuses on enabling communication with small satellites to enhance their capabilities and increase the accessibility of space technology.

Then who/what is Meshtastic?
When I hear about LoRA, I hear a LOT about Meshtastic.

Meshtastic is an open-source project that aims to create a long-range, low-power mesh networking platform using off-the-shelf hardware and open-source software. It allows users to communicate with each other over long distances without the need for cellular networks or internet connectivity by creating a mesh network using radio frequencies. Meshtastic devices can communicate with each other directly or through other devices in the network, enabling communication in remote areas or during emergencies where traditional communication methods may not be available.
Meshtastic Wiki: https://meshtastic.org/docs/introduction/
Flash Meshtastic to a Compatible Device: https://flasher.meshtastic.org/

So how does all of this work?!

The LoRa technology typically operates in unlicensed ISM bands, such as 915 MHz in the USA. Unlicensed ISM (Industrial, Scientific, and Medical) bands are radio frequency bands designated by regulatory bodies, such as the Federal Communications Commission (FCC) in the United States, for use without the need for a specific license. These bands are intended for industrial, scientific, medical, and other applications that do not interfere with licensed services. Devices operating in unlicensed ISM bands must comply with certain technical requirements to ensure they do not cause harmful interference to other users. Common examples of devices that operate in unlicensed ISM bands include Wi-Fi routers, Bluetooth devices, and microwave ovens.

What does a typical LoRA device setup look like?

First Things First: Set your Device's Region

In order to start communicating over the mesh, you must set your region for your Meshtastic/LoRA device. This setting controls which frequency range your device uses and should be set according to your regional location.


Channels, Frequencies, and Frequency Slots:

The specific frequency settings you would use depend on your region, the LoRa module being used, and specific network configurations. For instance...

The Long_Fast LoRA "Channel" is the common/public frequency all LoRA radios can communicate on/through. However, the Frequency might be 902.875 Mhz or it could be using 914 Mhz. To determine what frequency will be used for sending and receiving data, a "Frequency Slot" is used to calculate what specific frequency data will be transmitted. Most LoRA radios will automatically set the needed frequency, based on the "slot" that has been selected. However, sometimes you will find that you will need to manually configure the frequency.

An easy way to figure out what frequency you need that is correlating to the "slot" that is needed/being used, is to use Meshtastic's Frequency/Slot calculator:

https://meshtastic.org/docs/overview/radio-settings/

You can also create your own channel, using your own slot, and even using an "overriding frequency" to help with the privacy of your communication. But that is all for another blog post :)

Radio/Device Role:

  • Router:
    A device acting as a router helps in forwarding data packets within the mesh network. It plays a crucial role in routing messages between different nodes in the network.
  • Router/Client:
    A router client device typically refers to a node in the network that is not actively involved in routing or repeating messages but rather consumes data or interacts with the network for specific purposes. But it also serves the role of a router and helps in forwarding data packets within the mesh network. It plays a crucial role in routing messages between different nodes in the network.
  • Repeater:
    A repeater device extends the range of the mesh network by receiving messages from one node and then retransmitting them to reach nodes that are out of direct communication range.  
  • Client:
    A client device typically refers to a node in the network that is not actively involved in routing or repeating messages but rather consumes data or interacts with the network for specific purposes. 
  • Gateway:
    A gateway device serves as a bridge between the mesh network and external networks or the internet. It facilitates communication between the mesh network and other networks. 
  • Tracker:
    Some Meshtastic devices can also act as trackers, providing location information that can be shared within the mesh network. Each of these roles plays a vital part in ensuring effective communication and connectivity within a Meshtastic Lora mesh network.

MQTT:

MQTT (Message Queuing Telemetry Transport) is a lightweight messaging protocol that is commonly used in IoT (Internet of Things) applications for efficient communication between devices. In the context of LoRa (Long Range), MQTT can be utilized to facilitate the exchange of data between LoRa devices and a central server or cloud platform. By using MQTT, LoRa devices can publish data to specific topics or subscribe to topics to receive relevant information, enabling seamless communication and data transfer in LoRa-based IoT networks. MQTT also helps with reporting device location and allowing long-distance communications over the LoRA network, even if your radios are out of RF range. Your LoRA device can also report to MQTT by proxy, through the device that the LoRA radio is connected to.


Creating a Private Primary, and Secondary "Public" Channels:

  1. If you'd like to connect with other Meshtastic users but only share your data with trusted parties, you may create a private PRIMARY channel and use the default "Long_Fast" network as a SECONDARY channel. 
  2. Ensure you have not changed the LoRa Modem Preset from the default unset / LONG_FAST.
  3. On your PRIMARY channel, set anything you'd like for the channel's name and choose a random PSK. Save this information and/or take a screenshot of the information and/or the QR Code so you can connect other devices to your private channel.
  4. Enable a SECONDARY
  5. Name the secondary channel "LongFast" with a PSK of "AQ==".
  6. If your LoRa frequency slot is set to the default (0), the radio's transmit frequency will be automatically changed based on your PRIMARY channel's name. 
  7. You may also manually configure the frequency slot for your radio as well.
  8. The most commonly used frequency slot in the US is Frequency Slot 20.
  9. After doing all of this, you may have to manually set your LoRA radio back to your region's default settings (in LoRa settings) in order to interface with users on the default slot again.

Channel Uplink & Downlink:

  • Uplink Enabled:
    • The channel can send messages from the local mesh to MQTT
  • Downlink Enabled:
    • The channel can send messages from the MQTT to the local mesh.

What kind of device do I need to get started with LoRA?

ESP32 Based Boards:

The ESP32 chip is older and consumes more power than the nRF52 chip, but is equipped with both WiFi and Bluetooth. Supported ESP32 devices include:

nRF52 Boards:

The nRF52 chip is much more power efficient than the ESP32 chip and easier to update but is only equipped with Bluetooth. Supported nRF52 devices include:

RP2040 Boards:

The RP2040 is a dual-core ARM chip developed by Raspberry Pi. Supported RP2040 devices include:

To learn more on how to get started with Meshtastic and LoRA, as well as much more in-depth setup and configuration instructions/documentation, please check out the official Meshtastic Wiki:

meshtastic.org/docs/introduction


Monday, April 29, 2024

Microsoft Battery & AC Adapter Driver Issue(s)

Laptop Battery/Charging Issue(s):
Microsoft AC Adapter & Microsoft ACPI-Compliant Control Method Battery Drivers

I have run into a few laptops lately that have been exhibiting some issues with charging their batteries and the issues have actually been related to Microsoft's Battery and AC adapter drivers! 

It's an easy to fix, and you just have to do the following:

  • You can open the "Device Manager" by searching for it through Windows search or by right-clicking the "Start" menu button and selecting "Device Manager."
  • Click on "Batteries" in the device list to expand it, and you will see two items: 
    • Microsoft AC Adapter
    • Microsoft ACPI-Compliant Control Method Battery.
  • Right-click ON EACH ITEM (BOTH) and choose "Uninstall Device". 
    • Yes, you are uninstalling your laptop's battery drivers. But don't worry, they will automatically be reinstalled when you restart your laptop.
  • Shut down your laptop.
  • Unplug the power cable from your laptop.
  • If your laptop has a removable battery, remove it. If it does not, you will need to remove the bottom panel and then disconnect the battery from the motherboard.
  • If you removed the battery, put it back in, or reconnect it if you had to physically disconnect it.
  • Plug your laptop back into power.
  • Power on your laptop.
  • Once you have booted back up and logged in, click the battery icon in the system tray, and you should see that your laptop is plugged in and charging!

Source:

Monday, April 22, 2024

SDR Radios - Hardware & Software Links

A Software-Defined Radio (SDR) is a wireless radio system that uses software to process radio signals instead of using hardware components. SDRs use software-based algorithms to configure radio parameters like frequency, modulation, and operating modes. This eliminates the need for hardware components like mixers, modulators, and demodulators. 

A basic SDR system consists of a computer with speakers, headphones, or some other analog-to-digital converter, preceded by some form of RF front end; such as a USB radio transceiver and size of antenna. 

Commercially available SDR hardware can transmit and receive signals at various frequencies depending on its internal hardware, and the type (and size) of antenna that you are using. The aim of these SDR devices is to reduce the overall cost of access and use of RF hardware technologies and provide end-users with access to ubiquitous wireless.

SDR Radios:

SDR Radio "Add-Ons":

Antennas:

What Size Antenna Do You Need?

Di-Pole Antenna Size Formula:

468 / Frequency = Antenna Size in Feet

  • Divide 468 / by the frequency you want to tune in to:
    The answer you get will be your needed antenna size in "Feet".
    468 / 443.2Mhz = 1.06ft
  • Multiply the "Feet" total by 12 to convert your antenna size into inches:
    1.06ft * 12 = 12.67"
  • Divide your Antenna Size in inches by 2 to get your "Per-Element" size, in inches:
    12.67" / 2 = 6.34" Each Side

SDR Radio Software:

SDR Software Add-ons:

Radio Programming:

Radio Websites:


Tuesday, April 16, 2024

Cyberdeck: "System In A Box" Build

Cyberdeck v1 Build

The goal of building this "system in a box" was to put something together that was a full-fledged portable network, had a mini-server, SDR/radio capabilities, GPS, and Bluetooth, all on the go! But it needed to be powered by a portable battery (such as a Jackery) or via a power inverter from a car. 
This is what I came up with and is my first attempt at this "system in a box" Cyberdeck! This build has been working MUCH better than I expected and has come together very well, but I am still tweaking and modifying stuff over time and am open to suggestions :)

The main parts used in this build...

Flipper Zero: Tips & Tricks To Help Get You Started!

Flipper Zero: Tips & Tricks

So what is a Flipper Zero anyway?
The Flipper Zero website describes the device as "a portable multi-tool for pen-testers and geeks in a toy-like body. It loves hacking digital stuff, such as radio protocols, access control systems, hardware, and more. It's fully open-source and customizable, so you can extend it in whatever way you like."

I do own and use a Flipper Zero, but I do NOT use it for anything nefarious and don't plan on ever using it for anything like that. But I do find it VERY handy to learn about digital security risks around me with my own systems, as well as help identify and secure weaknesses for my clients! 

If you do end up purchasing one of these devices, I have a few tips to help get you going!

  1. You NEED to have a micro SD Card to be able to set up and use your Flipper Zero, but the Flipper Zero unfortunately does NOT come with an SD card.
    • Use a 32GB or smaller micro SD card; the higher the quality the better!
    • I typically format an SD card with exFAT, FAT16, or FAT32 on a computer before installing the MicroSD card into Flipper Zero. I have run into issues formatting a micro SD card through the Flipper Zero itself. So I recommend formatting your micro SD card using a computer before you install it into your Flipper Zero.
  2. Install the qFlipper software and with your Flipper Zero connected to a computer installed with qFlipper, update your Flipper Zero's firmware and databases:
  3. Next, I like to install third-party firmware. Lately have been a BIG fan of the Flipper Xtreme firmware due to its pre-installed features and tools: 
  4. Next, I recommend going through the FlipperZero Online Documentation to learn how to use the different/various functions of the FlipperZero:
  5. There is also a YouTube channel from a creator called "The Talking Sasquatch" that has some great guides to help you get going using a Flipper Zero as well!

Recommended Add-Ons:


Monday, April 1, 2024

What Specs Do You Need In A New Computer!?

CPUs:

Both Intel and AMD employ a numbering system to classify their CPU models based on their respective performance.

AMD Ryzen Series:
  • Ryzen 3: Entry-level processors suitable for basic tasks.
  • Ryzen 5: Mid-range CPUs with good performance for multitasking and light gaming.
  • Ryzen 7: High-performance processors designed for demanding tasks, including content creation and gaming.
  • Ryzen 9: Top-tier CPUs for power users, professionals, and enthusiasts.
Intel Core Series:
  • i3: Entry-level processors for everyday computing needs.
  • i5: Mid-range CPUs offering a balance of performance and affordability.
  • i7: High-performance processors suitable for gaming, content creation, and productivity.
  • i9: Premium CPUs with exceptional performance for intensive workloads.

Higher model numbers generally indicate better performance, but it’s essential to consider other factors like clock speed, cache size, and core count. We usually recommend CPUs be 2Ghz or higher.

Wednesday, March 27, 2024

Upgrade To Windows 11 ~ With Your Apps and Data Intact!

 Can You Install Windows 11,
Without Losing Apps or Data In The Process? 

Why yes you can! 

Thanks to the Windows Installation Assistant!



I found an article (linked below) while looking into a "surefire" way to upgrade a Windows 10 system to Windows 11, without having to run the risk of needing to reinstall software and applications, or even potentially loose data. Currently, the only guaranteed method to install Windows 11 on your computer without performing a fresh install is by using the Installation Assistant. This tool from Microsoft acts as an update, transforming your existing Windows installation to the newer version without affecting any of the files or applications:

 https://helpdeskgeek.com/windows-11/how-to-upgrade-to-windows-11-without-losing-any-data/


Pacific NW Computers

Wednesday, March 13, 2024

What 3D Printer to Get?!


Want to get into 3D printing?!


If money isn't a limiter:

The Bambu Lab x1 Carbon is hands down the best thing on the market for consumer-level printers as well as multi-material printers, IMO:
https://us.store.bambulab.com/products/x1-carbon-combo...

If you're on a budget:

Just want to get rocking as easily as possible? 
Elegoo all day long... 
Test the waters and see if you enjoy 3D printing; without a huge investment.
ELEGOO Neptune 4 Pro 3D Printer: https://a.co/d/eTdGxML

Most reliable:

Want an open source, heavily modifiable, as well as a production reliable machine?
Prusa all day long! 
My Prusa MK3S has been by far, my most reliable printer:
https://www.prusa3d.com/product/original-prusa-mk4-2/...


Tuesday, March 12, 2024

VHD & RMD IODD Drive Setup

IODD Encrypted External Drive; 

VHD/RMD Creation

  1. Use the VHD_Tool+ that you can download from the IODD website:
    http://iodd.kr/wordpress

  2. Open and run the VHD Tool+, and click on the "Create" tab. That will switch the program to its VHD "Create" function, where you will be able to create a blank/empty VHD on your IODD drive that you will later apply/"burn" a disk image to.
    • When you click on the folder icon to "browse for a VHD" you actually just need to type in the name of the VHD that you would like to create, and then continue like you are going to "open" that new VHD; even though it is not actually there. Trust me, it will work.

  3. Next, you want to make sure the VHD file that you are creating is larger than the ISO that you will be applying to that VHD. The ISO has to be able to fit fully decompressed. So if your ISO is still in a ZIP file, decompress it and go 1GB above its folder properties listed size.

  4. Once the VHD is created on your IODD drive, you need to actually mount that blank VHD to your computer. 

  5. With the IODD drive connected to your computer, navigate to where the VHD is stored using the screen/menus on the IODD itself, and mount the empty/new VHD file through the drive, and your computer will detect and pop-up that it has found a drive that needs to be formatted.
     
  6. Don't format the drive! Just close out the notification and close any explorer windows that may have opened.

  7. Now, using a program such as Rufus, you can "burn" or apply an ISO disk image to the new/empty VHD that you just mounted to your system!

  8. Burn the disk image just like you are creating a bootable USB or DVD; nothing special needs to be done to make things work.

  9. Lastly, to create an RMD of the VHD you just created, simply make a copy of the VHD file (so you have two) and simply change the copy's file extension from *.vhd to *.rmd

    That's it!


IODD Help Site:

https://help.iodd.kr/bootable-virtual-drive/drive-setup

IODD Help Page for VHD Creation:

https://help.iodd.kr/bootable-virtual-drive/virtual-drive-vhd/convert-iso-file-to-uefi-bootable-drive

IODD User Manual:

http://dir.iodd.kr/vhd_tools/iodd_virtual_USB_drive_guide_0425.pdf


Computer Custom Water Cooling Loop Tips

 Custom Computer Watercooling Tips

  • Radiator(s):

    • If you are NOT going to overclock your system, I like to use a general rule of 120mm of radiator real estate for every part that is going to be cooled.
    • If you ARE going to overclock the system, I like to use a general rule of 240mm of radiator real estate for every part that is going to be cooled.
    • You can never have too big of a radiator for cooling using the rules above. You can however VERY easily have a system with too small of a radiator for its needed cooling. You can't have too much radiator surface area, so don't worry about having MORE than you "need".
    • If you are mounting a radiator vertically for your water cooling loop, make sure that the fittings for the radiator's input/output are at the BOTTOM; closest to the bottom of the computer case!! This will allow better fluid circulation and prevent poor circulation that commonly occurs when you have the inlet/output of the radiator oriented at the top.

  • Fittings:

    • Soft tubing fittings use barbs to grab onto and connect with the appropriate tubing.
    • Hard tubing uses a compression fitting to connect to its tubing.
    • The collar of a hardline fitting is not what's responsible for sealing the connection with the tubing that it's being connected to.
    • As long as the compression of the fittings and the tubing both match each other (ie: 10x13mm for the fitting AND for the hose/tubing being used), then you know the two will be compatible to create a water-tight seal between the fitting and the tubing.

  • Fans:

    • For airflow, some fans will have an arrow somewhere on the fan itself to indicate the direction in which air will flow when the fan is turned on.
    • If there isn't a directional arrow/indicator, the rule of thumb that I like to use is that a fan's airflow is 99% of the time going to be moving from the "caged" side of the fain (where the fan is connected to and supported by the fan's frame), to the "non-caged" side. I know, super technical jargon is being used here... But it's a simple way to easily remember which direction a fan's air will flow!
    • You can also buy/3D print a fan spacer to install between the fan and the radiator to help prevent naturally occurring turbulence due to the fan's proximity to the radiator.

  • Tubing/Hoses:

    • Hard tubing is the least porous and the least prone to water loss/seepage. But hard tubing is also the most difficult to work with due to the fact it needs to be heated and bent into needed shapes; which requires its own special tools and processes to complete.
    • Soft tubing is not as "nice" as hard tubing as far as looks and performance are concerned, but it is MUCH easier to install, work with, and cheaper to buy/replace vs. hard tubing.
    • Try to use low-porosity tubing to prevent liquid absorption/seepage/loss and leaking.

  • Fluid/Liquids:

    • Configure your loop with a drain port; preferably at the bottommost position of your loop.
    • Try to install your pump directly under your reservoir, or use a reservoir/pump combo.
    • Use DISTILLED WATER if you are not going to use any fancy-colored/specialized liquid.
    • Add a little bit of a Biocide, like Iodine, to your liquid medium to help prevent bacteria or other organic growth
    • DO NOT USE FOOD COLORING TO COLOR YOUR COOLING LIQUID!
    • BEFORE you fill your loop with ANY liquid whatsoever, use a simple hand air pump to do a basic pressure test and make sure none of your tube connections or fittings blow out or come loose.
    • DO NOT FULLY POWER ON YOUR SYSTEM TO FILL YOUR LOOP!
      • Most loop kits come with (or you can purchase) a basic PC power supply "jumper" plug that will allow you to power the system at a very low lever, without actually fully powering the computer on.
      • That way you can add fluid to your loop's reservoir, use the PSU jumper to power on the PSU and pump the fluid through the loop, and then just rinse/repeat until the loop is fully filled!

  • Flow Order:

    • Flow Order is the order in which you are going to cool the devices in your custom loop. 
    • It doesn't really matter about what order you go in, and you DO NOT need a totally separate loop for each device being cooled. There might be a 2-3C temperature difference when daisy chaining devices together in a custom loop; nothing CRAZY. So it IS ok to go from a GPU to a CPU directly in a custom loop.
    • An optimal Flow Order looks something like this when cooling a GPU & CPU:
Reservoir/Pump > 360mm Rad > GPU > CPU > 360mm Rad #2 > Back to Reservoir