No sensor data on EG5120-C2FCZ-4L-A06GL

Hello NCD team. I recently deployed a EG5120-C2FCZ-4L-A06GL at one of our facilities.

I sent this unit plus 18 temperature/humidity sensors.

The gateway is powered on, connected to the network, and shows ready in the node-red flow, but I am not seeing any sensor data.

@ncd-io/node-red-enterprise-sensors is on v1.4.5, ncd-red-comm is on v2.0.3, and I’m using v3.1.5 for node-red.

I ssh’d into the device and ran ls -l /dev/ttyUSB* /dev/ttyACM*
dmesg | egrep -i “ttyUSB|ttyACM|cp210|ftdi|cdc_acm” | tail -n 30
pm2 logs node-red --lines 100

Here were the logs
1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: bad file descriptor] { disconnected: true } 1|node-red | [Error: Error: No such file or directory, cannot open /dev/ttymxc2] 1|node-red | [Error: Error: No such file or directory, cannot open /dev/ttymxc2] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port] 1|node-red | [Error: Error Resource temporarily unavailable Cannot lock port]

From these logs, I ran ls -l /dev/serial/by-id/
ls -l /dev/ttyUSB* /dev/ttyACM*
sudo lsof /dev/ttyUSB0

and got the following, UNIT LOAD ACTIVE SUB DESCRIPTION serial-getty@ttymxc1.service loaded active running Serial Getty on ttymxc1

I pasted this into chatgpt and got the following,

  • Your box has a serial console running on ttymxc1:
    serial-getty@ttymxc1.service active (running)
  • Your flow is also trying /dev/ttymxc2, which doesn’t exist.
  • Result: Node-RED can’t open the right port (wrong device), and if it ever tries ttymxc1 the getty will hold a lock → “Resource temporarily unavailable”.

Have you seen this issue before? I am not sure where to start with this and don’t want to make changes to the hardware without working with your team.

Thanks!

JSON FLOW

