System designHow-to

Save and load camera settings to a user set file

How to write a camera configuration into a GenICam user set, save it to a file, upload it to another camera of the same model and firmware, and verify it.

LumaSpec Vision9 min read Share on LinkedIn

On this page 10 sections
  1. 01What a user set stores, and what it does not
  2. 02Set the parameters before you write anything
  3. 03Write the user set, then download it as a file
  4. 04Load the file onto another camera
  5. 05The settings that do not travel well
  6. 06Worked example: three profiles, one camera
  7. 07Read the values back, then capture one image
  8. 08When the file route is the wrong route
  9. 09Checklist before you rely on a saved set
  10. 10Questions

An R&D bench shares one camera across several applications, and each application wants its own exposure, gain, ROI and trigger wiring. Retyping those values from a notebook is slow and it drifts: someone keys 2 ms where 20 ms was meant and loses an afternoon to it. GenICam GigE and USB3 cameras solve this with user sets — named slots in camera memory that you write once, download to a file, and upload to any camera of the same model and firmware version. The steps below cover the whole round trip: set the parameters, write the user set, download it as a file, load it onto the next camera, then read the values back so you know nothing moved.

What a user set stores, and what it does not

A user set is a named slot in the camera's flash memory. The UserSetSelector control picks the slot: a Default set plus custom slots — most GigE and USB3 cameras give you UserSet1 and UserSet2, some add UserSet3. Running UserSetSave copies the camera's current parameter values into the selected slot, where they survive power cycles and reboots.

The set holds camera-side values: exposure time, gain, black level, the ROI (Width, Height, OffsetX, OffsetY), pixel format, trigger and strobe wiring, and on GigE models the packet size and inter-packet delay. It does not hold your host application's workspace, your calibration files, or the camera's IP and MAC addresses. Those live elsewhere and are not part of the file.

Writing the set is the flash-side half of two workflows covered separately: save camera settings across power cycles with a user set is about settings surviving a reboot, and save camera parameters as a user set that loads on startup is about the camera booting straight into your profile. The steps below add the file-transfer half: moving a set from one camera to another as a file.

Set the parameters before you write anything

UserSetSave snapshots whatever is in the camera at that moment, so the order is fixed: set values, save, then download. Exposure, gain, ROI and pixel format come first. On a triggered station, configure the trigger before saving — the hardware trigger source checklist shows where trigger lines hide when the camera does not see your signal.

Enumeration controls only accept the values the camera itself lists, and a rejected write mid-configuration is how profiles end up half-set. The GenICam enumeration invalid value guide covers reading the symbolics first. If the camera refuses a value, fix it on the spot, not after the save.

Write the user set, then download it as a file

  1. Open the camera in the vendor's viewer application and set every value the application needs.
  2. Pick the target slot with UserSetSelector — UserSet1 for the first profile.
  3. Run UserSetSave and wait for it to complete. The slot now holds the profile in flash.
  4. Open the viewer's file-access panel and download the slot to your PC. Tools name this "download user set" or "save parameters"; the SDK example that pairs file access with the user-set controls does the same two steps from code.
  5. Name the file for the application and date, for example darkfield-40ms_2026-03, and record the camera model and firmware version it came from in the same folder.
  6. Repeat for each application. The camera has two slots but you can keep as many files as you have profiles.

The file is a container written by the camera's own tooling. Treat it like firmware: store it, copy it, but do not open it in an editor.

Load the file onto another camera

  1. Confirm the target camera is the same model and the same firmware version. That is the documented requirement, and a firmware mismatch is the usual reason a file loads and then misbehaves — the camera firmware version mismatch guide covers detection and the safe update path.
  2. Stop acquisition on the target camera.
  3. Upload the file into the matching slot through the same file-access panel.
  4. Run UserSetLoad, or set that slot as the startup default if the station should boot into the profile.
  5. Re-check the transport values against the target PC — on GigE, packet size and inter-packet delay (next section).
  6. Read the key values back and capture one test image before you trust the camera (verification section below).

From your own code the route is identical: upload the file with the SDK's file-access calls, then select the slot and run UserSetLoad, the same two controls the viewer drives.

The settings that do not travel well

GigE transport values are the classic trip. The saved set can carry a packet size tuned for the bench it came from. Do the arithmetic once: a 1 Gbit/s link moves at most 1000 ÷ 8 = 125 MB/s, and with 9000-byte jumbo packets a GigE Vision stream reaches about 115–120 MB/s after protocol overhead. The same link with 1500-byte packets tops out nearer 95–105 MB/s because every packet carries its own header cost. Upload a 9000-byte set to a PC whose network card rejects jumbo frames and you get dropped frames, not an error message.

Two C-mount GigE cameras to run the workflow on:

Area scan camerasHikrobot MV-CS200-10GC 20 MP Area Scan Camera, GigE, IMX183, Color, BasicMV-CS200-10GC
Sensor format
1"
Lens mount
C-mount
$739.00View part
Area scan camerasHikrobot MV-CU020-90GC 2.5 MP Area Scan Camera, GigE, GMAX4002, ColorMV-CU020-90GC
Sensor format
1/1.7"
Lens mount
C-mount
$309.00View part

USB3 cameras have no packet size in the file at all; the link sorts itself out. Two C-mount USB3 cameras to run it on:

Area scan camerasHikrobot MV-CS200-10UM 20 MP Area Scan Camera, USB3.0, IMX183, 2nd Gen., MonoMV-CS200-10UM
Sensor format
1"
Lens mount
C-mount
$759.00View part
Area scan camerasHikrobot MV-CT0MU0060/R/NN/NN 6 MP Area Scan Camera, 3rd Gen., USB3.0, Mono, BASEMV-CT0MU0060/R/NN/NN
Sensor format
1/1.8"
Lens mount
C-mount
$969.00View part

Once written, transport values are exactly the kind that persist — keep camera bitrate settings after power cycle covers that persistence on the GigE side. On USB3 the equivalent failure shows up as dropped transfers, which the USB3 transfer errors guide diagnoses as bandwidth and buffer problems.

The pattern is not vision-specific: a saved configuration file loaded onto a different device can overwrite entries you never meant to move. For HMI terminals, this guide on .mer file loads overwriting communication settings walks that exact check.

Worked example: three profiles, one camera

Say one camera serves a motion stage, a low-light bench and a strobed inspection cell. Three profiles, three files, two camera slots: you load whichever profile the day needs.

Profile ExposureTime Gain Pixel format Trigger Frame-rate check
Motion stage 2000 µs 6 dB Mono8 off (free run) 1 s ÷ 100 fps = 10 ms period
Low-light bench 40000 µs 0 dB Mono8 off 1 s ÷ 40 ms = 25 fps ceiling
Strobe cell 10000 µs 3 dB Mono8 Line 2, rising edge rate set by the trigger line
frame period (ms) = 1000 / frame rate (fps) exposure duty (%) = 100 × exposure (ms) / frame period (ms)

For the motion stage, 1000 ÷ 100 = 10 ms per frame, and the 2 ms exposure fills 2000 ÷ 10000 = 20% of it, leaving 8 ms for readout. The low-light profile is exposure-limited: 1 s ÷ 0.040 s = 25 fps, and no gain setting buys exposure time back. The strobe cell sets no rate at all — the camera waits on Line 2, and the profile's job is to hold the 10 ms exposure and the trigger wiring exactly.

The motion profile is the one that wants frame-rate headroom. The MV-CH120-11UC is a 12 MP USB3 high-speed camera with a 1.1" sensor and global shutter.

Area scan camerasHikrobot MV-CH120-11UC 12 MP Area Scan Camera, USB3, IMX304, High-speed version, ColorMV-CH120-11UC
Sensor format
1.1"
Lens mount
C-mount
Interface
USB3
Resolution
12 MP
$2,339.00 · quotedView and quoteBuild a system with it

Profiles this different are why the file route beats a notebook: on any camera of the same model, each profile is one download away.

Read the values back, then capture one image

After any upload, read the five values that define the profile and compare them to the table you stored with the file: ExposureTime (2000 µs for the motion profile), Gain (6 dB), the four ROI values, PixelFormat (Mono8) and TriggerSource (Line 2). Five out of five means the file landed; any mismatch means the load failed or the firmware differs, and you stop there.

Parameter match is the fast check; one image is the honest one. Point both cameras at the same fixed target under the same light and compare the mean gray level: at identical exposure and gain it repeats within a few counts. A shift of tens of counts points at a strobe duration or illumination difference the parameter list cannot show.

When the file route is the wrong route

Across different models, do not share files: the values are written against one model's feature map, and a cross-model load can land on look-alike features. Build the profile once per model by hand, save it, and keep one folder per model.

After a firmware update, treat the camera as a new target: regenerate the file from it once, then standardise on the new file. Update first, re-save second, upload third.

On a production line, click-through viewers do not scale. Call the same controls from the station's start-up code — upload file, select slot, UserSetLoad — so every camera wakes with the right profile without an operator touching the viewer.

Values that revert after a reboot were never written to flash. Re-run UserSetSave, then power cycle once as a test.

Checklist before you rely on a saved set

  • Same model, same firmware version on both cameras — the file's values are keyed to that feature map.
  • Every parameter was set before UserSetSave ran; the save snapshots whatever is current.
  • File names carry application, date, model and firmware version.
  • Packet size and inter-packet delay re-checked on the target PC (GigE only).
  • All five key values read back matching after upload.
  • One test image captured under fixed light and compared for mean level.
  • The slot set as the startup default if the station must boot into the profile.

To standardise a bench on this workflow, the camera finder filters GigE and USB3 models by resolution, sensor format and shutter, and the systems topic page collects the camera-side set-up guides around it. For help mapping profiles onto a specific camera, contact us.

CamerasArea scan cameras

GigE, USB3, 10GigE and CoaXPress

1,287 models · from $149.00
Build the whole station

The configurator matches a camera, lens, light, light controller and cables to each other, step by step, and lists only parts that fit what you already picked.

Start with the camera

Questions

How many user sets does a camera have?

Open the UserSetSelector enumeration in the viewer and count the entries — that list is the authoritative answer for your model. The common layout is a Default set plus UserSet1 and UserSet2, with UserSet3 on some models. Two slots hold two live profiles; every additional profile lives as a file until you load it.

Can one user set file be used on different camera models?

Plan on no. The documented requirement is the same model and the same firmware version, because the file stores values against that camera's feature map. A file from another model can refuse to load or land on features that share a name but not a meaning. Keep one folder of files per model and label the folders.

Does the file include the camera's IP address or MAC address?

No. Network identity stays in the camera's own network settings, so the uploaded camera keeps its address. If your station expects a specific static address, set that separately in the network controls after the upload. Transport values are the exception to watch: GigE packet size and inter-packet delay can ride inside the set.

Why did my settings vanish after a power cycle?

Almost always because UserSetSave never ran. Live edits sit in volatile memory and disappear at power-off; only the written set comes back. Set the values, run UserSetSave for the active slot, then power cycle once as a test — if the values return, the profile is durable.

Can I open the user set file and edit a value?

Leave it closed. The format is the camera vendor's own and can change between firmware generations, so a hand-edited file can refuse to load or load only partially. Change the value on a camera, run UserSetSave again, and download a fresh file — it costs a minute and guarantees the file matches a real camera state.