neundorf / cutecom Goto Github PK
View Code? Open in Web Editor NEWA graphical serial terminal
License: GNU General Public License v3.0
A graphical serial terminal
License: GNU General Public License v3.0
Hi, I am having this issue for a long time now, and tried several times to figure out what goes wrong. Before I continue, I don't have the impression that this is an issue with CuteCom at all, I was just hoping that you might now more (assuming you have far more experience with ubuntu/serial/uart than I do).
So, since "a version" of ubuntu (currently I'm on 23.04) I started noticing some repetitive characters when reading from the uart of my micro controller. At first I though I caused a serious bug on my side in the MCU, but after monitoring the stream of bytes using a logic analyzer, I found that the micro controller sends the data just fine. But somewhere on the host side (my ubuntu development pc) the data gets corrupted by repeating a char N times completely at random.
I can't find any way to get a better handle on this. I played around with flow control in CuteCom to see if that solves the problem, but it doesn't.
I am connecting to ttyACM0
if that makes a difference. So it's not an actual ttyUSB
device. I know ACM has something to do with an old school driver used for modems. The "other side" is my JLink programmer, where one wire of the JLink is directly connected to the uart TX on the microcontroller. Again, using the logic analyzer on that pin on the JLink gives perfect communication. So from JLink to my USB connector and through the ubuntu kernel to CuteCom something goes wrong. I have no idea where to start.
Do you by any chance recognize this problem?
Are there solutions / workaround you could suggest?
Can I e.g. force ttyUSB drivers so that the device is not recognized as ttyACM0
but as ttyUSB0
, and if that would be possible, would I have a chance of solving the problem?
I'm writing application which talk with device via serial port. But when in development, I often let my application talk with a virtual serial port (created with socat
) first. It would be great that CuteCom support virtual serial port, too, to help in developing.
Hi!
Currently CuteCom uses same icon as terminal, because openterm
icon is a symlink to terminal icon.
Recently I wanted to contribute CuteCom icon (numixproject/numix-core#3401) to Numix Circle icon theme and we faced problem, because we would have to overwrite openterm
icon with serial-terminal-like icon which I made for CuteCom.
I'd like to ask if it's possible to change cutecom.desktop
icon line to something unique like cutecom
(as in openSUSE distribution desktop file), to allow other icons to be used and avoid the risk of breaking other apps' icons?
[Desktop Entry]
Encoding=UTF-8
Name=CuteCom
MimeType=
GenericName=Serial Terminal
Exec=cutecom
Icon=cutecom
Path=
Type=Application
Terminal=0
X-KDE-StartupNotify=false
Also, current desktop file makes it impossible to distinguish CuteCom from terminal, when both are launched, which is kind of annoying, when you have to switch between them multiple times.
Thank you in advance :)
Hi,
On mageia Cauldron we tried to compile cutecom 0.40.0 but it fails to build with new Qt5 5.11:
CMake Error at CMakeLists.txt:50 (qt5_use_modules):
Unknown CMake command "qt5_use_modules".
Upstream have removed this function in Qt 5.11.
Regards,
David
In the original CuteCom (0.22) there is an option to select the character sequence for a line ending. This is useful because not all devices terminate strings with a \r\n sequence. In particular I'm programming a microcontroller and the serial communication only returns a carriage return character because I'm trying to save a couple of bytes.
Search and highlighting of strings.
Hi,
I just talked to a device which sends only CR at the end of a line.
This leads to an unreadable visual representation.
I'd like to provide you with a pull request, but I didn't find a proper way to access the MainWindow's m_settings from the DataDisplay.
I suggest to replace the occurrences of '\n' in void DataDisplay::displayData(const QByteArray &data)
by '\r', if and only if the Settings::m_lineterm is CR.
Greets,
Karl
With most dark themes in KDE colors of text messages in the log panel are unreadable due to very low contrast.
Is there any way to adjust it?
See here: https://doc.qt.io/qt-5.9/qnetworkdatagram.html
This makes the readme's 5.1 requirement outdated, and complicated to build on debian stable, which has 5.3
First, Thank you very much for the improvement of cutecom - very nice done!
is there any donation button?
As the title sais, these checkboxes are incorrectly set initially (after a first run and compiled with QtCreator in debug mode). Once you toggle them, the settings are applied correctly.
Greets, Karl
As title says. Mentioned in #54.
Hi!
I'm using this amazing tool CuteCom version 0.30.3-1+b2 on debian 11.6 / KDE-plasma
The problem appends when I'm connected to a device using a usb to serial adapter and when I unplug the dongle without clicking on the 'close' button. The result is a 100% CPU usage on the process.
with strace, CuteCom seems to loop on:
poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=15, events=POLLIN}], 3, 13515) = 1 ([{fd=15, revents=POLLIN|POLLERR|POLLHUP}])
read(15, "", 32768) = 0
poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=15, events=POLLIN}], 3, 13515) = 1 ([{fd=15, revents=POLLIN|POLLERR|POLLHUP}])
read(15, "", 32768) = 0
poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=15, events=POLLIN}], 3, 13515) = 1 ([{fd=15, revents=POLLIN|POLLERR|POLLHUP}])
read(15, "", 32768) = 0
poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=15, events=POLLIN}], 3, 13515) = 1 ([{fd=15, revents=POLLIN|POLLERR|POLLHUP}])
read(15, "", 32768) = 0
Any advice to go further in the debug process?
Do someone have the same issue (on same or other OS).
Thanks
Delete history individually.
When you select a line of output from the serial connection, and the output scrolls, you lose focus on the selection. Is there a way to prevent this?
I just noticed, that continuous integration on travis has been broken.
Setting up travis on the upstream/main repository would be helpful evaluating pull request. Being a collaborator 'only', I have not access to the settings of this repo. Hence I cannot setup a travis instance for it.
Transferring the CuteCom project to it's own organisations might make it more attractive for new developers if they could apply for being a collaborator themself more easily. Maybe that's wishful thinking, but I've seen this on other open source projects.
Anyway. The other benefit would be, that the chances the project will not being the abandoned in the future increase, if more developers are part of that organisation.
Who knows. Someone might just being inclined to create a github page for this very fine piece of software ;-)
@neundorf what do you think?
https://help.github.com/articles/transferring-a-repository-owned-by-your-personal-account/#transferring-to-an-organization
after a organization was created:
https://help.github.com/articles/collaborating-with-groups-in-organizations/
If string recognized then trigger an event.
It would be nice to have the option to have the time stamp relative to the beginning of the log.
Hi.
My sensor is providing many data on 100Hz,
and I see significant CPU usage compared to old CuteCom.
I think the problem is in QPlainTextEdit.
In #34 there is a suggestion how to solve it.
It does batch insertText() operations on timer.
CPU usage is reduced from 40% to 10%.
Dmitry
version from git. The nodemcu module with cp2102 usb to uart. when I click to open the device, nodemcu reboots. The old version of cutecom 0.22 simply reads data from the device's port. Without reboot.
info about nodemcu device https://github.com/nodemcu/nodemcu-devkit-v1.0
Hello,
as cmake dropped qt5_use_modules
and you already have committed changes to
solve this issue, please make a new release including the most recent changes.
Thank you.
It would be nice to filter the commands history based on the input, to be able to find a similar command used much earlier. Would be great if it was possible to then select a line with up and down arrows.
Thank you for the great software! It would be really great if people could download a prebuilt app version (Windows/Mac) without the hassle of building it themselves.
It would be nice to have a dark theme option. I already hacked the dark theme locally using this theme, but it would require some work, to make it optional.
I'm reporting on neundorf/CuteCom 7da86b3 compiled on Ubuntu 14.04 using up-to date qt5-default and libqt5serialport5-dev.
In my use case, I need software flow control with XON/XOFF (DC1 0x11, DC3 0x13). After receiving CR the embedded device sends XOFF (0x13), does some processing, sends some text followed by a LF, and then sends XON (0x11) to indicate that the next line of text can be received and processed.
My expectation is that CuteCom stops sending characters in the interval between XOFF and XON, and that it hides the control characters, just like CR and LF, unless "Settings/Display Control Characters" is checked.
However, although I didn't check "Settings/Display Control Characters", CuteCom displays the hex values for DC1 and DC3:
HEX 80 1 DUMP␍<0x13>␊
80 0 0 4 44 55 4D 50 0 0 0 0 0 0 0 0 0 ___DUMP_________ ok␊
<0x11>
Flow control as such doesn't appear to be working:
When I send a text file using the "script" feature, in the combined rendering of sent and received characters below, CuteCom sends the sequence ": dec -1" even after receiving a , causing an overrun:
<0x11>: inc 1 0 +! ;<0x13>: dec -1
<0x11>0 +! ;<0x13> :0?
My expectation is that CuteCom honors software flow control, and after receiving waits with sending new characters until has been received.
Please note that other communication programs, like MiniCom, show a similar behavior regarding the visibility of and . It's possible that "I'm doing it wrong" or that something in underlying communication layers is broken.
Hi there!
Unfortunately the update brought a critic flaw in the app. It's started craching on device disconnect. Previous version was just disconnecting and everything I needed is just hit the Connect button to have it working again.
It would be nice to have the possibility of manually write the port that you want to use, apart from being able to choose it from the drop down. When the port is a virtual socket, it not listed and can not be selected.
When you want to send a SMS, you absolutly need to press Ctrl+Z to terminate the message and send it to the modem. It's not possible actually to enter that special character into the input line.
Could it be possible to create a button to send that character into the input buffer ?
Step 1: If you don't already have the code, get the latest copy using Git
git clone https://github.com/neundorf/CuteCom.git
Step 2: Enter CuteCom directory
cd Cutecom
Step 3: obtain libraries required to build executable
sudo apt install -y qtbase5-dev cmake libqt5serialport5-dev
Step 4: configure the build environment in preparation for compiling
cmake .
Step 5: compile the code into an executable file
make
Tip: add -j(number_of_cpu_cores) to speed up compile time. example: make -j8
Step 6: (Optional) install executable into system bin directory for system-wide use.
sudo make install
I tested these steps and can confirm they work 100% on a clean install of Ubuntu 17.04
Perhaps someone could add some steps for enabling debug flags and other such compile options.
Hi,
using monospace font in sent and received data view would be sometimes useful. Could you please implement font configuration or add some tick box to switch to monospace font there?
I need to add support for 3 Mbps or higher support in CuteCom. I tried it by modifying m_combo_Baud in control.cpp. During make process, it flashed an error regarding "not supported by QSerialPort". It was found that QSerialPort does not include 921600 baud rate which is supported by CuteCom. Is there any way to add support for 3 Mbps? Please enlighten me with your thoughts.
------- system:ubuntu 14.04, uses Qt version 5.2.1 CuteCom 0.30.4 -------
when i run 'sudo cutecom' under the terminal, the log is show below:
"
Cannot open file ':/images/info.svg', because: Unknown error
Cannot open file ':/images/info.svg', because: Unknown error
setting current session to: "Default"
MainWindow::MainWindow(QWidget*, const QString&) calculated height: 31
Cannot open file ':/images/terminal.svg', because: Unknown error
Cannot open file ':/images/terminal.svg', because: Unknown error
Cannot open file ':/images/terminal.svg', because: Unknown error
Cannot open file ':/images/terminal.svg', because: Unknown error
"
In addition, there are some occasions, it is necessary to send characters in a loop, loop interval can be milliseconds or seconds, whether to consider adding this feature?thanks
Using CuteCom 0.45.0 on macOS 10.13.6 I cannot send control characters nor see the control character popup.
The Readme.md says:
"Pressing Ctrl will open a widget allowing you to add control characters into the input field."
So I put my cursor focus in the Input field, press the Ctrl key, no popup. Type Control-C, press enter. No evidence from the device or CuteCom that the Control-C character was sent.
XModem transfer fails:
A dialog with following message appears:
Could not start sx
From stdout/stderr:
sx exited with: 2 QProcess::ExitStatus(NormalExit)
sx binary:
which sx /usr/bin/sx
sx version:
pacman -Si lrzsz Name : lrzsz Version : 0.12.20-5
Using cutecom 0.40.0-1 on ArchLinux
Mainly because a function used from QtSerialportInfo which was introduced in Qt5.3, cutecom can not be compiled with Qt5 versions less than 5.3
A user reported that he could not get version 0.30.2 working on Ubuntu 14.04.
There are some more issues based on the slightly different behaviour of the older QtSerialPort version.
Hello.
I have problems with inline completions of input line. It would be better if their database would be sorted as "most recent first", but "oldest first" make me accidentally sending erroneous data. In this case I prefer QCompleter::PopupCompletion, that does not autocomplete on enter, but I may choose by up/down buttons if needed.
Dmitry
I see that new (0.30+) CuteCom uses CuteCom5 as the application name, while old one (pre-0.30) used CuteCom, so they write their configuration into different files and from the comment in mainwindow.cpp
it seems to be done intentionally.
Now the two questions are: are these formats compatible (looks like not, but) and whether there are any ways to migrate old settings to new CuteCom?
As #26 mentioned, there are some occasions, it is necessary to send characters in a loop, loop interval can be milliseconds or seconds, whether to consider adding this feature?thanks
The program has a send file button, but not a receive file button. Often in data recovery, we need to transfer files both ways. We command the drive to send a firmware file, but need an option in the software to receive it. Hyperterminal could do this, but it seems to be a lacking feature in most other serial programs I've looked at.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.