[
{
“id”: “659f98d7808980b1”,
“type”: “tab”,
“label”: “Flow 1”,
“disabled”: false,
“info”: “”,
“env”:
},
{
“id”: “505d75f60cd85c50”,
“type”: “ncd-gateway-node”,
“z”: “659f98d7808980b1”,
“name”: “”,
“connection”: “3a158777559a1790”,
“unknown_devices”: true,
“outputs”: 2,
“x”: 410,
“y”: 280,
“wires”: [
[
“94748832242929fd”
],
[
“94748832242929fd”
]
]
},
{
“id”: “94748832242929fd”,
“type”: “debug”,
“z”: “659f98d7808980b1”,
“name”: “debug 1”,
“active”: true,
“tosidebar”: true,
“console”: false,
“tostatus”: false,
“complete”: “false”,
“statusVal”: “”,
“statusType”: “auto”,
“x”: 600,
“y”: 280,
“wires”:
},
{
“id”: “2738f800fdccafee”,
“type”: “ncd-wireless-node”,
“z”: “659f98d7808980b1”,
“name”: “”,
“connection”: “3a158777559a1790”,
“config_comm”: “3a158777559a1790”,
“addr”: “”,
“sensor_type”: “”,
“auto_config”: “”,
“on_the_fly_enable”: “”,
“node_id_delay_active”: “”,
“node_id”: 0,
“delay”: 300,
“form_network”: “”,
“destination_active”: “”,
“destination”: “0000FFFF”,
“power_active”: “”,
“power”: 4,
“retries_active”: “”,
“retries”: 10,
“pan_id_active”: “”,
“pan_id”: “7FFF”,
“change_detection_t3_active”: “”,
“change_enabled”: “”,
“change_pr”: “0”,
“change_interval”: “0”,
“change_detection_ch2_active”: “”,
“change_enabled_ch2”: “”,
“change_pr_ch2”: “0”,
“change_interval_ch2”: “0”,
“change_detection_ch3_active”: “”,
“change_enabled_ch3”: “”,
“change_pr_ch3”: “0”,
“change_interval_ch3”: “0”,
“current_calibration_13_active”: “”,
“current_calibration_13”: “60600”,
“current_calibration_13_dep_active”: “”,
“current_calibration_13_dep”: “60600”,
“current_calibration_ch2_19_active”: “”,
“current_calibration_ch2_19”: “60600”,
“current_calibration_ch2_19_dep_active”: “”,
“current_calibration_ch2_19_dep”: “60600”,
“current_calibration_ch3_28_active”: “”,
“current_calibration_ch3_28”: “60600”,
“current_calibration_ch3_28_dep_active”: “”,
“current_calibration_ch3_28_dep”: “60600”,
“bp_altitude”: “0”,
“bp_pressure”: “0”,
“bp_temp_prec”: “0”,
“bp_press_prec”: “0”,
“amgt_accel”: “0”,
“amgt_mag”: “0”,
“amgt_gyro”: “0”,
“impact_accel_active”: “”,
“impact_accel”: “0”,
“impact_data_rate_active”: “”,
“impact_data_rate”: “4”,
“impact_threshold_active”: “”,
“impact_threshold”: 25,
“impact_duration_active”: “”,
“impact_duration”: 1,
“activ_interr_x”: 1,
“activ_interr_y”: 2,
“activ_interr_z”: 4,
“activ_interr_op”: 8,
“force_calibration_co2_auto_config”: “”,
“force_calibration_co2”: 400,
“force_calibration_co2_535_active”: “”,
“temperature_offset_44_active”: “”,
“temperature_offset_44”: 4,
“filtering”: 0,
“data_rate”: 5,
“time_series”: 0,
“reading_type”: 1,
“mode_80_active”: “”,
“mode_80”: 0,
“periodic_check_rate_76_active”: “”,
“periodic_check_rate_76”: 60,
“ppm_threshold_76_active”: “”,
“ppm_threshold_76”: 100,
“alert_duration_76_active”: “”,
“alert_duration_76”: 0,
“sensor_boot_time_76_active”: “”,
“sensor_boot_time_76”: 30,
“measurement_mode_80_active”: “”,
“measurement_mode_80”: 0,
“on_request_timeout_80_active”: “”,
“on_request_timeout_80”: 1,
“sensor_boot_time_420ma_active”: “”,
“sensor_boot_time_420ma”: 0,
“sensor_boot_time_78_active”: “”,
“sensor_boot_time_78”: 0,
“deadband_80_active”: “”,
“deadband_80”: 0,
“auto_check_interval_88_active”: “”,
“auto_check_interval_88”: 60,
“auto_check_threshold_88_active”: “”,
“auto_check_threshold_88”: 20,
“filter_80_active”: “”,
“filter_80”: 0,
“output_data_rate_p1_81_active”: “”,
“output_data_rate_p1_81”: 0,
“output_data_rate_p2_81_active”: “”,
“output_data_rate_p2_81”: 0,
“sampling_duration_p1_81_active”: “”,
“sampling_duration_p1_81”: 0,
“sampling_duration_p2_81_active”: “”,
“sampling_duration_p2_81”: 0,
“led_alert_mode_84_active”: “”,
“led_alert_mode_84”: 0,
“led_accelerometer_threshold_84_active”: “”,
“led_accelerometer_threshold_84”: “”,
“led_velocity_threshold_84_active”: “”,
“led_velocity_threshold_84”: “”,
“set_rtc_101”: 0,
“set_rtc_202”: 0,
“current_calibration_82”: “”,
“current_calibration_82_active”: false,
“current_calibration_c1_80”: 178,
“current_calibration_c1_80_active”: “”,
“current_calibration_c2_80”: 178,
“current_calibration_c2_80_active”: “”,
“current_calibration_c3_80”: 178,
“current_calibration_c3_80_active”: “”,
“output_data_rate_101_active”: “”,
“output_data_rate_101”: 0,
“output_data_rate_101_m2_active”: “”,
“output_data_rate_101_m2”: 0,
“sampling_duration_101_active”: “”,
“sampling_duration_101”: 1,
“sampling_interval_101_active”: “”,
“sampling_interval_101”: 1,
“sampling_interval_202_active”: “”,
“sampling_interval_202”: 1,
“probe_boot_time_202_active”: “”,
“probe_boot_time_202”: 30,
“full_scale_range_101_active”: “”,
“full_scale_range_101”: 1,
“full_scale_range_101_m2_active”: “”,
“full_scale_range_101_m2”: 1,
“x_axis_101”: “”,
“y_axis_101”: “”,
“z_axis_101”: “”,
“low_pass_filter_80_active”: “”,
“low_pass_filter_80”: 0,
“high_pass_filter_80_active”: “”,
“high_pass_filter_80”: 0,
“low_pass_filter_81_p2_active”: “”,
“low_pass_filter_81_p2”: 0,
“high_pass_filter_81_p2_active”: “”,
“high_pass_filter_81_p2”: 0,
“roll_angle_threshold_47”: 0,
“roll_angle_threshold_47_active”: “”,
“pitch_angle_threshold_47”: 0,
“pitch_angle_threshold_47_active”: “”,
“accelerometer_state_108”: 0,
“accelerometer_state_108_active”: “”,
“clear_timers_108_active”: “”,
“clear_timers_108”: 7,
“accelerometer_threshold_108”: 10,
“accelerometer_threshold_108_active”: “”,
“debounce_time_108”: 10,
“debounce_time_108_active”: “”,
“input_one_108”: 1,
“input_one_108_active”: “”,
“input_two_108”: 1,
“input_two_108_active”: “”,
“input_three_108”: 0,
“input_three_108_active”: “”,
“counter_threshold_108”: 1000,
“counter_threshold_108_active”: “”,
“shift_one_108_active”: “”,
“shift_one_minutes_108”: 0,
“shift_one_hours_108”: 0,
“shift_two_108_active”: “”,
“shift_two_minutes_108”: 0,
“shift_two_hours_108”: 0,
“shift_three_108_active”: “”,
“shift_three_minutes_108”: 0,
“shift_three_hours_108”: 0,
“shift_four_108_active”: “”,
“shift_four_minutes_108”: 0,
“shift_four_hours_108”: 0,
“counter_threshold_35”: 50,
“counter_threshold_35_active”: “”,
“payload_length_80_active”: “”,
“payload_length_80”: 3,
“motion_threshold_46_active”: “”,
“motion_threshold_46”: 100,
“low_calibration_420ma_active”: “”,
“low_calibration_420ma”: 68805,
“mid_calibration_420ma_active”: “”,
“mid_calibration_420ma”: 68724,
“high_calibration_420ma_active”: “”,
“high_calibration_420ma”: 68714,
“thermocouple_type_23_active”: “”,
“thermocouple_type_23”: 0,
“debounce_time_2_active”: “”,
“debounce_time_2”: 10,
“stay_on_mode_539_active”: “”,
“stay_on_mode_539”: 0,
“baudrate_539_active”: “”,
“baudrate_539”: 9600,
“rx_timeout_539_active”: “”,
“rx_timeout_539”: 10,
“bootup_time_539_active”: “”,
“bootup_time_539”: 10,
“sensor_add_539_active”: “”,
“sensor_add_539”: 10,
“sub_device_type_539_active”: “”,
“sub_device_type_539”: 10,
“number_of_regs_to_rd_539_active”: “”,
“number_of_regs_to_rd_539”: 1,
“register_value_0_539”: 0,
“register_value_1_539”: 0,
“register_value_2_539”: 0,
“register_value_3_539”: 0,
“register_value_4_539”: 0,
“register_value_5_539”: 0,
“register_value_6_539”: 0,
“register_value_7_539”: 0,
“register_value_8_539”: 0,
“register_value_9_539”: 0,
“register_value_10_539”: 0,
“register_value_11_539”: 0,
“register_value_12_539”: 0,
“register_value_13_539”: 0,
“register_value_14_539”: 0,
“register_value_15_539”: 0,
“register_value_16_539”: 0,
“register_value_17_539”: 0,
“register_value_18_539”: 0,
“register_value_19_539”: 0,
“register_value_20_539”: 0,
“register_value_21_539”: 0,
“register_value_22_539”: 0,
“register_value_23_539”: 0,
“register_value_24_539”: 0,
“register_value_25_539”: 0,
“register_value_26_539”: 0,
“register_value_27_539”: 0,
“register_value_28_539”: 0,
“register_value_29_539”: 0,
“register_value_30_539”: 0,
“register_value_31_539”: 0,
“number_of_read_retries_539_active”: “”,
“number_of_read_retries_539”: 1,
“read_parameter_539_active”: “”,
“read_parameter_539”: 3,
“mode_110_active”: “”,
“mode_110”: 0,
“auto_raw_interval_110_active”: “”,
“auto_raw_interval_110”: 0,
“auto_raw_destination_110_active”: “”,
“auto_raw_destination_110”: “0000FFFF”,
“clear_probe_uptimers_110”: 0,
“smart_interval_110_active”: “”,
“smart_interval_110”: 0,
“smart_threshold_110_active”: “”,
“smart_threshold_110”: 1,
“smart_threshold_p2_110_active”: “”,
“smart_threshold_p2_110”: 1,
“rx485_timeout_1011_active”: “”,
“rx485_timeout_1011”: 0,
“mode_1011_active”: “”,
“mode_1011”: 0,
“auto_address_timeout_1011_active”: “”,
“auto_address_timeout_1011”: 0,
“mode_531_active”: “”,
“mode_531”: 0,
“max_range_58_active”: “”,
“max_range_58”: 0,
“calibration_58”: 0,
“factory_reset_tank_probe_58”: 0,
“push_notification_108_active”: “”,
“push_notification_108”: 0,
“push_notification_33_active”: “”,
“push_notification_33”: 0,
“clear_counter_33”: 0,
“input_two_33”: 1,
“input_two_33_active”: “”,
“stop_bit_1011_active”: “”,
“stop_bit_1011”: 0,
“set_parity_1011_active”: “”,
“set_parity_1011”: 0,
“reboot_1011”: 0,
“fly_interval_110_active”: “”,
“fly_interval_110”: 60,
“scd_skip_samples_44_active”: “”,
“scd_skip_samples_44”: 1,
“sps_skip_samples_32_active”: “”,
“sps_skip_samples_32”: 1,
“sampling_interval_110_active”: “”,
“sampling_interval_110”: 1,
“deactivate_activate_accelero_108_active”: “”,
“deactivate_activate_accelero_108”: 0,
“reset_timeout_108_active”: “”,
“reset_timeout_108”: 60,
“reset_mode_to_disabled_108_active”: “”,
“reset_mode_to_disabled_108”: 0,
“transmission_interval_108_active”: false,
“rtc_108”: 0,
“change_otf_interval_active”: “”,
“change_otf_interval”: 60,
“sampling_rate_duration_active”: “”,
“sampling_rate_duration”: 30,
“stop_sampling”: 0,
“extend_otf_timeout”: 0,
“end_cfg”: 0,
“rtd_type_39_active”: “”,
“rtd_type_39”: 0,
“rtd_range_39_active”: “”,
“rtd_range_39”: 0,
“pressure_sensor_fs_ch1_118_active”: “”,
“pressure_sensor_fs_ch1_118”: 0,
“pressure_sensor_fs_ch2_118_active”: “”,
“pressure_sensor_fs_ch2_118”: 0,
“auto_check_interval_118_active”: “”,
“auto_check_interval_118”: 0,
“press_auto_check_percent_118_active”: “”,
“press_auto_check_percent_118”: 0,
“temp_auto_check_percent_118_active”: “”,
“temp_auto_check_percent_118”: 0,
“raw_length_97_active”: “”,
“raw_length_97”: 3,
“raw_timeout_97_active”: “”,
“raw_timeout_97”: 0,
“fly_rate_97_active”: “”,
“fly_rate_97”: 0,
“boot_up_time_97_active”: “”,
“boot_up_time_97”: 0,
“filter_thermocouple_active”: “”,
“filter_thermocouple”: 0,
“cold_junction_thermocouple_active”: “”,
“cold_junction_thermocouple”: 0,
“sample_resolution_thermocouple_active”: “”,
“sample_resolution_thermocouple”: 0,
“number_of_samples_thermocouple_active”: “”,
“number_of_samples_thermocouple”: 0,
“measurement_type_thermocouple_active”: “”,
“measurement_type_thermocouple”: 0,
“mode_97_active”: “”,
“mode_97”: 0,
“pressure_sensor_type_21_active”: “”,
“pressure_sensor_type_21”: 0,
“thermocouple_type_112_active”: “”,
“thermocouple_type_112”: 0,
“filter_thermocouple_112_active”: “”,
“filter_thermocouple_112”: 0,
“cold_junction_thermocouple_112_active”: “”,
“cold_junction_thermocouple_112”: 0,
“sample_resolution_thermocouple_112_active”: “”,
“sample_resolution_thermocouple_112”: 0,
“number_of_samples_thermocouple_112_active”: “”,
“number_of_samples_thermocouple_112”: 0,
“operation_mode_thermocouple_112_active”: “”,
“operation_mode_thermocouple_112”: 0,
“measurement_type_thermocouple_112_active”: “”,
“measurement_type_thermocouple_112”: 0,
“enable_rpm_calculate_status_110_active”: “”,
“enable_rpm_calculate_status_110”: 0,
“odr_p1_110_active”: “”,
“odr_p1_110”: 0,
“odr_p2_110_active”: “”,
“odr_p2_110”: 0,
“sampling_duration_p1_110_active”: “”,
“sampling_duration_p1_110”: 1,
“sampling_duration_p2_110_active”: “”,
“sampling_duration_p2_110”: 1,
“low_pass_filter_p1_110_active”: “”,
“low_pass_filter_p1_110”: 0,
“low_pass_filter_p2_110_active”: “”,
“low_pass_filter_p2_110”: 0,
“high_pass_filter_p1_110_active”: “”,
“high_pass_filter_p1_110”: 0,
“high_pass_filter_p2_110_active”: “”,
“high_pass_filter_p2_110”: 0,
“acceleration_interrupt_threshold_84_active”: “”,
“acceleration_interrupt_threshold_84”: 0,
“motion_detect_threshold_p1_110_active”: “”,
“motion_detect_threshold_p1_110”: 0,
“motion_detect_threshold_p2_110_active”: “”,
“motion_detect_threshold_p2_110”: 0,
“quality_of_service_108_active”: false,
“max_raw_sample_110_active”: false,
“always_on_120”: false,
“sensor_reset_120”: false,
“sensor_calib_120”: false,
“alert_threshold_120_active”: false,
“alert_threshold_120”: “0”,
“wood_type_121_active”: false,
“quality_of_service_121_active”: false,
“enable_filtering_110_active”: false,
“fly_interval_108_active”: false,
“tare_the_scale_217”: false,
“weight_calib_217_active”: false,
“weight_calib_217”: “”,
“sample_rate_108_active”: false,
“pressure_limit_26_active”: false,
“pressure_limit_26”: “5”,
“auto_pressure_check_26_active”: false,
“fsr_420ma_active”: false,
“always_on_420ma_active”: false,
“pressure_sensor_range_AMS5812_21_active”: false,
“pressure_sensor_range_AMS5915_21_active”: false,
“motion_to_sampling_delay_110_active”: false,
“motion_to_sampling_delay_110”: “100”,
“max_num_motion_tx_delay_110_active”: false,
“max_num_motion_tx_delay_110”: “1”,
“enable_sensor_103_active”: false,
“output_data_rate_103_active”: false,
“enable_hp_filter_cutoff_103_active”: false,
“gyro_fsr_103_active”: false,
“adxl_fsr_103_active”: false,
“sampling_duration_103_active”: false,
“sampling_duration_103”: “20”,
“debounce_time_123”: “10”,
“debounce_time_123_active”: false,
“debounce_time_v10_108”: “10”,
“debounce_time_v10_108_active”: false,
“do_boot_time_270_active”: false,
“do_boot_time_270”: “1”,
“do_dev_id_270_active”: false,
“do_dev_id_1_270”: “0”,
“do_dev_id_2_270”: “0”,
“do_dev_id_3_270”: “0”,
“do_dev_id_4_270”: “0”,
“ec_boot_time_270_active”: false,
“ec_boot_time_270”: “1”,
“ec_dev_id_270_active”: false,
“ec_dev_id_1_270”: “0”,
“ec_dev_id_2_270”: “0”,
“ec_dev_id_3_270”: “0”,
“ec_dev_id_4_270”: “0”,
“push_notification_123_active”: false,
“clear_timers_123_active”: false,
“input_one_123_active”: false,
“input_two_123_active”: false,
“input_three_123_active”: false,
“oxygen_rate_211_active”: false,
“oxygen_rate_211”: “15”,
“oxygen_timeout_211_active”: false,
“oxygen_timeout_211”: “600”,
“oxygen_threshold_211_active”: false,
“oxygen_threshold_211”: “8”,
“interrupt_timeout_108_active”: false,
“interrupt_timeout_108”: “0”,
“acc_threshold_103_active”: false,
“acc_threshold_103”: “1”,
“start_sps30_fan_cleaning_53”: false,
“max_flow_541_active”: false,
“max_flow_541”: “1”,
“min_flow_541_active”: false,
“min_flow_541”: “1”,
“ct_constant_87_active”: false,
“ct_constant_87”: “0”,
“deadband_87_active”: false,
“deadband_87”: “0”,
“sampling_frequency_87_active”: false,
“raw_length_87_active”: false,
“sampling_interval_80_active”: false,
“sampling_interval_80”: “1”,
“volume_flow_unit_124_active”: false,
“total_1_flow_unit_124_active”: false,
“total_2_flow_unit_124_active”: false,
“total_3_flow_unit_124_active”: false,
“pressure_unit_124_active”: false,
“total_1_op_mode_124_active”: false,
“total_2_op_mode_124_active”: false,
“total_3_op_mode_124_active”: false,
“conductivity_unit_124_active”: false,
“reset_all_totalizers_124”: false,
“screen_control_108_active”: false,
“screen_on_time_108_active”: false,
“screen_on_time_108”: “5”,
“oxygen_boot_time_536_active”: false,
“oxygen_boot_time_536”: “3”,
“flow_boot_time_536_active”: false,
“flow_boot_time_536”: “3”,
“oxygen_dev_addr_536_active”: false,
“oxygen_addr_1_536”: “0”,
“oxygen_addr_2_536”: “0”,
“oxygen_addr_3_536”: “0”,
“oxygen_addr_4_536”: “0”,
“flow_dev_addr_536_active”: false,
“flow_addr_1_536”: “0”,
“flow_addr_2_536”: “0”,
“flow_addr_3_536”: “0”,
“flow_addr_4_536”: “0”,
“oxygen_rate_536_active”: false,
“oxygen_rate_536”: “2”,
“oxygen_timeout_536_active”: false,
“oxygen_timeout_536”: “5”,
“oxygen_max_threshold_s1_536_active”: false,
“oxygen_max_threshold_s1_536”: “12”,
“oxygen_max_threshold_s2_536_active”: false,
“oxygen_max_threshold_s2_536”: “12”,
“oxygen_max_threshold_s3_536_active”: false,
“oxygen_max_threshold_s3_536”: “12”,
“oxygen_max_threshold_s4_536_active”: false,
“oxygen_max_threshold_s4_536”: “12”,
“oxygen_min_threshold_s1_536_active”: false,
“oxygen_min_threshold_s1_536”: “12”,
“oxygen_min_threshold_s2_536_active”: false,
“oxygen_min_threshold_s2_536”: “12”,
“oxygen_min_threshold_s3_536_active”: false,
“oxygen_min_threshold_s3_536”: “12”,
“oxygen_min_threshold_s4_536_active”: false,
“oxygen_min_threshold_s4_536”: “12”,
“clear_timers_119_active”: false,
“push_notification_119_active”: false,
“enable_axis_119_active”: false,
“raw_acc_data_119_active”: false,
“odr_p1_543_active”: false,
“full_scale_range_543_active”: false,
“x”: 440,
“y”: 500,
“wires”: [

]
},
{
“id”: “3a158777559a1790”,
“type”: “ncd-gateway-config”,
“name”: “”,
“comm_type”: “serial”,
“ip_address”: “”,
“tcp_port”: “2101”,
“tcp_inactive_timeout_active”: false,
“tcp_inactive_timeout”: “”,
“port”: “/dev/ttymxc2”,
“baudRate”: “115200”,
“pan_id”: “7FFF”,
“rssi”: true
}
]

