Chapter 9. Advanced troubleshooting
In the unlikely event of the user experiencing problems with the operation of the Fortimus, a diagnostics tool is available via the GNSS connector, which also acts as a terminal communications device via a Serial connection.
The user should first plug in the serial adapter to the GNSS connector, which is then attached to a 9-pin COM port on your PC/laptop (if a 9-pin COM port is not available, a serial-to-USB converter should be used instead and connected to an available USB port. Güralp recommend converters based on the FTDI chip-set.)
A connection is then made using a terminal emulator, such as minicom under Linux or PuTTY under Windows. The appropriate COM port should be entered in the "Serial line" box and the Speed should be set to 115,200.
Finally click the button and a terminal window will open, connected to the console of the Fortimus.
In the event of any operational issues, the Güralp Support Team may request you to interact with the console in order to diagnose and fix problems.
9.1 Reset all settings during boot phase
The Fortimus can be reset to its factory settings during its boot-up stage. This is useful in cases where:
the user is not able to communicate with the Fortimus via the LCD;
the user is not able to communicate with the Fortimus via a network connection;
the unit is not responsive; or
the unit does not appear in the Discovery software’s scan results.
To carry out a full system reset, connect to the terminal port via a serial connection (as described in Section 9). During the middle part of the boot phase, when the text @GURALP SYSTEMS and the firmware version number is displayed, key + . This causes all settings (except Username, Password and Bluetooth PIN) to revert to their factory default values, and the Fortimus will re-boot. It may be necessary to enter this key combination several times.
A typical boot log is shown below, identifying the stages where + will cause the Fortimus to reset and re-boot.
Do not press any buttons during the first phase of boot-up:
RomBOOT
SCKC_CR = 0xA, CKGR_MOR = 0x100FF0A, CKGR_PLLAR = 0x20FDD101, PMC_MCKR = 0x1122, PIO_PDSR = 0xF2357EB5
SCKC_CR = 0xA, CKGR_MOR = 0x100FF0A, CKGR_PLLAR = 0x20AC3F01, PMC_MCKR = 0x0202, PIO_PDSR = 0xF2357C25
AT91Bootstrap v3.8.10-1.guralp
NAND: ONFI flash detected
NAND: Manufacturer ID: 0x2C Chip ID: 0xDA
NAND: Page Bytes: 2048, Spare Bytes: 64
NAND: ECC Correctability Bits: 4, ECC Sector Bytes: 512
NAND: Disable On-Die ECC
NAND: Initialize PMECC params, cap: 4, sector: 512
NAND: Image: Copy 0x92000 bytes from 0xE000 to 0x2FA0E000
NAND: Done to load image
SCKC_CR = 0xA, CKGR_MOR = 0x100FF02, CKGR_PLLAR = 0x20AC3F01, PMC_MCKR = 0x0202, PIO_PDSR = 0xF2357C25
U-Boot v2019.10-1.guralp
CPU: SAMA5D36
External clock: 12.000 MHz
CPU clock: 528.000 MHz
Master clock: 132.000 MHz
DRAM: 512 MiB
NAND: 256 MiB
MMC: Atmel mci: 0, Atmel mci: 1
Loading Environment from NAND... OK
In: serial
Out: serial
Err: serial
Net: eth0: ethernet@f0028000
Total of 1 word(s) were the same
PHY 0x07: OUI = 0x0885, Model = 0x22, Rev = 0x02, 10baseT, HDX
Hit any key to stop autoboot: 0
NAND read: device 0 offset 0x5C0000, size 0x360000
3538944 bytes read: OK
Uncompressed size: 5009436 = 0x4C701C
crc32 for 21000000 ... 214c701b ==> b6ae61d4
Total of 2 word(s) were the same
Total of 1 word(s) were the same
## Starting application at 0x00300000 ...
(boot)Crash Info###
Number of crash left=0
(boot)Last crash time:1970-01-01T00:00:00.000
Board type set to: Fortimus
Recognised external clock: 12000000 Hz
SCKC_CR = 0xA, CKGR_MOR = 0x100FF02, CKGR_PLLAR = 0x20AC3F01, PMC_MCKR = 0x0202, MCK = 132000000 Hz
@GURALP SYSTEMS
Once the “@GURALP SYSTEMS” banner has been printed, keying + (at least once) will cause all settings (except Username, Password and Bluetooth PIN) to revert to their default values and cause the Fortimus to reboot.
v2.0-7642 by teamcity on 10:41:19 12-Nov-2019
Vecbase: 300000 CPUid: 410fc051 Cache: c5187d
PMT init
Unsafe to change DBGU clock while running
mux start SP 300fb4
FPU start
VFP Id=41023051
0.00 | -> init_dbgprint
0.00 | -> init_cmdutils
0.00 | -> init_pmt_dlg
0.00 | -> init_memdlg
0.00 | -> malloc_debug
0.00 | -> start_timer_interrupts
0.01 | -> rtc_init
RTC Time: 2019-11-13T10:05:37 UTC
0.01 | -> uart_start_ints
0.01 | -> init_arm_parse
0.01 | -> t_init_task_utils
0.01 | -> gpio_init
##### NORMAL INITIALISATION MODE #####
0.01 | -> unit_test_init
0.01 | -> init_devio
0.01 | -> init_usart
0.01 | -> init_devio_cmds
0.02 | -> rpc_init
0.02 | -> ram_init
0.02 | -> ram_exchange_init
0.03 | -> system_update_init
If your key-strokes have been recognised, Ctrl+R will be printed in the boot log, as shown below – once for each time your keystrokes were logged:
0.03 | -> i2c_init
i2c_configure( 0, 100000Hz )
Using pclk 33000000, cdiv 161, shift 0 => 100000
i2c_configure( 1, 100000Hz )
Using pclk 33000000, cdiv 161, shift 0 => 100000
i2c_configure( 2, 100000Hz )
Using pclk 33000000, cdiv 161, shift 0 => 100000
0.06 | -> i2c_dac_init
Ctrl+R
Ctrl+R
Ctrl+R
Ctrl+R
Ctrl+R
Ctrl+R
Ctrl+R
0.06 | -> i2c_humid_init
Humidity sensor test SUCCESS
0.07 | -> fram_init
Installing NVR device. size 12640
0.10 | -> net_sockets_init
0.14 | -> newtask_init
USE ADC FORTIMUS
0.14 | -> display_init
i2c_rd S_FAILED [bus: 2 | slave: 0x38]
i2c_rd S_FAILED [bus: 2 | slave: 0x38]
i2c_rd S_FAILED [bus: 2 | slave: 0x38]
###FAIL OF i2c write( 2, 38, 1[000000], 1, 0x22a4ff7b )
after 3 attemptsi2c_configure( 2, 100000Hz )
Using pclk 33000000, cdiv 161, shift 0 => 100000
If you saw the previous i2c operations failing, do not panic, it was an attempt to detect FT6x36 touchscreen...
GT911 PIN CONFIGURATION...
GT911 SETTING PINS TO 0...
GT911 SETTING PINS TO 0...
GT911 SETTING RESET TO 1...
GT911 SETTING GT911_PIN_IRQ TO INPUT...
GT911 Config checksum: 9a
GT911 Product ID: 00 31 31 39
GT911 Firmware Version: 1060
GT911 Vendor Id: 00
GT911 Config Version: 00
GT911 Written Resolution of X/Y Axis: 0000-0000
GT911 resolution X (0x8146) / resolution Y (0x8146) / Touch number: 0000 / 0000 / ff
gt911 has been detected 2.69 | -> aux_ioexp_init
2.70 | -> init_whalesong
2.70 | -> analog232_init
2.73 | -> start_timers
2.76 | -> spi_datalink_init_semaphores
2.79 | -> chain_init
Using 251 coefficients.
2.87 | -> var_user_init
3.20 | -> calibration_init
4.86 | -> gcftx_init
4.89 | -> spi_datalink_chains_init
Sensor0 is accelerometer
5.15 | -> init_nand
6.18 | -> adc12_init
6.20 | -> init_random
6.24 | -> ltc4151_vc_monitor_init
6.27 | -> voltage_sniffer_init
6.31 | -> init_lut
6.42 | -> i2c_humid_init_ui
6.45 | -> sd_init
6.48 | -> sd_file_init
6.51 | -> sd_log_init
6.54 | -> streaming_client_init
2019-11-13T10:05:43.000Z Retime Request Waiting (35s/3600s/Boot delay)
6.59 | -> xtaltable_init
No XTAL table found.
6.71 | -> gps_pps_init
Chain 54 already set.
Chain 54 already set.
Chain 54 already set.
Chain 54 already set.
Chain 54 already set.
Chain 54 already set.
Chain 54 already set.
Chain 54 already set.
FMUS-DA5B-> 6.82 | -> init_var_debug
6.85 | -> tcpdump_init
6.88 | -> var_html_init
6.91 | -> init_http_server
6.94 | -> sd_init_var
6.96 | -> gps_pps_ui_init
6.99 | -> xtaltable_ui_init
checking for xtaltable.txt
7.03 | -> init_fpga_datalink
7.06 | -> init_auto_center
7.09 | -> init_embedded_fs
7.12 | -> status_txt_init
7.18 | -> lan_init_web
#####tx_lock:
majic:f710f7f7
Call_lock value:-1 7.19 | -> init_responder_ui
1969-12-31T23:59:59.459Z User variable "Group ID" modified (called from init_responder_ui)
7.20 | -> init_tunnel_ui
7.24 | -> quasar_init
Quasar Serial Isolated Input/Output Module support is disabled.
7.31 | -> quasar_init_ui
7.31 | -> applied_rot_init_web
7.31 | -> installation_parameters_init_web
7.35 | -> init_fortimus_web
7.39 | -> analog232_init_web
7.46 | -> init_transforms
7.49 | -> triggers_init_ui
7.66 | -> chain_init_web
7.95 | -> transform_init_web
9.11 | -> storage_init_web
9.16 | -> spi_datalink_ui_init
9.20 | -> gps_init_ui
9.23 | -> gps_init
Once the boot-up reaches this stage, pressing + will no longer have any effect.
If + was recognised during the second stage of boot-up, then the Fortimus will reset and re-boot:
Ctrl+R NVR load, resetting all vars to their default values and then rebooting
Forcing all vars to default values (including non-default-able)
PPS clock sources ACTIVE: 0x00000001 [GPS:0 PTP:0 RTC:0 TABLE:1]
PPS clock sources ACTIVE: 0x01000001 [GPS:1 PTP:0 RTC:0 TABLE:1]
PPS clock sources ACTIVE: 0x01010001 [GPS:1 PTP:1 RTC:0 TABLE:1]
PPS clock sources ACTIVE: 0x01010101 [GPS:1 PTP:1 RTC:1 TABLE:1]
Ctrl+R
Ctrl+R
Ctrl+R
sd_manager: probed both microSD card slots
11.58 {calibration.c;1142} calibration_write_to_fram: successfully wrote calib to FRAM
11.60 {var_nvr.c;773} 'sd_format_time' $20301021 --> $00000000
11.61 {var_nvr.c;773} 'sd_unmount_time' $22647008 --> $00000000
11.62 {var_nvr.c;773} 'pps_src_table' 168 --> 1
11.63 {var_nvr.c;773} 'pps_src_gps' 0 --> 1
11.63 {var_nvr.c;773} 'pps_src_ptp' 69 --> 1
11.64 {var_nvr.c;773} 'pps_src_rtc' 132 --> 1
11.64 {var_nvr.c;773} 'rtcSavedOffsetSecs_nv' -1737983855 --> 0
11.65 {var_nvr.c;773} 'rtcSavedOffsetNano_nv' 402788896 --> 0
11.66 {var_nvr.c;773} 'rtcSavedFreqErrorPPB_nv' -2129883872 --> 1000000
11.67 {var_nvr.c;773} 'rtcSavedOffsetTime_nv' $52080158 --> $00000000
11.68 {var_nvr.c;773} 'xtaltable_offset' 610275339 --> 0
⋮