diff --git a/a/setup/camo-big.png b/a/setup/camo-big.png
new file mode 100644
index 0000000000000000000000000000000000000000..9977c6a950af7c51dc1b475252bf81b2ad31998e
Binary files /dev/null and b/a/setup/camo-big.png differ
diff --git a/a/setup/camo-big.xcf b/a/setup/camo-big.xcf
new file mode 100644
index 0000000000000000000000000000000000000000..68062fce7a5cdc32b415e0de9aedea2b47e78e1f
Binary files /dev/null and b/a/setup/camo-big.xcf differ
diff --git a/a/setup/camo-pattern.xcf b/a/setup/camo-pattern.xcf
new file mode 100644
index 0000000000000000000000000000000000000000..6384b135e80c4b556dd419532513a13e0aa452e1
Binary files /dev/null and b/a/setup/camo-pattern.xcf differ
diff --git a/a/setup/camocalc b/a/setup/camocalc
new file mode 100644
index 0000000000000000000000000000000000000000..929e2e3cae46dadc52eb7af6a10c31ca7bea8744
--- /dev/null
+++ b/a/setup/camocalc
@@ -0,0 +1,24 @@
+
+22 x 20cm - 2598 x 2362px -	ne 8tel der breite und haelfte der hoehe
+export as pattern to ~/.config/GIMP/2.10/patterns/camo.pat
+176 x 40cm - 20784 x 4724px (3px zu klein in der breite)
+fill with pattern 
+
+add 5cm border overlap on right side
+181 x 40cm - 21375 x 4724
+
+druck max
+160 x 106cm
+
+
+###############################
+88 x 40cm - 10394 x 4724px - 0.5breite + 1hoehe
+add 5cm border overlap on right side
+93 x 40cm - 10984 x 4724px
+
+23.75€ * 2  - 47.5
+18.95€ * 10 - 189.5
+18.95€ * 12 - 228
+
+aufkleber
+72€ * 12 - 864€
diff --git a/b b/b
index aaaaf3faf667d2e3a66349bf1d6aa64321a6739b..baf20feef3380d7ac1193f54ecf761454eb466c6 160000
--- a/b
+++ b/b
@@ -1 +1 @@
-Subproject commit aaaaf3faf667d2e3a66349bf1d6aa64321a6739b
+Subproject commit baf20feef3380d7ac1193f54ecf761454eb466c6
diff --git a/dox/c++_scrap b/dox/c++_scrap
index 9d666a1fcc7d38c10be6ae3b5f1ed828e1a6ee7f..9702b42c80bf28472f6c59a2218b7cfde42dac01 100644
--- a/dox/c++_scrap
+++ b/dox/c++_scrap
@@ -1,3 +1,40 @@
+//###############################
+// parse arguments
+//###############################
+  // QCommandLineParser parser;
+  // parser.setApplicationDescription("a commandline app that is meant to be standalone and communicates with the camera");
+  // parser.addHelpOption();
+  // parser.addVersionOption();
+  // parser.addOptions({
+  //  {{"o", "out-dir"}, "store frames to <out-dir>", "out_dir"},
+  //  {{"l", "list-cams"}, "list available cams"},
+  //  {{"e", "export-cam-config"}, "export camera config" "settings.xml"},
+  //  {{"i", "import-cam-config"}, "import camera config" "settings.xml"},
+  //  {{"c", "calibrate"}, "calibrate cam"},
+  //  {{"r", "start record"}, "record"},
+  //  {{"s", "stop record"}, "stop recording"},
+  //  // {{"f", "force"}, "Overwrite existing files."},
+  //  // {{"n", "dry-run"}, "Do nothing. For testing purposes."},
+  //  // {{"p", "progress"}, "Show progress during copy."},
+  //  // {{"v", "verbose"}, "verbose"},
+  // });
+
+  // parser.process(a);
+
+  // const QStringList args = parser.positionalArguments();
+  // // source is args.at(0), destination is args.at(1)
+  // qDebug() << "args: " << args.join(", ") << "\n";
+
+  // if( parser.isSet("o") )
+  // {
+  //  maybeCreateDir(parser.value("o"));
+  // }
+
+
+
+//###############################
+// curCam->StartContinuousImageAcquisition(int bufferCount, const IFrameObserverPtr &pObserver)
+//###############################
 //open cam
     // if ( VmbErrorSuccess == (* iter)->Open( VmbAccessModeFull ) )
     // {
diff --git a/dox/notes_a b/dox/notes_a
index 6f86d371edadcd720fe74ba2fea4c16b8faa0779..f03ccaabc9baf068666fa53e8843fbe5e6835b20 100644
--- a/dox/notes_a
+++ b/dox/notes_a
@@ -15,12 +15,7 @@ Does
 ###############################
 
 # arena:
-	kg rohr 1m@500mm 162 DN550 https://www.hornbach.de/p/kg-rohr-dn-500-laenge-1-00m/8042036/
-
-	55cm gummiring
-	https://www.amazon.de/Leeadwaey-Barstuhl-Fahrgestell-rutschfeste-Gummiring-rutschfest/dp/B0C1NB1PLD/ref=sr_1_40?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=QCF6AKJ2PTIJ&keywords=gummiring%2B55cm&qid=1695054808&sprefix=gummuring%2B55cm%2Caps%2C98&sr=8-40&th=155cm lamp ring https://www.dannells.com/55cm-circular-lampshade-ringset-2765-p.asp
-	https://www.amazon.de/Austauschbarer-Gummiring-Rutschfester-Bodenschutz-Gummidichtung/dp/B09XXH9PP8/ref=sr_1_43?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=QCF6AKJ2PTIJ&keywords=gummiring+55cm&qid=1695055336&sprefix=gummuring+55cm%2Caps%2C98&sr=8-43
-
+	3D printed PETG-Arena
 
 
 
diff --git a/dox/notes_b b/dox/notes_b
index a4baf0df92f6b29ec94ccde5c83720d8738bf998..1369f57d2bbc0ee5d6ed732f062e12bf87c5e8ad 100644
--- a/dox/notes_b
+++ b/dox/notes_b
@@ -9,10 +9,13 @@ Does
 use opencv to convert raw cam images into JPEG pixel format
 ###############################
 
+
+
 VmbSystem::RegisterCameraListObserver
 	For being notified whenever a camera is detected, disconnected, or changes its open state, use
 
 
+
 map cam -> MAC -> IP -> name (contains ID)
 	camtron1 000A4708ED3F 172.18.227.210 allied-alviumg1-240c-04ytr.idiv.de
 	camtron2 000A471C0C9D 172.18.227.211 allied-alviumg1-240c-04ytp.idiv.de
@@ -23,15 +26,21 @@ map cam -> MAC -> IP -> name (contains ID)
 		direct: 169.254.75.147
 
 
+
+
 camtron1///
 	169.254.158.10
 	fixed ip: 172.18.205.201 + 255.255.255.0
 	gateway should: 172.18.205.254
 	gateway is: 0.0.0.0
 
+
+
 wired settings
 169.254.100.3 255.255.0.0
 
+
+
 ## connect VM + setup ssh
 ssh kr69sugu@idivtibcam01.usr.idiv.de
 	- see `cmds "login ssh without password"` for config
diff --git a/dox/timeplan_milestones.ods b/dox/timeplan_milestones.ods
index 79c6e203e4c5bcd897cb17c9483ee24fba1b5326..05908b03092a8dd4c446c24ebddd0566eff2451d 100644
Binary files a/dox/timeplan_milestones.ods and b/dox/timeplan_milestones.ods differ
diff --git a/dox/todo_ct b/dox/todo_ct
index e4dd6d1286692374d49e9b27171158c23dd8f033..f38802e526726d2acf7e5428d332420332a9997e 100644
--- a/dox/todo_ct
+++ b/dox/todo_ct
@@ -10,38 +10,45 @@ CAMTRON PROCESSING PIPELINE
 
 B) recorder - camera produces frames and timestamps
 ###########################
-	- 🗣️  sebastian hostname-fix IP -> ‼️ cam works with VM?
-	- wait and detect cams
-	- ‼️ produce frames & timestamps & save as jpg
-	- put cams in own thread
+	- test if solved ... 🗣️  sebastian hostname-fix IP -> ‼️ cam works with VM?
+	- BUG occasionaly frames are incomplete -> calling VV once fixes issues. why? maybe PACKSIZE ADjustment?
+	- ‼️ BUG files are not closed, causing OS limit crash (ulimit -n, too many open files...). why?
+	- test with 1 cam
+	- test with x cams
 ============================
 	CORE
-		- list cameras
-			- test: core::listCams worx with multiple cams?
-		- store/load cam and app settings (opencv or vimba or QT)
-			- cam mappings (IP/MAC/ID)
-			- out_dir
-		- calibrate
+		- ‼️ cam settings - save/load
+			- add camera name to filename
+			- framerate, brightness ...
+			- opencv or vimba?
+			- eval: use same settings(file) for all cams!?
+		- app settings:
+			- save/load settings
+			- out_dir, threads_per_cam,
+			- camName (hostname possible?), ...
+			- record duration
+		- ‼️ calibrate
 			- see opencv tut + code/bash cali example
 			- ada-HPC-CALISW
-		- record
-		- stop recording
 
 ===============================
 	- get pix, using VV and recorder
-		- laptop - direct connection
+		- laptop - direct connection # DONE
 		- laptop - local network
 		- virtual machine
-	- get video via vimbax-SDK
 	- get video for 3 cams simultaneously
 	- do tests and see if frames are dropped
+		- cam > acquisition framrate + framerate enable
+			- getFramerate
+		- stream > statistics
+			- stats frame  dropped
+			- state frame rate
+
 	- central config
 		- threads for started recordings [PID]
 		- storage folder
 
-	- export settings with viewer
-	- load settings with sw
-	- how and where to store frames?
+	- where to store frames? estimate size.
 
 A)
 ###########################
@@ -49,9 +56,9 @@ A)
 	- ‼️ light
 		- 2*LEDs: 1*day + 1*night
 		- find ecolux hw (Boxes, DMX per unit, DMX splitter/controller)
-	- ‼️ 🗣️ arenas - @laura asks 3D-Printer
-		- Acrylzylinder in 2 teile gesaegt.
-	- floor: find big white paperrolle in BUG/Storage
+	- ‼️ 🗣️ arenas
+		- checkerboardpattern
+		- floor: find big white paperrolle in BUG/Storage
 
 
 C) background subtraction
@@ -117,6 +124,16 @@ ctb
 
 Done
 #######################
+- put cams in own class
+- name / id
+- state open/close, recording/stopped, timer
+- track states - need to update open / closed states
+- update state: camObserver: cameraOpenStateChanged(CameraPtr);
+- detect cams -> camera interface listener!
+- MS! produce frames & timestamps & save as jpg ☺️
+	- frameObser + frameProcessor
+	- start recording
+	- stop recording
 - use new api VimbaX
 - read manual (c++ / vimba)
 - write alliedvision (MTU)