Additionally, the sensors are confirmed powered on. I tried new batteries just to be sure, but I am getting a red led when pressing the c button. I confirmed the sensors are not stuck in configuration by having the tech press the r button on the units. I have another ncd-lite-gateway in this facility as well, but I don’t see the sensors picking up on that gateway either.

Hi,

I have never seen /dev/ttymxc2 not exist. That is the real name of the serial port being used to talk to the wireless network. These errors primarily indicate something on the Gateway is locking the port, but the no such file or directory is entirely new. Have there been any changes or customizations to the gateway through the command line or through the web configuration dashboard on port 80 of the gateway?

Can you run the command:
ls -l /dev | grep ‘ttymxc’
and let me know what your system responds with?

Can you power down the Gateway, wait for 5 seconds and boot it back up to see if this issue persists?

Run the command
ls -l /dev | grep ‘ttymxc’
again to see if anything changes.

Hello Jacob. I have not made any major changes to the gateway, the only changes I make when onboarding a new gateway is to swap the wifi client from AP to Client and hiding the SSID in the VAP settings. I also enable SSH by enabling it via the toggle and adding port 22 to an inbound accept in the firewall rules. Everything else stays the same.

I ran the command prior to physically shutting the unit down and this was the output

ncdio@NCD-Edge-149E:~$ ls -l /dev | grep "ttymxc"
lrwxrwxrwx 1 root root          12 Oct 14 17:32 ttyCOM1 -> /dev/ttymxc2
lrwxrwxrwx 1 root root          12 Oct 14 17:32 ttyCOM2 -> /dev/ttymxc0
crw-rw---- 1 root dialout 207,  16 Oct 14 17:32 ttymxc0
crw--w---- 1 root tty     207,  17 Oct 14 17:32 ttymxc1
crw-rw---- 1 root dialout 207,  18 Oct 14 17:34 ttymxc2
crw-rw---- 1 root dialout 207,  19 Oct 14 17:32 ttymxc3

