> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/function-blocks/blocks-reference/input-output/image-inputs/basler-camera.md).

# Basler Camera

This function block connects to a Basler camera and provides live frames for your scenario. It is designed for industrial cameras and offers network configuration and timeout controls suitable for reliable frame grabbing.

## 📥 Inputs <a href="#inputs" id="inputs"></a>

This block does not require any input sockets.

## 📤 Outputs <a href="#outputs" id="outputs"></a>

`Image`\
Latest camera frame. If the camera is unavailable the output will be empty (None) until a frame can be retrieved.

## 🕹️ Controls <a href="#controls" id="controls"></a>

`IP Address`\
Enter the camera IP address. Leave empty to try the first detected Basler camera on the network.

`NAT Address`\
Optional. Use when the camera is reachable via a NAT address different from the camera IP.

`Destination Address`\
Optional. Use when the camera should send multicast or is routed to a specific computer address.

`Trigger Ready Timeout (ms)`\
Maximum wait time (milliseconds) before sending a software trigger to the camera.

`Retrieve Result Timeout (ms)`\
Maximum wait time (milliseconds) to receive the frame after the trigger is sent.

Note: The block will attempt to (re)connect automatically when parameters change. Use the controls above to configure connectivity and timing.

## 🎨 Features <a href="#features" id="features"></a>

* Reliable connection to Basler cameras with IP and NAT support.
* Timeout controls to tune responsiveness for network or camera delays.
* Automatic reconnect on parameter changes or temporary failures.
* Outputs the latest frame in real time for downstream processing.

## 📝 Usage Instructions <a href="#usage" id="usage"></a>

1. Fill `IP Address` if you know the camera address. Otherwise leave empty to use the first available Basler camera.
2. Optionally set `NAT Address` or `Destination Address` if your network requires it.
3. Adjust `Trigger Ready Timeout (ms)` and `Retrieve Result Timeout (ms)` if you encounter delays.
4. Add downstream blocks that consume the `Image` output to build your pipeline.

## 📊 Evaluation <a href="#evaluation" id="evaluation"></a>

When running, this block will provide the most recent frame from the configured Basler camera on the `Image` output. If the camera cannot be reached or a frame cannot be retrieved, the output will be empty until the connection is restored.

## 💡 Tips and Tricks <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Preview frames quickly by connecting the `Image` output to `Show Image`.
* Save captured frames or sequences with `Image Logger` or `Record Video` for offline review.
* If your AI blocks struggle with very large frames, insert `Image Resizer` before heavy processing to reduce image size and improve throughput.
* For detection or inspection tasks, pair with `Object Detection`, `Object Detection - Custom`, or `Mask Detection` to analyze live frames.
* Use `Super Resolution` after capture when you need improved visual detail for downstream analysis.
* Crop or focus on areas of interest using `Image ROI Select` or `Image ROI` before applying detectors to reduce false positives and speed up processing.

## 🛠️ Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

* If no frames appear, check network connectivity and that the camera is powered and reachable at the configured address.
* If frames are delayed or time out, increase `Trigger Ready Timeout (ms)` and/or `Retrieve Result Timeout (ms)`.
* If connection keeps failing after parameter changes, verify the addresses and try restarting the camera hardware or network equipment.
