Who is here? 1 guest(s)
 Print Thread
RoastLogger with TC4 on Linux
fg1972
Hi everyone,
I've been using RoastLogger with an Arduino TC4 successfully for the last few years on Windows PC's.
My dedicated roasting PC is starting to fall apart so I've set up another machine with a Linux OS.
On the Linux PC, I've installed Java, Arduino IDE, and RoastLogger which is all good.
As per the RoastLogger Linux instructions, I've added the udev rule and added myself to the 'dialout' group however the TC4 is not detected by RoastLogger, ie; there are no virtual comm ports in the port list.
When the TC4 is plugged to the PC, the Arduino IDE software successfully detects the device as /dev/ttyACM0.
I've checked the sim link created by the udev rule ttyUSB0 -> ttyACM0 exists and the permissions are correct. Also confirming the ttyACM0 file ownership is root':'dialout and I am part of the dialout group.
Does anyone have any idea what else to check for this work under linux?
Thanks
Its Espresso, not Short Black
 
JackH
I found this information on RoastLogger and Linux on the roastLogger site:

"Linux users need to set permissions correctly on a new installation. Please read the following three points for details of the necessary steps. These steps are only necessary on a new installation. If you update the roastLogger via menu > Help > Update RoastLogger then the executable permissions will be set automatically.

2.1 If you wish to use the DMM tab to read from a USB HID device then you may need to set the executable permission of the included USB HID readers included in the /HID folder ( USBHIDReader_Linux for 32 bit systems or USBHIDReader_Linux64 for 64 bit systems).

2.2 Two issues exist with Linux which are both solved by adding the included udev rule.

Unknown devices are not accessible to non-root users in Linux. Due to this the connection to your Victor 86 B or Victor 86 C multimeter will not work until you add the following rule.
Arduino Uno's are not correctly identified to the RoastLogger. The following rule changes the serial port names from the Uno "ttyACM*" which is not recognised to "ttyUSB%n" which is recognised by the RoastLogger.


The included udev rule can be used to solve both of these issues. The rule file is provided in the distribution in folder "/ReadMe Setup info/Linux users read this" titled "45-trcusbhidrule.rules". Copy this rule file into the "/etc/udev/rules.d" folder and restart Linux to permanently fix both issues.

2.3 Serial Devices:

If you wish to connect to a serial device you need to set permission for serial port access. One way to achieve this is to add yourself to the dialout group. Google "linux serial port permissions" for information on granting permission for serial port access."

I did get it running on the Raspberry PI "Raspbian" linux a few years ago but have not done much with it since.
---Jack

KKTO Roaster.
 
fg1972
Thank you Jack,
Those instructions are the same ones I've followed however RoastLogger still doesn't seem to have any com ports for connecting to the TC4.
Its Espresso, not Short Black
 
JackH
Have you tried contacting Tom Coxon on his site? He is "Greenbean" here and on the "too much coffee" site: http://www.toomuc.../index.php
---Jack

KKTO Roaster.
 
GreenBean
I am sorry to hear about your problems and thank you Jack for helping resolve this.

To help your understanding of what could be going on RoastLogger does not in any way communicate directly with the TC4C or Arduino or have anything to do with setting up the serial (com) port.? All communication is handled by the operating system.? When you plug the TC4C/Arduino in the operating system should recognise it, see what communication chip it is using for serial communication and load the correct com port driver.? The driver is then responsible to set up a virtual com port.

When you start RoastLogger or click the ?Refresh port list? button RoastLogger asks the operating system for a list of serial ports (this includes virtual ports) and all the returned ports are listed in the drop down list.? If your TC4C/Arduino is not listed in the drop down list then the driver has not set up the virtual com port correctly, permissions are not set correctly or you have a driver conflict or incorrect driver.? RoastLogger is not involved in this so can not resolve it.

I am sorry that I do not have time to investigate your particular issue in depth with you but you may be able to resolve it yourself after reading the following:

http://www.noland...0Linux.pdf

http://www.ftdich..._Linux.pdf
homepage.ntlworld.com/green_bean/coffee/smilestore/8.gif
Izzo Alex Duetto | Gaggia XD 2 Group | Mazzer Super Jolly | La Cimbali Max | Solis 166 | Hottop P | Hottop B | French Press (several) | Aeropress (collecting dust) | Kettle modded (added digital thermometer)
 