After the unit was powered down for 10 seconds and then powered on again, I re-ran the command you shared and the output was similar.



lrwxrwxrwx 1 root root          12 Oct 14 17:55 ttyCOM1 -> /dev/ttymxc2
lrwxrwxrwx 1 root root          12 Oct 14 17:55 ttyCOM2 -> /dev/ttymxc0
crw-rw---- 1 root dialout 207,  16 Oct 14 17:55 ttymxc0
crw--w---- 1 root tty     207,  17 Oct 14 17:55 ttymxc1
crw-rw---- 1 root dialout 207,  18 Oct 14 17:55 ttymxc2
crw-rw---- 1 root dialout 207,  19 Oct 14 17:55 ttymxc3

I can see that /dev/ttymxc2 does indeed exist and node red PID 1953 is running on it via

node-red 1953 ncdio 23uW CHR 207,18 0t0 16037 /dev/ttymxc2

I think it’s odd that I can’t see these sensors streaming any data to the other enterprise-lite gateway I have installed in this facility. Is there a chance they’re clashing between the units?

Its unlikely having two gateways at a single site would have a negative effect on the wireless fidelity as, if left at default settings of the wireless network, the gateways will act as repeaters for each other. If you’ve configured a destination address into the sensors or changed the network ID of the sensors/gateways there would be minimal interaction between the two gateways and the sensors would only report to the associated gateway.

