A comprehensive serial communication solution consisting of two integrated applications:
- LAST - Linux Advanced Serial Transceiver (GTK3 serial terminal)
- BRIDGE - Virtual Null Modem Bridge (creates virtual serial devices)
- π Advanced Port Detection - Overcomes Linux limitations with comprehensive scanning
- βοΈ Complete Serial Control - All parameters: baud rate, data bits, parity, stop bits
- π Dual Display Mode - Simultaneous text and hex data visualization with dynamic layout
- π File Operations - Send files with line-by-line transmission and configurable delays
- π― Programmable Macros - 16 customizable buttons for quick command transmission
- π Real-time Statistics - Data counters, connection time, error tracking
- ποΈ Control Signals - DTR, RTS, Break signal management
- π¨ Professional GUI - Clean, intuitive GTK3 interface with flexible layout
- π BRIDGE Integration - Launch virtual null modem directly from menu
- π Virtual Device Creation - Creates paired virtual serial devices using socat
- π΅οΈ Universal Serial Sniffing - Professional-grade serial data capture and analysis
- π‘ Multiple Output Methods - Named pipes, TCP sockets, UDP streams, file logging
- π― Real-time Data Streaming - Live data feeds for external applications
- π Configurable Filtering - RX only, TX only, or bidirectional capture
- π Multiple Data Formats - Raw binary, hex dump, or formatted text output
- βοΈ Configurable Paths - Customize device paths (default:
/tmp/ttyV0β/tmp/ttyV1) - π§ͺ Communication Testing - Built-in testing to verify device functionality
- π Real-time Monitoring - Process health checking and status display
- π Comprehensive Logging - Detailed operation logs with timestamps
- πΎ Settings Persistence - Configuration saved between sessions
- π¨ Enhanced GUI - Organized interface with Configuration, Status, Settings, and Sniffing tabs
- π» Laptop-Friendly Design - Optimized landscape layout for smaller screens
curl -sSL https://raw.githubusercontent.com/CFFinch62/LastBridge/main/deploy/install.sh | bash# Clone the repository
git clone https://github.com/CFFinch62/LastBridge.git
cd LastBridge
# Run the installer
./deploy/install.sh# Install dependencies (Ubuntu/Debian)
sudo apt-get install build-essential libgtk-3-dev socat pkg-config
# Build both applications
make
# Run applications
./LAST/last
./BRIDGE/bridge- Start BRIDGE: Launch and create virtual devices
- Start LAST: Use Tools β BRIDGE menu or run separately
- Connect: In LAST, connect to
/tmp/ttyV0or/tmp/ttyV1 - Test: Send data between virtual devices
BRIDGE now includes professional-grade serial data sniffing capabilities, making it a universal serial communication analyzer:
Device A ββ /tmp/ttyDevice1 ββ Enhanced BRIDGE ββ /tmp/ttyDevice2 ββ Device B
β
Data Sniffing Layer
β
βββββββββββββββββββββββββββββββββββ
β Multiple Output Streams β
βββββββββββββββββββββββββββββββββββ€
β β’ Named Pipe: /tmp/bridge_sniff β
β β’ TCP Socket: localhost:8888 β
β β’ UDP Stream: 239.1.1.1:9999 β
β β’ File Output: bridge_data.log β
βββββββββββββββββββββββββββββββββββ
β
External Processing Applications
- Marine Electronics: BBFF video data processing with LAST control
- Protocol Analysis: Reverse engineer proprietary serial protocols
- Device Debugging: Monitor communication between devices and software
- Data Logging: Record serial sessions for offline analysis
- Multi-app Integration: One device feeding multiple applications
- Launch BRIDGE and go to the "Sniffing" tab
- Enable sniffing and select output methods (TCP recommended)
- Start the bridge and begin sniffing
- Connect your devices to the virtual ports
- Connect your analysis application to the sniffing output
- Monitor real-time data flow
For detailed sniffing documentation, see BRIDGE/SNIFFING_GUIDE.md.
- Ubuntu 18.04+ / Debian 10+
- Fedora 30+
- Arch Linux
- Other Linux distributions with GTK3
- Runtime: GTK3 libraries, socat utility
- Build: GCC, Make, GTK3 development headers, pkg-config
- Any Linux-compatible serial ports
- USB-to-Serial adapters
- Built-in serial ports
- Virtual devices (created by BRIDGE)
# Download and run installer
curl -sSL https://raw.githubusercontent.com/CFFinch62/LastBridge/main/deploy/install.sh | bash
# Or clone and install
git clone https://github.com/CFFinch62/LastBridge.git
cd LastBridge
./deploy/install.sh# Download release package
wget https://github.com/CFFinch62/LastBridge/releases/latest/download/LastBridge-1.0.0.tar.gz
# Extract and install
tar -xzf LastBridge-1.0.0.tar.gz
cd LastBridge-1.0.0
./deploy/install.sh# Install dependencies
sudo apt-get install build-essential libgtk-3-dev socat pkg-config
# Build
make clean && make
# Install (optional)
sudo make install- Start LAST:
lastor find in applications menu - Refresh ports to detect available devices
- Select port, configure parameters
- Click Connect
- Send/receive data in terminal
- Start BRIDGE:
bridge - Configure device paths (default:
/tmp/ttyV0,/tmp/ttyV1) - Click "Start Virtual Null Modem"
- Start LAST (or use Tools β BRIDGE menu)
- Connect to virtual devices for testing
- Send File: Use File menu in LAST to send files over serial
- Save Data: Capture received data to files
- Logging: Enable logging for session recording
Both applications follow a modular C architecture:
src/
βββ common.h # Shared includes and structures
βββ main.c # Application initialization
βββ ui.c/.h # GTK3 user interface
βββ callbacks.c/.h # Event handlers
βββ settings.c/.h # Configuration management
βββ utils.c/.h # Utility functions
βββ [app-specific modules]
serial.c/.h- Serial port operations and communicationfile_ops.c/.h- File send/receive operations
nullmodem.c/.h- Virtual device management using socat
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and test thoroughly
- Commit:
git commit -m 'Add amazing feature' - Push:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- GTK3 development team for the excellent GUI framework
- socat developers for the versatile networking tool
- Linux serial subsystem maintainers
- Open source community for inspiration and feedback
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: cffinch62@example.com
- Documentation: Wiki
- Releases: GitHub Releases
- Changelog: CHANGELOG.md
Copyright Β© 2025 Fragillidae Software - Chuck Finch
Made with β€οΈ for the Linux community