Skip to content

Releases: Yrrrrrf/lora-tracker

v0.1.0 - ✨ Dashboard Live Data & Dedicated Backend!

Choose a tag to compare

@Yrrrrrf Yrrrrrf released this 09 Jun 05:05

This release marks the first fully functional version of the LoRa GPS Tracker Dashboard, successfully bridging the gap between hardware and the web interface. We have moved beyond simulation to a robust, real-time data pipeline, enabling live visualization of data streamed from an Arduino device.

💡 Motivation

The primary goal of this release was to activate the "live" functionality of the dashboard. The previous version was a high-fidelity simulation, but lacked the backend infrastructure to receive and process data from the physical LoRa tracker hardware. This update establishes the complete data flow, from the serial port on a host machine to the dynamic map display in the user's browser.

🔧 Detailed Changes

✨ What's New

  • Live Data Pipeline: A complete, end-to-end data pipeline is now functional. Data from the Arduino is read via a serial bridge, processed by a dedicated backend, and fetched by the Svelte frontend for real-time display.
  • Connection Status UI: The MapView.svelte component now features a real-time connection status indicator, giving users visual feedback on the live data connection (Connecting, Connected, Disconnected).
  • Live Update Controls: The UI now includes "Start Live" and "Stop Live" controls that are fully functional, allowing users to toggle the fetching of real-time data.

🔧 Improvements

  • Architecture Rework: The data ingestion logic has been moved from the SvelteKit API route (+server.ts is now deprecated) to the new dedicated backend.ts server. This separation of concerns resolves development server bottlenecks and creates a more scalable architecture.
  • 🐍 Robust Python Serial Bridge: The experimental TypeScript bridge has been replaced with a stable and reliable Python script: serialBridge.py. This script handles serial port communication and forwards data to the backend.
  • State Management Upgrade: The locationStore.svelte.ts has been enhanced with new state properties (isLive, connectionState) to manage the live data fetching lifecycle.
  • Arduino Firmware Pacing: The mock Arduino sketch main-tester.cpp was improved by adding a delay() to ensure a paced, stable stream of data, preventing serial buffer flooding.

✅ Benefits & Impact

  • Real-time Visualization: The dashboard is no longer just a simulation; it can now display real data from a physical device.
  • Improved Stability: The new architecture with a dedicated backend and Python bridge is significantly more stable and reliable than the previous integrated approach.
  • Enhanced Developer Experience: Clear separation between the frontend, backend, and hardware bridge makes debugging and future development much easier.
  • Foundation for Production: This architecture lays a solid foundation for a production-ready system.

📖 Developer Notes

This release introduces a new three-terminal development workflow:

  1. Backend Server: bun run src/lib/server/backend.ts
  2. Frontend Server: bun run dev
  3. Hardware Bridge: python serialBridge.py