Difference between revisions of "Repeater Controller configuration"

From BATC Wiki
Jump to navigation Jump to search
 
(79 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
This page describes the setup of the BATC repeater controller - it should only be attempted by advanced users.
 
This page describes the setup of the BATC repeater controller - it should only be attempted by advanced users.
  
 +
'''Note not all functions listed in the config file are currently implemented.
 +
'''
 
=SSH Menu=
 
=SSH Menu=
  
Line 11: Line 13:
 
[[File:controller main.JPG|600px]]
 
[[File:controller main.JPG|600px]]
  
==Reload==  
+
===Reload===  
  
 
Loads the configuration changes you have made and restarts the controller
 
Loads the configuration changes you have made and restarts the controller
  
==1 Behaviour==
+
===1 Behaviour===
  
 
1 - Audio keepalive.  Some HDMI switches permanently shut down the audio channel is no audio is present.  This option puts low-level white noise on the controller audio out to prevent this from happening.
 
1 - Audio keepalive.  Some HDMI switches permanently shut down the audio channel is no audio is present.  This option puts low-level white noise on the controller audio out to prevent this from happening.
Line 25: Line 27:
 
4 - Power save. Enables transmit key line to be on continuously or just when the controller sees a valid input signal or when sending an ident.
 
4 - Power save. Enables transmit key line to be on continuously or just when the controller sees a valid input signal or when sending an ident.
  
5 - Operating hours.  Selection of transmit key line to be active continuously or just during a timed period to save power.  If timed, select the start and stop times.
+
5 - Operating hours.  Selection of transmit key line to be active continuously or just during a timed period to save power.  If timed, select the start and stop times.  Note time is set using UTC time, not local time.
  
 
6 - Quiet hours repeat.  If Timed operation was selected in menu 5, you can set if the repeater should repeat an input signal during the quiet time.
 
6 - Quiet hours repeat.  If Timed operation was selected in menu 5, you can set if the repeater should repeat an input signal during the quiet time.
Line 31: Line 33:
 
7 - Quiet hours ident.  If Timed operation was selected in menu 5, you can set if the repeater should send the ident signal during the quiet time.
 
7 - Quiet hours ident.  If Timed operation was selected in menu 5, you can set if the repeater should send the ident signal during the quiet time.
  
8 - Half hour.  Enables the transmitter to keyed in beacon mode during the first 30 minutes of every hour to save power
+
8 - Half hour.  If enabled, the transmitter will only be keyed in beacon mode during the first 30 minutes of every hour and not during the 2nd half hour to save power.
  
 
9 - Quad auto enable.  Enables the quad display to be automatically displayed when more than 1 selected inputs are present.
 
9 - Quad auto enable.  Enables the quad display to be automatically displayed when more than 1 selected inputs are present.
Line 41: Line 43:
 
12 - Return to main menu
 
12 - Return to main menu
  
==2 Callsign==
+
===2 Callsign===
  
 
Entry of the repeater callsign and QRA locator for display on generated captions.
 
Entry of the repeater callsign and QRA locator for display on generated captions.
  
==3 Inputs==
+
===3 Inputs===
  
 
1 - 7 Input.  Enables priority of each input to be set
 
1 - 7 Input.  Enables priority of each input to be set
Line 57: Line 59:
 
11 - Main Menu
 
11 - Main Menu
  
==4 Control==
+
===4 Control===
  
 
Enables direct selection of any input source
 
Enables direct selection of any input source
  
==5 Update==
+
===5 Update===
 
Check s/w version and update if needed.
 
Check s/w version and update if needed.
  
==6 Settings==
+
===6 Settings===
  
 
1 - Reset factory defaults
 
1 - Reset factory defaults
Line 72: Line 74:
 
3 - Main menu.
 
3 - Main menu.
  
==7 Diagnostics==
+
===7 Diagnostics===
  
==8 Reboot==
+
===8 Reboot===
 +
 
 +
Does exactly that!
 +
 
 +
=Controlling the Repeater During Testing=
 +
 
 +
===Stopping the Controller===
 +
 
 +
The controller can be stopped by entering
 +
stop
 +
at the command line.  This tells all the repeater processes to stop and should show a "Controller Software Not Running" caption on the HDMI output.
 +
 
 +
===Restarting the Controller for Testing===
 +
 
 +
You can restart the controller for testing by entering
 +
rptr
 +
You will see a running commentary of what the repeater is doing in the console window.  However, if you close the window, the repeater will stop.  You can also stop it and get back to the command prompt by pressing ctrl-c.
 +
 
 +
You can start the repeater so that it runs and keeps a log of what it is doing (even if you close the controller window) by entering this command:
 +
nohup atv-rptr/utils/run_rptr_nohup_with_log.sh &
 +
Then press ctrl-c to get back to the command prompt.
 +
 
 +
If you see behaviour that you want to investigate, enter
 +
stop
 +
to force the last bit of the log to be written to the file, and then enter
 +
tail -25 log.txt
 +
to see the last 25 lines of the log.
 +
 
 +
Do not run the repeater for normal use using these test modes.  The log file will grow over time and eventually fill the SD Card, causing the repeater to fail.
 +
 
 +
===Getting Back to Normal Use===
 +
 
 +
At the end of a maintenance session, you should always reboot the repeater to check that it is working properly and put it in its normal mode.  Do this by typing
 +
sudo reboot now
 +
Close the SSH window, watch the repeater output and if all is well, walk away.
 +
 
 +
===Advanced Commands===
 +
 
 +
If you need to edit the C code, you can recompile it and run the repeater software with the command
 +
urptr
 +
This will also show you any errors if the compilation fails.
 +
 
 +
If you need to troubleshoot the output display settings, use
 +
tvservice -s
  
 
=Editing the config file=
 
=Editing the config file=
Line 80: Line 125:
 
The configuration file is too comprehensive for all the functions to be edited from a simple menu and more advanced customisation will require the careful editing of the text file /home/pi/atv-rptr/config/repeater_config.txt
 
The configuration file is too comprehensive for all the functions to be edited from a simple menu and more advanced customisation will require the careful editing of the text file /home/pi/atv-rptr/config/repeater_config.txt
  
==Typical config file==
+
===Hand edit===
 +
You can hand-edit the configuration file with the command
 +
nano atv-rptr/config/repeater_config.txt
 +
Use the arrow keys to move about (not the mouse) and save by pressing ctrl-x, y and then enter.  Discard changes by simply pressing ctrl-x and then n.
 +
 
 +
If it has all gone wrong, you can start again with a factory-fresh configuration file using the command
 +
cp atv-rptr/config/repeater_config.txt atv-rptr/config/repeater_config.txt.factory
 +
Note that you will lose all of your previous edits.
 +
 
 +
===FTP===
 +
 
 +
Use a program such as WinSCP or Filezilla and either edit the config file in the RPi directory or copy it to a local drive, edit and then transfer it back.
 +
 
 +
==Actioning the changes==
 +
 
 +
After editing and saving, reload the controller by using item 1 in the SSH menu.
 +
 
 +
=Typical config file=
  
 
The following is an example of a typical config with comments on each function - some functions are also available in the SSH menu
 
The following is an example of a typical config with comments on each function - some functions are also available in the SSH menu
Line 87: Line 149:
 
  Text file defining behaviour and config of the BATC HDMI Repeater Design
 
  Text file defining behaviour and config of the BATC HDMI Repeater Design
 
  Comments must be on their own line
 
  Comments must be on their own line
  Read at boot time.  Only modified from console menu or text editor
+
  Read at boot time and only modified from console menu or text editor except transmitenabled which is amended by dtmfkeepertxoff or dtmfkeepertxon
  
===Station Details===
+
===Station Details - also in SSH menu===
 
callsign=GB3HV
 
callsign=GB3HV
 +
 
locator=IO91LD
 
locator=IO91LD
  
 
===Video output===
 
===Video output===
  Used to size captions and layout display.  NOT to set output hdmi720, hdmi1080, pal, ntsc  
+
  Used to size captions and layout display onlyIt does NOT set the output to hdmi720, hdmi1080, pal, ntsc  
 
vidout=hdmi1080
 
vidout=hdmi1080
  
===Low level audio - in SSH menu===
+
===Ident and K CW audio output===
 +
This is used to set the output port (but not the hdmi keep-alive)
 +
hdmi, jack or usb
 +
 
 +
audioout=hdmi
 +
 
 +
===Low level audio - also in SSH menu===
 
  Turn on low level audio noise to keep hdmi audio active? yes/no
 
  Turn on low level audio noise to keep hdmi audio active? yes/no
 
audiokeepalive=yes
 
audiokeepalive=yes
  
===TX key logic - in SSH menu (see above for description)===
+
audiokeepalivelevel=85
 +
 
 +
===TX key and Power Saving logic - also in SSH menu (see above for description)===
 
  Enable/disable transmit ptt active? yes/no
 
  Enable/disable transmit ptt active? yes/no
 
transmitenabled=yes
 
transmitenabled=yes
Line 110: Line 181:
 
  Continuous TX or power-saving.  no/yes
 
  Continuous TX or power-saving.  no/yes
 
transmitwhennotinuse=yes
 
transmitwhennotinuse=yes
 +
 +
Control mains switch for rack (and allocate GPIOs?).  Not not compatible with use of input 7
 +
rackmainscontrol=yes
 +
 +
GPIO pins for controlled rack shutdown (front panel button, shutdown signal and mains switch
 +
racksdbuttongpiopin=21
 +
racksdsignalgpiopin=24
 +
rackmainspwrgpiopin=15
 +
 +
Turn off receiver rack and encoder to save power?  Times UTC
 +
rackpowersave=yes
 +
rackpoweron1=1500
 +
rackpoweroff1=2300
 +
Set second times to be equal for one power-on period only
 +
rackpoweron2=0000
 +
rackpoweroff2=0000
  
 
  Continuous operation or active hours only. yes/no
 
  Continuous operation or active hours only. yes/no
Line 129: Line 216:
  
 
===Transmit PTT Demand physical pin===
 
===Transmit PTT Demand physical pin===
  (available pins are 40 .....)
+
  Recommended pin 40
 
pttgpiopin=40
 
pttgpiopin=40
  
===Local audio===
+
===Front Panel Shutdown Enabled?===
  (144.75 FM from usb audio dongle) audio could be inserted on carousel
+
  Physical GPIO Pin (recommended 26)
Options are off, both, left right (mono from USB dongle)
 
carouselusbaudiomode=off
 
  
carouselusbaudiogain=100
+
fpshutdown=no
  
===DTMF control===
+
fpsdgpiopin=26
 +
 
 +
===DTMF repeater control===
 +
 
 +
Uses white "Portsdown/Langstone" USB dongle input
 +
 
 +
These are just example commands - see [[DATV repeater DTMF commands]] for more details
  
 
  Control is on/off.  Gain is %.  Timeout is in seconds
 
  Control is on/off.  Gain is %.  Timeout is in seconds
All dtmf codes are of the format *xx#.  Only xx are defined below.  Examples:
+
 
 
dtmfcontrol=on
 
dtmfcontrol=on
 
+
 
dtmfaudiogain=62
 
dtmfaudiogain=62
  
 
dtmfactiontimeout=600
 
dtmfactiontimeout=600
  
dtmfreset=00
 
  
dtmfstatusview=01
+
'''All dtmf codes are of the format *xx#.'''  Only xx isdefined below.  Examples:
  
dtmfquadview=04
+
dtmfreset=00
  
 +
To display the controller status screen - includes GPIO pin status (see below)
  
===DTMF Keeper codes===
+
dtmfstatusview=01
5 digit and must start with 9 (*9xxxx#)
 
  
dtmfkeepertxoff=97350
+
Select quad view
  
dtmfkeepertxon=97351
+
dtmfquadview=04
  
  Turns Tx key on / off
+
  Select input (when finished, use *00# to return to normal operation)
 
 
dtmfkeeperreboot=97359
 
 
 
Reboot controller
 
  
 
dtmfselectinput0=10
 
dtmfselectinput0=10
Line 185: Line 271:
 
dtmfselectinput7=17
 
dtmfselectinput7=17
  
  Displays selected video source
+
===DTMF Keeper codes===
 +
  '''In this example''' keeper codes are 5 digit and must start with 9 (*9xxxx#)
 +
 
 +
Turns Tx key on / off
 +
 
 +
dtmfkeepertxoff=97350
 +
 
 +
dtmfkeepertxon=97351
 +
 
 +
Reboot controller
 +
 
 +
dtmfkeeperreboot=97359
  
 
===DTMF Accessory Control examples===
 
===DTMF Accessory Control examples===
 +
DTMF input can also be used to control external equipment via the GPIO pins - a maximum of 10 devices can be connected.
 +
 +
Number of outputs
  
 
dtmfoutputs=1
 
dtmfoutputs=1
 +
 +
Pin allocations
  
 
dtmfgpioout1pin=8
 
dtmfgpioout1pin=8
 +
 +
Label for status screen
  
 
dtmfgpioout1label=shack_light
 
dtmfgpioout1label=shack_light
 +
 +
DTMF commands to turn on and off
  
 
dtmfgpioout1on=31
 
dtmfgpioout1on=31
  
 
dtmfgpioout1off=41
 
dtmfgpioout1off=41
 +
 +
===GPIO inputs===
 +
The controller can monitor GPIO pins and display their status on the status screen, displayed by DTMF *01#  Note: Due to an error in coding, these functions are called "dtmf"gpio inputs.
 +
 +
Number of inputs
  
 
dtmfinputs=1
 
dtmfinputs=1
 +
 +
Pin allocationa
  
 
dtmfgpioin1pin=8
 
dtmfgpioin1pin=8
  
 +
Label for status screen
 
dtmfgpioin1label=cabinet_door
 
dtmfgpioin1label=cabinet_door
  
 
===Background image for Caption Slides===
 
===Background image for Caption Slides===
 +
Caption cards such as "K" and input identification are built by the controller on this back ground - to change this, replace the .jpg with a different file of the same resolution
 +
 
backimage=/home/pi/atv-rptr/media/batc_background.jpg
 
backimage=/home/pi/atv-rptr/media/batc_background.jpg
  
Line 249: Line 365:
  
 
===Carousel information===   
 
===Carousel information===   
  The carousel can have up to 99 scenes. Each scene can either be jpg, (mp4 not implemented yet), status screen or a video source on the switcher.  Jpeg images are read each time the file is displayed.  For video source, "file" is source number which can be an individual source or the multi grid, if supported by the video switch.
+
  The carousel can have up to 99 scenes. Each scene can either be jpg, (mp4 not implemented in current release), status screen or a video source on the switcher.  Jpeg images are read each time the file is displayed.  For a video source, "file" is source number which can be an individual source or the multi grid, if supported by the video switch.
 
 
carouselscenes=5
 
  
carousel01mediatype=jpg
+
carouselscenes=5
carousel01file=/home/pi/atv-rptr/media/HVtest.jpg
+
carousel01mediaduration=10
+
carousel01mediatype=jpg
 +
carousel01file=/home/pi/atv-rptr/media/HVtest.jpg
 +
carousel01mediaduration=10
 +
 +
carousel02mediatype=jpg
 +
carousel02file=/home/pi/atv-rptr/media/weather.JPG
 +
carousel02mediaduration=10
 +
 +
carousel03mediatype=jpg
 +
carousel03file=/home/pi/atv-rptr/media/75cbw.jpg
 +
carousel03mediaduration=5
 +
 +
carousel04mediatype=jpg
 +
carousel04file=/home/pi/custom_media/tropo.JPG
 +
carousel04mediaduration=10
 +
 +
carousel05mediatype=source
 +
carousel05file=4
 +
carousel05mediaduration=30
 +
The example above has 4 images and one source (so 5 scenes).  The 5th scene is the quad view; source 4 is set up below to show the Quad to enable its inclusion in the carousel. 
  
 +
Note that the 4th image above is located in the /home/pi/custom_media folder.  It is recommended that site-specific images are saved in that folder, which will not be over-written during software updates.
  
carousel02mediatype=jpg
+
===Analogue Talkback Audio on Carousel===
carousel02file=/home/pi/atv-rptr/media/weather.JPG
 
carousel02mediaduration=10
 
  
 +
If using an i2c analogue audio switcher, the talkback audio can be enabled during the carousel
  
carousel03mediatype=jpg
+
# Analogue talkback audio (144.75) can be turned on or off using the MCP23008 i2c switcher
carousel03file=/home/pi/atv-rptr/media/75cbw.jpg
+
talkbackaudio=on
carousel03mediaduration=5
+
talkbackaudioi2cbit=7
  
 +
If using hdmi audio, the talkback can be input on the USB mic dongle (along with the DTMF) and output on the HDMI audio during the carousel.  The audio gain is set by the dtmfaudiogain parameter as they both use the same input.  Facility introduced in release 202402190.
  
carousel04mediatype=jpg
+
# Talkback audio on DTMF input can also be output on the controller (k/cw ident) audio channel
carousel04file=/home/pi/atv-rptr/media/tropo.JPG
+
# Volume is set by dtmfaudiogain above
carousel04mediaduration=10
+
controllertalkbackaudio=on
 
 
 
 
carousel05mediatype=source
 
carousel05file=4
 
carousel05mediaduration=30
 
  
 
===Input configuration===
 
===Input configuration===
  
Recommended gpio pins for "input active" are 32, 35, 18, 22, 16, 19 and 21
+
Recommended gpio pins for "input active" are 32, 35, 18, 22, 16, 19 and 21. The availableinputs number must be set to the number of possibly active (external, in addition to the controller) video sources. activeinputhold (yes/no) means that lower priority inputs do not get replaced by higher priority active inputs (except priority 1 inputs). If showquadformultipleinputs is set to yes, then the quad is sleected when 2 or more if its inputs are active.
 
 
  announcemediatype determines the player used
 
 
 
  hdmi switcher can use "ir" or "gpio" - IR uses a TX on GPIO pin 12 -  GPIO uses pins 36, 37, 38, 33, 31, 29, 23, 24
 
  
activeinputhold (yes/no) means that lower priority inputs do not get replaced by higher priority (except pri 1)
+
Cascaded switches refers to whether 2 4-input switches are daisy chaned t get 7 (controller plus 6 external) inputs.
Show Quad is yes/no
 
  
availableinputs=4
+
  availableinputs=6
 
+
  activeinputhold=no
activeinputhold=no
+
  showquadformultipleinputs=yes
 
+
  cascadedswitches=no
showquadformultipleinputs=yes
 
  
 
===Output video switch config===
 
===Output video switch config===
  
outputswitchcontrol=ir
+
The output video switch configuration is defined by this block.  The switching method is defined by outputswitchcontrol=.  This can be ir, gpio or html.  For ir or html, the gpio outputs can also be active if showoutputongpio= is set to yes.
  
showoutputongpio=yes
+
The ir code to reset the hdmi switch (not currently used) is set in outputhdmiresetcode.  The ir code to select a second (daisy-chained) hdmi switch is set in output2ndhdmicode.  The ir code to select a quad view is set in outputhdmiquadcode.
  
outputhdmiresetcode=nec:0x17
+
The outputi2caddress is the base address for an i2c video switch, and the outputi2cquadchannel is the quad select for an i2c video switch.  Neither of these codes are currently implemented.
  
===Configure 2nd IR output===
+
outputswitchcontrol=ir
 +
showoutputongpio=yes
 +
outputhdmiresetcode=nec:0x17
 +
output2ndhdmicode=nec:0x17
 +
outputhdmiquadcode=nec:0x18
 +
outputi2caddress=3
 +
outputi2cquadchannel=9
  
output2ndhdmicode=nec:0x08
+
===Bitfocus Companion Server Settings===
  
outputhdmiquadcode=nec:0x18
+
# Bitfocus Companion (html) server address & port (no trailing slash)
 +
networkctrlurl=http://192.0.1.176:8888
 +
# Other net commands have leading slash
 +
outputquadnetcommand=/press/bank/1/11
  
 
===Configure input 0 - always allocated to controller===
 
===Configure input 0 - always allocated to controller===
  
input0name=Controller
+
The configuration for the controller output 6 elements (currently).
  
output0code=nec:0x17
+
The input0name is the text name displayed on the Configuration screen.
  
output0hdmiswitchpin=36
+
The IR code required to select the controller video and send it to the repeater output is stated in output0code.  The format is protocol:hex code.  A 2 is added to the beginning of the string if the the input is on the second, daisy-chained, hdmi switch (ie 2nec:0x17).  If GPIO switching of outputs is used, the output0hdmiswitchpin indicates which pin should be used.  If an i2c-controlled video switcher is used, output0i2cchannel indicates which channel should be selected to display that input.  Similarly, if network commands are being used to control an ATEM switch through BitFocus companion, the tail end of the network command is defined by output0netcommand.
  
===Configure input 1===
+
For audio i2c switching, the correct bit is set by output0audioi2cbit.
  
input1name=Stream Input
+
input0name=Controller
 +
output0code=nec:0x17
 +
#output0code=2nec:0x17 (daisy chain)
 +
output0hdmiswitchpin=36
 +
output0i2cchannel=1
 +
output0netcommand=/press/bank/1/8
 +
output0audioi2cbit=0
  
input1prioritylevel=1
+
===Configuration of External Inputs===
  
input1activegpiopin=32
+
The configuration for each input has 11 elements (currently).
  
output1code=nec:0x12
+
The inputxname is the text name displayed on the "announce" caption and on the Configuration screen.  The priority level can be set from 1 to 9.  A priority level of 9 means that the input is not displayed unless it is viewed as part of the quad or is directly selected by a DTMF command.
  
output1hdmiswitchpin=37
+
The inputxactivegpiopin is the physical pin number that the attached receiver sets high to indicate that a signal is present.  The IR code required to select the input and send it to the repeater output is stated in outputxcode.  The format is protocol:hex code.  A 2 is added to the beginning of the string if the the input is on the second, daisy-chained, hdmi switch (ie 2nec:0x12).  If GPIO switching of outputs is used, the outputxhdmiswitchpin indicates which pin should be used.  If an i2c-controlled video switcher is used, outputxi2cchannel indicates which channel should be selected to display that input.  Similarly, if network commands are being used to control an ATEM switch through BitFocus companion, the tail end of the network command is defined by outputxnetcommand.
  
input1announcemediatype=jpg
+
For audio i2c switching, the correct bit is set by outputxaudioi2cbit.
  
input1announcemediafile=/home/pi/tmp/input1.jpg
+
The default announce media settings work with the captions that are generated during repeater start-up.  The can be cahnge for custom media if required.
  
input1announcemediaduration=3
+
===Configure input 1===
 +
 
 +
input1name=Stream Input
 +
input1prioritylevel=1
 +
input1activegpiopin=32
 +
output1code=nec:0x12
 +
output1hdmiswitchpin=37
 +
output1i2cchannel=2
 +
output1netcommand=/press/bank/1/1
 +
output1audioi2cbit=1
 +
input1announcemediatype=jpg
 +
input1announcemediafile=/home/pi/tmp/input1.jpg
 +
input1announcemediaduration=3
  
 
===Configure input 2===
 
===Configure input 2===
  
input2name=QO-100 RX
+
input2name=QO-100 RX
 
+
input2prioritylevel=2
input2prioritylevel=2
+
input2activegpiopin=35
 
+
output2code=nec:0x59
input2activegpiopin=21
+
output2hdmiswitchpin=38
 
+
output2i2cchannel=3
output2code=nec:0x59
+
output2netcommand=/press/bank/1/2
 
+
output2audioi2cbit=2
output2hdmiswitchpin=38
+
input2announcemediatype=jpg
 
+
input2announcemediafile=/home/pi/tmp/input2.jpg
input2announcemediatype=jpg
+
input2announcemediaduration=3
 
 
input2announcemediafile=/home/pi/tmp/input2.jpg
 
 
 
input2announcemediaduration=3
 
  
 
===Configure input 3===
 
===Configure input 3===
  
input3name=3.4 GHz Ryde
+
input3name=3.4 GHz Ryde
 
+
input3prioritylevel=3
input3prioritylevel=3
+
input3activegpiopin=18
 
+
output3code=nec:0x08
input3activegpiopin=18
+
output3hdmiswitchpin=33
 
+
output3i2cchannel=4
output3code=nec:0x08
+
output3netcommand=/press/bank/1/3
 
+
output3audioi2cbit=3
output3hdmiswitchpin=33
+
input3announcemediatype=jpg
 
+
input3announcemediafile=/home/pi/tmp/input3.jpg
input3announcemediatype=jpg
+
input3announcemediaduration=3
 
 
input3announcemediafile=/home/pi/tmp/input3.jpg
 
 
 
input3announcemediaduration=3
 
 
 
===Input 4 configuration===
 
 
 
input4name=Quad View
 
 
 
input4prioritylevel=7
 
 
 
input4activegpiopin=22
 
 
 
output4code=nec:0x18
 
 
 
output4hdmiswitchpin=31
 
 
 
input4announcemediatype=jpg
 
 
 
input4announcemediafile=/home/pi/tmp/input4.jpg
 
 
 
input4announcemediaduration=3
 
 
 
===Input 5 configuration===
 
 
 
input5name=Mast Camera
 
 
 
input5prioritylevel=7
 
 
 
input5activegpiopin=16
 
 
 
output5code=2nec:0x12
 
 
 
output5hdmiswitchpin=29
 
 
 
input5announcemediatype=jpg
 
 
 
input5announcemediafile=/home/pi/tmp/input5.jpg
 
 
 
input5announcemediaduration=10
 
 
 
===Input 6 configuration===
 
 
 
input6name=Unused 6
 
 
 
input6prioritylevel=9
 
 
 
input6activegpiopin=19
 
 
 
output6code=2nec:0x59
 
 
 
output6hdmiswitchpin=23
 
 
 
input6announcemediatype=jpg
 
 
 
input6announcemediafile=/home/pi/tmp/input6.jpg
 
 
 
input6announcemediaduration=3
 
 
 
===Input 7 configuration===
 
  
input7name=Unused 7
+
===Configure input 4===
 +
Input 4 is set to display the quad view.  This enables it to be included in the carousel (as source 4).
  
input7prioritylevel=9
+
input4name=Quad View
 +
input4prioritylevel=7
 +
input4activegpiopin=22
 +
output4code=nec:0x18
 +
#output4code=2nec:0x12 (daisy chain, not quad)
 +
output4hdmiswitchpin=31
 +
output4i2cchannel=5
 +
output4netcommand=/press/bank/1/4
 +
output4audioi2cbit=4
 +
input4announcemediatype=jpg
 +
input4announcemediafile=/home/pi/tmp/input4.jpg
 +
input4announcemediaduration=3
  
input7activegpiopin=21
+
===Configure input 5===
  
output7code=2nec:0x08
+
input5name=Mast Camera
 +
input5prioritylevel=7
 +
input5activegpiopin=16
 +
output5code=2nec:0x59
 +
output5hdmiswitchpin=29
 +
output5i2cchannel=6
 +
output5netcommand=/press/bank/1/5
 +
output5audioi2cbit=5
 +
input5announcemediatype=jpg
 +
input5announcemediafile=/home/pi/tmp/input5.jpg
 +
input5announcemediaduration=10
  
output7hdmiswitchpin=24
+
===Configure input 6===
  
input7announcemediatype=jpg
+
input6name=Unused 6
 +
input6prioritylevel=9
 +
input6activegpiopin=19
 +
output6code=2nec:0x08
 +
#output6code=2nec:0x08 (daisy chain)
 +
output6hdmiswitchpin=23
 +
output6i2cchannel=7
 +
output6netcommand=/press/bank/1/6
 +
output6audioi2cbit=6
 +
input6announcemediatype=jpg
 +
input6announcemediafile=/home/pi/tmp/input6.jpg
 +
input6announcemediaduration=3
  
input7announcemediafile=/home/pi/tmp/input7.jpg
+
===Configure input 7===
  
input7announcemediaduration=3
+
input7name=Unused 7
 +
input7prioritylevel=9
 +
input7activegpiopin=21
 +
output7code=2nec:0x08
 +
#output7code=2nec:0x12 (daisy chain)
 +
output7hdmiswitchpin=24
 +
output7i2cchannel=8
 +
output7netcommand=/press/bank/1/7
 +
output7audioi2cbit=7
 +
input7announcemediatype=jpg
 +
input7announcemediafile=/home/pi/tmp/input7.jpg
 +
input7announcemediaduration=3

Latest revision as of 14:56, 19 February 2024

Back to repeater controller main page

This page describes the setup of the BATC repeater controller - it should only be attempted by advanced users.

Note not all functions listed in the config file are currently implemented.

SSH Menu

Some configuration and some real-time control is possible using the ssh Console Menu.

To enter the repeater controller menu log in to the RPi by SSH using a program such as Putty and type menu.

Controller main.JPG

Reload

Loads the configuration changes you have made and restarts the controller

1 Behaviour

1 - Audio keepalive. Some HDMI switches permanently shut down the audio channel is no audio is present. This option puts low-level white noise on the controller audio out to prevent this from happening.

2 - Transmit enable. Enables transmit key line on pin xx

3 - Beacon mode. Enables the controller to just run in beacon mode and ignore all inputs.

4 - Power save. Enables transmit key line to be on continuously or just when the controller sees a valid input signal or when sending an ident.

5 - Operating hours. Selection of transmit key line to be active continuously or just during a timed period to save power. If timed, select the start and stop times. Note time is set using UTC time, not local time.

6 - Quiet hours repeat. If Timed operation was selected in menu 5, you can set if the repeater should repeat an input signal during the quiet time.

7 - Quiet hours ident. If Timed operation was selected in menu 5, you can set if the repeater should send the ident signal during the quiet time.

8 - Half hour. If enabled, the transmitter will only be keyed in beacon mode during the first 30 minutes of every hour and not during the 2nd half hour to save power.

9 - Quad auto enable. Enables the quad display to be automatically displayed when more than 1 selected inputs are present.

10 - Enable DTMF input. Enables over air DTMF control of the repeater

11 - Apply changes

12 - Return to main menu

2 Callsign

Entry of the repeater callsign and QRA locator for display on generated captions.

3 Inputs

1 - 7 Input. Enables priority of each input to be set

8 - Input count. Set this to the total number of inputs on the video switcher - Do NOT include the controller in this number.

9 - Active Hold. Determines if a higher priority input will override the currently selected input.

10 - Apply

11 - Main Menu

4 Control

Enables direct selection of any input source

5 Update

Check s/w version and update if needed.

6 Settings

1 - Reset factory defaults

2 - Check HDMI. Lists the HDMI settings for fault finding

3 - Main menu.

7 Diagnostics

8 Reboot

Does exactly that!

Controlling the Repeater During Testing

Stopping the Controller

The controller can be stopped by entering

stop

at the command line. This tells all the repeater processes to stop and should show a "Controller Software Not Running" caption on the HDMI output.

Restarting the Controller for Testing

You can restart the controller for testing by entering

rptr

You will see a running commentary of what the repeater is doing in the console window. However, if you close the window, the repeater will stop. You can also stop it and get back to the command prompt by pressing ctrl-c.

You can start the repeater so that it runs and keeps a log of what it is doing (even if you close the controller window) by entering this command:

nohup atv-rptr/utils/run_rptr_nohup_with_log.sh &

Then press ctrl-c to get back to the command prompt.

If you see behaviour that you want to investigate, enter

stop

to force the last bit of the log to be written to the file, and then enter

tail -25 log.txt

to see the last 25 lines of the log.

Do not run the repeater for normal use using these test modes. The log file will grow over time and eventually fill the SD Card, causing the repeater to fail.

Getting Back to Normal Use

At the end of a maintenance session, you should always reboot the repeater to check that it is working properly and put it in its normal mode. Do this by typing

sudo reboot now

Close the SSH window, watch the repeater output and if all is well, walk away.

Advanced Commands

If you need to edit the C code, you can recompile it and run the repeater software with the command

urptr

This will also show you any errors if the compilation fails.

If you need to troubleshoot the output display settings, use

tvservice -s

Editing the config file

The configuration file is too comprehensive for all the functions to be edited from a simple menu and more advanced customisation will require the careful editing of the text file /home/pi/atv-rptr/config/repeater_config.txt

Hand edit

You can hand-edit the configuration file with the command

nano atv-rptr/config/repeater_config.txt

Use the arrow keys to move about (not the mouse) and save by pressing ctrl-x, y and then enter. Discard changes by simply pressing ctrl-x and then n.

If it has all gone wrong, you can start again with a factory-fresh configuration file using the command

cp atv-rptr/config/repeater_config.txt atv-rptr/config/repeater_config.txt.factory

Note that you will lose all of your previous edits.

FTP

Use a program such as WinSCP or Filezilla and either edit the config file in the RPi directory or copy it to a local drive, edit and then transfer it back.

Actioning the changes

After editing and saving, reload the controller by using item 1 in the SSH menu.

Typical config file

The following is an example of a typical config with comments on each function - some functions are also available in the SSH menu

Introduction

Text file defining behaviour and config of the BATC HDMI Repeater Design
Comments must be on their own line
Read at boot time and only modified from console menu or text editor except transmitenabled which is amended by dtmfkeepertxoff or dtmfkeepertxon

Station Details - also in SSH menu

callsign=GB3HV

locator=IO91LD

Video output

Used to size captions and layout display only.  It does NOT set the output to hdmi720, hdmi1080, pal, ntsc 

vidout=hdmi1080

Ident and K CW audio output

This is used to set the output port (but not the hdmi keep-alive)
hdmi, jack or usb

audioout=hdmi

Low level audio - also in SSH menu

Turn on low level audio noise to keep hdmi audio active? yes/no

audiokeepalive=yes

audiokeepalivelevel=85

TX key and Power Saving logic - also in SSH menu (see above for description)

Enable/disable transmit ptt active? yes/no

transmitenabled=yes

Beacon mode only transmits carousel with ident.  Set to no for rptr operation. yes/no

beaconmode=no

Continuous TX or power-saving.  no/yes

transmitwhennotinuse=yes

Control mains switch for rack (and allocate GPIOs?).  Not not compatible with use of input 7

rackmainscontrol=yes

GPIO pins for controlled rack shutdown (front panel button, shutdown signal and mains switch

racksdbuttongpiopin=21 racksdsignalgpiopin=24 rackmainspwrgpiopin=15

Turn off receiver rack and encoder to save power?  Times UTC

rackpowersave=yes rackpoweron1=1500 rackpoweroff1=2300

Set second times to be equal for one power-on period only

rackpoweron2=0000 rackpoweroff2=0000

Continuous operation or active hours only. yes/no

24houroperation=yes

Power save during second half hour in active hours?  Default no.
Repeat and Ident are available/active during this time

halfhourpowersave=no

Operating times are UTC.  Ignored for 24/7 operation

operatingtimestart=1300

operatingtimefinish=2330

Quiet hours behaviour:

repeatduringquiethours=no

identduringquiethours=no

Transmit PTT Demand physical pin

Recommended pin 40

pttgpiopin=40

Front Panel Shutdown Enabled?

Physical GPIO Pin (recommended 26)

fpshutdown=no

fpsdgpiopin=26

DTMF repeater control

Uses white "Portsdown/Langstone" USB dongle input
These are just example commands - see DATV repeater DTMF commands for more details
Control is on/off.  Gain is %.  Timeout is in seconds

dtmfcontrol=on

dtmfaudiogain=62

dtmfactiontimeout=600


All dtmf codes are of the format *xx#.  Only xx isdefined below.  Examples:

dtmfreset=00

To display the controller status screen - includes GPIO pin status (see below)

dtmfstatusview=01

Select quad view

dtmfquadview=04

Select input (when finished, use *00# to return to normal operation)

dtmfselectinput0=10

dtmfselectinput1=11

dtmfselectinput2=12

dtmfselectinput3=13

dtmfselectinput4=14

dtmfselectinput5=15

dtmfselectinput6=16

dtmfselectinput7=17

DTMF Keeper codes

In this example keeper codes are 5 digit and must start with 9 (*9xxxx#)
Turns Tx key on / off

dtmfkeepertxoff=97350

dtmfkeepertxon=97351

Reboot controller

dtmfkeeperreboot=97359

DTMF Accessory Control examples

DTMF input can also be used to control external equipment via the GPIO pins - a maximum of 10 devices can be connected.
Number of outputs

dtmfoutputs=1

Pin allocations

dtmfgpioout1pin=8

Label for status screen

dtmfgpioout1label=shack_light

DTMF commands to turn on and off

dtmfgpioout1on=31

dtmfgpioout1off=41

GPIO inputs

The controller can monitor GPIO pins and display their status on the status screen, displayed by DTMF *01#  Note: Due to an error in coding, these functions are called "dtmf"gpio inputs.
Number of inputs

dtmfinputs=1

Pin allocationa

dtmfgpioin1pin=8

Label for status screen

dtmfgpioin1label=cabinet_door

Background image for Caption Slides

Caption cards such as "K" and input identification are built by the controller on this back ground - to change this, replace the .jpg with a different file of the same resolution

backimage=/home/pi/atv-rptr/media/batc_background.jpg

Ident info

Audio is on/off, Pitch in Hz, speed in wpm, level is %

identinterval=900

identmediatype=jpg

identmediaduration=5

identmediafile=/home/pi/tmp/ident.jpg

identcwaudio=on

identcwspeed=15

identcwpitch=800

identcwlevel=50

identcwfile=/home/pi/tmp/ident.wav

K information

Pitch in Hz, speed in wpm, level is %

kmediatype=jpg

kmediaduration=5

kmediafile=/home/pi/tmp/k.jpg

kcwaudio=on

kcwspeed=20

kcwpitch=800

kcwlevel=50

kcwfile=/home/pi/tmp/k.wav

Carousel information

The carousel can have up to 99 scenes. Each scene can either be jpg, (mp4 not implemented in current release), status screen or a video source on the switcher.  Jpeg images are read each time the file is displayed.  For a video source, "file" is source number which can be an individual source or the multi grid, if supported by the video switch.
carouselscenes=5

carousel01mediatype=jpg
carousel01file=/home/pi/atv-rptr/media/HVtest.jpg
carousel01mediaduration=10

carousel02mediatype=jpg
carousel02file=/home/pi/atv-rptr/media/weather.JPG
carousel02mediaduration=10

carousel03mediatype=jpg
carousel03file=/home/pi/atv-rptr/media/75cbw.jpg
carousel03mediaduration=5

carousel04mediatype=jpg
carousel04file=/home/pi/custom_media/tropo.JPG
carousel04mediaduration=10

carousel05mediatype=source
carousel05file=4
carousel05mediaduration=30

The example above has 4 images and one source (so 5 scenes). The 5th scene is the quad view; source 4 is set up below to show the Quad to enable its inclusion in the carousel.

Note that the 4th image above is located in the /home/pi/custom_media folder. It is recommended that site-specific images are saved in that folder, which will not be over-written during software updates.

Analogue Talkback Audio on Carousel

If using an i2c analogue audio switcher, the talkback audio can be enabled during the carousel

# Analogue talkback audio (144.75) can be turned on or off using the MCP23008 i2c switcher
talkbackaudio=on
talkbackaudioi2cbit=7

If using hdmi audio, the talkback can be input on the USB mic dongle (along with the DTMF) and output on the HDMI audio during the carousel. The audio gain is set by the dtmfaudiogain parameter as they both use the same input. Facility introduced in release 202402190.

# Talkback audio on DTMF input can also be output on the controller (k/cw ident) audio channel
# Volume is set by dtmfaudiogain above
controllertalkbackaudio=on

Input configuration

Recommended gpio pins for "input active" are 32, 35, 18, 22, 16, 19 and 21. The availableinputs number must be set to the number of possibly active (external, in addition to the controller) video sources. activeinputhold (yes/no) means that lower priority inputs do not get replaced by higher priority active inputs (except priority 1 inputs). If showquadformultipleinputs is set to yes, then the quad is sleected when 2 or more if its inputs are active.

Cascaded switches refers to whether 2 4-input switches are daisy chaned t get 7 (controller plus 6 external) inputs.

 availableinputs=6
 activeinputhold=no
 showquadformultipleinputs=yes
 cascadedswitches=no

Output video switch config

The output video switch configuration is defined by this block. The switching method is defined by outputswitchcontrol=. This can be ir, gpio or html. For ir or html, the gpio outputs can also be active if showoutputongpio= is set to yes.

The ir code to reset the hdmi switch (not currently used) is set in outputhdmiresetcode. The ir code to select a second (daisy-chained) hdmi switch is set in output2ndhdmicode. The ir code to select a quad view is set in outputhdmiquadcode.

The outputi2caddress is the base address for an i2c video switch, and the outputi2cquadchannel is the quad select for an i2c video switch. Neither of these codes are currently implemented.

outputswitchcontrol=ir
showoutputongpio=yes
outputhdmiresetcode=nec:0x17
output2ndhdmicode=nec:0x17
outputhdmiquadcode=nec:0x18
outputi2caddress=3
outputi2cquadchannel=9

Bitfocus Companion Server Settings

# Bitfocus Companion (html) server address & port (no trailing slash)
networkctrlurl=http://192.0.1.176:8888
# Other net commands have leading slash
outputquadnetcommand=/press/bank/1/11

Configure input 0 - always allocated to controller

The configuration for the controller output 6 elements (currently).

The input0name is the text name displayed on the Configuration screen.

The IR code required to select the controller video and send it to the repeater output is stated in output0code. The format is protocol:hex code. A 2 is added to the beginning of the string if the the input is on the second, daisy-chained, hdmi switch (ie 2nec:0x17). If GPIO switching of outputs is used, the output0hdmiswitchpin indicates which pin should be used. If an i2c-controlled video switcher is used, output0i2cchannel indicates which channel should be selected to display that input. Similarly, if network commands are being used to control an ATEM switch through BitFocus companion, the tail end of the network command is defined by output0netcommand.

For audio i2c switching, the correct bit is set by output0audioi2cbit.

input0name=Controller
output0code=nec:0x17
#output0code=2nec:0x17 (daisy chain)
output0hdmiswitchpin=36
output0i2cchannel=1
output0netcommand=/press/bank/1/8
output0audioi2cbit=0

Configuration of External Inputs

The configuration for each input has 11 elements (currently).

The inputxname is the text name displayed on the "announce" caption and on the Configuration screen. The priority level can be set from 1 to 9. A priority level of 9 means that the input is not displayed unless it is viewed as part of the quad or is directly selected by a DTMF command.

The inputxactivegpiopin is the physical pin number that the attached receiver sets high to indicate that a signal is present. The IR code required to select the input and send it to the repeater output is stated in outputxcode. The format is protocol:hex code. A 2 is added to the beginning of the string if the the input is on the second, daisy-chained, hdmi switch (ie 2nec:0x12). If GPIO switching of outputs is used, the outputxhdmiswitchpin indicates which pin should be used. If an i2c-controlled video switcher is used, outputxi2cchannel indicates which channel should be selected to display that input. Similarly, if network commands are being used to control an ATEM switch through BitFocus companion, the tail end of the network command is defined by outputxnetcommand.

For audio i2c switching, the correct bit is set by outputxaudioi2cbit.

The default announce media settings work with the captions that are generated during repeater start-up. The can be cahnge for custom media if required.

Configure input 1

input1name=Stream Input
input1prioritylevel=1
input1activegpiopin=32
output1code=nec:0x12
output1hdmiswitchpin=37
output1i2cchannel=2
output1netcommand=/press/bank/1/1
output1audioi2cbit=1
input1announcemediatype=jpg
input1announcemediafile=/home/pi/tmp/input1.jpg
input1announcemediaduration=3

Configure input 2

input2name=QO-100 RX
input2prioritylevel=2
input2activegpiopin=35
output2code=nec:0x59
output2hdmiswitchpin=38
output2i2cchannel=3
output2netcommand=/press/bank/1/2
output2audioi2cbit=2
input2announcemediatype=jpg
input2announcemediafile=/home/pi/tmp/input2.jpg
input2announcemediaduration=3

Configure input 3

input3name=3.4 GHz Ryde
input3prioritylevel=3
input3activegpiopin=18
output3code=nec:0x08
output3hdmiswitchpin=33
output3i2cchannel=4
output3netcommand=/press/bank/1/3
output3audioi2cbit=3
input3announcemediatype=jpg
input3announcemediafile=/home/pi/tmp/input3.jpg
input3announcemediaduration=3

Configure input 4

Input 4 is set to display the quad view. This enables it to be included in the carousel (as source 4).

input4name=Quad View
input4prioritylevel=7
input4activegpiopin=22
output4code=nec:0x18
#output4code=2nec:0x12 (daisy chain, not quad)
output4hdmiswitchpin=31
output4i2cchannel=5
output4netcommand=/press/bank/1/4
output4audioi2cbit=4
input4announcemediatype=jpg
input4announcemediafile=/home/pi/tmp/input4.jpg
input4announcemediaduration=3

Configure input 5

input5name=Mast Camera
input5prioritylevel=7
input5activegpiopin=16
output5code=2nec:0x59
output5hdmiswitchpin=29
output5i2cchannel=6
output5netcommand=/press/bank/1/5
output5audioi2cbit=5
input5announcemediatype=jpg
input5announcemediafile=/home/pi/tmp/input5.jpg
input5announcemediaduration=10

Configure input 6

input6name=Unused 6
input6prioritylevel=9
input6activegpiopin=19
output6code=2nec:0x08
#output6code=2nec:0x08 (daisy chain)
output6hdmiswitchpin=23
output6i2cchannel=7
output6netcommand=/press/bank/1/6
output6audioi2cbit=6
input6announcemediatype=jpg
input6announcemediafile=/home/pi/tmp/input6.jpg
input6announcemediaduration=3

Configure input 7

input7name=Unused 7
input7prioritylevel=9
input7activegpiopin=21
output7code=2nec:0x08
#output7code=2nec:0x12 (daisy chain)
output7hdmiswitchpin=24
output7i2cchannel=8
output7netcommand=/press/bank/1/7
output7audioi2cbit=7
input7announcemediatype=jpg
input7announcemediafile=/home/pi/tmp/input7.jpg
input7announcemediaduration=3