wondering about Software Serial Library - arduino

software Serial
I was searching on the internet and i was seeing this Software Serial a lot, i'm wondering what the Software Serial library is used for?

According to Docs:
The SoftwareSerial library has been developed to allow serial
communication on other digital pins of the Arduino, using software to
replicate the functionality (hence the name "SoftwareSerial"). It is
possible to have multiple software serial ports with speeds up to
115200 bps. A parameter enables inverted signaling for devices which
require that protocol.
Suppose that you are using an Arduino Uno which has only one Hardware Serial port and you want to connect it to a GSM Modem which uses a serial port to communicate. And you need to get AT commands from a PC user. So you need two Serial ports. You can use Default Hardware Serial for PC communication and one Software Serial for communicating with the Modem. Then simply send and receive AT commands.
There are some limitations for Software Serial like slower baud rate comparing to hardware serial, can't receive data from multiple serials simultaneously, etc.
It is recommended to use Software Serial for boards that don't have enough Hardware Serial ports. So you need to remember that using Hardware Serial always is a better choice.

Related

Arduino 2006 how to connect to my laptop?

I have borrowed an Arduino BT-V06 (analogue) from my college IT storage department.
At home I am trying to do some research on this for subsequent work I am going to perform with this Arduino later on. As this model is a 2006 version; my question is, how do I connect it to my laptop? Some sort of adapter? or perhaps shield it with a newer model that has a usb-port?
Because I would like to have it connected to my laptop in order to try out some codes on it.
Thank you very much for your time!
-M
There's at least two options. First, it's set up to be programmed over Bluetooth. So if you have Bluetooth on your laptop, you can connect the two wirelessly. Pins 0 and 1, per the documentation, are TTL serial transmit and receive pins (which are also used for Bluetooth communications), so if you AREN'T connecting via Bluetooth, you could connect a serial to USB adapter so you can connect to your laptop via USB. This reference has this to also say:
"The on-board serial communication between the bluetooth module and the Arduino sketch (running on the ATmega328) needs to be at 115200 baud (i.e. call Serial.begin(115200) in your setup() function). Communication between the bluetooth module and the computer can be at any baud rate.
Communication between the BT module and the computer can be temperamental. You might want to open the serial monitor a couple of seconds after resetting the board. The text of the Arduino getting started guide is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the guide are released into the public domain."

Bypassing powered on FTDI. Connect directly to RX/TX pins to drive externally

I'm working with a driver board which communicates with a PC program via USB -> FTDI -> TX/RX into the microcontroller. The serial pins are not broken out on the board and I need to talk to the board from another microcontroller (like Arduino). My plan is to just solder directly to the RX/TX pins on the microcontroller despite the fact that the FTDI is powered on and RX/TX of the FTDI will be electrically connected to those pins. I will not be transmitting anything via USB. My assumption is that the FTDI chip will be passive and I can just drive those pins from my Arduino.
Will this cause me any issues? I'm just concerned if the FTDI passively drives those pins low or high, I'll get "smoke" if I follow through with my plan. Perhaps I should put some resistors on my Arduino's RX/TX just as a safeguard.
It's very possible some of my logic is flawed here. Thanks in advance for your advice!!
Cheers
You need to check with the particular FTDI chip you're using on that board.
Some FTDI chips support RS485 and because of the required multidrop capability they operate as open-drain allowing to connect multiple devices.
Even if this solves your hardware problem, you still need to consider how the (live) FTDI chip may respond to your 'unexpected' incoming (RX) data stream. For example, possible XON/XOFF flow control appearing on TX especially since there won't be a consumer from the PC side and the internal FTDI buffers will eventually fill up.

Is it possible to use Arduino 2560's serial/USB communication without Arduino bootloader?

I have an Arduino 2560 and would like to send serial data to my PC. However, I am currently not using the Arduino Bootloader because I wanted to use a program that I wrote for an Atmega644 before (as far as I understood, one has to use the Arduino language when using the Bootloader?).
Does anyone know if what I am trying to do is possible with reasonable effort?
Connection to PC via 2560's serial0 does not depend on bootloader (if you plan connection when main program is running). You need 16u2 running to bridge 5V serial UART to USB or you can of course use any other option (e.g. MAX232 or so) to convert 5V UART to USB or RS232. But in case of RS232 double check baud rate error because of 16MHz crystal for particular baudrate.
2560 bootloader just implements firmware flash.

What happen when use rs232 instead of usb in arduino?

I just start a project which is very basic actually. But I need an information. It is about arduino serial communication. Here is the question.
If I connect arduino to computer using TTL to RS232 converter without USB cable then can I still use serial monitor to get some data or what happens ? Assume arduino is programmed before using usb cable, and it is powered externally when usb is not used.
for instance the code just
Serial.println("It is working");
delay(1000);
Thansk a lot.
you will fry it. Standard RS232 use a +-12V level, while arduino use TTL level (0-5V), so you still need a RS232 -> RS232TTL converter. If you use it, then using virtual serial over USB or real hardware serial is exactly the same, except that hardware serial port never appear/disappear when you plug in the arduino (there is not something like plug'n'play in rs232, it is always plugged)

WinUSB driver for Arduino

I'm using an Arduino to read data from the web and display it. I can easily pass the data as serial using the supplied drivers, because they identify the COM port so I can send serial to the COM port.
However, I want to use 'real' USB techniques so the device can be plugged in and out like a normal USB device. I'm looking at using WinUSB as the driver. However, USB is all new to me. Is there an .inf file that uses WinUSB and an Arduino (I have an Uno)?
The lack of information on this is making me think I am going about this incorrectly.
Turns out that an Arduino Uno is not a genuine USB device.
It acts as a Serial to USB adapter. Consequently USB drivers don't talk to it.
I got round this by writing a sketch which reported back what device it was when it got the correct query from the PC.
On the PC I just iterated the Serial ports and sent the query to each port. The one that replied was the Arduino.
After that I record the port number and send serial data to the Arduino.
To learn the USB portion, maybe you could combine V-USB and the UNO?
Check out V-USB.
V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers, making it possible to build USB hardware with almost any AVR® microcontroller, not requiring any additional chip.
While not necessarily Arduino, it may provide you the learning exprience you want, and let you use incorporate your UNO device.

Resources