A secure SMS management application for SIM800L GSM modules with full Unicode and emoji support.
- Send and receive SMS messages in real-time
- Multi-language support (English, Arabic, Persian, Chinese, emoji)
- Modern chat-style user interface
- Contact management system
- Automatic encoding detection (7-bit GSM / UCS2)
- PDU mode for Unicode messages
- Desktop notifications
- Thread-safe operations
- Secure input validation
- Java 17 or higher
- Maven 3.6+ (for building)
- SIM800L GSM module
- USB-to-Serial adapter
- Active SIM card
Download pre-built executables from Releases:
- Linux:
SIM800L-Manager-linux-x64.tar.gz - Windows:
SIM800L-Manager-windows-x64.zip - macOS:
SIM800L-Manager-macos-x64.dmg
No Java installation required!
git clone https://github.com/yourusername/sim800l-manager.git
cd sim800l-manager
mvn clean packagemvn javafx:runOr run the compiled JAR:
java -jar target/SIM800LManager-v2.0.jar- Connect SIM800L module via USB-Serial adapter
- Insert active SIM card and power on
- On Linux, add user to dialout group:
sudo usermod -aG dialout $USER - Launch application and select serial port
- Click "Connect" and wait for confirmation
- Start sending messages
Text Mode (English) - Up to 160 characters:
Hello, how are you?
PDU Mode (Unicode) - Up to 70 characters:
مرحبا كيف حالك?
你好,这是一条测试消息。
Hello 😀 How are you? 🎉
The application automatically detects the appropriate encoding mode.
| Type | Encoding | Max Length |
|---|---|---|
| English/ASCII | 7-bit GSM | 160 chars |
| Unicode/Emoji | UCS2 | 70 chars |
Application data is stored in ~/.sim800l/:
chats.dat- Message historycontacts.dat- Saved contacts
- Baud Rate: 9600
- Data Bits: 8
- Stop Bits: 1
- Parity: None
This application implements comprehensive security measures:
- Input validation and sanitization
- Command injection prevention
- ReDoS protection
- Safe deserialization
- Thread-safe operations
For details, see SECURITY.md.
Cannot connect to serial port:
- Check SIM800L power LED is blinking
- Verify USB cable connection
- Check serial port permissions (Linux)
- Try different serial ports
Module not responding:
- Verify power supply (4.2V, 2A required)
- Check SIM card insertion
- Wait 10-15 seconds after power on
- Restart the module
Cannot send Unicode:
- Automatic PDU encoding is enabled
- Check SIM card supports Unicode SMS
Message too long:
- English/ASCII: max 160 characters
- Unicode: max 70 characters
- Emoji counted correctly (no concatenation support)
# Compile
mvn clean compile
# Build JAR
mvn clean package
# Run
mvn javafx:runOutput: target/SIM800LManager-v2.0.jar
src/main/java/com/sim800l/
├── SIM800LApp.java # Main application
├── SerialPortManager.java # Serial communication
├── PDUEncoder.java # PDU encoding
├── MessageEncoder.java # Text encoding
├── DataManager.java # Data persistence
├── Contact.java # Contact model
├── ChatMessage.java # Message model
├── NotificationManager.java # Notifications
└── Theme.java # UI theming
- JavaFX 17.0.2 - UI framework
- jSerialComm 2.10.4 - Serial communication
Contributions are welcome. Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
MIT License - see LICENSE file for details.
- Issues: GitHub Issues
- Security: SECURITY.md
Made with care for reliable SMS communication.