ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Sentinel PX4 ( NO GPs Lock and firmware problem )

    Sentinel
    3
    21
    1411
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Eric KatzfeyE
      Eric Katzfey ModalAI Team @Samer Jaradat
      last edited by

      @Samer-Jaradat Can you log into your drone with adb or ssh and enter the command px4-qshell gps status?

      1 Reply Last reply Reply Quote 0
      • Samer JaradatS
        Samer Jaradat
        last edited by

        voxl2:/$ px4-qshell gps status
        INFO [qshell] Send cmd: 'gps status'
        INFO [qshell] qshell return value timestamp: 2376085469, local time: 2376088441

        this is the result

        Eric KatzfeyE 1 Reply Last reply Reply Quote 0
        • Eric KatzfeyE
          Eric Katzfey ModalAI Team @Samer Jaradat
          last edited by

          @Samer-Jaradat Okay, that's not very exciting. How about px4-listener sensor_gps?

          1 Reply Last reply Reply Quote 0
          • Samer JaradatS
            Samer Jaradat
            last edited by

            voxl2:/$ px4-listener sensor_gps
            never published

            Eric KatzfeyE 1 Reply Last reply Reply Quote 0
            • Eric KatzfeyE
              Eric Katzfey ModalAI Team @Samer Jaradat
              last edited by

              @Samer-Jaradat Okay, so that confirms that GPS driver has not been able to communicate with the GPS unit. Can you try journalctl --no-pager -b -u voxl-px4 > /tmp/test.txt and then attach the test.txt file so I can see all of the PX4 status and debug messages?

              Samer JaradatS 1 Reply Last reply Reply Quote 0
              • Samer JaradatS
                Samer Jaradat
                last edited by

                voxl2:/$ journalctl --no-pager -b -u voxl-px4 > /tmp/test.txt
                voxl2:/$ journalctl --no-pager -b -u voxl-px4
                -- Logs begin at Thu 2023-03-02 12:58:02 UTC, end at Fri 2023-06-23 18:06:16 UTC. --
                Jun 23 16:24:45 m0054 systemd[1]: Starting px4...
                Jun 23 16:24:50 m0054 systemd[1]: Started px4.
                Jun 23 16:24:50 m0054 bash[1691]: Found DSP signature file
                Jun 23 16:24:50 m0054 bash[1691]: Running on M0054
                Jun 23 16:24:52 m0054 bash[1691]: INFO [qshell] Send cmd: 'icm42688p start -s'
                Jun 23 16:24:52 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 11522033, local time: 11523559
                Jun 23 16:24:54 m0054 bash[1691]: Starting Holybro magnetometer
                Jun 23 16:24:54 m0054 bash[1691]: INFO [qshell] Send cmd: 'ist8310 start -R 10 -X -b 1'
                Jun 23 16:24:54 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 14344064, local time: 14345444
                Jun 23 16:24:54 m0054 bash[1691]: Starting Holybro LED driver
                Jun 23 16:24:54 m0054 bash[1691]: INFO [qshell] Send cmd: 'rgbled_ncp5623c start -X -b 1 -f 400 -a 56'
                Jun 23 16:24:54 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 14401400, local time: 14402064
                Jun 23 16:24:54 m0054 bash[1691]: INFO [px4] mlockall() enabled. PX4's virtual address space is locked into RAM.
                Jun 23 16:24:54 m0054 bash[1691]: INFO [px4] assuming working directory is rootfs, no symlinks needed.
                Jun 23 16:24:54 m0054 bash[1691]: ______ __ __ ___
                Jun 23 16:24:54 m0054 bash[1691]: | ___ \ \ \ / / / |
                Jun 23 16:24:54 m0054 bash[1691]: | |/ / \ V / / /| |
                Jun 23 16:24:54 m0054 bash[1691]: | __/ / \ / /
                | |
                Jun 23 16:24:54 m0054 bash[1691]: | | / /^\ \ ___ |
                Jun 23 16:24:54 m0054 bash[1691]: _| / / |_/
                Jun 23 16:24:54 m0054 bash[1691]: px4 starting.
                Jun 23 16:24:54 m0054 bash[1691]: INFO [px4] Calling startup script: /bin/sh /etc/modalai/voxl-px4.config 0
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread hpwork
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_hpwork with tid 83
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread lpwork
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_lpwork with tid 82
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread wkr_hrt
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_wkr_hrt with tid 81
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread client_sync_thread
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_client_sync_thread with tid 80
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread wq_manager
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_wq_manager with tid 79
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread qshell
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_qshell with tid 78
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: icm42688p start -s
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread wq_SPI1
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_wq_SPI1 with tid 76
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: *** SPI Device ID 0x26000a 2490378
                Jun 23 16:24:54 m0054 bash[1691]: INFO [uorb] Advertising remote topic sensor_accel
                Jun 23 16:24:54 m0054 bash[1691]: INFO [uorb] Marking DeviceNode(parameter_server_set_used_request) as advertised in process_remote_topic
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(parameter_server_set_used_response) as advertised in process_remote_topic
                Jun 23 16:24:54 m0054 bash[1691]: INFO [uorb] Advertising remote topic sensor_gyro
                Jun 23 16:24:54 m0054 bash[1691]: INFO [uorb] Advertising remote topic imu_server
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: on SPI bus 1
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: icm42688p #0 on SPI bus 1 (devid=0x0)
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI:
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: icm42688p start -s
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 11522033, current timestamp 11522034
                Jun 23 16:24:54 m0054 bash[1691]: INFO [uorb] Advertising remote topic qshell_retval
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(parameter_client_reset_request) as advertised in process_remote_topic
                Jun 23 16:24:54 m0054 bash[1691]: ERROR [muorb] SLPI: Cannot reset all parameters on client side
                Jun 23 16:24:54 m0054 bash[1691]: INFO [uorb] Marking DeviceNode(parameter_client_reset_response) as advertised in process_remote_topic
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Advertising remote topic parameter_update
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(parameter_client_set_value_request) as advertised in process_remote_topic
                Jun 23 16:24:54 m0054 bash[1691]: INFO [uorb] Marking DeviceNode(parameter_client_set_value_response) as advertised in process_remote_topic
                Jun 23 16:24:54 m0054 bash[1691]: INFO [logger] logger started (mode=all)
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: ist8310 start -R 10 -X -b 1
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread wq_I2C1
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_wq_I2C1 with tid 75
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: *** I2C Device ID 0x60e09 396809
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: ist8310 #0 on I2C bus 1 (external)
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: ist8310 start -R 10 -X -b 1
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 14344064, current timestamp 14344065
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: rgbled_ncp5623c start -X -b 1 -f 400 -a 56
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: *** I2C Device ID 0x7b3809 8075273
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: rgbled_ncp5623c #0 on I2C bus 1 (external)
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: rgbled_ncp5623c start -X -b 1 -f 400 -a 56
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 14401400, current timestamp 14401401
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: icp10100 start -I -b 5
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread wq_I2C5
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_wq_I2C5 with tid 74
                Jun 23 16:24:54 m0054 bash[1691]: INFO [muorb] SLPI: *** I2C Device ID 0x9c6329 1024INFO [qshell] Send cmd: 'icp10100 start -I -b 5'
                Jun 23 16:24:54 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 14434955, local time: 14435823
                Jun 23 16:24:55 m0054 bash[1691]: INFO [qshell] Send cmd: 'modalai_esc start'
                Jun 23 16:24:55 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 14487155, local time: 14487822
                Jun 23 16:24:55 m0054 bash[1691]: INFO [qshell] Send cmd: 'mixer load /dev/uart_esc quad_x.main.mix'
                Jun 23 16:24:55 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 14542181, local time: 14543199
                Jun 23 16:24:55 m0054 bash[1691]: INFO [qshell] Send cmd: 'voxlpm start -X -b 2'
                Jun 23 16:24:55 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 14585276, local time: 14586089
                Jun 23 16:24:55 m0054 bash[1691]: Starting Holybro GPS
                Jun 23 16:24:55 m0054 bash[1691]: INFO [qshell] Send cmd: 'gps start -d 7 -b 115200'
                Jun 23 16:24:55 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 14617107, local time: 14618038
                Jun 23 16:24:55 m0054 bash[1691]: INFO [qshell] Send cmd: 'px4io detect'
                Jun 23 16:24:55 m0054 bash[1691]: INFO [qshell] cmd returned with: -17
                Jun 23 16:24:55 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 14668509, local time: 14669837
                Jun 23 16:24:55 m0054 bash[1691]: ERROR [qshell] Command failed
                Jun 23 16:24:55 m0054 bash[1691]: M0065 not detected, starting Spektrum RC driver
                Jun 23 16:24:55 m0054 bash[1691]: INFO [qshell] Send cmd: 'spektrum_rc start -d 8'
                Jun 23 16:24:55 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 14706420, local time: 14708458
                Jun 23 16:24:56 m0054 bash[1691]: 9001
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: probe probe succeeded. data = 0x1 0x48
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: icp10100 #0 on I2C bus 5
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: icp10100 start -I -b 5
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 14434955, current timestamp 14434956
                Jun 23 16:24:56 m0054 bash[1691]: INFO [uorb] Advertising remote topic sensor_mag
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: modalai_esc start
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread wq_hp_default
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_wq_hp_default with tid 73
                Jun 23 16:24:56 m0054 bash[1691]: INFO [uorb] Advertising remote topic test_motor
                Jun 23 16:24:56 m0054 bash[1691]: INFO [uorb] Advertising remote topic sensor_baro
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: modalai_esc start
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 14487155, current timestamp 14487156
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Opened UART ESC device
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: mixer load /dev/uart_esc quad_x.main.mix
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread wq_rate_ctrl
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_wq_rate_ctrl with tid 71
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: mixer load /dev/uart_esc quad_x.main.mix
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 14542181, current timestamp 14542182
                Jun 23 16:24:56 m0054 bash[1691]: INFO [uorb] Advertising remote topic actuator_outputs
                Jun 23 16:24:56 m0054 bash[1691]: INFO [uorb] Advertising remote topic multirotor_motor_limits
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: voxlpm start -X -b 2
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread wq_I2C2
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_wq_I2C2 with tid 4169
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: *** I2C Device ID 0x784411 7881745
                Jun 23 16:24:56 m0054 bash[1691]: INFO [uorb] Advertising remote topic battery_status
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: voxlpm #0 on I2C bus 2 (external)
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: voxlpm start -X -b 2
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 14585276, current timestamp 14585277
                Jun 23 16:24:56 m0054 bash[1691]: INFO [uorb] Advertising remote topic power_monitor
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: gps start -d 7 -b 115200
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread gps
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_gps with tid 70
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: gps start -d 7 -b 115200
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 14617107, current timestamp 14617107
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: px4io detect
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: serial port fd 2
                Jun 23 16:24:56 m0054 bash[1691]: ERROR [muorb] SLPI: px4io read failed
                Jun 23 16:24:56 m0054 bash[1691]: ERROR [muorb] SLPI: px4io io_reg_get(0,0,1): data error -5
                Jun 23 16:24:56 m0054 bash[1691]: ERROR [muorb] SLPI: IO not installed
                Jun 23 16:24:56 m0054 bash[1691]: ERROR [muorb] SLPI: Detection attempt 2 failed
                Jun 23 16:24:56 m0054 bash[1691]: ERROR [muorb] SLPI: Detection attempt 1 failed
                Jun 23 16:24:56 m0054 bash[1691]: ERROR [muorb] SLPI: Detection attempt 0 failed
                Jun 23 16:24:56 m0054 bash[1691]: ERROR [muorb] SLPI: Failed to execute command: px4io detect
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 14668509, current timestamp 14668510
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: spektrum_rc start -d 8
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread spektrum_rc_main
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_spektrum_rc_main with tid 67
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: spektrum_rc start -d 8
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 14706420, current timestamp 14706421
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: sensors start
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread wq_nav_and_controllers
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_wq_nav_and_controllers with tid 66
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: sensors start
                Jun 23 16:24:56 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 15763186, current timestamp 15763187
                Jun 23 16:24:56 m0054 bash[1691]: INFO [uorb] Advertising remote topic vehicle_angINFO [qshell] Send cmd: 'sensors start'
                Jun 23 16:24:56 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 15763186, local time: 15766524
                Jun 23 16:24:56 m0054 bash[1691]: INFO [qshell] Send cmd: 'ekf2 start'
                Jun 23 16:24:56 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 15924808, local time: 15926148
                Jun 23 16:24:56 m0054 bash[1691]: INFO [qshell] Send cmd: 'mc_pos_control start'
                Jun 23 16:24:56 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 15977526, local time: 15978641
                Jun 23 16:24:56 m0054 bash[1691]: INFO [qshell] Send cmd: 'mc_att_control start'
                Jun 23 16:24:56 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 16020779, local time: 16021799
                Jun 23 16:24:56 m0054 bash[1691]: INFO [qshell] Send cmd: 'mc_rate_control start'
                Jun 23 16:24:56 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 16076014, local time: 16077458
                Jun 23 16:24:56 m0054 bash[1691]: INFO [qshell] Send cmd: 'mc_hover_thrust_estimator start'
                Jun 23 16:24:56 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 16115582, local time: 16117055
                Jun 23 16:24:56 m0054 bash[1691]: INFO [qshell] Send cmd: 'land_detector start multicopter'
                Jun 23 16:24:56 m0054 bash[1691]: INFO [qshell] qshell return value timestamp: 16150880, local time: 16151957
                Jun 23 16:24:57 m0054 bash[1691]: ular_acceleration
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic vehicle_angular_velocity
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Creating qurt thread wq_INS0
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Successfully created px4 task PX4_wq_INS0 with tid 65
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic vehicle_imu
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic vehicle_imu_status
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic sensors_status_imu
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic vehicle_acceleration
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic vehicle_air_data
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic sensor_selection
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic sensor_combined
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: ekf2 start
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: ekf2 start
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 15924808, current timestamp 15924809
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic ekf2_timestamps
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: mc_pos_control start
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: mc_pos_control start
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 15977526, current timestamp 15977527
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: mc_att_control start
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: mc_att_control start
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 16020779, current timestamp 16020780
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: mc_rate_control start
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: mc_rate_control start
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 16076014, current timestamp 16076015
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: mc_hover_thrust_estimator start
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: mc_hover_thrust_estimator start
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 16115582, current timestamp 16115583
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: qshell gotten: land_detector start multicopter
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Ok executing command: land_detector start multicopter
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Sending qshell retval with timestamp 16150880, current timestamp 16150881
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic vehicle_land_detected
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: 16481861: reset position to last known position
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: 16481861: reset velocity to zero
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic vehicle_local_position
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic vehicle_odometry
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic estimator_states
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic estimator_status
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic estimator_status_flags
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic estimator_innovations
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic estimator_innovation_test_ratios
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic estimator_innovation_variances
                Jun 23 16:24:57 m0054 bash[1691]: INFO [dataman] Unknown restart, data manager file '/data/px4/dataman' size is 11798680 bytes
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Advertising remote topic position_setpoint_triplet
                Jun 23 16:24:57 m0054 bash[1691]: INFO [commander] LED: open /dev/led0 failed (22)
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Advertising remote topic led_control
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Advertising remote topic tune_control
                Jun 23 16:24:57 m0054 bash[1691]: INFO [PreFlightCheck] Failed EKF health preflight check while waiting for filter to settle
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Advertising remote topic vehicle_control_mode
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Advertising remote topic vehicle_status
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Advertising remote topic actuator_armed
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Advertising remote topic commander_state
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic rate_ctrl_status
                Jun 23 16:24:57 m0054 bash[1691]: INFO [uorb] Advertising remote topic actuator_controls_0
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Advertising remote topic vehicle_status_flags
                Jun 23 16:24:57 m0054 bash[1691]: INFO [muorb] SLPI: Advertising remote topic vehicle_command
                voxl2:/$ /tmp/test.txt
                bash: /tmp/test.txt: Permission denied

                Eric KatzfeyE 1 Reply Last reply Reply Quote 0
                • Samer JaradatS
                  Samer Jaradat @Eric Katzfey
                  last edited by

                  @Eric-Katzfey

                  no text file created

                  tomT 1 Reply Last reply Reply Quote 0
                  • tomT
                    tom admin @Samer Jaradat
                    last edited by

                    @Samer-Jaradat do cat /tmp/test.txt, it probably was created

                    tomT Samer JaradatS 2 Replies Last reply Reply Quote 0
                    • tomT
                      tom admin @tom
                      last edited by tom

                      @tom Or outside of the adb shell do adb pull /tmp/test.txt . to pull it off and upload that file here

                      1 Reply Last reply Reply Quote 0
                      • Eric KatzfeyE
                        Eric Katzfey ModalAI Team @Samer Jaradat
                        last edited by

                        @Samer-Jaradat said in Sentinel PX4 ( NO GPs Lock and firmware problem ):

                        gps start -d 7 -b 115200

                        Please change the line qshell gps start -d 7 -b 115200 in /etc/modalai/voxl-px4.config to qshell gps start and see if that solves the GPS issue,

                        Samer JaradatS 2 Replies Last reply Reply Quote 0
                        • Samer JaradatS
                          Samer Jaradat @tom
                          last edited by

                          @tom

                          no txt file created after do this command on my computer / tmp

                          Eric KatzfeyE 1 Reply Last reply Reply Quote 0
                          • Eric KatzfeyE
                            Eric Katzfey ModalAI Team @Samer Jaradat
                            last edited by

                            @Samer-Jaradat Don't worry about the text file. You pasted the output directly into the forum so that's just as good.

                            1 Reply Last reply Reply Quote 0
                            • Samer JaradatS
                              Samer Jaradat @Eric Katzfey
                              last edited by

                              @Eric-Katzfey
                              adb shell creat this result after do this command.

                              voxl2:/$ /etc/modalai/voxl-px4.config
                              bash: /etc/modalai/voxl-px4.config: Permission denied

                              Eric KatzfeyE 1 Reply Last reply Reply Quote 0
                              • Eric KatzfeyE
                                Eric Katzfey ModalAI Team @Samer Jaradat
                                last edited by

                                @Samer-Jaradat Don't try to execute that file directly. It is used by px4. Just edit it, save it, and then reboot your drone.

                                Samer JaradatS 1 Reply Last reply Reply Quote 0
                                • Samer JaradatS
                                  Samer Jaradat @Eric Katzfey
                                  last edited by

                                  @Eric-Katzfey

                                  OK, but i don't know how we can edit it,
                                  please tell me how i can edit it and save it.

                                  Eric KatzfeyE 1 Reply Last reply Reply Quote 0
                                  • Eric KatzfeyE
                                    Eric Katzfey ModalAI Team @Samer Jaradat
                                    last edited by

                                    @Samer-Jaradat Please find a tutorial online about using the program vi to edit files in Linux.

                                    Samer JaradatS 2 Replies Last reply Reply Quote 0
                                    • Samer JaradatS
                                      Samer Jaradat @Eric Katzfey
                                      last edited by

                                      @Eric-Katzfey

                                      when i open vi program this is the result as shown on my pc i cant show the command that need to editing

                                      GNU nano 2.9.3 /etc/modalai/voxl-px4.config

                                      #!/bin/sh

                                      PX4 commands need the 'px4-' prefix in bash.

                                      (px4-alias.sh is expected to be in the PATH)11111.jpg

                                      . px4-alias.sh

                                      Figure out what platform we are running on.

                                      Eventually there will be a utility called voxl-platform that will

                                      return the platform tag or an error code. This utility is not yet

                                      ubiquitous so it may be that it isn't available. Trying to call a

                                      non existent program will generate an error code by the OS. If the

                                      program exists and doesn't return an error code then use the results.

                                      PLATFORM=/usr/bin/voxl-platform 2> /dev/null
                                      RETURNCODE=$?
                                      if [ $RETURNCODE -ne 0 ]; then
                                      # If we couldn't get the platform from the voxl-platform utility then check
                                      # /etc/version to see if there is an M0052 substring in the version string.$
                                      # then we assume that we are on M0052. Otherwise assume M0054.
                                      VERSIONSTRING=$(</etc/version)
                                      [ Read 271 lines ]
                                      ^G Get Help ^O Write Out ^W Where Is ^K Cut Text ^J Justify ^C Cur Pos
                                      ^X Exit ^R Read File ^\ Replace ^U Uncut Text^T To Linter ^_ Go To Line

                                      1 Reply Last reply Reply Quote 0
                                      • Samer JaradatS
                                        Samer Jaradat @Eric Katzfey
                                        last edited by

                                        @Eric-Katzfey
                                        this is file open when i use vi program ( no command qshell gps start -d 7 -b 115200 in script file )
                                        this is all file command :

                                        #!/bin/sh

                                        PX4 commands need the 'px4-' prefix in bash.

                                        (px4-alias.sh is expected to be in the PATH)

                                        . px4-alias.sh

                                        Figure out what platform we are running on.

                                        Eventually there will be a utility called voxl-platform that will

                                        return the platform tag or an error code. This utility is not yet

                                        ubiquitous so it may be that it isn't available. Trying to call a

                                        non existent program will generate an error code by the OS. If the

                                        program exists and doesn't return an error code then use the results.

                                        PLATFORM=/usr/bin/voxl-platform 2> /dev/null
                                        RETURNCODE=$?
                                        if [ $RETURNCODE -ne 0 ]; then
                                        # If we couldn't get the platform from the voxl-platform utility then check
                                        # then we assume that we are on M0052. Otherwise assume M0054.
                                        VERSIONSTRING=$(</etc/version)
                                        M0052SUBSTRING="M0052"
                                        if [[ "$VERSIONSTRING" == "$M0052SUBSTRING" ]]; then
                                        PLATFORM="M0052"
                                        else
                                        PLATFORM="M0054"
                                        fi
                                        fi

                                        We can only run on M0052 or M0054 so exit with error if that is not the case

                                        if [ $PLATFORM = "M0052" ]; then
                                        /bin/echo "Running on M0052"
                                        if [ "$RC" == "CRSF" ]; then
                                        /bin/echo "Error, crossfire not supported on M0052!"
                                        exit 0
                                        fi
                                        elif [ $PLATFORM = "M0054" ]; then
                                        /bin/echo "Running on M0054"
                                        else
                                        /bin/echo "Error, cannot determine platform!"
                                        exit 0
                                        fi

                                        uorb start
                                        muorb start

                                        In order to just exit after starting the uorb / muorb modules define

                                        the environment variable MINIMAL_PX4. (e.g. export MINIMAL_PX4=1)

                                        This is useful for testing / debug where you may want to start drivers

                                        and modules manually from the px4 command shell

                                        if [ ! -z $MINIMAL_PX4 ]; then
                                        /bin/echo "Running minimal script"
                                        exit 0
                                        fi

                                        #!/bin/sh

                                        PX4 commands need the 'px4-' prefix in bash.

                                        (px4-alias.sh is expected to be in the PATH)

                                        . px4-alias.sh

                                        Figure out what platform we are running on.

                                        Eventually there will be a utility called voxl-platform that will

                                        return the platform tag or an error code. This utility is not yet

                                        ubiquitous so it may be that it isn't available. Trying to call a

                                        non existent program will generate an error code by the OS. If the

                                        program exists and doesn't return an error code then use the results.

                                        PLATFORM=/usr/bin/voxl-platform 2> /dev/null
                                        RETURNCODE=$?
                                        if [ $RETURNCODE -ne 0 ]; then
                                        # If we couldn't get the platform from the voxl-platform utility then check
                                        # then we assume that we are on M0052. Otherwise assume M0054.
                                        VERSIONSTRING=$(</etc/version)
                                        M0052SUBSTRING="M0052"
                                        if [[ "$VERSIONSTRING" == "$M0052SUBSTRING" ]]; then
                                        PLATFORM="M0052"
                                        else
                                        PLATFORM="M0054"
                                        fi
                                        fi

                                        We can only run on M0052 or M0054 so exit with error if that is not the case

                                        if [ $PLATFORM = "M0052" ]; then
                                        /bin/echo "Running on M0052"
                                        if [ "$RC" == "CRSF" ]; then
                                        /bin/echo "Error, crossfire not supported on M0052!"
                                        exit 0
                                        fi
                                        elif [ $PLATFORM = "M0054" ]; then
                                        /bin/echo "Running on M0054"
                                        else
                                        /bin/echo "Error, cannot determine platform!"
                                        exit 0
                                        fi

                                        uorb start
                                        muorb start

                                        In order to just exit after starting the uorb / muorb modules define

                                        the environment variable MINIMAL_PX4. (e.g. export MINIMAL_PX4=1)

                                        This is useful for testing / debug where you may want to start drivers

                                        and modules manually from the px4 command shell

                                        if [ ! -z $MINIMAL_PX4 ]; then
                                        /bin/echo "Running minimal script"
                                        exit 0
                                        fi

                                        Sleep a little here. A lot happens when the uorb and muorb start

                                        and we need to make sure that it all completes successfully to avoid

                                        any possible race conditions.

                                        /bin/sleep 1

                                        IMU (accelerometer / gyroscope)

                                        Start this first because it gets the high rate interrupts coming in to the

                                        DSP. Without this the DSP will oversleep and miss critical timeouts.

                                        TODO: Why is that the case?

                                        if [ "$IMU" == "ROTATE_IMU_YAW_180" ]; then
                                        /bin/echo "Starting IMU driver with yaw 180 rotation"
                                        qshell icm42688p start -s -R 4
                                        else
                                        qshell icm42688p start -s
                                        fi

                                        /bin/sleep 1

                                        Load in all of the parameters that have been saved in the file

                                        param load

                                        Start logging and use timestamps for log files when possible.

                                        Add the "-e" option to start logging immediately. Default is

                                        to log only when armed

                                        logger start -t

                                        We do not change the value of SYS_AUTOCONFIG but if it does not

                                        show up as used then it is not reported to QGC and we get a

                                        #!/bin/sh

                                        PX4 commands need the 'px4-' prefix in bash.

                                        (px4-alias.sh is expected to be in the PATH)

                                        . px4-alias.sh

                                        Figure out what platform we are running on.

                                        Eventually there will be a utility called voxl-platform that will

                                        return the platform tag or an error code. This utility is not yet

                                        ubiquitous so it may be that it isn't available. Trying to call a

                                        non existent program will generate an error code by the OS. If the

                                        program exists and doesn't return an error code then use the results.

                                        PLATFORM=/usr/bin/voxl-platform 2> /dev/null
                                        RETURNCODE=$?
                                        if [ $RETURNCODE -ne 0 ]; then
                                        # If we couldn't get the platform from the voxl-platform utility then check
                                        # then we assume that we are on M0052. Otherwise assume M0054.
                                        VERSIONSTRING=$(</etc/version)
                                        M0052SUBSTRING="M0052"
                                        if [[ "$VERSIONSTRING" == "$M0052SUBSTRING" ]]; then
                                        PLATFORM="M0052"
                                        else
                                        PLATFORM="M0054"
                                        fi
                                        fi

                                        We can only run on M0052 or M0054 so exit with error if that is not the case

                                        if [ $PLATFORM = "M0052" ]; then
                                        /bin/echo "Running on M0052"
                                        if [ "$RC" == "CRSF" ]; then
                                        /bin/echo "Error, crossfire not supported on M0052!"
                                        exit 0
                                        fi
                                        elif [ $PLATFORM = "M0054" ]; then
                                        /bin/echo "Running on M0054"
                                        else
                                        /bin/echo "Error, cannot determine platform!"
                                        exit 0
                                        fi

                                        uorb start
                                        muorb start

                                        In order to just exit after starting the uorb / muorb modules define

                                        the environment variable MINIMAL_PX4. (e.g. export MINIMAL_PX4=1)

                                        This is useful for testing / debug where you may want to start drivers

                                        and modules manually from the px4 command shell

                                        if [ ! -z $MINIMAL_PX4 ]; then
                                        /bin/echo "Running minimal script"
                                        exit 0
                                        fi

                                        Sleep a little here. A lot happens when the uorb and muorb start

                                        and we need to make sure that it all completes successfully to avoid

                                        any possible race conditions.

                                        /bin/sleep 1

                                        IMU (accelerometer / gyroscope)

                                        Start this first because it gets the high rate interrupts coming in to the

                                        DSP. Without this the DSP will oversleep and miss critical timeouts.

                                        TODO: Why is that the case?

                                        if [ "$IMU" == "ROTATE_IMU_YAW_180" ]; then
                                        /bin/echo "Starting IMU driver with yaw 180 rotation"
                                        qshell icm42688p start -s -R 4
                                        else
                                        qshell icm42688p start -s
                                        fi

                                        /bin/sleep 1

                                        Load in all of the parameters that have been saved in the file

                                        param load

                                        Start logging and use timestamps for log files when possible.

                                        Add the "-e" option to start logging immediately. Default is

                                        to log only when armed

                                        logger start -t

                                        We do not change the value of SYS_AUTOCONFIG but if it does not

                                        show up as used then it is not reported to QGC and we get a

                                        missing parameter error.

                                        param touch SYS_AUTOCONFIG

                                        Start all of the device drivers on DSP

                                        Magnetometer

                                        if [ "$GPS" == "MATEK" ]; then
                                        # Use this line for the magnetometer in the Matek Systems M8Q-5883 module
                                        /bin/echo "Starting Mateksys M8Q-5883 magnetometer"
                                        qshell qmc5883l start -R 10 -X -b 1
                                        elif [ "$GPS" == "HERE3" ]; then
                                        # Use this line for the magnetometer in the Here3 GPS module
                                        /bin/echo "Starting Here3 ak09916 magnetometer"
                                        qshell ak09916 start -R 2 -X
                                        else
                                        # Use this line for the magnetometer in the Holybro GPS module
                                        /bin/echo "Starting Holybro magnetometer"
                                        qshell ist8311 start -R 10 -X -b 1
                                        fi

                                        LED driver for the Pixhawk 4 GPS module

                                        Older units have i2c address 0x39 (57) and newer ones 0x38 (56)

                                        M0054 only supports the newer one. M0052 can support either.

                                        if [ $PLATFORM = "M0052" ]; then
                                        qshell rgbled_ncp5623c start -X -b 1 -f 400 -a 57
                                        fi
                                        102,18 33%
                                        # Use this line for the magnetometer in the Here3 GPS module
                                        /bin/echo "Starting Here3 ak09916 magnetometer"
                                        qshell ak09916 start -R 2 -X
                                        else
                                        # Use this line for the magnetometer in the Holybro GPS module
                                        /bin/echo "Starting Holybro magnetometer"
                                        qshell ist8310 start -R 10 -X -b 1
                                        fi

                                        LED driver for the Pixhawk 4 GPS module

                                        Older units have i2c address 0x39 (57) and newer ones 0x38 (56)

                                        M0054 only supports the newer one. M0052 can support either.

                                        if [ $PLATFORM = "M0052" ]; then
                                        qshell rgbled_ncp5623c start -X -b 1 -f 400 -a 57
                                        fi
                                        if [ "$GPS" == "HOLYBRO" ]; then
                                        /bin/echo "Starting Holybro LED driver"
                                        qshell rgbled_ncp5623c start -X -b 1 -f 400 -a 56
                                        elif [ "$GPS" == "HERE3" ]; then
                                        # Use this line for the Here3 GPS module LED controller
                                        /bin/echo "Starting Here3 LED"
                                        qshell rgbled start -X -f 400
                                        fi

                                        Barometer

                                        qshell icp10100 start -I -b 5

                                        ESC driver

                                        We start this even if there is a PX4IO module. If there is

                                        a PX4IO (M0065) module it will be plugged into the RC port

                                                                                                  117,1         39%
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • Samer JaradatS
                                          Samer Jaradat @Eric Katzfey
                                          last edited by

                                          @Eric-Katzfey
                                          this is our GPS status right now

                                          INFO [muorb] SLPI: qshell gotten: gps status
                                          INFO [muorb] SLPI: Main GPS
                                          INFO [muorb] SLPI: protocol: UBX
                                          INFO [muorb] SLPI: status: NOT OK, port: 6, baudrate: 0
                                          INFO [muorb] SLPI: sat info: disabled
                                          INFO [muorb] SLPI: rate reading: 0 B/s
                                          INFO [muorb] SLPI: Ok executing command: gps status
                                          INFO [muorb] SLPI: Sending qshell retval with timestamp 855143719, current timestamp 855143720
                                          INFO [qshell] qshell return value timestamp: 855143719, local time: 855147735
                                          pxh>

                                          1 Reply Last reply Reply Quote 0
                                          • Eric KatzfeyE Eric Katzfey referenced this topic on
                                          • First post
                                            Last post
                                          Powered by NodeBB | Contributors