INOGENI CAM230
User Guide
User guide
Version 1.4
August 14, 2024

VERSION HISTORY
VersionDate

Description

1.0

April 12, 2023

First release.

1.1

June 2, 2023

1.2

August 15, 2023

1.3

September 25, 2023

1.4

August 14, 2024

•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

Added new REMOTE connectivity.
Added power consumption limit for USB cameras.
Added RCM statement.
Added minor modifications to RESTAPI.
Added firmware update procedure.
Added information for future mounting options.
Specified M2.5 mounting holes on enclosure.
Added information for RS232 command delimiters.
Added more precision regarding the “disableSerialInterface” commandover RESTAPI.
Added UKCA statement.
Simplified RESTAPI presentation.
Adding the “Auto (disable remote)” video switching mode.
Adding the “Audio follows video” audio switching mode.
Adding description on REST API token format.
Adding missing commands over RESTAPI and RS232.

CONTENTS
Version history ............................................................................................................................................................................. 1
Typical application ....................................................................................................................................................................... 2
Block diagram .............................................................................................................................................................................. 3
Audio routing ................................................................................................................................................................................ 3
Device interfaces ......................................................................................................................................................................... 4
LEDs behavior ............................................................................................................................................................................. 5
Specifications ............................................................................................................................................................................... 6
Serial communication protocol ..................................................................................................................................................... 8
INOGENI Remote ...................................................................................................................................................................... 10
LAN communication protocol ..................................................................................................................................................... 10
CDC-NCM communication protocol ........................................................................................................................................... 10
PoE ............................................................................................................................................................................................ 10
Webpage .................................................................................................................................................................................... 11
REST API ................................................................................................................................................................................... 17
INOGENI Control App ................................................................................................................................................................ 21
Mechanical specifications .......................................................................................................................................................... 22
DIP switches .............................................................................................................................................................................. 23
Troubleshooting section ............................................................................................................................................................. 24
Support....................................................................................................................................................................................... 25
Certifications .............................................................................................................................................................................. 25

1

TYPICAL APPLICATION
Here is a typical connection diagram used for the CAM230 device in a videoconferencing setup.

Figure 1: Common use case2

BLOCK DIAGRAM
Here is a simple block diagram to better understand the usage of the product.

Status leds

Power
Power
management
IP(Control + PoE)

Buttons

RS232
USB3.0/2.0 camera
input
USB2.0 camera
outputUSB3.0/2.0 camera
input
HDMI output
HDMI input

Figure 2: Basic block diagram

The device embeds a video switch that can connect to USB3.0/2.0 and HDMI cameras. The device will output video content
from the selected source over HDMI and USB2.0 outputs simultaneously.
This can give you a great asset to your videoconferencing equipment to switch camera interface easily without going into
your UC settings.

AUDIO ROUTING
The device can connect to USB microphones/speakerphones and on a HDMI feed that includes audio. These sources canbe sent over the HDMI output and to the USB2.0 output.
The USB2.0 interface embeds a digital audio interface which implements a microphone and a speaker device. Ultimately, theUC software connected to the USB2.0 camera interface can receive and transmit audio from/to the connected USB videobar.

3

DEVICE INTERFACES
Here are the devices interfaces.

Figure 3: Front side connections

Figure 4: Back side connections

Input selection buttons
Input status LEDs
HDMI output
USB2.0 camera output
USB3.0 camera inputs
HDMI camera input
RS232 and remote interface
LAN/PoE interface+12VDC power input

4

LEDS BEHAVIOR
Here are the LEDs behavior:Power input
OFF

No power.

SOLID

Device is powered up.

PoE
OFF

Not powered from PoE.

SOLIDPowered from PoE.

Input led
OFF

Input not detected and not selected.

LOW

Input detected and not selected.

HIGH

Input selected.

5

SPECIFICATIONS
Here is the complete specification.
Physical details

Operating temperature
Storage temperature
Relative humidity

