Skip to main content

majal-edge

Connects a PX4 or ArduPilot drone to Majal, the UAS traffic management (UTM) platform by ScaleX Innovation. It runs on the drone's companion computer (Raspberry Pi, Jetson, …) or on a ground laptop with a telemetry radio, and sends the vehicle's live MAVLink 2 telemetry to Majal over MQTT with TLS.

Connect a drone

  1. In Majal, open Fleet, choose the aircraft and click Connect. You get a one-time code, valid for 15 minutes.
  2. On the companion computer, wired to the flight controller (TELEM2 or USB):
pip install majal-edge
sudo majal-edge enroll https://<your-majal-address> ABCD-2345
sudo majal-edge install-service        # start now and on every boot (Linux / systemd)

The aircraft appears on the live map once the autopilot has a position fix.

What it does

  • Finds the flight controller: USB flight controllers (Pixhawk, Cube, Holybro, CUAV, …), the companion computer's UART (/dev/serial0, /dev/ttyAMA0, /dev/ttyTHS1) at 921600 / 57600 / 115200 baud, then MAVLink UDP 14540 / 14550. It only listens while probing. majal-edge detect shows what it finds; enroll --autopilot /dev/ttyACM0 skips detection.
  • Gets its identity from the server: the code is exchanged over HTTPS for a device id and a broker login that belong to this device only. The device id, not the MAVLink system id, identifies the aircraft, so drones left on system id 1 never collide.
  • Sends telemetry only: position, altitude, speed, heading, battery, mode and armed state (requested at 4 Hz / 1 Hz to save mobile data). Nothing from the platform is forwarded to the autopilot.
  • Handles weak links: reconnects by itself; while offline, telemetry is dropped rather than queued, because a stale position is worse than a gap.

Security

  • Enrollment needs https:// (plain http:// only for local / private test addresses or with --allow-http). Codes are single-use and expire after 15 minutes.
  • The broker login can only publish this device's own telemetry topic. It can be revoked from the Fleet page at any time, which disconnects the device immediately.
  • The configuration file holding the login is readable by its owner only (/etc/majal-edge/config.json as root, otherwise ~/.config/majal-edge/config.json). The systemd service runs as an unprivileged majal-edge user with the dialout group.

Commands

Command
majal-edge enroll <server> <code> redeem the code from Fleet → Connect
majal-edge run forward telemetry (what the service runs)
sudo majal-edge install-service install and start the systemd service
majal-edge detect find the flight controller
majal-edge status show the configuration and test the broker login

Requires Python 3.9+. Licensed under Apache 2.0. © ScaleX Innovation. Support: support@scalexi.ai

Metadata

Release files for majal-edge 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for majal-edge 0.1.0
File Size Uploaded
majal_edge-0.1.0.tar.gz 21.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for majal-edge 0.1.0
File Interpreter ABI Platform
majal_edge-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 41.0 kB

Release files / majal_edge-0.1.0.tar.gz

Download URL majal_edge-0.1.0.tar.gz
Size 21.4 kB
Tags Source
SHA-256 checksum
How to use checksums
99947b87e56f615b75a01c081e918d29e5b6faf902e695680bf5ef35bf571ca9
BLAKE2b-256 checksum
How to use checksums
e064a703bfbed9242beb8adfabc0bf11e2372958c700053fee570c931fa578fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.2

Release files / majal_edge-0.1.0-py3-none-any.whl

Download URL majal_edge-0.1.0-py3-none-any.whl
Size 19.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3dc3804a519923dc82ada43e56cf2892466653d19944604efeb2c8e6721fc419
BLAKE2b-256 checksum
How to use checksums
ace87ba77ebf3cd67bb2f5958d8fe65af1256f75e069e038e0043149830e05f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.2

Release history Release notifications | RSS feed

0.2.1

2 release files

0.2.0

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page