INOGENI CAM230 User Guide
Version 1.1
June 2, 2023
Version History
Version | Date | Description |
---|---|---|
1.0 | April 12, 2023 | First release. |
1.1 | June 2, 2023 | Added new REMOTE connectivity. Added power consumption limit for USB cameras. Added RCM statement. Added minor modifications to RESTAPI. Added firmware update procedure. |
Typical Application
This section describes a typical connection diagram for the CAM230 device in a videoconferencing setup.
Diagram Description: The diagram shows the INOGENI CAM230 connected to a TV monitor, CODECS, and Matrixes via HDMI. It also shows connections to a laptop via USB 2.0 for video and audio, and to two USB 3.0/2.0 cameras and an HDMI camera. An RS-232 connection is also shown, along with IP control and PoE support. A Zoom application is depicted on the laptop.
Block Diagram
This section provides a simple block diagram to illustrate the product's usage.
Diagram Description: The block diagram shows the INOGENI CAM230's internal structure. Inputs include USB3.0/2.0 cameras and HDMI, feeding into a 'Power management' block. Outputs are USB2.0 camera output and HDMI output. Control interfaces are shown for Status LEDs, Buttons, Power, IP (Control + PoE), and RS232.
The device functions as a video switch, connecting to USB3.0/2.0 and HDMI cameras. It outputs video content from the selected source simultaneously over HDMI and USB2.0. This feature simplifies camera switching in videoconferencing equipment without needing to adjust UC settings.
Audio Routing
The device can connect to USB microphones/speakerphones and receive audio from an HDMI feed. These audio sources can be sent over the HDMI output and to the USB2.0 output.
The USB2.0 interface includes a digital audio interface for microphones and speakers. UC software connected to the USB2.0 camera interface can receive and transmit audio from/to the connected USB videobar.
Device Interfaces
This section details the device's interfaces.
Front Side Connections:
- 1: Input selection buttons
- 2: Input status LEDs (PWR, POE, 1, 2, 3)
Back Side Connections:
- 3: HDMI OUT
- 4: USB2.0 OUT
- 5: USB3.0 INPUT (x2)
- 6: HDMI INPUT
- 7: RS232 and remote interface
- 8: LAN/PoE interface
- 9: +12VDC power input
LEDs Behavior
This table describes the behavior of the device's LEDs.
LED | State | Description |
---|---|---|
Power input | OFF | No power. |
SOLID | Device is powered up. | |
PoE | OFF | Not powered from PoE. |
SOLID | Powered from PoE. | |
Input led | OFF | Input not detected and not selected. |
LOW | Input detected and not selected. | |
FLASH-LOW | Input not detected and selected. | |
HIGH | Input detected and selected. |
Specifications
This section provides the complete specifications for the INOGENI CAM230.
Physical Details
Dimensions (W x L x H) | 17.33 cm x 11.57 cm x 3.26 cm 6.82" x 4.55" x 1.28" |
Power supply | 12V (100-240 VAC 50/60Hz to 12V/1.2A DC) or PoE source compliant with IEEE 802.3af (802.3at Type 1) |
Weight | 606 g |
Package content | 1 x USB 2.0 Type-B to Type-A cable (3ft). 1 x terminal block connection. 1 x 12V power supply. |
Operating temperature | 0° to 45° C (32° to 113° F) |
Storage temperature | -40° to 105° C (-40° to 221° F) |
Relative humidity | 0% to 90% non-condensing |
UPC code | 51497302825 |
Origin | Canada |
Warranty | 2 years |
USB Inputs
2x USB 3.0 inputs | 1x USB 3.0/2.0 camera Uncompressed, YUYV/NV12/I420 – 1080p30 MJPEG - 1080p30 |
USB Power | Up to 1.2A shared between the USB ports |
HDMI Input
Resolution | 1080p50/60 fps, 720p50/60 fps |
Connector | HDMI |
HDMI Output
Resolution | 3840x2160p23.98/24/25/29.97/30 fps, 1080p50/60 fps, 720p50/60 fps |
Connector | HDMI |
USB 2.0 Output
USB-B Type-B connector | Device will expose a UVC interface over USB 2.0 up to 1080p30 MJPEG with a digital audio input and output interfaces |
Audio
Digital audio I/O | Embedded in HDMI or USB |
Control
Control options | Front buttons RS-232 LAN USB |
IP interface | 100 Mbps half-duplex (autonegotiation not supported) Supports DHCP or static IP addressing |
RS232 interface | Baud rate: 9600 Data bits: 8 Stop bits: 1 Parity: None Flow control: None |
Certifications
HDCP compliant | The device does not decrypt BD/DVD movies, satellite/cable receivers or other encrypted sources. |
Certifications | FCC, CE, RoHS, IEC62368, SoV, RCM |
TAA-compliant | Yes |
Compatibility
Operating system | NO driver installation necessary Windows 7 and above (32/64-bit) macOS 10.10 and above Linux (kernel v2.6.38 and above) |
Cameras Supported | Cameras (or video Source) with a HDMI or USB outputs |
Software Compatibility | UVC-compliant. Runs with all software compatible to DirectShow/MediaFoundation, V4L2, QuickTime and AVFoundation. |
Serial Communication Protocol
This section lists the commands provided through the serial connection and the pinout of the terminal block on the back of the device.
Terminal Block Pinout:
- Pin 1: Receive
- Pin 2: GND
- Pin 3: Transmit
- Pin 4: 5V supply (for INOGENI Remote)
Commands typically return ACK for success and NACK for failure. Serial interface must be enabled via REST API for commands to be parsed.
Serial Communication Parameters: Baud rate: 9600 // Data bits: 8 // Stop bits: 1 // Parity: None // Flow control: None
Command | Argument(s) | Description |
---|---|---|
HELP | None | Return command list with description |
RSTR | None | Restore default settings (including password and rest api token) |
RESET | None | Reset/reboot the device |
IP | None | Returns IP address |
VERSION | None | Returns firmware version |
STATUS | None | Return devices, video/audio inputs and HDMI output status |
PAN | 1 argument (integer) | Relative pan of the selected camera. Sign specifies direction. Recommended values: -10 to 10. |
TILT | 1 argument (integer) | Relative tilt of the selected camera. Sign specifies direction. Recommended values: -10 to 10. |
ZOOM | 1 argument (integer) | Relative zoom of the selected camera. Sign specifies direction. Recommended values: -10 to 10. |
SETHDMI | 1 argument (integer) | Set HDMI output mode. Possible parameters: 0 => 1080P60, 1 => 1080P50, 2 => 720P60, 3 => 720P50, 4 => 4K24, 5 => 4K25, 6 => 4K30 |
SETVIDEOFORMAT | 2 arguments (integer) | Set video input format. 1st arg: <inputPort> (1=USB #1, 2=USB #2, 4=Test pattern). 2nd arg: <formatIndex>. |
GETVIDEOFORMATS | 1 argument (integer) | Get video input format. Argument specifies the video input port (1=USB #1, 2=USB #2, 3=HDMI, 4=Test pattern). |
SETAUDIOINPUT | 1 argument (integer) | Set audio input. Argument specifies the index of the audio input (start at 0). Use STATUS command for available inputs. |
SETVIDEOINPUT | 1 argument (integer) | Set video input. Argument specifies the port of the video input (1=USB #1, 2=USB #2, 3=HDMI, 4=Test pattern). Use STATUS command for available inputs. |
SETVIDEOINPUTMODE | 1 argument (integer) | Set video input switching mode. 0 = automatic switching, 1 = manual switching. |
INOGENI Remote
The INOGENI Remote connects to the terminal block port for operation. Ensure wiring is correct and set DIP SW6 to ON to power the remote. Refer to the 'DIP SWITCHES' section and the INOGENI REMOTE user manual for details.
Important: Do not plug an RJ45 cable between the INOGENI device and the REMOTE.
Terminal block: Pin 1: Receive, Pin 2: GND, Pin 3: Transmit, Pin 4: 5V supply.
RJ45: Pin 1: 5V supply, Pin 2,3,4,5: NC, Pin 6: GND, Pin 7: RX, Pin 8: TX.
Communication Protocols
LAN Communication Protocol
Access device settings via the LAN interface using DHCP or static IP addressing. Obtain IP from the Inogeni Control App or serial port command. The LAN interface operates at 100Mbps half-duplex.
CDC-NCM Communication Protocol
Control the device via the CDC-NCM interface on the USB2.0 port. This interface offers the same functions as the LAN interface, with requests made over USB for easier configuration. CDC-NCM IP address: 169.254.10.10.
PoE
The device can be powered by a 12V power supply or a PoE compliant source. The 12V power supply takes priority if connected.
Webpage Interface
The device can be configured and upgraded via its webpage, accessible through IP or the CDC-NCM interface over USB2.0. The default login credentials are username: 'admin', password: 'admin'.
Screenshot Description: A screenshot shows the INOGENI CAM230 login page in a web browser, with fields for username and password, and 'Sign in' and 'Cancel' buttons.
Status Page
The STATUS page provides information about the installed firmware, video, and audio devices.
Screenshot Description: A screenshot of the INOGENI CAM230 web interface's 'Status' page displays sections for 'General' (Software Version, Board Revision, Temperature), 'Video' (Inputs: USB port 1, USB port 2, HDMI port; Outputs: HDMI output, USB output), and 'Audio' (Active Source).
Configuration Tab
The CONFIGURATION tab allows users to:
- Set the HDMI resolution over HDMI.
- Set the selected camera source.
- Set the video input switching mode:
- AUTO: Device switches to the newly detected video source.
- MANUAL: Device switches only when control is received.
- Set the audio input from USB sources or HDMI input.
Screenshot Description: A screenshot of the INOGENI CAM230 web interface's 'Configuration' page shows options for video resolution, selected video input (Logitech BRIO, HDMI input, Test pattern), video input switching mode (Auto), and selected audio input.
System Tab
The SYSTEM tab allows users to:
- Change the device password.
- Get/Set REST API access tokens.
- Change network settings.
- Restore default settings and reboot the system.
- Update the system firmware.
Screenshot Description: A screenshot of the INOGENI CAM230 web interface's 'System' page displays sections for 'Security' (Password, REST API access token), 'Network' (Static/DHCP IP settings), 'Miscellaneous' (Restore/Reboot), and 'Update' (Firmware Upgrade).
Firmware Update
To update the system:
- Click the "Choose File" button and browse to the WIC file downloaded from the INOGENI website.
- Click the "Update CAM230" button to proceed. The update process can take up to 1 minute, after which the device will reboot and the browser will refresh.
Screenshot Description: Two screenshots illustrate the firmware update process: one showing the file selection dialog for the WIC file, and another showing a message indicating the device update has started and redirection will occur after 60 seconds.
Documentation Tab
The DOCUMENTATION tab provides access to:
- The latest user guide.
- The product webpage.
Screenshot Description: A screenshot of the INOGENI CAM230 web interface's 'Documentation' tab shows links to 'User Guide' and 'Product Details'.
When accessing the webpage for the first time, browsers may flag the connection as insecure due to the use of self-signed HTTPS certificates, which are necessary for non-globally accessible addresses. The webpage allows setting HDMI resolution, USB video input format, webpage password, and generating REST API access tokens. It can also be used for device firmware upgrades.
REST API
The REST API responses are typically JSON formatted with a "message" field indicating success or the cause of an error. Bearer authentication can be enabled via the configuration page for enhanced security.
The following table lists commands supported by the REST API (excluding password change, firmware update, and bearer token management):
Command URL / Description | Body arguments | Return code | Return body |
---|---|---|---|
GET/POSThttps://<IP>/api/v1/rstr Restore default settings (including password and rest api token) |
200 => success 400 => error 401 => authorization error |
{ "message": <String> } |
|
GET/POSThttps://<IP>/api/v1/reset Reset/reboot the device |
200 => success 400 => error 401 => authorization error |
{ "message": <String> } |
|
GEThttps://<IP>/api/v1/version Returns firmware version |
200 => success 401 => authorization error |
{ "major": <Integer>, |
|
GEThttps://<IP>/api/v1/status Return devices, video/audio inputs and HDMI output status |
200 => success 401 => authorization error |
JSON object with multiple fields | |
GET/POSThttps://<IP>/api/v1/pan Relative pan of the selected camera |
pan=<Integer> The sign specifies the direction. We multiply the argument by the camera smallest step, and if the speed is too fast, we go as fast as the camera allow. We recommend using values between -10 and 10. |
200 => success 400 => error 401 => authorization error |
{ "message": <String> } |
GET/POSThttps://<IP>/api/v1/tilt Relative tilt of the selected camera |
tilt=<Integer> The sign specifies the direction. We multiply the argument by the camera smallest step, and if the speed is too fast, we go as fast as the camera allow. We recommend using values between -10 and 10. |
200 => success 400 => error 401 => authorization error |
{ "message": <String> } |
GET/POSThttps://<IP>/api/v1/zoom Relative zoom of the selected camera |
zoom=<Integer> The sign specifies the direction. We multiply the argument by the camera smallest step, and if the speed is too fast, we go as fast as the camera allow. We recommend using values between -10 and 10. |
200 => success 400 => error 401 => authorization error |
{ "message": <String> } |
GET/POSThttps://<IP>/api/v1/setHdmi Set HDMI output mode |
mode=<hdmiModeIndex> Possible <hdmiModeIndex> parameters: 0 => 1080P60 1 => 1080P50 2 => 720P60 3 => 720P50 4 => 4K24 5 => 4K25 6 => 4K30 |
200 => success 400 => error 401 => authorization error |
{ "message": <String> } |
GET/POSThttps://<IP>/api/v1/setVideoFormat Set video input format |
x-www-form-urlencoded input=<inputPort> format=<formatIndex> Possible <inputPort> parameters: 1 => USB input #1 2 => USB input #2 4 => Test pattern |
200 => success 400 => error 401 => authorization error |
{ "message": <String> } |
GEThttps://<IP>/api/v1/getVideoFormats Get video input format |
input=<Integer> If input argument is not provided, will use currently selected input Possible <Integer> parameters: 1 => USB input #1 2 => USB input #2 3 => HDMI input 4 => Test pattern |
200 => success 400 => error 401 => authorization error |
JSON array containing all formats for requested input. |
GET/POSThttps://<IP>/api/v1/setAudioInput Set audio input |
input=<Integer> The argument specifies the index of the audio input. To see available inputs, use "status" command. |
200 => success 400=> error 401 => authorization error |
{ "message": <String> } |
GET/POSThttps://<IP>/api/v1/setVideoInput Set video input |
input=<Integer> Possible <Integer> parameters: 1 => USB input #1 2 => USB input #2 3 => HDMI input 4 => Test pattern The argument specifies the index of the video input. To see available inputs, use "status" command. |
200 => success 400=> error 401 => authorization error |
{ "message": <String> } |
GET/POSThttps://<IP>/api/v1/setVideoInputMode Set video input switching mode |
mode=<mode> Possible <mode> parameters: 0 => automatic switching 1 => manual switching |
200 => success 400 => error 401 => authorization error |
{ "message": <String> } |
GET/POSThttps://<IP>/api/v1/disableSerialInterface Disable serial interface |
disable=<Integer> If integer is not 0, will disable serial interface, otherwise will enable it. This function must be used when using the "serialRead" and "serialWrite" commands. |
200 => success 400 => error 401 => authorization error |
{ "message": <String> } |
GEThttps://<IP>/api/v1/serialRead Read serial data from RS232 |
200 => success 400 => error 401 => authorization error |
Message field contains characters read from RS232 | |
GET/POSThttps://<IP>/api/v1/serialWrite Write serial data to RS232. Giving content to write in URL is not supported. |
<Content to write> | 200 => success 400 => error 401 => authorization error |
{ "message": <String> } |
The following commands manage password, bearer tokens, and firmware updates. Authentication uses basic auth with the same credentials as the webpage (default: user='admin', password='admin').
Command URL / Description | Body arguments | Return code | Return body |
---|---|---|---|
POSThttps://<IP>/api/v1/changePassword?password=<newPassword> Change the webpage password |
200 => success 400 => error 401 => authorization error |
{ "message": <String> } |
|
GEThttps://<IP>/api/v1/getAccessToken Return the bearer token |
200 => success 400 => error 401 => authorization error |
{ "token": <String> } |
|
POSThttps://<IP>/api/v1/generateAccessToken |
200 => success 400 => error 401 => authorization error |
{ "message": <String> } |
|
POSThttps://<IP/api/v1/update |
Must use formdata body. The key must be myFile, and the value is of type file. Expects a .wic file from official update packages. |
200 => success 400 => error 401 => authorization error |
{ "message": <String> } |
Network configuration can be managed using the setNetwork
command. If the mode is static, IP, netmask, and optionally gateway arguments must be provided. Arguments can also be embedded directly in the URL, e.g., GET https://<IP>/api/v1/setVideoFormat?input=1&format=0
.
INOGENI Control App
The INOGENI Control App allows monitoring of firmware information and unit upgrades. Use the provided USB-B to USB-A cable to connect the unit for detection by the app.
Screenshot Description: A screenshot of the INOGENI Control App (Version 3.12.52) shows the device status (INOGENI CAM230), preferred device selection, video and audio input/output devices, firmware information, and video/USB details.
Mechanical Specifications
This section provides mechanical specifications, including dimensions in millimeters [inches].
Diagram Description (Top Plate Dimensions): Technical drawings display the top and side views of the INOGENI CAM230, indicating dimensions for width, depth, and height.
Diagram Description (Bottom Plate Dimensions and Holes Positions): Technical drawings show the bottom view of the INOGENI CAM230, detailing dimensions and the positions of mounting holes.
DIP Switches
This section describes the behavior of the DIP switches located on the back of the unit.
Switch | Position | Description |
---|---|---|
SW1 | OFF / ON | For future use. |
SW2 | OFF / ON | For future use. |
SW3 | OFF / ON | For future use. |
SW4 | OFF / ON | For future use. |
SW5 | OFF / ON | Reserved. |
SW6 | OFF | Disable 5V on terminal block. |
SW6 | ON | Enable 5V on terminal block. This switch must be set to power up the connected remote. |
Troubleshooting Section
This section addresses common issues and their resolutions.
Problem | Resolution |
---|---|
The device keeps rebooting when we connect USB powered cameras. The device is connected to a PoE switch. | If connecting high-consuming USB cameras powered by the USB bus, use the provided power supply to manage power demand. |
We cannot detect the USB output on the PC when using it with a USB extender. | The device has a USB2.0 interface only. Ensure the USB extender supports USB2.0. Compatible USB extenders can be found at: https://inogeni.com/support/compatible-usb-extenders/ |
We cannot get the HDMI feed to go through the device. | Check the following: - Ensure HDMI connection is correct; HDMI cable should be within 30ft. Consider an active HDMI extension if needed. - Monitor the HDMI LED status. - Check video resolution via the app or web interface. - Ensure the HDMI feed is not an encrypted HDCP source (e.g., Blu-ray player, set-top box). The HDMI input is compatible with HDMI cameras. |
My camera software running on my computer is not detecting the camera while the CAM230 is connected in line. | This is expected behavior as the PC is agnostic of the USB camera. The device supports UVC controls (pan, tilt, zoom) and can route them to the selected camera. |
LAN interface is not working properly. Firmware updates from LAN interface takes a long time or hang/timeout. | Ensure the connected LAN port uses 100Mbps half-duplex. Duplex mismatches can cause slow updates. The LAN interface does not perform autonegotiation. |
Support
INOGENI offers expert support for video professionals. Key resources include:
- Expert Technical Support team: Contact support@inogeni.com for immediate assistance or technical questions.
- Extensive Knowledge Base: Learn from other customers' experiences.
Copyright 2023 by INOGENI INC. All Rights Reserved. INOGENI name and logo are trademarks or registered trademarks of INOGENI. Product specifications are subject to change without notice.
INOGENI, Inc.
1045 Avenue Wilfrid-Pelletier
Suite 101
Québec, QC, Canada, G1W0C6
(418) 651-3383
Certifications
FCC Radio Frequency Interference Statement Warning: This device complies with Part 15 of the FCC rules. Operation is subject to two conditions: (1) it must not cause harmful interference, and (2) it must accept any interference received, including interference that may cause undesired operation.
IC Statement: This Class A digital apparatus complies with Canadian CAN ICES-3(A)/NMB-3(A).
CE Statement: INOGENI Inc. declares that the CAM230 conforms to European Standards EN 55032, EN 55035, and RoHS Directive 2011/65/EU + 2015/863/EU.
WEEE Statement: Regulations for the collection and recycling of electrical and electronic equipment (WEEE) are established by the European Union. Please check local and state government guidelines or contact your national WEEE recycling agency for disposal information.
RCM Statement: This device is compliant with Regulator Compliance Mark (RCM) certification.