The response to the ls command looks like what we would expect. The port is there. I’ve tried a few different ways to break the system to try and replicate, but I’ve found nothing that should happen out of the box.

If I open both ttymxc2 and ttyCOM1 at the same time I can get the error message:
[Error: Error Resource temporarily unavailable Cannot lock port].

Can you confirm that you don’t have a duplicate serial port configured on node-red? You can find these in the menu in the top right (three horizontal lines) > Configuration nodes. Then look for the section title ncd-gateway-config on the right. It should look like this:

Additionally how does it respond if you change the serial port to /dev/ttyCOM1, update node-red, and then restart node-red?

Good morning Jacob,

After verifying that there is only one active ncd-gateway-config, I changed the configuration to use ttyCOM1, deployed the update, and restarted Node-RED via pm2 restart node-red. The gateway is showing as online and ready, although this was the same result earlier when using ttymxc2—it successfully sends its MAC address once it reaches the ready state. However, I’m still not seeing any sensor data being received by this gateway.

To clarify the current setup at this facility: there are over 30 sensors deployed across the FC, 18 of which are brand new. The original 12 sensors are reporting to the first gateway (an NCD Enterprise-Lite model, likely the former beta version), not the Robustel EG gateway. These sensors aren’t explicitly configured to point to a gateway; they broadcast data that is picked up automatically. The 18 new sensors were deployed using the same method.

