Skip to content

Developer Resources

This page collects the official resources you need to build integrations with the BATCAM FX series and FX Viewer. It provides API references (playgrounds), public example repositories, protocol schemas, and software download links. Check the linked repositories and documents for the latest status of each resource.

API Reference & Playground

Explore each product’s embedded REST API and call endpoints directly in the OpenAPI-spec-based playground. On both products, the device serves the API itself.

ProductAPI ReferenceAuthenticationDefault Device IP
BATCAM FXFX API PlaygroundHTTP Basic192.168.0.30
BATCAM FX2FX2 API PlaygroundHTTP Basic or Bearer (JWT)192.168.0.80
  • Some BATCAM FX endpoints (overlay, ROS) are only available on firmware 1.0.3 or later.

  • BATCAM FX2 exposes its live spec directly on the device: GET http://{device_ip}/api-docs/json

  • Real-time audio/beamforming streaming (WebSocket + Protobuf) is not covered by the REST spec. See the Example Code and Protocol Definitions sections below.

💡 Note: Be sure to change the factory-default account password when you first sign in.

Product × Interface Documentation Routing

Use the table below to jump to the document for the interface you want to integrate.

InterfaceBATCAM FXBATCAM FX2FX Viewer
REST APIPlaygroundPlayground
Real-time Stream (WebSocket + Protobuf, RTSP)Data Flow OverviewPython Protobuf Example
ROS 2ROS Integration
ONVIFONVIF
Modbus TCPModbus Integration
Device Management Web UIDevice Manager
FX CloudFX Cloud Login
Software UpdateWeb Software UpdateSoftware Updatedownload.smins.kr
Firmware Release NotesRelease NotesRelease Notes

Example Code

ExampleTarget ProductsLanguageWhat It Covers
fx-api-example-csharp (GitHub)BATCAM FXC#Receive the WebSocket stream → decode Protobuf → composite the overlay onto RTSP video. Includes a GUI example
batcam-fx-python-protobuf-example (GitHub)BATCAM FX · FX2PythonREST status queries, WebSocket Subscribe, and parsing Protobuf messages (Beamforming / Audio / LPoint / Prpd)
  • A step-by-step walkthrough of the Python example (environment setup, binding generation, receiving each message type, FX2 changes) is available on the Python Protobuf Example page in the FX2 developer documentation.

  • When connecting over WebSocket, set the SubProtocol to Subscribe, and after connecting, send a subscription request with a Subscribe object to start receiving data.

  • WebSocket connections require user authentication, just like RTSP. If your library does not support authentication, add an Authorization header containing {username}:{password} encoded in base64. For details, see the BATCAM FX Developer Docs Overview.

Protocol Definitions

The example repositories are public on GitHub (SM-Instruments-Inc), and the protocol definition repositories are public on the OSS GitLab (smins-oss).

RepositoryContents
fx-stream-protocol (GitLab)Protobuf schemas and pre-generated files used to encode/decode FX stream data. The canonical schema is fx-protocol-2.proto, which serves as the basis for generating bindings for each language.
fx-stream-msgs (GitLab)ROS 2 interface (message) type definitions that BATCAM FX uses to transmit data. For the detailed specification, see the ROS Integration document.

Example of generating Python bindings from the schema.

Terminal window
# Install protoc (macOS / Homebrew)
brew install protobuf
# Generate Python bindings
protoc --python_out=. fx-protocol-2.proto

Software Downloads

Official software releases such as FX Viewer are available from the download hub download.smins.kr. For device firmware change history, see each product’s release notes (BATCAM FX, BATCAM FX2).