==================================================================================
myFilterWheel Linux Firmware change file
(c) Robert Brown 2019-2022. All rights reserved.
==================================================================================
==================================================================================
USING myFilterWheel CONTROLLERS WITH LINUX
==================================================================================
This is how you can use a myFilterWheel Controller with Linux systems.
1. myFilterWheel Linux application
myFilterWheel-LINUX Application
The provided LINUX application was developed and tested on UBUNTU with the MATE desktop environment, and supports a Serial USB connections to a myFilterWheel controller.
After recompiling the source files, copy the myfwlusb AND the myfwlusb.ini files to a user folder on your Linux system (like a folder under the desktop)
myfwlusb,ini SETTINGS FILE
This file is used to save and restore the application settings.
[SETTINGS]
serialport=/dev/ttyS0
serialspeed=0
delayonconnecttime=2
serialreadtimeout=5
reversedirection=0
logging=1
logfilepath=/home/rufus/Desktop/LogFiles
sendoffsets=0
[OFFSETS]
offset0=11
offset1=12
offset2=13
offset3=14
offset4=15
offset5=0
offset6=0
offset7=0
offset8=0
[NAMES]
name0=5
name1=1
name2=2
name3=3
name4=4
name5=0
name6=0
name7=0
name8=0
CHANGE PORT SETTINGS IN THE myfwlusb.ini FILE
The INI file will need changing. There is a string for the variable serialport which looks like
serialport=/dev/ttyS0
You will need to change the serialport string to what is used for your system. For Raspberry PI it is more likely that string will look like
serialport=/dev/ttyUSB0
CHANGE LOG FILE LOCATION SETTINGS IN THE myfwlusb.ini FILE
The INI file will need changing. There is a string for the variable logfilepath which looks like
logfilepath=
You will need to specify the path where your log files will be stored. The path below points to user bob’s home folder, and there is a folder on bob’s desktop called myLogFiles
logfilepath=/home/bob/Desktop/myLogFiles
After making the required changes to the myfwlusb.ini file, save the file.
Alternatively, when the application runs the first time, it will detect that the logfile path has not been specified in the INI file and ask you to specify the folder where the log files can be saved. Once this is specified, then the log path is saved for future use.
REQUIRED GROUP PERMISSION
You must be a member of the group tty (Ubuntu-Mate) (others are the dialout group)
Use menu, administration, users and groups, manage groups, tty, properties
and ensure that your name is checked, then click OK
FLAG APPLICATION AS EXECUTABLE
Run a terminal window (as root) in the folder and change permissions of file
chmod +x myfwlusb
or you can right mouse click the file, properties, permissions and check allow
executing file as program.
I had to right mouse click file and chose run as adminstrator. It seems it cannot connect to tty0 device without admin privilege.
OTHER LINUX SYSTEMS
You will need to recompile the source code using Lazarus Pascal, in order to run the application on a different Linux system (or Raspberry Pi).
INSTALL THE ARDUINO IDE
To install the Arduino IDE so you can program the controller, open a terminal window and type the following commands
sudo apt-get update
sudo apt-get install Arduino
INSTALL LAZARUS
If you need to recompile the source code, you will need to install Lazarus
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fpc
sudo apt-get install Lazarus
RE-COMPILING THE SOURCE
To recompile the source, download the source files and extract the zip file into a folder. In that folder, open the myfilterwheelpro.lpi file in Lazarus and then from the menu bar select Run-Compile. Once the program is built, the myfwlusb file can be executed.
When the program is first executed, and you did not specify where the log files are to saved, the application will first ask where to save the log files. After selecting a folder location, the application will save the log file path and continue.
HOW TO FIND SERIAL PORT
Connect controller to USB port
Start Arduino IDE
Look at menu Tools - it should say something like Port: "/dev/ttyUSB0"
ISSUE WITH SERIAL PORT BEING BUSY/LOCKED
Goto /var/
Delete the file LCK..ttyUSB0
(Hint it might be LCK..ttyS0)
Then run the program again