17.33 cm x 11.57 cm x 3.26 cm
6.82” x 4.55” x 1.28”
12V (100-240 VAC 50/60Hz to 12V/1.2A DC)– or –
PoE source compliant with IEEE 802.3af (802.3at Type 1)
600 g
1 x USB 2.0 Type-B to Type-A cable (3ft).
1 x terminal block connection.
1 x 12V power supply.
0° to 45° C (32° to 113° F)-40° to 105° C (-40° to 221° F)
0% to 90% non-condensing

Mounting options
UPC code
OriginWarranty

Ability to mount under the table or on a wall. More details will follow shortly
51497302825
Canada2 years

Dimensions (W x L x H)
Power supply
WeightPackage content

USB inputs
2x USB 3.0 inputs
USB Power

1x USB 3.0/2.0 camera
Uncompressed, YUYV/NV12/I420 – 1080p30
MJPEG – 1080p30
Up to 1.2A shared between the USB ports

HDMI input
Resolution

1080p50/60 fps, 720p50/60 fps

Connector

HDMI

HDMI output
Resolution
Connector

3840x2160p23.98/24/25/29.97/30 fps, 1080p50/60 fps, 720p50/60 fps
HDMI

USB output
USB connector

1x USB 2.0 Type-B
UVC interface up to 1080p30 MJPEG.
UAC interface with audio I/O.
PTZ control supported.

Audio
Digital audio I/O

Embedded in HDMI or USB

6

ControlControl options

IP interface

RS232 interface

Front buttons
RS-232LAN
USB
100 Mbps half-duplex (autonegotiation not supported)
Supports DHCP or static IP addressing
Baud rate: 9600
Data bits: 8
Stop bits: 1
Parity: None
Flow control: None

Certifications
HDCP compliant
Certifications
TAA-compliant

The device does not decrypt BD/DVD movies, satellite/cable receivers or otherencrypted sources.
FCC, CE, UKCA, RoHS, IEC62368, SoV, RCM
YesCompatibility
Operating system
Cameras Supported
Software Compatibility

NO driver installation necessary
Windows 7 and above (32/64-bit)
macOS 10.10 and above
Linux (kernel v2.6.38 and above)
Cameras (or video Source) with a HDMI or USB outputs
UVC-compliant. Runs with all software compatible to DirectShow/MediaFoundation,
V4L2, QuickTime and AVFoundation.

7

SERIAL COMMUNICATION PROTOCOL
Here is the complete list of commands provided through the serial connection. As written on the back of the device, here is
the pinout of the terminal block.
Pin 1: Receive
Pin 2: GND
Pin 3: Transmit
Pin 4: 5V supply (for INOGENI Remote)

There must be a space character between command and arguments.
Typically, commands will return ACK in case of success and NACK in case of failure.
You need to add a carriage return character and a line feed “\r\n” at the end of the command string.
Note that if serial interface was disabled using REST API, commands will not be parsed, and no response will be provided.
Baud rate: 9600 // Data bits: 8 // Stop bits: 1 // Parity: None // Flow control: None
Command
HELP

Argument(s)NoneReturn 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 andHDMI output status.
PAN
Relative pan of the selected camera.

TILT
Relative tilt of the selected camera.
ZOOM
Relative zoom of the selected camera.
SETHDMISet HDMI output mode.

