Skip to main content

Vehicle-Mounted Meshtastic Node Build

A vehicle-mounted mesh node extends your coverage as you drive and creates a mobile relay point that dramatically improves network coverage in areas you travel through regularly.

Vehicle Safety Warnings (Read First)

    Never mount a node, antenna, or route cabling in or across an airbag (SRS) deployment zone - this includes the dashboard top, steering-wheel hub, A-pillars, windshield header, knee bolster, and seat-side panels. In a crash these areas deploy with explosive force; an object placed there can be thrown into occupants or prevent the airbag from working. Keep all hardware and wiring clear of airbag locations - check your vehicle manual for "SRS"/"AIRBAG" markings before drilling, mounting, or routing cable. Fuse every power tap at the source. Install the in-line fuse within ~15 cm (6 in) of the 12V tap/battery, before any long wire run, and size it to protect the wire gauge. A fuse placed near the load does not protect the upstream conductor from a short-to-chassis fire. Never tap airbag, ABS, or other safety/critical circuits. Do not compose or read messages while driving. Distracted driving is dangerous and illegal in many areas - let a passenger handle messaging, or read messages only when safely stopped.

    Design Goals for Vehicle Installations

    • Always-on: Powered by the vehicle's 12V system; operational whenever the vehicle is running (or parked)
    • External antenna: Roof or trunk-lid mounted magnetic base antenna for maximum range
    • Phone integration: Bluetooth connection to your smartphone forlets messaginga passenger handle messaging, or lets you read messages only when safely stopped. Do not compose or read messages while drivingdriving.
    • GPS: Live position updates to the mesh from the vehicle's actual location

    Hardware Bill of Materials

    ComponentRecommendedApprox. Cost
    LoRa nodeLILYGO T-Beam v1.2 (classic) or T-Beam Supreme (higher-spec)Classic ~$35-5545; Supreme ~$50-65 (Rokland/LILYGO listings, as of 2026-06-08)
    External antennaTrue 915 MHz magneticmagnetic-mount basewhip with a ground plane (the vehicle roof). Note: the Taoglas FXP73 oris similar)a 2.4 GHz flexible adhesive PCB antenna, NOT a 915 MHz mag-mount, and does not provide its own ground plane - do not substitute it here.$25-40
    Antenna cableSMA to SMA, 5m, LMR-195 (a 5 m LMR-195 run loses ~1.7 dB at 915 MHz, ~0.36 dB/m - keep it as short as practical, or step up to LMR-240 to roughly halve the loss)$15-20 (current listings, as of 2026-06-08)
    Power supply12V to 5V USB buck converter (3A minimum)is generous headroom)$8-12 (current listings, as of 2026-06-08)
    EnclosureSmall project box or 3D-printed dash mount$5-15
    USB cableUSB-A to USB-C, 30cm, right-angle$5

    Antenna Mounting Options

    The antenna location has the biggest impact on performance:

    • Roof magnetic base - Best option. Full ground plane, maximum height. Requires routing cable through door jamb or sunroof. Use self-closing weatherstrip tape to seal around cable.
    • Trunk lid lip mount - Good compromise. Lower than roof but cleaner install. Use trunk lid pass-through grommets.
    • Dashboard mount (inside) - Acceptable for temporary use or urban environments where range is less critical. GlassAn attenuatesinterior RFantenna bybehind 5-glass suffers attenuation - plain auto glass costs roughly a few dB at 915 MHz, but metallized/IR-reflective ("Low-E") windshields can attenuate far more than 10 dB.dB and may block the signal almost entirely. The bigger limitation is the lack of a clean external ground plane. Never place the node or antenna in an airbag deployment zone (dashboard top, windshield header, A-pillar) - see the safety warnings above.

    Power Wiring

    12V vehicle fuse panel
     → 2AIn-line fuse (in-linesized fuseto holder)the wire gauge), installed within ~15 cm of the tap
     → Buck converter (12V to 5V/3A)
     → USB-C to T-Beam or other node
    
    Recommended wiring gauge: 18 AWG minimum
    Fuse sizing: choose the fuse to protect the WIRE, not just the device draw -
    an 18 AWG conductor should be protected by a fuse no larger than ~5-7A.
    Do not increase the fuse rating to stop nuisance blows without also
    increasing the wire gauge.

    Place the in-line fuse within a few inches (~15 cm) of the 12V tap/source, before any long wire run, so the entire downstream conductor is protected against a short-to-chassis fire (standard automotive fuse-placement practice). Use an add-a-circuit fuse tap on a non-critical accessory circuit, fuse on the supply side, and secure and grommet wires away from heat and moving parts. If you are not confident wiring into the vehicle, have it installed professionally. Never tap airbag, ABS, or other safety circuits.

    Tap from a switched 12V source (ignition-switched) so the node powers off when the vehicle is off. Alternatively, use an always-on source if you want the node to continue operating as a parked relay - but ensure your vehicle battery won't be draineddrained. (addAdd a low-voltage disconnect (LVD) module inline between the 12V tap and the buck converter so the node load is cut before the battery is depleted. For a flooded lead-acid starter battery, set the cutoff relay ataround ~11.8V).12.2-12.4V resting (a starter battery shouldn't routinely be drawn much lower, or the vehicle may not start); the exact threshold depends on battery type. Be aware that any always-on load can leave the vehicle unable to start if left long enough.

    Configuration for Mobile Use

    # Device role for a mobile/vehicle node:node (ROUTER_CLIENT was retired in
    # firmware 2.3.15 - use CLIENT, or CLIENT_MUTE if it should not rebroadcast):
    meshtastic --set device.role ROUTER_CLIENTCLIENT
    
    # Position update interval for moving vehicle (60 seconds):
    meshtastic --set position.position_broadcast_secs 60
    
    # Ensure GPS is enabled for live position:position (gps_mode enum, not the old boolean):
    meshtastic --set position.gps_enabledgps_mode trueENABLED
    
    # Keep BLE active for the phone connection:connection. Note: 0 is NOT "always on" - it
    # is the default 1-minute timeout. To keep BLE active longer, set a large
    # value, e.g. one day:
    meshtastic --set power.wait_bluetooth_secs 0 # always on86400