Before deployment, the only configuration change made to each sensor was lowering the delay to 300 seconds via the web interface. I’ve attached a screenshot of the current configuration for reference.

Do you think it would be worthwhile to proceed with a factory reset? I’m puzzled as to why the 18 new sensors aren’t being detected by the older beta-model gateway, especially since sensors of the same model already in the building continue to report without issue. All of these sensors should be operating on the 900 MHz band.

So if it receives the modem mac message that indicates that serial communications are working. You can test if they’re still working at local level at any time by pressing the button just to the left of the Wireless Gateway node in node-red. This will switch its mode to and from Configuration mode and output the MAC address again.

Do you have an order number I can reference to look at the hardware of the sensors and the Gateway?

If no comms are received generally what I will recommend is to put the Gateway into configuration mode using the above mentioned button on the Wireless Gateway node.

Now open one of the sensors ~2-10 feet from the Gateway

Check that the power switch is set to either the battery or external power position depending on your sensor’s power source

press and release the reset button and then immediately hold the configuration button for 5-10 seconds.

What you should see while holding the configuration button is one of the LEDs on the sensor lighting up. If you don’t see an LED light up it could indicate an issue with the power on the sensor.

In Node-Red you should see a sensor_mode message with the value PGM.

If you receive the PGM message this indicates a misconfiguration between the sensor and the Gateway. Most likely in the network ID settings or the destination address. The configuration mode bypasses these settings and that’s why you would see a message in config mode, but not run mode.

