Search packages, repositories and app categories

Package detailsv0.0.2

serial_communication

An Android Plugin for Serial Communication which allows you to read and write the data through the available ports

Android
30-day downloads
61
Likes
14
Pub points
160

Install package

flutter pub add serial_communication

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

The serial_communication package is an Android plugin enabling serial communication between a Flutter app and external hardware devices via available serial ports. It allows reading from and writing to these ports, facilitating direct interaction with sensors, microcontrollers, or other peripherals connected through UART/USB-to-serial interfaces. Designed specifically for Android, it provides a straightforward API for developers integrating hardware-based functionality into their apps. The package supports real-time data exchange and is ideal for IoT applications, industrial automation, and embedded system control.

Use cases

  • Connecting to Arduino devices
  • Reading sensor data in real time
  • Controlling industrial equipment
  • Integrating with USB-to-serial adapters
  • Building IoT monitoring systems

Key features

  • Supports Android only
  • Enables read/write operations on serial ports
  • Simple API for hardware integration
  • Real-time data transmission
  • Compatible with UART and USB-to-serial devices

Suitable for

  • IoT application developers
  • Hardware interface projects
  • Android-based industrial apps
  • Embedded system integrators
  • Prototyping with microcontrollers

Considerations

  • Limited to Android platform
  • Requires hardware compatibility
  • No iOS support
  • Needs proper permissions and device configuration
  • May require additional native setup for certain devices

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

Pub

Serial communication!

An Android Plugin for Serial Communication which allow you to read and write the data through the available ports The supported features are:

  • Listing the available serial ports on the device, including USB to serial adapters
  • Configuring serial ports (baud rate, stop bits, permission, ...)
  • Providing standard InputStream and OutputStream

Description

This PlugIn enables the communication with the USB RS232 RS485 UART

Supported platforms:

  • Android

Video tutorial

In order to completely understand you can view our sample video in which we are using an android Lcm module. Click the image below to watch the video:

IMAGE ALT TEXT

Getting Started

Add a dependency to your pubspec.yaml

dependencies:
	serial_communication: 0.0.2

include the usbserial package at the top of your dart file.

import  'package:serial_communication/serial_communication.dart';

❓ Usage

If you encounter any issues please refer to the API docs and the sample code in the example directory before opening a request on Github.

Example app

The example directory has a sample application that demonstrates the features of this plugin.


🔧 Android Setup

Initialisation
The first step is to call the startSerial() method and subscribe the StreamSubscription

Start Serial

startSerial method will open the transaction stream

SerialCommunication serialCommunication = SerialCommunication();

  @override
  void initState() {
    super.initState();
   serialCommunication.startSerial().listen(_updateConnectionStatus);
    getSerialList();
  }
  
 void  _updateConnectionStatus(SerialResponse? result) async {
logData = result!.logChannel ?? "";
receivedData = result.readChannel ?? "";
});
}

By calling the startSerial() it will provide you with the SerialResponse in the form of stream data

SerialResponse In Serial Response you will get the following type
1) Log Channel (type:String)
2) Read Channel (type:String)

  1. Log Channel: In the log channel you wll get the repsone when you open any port ,close any port , transmit data (TX).

  2. Read Channel: In the Read channel you wll get the Recived data (RX)

Available Ports

The getAvailablePorts() method will return you all the
available ports on a device

serialList = await  serialCommunication.getAvailablePorts();

Open

openPort method will open the serial communication Its has 3 required parameter { DataFormat dataFormat, String serialPort, int baudRate }

serialCommunication.openPort(
dataFormat: DataFormat.ASCII,
serialPort: serialList.first,
baudRate: serialCommunication.baudRateList.first)

Close

closePort method will close the port if you have opened any port

serialCommunication.closePort();

Send Command

sendCommand method will send your message Its has 1 required parameter {String message}

serialCommunication.sendCommand(message: "message");

Clear

clearLog method will clear the Log channel clearRead method will clear the Read channel

serialCommunication.clearLog();
serialCommunication.clearRead();

Destroy

destroy method will eliminate the resources

@override
void  dispose() {
serialCommunication.destroy();
super.dispose();
}

  • Baud Rate To get the Standard baud rates list call the SerialCommunication().baudRateList it will return the integer list of standard baud rate

  • Data Format The Data format is used to convert the data type To pass the data format in the open() method parameter For ascii format call the DataFormat.ASCII

    For hex_String format call the DataFormat.HEX_STRING

Contribution

Any help from the open-source community is always welcome and needed:

  • Found an issue?

    • Please fill a bug report with details.
  • Wish a feature?

    • Open a feature request with use cases.
  • Are you using and liking the project?

    • Promote the project: create an article, do a post or make a donation.
  • Are you a developer?

    • Fix a bug and send a pull request.
    • Implement a new feature.
    • Improve the Unit Tests.
  • Have you already helped in any way?

    • Many thanks from me, the contributors and everybody that uses this project!

    Maintainers

  • BJS MB Dev

  • Zain Ul Abideen

Categories

Dependencies

Dependency list 1 items

  • plugin_platform_interface^2.0.2

Source repository

Projects using this package

No data available yet.