MCPcopy Index your code
hub / github.com/cartesiancs/landlink

github.com/cartesiancs/landlink @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,129 symbols 3,136 edges 402 files 32 documented · 3% updated 2d ago★ 33
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Landlink: a drone-powered alternative to Starlink

Issues Website

Visit Website · Get Module I · Hardware Setup · FAQ · Report Bugs · Get iOS App


What is Landlink?

Landlink is off-grid communication software.

It lets phones talk to each other over LoRa when there is no cell tower, no Wi-Fi, and no internet.

Demo

https://github.com/user-attachments/assets/cd215b75-7e53-492d-968e-884c31c08897

Quick start

Web app (development)

npm install
npm run dev          # Vite dev server
npm run build        # tsc -b && vite build
npm run lint         # ESLint flat config
npm run test         # Vitest

iOS app

npm run build && npx cap sync ios
# then open ios/App in Xcode and run on a device (Bluetooth requires hardware)

Firmware (Module I)

pio --version
cd firmware
python3 tools/gen_protocol.py                 # regenerate protocol headers from YAML
pio run -e ttgo-t-beam-sx1262                 # build
pio run -e ttgo-t-beam-sx1262 -t upload       # flash
pio device monitor -e ttgo-t-beam-sx1262      # serial logs

See firmware/README.md for the full bring-up order, OTA signing flow, and milestone status.

Contributing

Issues and PRs are welcome. Before opening a PR:

  1. npm run lint and npm run build both pass with zero errors.
  2. New code respects the FSD layer boundaries enforced in eslint.config.js.
  3. Firmware changes are flashable to a T-Beam V1.1 and don't regress the bring-up order in firmware/README.md.

Contributors

H. Jun Huh (GitHub)

License

See LICENSE.

Extension points exported contracts — how you extend this code

ImportMetaEnv (Interface)
(no doc)
src/vite-env.d.ts
BackButtonProps (Interface)
(no doc)
src/shared/ui/back-button.tsx
ImportMeta (Interface)
(no doc)
src/vite-env.d.ts

Core symbols most depended-on inside this repo

cn
called by 88
src/shared/lib/utils.ts
hapticTick
called by 48
src/shared/lib/haptics.ts
find
called by 34
firmware/src/shared/util/tlv.h
put_u8
called by 34
firmware/src/shared/util/tlv.h
size
called by 34
firmware/src/shared/util/tlv.h
getRegisteredDevices
called by 29
src/entities/registered-device/model/store.ts
notify_evt
called by 24
firmware/src/transport/ble/gatt_server.cpp
registerDevice
called by 23
src/entities/registered-device/model/register.ts

Shape

Function 978
Method 80
Class 53
Enum 15
Interface 3

Languages

TypeScript58%
C++41%
Python1%
Java1%

Modules by API surface

src/shared/api/ble.ts29 symbols
src/shared/protocol/meshtastic/protobuf.ts27 symbols
firmware/src/transport/lora/sx1262_driver.cpp24 symbols
firmware/src/transport/lora/mac.cpp24 symbols
firmware/test/test_mac_math/test_main.cpp22 symbols
firmware/test/test_channel_registry/test_main.cpp21 symbols
firmware/src/transport/ble/gatt_server.cpp20 symbols
firmware/src/shared/util/byte_span.h18 symbols
src/entities/landlink-device/model/store.ts17 symbols
firmware/src/mesh/channel/registry.cpp17 symbols
src/entities/meshtastic-device/api/client.ts16 symbols
src/entities/landlink-device/api/client.ts16 symbols

For agents

$ claude mcp add landlink \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact