PRM-FOEM blinking erratically , card not detected
Hello ,
For a client , we are integrating two cards in a machine :
INT-FOEM4
PRM-FOEM
Switch board
The issue is : When using the software , the Switch board is detected The PRM-FOEM is not detected and blinking 5 times per seconds , any idea what could we do ?
The setup is similar to this :
Using Python SDK Ubuntu
We know that you are the software part of the team , but the Fluigent support team ask us to open an issue here,
Best regard , Keep up the good work , we like your SDK very much.
Hello,
Could you use the log functionality to record what the instrument is communicating? Simply add a call to fgt_set_log_verbosity(5) at the start of your script (before any other calls to the Fluigent SDK) and run it. It should produce a .log file in the same folder you ran the script from. If you require confidentiality, you can send it to our support email, otherwise you can attach it to a comment here. The only potentially sensitive information the logs will contain is the instrument's serial number. If the log file is large, you can compress it to .zip, which should make it small enough to fit in a email attachment. Thanks in advance.
Best regards, Ygor
Hello ,
I finally had the chance to test the boards ,
Test setup :
3 pressure board in the main controller ,
The baords are blinking 3 times red , then two of them turn the red led OFF,
One of the board blink faster in red after that,
I tried to log into a file , but the SDK does not produce any , so I used the fgt_set_log_output_mode( output_to_stderr = 1 ) option instead
here is the code I used ( slightly modified from examples to add your log capability ):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Basic Get Instrument Info example
This example shows how to retrieve information about Fluigent
instruments: type, controller, serial number, unique ID...
Requires at least one Fluigent pressure or sensor module
Copyright (c) Fluigent 2019. All Rights Reserved.
"""
# Print function for Python 2 compatibility
from __future__ import print_function
from Fluigent.SDK import fgt_set_log_verbosity , fgt_get_next_log , fgt_set_log_output_mode
print( fgt_set_log_verbosity(5) )
fgt_set_log_output_mode(1, 1, 0)
print( fgt_get_next_log() )
from Fluigent.SDK import fgt_detect, fgt_init, fgt_close
from Fluigent.SDK import fgt_get_controllersInfo
from Fluigent.SDK import fgt_get_pressureChannelCount, fgt_get_pressureChannelsInfo
from Fluigent.SDK import fgt_get_sensorChannelCount, fgt_get_sensorChannelsInfo
from Fluigent.SDK import fgt_get_TtlChannelCount, fgt_get_TtlChannelsInfo
from Fluigent.SDK import fgt_get_valveChannelCount, fgt_get_valveChannelsInfo
# Detect all controllers
SNs, types = fgt_detect()
controllerCount = len(SNs)
print('Number of controllers detected: {}'.format(controllerCount))
# List all found controllers' serial number and type
for i, sn in enumerate(SNs):
print('Detected instrument at index: {}, ControllerSN: {}, type: {}'\
.format(i, sn, str(types[i])))
print('')
## Initialize specific instruments
# Initialize only specific instrument controllers here If you do not want
# a controller in the list or if you want a specific order (e.g. LineUP
# before MFCS instruments), rearrange parsed SN table
fgt_init(SNs)
## Get the number of channels of each type
# Get total number of initialized pressure channels
print('Total number of pressure channels: {}'.format(fgt_get_pressureChannelCount()))
# Get total number of initialized pressure channels
print('Total number of sensor channels: {}'.format(fgt_get_sensorChannelCount()))
# Get total number of initialized TTL channels
print('Total number of TTL channels: {}'.format(fgt_get_TtlChannelCount()))
# Get total number of initialized valve channels
print('Total number of valve channels: {}'.format(fgt_get_valveChannelCount()))
print('')
## Get detailed information about all controllers
controllerInfoArray = fgt_get_controllersInfo()
for i, controllerInfo in enumerate(controllerInfoArray):
print('Controller info at index: {}'.format(i))
print(controllerInfo)
print('')
## Get detailed information about all pressure channels
pressureInfoArray = fgt_get_pressureChannelsInfo()
for i, pressureInfo in enumerate(pressureInfoArray):
print('Pressure channel info at index: {}'.format(i))
print(pressureInfo)
print('')
## Get detailed information about all sensor channels
sensorInfoArray, sensorTypeArray = fgt_get_sensorChannelsInfo()
for i, sensorInfo in enumerate(sensorInfoArray):
print('Sensor channel info at index: {}'.format(i))
print(sensorInfo)
print("Sensor type: {}".format(sensorTypeArray[i]))
print('')
## Get detailed information about all TTL channels
ttlInfoArray = fgt_get_TtlChannelsInfo()
for i, ttlInfo in enumerate(ttlInfoArray):
print('TTL channel info at index: {}'.format(i))
print(ttlInfo)
print('')
valveInfoArray, valveTypeArray = fgt_get_valveChannelsInfo()
for i, valveInfo in enumerate(valveInfoArray):
print('Valve channel info at index: {}'.format(i))
print(valveInfo)
print("Valve type: {}".format(valveTypeArray[i]))
print('')
## Close the session
fgt_close()
The result are the follow :
OK
None
2025-05-29T10:25:57.295+0200 INFO ThreadId(14856) Fluigent SDK version 23.0.0.0
2025-05-29T10:25:57.295+0200 DEBUG ThreadId(14856) API_CALL fgt_detect()
Number of controllers detected: 1
Detected instrument at index: 0, ControllerSN: 13334, type: F_OEM
2025-05-29T10:25:57.317+0200 DEBUG ThreadId(14856) API_CALL fgt_initEx()
2025-05-29T10:25:57.341+0200 TRACE ThreadId(10940) FRAME_IN 04d8:0017:0000:3416 5a 70 83 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-05-29T10:25:57.342+0200 TRACE ThreadId(10940) FRAME_OUT 04d8:0017:0000:3416 a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-05-29T10:25:57.371+0200 TRACE ThreadId(10940) FRAME_IN 04d8:0017:0000:3416 80 71 00 00 00 00 00 00 00 01 03 34 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-05-29T10:25:57.388+0200 TRACE ThreadId(10940) FRAME_IN 04d8:0017:0000:3416 5a 72 83 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-05-29T10:25:57.389+0200 DEBUG ThreadId(14856) API_CALL fgt_get_pressureChannelCount()
Total number of pressure channels: 0
2025-05-29T10:25:57.389+0200 DEBUG ThreadId(14856) API_CALL fgt_get_sensorChannelCount()
Total number of sensor channels: 0
2025-05-29T10:25:57.389+0200 DEBUG ThreadId(14856) API_CALL fgt_get_TtlChannelCount()
Total number of TTL channels: 0
2025-05-29T10:25:57.389+0200 DEBUG ThreadId(14856) API_CALL fgt_get_valveChannelCount()
Total number of valve channels: 0
2025-05-29T10:25:57.389+0200 DEBUG ThreadId(14856) API_CALL fgt_get_controllersInfo()
Controller info at index: 0
<class 'Fluigent.SDK.fgt_CONTROLLER_INFO'>
SN: 13334
Firmware: 1.03
index: 1933664256
InstrType: F_OEM
2025-05-29T10:25:57.390+0200 DEBUG ThreadId(14856) API_CALL fgt_get_pressureChannelsInfo()
2025-05-29T10:25:57.390+0200 DEBUG ThreadId(14856) API_CALL fgt_get_sensorChannelsInfo()
2025-05-29T10:25:57.390+0200 DEBUG ThreadId(14856) API_CALL fgt_get_TtlChannelsInfo()
2025-05-29T10:25:57.390+0200 DEBUG ThreadId(14856) API_CALL fgt_get_valveChannelsInfo()
2025-05-29T10:25:57.391+0200 DEBUG ThreadId(14856) API_CALL fgt_close()
2025-05-29T10:25:57.397+0200 TRACE ThreadId(10940) FRAME_IN 04d8:0017:0000:3416 5a 73 83 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Best regard ,
Jérémie
Thank you for your work
Hello,
From the logs, the INT-OEM board responds as if there weren't any modules connected to it at all, so there is nothing that can be done on the SDK side. This indicates that your boards are damaged or improperly configured. Please contact support to discuss having them repaired or replaced.
Best regards, Ygor
Hello ,
Thank you very much for the support ! I will then continue with Fluigent ,
Best regard,