Bill 2 weeks

BirdNET-Cloud

Bat Station Remote Tuning Reference

A guide to the advanced detection parameters for bat monitoring stations


This document describes the tunable parameters available for BirdNET-Cloud bat stations through the Remote Tuning panel in the dashboard (station settings → Remote tuning → Add override). Each parameter can be set per station without SSH access or a station restart on your part — the station applies changes automatically within a few minutes.

These are advanced controls. The defaults are chosen to work well across a wide range of sites and species. You should only change them if you have a specific reason — for example, persistent false positives from insects or rain, or missing detections of a known low-frequency species. When in doubt, leave a parameter unset so it uses its default.

How bat detection works

Understanding the pipeline makes the parameters below far easier to reason about. Each recorded segment passes through two stages:

  1. The classifier. A region-specific BattyBirdNET neural network listens to the ultrasonic audio and proposes a species with a confidence score. This stage answers “what does this sound like?”
  2. The pulse-train gate. Before a proposed detection is accepted, a signal-analysis stage checks that the audio actually contains a genuine bat echolocation pass, a sequence of well-spaced ultrasonic pulses, rather than a single rain click, an insect tone, or a wind smear. This stage answers “is this really a bat?” and is where most of the tunable parameters live.

Most false positives (rain, katydids, crickets, mechanical noise) are rejected by the pulse-train gate, not the classifier. Most missed bats are caused by a gate parameter set too aggressively for the species or site. The parameters below let you balance those two failure modes for your conditions.

A note on the frequency band: the single most impactful, and most easily misused, parameter is the lower band edge. Several bats (Hoary and Silver-haired bats, for example) call as low as 20–27 kHz. If the pulse-detection band floor is set above their call frequency, the classifier will still recognize them at high confidence, but the pulse-train gate will find zero pulses and reject every one. Raise the band floor only if you are certain low-frequency bats are not present at your site.



The pulse-train gate

These parameters govern the core false-positive filter. A real echolocation pass is a sequence of short, well-spaced ultrasonic pulses; rain is a single broadband click; insects are narrow continuous tones. The gate examines a roughly one-second window around each classifier hit and confirms a bat-like pulse sequence before accepting the detection.

Gate mode

Variable

BIRDNET_BAT_PULSE_GATE

Default

drop

Range / values

drop | log | off

What it does

Controls what the pulse-train gate does with a classifier hit that lacks a valid pulse train. “drop” suppresses it (fewer false IDs). “log” keeps everything but records what it would have dropped — useful for observing the gate’s effect before committing. “off” disables the gate entirely.

When to adjust

Set to “log” for a night or two when first tuning a new site, review how many detections would be dropped, then switch back to “drop”. Use “off” only for diagnostics.


Minimum pulses

Variable

BIRDNET_BAT_MIN_PULSES

Default

4

Range / values

Integer, typically 2–8

What it does

The number of distinct ultrasonic pulses that must be present in the analysis window for a detection to be accepted. A rain click produces one pulse; a real pass produces many.

When to adjust

Lower toward 2–3 if brief passes or single-call species are being missed. Raise toward 5–6 if noise is still slipping through as false detections. Setting this too high is a common cause of missed bats.


Analysis window

Variable

BIRDNET_BAT_PULSE_WINDOW_MS

Default

1000

Range / values

Milliseconds, typically 500–2000

What it does

The width of the time window (in milliseconds) around each classifier hit that is examined for a pulse train.

When to adjust

Rarely changed. A wider window gives slow, sparse passes more room to accumulate the required pulse count; a narrower window is stricter.


Pulse detection threshold

Variable

BIRDNET_BAT_PULSE_DB

Default

4.0

Range / values

Decibels above local noise floor

What it does

How far above the surrounding noise floor a peak must rise to count as a pulse. Higher values require louder, clearer pulses.

When to adjust

Raise if faint background noise is being counted as pulses. Lower if quiet or distant passes are being missed.


Inter-pulse interval — minimum

Variable

BIRDNET_BAT_IPI_MIN_MS

Default

3.0

Range / values

Milliseconds

What it does

The shortest allowed gap between consecutive pulses. Pulses closer together than this are treated as a single event or noise, not two pulses.

When to adjust

Rarely changed. Lower only if working with very high-repetition-rate calls (e.g. terminal feeding buzzes) that you want counted pulse-by-pulse.


Inter-pulse interval — maximum

Variable

BIRDNET_BAT_IPI_MAX_MS

Default

300.0

Range / values

Milliseconds

What it does

The longest allowed gap between consecutive pulses that still counts as part of the same pulse train. Gaps longer than this break the sequence.

When to adjust

Raise for slow-flying species with widely spaced calls if their passes are being fragmented and rejected. Lower to be stricter about what counts as a continuous pass.




Frequency band

These two parameters define the frequency range the pulse detector searches. They are the primary discriminator against low-frequency noise — and, if set incorrectly, the most common cause of missed low-frequency bats.

Lower band edge

Variable

BIRDNET_BAT_BAND_LO_KHZ

Default

22.0

Range / values

kHz, typically 18–30

What it does

The lower frequency edge (in kHz) of the band searched for pulses. Insect chorus, hum, and broadband clicks mostly die out below ~18–20 kHz, so a floor around 22–24 kHz excludes them while keeping genuine echolocation (roughly 25–90 kHz).

When to adjust

Lower toward 20 kHz if low-frequency bats (Hoary, Silver-haired) are being missed — they call as low as ~20 kHz. Raise only if low-frequency noise is getting through AND you are certain no low-frequency bats are present. This is the highest-impact parameter in this document; a floor set too high silently rejects entire species.


Upper band edge

Variable