You can perform a factory reset on the sensor by pressing and releasing the reset button and then immediately holding the configuration button for 15+ seconds. When a factory reset is performed and your gateway is in configuration mode you should see two sensor_mode messages. One with the mode of PUM and one with the mode of PGM. If you see these press reset on the sensor to resume run mode and put the gateway back into run mode by using the button on the Wireless Gateway node. At this point you should be seeing sensor data or a RUN message after the sensor reboots.

Feel free to send me a picture of the inside of one of your sensors and any findings you’ve made with the above tests.

Jacob, a very interesting development occurred. I had the tech in the FC unplug the unit last night after I left the office before we began troubleshooting today. He powered the unit back online at 9:39am and I did not receive any sensor data. Then, at random, at 11:08AM, all sensors began to report in…and have been continuously coming in at their expected interval. I’m very confused as to what could have possibly held the units up for this long, or better yet, what changed between yesterday, this morning, or even between 9:39am to 11:08am that caused the units to now be picked up.

The only thing still slightly odd is not seeing these units reporting into the original beta model gateway. As said in the above reply, these sensors were not configured in alpha station or the webgui to change their destination address to route to a specific gateway, and therefore should be getting picked up by both gateways. Both gateways are located in the same MDF using the same switch - different ports.

I’m wondering if there was an issue with the configuration of the sensors, and there was actually never anything wrong with the EG5120 gateway. Just still trying to root cause what changed to trigger them to check in, but I don’t know if we can ever determine that.

Are the two gateways within close proximity to each other? Is the original gateway’s library up to date? Its possible that its a newer sensor type that the node-red-enterprise-sensors library on the original gateway doesn’t support and it would come through the optionally enableable “Output data from Unknown Devices” output (edit a Wireless Gateway node and it will be the bottom option).

I would probably need order numbers or pictures of the inside of an old sensor and a new sensor to confirm its not a frequency mismatch.

On the old gateway are you monitoring for incoming data through a Wireless Gateway node connected to a debug node or what is the method of accepting this incoming data? If necessary to share flow files or proprietary information you can share them through the ? Help button in the lower right of our store.ncd.io site or email support@ncd.io. Just reference this community thread and it will get to me.