1 argument (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 allows. We recommend using values
between -10 and 10.
1 argument (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 allows. We recommend using values
between -10 and 10.
1 argument (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 allows. We recommend using values
between -10 and 10.
1 argument (integer)
Possible parameters:
0 => 1080P60
1 => 1080P50

8

2 => 720P60
3 => 720P50
4 => 4K24
5 => 4K25
6 => 4K30

SETVIDEOFORMAT

2 arguments (integer)
1st arg: <inputPort>Set video input format.

1 => USB input #1
2 => USB input #2
4 => Test pattern

GETVIDEOFORMATS
Get video input format.

2nd arg: <formatIndex>
1 argument (integer)
The argument specifies the port of the video input for which we want to get theavailable formats.
1 => USB input #1
2 => USB input #2
3 => HDMI input
4 => Test pattern

SETAUDIOINPUT
Set audio input.
SETAUDIOINPUTMODE

1 argument (integer)
The argument specifies the index (start at 0) of the audio input.
To see available inputs, use STATUS command.
1 argument (integer)
The argument specifies the audio input mode.

Set audio input switching mode.

0 => First connected audio device with fallback
1 => Audio follows video selection

SETVIDEOINPUT

1 argument (integer)
The argument specifies the port of the video input.

Set video input.

SETVIDEOINPUTMODE

1 => USB input #1
2 => USB input #2
3 => HDMI input
4 => Test pattern

To see available inputs, use STATUS command.
1 argument (integer)
The argument specifies if we want manual or automatic switching.

Set video input switching mode.

0 => automatic switching
1 => manual switching
2 => automatic switching (disable remote)

ENUSBCDCNCM

1 argument (integer)
The argument specifies if we want to enable of disable the interface.

Enable/Disable the USB CDC-NCM
interface over USB2.0 output.
ENUSBOUTSPEAKER

0 => OFF
1 => ON

Enable/Disable the USB speaker
interface over the USB 2.0 output.
ENUSBOUTMIC

0 => OFF
1 => ON

Enable/Disable the USB speaker
interface over the USB 2.0 output.

0 => OFF
1 => ON

1 argument (integer)
The argument specifies if we want to enable of disable the interface.

1 argument (integer)
The argument specifies if we want to enable of disable the interface.

9

INOGENI REMOTE
The INOGENI Remote needs to be connected to the terminal block port in order tooperate. Apply wiring accordingly. This remote is sending serial commands to thedevice. Make sure to set the DIP SW6 below the device to ON in order to apply power
to the remote before going further. See “DIP SWITCHES” section and user manualof the INOGENI REMOTE for more details.

Do not plug a 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

LAN COMMUNICATION PROTOCOL
You can access the device settings through its LAN interface. The LAN interface uses DHCP (default) and static IP
addressing. You can obtain the IP from the INOGENI Control App or from the serial port IP command. Note that LAN is set to
100Mbps half-duplex.

CDC-NCM COMMUNICATION PROTOCOL
The device can also be controlled through CDC-NCM interface exposed on the USB2.0 device port.
This interface has the same functions as the LAN interface, except the requests are done through USB to ease configuration.
CDC-NCM IP address: 169.254.10.10

POE
The device can be powered from a 12V power supply or from a PoE compliant source. If the 12V power supply is connected,
this one is taken in priority.

10

WEBPAGE
Here is the webpage that can be used to configure and upgrade the device. This webpage is accessible through IP or
through the CDC-NCM interface over USB2.0.
The username is “admin”, and the default password is “admin”.

11The STATUS page will give you information about the firmware installed. video and audio devices that you can monitor.

Figure 5: Status preview

12The CONFIGURATION tab will allow you to :--Set the HDMI resolution over HDMI
Set the selected camera source
Set the video input switching modeo AUTO : Device will switch to newly detected video source
o MANUAL : Device will only switch when we get the control to do it.
o AUTO (DISABLE REMOTE)▪ Support switching between inputs.
▪ If any button is pressed, disable remote switching, and stay on camera selected. If API calls aredone after to switch the input, API returns message that the command was not applied due to thecurrent mode.
▪ If the currently selected input/button is pressed again, enable remote switching. There will be
retroaction to ALL 3x leds (flashes 3 times / rapidly) indicating the device re-enabled remoteswitching.
▪ If Teams/Zoom call ends (video streaming stopping), enable remote switching.
Set the audio input from USB sources or HDMI input.

13

Figure 6: Configuration preview

The SYSTEM tab will allow you to :-Change the current password for accessing device settings.
Get/Set REST API access token needed using REST API interface.
Change network settings of your device.
Restore default settings and reboot the system.
Update your system.

Figure 7: System preview

14

To update your system, please do the following :-Click on the “Choose File” button and browse to the WIC file downloaded from our website.

-

Click on “Update CAM230” button to proceed to the update. The operation can take up to 1 minute. The device will
reboot and browser will be refreshed.

15

The DOCUMENTATION tab will allow you :-Get to the latest user guide.
Go to product webpage.

Figure 8: Documentation preview

The first time you access the webpage, your web browser is likely to complain that the connection is insecure. The reason forthis is because we are using self-signed HTTPS certificates, because certificate providers will not provide certificates foraddresses that are not globally accessible.
The webpage can set HDMI resolution, USB video input format, webpage password, or the REST API access token. Please
note that in the case of the REST API token, we can only ask for the device to generate a new randomly generated token. It
can also be used to upgrade the device firmware.

16

REST APIThe response will usually be JSON formatted with a “message” field containing a JSON string explaining the cause of theerror or “success” in case of success. Note that we are using self-signed certificates.
You can enable a bearer authentication in the HTTP header (Authorization: Bearer <token>) through our configuration page
to increase security on the API.
There will be a return code to each call with the following commands:
200 => success
400 => error
401 => authorization error
Here is the complete list of commands supported through the REST API (excluding password change, firmware update,bearer token get/set):
Command URL / Description
HTTP GET/POST
https://<IP>/api/v1/rstr

Body arguments

Return body{"message": <String>}

Restore default settings (including
password and REST API token)
HTTP GET/POST
https://<IP>/api/v1/reset{

Reset/reboot the device
HTTP GET
https://<IP>/api/v1/version{"message": <String>}"major": <Integer>,"minor": <Integer>}

Returns firmware version
HTTP GET
https://<IP>/api/v1/status
Returns devices, video/audio inputs andHDMI output status
HTTP GET/POST
https://<IP>/api/v1/pan
Relative pan of the selected camera

HTTP GET/POST
https://<IP>/api/v1/tilt
Relative tilt of the selected camera

HTTP GET/POST
https://<IP>/api/v1/zoom
Relative zoom of the selected camera

JSON object with multiple fields

pan=<pan>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.
tilt=<tilt>
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.
zoom=<zoom>
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.

{"message": <String>}{"message": <String>}{"message": <String>}17

HTTP GET/POST
https://<IP>/api/v1/setHdmi
Set HDMI output mode.

HTTP GET/POST
https://<IP>/api/v1/
setVideoFormat
Set video input format.

mode=<mode><mode> options:0 => 1080P60
1 => 1080P50
2 => 720P60
3 => 720P50
4 => 4K24
5 => 4K25
6 => 4K30
x-www-form-urlencoded
input=<inputPort>
format=<formatIndex>{"message": <String>}{"message": <String>}<inputPort> options:
1 => USB input #1
2 => USB input #2
4 => Test pattern<formatIndex> options:
See getVideoFormats command for available
formats.

HTTP GET
https://<IP>/api/v1/
getVideoFormats
Get video input format.

HTTP GET/POST
https://<IP>/api/v1/
setAudioInput
Set audio input.
HTTP GET/POST
https://<IP>/api/v1/
setAudioInputMode
Set audio input switching mode.
HTTP GET/POST
https://<IP>/api/v1/
setVideoInput
Set video input.

HTTP GET/POST
https://<IP>/api/v1/
setVideoInputModeSet video input switching mode.
HTTP GET/POST
https://<IP>/api/v1/
disableSerialInterface
Disable serial interface.

input=<input>
If input argument is not provided, will use currently
selected input<input> options:
1 => USB input #1
2 => USB input #2
3 => HDMI input
4 => Test pattern
input=<inputIndex>
The argument specifies the index of the audio input.
To see available inputs, use “status” command.
mode=<mode><mode> options:0 => First connected audio device withfallback
1 => Audio follows video selection
input=<input><input> options:
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.
mode=<mode><mode> options:0 => automatic switching
1 => manual switching
2 => automatic switching (disable
remote)disable=<disable>
If <disable> is 1, will disable serial interface API togive IP interface exclusive access to serial port,otherwise serial interface API is enabled.

JSON array containing all formats forrequested input.

{"message": <String>}{"message": <String>}{"message": <String>}{"message": <String>}{"message": <String>}

When IP interface has exclusive access to serial
port, user must use the “serialRead” and“serialWrite” commands.

18

HTTP GET
https://<IP>/api/v1/serialRead{

Read serial data from RS232.
HTTP GET/POST
https://<IP>/api/v1/
serialWrite

Message field contains characters readfrom RS232{"message": <String>}Write serial data to RS232. Giving
content to write in URL is not supported.
HTTP GET/POST
https://<IP>/api/v1/setNetwork
Configure network settings.

"message": <String>}<Content to write>

x-www-form-urlencoded<mode> options:
static=> addressing is static
dhcp=> use DHCP addressing{"message": <String>}If mode is static, must provide following args:<ip> option:
String defined IP address. Example:
192.168.0.20<netmask> option:
String defined netmask address. Example:
255.255.0.0

HTTP GET/POST
https://<IP>/api/v1/
enUsbCdcNcm
Enable/Disable the USB CDC-NCM
interface over USB2.0 output.
HTTP GET/POST
https://<IP>/api/v1/
enUsbOutSpeaker
Enable/Disable the USB speaker
interface over the USB 2.0 output.
HTTP GET/POST
https://<IP>/api/v1/
enUsbOutMic
Enable/Disable the USB microphoneinterface over the USB 2.0 output.

<gateway> option:
String defined gateway address. Example:
192.168.0.1
enable=<enable><enable> options:0 => OFF
1 => ON
enable=<enable><enable> options:0 => OFF
1 => ON
enable=<enable><enable> options:0 => OFF
1 => ON{"message": <String>}{"message": <String>}{"message": <String>}

It is also possible to embed arguments to an API call inside the URL to ease configuration with some control systems withthe following topology:

GET https://<IP>/api/v1/<COMMAND>?<ARG1>=value&<ARG2>=value
where <COMMAND>, <ARG1> and <ARG2> are command and associated arguments.
For example, using the setVideoFormat command, you can issue the following request:

GET https://<IP>/api/v1/setVideoFormat?inputPort=1&formatIndex=0This request will set the input #1 to format index 0.
The following commands allow to perform password management, bearer token management and firmware update. The
authentication used is basic auth, and we use the same user and password as the webpage (default user=admin
password=admin).

19

Command URL / Description
HTTP POST
https://<IP>/api/v1/
changePassword?
password=<newPassword>

Body arguments{"message": <String>}

Change the webpage password to<newPassword>.
HTTP GET
https://<IP>/api/v1/
getAccessToken{"token": <String>}If no bearer token is set, the “token”
field will be null.

Return the bearer token.
HTTP POST
https://<IP>/api/v1/
generateAccessToken

Generate random access token.
HTTP POST
https://<IP>/api/v1/update
Sends update file to device.

Return body{"message": <String>}Must use formdata body.
The key must be myFile, and the value is oftype file. We expect a .wic file that should bepresent in our official update packages{"message": <String>}

The bearer token is generated using a random process. The format of the bearer token only supports the following:-

Alphanumeric (A to Z) upper and lowercase characters.
Numbers 0-9.

20

INOGENI CONTROL APP
You can use our Control App to monitor firmware information and upgrade your unit.

NOTE: You need to use the USB-B to USB-A cable provided with the box for the Control App to detect the unit.

Figure 9: INOGENI Control App preview

21

MECHANICAL SPECIFICATIONS
You can find the mechanical specification here that lists the holes. All dimensions are in mm [in].

M2.5 screw
holes for future
brackets

Figure 10: Top plate dimensions

22

4x M2.5 mounting holes

Figure 11: Bottom plate dimensions and holes positions

DIP SWITCHES
Here you can find the behavior of the DIP switches located at the back of the unit.
Switch
SW1
SW2
SW3
SW4
SW5
SW6

Position
OFF
ON
OFF
ON
OFF
ON
OFF
ON
OFF
ON
OFF
ON

Description
For future use.
For future use.
For future use.
For future use.
Reserved.
Disable 5V on terminal block
Enable 5V on terminal block. This switch must be set to power up the connected
remote.

23

TROUBLESHOOTING SECTION
Here is the troubleshooting section for the device.
Problem
The device keeps rebooting when weconnect USB powered cameras. The
device is connected to a PoE switch.

Resolution
If you connect high consuming USB cameras that are powered by the USB bus, werecommend using the provided power supply to accommodate the power demand.

We cannot detect the USB output on
the PC when using it with a USB
extenderThe device has a USB2.0 interface only. Make sure that the USB extender you
intend to use supports USB2.0. You can use our own set of USB extenders that are
proven to work with our devices.
https://inogeni.com/support/compatible-usb-extenders/

We cannot get the HDMI feed to go
through the device.

Please do the following checklist :- Make sure HDMI connection is correct. HDMI cable should be within 30ft.
Otherwise, you need to have an active HDMI extension.
- Monitor if the HDMI led is ON.
- Monitor the video resolution through our app or through the web interface if
it is detected properly.
- Make sure that the HDMI feed is not an encrypted HDCP source like a bluray or set-top box. The HDMI input is compatible with HDMI cameras.

My camera software running on mycomputer is not detecting the camera
while the CAM230 is connected inline.

Unfortunately, this is the expected behavior since the PC is agnostic of the USB
camera. However, the device supports all UVC controls (pan, tilt and zoom
controls) 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.

Make sure the port that is connected to the LAN interface is using 100Mbps halfduplex. Slow updates through LAN interface can be caused by duplex mismatch.
The LAN interface does not do any autonegotiation.

24

SUPPORT
Engineered by video professionals, for video professionals, it is your most compatible USB 3.0 device. INOGENI expertise atyour fingertips:••

Expert Technical Support team at support@inogeni.com for immediate help or if you have any technical question
about our products.
Extensive Knowledge Base to learn from other customers’ experiences.

© Copyright 2023 by INOGENI INC. All Rights Reserved.
INOGENI name and logo are trademarks or registered trademarks of INOGENI. Use of this product is subject to the terms
and conditions of the license and limited warranty in effect at the time of purchase. Product specifications can change without
notice.
INOGENI, Inc.
1045 Avenue Wilfrid-Pelletier
Suite 101
Québec, QC, Canada, G1W0C6(418) 651-3383

CERTIFICATIONSFCC Radio Frequency Interference Statement WarningThis device complies with Part 15 of the FCC rules. Operation is subject to the following two conditions:(1) this device may not cause harmful interference, and(2) this device 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
We, INOGENI Inc., declare under our sole responsibility that the CAM230, to which this declaration relates, is inconformity with European Standards EN 55032, EN 55035, and RoHS Directive 2011/65/EU + 2015/863/EU.
UKCA Statement
This device is compliant with the Electromagnetic Compatibility Regulations 2016 No. 1091 as part of therequirements leading to the UKCA marking.
WEEE Statement
The European Union has established regulations for the collection and recycling of all waste electrical and electronicequipment (WEEE). Implementation of WEEE regulations may vary slightly by individual EU member states. Pleasecheck with your local and state government guidelines for safe disposal and recycling or contact your national WEEE
recycling agency for more information.
RCM Statement
This device is compliant with Regulator Compliance Mark (RCM) certification.

25