BIRDNET_BAT_BAND_HI_KHZ

Default

90.0

Range / values

kHz, typically 80–125

What it does

The upper frequency edge (in kHz) of the band searched for pulses. Covers the great majority of bat echolocation.

When to adjust

Raise toward 110–125 kHz if monitoring very high-frequency species whose calls sit above 90 kHz. Note the usable ceiling is set by the microphone’s sample rate (an AudioMoth at 250 kHz gives ~125 kHz of usable bandwidth).


Pulse-shape filters (rain, insects, wind)

These parameters reject specific classes of non-bat noise based on the shape of individual pulses. They are the knobs to reach for when a station is producing false detections tied to weather or insects.

Tonality limit (insect filter)

Variable

BIRDNET_BAT_TONAL_MAX

Default

0.5

Range / values

0.0–1.0  (1.0 = disabled)

What it does

A real echolocation pulse is a frequency sweep (broadband); insect stridulation (katydids, crickets) is a narrow tone. A pulse is rejected if more than this fraction of its energy sits within ~1 kHz of its peak frequency — i.e. it is too tonal to be a bat.

When to adjust

Lower (e.g. 0.4) to kill more insect noise, at the risk of dropping genuine constant-frequency bat calls. Raise toward 1.0 to disable the check if it is rejecting real bats in an insect-quiet environment.


Continuity limit (wind/rain smear filter)

Variable

BIRDNET_BAT_MAX_RUN_MS

Default

35.0

Range / values

Milliseconds  (very high = disabled)

What it does

A real pulse is short (≤ ~5 ms) followed by a silent gap. Wind, rain, and mechanical noise produce a continuous broadband smear — energy on for hundreds of milliseconds. If the longest unbroken run of in-band energy exceeds this many milliseconds, the window is treated as a smear and rejected.

When to adjust

Raise to be more permissive if real passes are being rejected as smears. Set very high (e.g. 100000) to disable. Lower to be stricter about wind and rain.


Maximum pulse bandwidth (rain-click filter)

Variable

BIRDNET_BAT_MAX_BW_KHZ

Default

999.0  (off)

Range / values

kHz  (999 = disabled)

What it does

Rain-droplet clicks are ultra-broadband — they spread across a very wide frequency range in a single instant. Bat pulses are focused sweeps. A pulse whose instantaneous spectral bandwidth exceeds this value is rejected as a click. Disabled by default so existing stations are unaffected until deliberately tuned.

When to adjust

Enable (try ~40 kHz, then lower toward 20) only on a station with a persistent rain-click false-positive problem. Set too low, it will reject genuine broadband FM sweeps — so lower it gradually and watch for missed bats.




Capture and confidence

Minimum confidence

Variable

BIRDNET_BAT_MIN_CONFIDENCE

Default

0.65

Range / values

0.0–1.0

What it does

The minimum classifier confidence score for a detection to be considered at all (before the pulse-train gate). Higher values keep only the classifier’s most certain identifications.

When to adjust

Raise toward 0.8 if you want only high-certainty IDs and can accept missing marginal ones. Lower toward 0.5 to surface more candidates (the pulse-train gate will still filter noise), at the cost of more borderline IDs.


Segment length

Variable

BIRDNET_BAT_SEGMENT_SECONDS

Default

10

Range / values

Seconds, typically 5–15

What it does

The length of each recorded audio segment that is captured and analyzed as a unit.

When to adjust

Rarely changed. Shorter segments give slightly finer time resolution and faster Live View turnover; longer segments are marginally more efficient. The default suits nearly all deployments.


Keep rejected samples (diagnostic)

Variable

BIRDNET_BAT_KEEP_REJECTED

Default

0  (off)

Range / values

Integer (number of samples to retain)

What it does

For diagnostics: retains a random sample of spectrograms that the pulse-train gate rejected, so you can review what is being filtered out and whether the gate is too aggressive. 0 keeps none.

When to adjust

Set to a small number (e.g. 20–50) temporarily when investigating whether the gate is dropping real bats at a site. Return to 0 for normal operation to avoid accumulating diagnostic images.


Hybrid stations (bird + bat)

A hybrid station runs a bird microphone and a bat (ultrasonic) microphone simultaneously. One additional parameter applies specifically to hybrids.

Bird daytime-only (duty split)

Variable

BIRDNET_BIRD_DAYTIME_ONLY

Default

false  (off)

Range / values

true | false

What it does

When enabled on a hybrid, the bird analyzer only runs during daylight (dawn to dusk), leaving the whole night to the bat detector. The bat pipeline already runs only at night, so this creates a clean day-birds / night-bats duty split and avoids wasting processing on bird analysis when birds are not calling.

When to adjust

Enable on a hybrid station where you want a clean handoff between the two pipelines. The handoff follows real sunrise and sunset from the station’s GPS coordinates. Leave off to analyze birds continuously.


Practical tuning guidance

A few principles that will save time in the field:

  • Change one parameter at a time, and give it at least one full night before judging the effect. Bat activity varies enormously night to night.
  • If you are getting false positives, identify the source first. Insect tones → tonality limit. Rain clicks → maximum pulse bandwidth. Wind smears → continuity limit. Reaching for the wrong knob will cost you real detections.
  • If you are missing bats, suspect the lower band edge and the minimum-pulses count first — these are the two parameters most likely to silently reject a real species.
  • Use “log” gate mode or the keep-rejected diagnostic to see what the gate is filtering before you commit to a stricter setting.
  • To reset any parameter to its default, simply remove the override in the dashboard — the station will return to the documented default value automatically.

BirdNET-Cloud · Bat Station Remote Tuning Reference · pixcams.com

Forgot Password?
Don't have an account? Sign up