Main Menu

search

You are here

My Meshtastic Nodes

[last updated: 2026-01-09]
Disclaimers
MeshTastic home page

MeshTastic client browser
MeshTastic firmware flashing site

----------

      This page an unorganized, mostly un-edited mess ...



      On This Page:
  • Intent/Goal:
  • JR1: Heltec v.1.1
  • WaveShare Pi hat
  • Heltec v. 3.2


----------------------------------------------------------------------------------------------------

  • Long term I want to do telemetry with MeshTastic:
    • read sensors of various kinds,
    • report status/results back to a 'base' node.
    • base node send messages to remote node,
      which then initiate actions.

    ----------------------------------------------------------------------------------------------------

  • JR1: Heltec v.1.1:
    • This was gifted to me by Adam Gietl - KK7TVI
      As received it has Meshtastic firmware 2.7.3
      It has a ...paper... readout and a nice 3d-printed case
    • I have been able to connect to it from the Meshtastic client browser,
      and have sent and received messages to and from my JR2 node as well as Adam's nodes and Kim Owens W7PCT

    ----------------------------------------------------------------------------------------------------

  • JR2: Heltec v.3.2:
    • This was an amazon purchase received 2025-12-15
    • It came loaded with firmware, and booted up and showed a screen, but I could not initially connect to it from the Meshtastic client browser.
      Eventually I downloaded current firmware (Meshtastic flash site above) and now everything works.
      I have sent and received messages to and from my JR1 node as well as Adam's nodes and Kim Owens W7PCT

    ----------------------------------------------------------------------------------------------------

  • Heltec:
    • https://heltec.org/project/wifi-lora-32-v3/
    • HELTEC® LoRa 32 Buttons:
        Reset Button (bottom):
          Single press: Resets the device.

        User/Program Button (top):

          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.
    • Baud Rate: 115200 bps (bits per second) is the default for the built-in USB-to-serial port (e.g., via the CP2102 chip).
      Some configurations, particularly within the Meshtastic firmware, might default to 38400 bps for an external serial module.
      Data Bits: 8 bits.
      Parity: None (N).
      Stop Bits: 1 bit

    ----------------------------------------------------------------------------------------------------


    ********** this stuff related to the web page needs to be moved ... **************
    A spinning connection indicator on the
    Meshtastic web client (client.meshtastic.org) usually indicates an existing connection to the device or a browser/device pairing issue. The Meshtastic device can only handle a single client connection at a time.
    Here are the primary troubleshooting steps:
    Connection Conflict Solutions

    Ensure only one device/app is connected to your Meshtastic node at any given time.
    Close the Meshtastic app on any mobile phones (Android/iOS) that might be connected via Bluetooth or Wi-Fi.
    Close all other browser tabs or windows that may be trying to access the device.
    Restart both devices:
    Reboot your Meshtastic node (power it off and on again).
    Restart your computer or phone to clear any lingering connection states.
    Forget and re-pair the Bluetooth connection:
    Go into your operating system's Bluetooth settings (Windows, macOS, Android, iOS).
    "Forget" or unpair the Meshtastic device.
    Go back to the client.meshtastic.org page, click "New Connection," and pair the device again from the list.

    Browser and Driver Issues

    Use the correct browser: The web client works best with Google Chrome or Microsoft Edge as they fully support the necessary Web Serial and Web Bluetooth APIs.
    Try a different connection method: If connecting via Bluetooth fails, try connecting via USB Serial with a data cable.
    Ensure the correct USB drivers for your specific board (e.g., Heltec, LilyGO) are installed on your computer.
    Clear browser data: Delete cached data for the client.meshtastic.org site or use an "Incognito" or "InPrivate" window.

    Firmware and Configuration

    Check for the WebUI option during flashing: If you recently flashed new firmware, the web user interface might not have been included or is bugged in that specific version. You may need to use the Meshtastic Web Flasher to perform a full erase and re-flash, ensuring the "Include the web flasher" option is selected (if available).
    Ensure Bluetooth/Wi-Fi is enabled: Some configurations might default to disabling one network interface if the other is active (e.g., Wi-Fi enabled can sometimes disable Bluetooth). You may need to use a serial connection to re-enable Bluetooth if you've been locked out.
    Accept self-signed certificates (if connecting via IP): If you are connecting to your node via its local IP address (e.g., https://meshtastic.local or https://NODE_IP_ADDRESS), you must first open that specific IP address in a new browser tab and accept the self-signed security certificate warning
    -------------------------------

    *************** this section on GPIO functions needs to be moved to its own page ********************
    custom io:
    Method 2: Using a Secondary Microcontroller (Advanced Customization)
    For custom or complex sensors/actuators not supported by the standard modules, the recommended approach is to use a second microcontroller (like an Arduino or Raspberry Pi Pico) to handle the sensor logic and send data to the Heltec V3 over a Serial (UART) connection.

    Wiring:
    Connect the secondary microcontroller's TX pin to the Heltec V3's RX pin (e.g., GPIO 47).
    Connect the secondary microcontroller's RX pin to the Heltec V3's TX pin (e.g., GPIO 48).
    Ensure a common ground connection.
    Configuration Steps (Heltec V3):
    In the Meshtastic app, go to Settings > Module Configuration > Serial.
    Enable the serial module.
    Set the correct RX and TX GPIO pins.
    Set the serial mode to TEXTMSG to have the Heltec V3 automatically rebroadcast incoming serial data as text messages, or PROTO for more control using the client library.
    Ensure the baud rate matches the secondary device (default 38400 8N1).
    Programming the Secondary Device: You will need to write custom code (e.g., in MicroPython or Arduino C++) on the secondary device to read the sensor and send the data as a string over the configured serial port.

----------------------------------------------------------------------

  • WaveShare SX1262 915 rPi hat:
    • Waveshare: https://www.waveshare.com/sx1262-868m-lora-hat.htm?sku=16807
    • Amazon, $35, Nov 2025: https://www.amazon.com/dp/B07VS1S2P7?ref=ppx_yo2ov_dt_b_fed_asin_title
    • CONCERN: Google AI advises: "Confirm your Waveshare board uses the SX1262 radio with an SPI connection, not UART, for Meshtastic compatibility on Linux devices like Raspberry Pi."
      • At this time I don't know how to do that. ...
        I posted a question to the amazon product page: "does it have spi". Reply somewhat nebulous:
          "Yes, the Waveshare SX1262/SX1268 LoRa HAT connects through the standard Raspberry Pi 40-pin GPIO header, which includes SPI pins.
          The HAT uses UART interface for communication with the LoRa chip, but as a standard Raspberry Pi HAT, it connects via the GPIO header that provides access to SPI, I2C, UART, and other interfaces."
      • The amazon product listing says: "Compatible with Raspberry Pi 5/4B/3B/Zero/Zero W/Zero 2W/Pico/Pico W/Pico WH, UART Interface,"
          So yes, it says it's compatible with rPi's, but it also says "UART", and it does NOT say "SPI" ...
          OTOH, Google AI continues with configuration instructions, saying: "ensure SPI is enabled on your Pi.",
          so perhaps all is well...
      • The MeshTastic hardware page (https://meshtastic.org/docs/hardware/devices/linux-native-hardware/) does not explicitly exclude the SX1262 LoRa hat, though does say that the SX1262 LoRaWAN version has problems that may require using CLIENT_MUTE to disable rebroadcast...

    ----------------------

  • Source instructions for the install procedure:

    ---------------------------------------------------------

  • The Procedure:
    • Plug the hat into your rPi.
      Connect the antenna to the transmitter.
      Never power on the radio without the antenna connected.
      ---------------------

    • Configure rPi:
      This involves telling the rPi to enable the SPI interface, and ignore the CS line:
      Do this by editing the config.txt file, which is usu located in /boot, or perhaps in /boot/firmware
        $ sudo nano [path]config.txt
        Add or uncomment (remove leading "#") these lines:
        dtparam=spi=on
        dtoverlay=spi0-0cs
          tells rPi: Don't claim any CS pins for SPI0.
          This requires a device with its CS permanently enabled.

      Not sure if you need i2c, but if so, add this line:

        dtparam=i2c_arm=on

      If your rPi has GPS, you need to enable it by also adding this line:

        enable_uart=1

      close and save nano edit with ctrl-x, Y, -enter-
      reboot, and confirm by finding: /dev/spidev0.0
          and /dev/ttys0 if the GPS was enabled.
      ---------------------

    • Load the MeshTastic software (meshtasticd) into the rPi:
      • When using Meshtastic on a Raspberry Pi to create a native Linux Meshtastic node, you install meshtasticd.
        meshtasticd is the Meshtastic firmware compiled to run as a daemon (a background service) on Linux-native devices like the Raspberry Pi.
        This allows the Raspberry Pi to directly participate in a Meshtastic network using a compatible LoRa HAT (Hardware Attached on Top) for SPI radios.
        While you might use the meshtastic Python CLI (command-line interface) for configuration and interaction with a Meshtastic device connected via USB, meshtasticd is the core application that enables the Raspberry Pi itself to function as a Meshtastic node.
        -------------------
      • actual procedure I will use is still TBD...
        but here's the direction I'll take as a first pass:
        assume bookworm 64-bit:
        from: https://meshtastic.org/docs/hardware/devices/linux-native-hardware/
      • First install attempt will be on jPi-08, a rPi 4B
        -------------------

      • Well, that didn't work, at least not the way it seemed to be saying it should...
        Specifically, I could not get the first command line to work. The "[[..." seemed to be a problem,
        perhaps typing it in verbatim as I interpreted the instructions was wrong,
        or perhaps there was some shorthand trick that someone with more knowledge than me would have understood intuitively,
        but regardless it didn't work.

      • I did manually type in $ . /etc/os-release && echo $NAME, and indeed it printed out "Debian GNU/Linux", which I think was the point of the command, so I proceeded...
        I did the echo deb, curl, update and install commands, and all worked without error, so I rebooted and believe the install worked,
        as confirmed by the presence of /etc/meshtasticd/config.yaml

      • $ pip show meshtastic ... fails - as you'd expect since it isn't installed, meshtasticd is installed instead
        $ meshtasticd --help ... in fact shows options
        $ meshtasticd --info ... however fails as unsupported option
        $ meshtasticd ... shows what appears to be a log file
        $ meshtasticd --version ... shows 2.7.15

      ---------------------

    • Configure meshtasticd:
      from: https://meshtastic.org/docs/hardware/devices/linux-native-hardware/?os=d...
      The meshtasticd configuration is at /etc/meshtasticd/config.yaml by default.
      If a config.yaml is found in the current directory, that will take precedence.
      Follow instructions in the link. Also more stuff ...
        ls /etc/meshtasticd/available.d
        the file: lora-waveshare-sxxx.yaml was shown
        sudo cp /etc/meshtasticd/available.d/lora-waveshare-sxxx.yaml /etc/meshtasticd/config.d/
        successful


      Other stuff in the link:
      enable web server: not sure if I need this or how to use it ...
      note that bluetooth currently unsupported on native Linux devices ...


      Since the meshtasticd runs as a daemon, it must be started.
      procedure in the link to auto-start it on bootup


      view status of daemon:
      sudo systemctl status meshtasticd

      view meshtastic logs:
      journalctl -u meshtasticd -b
      ---------------------

    • Load and configure meshtastic CLI:
      • With CLI, you can interact with meshtastic using tyhe command line:
          meshtastic --host localhost ...
      • This allows interacting with your node using the command line on your host PC,
        rather than eg. an Android App.
        -----------------
      • pip3 install --upgrade pytap2
        error for "externally managed environment"
        • following alt procedure I discovered when doing the ADC, I executed:
          sudo python -m venv my-venv
          sudo my-venv/bin/pip install --upgrade pytap2
          successful
      • pip3 install --upgrade "meshtastic[cli]" - errored again...
        sudo my-venv/bin/pip install --upgrade "meshtastic[cli]"
        successful
      • Using CLI:
        https://meshtastic.org/docs/software/python/cli/usage/

      ---------------------

    • Using meshtasticd:
      • from GoogleAI: 'To send a Meshtastic message using meshtasticd, you can use the curl command to interact with the meshtasticd API. This allows you to send messages to your mesh network from a command line or through integrations with other systems like Home Assistant.
      • Here's how to send a message:
          Ensure meshtasticd is running: You need to have meshtasticd running and connected to a Meshtastic node. You can configure its runtime parameters through environment variables if using a containerized setup.
          Send the message via curl:
          Use a POST request to the /messages endpoint of the meshtasticd API, including your message as a query parameter.
          The default port for the API is typically 8097.
      • Explanation:
        curl -X 'POST': Specifies that you are sending a POST request.
        'http://localhost:8097/messages': This is the endpoint for sending messages.
        Replace localhost:8097 with the actual IP address and port if meshtasticd is running on a different machine or port.
        ?message=Your%20message%20here: This appends your message as a query parameter.
        Remember to URL-encode any special characters in your message (e.g., spaces become %20).

        " end GoogleAI info

      -----------------------

    • Using meshtastic CLI with meshtasticd:

      from GoogleAI: 'Yes, it is possible to use the Meshtastic CLI to interact with a meshtasticd instance.
      meshtasticd is a daemon designed to run on Linux-native devices (like Raspberry Pis with radio hats or USB radios) and provides a way to manage Meshtastic devices. The Meshtastic CLI can then be used to communicate with this running daemon.
      To do this, you would typically use the --host option with the Meshtastic CLI, specifying the address of the machine running meshtasticd. For example, if meshtasticd is running on the same machine, you might use:
      Code

      meshtastic --host localhost --info

      This allows for remote administration of devices connected to the meshtasticd instance without a direct physical connection to the device itself.
      " end GoogleAI

      ---------------------

    • Using mestastic CLI:
      • Ensure you have Python 3 and pip installed, along with the necessary serial drivers for your device's USB-to-UART bridge (e.g., CP210X or CH9102).
      • Connect: The CLI can connect to your Meshtastic device via serial (USB) or Bluetooth Low Energy (BLE).
        for Serial (USB): Specify the serial port using the --port or -p option. For example:
          meshtastic --port /dev/ttyACM0 --info
          (Replace /dev/ttyACM0 with your device's serial port.)

        for Bluetooth (BLE): Use the --ble option along with the device's name or address.

          meshtastic --ble "Meshtastic Device Name" --info
          The first time you connect via BLE, you may be prompted for a PIN.
      • Commands: The CLI offers various commands for managing your device:
        --info: Display device information.
        --nodes: List nodes on the mesh.
        --export-config > file.yaml: Export current device configuration to a YAML file.
        --configure file.yaml: Apply a configuration from a YAML file.
        message send -m "Your message": Send a message to the mesh.
        --ch-set psk [key | none | random | default]: Set the channel preshared key for encryption.
        reset: Reset the radio.
        location set --lat LATITUDE --long LONGITUDE --alt ALTITUDE: Set the radio's location.
        eg:
          meshtastic message send -m "Hello from the CLI!"
          Change the primary channel's preshared key to a random one:
          meshtastic --ch-set psk random

    ----------------------

    -------------------------------

    eof