fg1972
Thank you GreenBean, I really appreciate your response to my post. No need to apologize, you've done a fantastic job with RoastLogger.
The information you've provided has been helpful although it talks about FTDI devices which I'm not sure if they apply to my Arduino device or a particular type of USB device as filtering dmesg for FTDI returned no lines. However I did find the below lines relating to my device without filtering for FTDI.

[ 121.132284] usb 2-2: new full-speed USB device number 2 using uhci_hcd
[ 121.343240] usb 2-2: New USB device found, idVendor=20a0, idProduct=4150
[ 121.343250] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 121.343257] usb 2-2: Product: Eleven
[ 121.343263] usb 2-2: Manufacturer: www.freetronics.com
[ 121.343269] usb 2-2: SerialNumber: 649353432333518011A2
[ 121.424348] cdc_acm 2-2:1.0: ttyACM0: USB ACM device
[ 121.426740] usbcore: registered new interface driver cdc_acm
[ 121.426744] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

Also when the device is plugged in, it appears in /dev as ttyACM0 so I assume the driver is working unless I'm wrong and this is part of the kernel and nothing to do with the driver. (There is a ttyUSB0 simlink pointing to ttyACM0 by the way)
I feel like I'm very close to getting this working but maybe missing something.
Its Espresso, not Short Black
 
fg1972
Thank you so much chaff for your help,
I've managed to get out to the man cave tonight and installed gtkterm which can successfully communicate with the device at 115200 on either ttyACM0 or ttyUSB0 as the standard user so no issues there.
I've taken note of the idVendor and idProduct numbers that appear in the syslog and found they do not match the ones listed in /etc/udev/rules.d/45-trcusbhidrule.rules so I've updated the 45-trcusbhidrule.rules file accordingly and a sudo udevadm control --reload-rules
After all this, still does not appear to have a serial port available in RoasLogger and this is the snippet from the syslog.

Jun 7 20:38:13 eM350 kernel: [ 1963.632130] usb 2-1: new full-speed USB device number 8 using uhci_hcd
Jun 7 20:38:13 eM350 kernel: [ 1963.843182] usb 2-1: New USB device found, idVendor=20a0, idProduct=4150
Jun 7 20:38:13 eM350 kernel: [ 1963.843192] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=220
Jun 7 20:38:13 eM350 kernel: [ 1963.843199] usb 2-1: Product: Eleven
Jun 7 20:38:13 eM350 kernel: [ 1963.843205] usb 2-1: Manufacturer: www.freetronics.com
Jun 7 20:38:13 eM350 kernel: [ 1963.843211] usb 2-1: SerialNumber: 649353432333518011A2
Jun 7 20:38:13 eM350 kernel: [ 1963.848935] cdc_acm 2-1:1.0: ttyACM0: USB ACM device
Jun 7 20:38:13 eM350 mtp-probe: checking bus 2, device 8: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1"
Jun 7 20:38:13 eM350 mtp-probe: bus: 2, device: 8 was not an MTP device
Jun 7 20:38:30 eM350 ModemManager[476]: <info> Creating modem with plugin 'Generic' and '1' ports
Jun 7 20:38:30 eM350 ModemManager[476]: <warn> Could not grab port (tty/ttyACM0): 'Cannot add port 'tty/ttyACM0', unhandled serial type'
Jun 7 20:38:30 eM350 ModemManager[476]: <warn> Couldn't create modem for device at '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1': Failed to find primary AT port

The thing I'm not sure about what makes it look at the particular udev rule file when I plug in the device?
Its Espresso, not Short Black
 
fg1972
Hi chaff,
Many thanks for your help, after a few more hours of playing around I'm pleased to say that I got it working.
Initially I could not see the java command output after loading the app as I had configured the jar executable in the GUI to open using java which launched fine but there was no live log in the background so I was missing the errors that were occurring each time the refresh port list button was pressed. The errors were relating to loading the comms port or something like that and the java errors didn't look right.
Initially when I 1st installed java, I had a few issues and tried several ways to install it so I think the installation was not right from the start. After removing all traces of java and reinstalling it sudo apt-get install openjdk-8-jdk, it worked 1st time!.
I didn't have the permission issue you had as I'd previously set up the udev rule and also added myself to the dialout group.
In my case I did have to update the vendor and product id's in the rule file to match what was detected in the syslog, this is probably due to my device being an Arduino clone.
Thanks chaff and everyone else who chimed in to help. Hope this helps someone else having similar trouble.
Its Espresso, not Short Black
 
Jump to Forum: