bands.json
· 5.0 KiB · JSON
Bruto
[
{
"name": "160m",
"lower_bound": 1810000,
"upper_bound": 2000000,
"frequencies": {
"bpsk31": 1838000,
"ft8": 1840000,
"wspr": 1836600,
"jt65": 1838000,
"jt9": 1839000,
"js8": 1842000
}
},
{
"name": "80m",
"lower_bound": 3500000,
"upper_bound": 3800000,
"frequencies": {
"bpsk31": 3580000,
"ft8": 3573000,
"wspr": 3592600,
"jt65": 3570000,
"jt9": 3572000,
"ft4": [3568000, 3575000],
"js8": 3578000
}
},
{
"name": "60m",
"lower_bound": 5351500,
"upper_bound": 5366500,
"frequencies": {
"ft8": 5357000,
"wspr": 5364700
}
},
{
"name": "40m",
"lower_bound": 7000000,
"upper_bound": 7200000,
"frequencies": {
"bpsk31": 7040000,
"ft8": 7074000,
"wspr": 7038600,
"jt65": 7076000,
"jt9": 7078000,
"ft4": 7047500,
"js8": 7078000
}
},
{
"name": "30m",
"lower_bound": 10100000,
"upper_bound": 10150000,
"frequencies": {
"bpsk31": 10141000,
"ft8": 10136000,
"wspr": 10138700,
"jt65": 10138000,
"jt9": 10140000,
"ft4": 10140000,
"js8": 10130000
}
},
{
"name": "20m",
"lower_bound": 14000000,
"upper_bound": 14350000,
"frequencies": {
"bpsk31": 14070000,
"ft8": 14074000,
"wspr": 14095600,
"jt65": 14076000,
"jt9": 14078000,
"ft4": 14080000,
"js8": 14078000
}
},
{
"name": "17m",
"lower_bound": 18068000,
"upper_bound": 18168000,
"frequencies": {
"bpsk31": 18098000,
"ft8": 18100000,
"wspr": 18104600,
"jt65": 18102000,
"jt9": 18104000,
"ft4": 18104000,
"js8": 18104000
}
},
{
"name": "15m",
"lower_bound": 21000000,
"upper_bound": 21450000,
"frequencies": {
"bpsk31": 21070000,
"ft8": 21074000,
"wspr": 21094600,
"jt65": 21076000,
"jt9": 21078000,
"ft4": 21140000,
"js8": 21078000
}
},
{
"name": "12m",
"lower_bound": 24890000,
"upper_bound": 24990000,
"frequencies": {
"bpsk31": 24920000,
"ft8": 24915000,
"wspr": 24924600,
"jt65": 24917000,
"jt9": 24919000,
"ft4": 24919000,
"js8": 24922000
}
},
{
"name": "10m",
"lower_bound": 28000000,
"upper_bound": 29700000,
"frequencies": {
"bpsk31": [28070000, 28120000],
"ft8": 28074000,
"wspr": 28124600,
"jt65": 28076000,
"jt9": 28078000,
"ft4": 28180000,
"js8": 28078000
}
},
{
"name": "6m",
"lower_bound": 50030000,
"upper_bound": 51000000,
"frequencies": {
"bpsk31": 50305000,
"ft8": 50313000,
"wspr": 50293000,
"jt65": 50310000,
"jt9": 50312000,
"ft4": 50318000,
"js8": 50318000
}
},
{
"name": "4m",
"lower_bound": 70150000,
"upper_bound": 70200000,
"frequencies": {
"wspr": 70091000
}
},
{
"name": "2m",
"lower_bound": 144000000,
"upper_bound": 148000000,
"frequencies": {
"packet": 145570000
}
},
{
"name": "70cm",
"lower_bound": 430000000,
"upper_bound": 440000000,
"frequencies": {
"pocsag": 439987500
}
},
{
"name": "23cm",
"lower_bound": 1240000000,
"upper_bound": 1300000000
},
{
"name": "13cm",
"lower_bound": 2320000000,
"upper_bound": 2450000000
},
{
"name": "9cm",
"lower_bound": 3400000000,
"upper_bound": 3475000000
},
{
"name": "6cm",
"lower_bound": 5650000000,
"upper_bound": 5850000000
},
{
"name": "3cm",
"lower_bound": 10000000000,
"upper_bound": 10500000000
},
{
"name": "120m Broadcast",
"lower_bound": 2300000,
"upper_bound": 2495000
},
{
"name": "90m Broadcast",
"lower_bound": 3200000,
"upper_bound": 3400000
},
{
"name": "75m Broadcast",
"lower_bound": 3900000,
"upper_bound": 4000000
},
{
"name": "60m Broadcast",
"lower_bound": 4750000,
"upper_bound": 4995000
},
{
"name": "49m Broadcast",
"lower_bound": 5900000,
"upper_bound": 6200000
},
{
"name": "41m Broadcast",
"lower_bound": 7200000,
"upper_bound": 7450000
},
{
"name": "31m Broadcast",
"lower_bound": 9400000,
"upper_bound": 9900000
},
{
"name": "25m Broadcast",
"lower_bound": 11600000,
"upper_bound": 12100000
},
{
"name": "22m Broadcast",
"lower_bound": 13570000,
"upper_bound": 13870000
},
{
"name": "19m Broadcast",
"lower_bound": 15100000,
"upper_bound": 15830000
},
{
"name": "16m Broadcast",
"lower_bound": 17480000,
"upper_bound": 17900000
},
{
"name": "15m Broadcast",
"lower_bound": 18900000,
"upper_bound": 19020000
},
{
"name": "13m Broadcast",
"lower_bound": 21450000,
"upper_bound": 21850000
},
{
"name": "11m Broadcast",
"lower_bound": 25670000,
"upper_bound": 26100000
}
]
| 1 | [ |
| 2 | { |
| 3 | "name": "160m", |
| 4 | "lower_bound": 1810000, |
| 5 | "upper_bound": 2000000, |
| 6 | "frequencies": { |
| 7 | "bpsk31": 1838000, |
| 8 | "ft8": 1840000, |
| 9 | "wspr": 1836600, |
| 10 | "jt65": 1838000, |
| 11 | "jt9": 1839000, |
| 12 | "js8": 1842000 |
| 13 | } |
| 14 | }, |
| 15 | { |
| 16 | "name": "80m", |
| 17 | "lower_bound": 3500000, |
| 18 | "upper_bound": 3800000, |
| 19 | "frequencies": { |
| 20 | "bpsk31": 3580000, |
| 21 | "ft8": 3573000, |
| 22 | "wspr": 3592600, |
| 23 | "jt65": 3570000, |
| 24 | "jt9": 3572000, |
| 25 | "ft4": [3568000, 3575000], |
| 26 | "js8": 3578000 |
| 27 | } |
| 28 | }, |
| 29 | { |
| 30 | "name": "60m", |
| 31 | "lower_bound": 5351500, |
| 32 | "upper_bound": 5366500, |
| 33 | "frequencies": { |
| 34 | "ft8": 5357000, |
| 35 | "wspr": 5364700 |
| 36 | } |
| 37 | }, |
| 38 | { |
| 39 | "name": "40m", |
| 40 | "lower_bound": 7000000, |
| 41 | "upper_bound": 7200000, |
| 42 | "frequencies": { |
| 43 | "bpsk31": 7040000, |
| 44 | "ft8": 7074000, |
| 45 | "wspr": 7038600, |
| 46 | "jt65": 7076000, |
| 47 | "jt9": 7078000, |
| 48 | "ft4": 7047500, |
| 49 | "js8": 7078000 |
| 50 | } |
| 51 | }, |
| 52 | { |
| 53 | "name": "30m", |
| 54 | "lower_bound": 10100000, |
| 55 | "upper_bound": 10150000, |
| 56 | "frequencies": { |
| 57 | "bpsk31": 10141000, |
| 58 | "ft8": 10136000, |
| 59 | "wspr": 10138700, |
| 60 | "jt65": 10138000, |
| 61 | "jt9": 10140000, |
| 62 | "ft4": 10140000, |
| 63 | "js8": 10130000 |
| 64 | } |
| 65 | }, |
| 66 | { |
| 67 | "name": "20m", |
| 68 | "lower_bound": 14000000, |
| 69 | "upper_bound": 14350000, |
| 70 | "frequencies": { |
| 71 | "bpsk31": 14070000, |
| 72 | "ft8": 14074000, |
| 73 | "wspr": 14095600, |
| 74 | "jt65": 14076000, |
| 75 | "jt9": 14078000, |
| 76 | "ft4": 14080000, |
| 77 | "js8": 14078000 |
| 78 | } |
| 79 | }, |
| 80 | { |
| 81 | "name": "17m", |
| 82 | "lower_bound": 18068000, |
| 83 | "upper_bound": 18168000, |
| 84 | "frequencies": { |
| 85 | "bpsk31": 18098000, |
| 86 | "ft8": 18100000, |
| 87 | "wspr": 18104600, |
| 88 | "jt65": 18102000, |
| 89 | "jt9": 18104000, |
| 90 | "ft4": 18104000, |
| 91 | "js8": 18104000 |
| 92 | } |
| 93 | }, |
| 94 | { |
| 95 | "name": "15m", |
| 96 | "lower_bound": 21000000, |
| 97 | "upper_bound": 21450000, |
| 98 | "frequencies": { |
| 99 | "bpsk31": 21070000, |
| 100 | "ft8": 21074000, |
| 101 | "wspr": 21094600, |
| 102 | "jt65": 21076000, |
| 103 | "jt9": 21078000, |
| 104 | "ft4": 21140000, |
| 105 | "js8": 21078000 |
| 106 | } |
| 107 | }, |
| 108 | { |
| 109 | "name": "12m", |
| 110 | "lower_bound": 24890000, |
| 111 | "upper_bound": 24990000, |
| 112 | "frequencies": { |
| 113 | "bpsk31": 24920000, |
| 114 | "ft8": 24915000, |
| 115 | "wspr": 24924600, |
| 116 | "jt65": 24917000, |
| 117 | "jt9": 24919000, |
| 118 | "ft4": 24919000, |
| 119 | "js8": 24922000 |
| 120 | } |
| 121 | }, |
| 122 | { |
| 123 | "name": "10m", |
| 124 | "lower_bound": 28000000, |
| 125 | "upper_bound": 29700000, |
| 126 | "frequencies": { |
| 127 | "bpsk31": [28070000, 28120000], |
| 128 | "ft8": 28074000, |
| 129 | "wspr": 28124600, |
| 130 | "jt65": 28076000, |
| 131 | "jt9": 28078000, |
| 132 | "ft4": 28180000, |
| 133 | "js8": 28078000 |
| 134 | } |
| 135 | }, |
| 136 | { |
| 137 | "name": "6m", |
| 138 | "lower_bound": 50030000, |
| 139 | "upper_bound": 51000000, |
| 140 | "frequencies": { |
| 141 | "bpsk31": 50305000, |
| 142 | "ft8": 50313000, |
| 143 | "wspr": 50293000, |
| 144 | "jt65": 50310000, |
| 145 | "jt9": 50312000, |
| 146 | "ft4": 50318000, |
| 147 | "js8": 50318000 |
| 148 | } |
| 149 | }, |
| 150 | { |
| 151 | "name": "4m", |
| 152 | "lower_bound": 70150000, |
| 153 | "upper_bound": 70200000, |
| 154 | "frequencies": { |
| 155 | "wspr": 70091000 |
| 156 | } |
| 157 | }, |
| 158 | { |
| 159 | "name": "2m", |
| 160 | "lower_bound": 144000000, |
| 161 | "upper_bound": 148000000, |
| 162 | "frequencies": { |
| 163 | "packet": 145570000 |
| 164 | } |
| 165 | }, |
| 166 | { |
| 167 | "name": "70cm", |
| 168 | "lower_bound": 430000000, |
| 169 | "upper_bound": 440000000, |
| 170 | "frequencies": { |
| 171 | "pocsag": 439987500 |
| 172 | } |
| 173 | }, |
| 174 | { |
| 175 | "name": "23cm", |
| 176 | "lower_bound": 1240000000, |
| 177 | "upper_bound": 1300000000 |
| 178 | }, |
| 179 | { |
| 180 | "name": "13cm", |
| 181 | "lower_bound": 2320000000, |
| 182 | "upper_bound": 2450000000 |
| 183 | }, |
| 184 | { |
| 185 | "name": "9cm", |
| 186 | "lower_bound": 3400000000, |
| 187 | "upper_bound": 3475000000 |
| 188 | }, |
| 189 | { |
| 190 | "name": "6cm", |
| 191 | "lower_bound": 5650000000, |
| 192 | "upper_bound": 5850000000 |
| 193 | }, |
| 194 | { |
| 195 | "name": "3cm", |
| 196 | "lower_bound": 10000000000, |
| 197 | "upper_bound": 10500000000 |
| 198 | }, |
| 199 | { |
| 200 | "name": "120m Broadcast", |
| 201 | "lower_bound": 2300000, |
| 202 | "upper_bound": 2495000 |
| 203 | }, |
| 204 | { |
| 205 | "name": "90m Broadcast", |
| 206 | "lower_bound": 3200000, |
| 207 | "upper_bound": 3400000 |
| 208 | }, |
| 209 | { |
| 210 | "name": "75m Broadcast", |
| 211 | "lower_bound": 3900000, |
| 212 | "upper_bound": 4000000 |
| 213 | }, |
| 214 | { |
| 215 | "name": "60m Broadcast", |
| 216 | "lower_bound": 4750000, |
| 217 | "upper_bound": 4995000 |
| 218 | }, |
| 219 | { |
| 220 | "name": "49m Broadcast", |
| 221 | "lower_bound": 5900000, |
| 222 | "upper_bound": 6200000 |
| 223 | }, |
| 224 | { |
| 225 | "name": "41m Broadcast", |
| 226 | "lower_bound": 7200000, |
| 227 | "upper_bound": 7450000 |
| 228 | }, |
| 229 | { |
| 230 | "name": "31m Broadcast", |
| 231 | "lower_bound": 9400000, |
| 232 | "upper_bound": 9900000 |
| 233 | }, |
| 234 | { |
| 235 | "name": "25m Broadcast", |
| 236 | "lower_bound": 11600000, |
| 237 | "upper_bound": 12100000 |
| 238 | }, |
| 239 | { |
| 240 | "name": "22m Broadcast", |
| 241 | "lower_bound": 13570000, |
| 242 | "upper_bound": 13870000 |
| 243 | }, |
| 244 | { |
| 245 | "name": "19m Broadcast", |
| 246 | "lower_bound": 15100000, |
| 247 | "upper_bound": 15830000 |
| 248 | }, |
| 249 | { |
| 250 | "name": "16m Broadcast", |
| 251 | "lower_bound": 17480000, |
| 252 | "upper_bound": 17900000 |
| 253 | }, |
| 254 | { |
| 255 | "name": "15m Broadcast", |
| 256 | "lower_bound": 18900000, |
| 257 | "upper_bound": 19020000 |
| 258 | }, |
| 259 | { |
| 260 | "name": "13m Broadcast", |
| 261 | "lower_bound": 21450000, |
| 262 | "upper_bound": 21850000 |
| 263 | }, |
| 264 | { |
| 265 | "name": "11m Broadcast", |
| 266 | "lower_bound": 25670000, |
| 267 | "upper_bound": 26100000 |
| 268 | } |
| 269 | ] |
| 270 |
bookmarks.json
· 315 B · Binary
Bruto
This file can't be rendered. Ver arquivo completo.
config_webrx.py
· 13 KiB · Python
Bruto
# -*- coding: utf-8 -*-
"""
config_webrx: configuration options for OpenWebRX
This file is part of OpenWebRX,
an open-source SDR receiver software with a web UI.
Copyright (c) 2013-2015 by Andras Retzler <[email protected]>
Copyright (c) 2019-2020 by Jakob Ketterl <[email protected]>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
In addition, as a special exception, the copyright holders
state that config_rtl.py and config_webrx.py are not part of the
Corresponding Source defined in GNU AGPL version 3 section 1.
(It means that you do not have to redistribute config_rtl.py and
config_webrx.py if you make any changes to these two configuration files,
and use them for running your web service with OpenWebRX.)
"""
# configuration version. please only modify if you're able to perform the associated migration steps.
version = 3
# NOTE: you can find additional information about configuring OpenWebRX in the Wiki:
# https://github.com/jketterl/openwebrx/wiki/Configuration-guide
# ==== Server settings ====
web_port = 8073
max_clients = 20
# ==== Web GUI configuration ====
receiver_name = "PU2NVX"
receiver_location = "São Paulo, Brasil"
receiver_asl = 745
receiver_admin = "[email protected]"
receiver_gps = {"lat": -23.638, "lon": -46.645}
photo_title = ""
# photo_desc allows you to put pretty much any HTML you like into the receiver description.
# The lines below should give you some examples of what's possible.
#photo_desc = """
#You can add your own background photo and receiver information.<br />
#Receiver is operated by: <a href="mailto:openwebrx@localhost" target="_blank">Receiver Operator</a><br/>
#Device: Receiver Device<br />
#Antenna: Receiver Antenna<br />
#Website: <a href="http://localhost" target="_blank">http://localhost</a>
#"""
# ==== Public receiver listings ====
# You can publish your receiver on online receiver directories, like https://www.receiverbook.de
# You will receive a receiver key from the directory that will authenticate you as the operator of this receiver.
# Please note that you not share your receiver keys publicly since anyone that obtains your receiver key can take over
# your public listing.
# Your receiver keys should be placed into this array:
receiver_keys = []
# If you list your receiver on multiple sites, you can place all your keys into the array above, or you can append
# keys to the arraylike this:
# receiver_keys += ["my-receiver-key"]
# If you're not sure, simply copy & paste the code you received from your listing site below this line:
# ==== DSP/RX settings ====
fft_fps = 15
fft_size = 8192 # Should be power of 2
fft_voverlap_factor = (
0.3 # If fft_voverlap_factor is above 0, multiple FFTs will be used for creating a line on the diagram.
)
audio_compression = "adpcm" # valid values: "adpcm", "none"
fft_compression = "adpcm" # valid values: "adpcm", "none"
# Tau setting for WFM (broadcast FM) deemphasis\
# Quote from wikipedia https://en.wikipedia.org/wiki/FM_broadcasting#Pre-emphasis_and_de-emphasis
# "In most of the world a 50 µs time constant is used. In the Americas and South Korea, 75 µs is used"
# Enable one of the following lines, depending on your location:
# wfm_deemphasis_tau = 75e-6 # for US and South Korea
wfm_deemphasis_tau = 75e-6 # for the rest of the world
digimodes_enable = True # Decoding digimodes come with higher CPU usage.
digimodes_fft_size = 2048
# determines the quality, and thus the cpu usage, for the ambe codec used by digital voice modes
# if you're running on a Raspi (up to 3B+) you'll want to leave this on 1
digital_voice_unvoiced_quality = 1
# enables lookup of DMR ids using the radioid api
digital_voice_dmr_id_lookup = True
"""
Note: if you experience audio underruns while CPU usage is 100%, you can:
- decrease `samp_rate`,
- set `fft_voverlap_factor` to 0,
- decrease `fft_fps` and `fft_size`,
- limit the number of users by decreasing `max_clients`.
"""
# ==== I/Q sources ====
# (Uncomment the appropriate by removing # characters at the beginning of the corresponding lines.)
###############################################################################
# Is my SDR hardware supported? #
# Check here: https://github.com/jketterl/openwebrx/wiki/Supported-Hardware #
###############################################################################
# Currently supported types of sdr receivers:
# "rtl_sdr", "rtl_sdr_soapy", "sdrplay", "hackrf", "airspy", "airspyhf", "fifi_sdr",
# "perseussdr", "lime_sdr", "pluto_sdr", "soapy_remote"
#
# In order to use rtl_sdr, you will need to install librtlsdr-dev and the connector.
# In order to use sdrplay, airspy or airspyhf, you will need to install soapysdr, the corresponding driver, and the
# connector.
#
# https://github.com/jketterl/owrx_connector
#
# In order to use Perseus HF you need to install the libperseus-sdr
#
# https://github.com/Microtelecom/libperseus-sdr
#
# and do the proper changes to the sdrs object below
# (see also Wiki in https://github.com/jketterl/openwebrx/wiki/Sample-configuration-for-Perseus-HF-receiver).
#
sdrs = {
"lmstcp": {
"name": "LimeNET Micro",
"type": "rtl_tcp",
"ppm": 0,
"profiles": {
"144 MHz": {
"device": "00001000",
"remote": "10.10.5.191:1234",
"rtltcp_compat": True,
"always-on": True,
"name": "Banda 2M (144MHz)",
"center_freq": 146000000,
"rf_gain": 10,
"samp_rate": 4000000,
"start_freq": 144000000,
"start_mod": "nfm",
},
},
},
}
# ==== Color themes ====
### google turbo colormap (see: https://ai.googleblog.com/2019/08/turbo-improved-rainbow-colormap-for.html)
waterfall_colors = [0x30123b, 0x311542, 0x33184a, 0x341b51, 0x351e58, 0x36215f, 0x372466, 0x38266c, 0x392973, 0x3a2c79, 0x3b2f80, 0x3c3286, 0x3d358b, 0x3e3891, 0x3e3a97, 0x3f3d9c, 0x4040a2, 0x4043a7, 0x4146ac, 0x4248b1, 0x424bb6, 0x434eba, 0x4351bf, 0x4453c3, 0x4456c7, 0x4559cb, 0x455bcf, 0x455ed3, 0x4561d7, 0x4663da, 0x4666dd, 0x4669e1, 0x466be4, 0x466ee7, 0x4671e9, 0x4673ec, 0x4676ee, 0x4678f1, 0x467bf3, 0x467df5, 0x4680f7, 0x4682f9, 0x4685fa, 0x4587fc, 0x458afd, 0x448cfe, 0x448ffe, 0x4391ff, 0x4294ff, 0x4196ff, 0x3f99ff, 0x3e9bff, 0x3d9efe, 0x3ba1fd, 0x3aa3fd, 0x38a6fb, 0x36a8fa, 0x35abf9, 0x33adf7, 0x31b0f6, 0x2fb2f4, 0x2db5f2, 0x2cb7f0, 0x2ab9ee, 0x28bcec, 0x26beea, 0x25c0e7, 0x23c3e5, 0x21c5e2, 0x20c7e0, 0x1fc9dd, 0x1dccdb, 0x1cced8, 0x1bd0d5, 0x1ad2d3, 0x19d4d0, 0x18d6cd, 0x18d8cb, 0x18dac8, 0x17dbc5, 0x17ddc3, 0x17dfc0, 0x18e0be, 0x18e2bb, 0x19e3b9, 0x1ae5b7, 0x1be6b4, 0x1de8b2, 0x1ee9af, 0x20eaad, 0x22ecaa, 0x24eda7, 0x27eea4, 0x29efa1, 0x2cf09e, 0x2ff19b, 0x32f298, 0x35f394, 0x38f491, 0x3cf58e, 0x3ff68b, 0x43f787, 0x46f884, 0x4af980, 0x4efa7d, 0x51fa79, 0x55fb76, 0x59fc73, 0x5dfc6f, 0x61fd6c, 0x65fd69, 0x69fe65, 0x6dfe62, 0x71fe5f, 0x75ff5c, 0x79ff59, 0x7dff56, 0x80ff53, 0x84ff50, 0x88ff4e, 0x8bff4b, 0x8fff49, 0x92ff46, 0x96ff44, 0x99ff42, 0x9cfe40, 0x9ffe3e, 0xa2fd3d, 0xa4fd3b, 0xa7fc3a, 0xaafc39, 0xacfb38, 0xaffa37, 0xb1f936, 0xb4f835, 0xb7f835, 0xb9f634, 0xbcf534, 0xbff434, 0xc1f334, 0xc4f233, 0xc6f033, 0xc9ef34, 0xcbee34, 0xceec34, 0xd0eb34, 0xd2e934, 0xd5e835, 0xd7e635, 0xd9e435, 0xdbe236, 0xdde136, 0xe0df37, 0xe2dd37, 0xe4db38, 0xe6d938, 0xe7d738, 0xe9d539, 0xebd339, 0xedd139, 0xeecf3a, 0xf0cd3a, 0xf1cb3a, 0xf3c93a, 0xf4c73a, 0xf5c53a, 0xf7c33a, 0xf8c13a, 0xf9bf39, 0xfabd39, 0xfaba38, 0xfbb838, 0xfcb637, 0xfcb436, 0xfdb135, 0xfdaf35, 0xfeac34, 0xfea933, 0xfea732, 0xfea431, 0xffa12f, 0xff9e2e, 0xff9c2d, 0xff992c, 0xfe962b, 0xfe932a, 0xfe9028, 0xfe8d27, 0xfd8a26, 0xfd8724, 0xfc8423, 0xfc8122, 0xfb7e20, 0xfb7b1f, 0xfa781e, 0xf9751c, 0xf8721b, 0xf86f1a, 0xf76c19, 0xf66917, 0xf56616, 0xf46315, 0xf36014, 0xf25d13, 0xf05b11, 0xef5810, 0xee550f, 0xed530e, 0xeb500e, 0xea4e0d, 0xe94b0c, 0xe7490b, 0xe6470a, 0xe4450a, 0xe34209, 0xe14009, 0xdf3e08, 0xde3c07, 0xdc3a07, 0xda3806, 0xd83606, 0xd63405, 0xd43205, 0xd23105, 0xd02f04, 0xce2d04, 0xcc2b03, 0xca2903, 0xc82803, 0xc62602, 0xc32402, 0xc12302, 0xbf2102, 0xbc1f01, 0xba1e01, 0xb71c01, 0xb41b01, 0xb21901, 0xaf1801, 0xac1601, 0xaa1501, 0xa71401, 0xa41201, 0xa11101, 0x9e1001, 0x9b0f01, 0x980d01, 0x950c01, 0x920b01, 0x8e0a01, 0x8b0901, 0x880801, 0x850701, 0x810602, 0x7e0502, 0x7a0402]
### original theme by teejez:
#waterfall_colors = [0x000000, 0x0000FF, 0x00FFFF, 0x00FF00, 0xFFFF00, 0xFF0000, 0xFF00FF, 0xFFFFFF]
### old theme by HA7ILM:
#waterfall_colors = [0x000000, 0x2e6893, 0x69a5d0, 0x214b69, 0x9dc4e0, 0xfff775, 0xff8a8a, 0xb20000]
# waterfall_min_level = -115 #in dB
# waterfall_max_level = 0
# waterfall_auto_level_margin = {"min": 20, "max": 30}
##For the old colors, you might also want to set [fft_voverlap_factor] to 0.
waterfall_min_level = -88 # in dB
waterfall_max_level = -20
waterfall_auto_level_margin = {"min": 3, "max": 10, "min_range": 50}
# Note: When the auto waterfall level button is clicked, the following happens:
# [waterfall_min_level] = [current_min_power_level] - [waterfall_auto_level_margin["min"]]
# [waterfall_max_level] = [current_max_power_level] + [waterfall_auto_level_margin["max"]]
#
# ___|________________________________________|____________________________________|________________________________________|___> signal power
# \_waterfall_auto_level_margin["min"]_/ |__ current_min_power_level | \_waterfall_auto_level_margin["max"]_/
# current_max_power_level __|
# === Experimental settings ===
# Warning! The settings below are very experimental.
csdr_dynamic_bufsize = False # This allows you to change the buffering mode of csdr.
csdr_print_bufsizes = False # This prints the buffer sizes used for csdr processes.
csdr_through = False # Setting this True will print out how much data is going into the DSP chains.
nmux_memory = 50 # in megabytes. This sets the approximate size of the circular buffer used by nmux.
google_maps_api_key = "--------"
# how long should positions be visible on the map?
# they will start fading out after half of that
# in seconds; default: 2 hours
map_position_retention_time = 2 * 60 * 60
# decoder queue configuration
# due to the nature of some operating modes (ft8, ft8, jt9, jt65, wspr and js8), the data is recorded for a given amount
# of time (6 seconds up to 2 minutes) and decoded at the end. this can lead to very high peak loads.
# to mitigate this, the recordings will be queued and processed in sequence.
# the number of workers will limit the total amount of work (one worker will losely occupy one cpu / thread)
decoding_queue_workers = 6
# the maximum queue length will cause decodes to be dumped if the workers cannot keep up
# if you are running background services, make sure this number is high enough to accept the task influx during peaks
# i.e. this should be higher than the number of decoding services running at the same time
decoding_queue_length = 10
# wsjt decoding depth will allow more results, but will also consume more cpu
wsjt_decoding_depth = 3
# can also be set for each mode separately
# jt65 seems to be somewhat prone to erroneous decodes, this setting handles that to some extent
wsjt_decoding_depths = {"jt65": 1}
# JS8 comes in different speeds: normal, slow, fast, turbo. This setting controls which ones are enabled.
js8_enabled_profiles = ["normal", "slow"]
# JS8 decoding depth; higher value will get more results, but will also consume more cpu
js8_decoding_depth = 3
temporary_directory = "/tmp/openwebrx"
services_enabled = True
services_decoders = ["ft8", "ft4", "wspr", "packet"]
# === aprs igate settings ===
# if you want to share your APRS decodes with the aprs network, configure these settings accordingly
aprs_callsign = "PU2NVX"
aprs_igate_enabled = True
aprs_igate_server = "soam.aprs2.net"
aprs_igate_password = "---------"
# beacon uses the receiver_gps setting, so if you enable this, make sure the location is correct there
aprs_igate_beacon = True
# path to the aprs symbols repository (get it here: https://[email protected]/hessu/aprs-symbols)
aprs_symbols_path = "/opt/aprs-symbols/png"
# === PSK Reporter setting ===
# enable this if you want to upload all ft8, ft4 etc spots to pskreporter.info
# this also uses the receiver_gps setting from above, so make sure it contains a correct locator
pskreporter_enabled = False
pskreporter_callsign = "PU2NVX"
# === Web admin settings ===
# this feature is experimental at the moment. it should not be enabled on shared receivers since it allows remote
# changes to the receiver settings. enable for testing in controlled environment only.
webadmin_enabled = False
| 1 | # -*- coding: utf-8 -*- |
| 2 | |
| 3 | """ |
| 4 | config_webrx: configuration options for OpenWebRX |
| 5 | |
| 6 | This file is part of OpenWebRX, |
| 7 | an open-source SDR receiver software with a web UI. |
| 8 | Copyright (c) 2013-2015 by Andras Retzler <[email protected]> |
| 9 | Copyright (c) 2019-2020 by Jakob Ketterl <[email protected]> |
| 10 | |
| 11 | This program is free software: you can redistribute it and/or modify |
| 12 | it under the terms of the GNU Affero General Public License as |
| 13 | published by the Free Software Foundation, either version 3 of the |
| 14 | License, or (at your option) any later version. |
| 15 | |
| 16 | This program is distributed in the hope that it will be useful, |
| 17 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 18 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 19 | GNU Affero General Public License for more details. |
| 20 | |
| 21 | You should have received a copy of the GNU Affero General Public License |
| 22 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 23 | |
| 24 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| 25 | |
| 26 | In addition, as a special exception, the copyright holders |
| 27 | state that config_rtl.py and config_webrx.py are not part of the |
| 28 | Corresponding Source defined in GNU AGPL version 3 section 1. |
| 29 | |
| 30 | (It means that you do not have to redistribute config_rtl.py and |
| 31 | config_webrx.py if you make any changes to these two configuration files, |
| 32 | and use them for running your web service with OpenWebRX.) |
| 33 | """ |
| 34 | |
| 35 | # configuration version. please only modify if you're able to perform the associated migration steps. |
| 36 | version = 3 |
| 37 | |
| 38 | # NOTE: you can find additional information about configuring OpenWebRX in the Wiki: |
| 39 | # https://github.com/jketterl/openwebrx/wiki/Configuration-guide |
| 40 | |
| 41 | # ==== Server settings ==== |
| 42 | web_port = 8073 |
| 43 | max_clients = 20 |
| 44 | |
| 45 | # ==== Web GUI configuration ==== |
| 46 | receiver_name = "PU2NVX" |
| 47 | receiver_location = "São Paulo, Brasil" |
| 48 | receiver_asl = 745 |
| 49 | receiver_admin = "[email protected]" |
| 50 | receiver_gps = {"lat": -23.638, "lon": -46.645} |
| 51 | photo_title = "" |
| 52 | # photo_desc allows you to put pretty much any HTML you like into the receiver description. |
| 53 | # The lines below should give you some examples of what's possible. |
| 54 | #photo_desc = """ |
| 55 | #You can add your own background photo and receiver information.<br /> |
| 56 | #Receiver is operated by: <a href="mailto:openwebrx@localhost" target="_blank">Receiver Operator</a><br/> |
| 57 | #Device: Receiver Device<br /> |
| 58 | #Antenna: Receiver Antenna<br /> |
| 59 | #Website: <a href="http://localhost" target="_blank">http://localhost</a> |
| 60 | #""" |
| 61 | |
| 62 | # ==== Public receiver listings ==== |
| 63 | # You can publish your receiver on online receiver directories, like https://www.receiverbook.de |
| 64 | # You will receive a receiver key from the directory that will authenticate you as the operator of this receiver. |
| 65 | # Please note that you not share your receiver keys publicly since anyone that obtains your receiver key can take over |
| 66 | # your public listing. |
| 67 | # Your receiver keys should be placed into this array: |
| 68 | receiver_keys = [] |
| 69 | # If you list your receiver on multiple sites, you can place all your keys into the array above, or you can append |
| 70 | # keys to the arraylike this: |
| 71 | # receiver_keys += ["my-receiver-key"] |
| 72 | |
| 73 | # If you're not sure, simply copy & paste the code you received from your listing site below this line: |
| 74 | |
| 75 | # ==== DSP/RX settings ==== |
| 76 | fft_fps = 15 |
| 77 | fft_size = 8192 # Should be power of 2 |
| 78 | fft_voverlap_factor = ( |
| 79 | 0.3 # If fft_voverlap_factor is above 0, multiple FFTs will be used for creating a line on the diagram. |
| 80 | ) |
| 81 | |
| 82 | audio_compression = "adpcm" # valid values: "adpcm", "none" |
| 83 | fft_compression = "adpcm" # valid values: "adpcm", "none" |
| 84 | |
| 85 | # Tau setting for WFM (broadcast FM) deemphasis\ |
| 86 | # Quote from wikipedia https://en.wikipedia.org/wiki/FM_broadcasting#Pre-emphasis_and_de-emphasis |
| 87 | # "In most of the world a 50 µs time constant is used. In the Americas and South Korea, 75 µs is used" |
| 88 | # Enable one of the following lines, depending on your location: |
| 89 | # wfm_deemphasis_tau = 75e-6 # for US and South Korea |
| 90 | wfm_deemphasis_tau = 75e-6 # for the rest of the world |
| 91 | |
| 92 | digimodes_enable = True # Decoding digimodes come with higher CPU usage. |
| 93 | digimodes_fft_size = 2048 |
| 94 | |
| 95 | # determines the quality, and thus the cpu usage, for the ambe codec used by digital voice modes |
| 96 | # if you're running on a Raspi (up to 3B+) you'll want to leave this on 1 |
| 97 | digital_voice_unvoiced_quality = 1 |
| 98 | # enables lookup of DMR ids using the radioid api |
| 99 | digital_voice_dmr_id_lookup = True |
| 100 | |
| 101 | """ |
| 102 | Note: if you experience audio underruns while CPU usage is 100%, you can: |
| 103 | - decrease `samp_rate`, |
| 104 | - set `fft_voverlap_factor` to 0, |
| 105 | - decrease `fft_fps` and `fft_size`, |
| 106 | - limit the number of users by decreasing `max_clients`. |
| 107 | """ |
| 108 | |
| 109 | # ==== I/Q sources ==== |
| 110 | # (Uncomment the appropriate by removing # characters at the beginning of the corresponding lines.) |
| 111 | |
| 112 | ############################################################################### |
| 113 | # Is my SDR hardware supported? # |
| 114 | # Check here: https://github.com/jketterl/openwebrx/wiki/Supported-Hardware # |
| 115 | ############################################################################### |
| 116 | |
| 117 | # Currently supported types of sdr receivers: |
| 118 | # "rtl_sdr", "rtl_sdr_soapy", "sdrplay", "hackrf", "airspy", "airspyhf", "fifi_sdr", |
| 119 | # "perseussdr", "lime_sdr", "pluto_sdr", "soapy_remote" |
| 120 | # |
| 121 | # In order to use rtl_sdr, you will need to install librtlsdr-dev and the connector. |
| 122 | # In order to use sdrplay, airspy or airspyhf, you will need to install soapysdr, the corresponding driver, and the |
| 123 | # connector. |
| 124 | # |
| 125 | # https://github.com/jketterl/owrx_connector |
| 126 | # |
| 127 | # In order to use Perseus HF you need to install the libperseus-sdr |
| 128 | # |
| 129 | # https://github.com/Microtelecom/libperseus-sdr |
| 130 | # |
| 131 | # and do the proper changes to the sdrs object below |
| 132 | # (see also Wiki in https://github.com/jketterl/openwebrx/wiki/Sample-configuration-for-Perseus-HF-receiver). |
| 133 | # |
| 134 | |
| 135 | sdrs = { |
| 136 | "lmstcp": { |
| 137 | "name": "LimeNET Micro", |
| 138 | "type": "rtl_tcp", |
| 139 | "ppm": 0, |
| 140 | "profiles": { |
| 141 | "144 MHz": { |
| 142 | "device": "00001000", |
| 143 | "remote": "10.10.5.191:1234", |
| 144 | "rtltcp_compat": True, |
| 145 | "always-on": True, |
| 146 | "name": "Banda 2M (144MHz)", |
| 147 | "center_freq": 146000000, |
| 148 | "rf_gain": 10, |
| 149 | "samp_rate": 4000000, |
| 150 | "start_freq": 144000000, |
| 151 | "start_mod": "nfm", |
| 152 | }, |
| 153 | }, |
| 154 | }, |
| 155 | } |
| 156 | |
| 157 | # ==== Color themes ==== |
| 158 | |
| 159 | ### google turbo colormap (see: https://ai.googleblog.com/2019/08/turbo-improved-rainbow-colormap-for.html) |
| 160 | waterfall_colors = [0x30123b, 0x311542, 0x33184a, 0x341b51, 0x351e58, 0x36215f, 0x372466, 0x38266c, 0x392973, 0x3a2c79, 0x3b2f80, 0x3c3286, 0x3d358b, 0x3e3891, 0x3e3a97, 0x3f3d9c, 0x4040a2, 0x4043a7, 0x4146ac, 0x4248b1, 0x424bb6, 0x434eba, 0x4351bf, 0x4453c3, 0x4456c7, 0x4559cb, 0x455bcf, 0x455ed3, 0x4561d7, 0x4663da, 0x4666dd, 0x4669e1, 0x466be4, 0x466ee7, 0x4671e9, 0x4673ec, 0x4676ee, 0x4678f1, 0x467bf3, 0x467df5, 0x4680f7, 0x4682f9, 0x4685fa, 0x4587fc, 0x458afd, 0x448cfe, 0x448ffe, 0x4391ff, 0x4294ff, 0x4196ff, 0x3f99ff, 0x3e9bff, 0x3d9efe, 0x3ba1fd, 0x3aa3fd, 0x38a6fb, 0x36a8fa, 0x35abf9, 0x33adf7, 0x31b0f6, 0x2fb2f4, 0x2db5f2, 0x2cb7f0, 0x2ab9ee, 0x28bcec, 0x26beea, 0x25c0e7, 0x23c3e5, 0x21c5e2, 0x20c7e0, 0x1fc9dd, 0x1dccdb, 0x1cced8, 0x1bd0d5, 0x1ad2d3, 0x19d4d0, 0x18d6cd, 0x18d8cb, 0x18dac8, 0x17dbc5, 0x17ddc3, 0x17dfc0, 0x18e0be, 0x18e2bb, 0x19e3b9, 0x1ae5b7, 0x1be6b4, 0x1de8b2, 0x1ee9af, 0x20eaad, 0x22ecaa, 0x24eda7, 0x27eea4, 0x29efa1, 0x2cf09e, 0x2ff19b, 0x32f298, 0x35f394, 0x38f491, 0x3cf58e, 0x3ff68b, 0x43f787, 0x46f884, 0x4af980, 0x4efa7d, 0x51fa79, 0x55fb76, 0x59fc73, 0x5dfc6f, 0x61fd6c, 0x65fd69, 0x69fe65, 0x6dfe62, 0x71fe5f, 0x75ff5c, 0x79ff59, 0x7dff56, 0x80ff53, 0x84ff50, 0x88ff4e, 0x8bff4b, 0x8fff49, 0x92ff46, 0x96ff44, 0x99ff42, 0x9cfe40, 0x9ffe3e, 0xa2fd3d, 0xa4fd3b, 0xa7fc3a, 0xaafc39, 0xacfb38, 0xaffa37, 0xb1f936, 0xb4f835, 0xb7f835, 0xb9f634, 0xbcf534, 0xbff434, 0xc1f334, 0xc4f233, 0xc6f033, 0xc9ef34, 0xcbee34, 0xceec34, 0xd0eb34, 0xd2e934, 0xd5e835, 0xd7e635, 0xd9e435, 0xdbe236, 0xdde136, 0xe0df37, 0xe2dd37, 0xe4db38, 0xe6d938, 0xe7d738, 0xe9d539, 0xebd339, 0xedd139, 0xeecf3a, 0xf0cd3a, 0xf1cb3a, 0xf3c93a, 0xf4c73a, 0xf5c53a, 0xf7c33a, 0xf8c13a, 0xf9bf39, 0xfabd39, 0xfaba38, 0xfbb838, 0xfcb637, 0xfcb436, 0xfdb135, 0xfdaf35, 0xfeac34, 0xfea933, 0xfea732, 0xfea431, 0xffa12f, 0xff9e2e, 0xff9c2d, 0xff992c, 0xfe962b, 0xfe932a, 0xfe9028, 0xfe8d27, 0xfd8a26, 0xfd8724, 0xfc8423, 0xfc8122, 0xfb7e20, 0xfb7b1f, 0xfa781e, 0xf9751c, 0xf8721b, 0xf86f1a, 0xf76c19, 0xf66917, 0xf56616, 0xf46315, 0xf36014, 0xf25d13, 0xf05b11, 0xef5810, 0xee550f, 0xed530e, 0xeb500e, 0xea4e0d, 0xe94b0c, 0xe7490b, 0xe6470a, 0xe4450a, 0xe34209, 0xe14009, 0xdf3e08, 0xde3c07, 0xdc3a07, 0xda3806, 0xd83606, 0xd63405, 0xd43205, 0xd23105, 0xd02f04, 0xce2d04, 0xcc2b03, 0xca2903, 0xc82803, 0xc62602, 0xc32402, 0xc12302, 0xbf2102, 0xbc1f01, 0xba1e01, 0xb71c01, 0xb41b01, 0xb21901, 0xaf1801, 0xac1601, 0xaa1501, 0xa71401, 0xa41201, 0xa11101, 0x9e1001, 0x9b0f01, 0x980d01, 0x950c01, 0x920b01, 0x8e0a01, 0x8b0901, 0x880801, 0x850701, 0x810602, 0x7e0502, 0x7a0402] |
| 161 | |
| 162 | ### original theme by teejez: |
| 163 | #waterfall_colors = [0x000000, 0x0000FF, 0x00FFFF, 0x00FF00, 0xFFFF00, 0xFF0000, 0xFF00FF, 0xFFFFFF] |
| 164 | |
| 165 | ### old theme by HA7ILM: |
| 166 | #waterfall_colors = [0x000000, 0x2e6893, 0x69a5d0, 0x214b69, 0x9dc4e0, 0xfff775, 0xff8a8a, 0xb20000] |
| 167 | # waterfall_min_level = -115 #in dB |
| 168 | # waterfall_max_level = 0 |
| 169 | # waterfall_auto_level_margin = {"min": 20, "max": 30} |
| 170 | ##For the old colors, you might also want to set [fft_voverlap_factor] to 0. |
| 171 | |
| 172 | waterfall_min_level = -88 # in dB |
| 173 | waterfall_max_level = -20 |
| 174 | waterfall_auto_level_margin = {"min": 3, "max": 10, "min_range": 50} |
| 175 | |
| 176 | # Note: When the auto waterfall level button is clicked, the following happens: |
| 177 | # [waterfall_min_level] = [current_min_power_level] - [waterfall_auto_level_margin["min"]] |
| 178 | # [waterfall_max_level] = [current_max_power_level] + [waterfall_auto_level_margin["max"]] |
| 179 | # |
| 180 | # ___|________________________________________|____________________________________|________________________________________|___> signal power |
| 181 | # \_waterfall_auto_level_margin["min"]_/ |__ current_min_power_level | \_waterfall_auto_level_margin["max"]_/ |
| 182 | # current_max_power_level __| |
| 183 | |
| 184 | # === Experimental settings === |
| 185 | # Warning! The settings below are very experimental. |
| 186 | csdr_dynamic_bufsize = False # This allows you to change the buffering mode of csdr. |
| 187 | csdr_print_bufsizes = False # This prints the buffer sizes used for csdr processes. |
| 188 | csdr_through = False # Setting this True will print out how much data is going into the DSP chains. |
| 189 | |
| 190 | nmux_memory = 50 # in megabytes. This sets the approximate size of the circular buffer used by nmux. |
| 191 | |
| 192 | google_maps_api_key = "--------" |
| 193 | |
| 194 | # how long should positions be visible on the map? |
| 195 | # they will start fading out after half of that |
| 196 | # in seconds; default: 2 hours |
| 197 | map_position_retention_time = 2 * 60 * 60 |
| 198 | |
| 199 | # decoder queue configuration |
| 200 | # due to the nature of some operating modes (ft8, ft8, jt9, jt65, wspr and js8), the data is recorded for a given amount |
| 201 | # of time (6 seconds up to 2 minutes) and decoded at the end. this can lead to very high peak loads. |
| 202 | # to mitigate this, the recordings will be queued and processed in sequence. |
| 203 | # the number of workers will limit the total amount of work (one worker will losely occupy one cpu / thread) |
| 204 | decoding_queue_workers = 6 |
| 205 | # the maximum queue length will cause decodes to be dumped if the workers cannot keep up |
| 206 | # if you are running background services, make sure this number is high enough to accept the task influx during peaks |
| 207 | # i.e. this should be higher than the number of decoding services running at the same time |
| 208 | decoding_queue_length = 10 |
| 209 | |
| 210 | # wsjt decoding depth will allow more results, but will also consume more cpu |
| 211 | wsjt_decoding_depth = 3 |
| 212 | # can also be set for each mode separately |
| 213 | # jt65 seems to be somewhat prone to erroneous decodes, this setting handles that to some extent |
| 214 | wsjt_decoding_depths = {"jt65": 1} |
| 215 | |
| 216 | # JS8 comes in different speeds: normal, slow, fast, turbo. This setting controls which ones are enabled. |
| 217 | js8_enabled_profiles = ["normal", "slow"] |
| 218 | # JS8 decoding depth; higher value will get more results, but will also consume more cpu |
| 219 | js8_decoding_depth = 3 |
| 220 | |
| 221 | temporary_directory = "/tmp/openwebrx" |
| 222 | |
| 223 | services_enabled = True |
| 224 | services_decoders = ["ft8", "ft4", "wspr", "packet"] |
| 225 | |
| 226 | # === aprs igate settings === |
| 227 | # if you want to share your APRS decodes with the aprs network, configure these settings accordingly |
| 228 | aprs_callsign = "PU2NVX" |
| 229 | aprs_igate_enabled = True |
| 230 | aprs_igate_server = "soam.aprs2.net" |
| 231 | aprs_igate_password = "---------" |
| 232 | # beacon uses the receiver_gps setting, so if you enable this, make sure the location is correct there |
| 233 | aprs_igate_beacon = True |
| 234 | |
| 235 | # path to the aprs symbols repository (get it here: https://[email protected]/hessu/aprs-symbols) |
| 236 | aprs_symbols_path = "/opt/aprs-symbols/png" |
| 237 | |
| 238 | # === PSK Reporter setting === |
| 239 | # enable this if you want to upload all ft8, ft4 etc spots to pskreporter.info |
| 240 | # this also uses the receiver_gps setting from above, so make sure it contains a correct locator |
| 241 | pskreporter_enabled = False |
| 242 | pskreporter_callsign = "PU2NVX" |
| 243 | |
| 244 | # === Web admin settings === |
| 245 | # this feature is experimental at the moment. it should not be enabled on shared receivers since it allows remote |
| 246 | # changes to the receiver settings. enable for testing in controlled environment only. |
| 247 | webadmin_enabled = False |
| 248 |