PageSourceSearch

https://commonlands.com/products/camera-module-assembly

html commonlands.com collected 2026-10-02 17:51:31 UTC 198,905 bytes, 2,828 lines download raw bytes

1<!doctype html>
2<html class="js" lang="en">
3  <head>
4    <meta charset="utf-8">
5    <meta http-equiv="X-UA-Compatible" content="IE=edge">
6    <meta name="viewport" content="width=device-width,initial-scale=1">
7    <meta name="theme-color" content=""><!-- Google Tag Manager -->
8    
8<script>
vendor: 343 bytes, lines 8-12
8(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
9    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
10    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
11    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
12    })(window,document,'script','dataLayer','
12GTM-TG4895P2
vendor: 3 bytes, line 12
12');
12</script>
12
13    <!-- End Google Tag Manager --><link rel="canonical" href="https://commonlands.com/products/camera-module-assembly"><link rel="llms-txt" href="https://commonlands.com/llms.txt" type="text/plain"><link rel="icon" type="image/png" href="//commonlands.com/cdn/shop/files/Commonlands_Camera_Logo_Redone_color_transparent_32.png?crop=center&height=32&v=1613731244&width=32"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><title>
14      Camera Module Assembly | Lens Focus and Alignment
15 &ndash; Commonlands Optics</title>
16      <meta name="description" content="Camera module assembly services: we focus and bond our lenses to your sensor in a San Diego cleanroom. Talk to our engineers about your module build.">
17    
18
19    
20
21<meta property="og:site_name" content="Commonlands Optics">
22<meta property="og:url" content="https://commonlands.com/products/camera-module-assembly">
23<meta property="og:title" content="
24Camera Module Assembly | Lens Focus and Alignment">
25<meta property="og:type" content="product">
26<meta property="og:description" content="
27Camera module assembly services: we focus and bond our lenses to your sensor in a San Diego cleanroom. Talk to our engineers about your module build."><meta property="og:image" content="http://commonlands.com/cdn/shop/files/CameraModuleAssemblyM12lenses.webp?v=1750195519">
28  <meta property="og:image:secure_url" content="https://commonlands.com/cdn/shop/files/CameraModuleAssemblyM12lenses.webp?v=1750195519">
29  <meta property="og:image:width" content="1000">
30  <meta property="og:image:height" content="1000"><meta property="og:price:amount" content="0.00">
31  <meta property="og:price:currency" content="USD"><meta name="twitter:card" content="summary_large_image">
32<meta name="twitter:title" content="
33Camera Module Assembly | Lens Focus and Alignment">
34<meta name="twitter:description" content="
35Camera module assembly services: we focus and bond our lenses to your sensor in a San Diego cleanroom. Talk to our engineers about your module build.">
36
37
38    
38<script src="//commonlands.com/cdn/shop/t/50/assets/constants.js?v=132983761750457495441784481361" defer="defer"></script>
38
39    
39<script src="//commonlands.com/cdn/shop/t/50/assets/pubsub.js?v=25310214064522200911784481358" defer="defer"></script>
39
40    
40<script src="//commonlands.com/cdn/shop/t/50/assets/global.js?v=7301445359237545521784481360" defer="defer"></script>
40
41    
41<script src="//commonlands.com/cdn/shop/t/50/assets/details-disclosure.js?v=13653116266235556501784481359" defer="defer"></script>
41
42    
42<script src="//commonlands.com/cdn/shop/t/50/assets/details-modal.js?v=25581673532751508451784481360" defer="defer"></script>
42
43    
43<script src="//commonlands.com/cdn/shop/t/50/assets/search-form.js?v=133129549252120666541784481376" defer="defer"></script>
43<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
43<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/27392737398/digital_wallets/dialog">
44<meta id="in-context-paypal-metadata" data-shop-id="27392737398" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
45<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="buy" href="/cart/42314501161078:1?ucp/version=2026-08-25&amp;context/payment/0/handler=dev.shopify.shop_pay" payment="dev.shopify.shop_pay com.google.pay dev.shopify.card"><link rel="alternate" type="application/json+oembed" href="https://commonlands.com/products/camera-module-assembly.oembed">
46<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=5179277430"></script>
46
47<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
48<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=5179277430&shop_id=27392737398" crossorigin="anonymous"></script>
vendor: 1 bytes, line 48
48
49<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":27392737398,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/27392737398","merchantName":"Commonlands Optics","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Commonlands Optics","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 49
49
50<script id="shopify-features" type="application/json">{"accessToken":"9d9ce8d89d072e68e60ddf8f90a52669","betas":["rich-media-storefront-analytics"],"domain":"commonlands.com","predictiveSearch":true,"shopId":27392737398,"locale":"en"}</script>
vendor: 1 bytes, line 50
50
51<script>var Shopify = Shopify || {};
52Shopify.shop = "commonlands-camera-components.myshopify.com";
53Shopify.locale = "en";
54Shopify.currency = {"active":"USD","rate":"1.0"};
55Shopify.country = "US";
56Shopify.theme = {"name":"commonlands-shopify-2026\/main","id":146457821302,"schema_name":"Dawn","schema_version":"15.4.0","theme_store_id":null,"role":"main"};
57Shopify.theme.handle = "null";
58Shopify.theme.style = {"id":null,"handle":null};
59Shopify.cdnHost = "commonlands.com/cdn";
60Shopify.routes = Shopify.routes || {};
61Shopify.routes.root = "/";
62Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
63Shopify.SignInWithShop = Shopify.SignInWithShop || {};
64Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
65Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 65
65
66<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 66
66
67<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 67
67
68<script>
69  window.ShopifyPay = window.ShopifyPay || {};
70  window.ShopifyPay.apiHost = "shop.app\/pay";
71  window.ShopifyPay.redirectState = null;
72</script>
vendor: 1 bytes, line 72
72
73<script>
74  window.Shopify = window.Shopify || {};
75  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
76  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
77  window.Shopify.SignInWithShop.eligible = true;
78</script>
vendor: 1 bytes, line 78
78
79<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
vendor: 1 bytes, line 79
79
80<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 80
80
81<script type="module">
82  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
83
84  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
85
86</script>
vendor: 1 bytes, line 86
86
87<script>
88  window.Shopify = window.Shopify || {};
89  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
90  window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]};
91</script>
vendor: 1 bytes, line 91
91
92<script>(function() {
93  var isLoaded = false;
94  function asyncLoad() {
95    if (isLoaded) return;
96    isLoaded = true;
97    var urls = ["https:\/\/cdn.weglot.com\/weglot_script_tag.js?shop=commonlands-camera-components.myshopify.com","\/\/cdn.shopify.com\/proxy\/aa69a5b92594930681d5e2b50b52524b4596383b1e5b136c6a1ee4547078c3f8\/bingshoppingtool-t2app-prod.trafficmanager.net\/uet\/tracking_script?shop=commonlands-camera-components.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/chimpstatic.com\/mcjs-connected\/js\/users\/0a8bbf9012284476889070c53\/04e7f56779b0e99e47bb0cf23.js?shop=commonlands-camera-components.myshopify.com","https:\/\/static2.rapidsearch.dev\/resultpage.js?shop=commonlands-camera-components.myshopify.com"];
98    for (var i = 0; i < urls.length; i++) {
99      var s = document.createElement('script');
100      s.type = 'text/javascript';
101      s.async = true;
102      s.src = urls[i];
103      var x = document.getElementsByTagName('script')[0];
104      x.parentNode.insertBefore(s, x);
105    }
106  };
107  if(window.attachEvent) {
108    window.attachEvent('onload', asyncLoad);
109  } else {
110    window.addEventListener('load', asyncLoad, false);
111  }
112})();</script>
vendor: 1 bytes, line 112
112
113<script id="__st">var __st={"a":27392737398,"offset":-25200,"reqid":"577ea9d9-1423-4b3a-84d8-092e08e25280-1790963489","pageurl":"commonlands.com\/products\/camera-module-assembly","u":"83449e6551ca","p":"product","rtyp":"product","rid":7762516574326};</script>
vendor: 1 bytes, line 113
113
114<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 114
114
115<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!1)}();</script>
vendor: 1 bytes, line 115
115
116<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//commonlands.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 116
116
117<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//commonlands.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
117<script crossorigin="anonymous" defer="defer" src="//commonlands.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 117
117
118<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 118
118
119<script>
120  window.Shopify = window.Shopify || {};
121  window.Shopify.MCP = window.Shopify.MCP || {};
122  window.Shopify.MCP.enabled = true;
123  window.Shopify.MCP.shop = "commonlands-camera-components.myshopify.com";
124  window.Shopify.MCP.mcpEndpoint = "https:\/\/commonlands.com\/api\/mcp";
125  window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n  - What is your return policy?\n  - What is your shipping policy?\n  - What is your phone number?\n  - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}];
126</script>
vendor: 1 bytes, line 126
126
127<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/commonlands.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
128</script>
vendor: 1 bytes, line 128
128
129<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://commonlands.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
130</script>
vendor: 1 bytes, line 130
130
131<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
132  function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent);
133</script>
vendor: 1 bytes, line 133
133
134<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}}));
135</script>
135
136<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://commonlands.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
137<style id="shopify-accelerated-checkout-cart">
138        #shopify-buyer-consent {
139  margin-top: 1em;
140  display: inline-block;
141  width: 100%;
142}
143
144#shopify-buyer-consent.hidden {
145  display: none;
146}
147
148#shopify-subscription-policy-button {
149  background: none;
150  border: none;
151  padding: 0;
152  text-decoration: underline;
153  font-size: inherit;
154  cursor: pointer;
155}
156
157#shopify-subscription-policy-button::before {
158  box-shadow: none;
159}
160
161      </style>
162<script id="sections-script" data-sections="header" defer="defer" src="//commonlands.com/cdn/shop/t/50/compiled_assets/scripts.js?v=90487813905515327061784481446"></script>
vendor: 1 bytes, line 162
162
163<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
163
164
165
166    <style data-shopify>
167      @font-face {
168  font-family: "Source Sans Pro";
169  font-weight: 400;
170  font-style: normal;
171  font-display: swap;
172  src: url("//commonlands.com/cdn/fonts/source_sans_pro/sourcesanspro_n4.50ae3e156aed9a794db7e94c4d00984c7b66616c.woff2") format("woff2"),
173       url("//commonlands.com/cdn/fonts/source_sans_pro/sourcesanspro_n4.d1662e048bd96ae7123e46600ff9744c0d84502d.woff") format("woff");
174}
175
176      @font-face {
177  font-family: "Source Sans Pro";
178  font-weight: 700;
179  font-style: normal;
180  font-display: swap;
181  src: url("//commonlands.com/cdn/fonts/source_sans_pro/sourcesanspro_n7.41cbad1715ffa6489ec3aab1c16fda6d5bdf2235.woff2") format("woff2"),
182       url("//commonlands.com/cdn/fonts/source_sans_pro/sourcesanspro_n7.01173495588557d2be0eb2bb2ecdf8e4f01cf917.woff") format("woff");
183}
184
185      @font-face {
186  font-family: "Source Sans Pro";
187  font-weight: 400;
188  font-style: italic;
189  font-display: swap;
190  src: url("//commonlands.com/cdn/fonts/source_sans_pro/sourcesanspro_i4.130f29b9baa0095b80aea9236ca9ef6ab0069c67.woff2") format("woff2"),
191       url("//commonlands.com/cdn/fonts/source_sans_pro/sourcesanspro_i4.6146c8c8ae7b8853ccbbc8b859fcf805016ee743.woff") format("woff");
192}
193
194      @font-face {
195  font-family: "Source Sans Pro";
196  font-weight: 700;
197  font-style: italic;
198  font-display: swap;
199  src: url("//commonlands.com/cdn/fonts/source_sans_pro/sourcesanspro_i7.98bb15b3a23880a6e1d86ade6dbb197526ff768d.woff2") format("woff2"),
200       url("//commonlands.com/cdn/fonts/source_sans_pro/sourcesanspro_i7.6274cea5e22a575d33653322a4399caadffb1338.woff") format("woff");
201}
202
203      @font-face {
204  font-family: "Source Sans Pro";
205  font-weight: 400;
206  font-style: normal;
207  font-display: swap;
208  src: url("//commonlands.com/cdn/fonts/source_sans_pro/sourcesanspro_n4.50ae3e156aed9a794db7e94c4d00984c7b66616c.woff2") format("woff2"),
209       url("//commonlands.com/cdn/fonts/source_sans_pro/sourcesanspro_n4.d1662e048bd96ae7123e46600ff9744c0d84502d.woff") format("woff");
210}
211
212
213      
214        :root,
215        .color-scheme-1 {
216          --color-background: 255,255,255;
217        
218          --gradient-background: #ffffff;
219        
220
221        
222
223        --color-foreground: 18,18,18;
224        --color-background-contrast: 191,191,191;
225        --color-shadow: 18,18,18;
226        --color-button: 18,18,18;
227        --color-button-text: 255,255,255;
228        --color-secondary-button: 255,255,255;
229        --color-secondary-button-text: 18,18,18;
230        --color-link: 18,18,18;
231        --color-badge-foreground: 18,18,18;
232        --color-badge-background: 255,255,255;
233        --color-badge-border: 18,18,18;
234        --payment-terms-background-color: rgb(255 255 255);
235      }
236      
237        
238        .color-scheme-2 {
239          --color-background: 243,243,243;
240        
241          --gradient-background: #f3f3f3;
242        
243
244        
245
246        --color-foreground: 18,18,18;
247        --color-background-contrast: 179,179,179;
248        --color-shadow: 18,18,18;
249        --color-button: 18,18,18;
250        --color-button-text: 243,243,243;
251        --color-secondary-button: 243,243,243;
252        --color-secondary-button-text: 18,18,18;
253        --color-link: 18,18,18;
254        --color-badge-foreground: 18,18,18;
255        --color-badge-background: 243,243,243;
256        --color-badge-border: 18,18,18;
257        --payment-terms-background-color: rgb(243 243 243);
258      }
259      
260        
261        .color-scheme-3 {
262          --color-background: 36,40,51;
263        
264          --gradient-background: #242833;
265        
266
267        
268
269        --color-foreground: 255,255,255;
270        --color-background-contrast: 47,52,66;
271        --color-shadow: 18,18,18;
272        --color-button: 255,255,255;
273        --color-button-text: 0,0,0;
274        --color-secondary-button: 36,40,51;
275        --color-secondary-button-text: 255,255,255;
276        --color-link: 255,255,255;
277        --color-badge-foreground: 255,255,255;
278        --color-badge-background: 36,40,51;
279        --color-badge-border: 255,255,255;
280        --payment-terms-background-color: rgb(36 40 51);
281      }
282      
283        
284        .color-scheme-4 {
285          --color-background: 18,18,18;
286        
287          --gradient-background: #121212;
288        
289
290        
291
292        --color-foreground: 255,255,255;
293        --color-background-contrast: 146,146,146;
294        --color-shadow: 18,18,18;
295        --color-button: 255,255,255;
296        --color-button-text: 18,18,18;
297        --color-secondary-button: 18,18,18;
298        --color-secondary-button-text: 255,255,255;
299        --color-link: 255,255,255;
300        --color-badge-foreground: 255,255,255;
301        --color-badge-background: 18,18,18;
302        --color-badge-border: 255,255,255;
303        --payment-terms-background-color: rgb(18 18 18);
304      }
305      
306        
307        .color-scheme-5 {
308          --color-background: 51,79,180;
309        
310          --gradient-background: #334fb4;
311        
312
313        
314
315        --color-foreground: 255,255,255;
316        --color-background-contrast: 23,35,81;
317        --color-shadow: 18,18,18;
318        --color-button: 255,255,255;
319        --color-button-text: 51,79,180;
320        --color-secondary-button: 51,79,180;
321        --color-secondary-button-text: 255,255,255;
322        --color-link: 255,255,255;
323        --color-badge-foreground: 255,255,255;
324        --color-badge-background: 51,79,180;
325        --color-badge-border: 255,255,255;
326        --payment-terms-background-color: rgb(51 79 180);
327      }
328      
329        
330        .color-scheme-5b945e79-3d10-4fdc-bd02-8482ef769ae3 {
331          --color-background: 255,255,255;
332        
333          --gradient-background: #ffffff;
334        
335
336        
337
338        --color-foreground: 18,18,18;
339        --color-background-contrast: 191,191,191;
340        --color-shadow: 18,18,18;
341        --color-button: 8,135,74;
342        --color-button-text: 255,255,255;
343        --color-secondary-button: 255,255,255;
344        --color-secondary-button-text: 18,18,18;
345        --color-link: 18,18,18;
346        --color-badge-foreground: 18,18,18;
347        --color-badge-background: 255,255,255;
348        --color-badge-border: 18,18,18;
349        --payment-terms-background-color: rgb(255 255 255);
350      }
351      
352
353      body, .color-scheme-1, .color-scheme-2, .color-scheme-3, .color-scheme-4, .color-scheme-5, .color-scheme-5b945e79-3d10-4fdc-bd02-8482ef769ae3 {
354        color: rgba(var(--color-foreground), 0.75);
355        background-color: rgb(var(--color-background));
356      }
357
358      :root {
359        --font-body-family: "Source Sans Pro", sans-serif;
360        --font-body-style: normal;
361        --font-body-weight: 400;
362        --font-body-weight-bold: 700;
363
364        --font-heading-family: "Source Sans Pro", sans-serif;
365        --font-heading-style: normal;
366        --font-heading-weight: 400;
367
368        --font-body-scale: 1.0;
369        --font-heading-scale: 1.0;
370
371        --media-padding: px;
372        --media-border-opacity: 0.0;
373        --media-border-width: 1px;
374        --media-radius: 0px;
375        --media-shadow-opacity: 0.0;
376        --media-shadow-horizontal-offset: 0px;
377        --media-shadow-vertical-offset: 4px;
378        --media-shadow-blur-radius: 5px;
379        --media-shadow-visible: 0;
380
381        --page-width: 120rem;
382        --page-width-margin: 0rem;
383
384        --product-card-image-padding: 0.0rem;
385        --product-card-corner-radius: 0.0rem;
386        --product-card-text-alignment: left;
387        --product-card-border-width: 0.0rem;
388        --product-card-border-opacity: 0.1;
389        --product-card-shadow-opacity: 0.0;
390        --product-card-shadow-visible: 0;
391        --product-card-shadow-horizontal-offset: 0.0rem;
392        --product-card-shadow-vertical-offset: 0.0rem;
393        --product-card-shadow-blur-radius: 0.0rem;
394
395        --collection-card-image-padding: 0.0rem;
396        --collection-card-corner-radius: 0.0rem;
397        --collection-card-text-alignment: left;
398        --collection-card-border-width: 0.0rem;
399        --collection-card-border-opacity: 0.1;
400        --collection-card-shadow-opacity: 0.0;
401        --collection-card-shadow-visible: 0;
402        --collection-card-shadow-horizontal-offset: 0.0rem;
403        --collection-card-shadow-vertical-offset: 0.0rem;
404        --collection-card-shadow-blur-radius: 0.0rem;
405
406        --blog-card-image-padding: 0.0rem;
407        --blog-card-corner-radius: 0.0rem;
408        --blog-card-text-alignment: left;
409        --blog-card-border-width: 0.0rem;
410        --blog-card-border-opacity: 0.1;
411        --blog-card-shadow-opacity: 0.0;
412        --blog-card-shadow-visible: 0;
413        --blog-card-shadow-horizontal-offset: 0.0rem;
414        --blog-card-shadow-vertical-offset: 0.0rem;
415        --blog-card-shadow-blur-radius: 0.0rem;
416
417        --badge-corner-radius: 4.0rem;
418
419        --popup-border-width: 1px;
420        --popup-border-opacity: 0.1;
421        --popup-corner-radius: 0px;
422        --popup-shadow-opacity: 0.0;
423        --popup-shadow-horizontal-offset: 0px;
424        --popup-shadow-vertical-offset: 4px;
425        --popup-shadow-blur-radius: 5px;
426
427        --drawer-border-width: 1px;
428        --drawer-border-opacity: 0.1;
429        --drawer-shadow-opacity: 0.0;
430        --drawer-shadow-horizontal-offset: 0px;
431        --drawer-shadow-vertical-offset: 4px;
432        --drawer-shadow-blur-radius: 5px;
433
434        --spacing-sections-desktop: 0px;
435        --spacing-sections-mobile: 0px;
436
437        --grid-desktop-vertical-spacing: 8px;
438        --grid-desktop-horizontal-spacing: 8px;
439        --grid-mobile-vertical-spacing: 4px;
440        --grid-mobile-horizontal-spacing: 4px;
441
442        --text-boxes-border-opacity: 0.1;
443        --text-boxes-border-width: 0px;
444        --text-boxes-radius: 0px;
445        --text-boxes-shadow-opacity: 0.0;
446        --text-boxes-shadow-visible: 0;
447        --text-boxes-shadow-horizontal-offset: 0px;
448        --text-boxes-shadow-vertical-offset: 4px;
449        --text-boxes-shadow-blur-radius: 0px;
450
451        --buttons-radius: 4px;
452        --buttons-radius-outset: 5px;
453        --buttons-border-width: 1px;
454        --buttons-border-opacity: 1.0;
455        --buttons-shadow-opacity: 0.0;
456        --buttons-shadow-visible: 0;
457        --buttons-shadow-horizontal-offset: 0px;
458        --buttons-shadow-vertical-offset: 4px;
459        --buttons-shadow-blur-radius: 5px;
460        --buttons-border-offset: 0.3px;
461
462        --inputs-radius: 4px;
463        --inputs-border-width: 1px;
464        --inputs-border-opacity: 0.55;
465        --inputs-shadow-opacity: 0.0;
466        --inputs-shadow-horizontal-offset: 0px;
467        --inputs-margin-offset: 0px;
468        --inputs-shadow-vertical-offset: 4px;
469        --inputs-shadow-blur-radius: 5px;
470        --inputs-radius-outset: 5px;
471
472        --variant-pills-radius: 40px;
473        --variant-pills-border-width: 1px;
474        --variant-pills-border-opacity: 0.55;
475        --variant-pills-shadow-opacity: 0.0;
476        --variant-pills-shadow-horizontal-offset: 0px;
477        --variant-pills-shadow-vertical-offset: 4px;
478        --variant-pills-shadow-blur-radius: 5px;
479      }
480
481      *,
482      *::before,
483      *::after {
484        box-sizing: inherit;
485      }
486
487      html {
488        box-sizing: border-box;
489        font-size: calc(var(--font-body-scale) * 62.5%);
490        height: 100%;
491      }
492
493      body {
494        display: grid;
495        grid-template-rows: auto auto 1fr auto;
496        grid-template-columns: 100%;
497        min-height: 100%;
498        margin: 0;
499        font-size: 1.4rem;
500        letter-spacing: 0rem;
501        line-height: calc(1 + 0.8 / var(--font-body-scale));
502        font-family: var(--font-body-family);
503        font-style: var(--font-body-style);
504        font-weight: var(--font-body-weight);
505      }
506
507      @media screen and (min-width: 750px) {
508        body {
509          font-size: 1.6rem;
510        }
511      }
512    </style>
513
514    <link href="//commonlands.com/cdn/shop/t/50/assets/base.css?v=131446374816775295731784930270" rel="stylesheet" type="text/css" media="all" />
515    <link rel="stylesheet" href="//commonlands.com/cdn/shop/t/50/assets/component-cart-items.css?v=117657391505696024291784481364" media="print" onload="this.media='all'"><link href="//commonlands.com/cdn/shop/t/50/assets/component-cart-drawer.css?v=125172063307368259421784481363" rel="stylesheet" type="text/css" media="all" />
516      
517  
518      <link href="//commonlands.com/cdn/shop/t/50/assets/component-cart.css?v=164708765130180853531784481364" rel="stylesheet" type="text/css" media="all" />
519     <link href="//commonlands.com/cdn/shop/t/50/assets/component-price.css?v=47596247576480123001784481360" rel="stylesheet" type="text/css" media="all" />
520      <link href="//commonlands.com/cdn/shop/t/50/assets/component-totals.css?v=15906652033866631521784481361" rel="stylesheet" type="text/css" media="all" />
521      <link href="//commonlands.com/cdn/shop/t/50/assets/component-discounts.css?v=152760482443307489271784481366" rel="stylesheet" type="text/css" media="all" />
522
523      <link rel="preload" as="font" href="//commonlands.com/cdn/fonts/source_sans_pro/sourcesanspro_n4.50ae3e156aed9a794db7e94c4d00984c7b66616c.woff2" type="font/woff2" crossorigin>
524      
525
526      <link rel="preload" as="font" href="//commonlands.com/cdn/fonts/source_sans_pro/sourcesanspro_n4.50ae3e156aed9a794db7e94c4d00984c7b66616c.woff2" type="font/woff2" crossorigin>
527      
528
529<script>
530      if (Shopify.designMode) {
531        document.documentElement.classList.add('shopify-design-mode');
532      }
533    </script>
533
534    
535<link rel="alternate" hreflang="en" href="https://commonlands.com/products/camera-module-assembly">
536        <link rel="alternate" hreflang="de" href="https://de.commonlands.com/products/camera-module-assembly">
537        <link rel="alternate" hreflang="ko" href="https://ko.commonlands.com/products/camera-module-assembly">
538          <link rel="alternate" hreflang="ja" href="https://ja.commonlands.com/products/camera-module-assembly">
539        <link rel="alternate" hreflang="x-default" href="https://commonlands.com/products/camera-module-assembly">
540    <!-- CART HELPER - DO NOT DELETE -->
541   
541<script defer="defer">
542         try {
543         setTimeout(function () {
544           window.__pagefly_helper_store__ &&
545             window.__pagefly_helper_store__.subscribe(function (r) {
546  $.getJSON('/?sections=cart-notification-product,cart-notification-button,cart-drawer,cart-icon-bubble').then( sections => {
547                       const cartDrawer =document.querySelector('cart-notification') || document.querySelector('cart-drawer')
548                       cartDrawer.classList.remove('is-empty')
549                       r.sections = sections
550                       cartDrawer.renderContents(r)
551                     })
552});
553         }, 2500);
554       } catch (e) {
555         console.warn(e);
556       }
557   </script>
557
558<!--Add -->
559	
559<script type='text/javascript' src="https://shopify-websitespeedy7.b-cdn.net/speedyscripts/ecmrx_665/ecmrx_665_1.js"></script>
559
560	
560<script type='text/javascript' src="https://shopify-websitespeedy7.b-cdn.net/speedyscripts/ecmrx_665/ecmrx_665_2.js"></script>
560
561	
561<script type='text/javascript' src="https://shopify-websitespeedy7.b-cdn.net/speedyscripts/ecmrx_665/ecmrx_665_3.js"></script>
561
562    
563  
564
565  
566
567
568  
568<script type="text/javascript">
569    window.RapidSearchAdmin = false;
570    window.rpsMarketInfo = { id: 40173686 };
571  </script>
571
572
573  
574<script type="application/ld+json">
575{
576  "@context": "https://schema.org",
577  "@graph": [
578    {
579      "@type": "Organization",
580      "@id": "https://commonlands.com/#organization",
581      "name": "Commonlands LLC",
582      "alternateName": "Commonlands Optics",
583      "url": "https://commonlands.com",
584      "logo": {
585        "@type": "ImageObject",
586        "url": "https://commonlands.com/cdn/shop/files/Commonlands_Camera_Logo_20220819_Horizontal_100px_height_420px_width.png?v=1724861426&width=315",
587        "width": 420,
588        "height": 100
589      },
590      "description": "ISO9001:2015 certified provider of cost-effective, high-quality M12 and C-mount lenses for machine vision and robotics applications",
591      "foundingDate": "2018",
592      "telephone": "+1-858-333-7325",
593      "email": "[email protected]",
594      "contactPoint": [{
595        "@type": "ContactPoint",
596        "contactType": "sales",
597        "telephone": "+1-858-333-7325",
598        "areaServed": "US",
599        "availableLanguage": ["English"]
600      }],
601      "address": {
602        "@type": "PostalAddress",
603        "streetAddress": "8170 Ronson Road, Suites A & B",
604        "addressLocality": "San Diego",
605        "addressRegion": "CA",
606        "postalCode": "92111",
607        "addressCountry": "US"
608      },
609      "founder": { "@id": "https://commonlands.com/#max-henkart" },
610      "sameAs": [
611        "https://www.linkedin.com/company/commonlands",
612        "https://www.youtube.com/@commonlands",
613        "https://x.com/common_lands",
614        "https://www.crunchbase.com/organization/commonlands",
615        "https://brandfetch.com/commonlands.com",
616        "https://facebook.com/commonlands1",
617        "https://instagram.com/commonlands",
618        "https://www.edge-ai-vision.com/companies/commonlands/",
619        "https://www.automate.org/companies/commonlands-llc",
620        "https://www.automateshow.com/prior-exhibitors/commonlands-llc",
621        "https://optics.org/buyers/C000021090"
622      ]
623    },
624    {
625      "@type": "Person",
626      "@id": "https://commonlands.com/#max-henkart",
627      "name": "Max Henkart",
628      "jobTitle": "Founder & CEO",
629      "image": "https://commonlands.com/cdn/shop/files/Max_Henkart_1k1k_more_formal.png?v=1712349528",
630      "worksFor": { "@id": "https://commonlands.com/#organization" },
631      "alumniOf": [
632        { "@type": "CollegeOrUniversity", "name": "The Institute of Optics, University of Rochester" },
633        { "@type": "CollegeOrUniversity", "name": "Carnegie Mellon University" }
634      ],
635      "knowsAbout": [
636        "optical engineering",
637        "machine vision lenses",
638        "M12 lenses",
639        "C-mount lenses",
640        "image sensor selection",
641        "lens design and manufacturing"
642      ],
643      "sameAs": [
644        "https://linkedin.com/in/mhenkart"
645      ]
646    },
647    {
648      "@type": "WebSite",
649      "@id": "https://commonlands.com/#website",
650      "url": "https://commonlands.com",
651      "name": "Commonlands Optics",
652      "publisher": { "@id": "https://commonlands.com/#organization" },
653      "potentialAction": {
654        "@type": "SearchAction",
655        "target": "https://commonlands.com/search?q={search_term_string}",
656        "query-input": "required name=search_term_string"
657      },
658      "inLanguage": "en"
659    }
660  ]
661}
662</script>
662
663
664<!-- BEGIN app block: shopify://apps/consentmo-gdpr/blocks/gdpr_cookie_consent/4fbe573f-a377-4fea-9801-3ee0858cae41 -->
665<link rel="preconnect" href="https://app.consentmo.com" crossorigin data-csm-preconnect="app">
666<link rel="dns-prefetch" href="https://workers.consentmo.com" data-csm-preconnect="workers">
667<link rel="dns-prefetch" href="https://storage.consentmo.com" data-csm-preconnect="storage">
668<link rel="preconnect" href="https://cdn.consentmo.com" crossorigin data-csm-preconnect="cdn"><link rel="prefetch" href="https://cdn.shopify.com/extensions/01a0fcf5-9827-75b1-9d7e-ea3a10d70819/gdpr-backpack-903/assets/layout-cookie-bar.consentmo.js" crossorigin data-csm-layout-prefetch="banner">
669  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a0fcf5-9827-75b1-9d7e-ea3a10d70819/gdpr-backpack-903/assets/layout-cookie-dialog.consentmo.js" crossorigin data-csm-layout-prefetch="dialog">
670  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a0fcf5-9827-75b1-9d7e-ea3a10d70819/gdpr-backpack-903/assets/layout-cookie-box.consentmo.js" crossorigin data-csm-layout-prefetch="box">
671  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a0fcf5-9827-75b1-9d7e-ea3a10d70819/gdpr-backpack-903/assets/layout-cookie-smart-banner.consentmo.js" crossorigin data-csm-layout-prefetch="smart">
672  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a0fcf5-9827-75b1-9d7e-ea3a10d70819/gdpr-backpack-903/assets/layout-mobile-cookie-bar.consentmo.js" crossorigin data-csm-layout-prefetch="mobile">
672<script>
673(function () {
674  try {
675    document.documentElement.classList.add('csm-cookie-embed');
676  } catch (e) {}
677})();
678</script>
678<script data-consentmo-data-src-bootstrap>
679(function () {
680  'use strict';
681  if (window.__consentmoDataSrcBootstrapInit) return;
682  window.__consentmoDataSrcBootstrapInit = true;
683
684  var DATA_SRC_SELECTOR = [
685    'script[data-src*="consentmo_cookie_consent"]',
686    'script[data-src*="gdpr_cookie_consent.min"]',
687    'script[data-src*="gdrp_cookie_consent_unlimited"]'
688  ].join(',');
689
690  function activateConsentmoDataSrcScripts() {
691    if (!window.Shopify || !window.Shopify.shop) return;
692    document.querySelectorAll(DATA_SRC_SELECTOR).forEach(function (scriptEl) {
693      // getAttribute: src="" must not count as "already has src" (.src === page URL).
694      if (scriptEl.getAttribute('src')) return;
695      var url = scriptEl.getAttribute('data-src');
696      if (!url) return;
697      if (scriptEl.getAttribute('type') === 'text/plain') {
698        scriptEl.removeAttribute('type');
699      }
700      scriptEl.src = url;
701    });
702  }
703  function scheduleActivation() {
704    activateConsentmoDataSrcScripts();
705    // Retry on next task so other DCL handlers (lazy-loaders) can finish setting Shopify.shop / data-src first.
706    setTimeout(activateConsentmoDataSrcScripts, 0);
707  }
708  if (document.readyState === 'loading') {
709    document.addEventListener('DOMContentLoaded', scheduleActivation, { once: true });
710  } else {
711    scheduleActivation();
712  }
713})();
714</script>
714
715
716
717<!-- END app block --><!-- BEGIN app block: shopify://apps/dr-cart-shipping-rates/blocks/instant-load/6fdcf202-26c0-4288-be36-8b389f5d262c --><!-- For self-installation -->
718<script>(() => {const installerKey = 'docapp-shipping-auto-install'; const urlParams = new URLSearchParams(window.location.search); if (urlParams.get(installerKey)) {window.sessionStorage.setItem(installerKey, JSON.stringify({integrationId: urlParams.get('docapp-integration-id'), divClass: urlParams.get('docapp-install-class'), check: urlParams.get('docapp-check')}));}})();</script>
vendor: 1 bytes, line 718
718
719<script>(() => {const previewKey = 'docapp-shipping-test'; const urlParams = new URLSearchParams(window.location.search); if (urlParams.get(previewKey)) {window.sessionStorage.setItem(previewKey, JSON.stringify({active: true, integrationId: urlParams.get('docapp-shipping-inst-test')}));}})();</script>
vendor: 1 bytes, line 719
719
720<script>window.cartShippingCalculatorProAppBlock = true;</script>
720
721
722<!-- App speed-up -->
723<script id="docapp-shipping-speedup">
724    (() => { if (window.cartShippingCalculatorProAppLoaded) return; let script = document.createElement('script'); script.src = "https://d1an1e2qw504lz.cloudfront.net/shop/js/cart-shipping-calculator-pro.min.js?shop=commonlands-camera-components.myshopify.com"; document.getElementById('docapp-shipping-speedup').after(script); })();
725</script>
725
726
727
728<!-- END app block --><!-- BEGIN app block: shopify://apps/rapid-search-bar-filter/blocks/script/bd827795-feaa-41a8-9219-2b83f238aa7d -->
729
730
731<script type="text/javascript">
732  document.documentElement.classList.add('rps-app-active');
733</script>
733
734
735<script type="text/javascript">
736  try {
737    window.RapidSearchSettings = {"last_import":"2026-09-24T04:50:49.946Z","expiration_date":null,"autocomplete_price_layout":"vertical","autocomplete_image_size":60,"autocomplete_zero_widgets":[{"id":"keyword_history","hits_desktop":2,"hits_mobile":1,"title":""},{"id":"top_keywords","hits":5,"title":""},{"id":"top_products","hits":5,"title":""}],"badge_settings_auto":{"new_badge":{"enabled":true,"threshold":30},"discount_badge":{"enabled":true},"results_page_discount_badge":{"enabled":true},"stock_status":"instock","results_page_new_badge":{"enabled":true,"threshold":30},"low_stock_badge":{"enabled":false,"threshold":5},"pre_order_badge":{"enabled":false}},"colors":{"price":"#000000","resource_hover":"#08874A"},"currency_format":{"default":"${{amount}}","USD":"${{amount}}"},"current_plan":"shopify_pro_2","data_index":"es_sy4_client_1","default_currency":"USD","default_customer_group_id":0,"default_domain":"https:\/\/commonlands.com","default_language":"en","enabled":true,"enabled_languages":["en"],"enabled_resultpage":true,"fuzzy_search":true,"replace_hyphens_with_spaces":true,"install_date":"2026-07-24T21:22:52.981Z","language":"","limit_exceeded":false,"mobile_optimized":true,"multiple_languages":true,"out_of_stock_show_addtocart":true,"out_of_stock_show_notify":false,"out_of_stock_visibility":"mixed","plan_name":"unlimited","posthog_admin_session_id":"01a0d09a-dce5-76b8-b967-0354c2cec029","resultpage_filters":[{"id":"category","title":"","enabled":true,"type":"default","appearance":"text"},{"id":"product_type","title":"","enabled":true,"type":"default","appearance":"text"},{"id":"price","title":"","enabled":true,"type":"default","appearance":"text"},{"id":"brand","title":"","enabled":false,"type":"default","appearance":"text"},{"id":"tags","title":"Tag","enabled":false,"type":"tag","appearance":"text","settings":{"mode":"show_all","values":[]}},{"id":"availability","title":"","enabled":true,"type":"default","appearance":"text"},{"enabled":true,"id":"705ea95b-c0cf-4f5a-b9bb-e279a17f870a","title":"EFL","type":"metafield","sortBy":"numeric_desc","appearance":"text","settings":{"mode":"show_all","values":[],"metafield":"custom.efl"}},{"enabled":true,"id":"F#","title":"F#","type":"attribute","sortBy":"numeric_asc","appearance":"text"},{"enabled":true,"id":"Filter","title":"Filter","type":"attribute","sortBy":"alphabet_asc","appearance":"text"},{"enabled":false,"id":"Mechanical Version","title":"","type":"attribute","appearance":"text"},{"enabled":false,"id":"Outer Diameter and Size","title":"","type":"attribute","appearance":"text"},{"enabled":false,"id":"Simple Element Thickness","title":"","type":"attribute","appearance":"text"},{"enabled":false,"id":"Material","title":"","type":"attribute","appearance":"text"},{"enabled":true,"id":"009c4d58-d9aa-4247-8217-e67057df829e","title":"Weight","type":"metafield","sortBy":"numeric_asc","appearance":"text","settings":{"mode":"show_all","values":[],"metafield":"custom.weight"}}],"resultpage_hide_parent_products":false,"resultpage_id":114823889014,"resultpage_mobile_optimized":false,"resultpage_pagination_type":"infinite_loading","resultpage_price_display_mode":"only_gross","resultpage_product_image_height":"","resultpage_product_image_width":"","resultpage_snapshot_alignment":"left","resultpage_snapshot_order":["image","name","price"],"resultpage_url":"pages\/rapid-search-results","rps_scripts":null,"rps_styles":".rps-product-container .rps-product-link {\n    display: grid;\n    grid-gap: 0px;\n    flex: 1;\n    text-decoration: none;\n    color: inherit;\n}","show_child_data":true,"search_subcategory":false,"shopify_public_settings":{"markets_enabled":true,"theme_settings":{"146457821302":{"name":"commonlands-shopify-2026\/main","theme_id":146457821302,"role":"main","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-product-grid.liquid","collection_page_enabled":true,"search_results_page_enabled":true,"product_card_design":"","product_card_order":["image","sku","name","price","type"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"center","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":4,"created_at":"2026-07-19T17:15:51.000Z","colors":{"results_page":{"product_title":"#5
73755555","product_title_hover":"#555555","product_price":"#000000","product_price_hover":"#08874A","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-09-23T23:32:57.187Z","theme_version":2},"146456445046":{"name":"Github sync 20260719 before Pagefly removal","theme_id":146456445046,"role":"unpublished","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-product-grid.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2026-07-19T16:05:59.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:23:38.467Z","theme_version":2},"146416795766":{"name":"Dawn 20260717 Blogs","theme_id":146416795766,"role":"unpublished","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-product-grid.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2026-07-18T01:21:05.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:23:56.740Z","theme_version":2},"146330288246":{"name":"Last Pagefly Live 20260714 (DO NOT EDIT)","theme_id":146330288246,"role":"unpublished","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-product-grid.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2026-07-15T05:04:39.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:24:10.541Z","theme_version":2},"128931594358":{"name":"Copy of Dawn 202408 Update","theme_id":128931594358,"role":"unpublished","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-product-grid.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2024-10-29T00:13:56.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:24:22.935Z","theme_version":2},"127862243446":{"name":"Dawn 202408 Update LATEST 20250724","theme_id":127862243446,"role":"unpublished","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-
737product-grid.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2024-08-28T16:01:54.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:24:35.218Z","theme_version":2},"122329464950":{"name":"Copy of Copy of Dawn 230125 Cart Fixed with Fli...","theme_id":122329464950,"role":"unpublished","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-product-grid.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2023-07-09T18:43:58.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:24:46.641Z","theme_version":2},"122273169526":{"name":"Copy of Dawn 230125 Cart Fixed with Flits 09-05...","theme_id":122273169526,"role":"unpublished","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-product-grid.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2023-05-23T02:05:49.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:24:58.283Z","theme_version":2},"122255605878":{"name":"Copy of yours LIVE + Flits 10-05-2023","theme_id":122255605878,"role":"unpublished","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-product-grid.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2023-05-10T09:41:28.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:25:09.039Z","theme_version":2},"122104381558":{"name":"Copy of Dawn230125 Cart Drawer Fixed","theme_id":122104381558,"role":"unpublished","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-product-grid.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2023-01-26T03:45:31.000Z","colors":{"results_page":{"product_title":"#5
73755555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:25:18.840Z","theme_version":2},"122104152182":{"name":"Dawn230125 Cart Drawer Fixed","theme_id":122104152182,"role":"unpublished","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-product-grid.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2023-01-26T00:58:07.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:25:28.536Z","theme_version":2},"122100678774":{"name":"Dawn2301 Backup","theme_id":122100678774,"role":"unpublished","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-product-grid.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2023-01-24T01:40:31.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:25:38.197Z","theme_version":2},"121930940534":{"name":"Dawn2207 with Installments message","theme_id":121930940534,"role":"unpublished","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-product-grid.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2022-10-20T17:01:12.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:25:47.916Z","theme_version":2},"120646107254":{"name":"Copy of Dawn - speed stuff ","theme_id":120646107254,"role":"unpublished","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-product-grid.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2022-02-12T11:00:54.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:25:57.342Z","theme_version":2},"120422924406":{"name":"Dawn2109","theme_id":120422924406,"role":"unpublished","theme_store_id":887,"search_liquid_file":"sections\/main-search.liquid","collection_liquid_file":"sections\/main-collection-
737product-grid.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2021-09-14T18:47:53.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:27:06.435Z","theme_version":2},"81562173558":{"name":"Debut","theme_id":81562173558,"role":"unpublished","theme_store_id":796,"search_liquid_file":"","collection_liquid_file":"templates\/collection.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2020-06-17T02:59:41.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:27:11.835Z","theme_version":1},"80638541942":{"name":"PageFly Assets - DO NOT DELETE","theme_id":80638541942,"role":"unpublished","theme_store_id":null,"search_liquid_file":"","collection_liquid_file":"templates\/collection.liquid","collection_page_enabled":false,"search_results_page_enabled":false,"product_card_design":"","product_card_order":["image","name","price"],"product_card_add_to_cart_enabled":false,"product_card_content_alignment":"left","pagination_type":"infinite_loading","search_results_page_search_bar_visibility":"show_always","rows_per_page":4,"products_per_row":3,"created_at":"2020-05-06T00:11:29.000Z","colors":{"results_page":{"product_title":"#555555","product_title_hover":"#555555","product_price":"#E52548","product_price_hover":"#E52548","product_original_price":"#8F8F8F","product_original_price_hover":"#8F8F8F"}},"assets_updated":"2026-07-24T21:27:14.759Z","theme_version":1}},"csb_selectors_metafield_id":37305371033718,"storefront_access_token":"148aa567248a7df21c53dbf8c7f0ba7d"},"shoprenter_storefront_settings":{"resultpage_quantity_selector":false},"shop_owner":"Michael Henkart","show_autocomplete_manufacturer":"hidden","show_autocomplete_sku":true,"show_autocomplete_cart":true,"show_child_products":false,"show_horizontal_category_menu":true,"show_horizontal_category_menu_images":true,"show_layerbox":false,"show_original_price":true,"show_parent_categories":false,"show_results_heading":{"desktop":true,"mobile":true},"sorting_function":"","sticky_widget":{"enabled":"auto"},"texts":{},"theme":{"id":146457821302,"name":"commonlands-shopify-2026\/main","theme_store_id":887,"shopifyThemeVersion":2},"two_column_layout":true,"webshop_engine":"shopify","weights":{"description":1,"manufacturer":1,"model":5,"parameters":1,"product_name":5,"short_description":1,"sku":5,"tags":5,"attributes":1,"product_type":5,"metafields":0},"whitelabel":true,"color_family":{"Beige":{"familyName":"Beige","familyColor":"#F5F5DC","colors":["beige","antique white","cornsilk","floral white","seashell","old lace","ivory","linen","lavender blush","misty rose"]},"Black":{"familyName":"Black","familyColor":"#000000","colors":["black"]},"Blue":{"familyName":"Blue","familyColor":"#0000FF","colors":["blue","light blue","medium blue","dark blue","midnight blue","steel blue","light steel blue","sky blue","light sky blue","deep sky blue","cadet blue","cornflower blue","powder blue","dodger blue","royal blue","navy blue"]},"Brown":{"familyName":"Brown","familyColor":"#A52A2A","colors":["brown","sandy brown","saddle brown","rosy brown","burlywood","blanched almond","bisque","chocolate","maroon","navajo white","peru","sienna","tan","wheat"]},"Cyan":{"familyName":"Cyan","familyColor":"#00FFFF","colors":["cyan","light cyan","dark cyan","turquoise","medium turquoise","dar
737k turquoise","pale turquoise","aqua","azure","alice blue","mint cream","teal"]},"Gold":{"familyName":"Gold","familyColor":"#FFD700","colors":["gold","goldenrod","darkgoldenrod","lightgoldenrodyellow","palegoldenrod"]},"Gray":{"familyName":"Gray","familyColor":"#808080","colors":["gray","grey","light gray","dim gray","dark gray","slate gray","light slate gray","dark slate gray","silver","gainsboro"]},"Green":{"familyName":"Green","familyColor":"#008000","colors":["green","light green","dark green","lime","lime green","green yellow","yellow green","spring green","medium spring green","sea green","medium sea green","dark sea green","aquamarine","medium aquamarine","olive","olive drab","dark olive green","forest green","lawn green","pale green","chartreuse","honeydew"]},"Orange":{"familyName":"Orange","familyColor":"#FFA500","colors":["orange","dark orange","coral","tomato","orangered"]},"Pink":{"familyName":"Pink","familyColor":"#FFC0CB","colors":["pink","light pink","hot pink","deep pink"]},"Purple":{"familyName":"Purple","familyColor":"#800080","colors":["purple","medium purple","rebecca purple","magenta","dark magenta","violet","dark violet","blue violet","pale violet red","medium violet red","slate blue","medium slate blue","dark slate blue","orchid","medium orchid","dark orchid","lavender","thistle","plum","fuchsia","indigo"]},"Red":{"familyName":"Red","familyColor":"#FF0000","colors":["red","dark red","indian red","salmon","light salmon","dark salmon","light coral","crimson","red brick","
737scarlet"]},"White":{"familyName":"White","familyColor":"#FFFFFF","colors":["white","snow","whitesmoke","ghostwhite"]},"Yellow":{"familyName":"Yellow","familyColor":"#FFFF00","colors":["yellow","light yellow","lemon chiffon","moccasin"]},"others":{"colors":[],"familyColor":"#ffffff","familyName":"Other"}}};
738  } catch (error) {
739    console.error('Error setting Rapid Search settings:', error);
740  }
741</script>
741
742
743<script type="text/javascript">
744  window.rpsMarketInfo = { id: 40173686 };
745</script>
745
746
747
748
749<script id="rps-shopify-extensions-cdn-setup">
750  (function () {
751    try {
752      const url = "https://cdn.shopify.com/extensions/01a0f221-d33c-7f04-a210-d57fd63e6029/rapid-search-421/assets/resultpage.js?shop=commonlands-camera-components.myshopify.com";
753      const match = url.match(/^(.*\/assets\/)/);
754      
755      if (match) {
756        window.RapidSearchShopifyExtensionsCdnBaseUrl = match[1];
757      }
758    } catch (error) {
759      console.error('Error setting Shopify CDN base URL:', error);
760    }
761  })();
762</script>
762
763
764<script type="text/javascript" defer src="https://cdn.shopify.com/extensions/01a0f221-d33c-7f04-a210-d57fd63e6029/rapid-search-421/assets/resultpage.js?shop=commonlands-camera-components.myshopify.com"></script>
764
765
766
767<!-- END app block --><!-- BEGIN app block: shopify://apps/smart-seo/blocks/smartseo/7b0a6064-ca2e-4392-9a1d-8c43c942357b --><meta name="smart-seo-integrated" content="true" /><!-- metatagsSavedToSEOFields: true --><!-- END app block --><!-- BEGIN app block: shopify://apps/essential-announcer/blocks/app-embed/93b5429f-c8d6-4c33-ae14-250fd84f361b -->
767<script>
768  
769    window.essentialAnnouncementConfigs = [{"id":"9b72403b-9f71-4312-9c86-706bc921ebfa","createdAt":"2026-09-04T17:58:18.341+00:00","name":"VISION 2026","title":"Meet us in Stuttgart, Germany 6-8 October at VISION. Booth 10A28","subheading":"","style":{"icon":{"size":32,"originalColor":true,"color":{"hex":"#333333"},"background":{"hex":"#ffffff","alpha":0,"rgba":"rgba(255, 255, 255, 0)"},"cornerRadius":4},"selectedTemplate":"custom","position":"bottom-page","stickyBar":false,"backgroundType":"singleBackground","singleColor":"#FFFFFF","gradientTurn":"90","gradientStart":"#DDDDDD","gradientEnd":"#FFFFFF","bgImage":"https://vamxifegjdrgriapwsjg.supabase.co/storage/v1/object/public/main/bg-images/bg-3.jpg","bgImageOverlayColor":"rgba(255, 255, 255, 0)","bgImageOverlayHex":"#ffffff","bgImageOverlayAlpha":0,"bgImageBlur":false,"borderRadius":"0","borderSize":"0","borderColor":"#c5c8d1","titleSize":"16","titleColor":"#08874a","font":"","subheadingSize":"14","subheadingColor":"#202223","buttonBackgroundColor":"#202223","buttonFontSize":"14","buttonFontColor":"#FFFFFF","buttonBorderRadius":"4","couponCodeButtonOutlineColor":"#202223","couponCodeButtonIconColor":"#202223","couponCodeButtonFontColor":"#202223","couponCodeButtonFontSize":"14","couponCodeButtonBorderRadius":"4","closeIconColor":"#6d7175","arrowIconColor":"#6d7175","spacing":{"insideTop":10,"insideBottom":10,"outsideTop":0,"outsideBottom":10}},"announcementType":"simple","announcementPlacement":"","published":true,"showOnProducts":[],"showOnCollections":[],"updatedAt":"2026-09-17T15:32:24.865+00:00","CTAType":"button","CTALink":"https://www.messe-stuttgart.de/vision/en/tickets-opening-times/","closeButton":false,"buttonText":"Get Free Entrance! ","announcements":[{"title":"Enjoy a 20% discount on all our products!","subheading":"","couponCode":"","CTAType":"button","buttonText":"Shop now!","CTALink":"","icon":"","id":708},{"title":"Enjoy a 20% discount on all our products!","subheading":"","couponCode":"","CTAType":"button","buttonText":"Shop now!","CTALink":"","icon":"","id":122}],"shop":"commonlands-camera-components.myshopify.com","animationSpeed":80,"rotateDuration":4,"translations":[{"title":"Treffen Sie uns vom 6. bis 8. Oktober auf der VISION in der Messe Stuttgart.","subheading":"","buttonText":"","CTALink":"","locale":"de","itemType":"simple","itemId":"","id":686}],"startDate":null,"endDate":"2026-10-09T17:28:00+00:00","icon":"","locationType":"on-countries","showInCountries":["DE","CH","AT","UA","PL","FR","TR","IT","BE","ES","FI","DK","SE","NL","HU","CZ","NO"],"showOnProductsInCollections":[],"type":"product-page","couponCode":"QW73EOZ","animationDirection":"left","excludeOnPages":[],"excludeOnSpecificUrls":[],"excludeOnKeywordsInUrl":[]}];
770  
771  window.essentialAnnouncementMeta = {
772    productCollections: [],
773    productData: {"id":7762516574326,"title":"Camera Module Assembly Services","handle":"camera-module-assembly","description":"\u003cp\u003eWe provide camera module assembly services to focus our lenses with your cameras. We can also provide completely assembled camera modules. Minimum Order Quantity: 100pcs. Add this to cart and we'll contact you to discuss pricing and details. [email protected].\u003c\/p\u003e","published_at":"2025-06-16T21:51:23-07:00","created_at":"2025-06-16T21:51:23-07:00","vendor":"Commonlands","type":"Non Stock","tags":[],"price":0,"price_min":0,"price_max":0,"available":true,"price_varies":false,"compare_at_price":0,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":42314501161078,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"MODULEFOCUS","requires_shipping":true,"taxable":false,"featured_image":null,"available":true,"name":"Camera Module Assembly Services","public_title":null,"options":["Default Title"],"price":0,"weight":0,"compare_at_price":0,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/commonlands.com\/cdn\/shop\/files\/CameraModuleAssemblyM12lenses.webp?v=1750195519"],"featured_image":"\/\/commonlands.com\/cdn\/shop\/files\/CameraModuleAssemblyM12lenses.webp?v=1750195519","options":["Title"],"media":[{"alt":"Camera Module Assembly Active Alignment","id":25988938203254,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1000,"width":1000,"src":"\/\/commonlands.com\/cdn\/shop\/files\/CameraModuleAssemblyM12lenses.webp?v=1750195519"},"aspect_ratio":1.0,"height":1000,"media_type":"image","src":"\/\/commonlands.com\/cdn\/shop\/files\/CameraModuleAssemblyM12lenses.webp?v=1750195519","width":1000}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eWe provide camera module assembly services to focus our lenses with your cameras. We can also provide completely assembled camera modules. Minimum Order Quantity: 100pcs. Add this to cart and we'll contact you to discu
773ss pricing and details. [email protected].\u003c\/p\u003e"},
774    templateName: "product",
775    collectionId: null,
776  };
777  
778</script>
778
779
780 
781
782<style>
783  .essential_annoucement_bar_wrapper {display: none;}
784</style>
785
786
787
788<script src="https://cdn.shopify.com/extensions/01a0ae33-7196-7ba7-a372-9039e66cd741/essential-announcement-bar-120/assets/announcement-bar-essential-apps.js" defer></script>
788
789
790
791<!-- END app block --><!-- BEGIN app block: shopify://apps/weglot-translate-your-store/blocks/weglot/3097482a-fafe-42ff-bc33-ea19e35c4a20 -->
792
793  
794
795  
796
797  
798  
799    
800  
801
802
803<!--Start Weglot Script-->
804<script src="https://cdn.weglot.com/weglot.min.js?api_key=" async></script>
804
805<!--End Weglot Script-->
806
807<!-- END app block -->
807<script src="https://cdn.shopify.com/extensions/01a0fcf5-9827-75b1-9d7e-ea3a10d70819/gdpr-backpack-903/assets/consentmo_cookie_consent.js" type="text/javascript" defer="defer"></script>
807
808<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
809<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 27392737398,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 809
809
810<script>
811  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
812</script>
vendor: 1 bytes, line 812
812
813<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
813).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 27392737398,storefrontBaseUrl: "https://commonlands.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://commonlands.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2207252598","configuration":"{\"storeId\":\"commonlands-camera-components.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0da674a4d28eb16838d73f6a82224de2","type":"APP","apiClientId":3440817,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
813,"dataSharingState":"unrestricted"},{"id":"1918894198","configuration":"{\"accountID\":\"27392737398\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9cf281f576a3744d05c8685f9f7f3f72","type":"APP","apiClientId":10250649601,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1728381046","configuration":"{\"mailchimp_store_id\":\"store_m6pjqeyozespuqcfv4bu\", \"mailchimp_user_id\":\"225445234\",\"mailchimp_list_id\":\"1a01139514\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e357a49eadeb6216a959d63fa3fb8f55","type":"APP","apiClientId":2585307,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"1085898870","configuration":"{\"ti\":\"187043879\",\"endpoint\":\"https:\/\/bat.bing.com\/action\/0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"5ee93563fe31b11d2d65e2f09a5229dc","type":"APP","apiClientId":2997493,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"997851254","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-VXJK1X3F7K\\\",\\\"AW-634456680\\\",\\\"GT-KVJKM6QS\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-VXJK1X3F7K\\\",\\\"AW-634456680\\\/9JM1CO_U9pEcEOiUxK4C\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-VXJK1X3F7K\\\",\\\"AW-634456680\\\/n6zRCPvU9pEcEOiUxK4C\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-VXJK1X3F7K\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-VXJK1X3F7K\\\",\\\"AW-634456680\\\/CCJ5CPjU9pEcEOiUxK4C\\\",\\\"MC-64ST68LWN6\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-VXJK1X3F7K\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-VXJK1X3F7K\\\",\\\"AW-634456680\\\/f5AwCOzU9pEcEOiUxK4C\\\",\\\"MC-64ST68LWN6\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-VXJK1X3F7K\\\",\\\"AW-634456680\\\/_EzXCPXU9pEcEOiUxK4C\\\",\\\"MC-64ST68LWN6\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-VXJK1X3F7K\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-VXJK1X3F7K\\\",\\\"AW-634456680\\\/aWg9CP7U9pEcEOiUxK4C\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-VXJK1X3F7K\\\",\\\"AW-634456680\\\/yfXUCPLU9pEcEOiUxK4C\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-VXJK1X3F7K\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"347177078","configuration":"{\"endpoint\":\"https:\\\/\\\/api.parcelpanel.com\",\"debugMode\":\"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"97b5be1756c17e4819e71893a005b595","type":"APP","apiClientId":2681387,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
813,"dataSharingState":"unrestricted"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Commonlands Optics","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"commonlands-camera-components.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/commonlands.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":0.0,"currencyCode":"USD"},"product":{"title":"Camera Module Assembly Services","vendor":"Commonlands","id":"7762516574326","untranslatedTitle":"Camera Module Assembly Services","url":"\/products\/camera-module-assembly","type":"Non Stock"},"id":"42314501161078","image":{"src":"\/\/commonlands.com\/cdn\/shop\/files\/CameraModuleAssemblyM12lenses.webp?v=1750195519"},"sku":"MODULEFOCUS","title":"Default Title","untranslatedTitle":"Default Title"}],"products":[{"id":"7762516574326","handle":"camera-module-assembly","isCollective":null,"title":"Camera Module Assembly Services","type":"Non Stock","untranslatedTitle":"Camera Module Assembly Services","url":"\/products\/camera-module-assembly","vendor":"Commonlands","remoteShopId":null,"variants":[{"id":"42314501161078","image":{"src":"\/\/commonlands.com\/cdn\/shop\/files\/CameraModuleAssemblyM12lenses.webp?v=1750195519"},"price":{"amount":0.0,"currencyCode":"USD"},"sku":"MODULEFOCUS","title":"Default Title","untranslatedTitle":"Default Title"}]}],"purchasingCompany":null},},"https://commonlands.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"146457821302","themePublished":"true","eventMetadataId":"51b00981-2ea9-4bb6-84c3-5d663019603e","pageType":"product","resourceId":"7762516574326","shopId":"27392737398","storefrontBaseUrl":"https:\/\/commonlands.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":0.0,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"Camera Module Assembly Services\",\"vendor\":\"Commonlands\",\"id\":\"7762516574326\",\"untranslatedTitle\":\"Camera Module Assembly Services\",\"url\":\"\/products\/camera-module-assembly\",\"type\":\"Non Stock\"},\"id\":\"42314501161078\",\"image\":{\"src\":\"\/\/commonlands.com\/cdn\/shop\/files\/CameraModuleAssemblyM12lenses.webp?v=1750195519\"},\"sku\":\"MODULEFOCUS\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});})();</script>
813<script>
814  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
815  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
816  window.ShopifyAnalytics.meta.currency = 'USD';
817  var meta = {"product":{"id":7762516574326,"gid":"gid:\/\/shopify\/Product\/7762516574326","vendor":"Commonlands","type":"Non Stock","handle":"camera-module-assembly","variants":[{"id":42314501161078,"price":0,"name":"Camera Module Assembly Services","public_title":null,"sku":"MODULEFOCUS"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":7762516574326,"requestId":"577ea9d9-1423-4b3a-84d8-092e08e25280-1790963489"}};
818  for (var attr in meta) {
819    window.ShopifyAnalytics.meta[attr] = meta[attr];
820  }
821</script>
vendor: 1 bytes, line 821
821
822<script class="analytics">
823  (function () {
824    var customDocumentWrite = function(content) {
825      var jquery = null;
826
827      if (window.jQuery) {
828        jquery = window.jQuery;
829      } else if (window.Checkout && window.Checkout.$) {
830        jquery = window.Checkout.$;
831      }
832
833      if (jquery) {
834        jquery('body').append(content);
835      }
836    };
837
838    var hasLoggedConversion = function(token) {
839      if (token) {
840        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
841      }
842      return false;
843    }
844
845    var setCookieIfConversion = function(token) {
846      if (token) {
847        var twoMonthsFromNow = new Date(Date.now());
848        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
849
850        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
851      }
852    }
853
854    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
855    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
856    if (trekkie.integrations) {
857      return;
858    }
859    trekkie.methods = [
860      'identify',
861      'page',
862      'ready',
863      'track',
864      'trackForm',
865      'trackLink'
866    ];
867    trekkie.factory = function(method) {
868      return function() {
869        var args = Array.prototype.slice.call(arguments);
870        args.unshift(method);
871        trekkie.push(args);
872        if (method == 'track' || method == 'page') {
873          var pageUrl;
874          try {
875            pageUrl = window.location.href;
876          } catch (e) {}
877          var pageReferrer;
878          try {
879            pageReferrer = document.referrer;
880          } catch (e) {}
881          try {
882            if (window.__TREKKIE_SHIM_QUEUE == null) {
883              window.__TREKKIE_SHIM_QUEUE = [];
884            }
885            window.__TREKKIE_SHIM_QUEUE.push({
886              from: 'trekkie-stub',
887              method: method,
888              args: args.slice(1),
889              pageContext: {
890                url: pageUrl,
891                referrer: pageReferrer
892              }
893            });
894          } catch (e) {
895            // no-op
896          }
897        }
898        return trekkie;
899      };
900    };
901    for (var i = 0; i < trekkie.methods.length; i++) {
902      var key = trekkie.methods[i];
903      trekkie[key] = trekkie.factory(key);
904    }
905    trekkie.load = function(config) {
906      trekkie.config = config || {};
907      trekkie.config.initialDocumentCookie = document.cookie;
908      var first = document.getElementsByTagName('script')[0];
909var script = document.createElement('script');
910script.type = 'text/javascript';
911script.onerror = function(e) {
912  var scriptFallback = document.createElement('script');
913  scriptFallback.type = 'text/javascript';
914  scriptFallback.onerror = function(error) {
915          var Monorail = {
916      produce: function produce(monorailDomain, schemaId, payload) {
917        var currentMs = new Date().getTime();
918        var event = {
919          schema_id: schemaId,
920          payload: payload,
921          metadata: {
922            event_created_at_ms: currentMs,
923            event_sent_at_ms: currentMs
924          }
925        };
926        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
927      },
928      sendRequest: function sendRequest(endpointUrl, payload) {
929        // Try the sendBeacon API
930        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
931          var blobData = new window.Blob([payload], {
932            type: 'text/plain'
933          });
934
935          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
936            return true;
937          } // sendBeacon was not successful
938
939        } // XHR beacon
940
941        var xhr = new XMLHttpRequest();
942
943        try {
944          xhr.open('POST', endpointUrl);
945          xhr.setRequestHeader('Content-Type', 'text/plain');
946          xhr.send(payload);
947        } catch (e) {
948          console.log(e);
949        }
950
951        return false;
952      },
953      isIos12: function isIos12() {
954        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
955      }
956    };
957    Monorail.produce('monorail-edge.shopifysvc.com',
958      'trekkie_storefront_load_errors/1.1',
959      {shop_id: 27392737398,
960      theme_id: 146457821302,
961      app_name: "storefront",
962      context_url: window.location.href,
963      source_url: "//commonlands.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"});
964
965  };
966  scriptFallback.async = true;
967  scriptFallback.src = '//commonlands.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
968  first.parentNode.insertBefore(scriptFallback, first);
969};
970script.async = true;
971script.src = '//commonlands.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
972first.parentNode.insertBefore(script, first);
973
974    };
975    trekkie.load(
976      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":27392737398,"isMerchantRequest":null,"themeId":146457821302,"themeCityHash":"10525855878005697550","contentLanguage":"en","currency":"USD","eventMetadataId":"51b00981-2ea9-4bb6-84c3-5d663019603e"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}}
977    );
978
979    var loaded = false;
980    trekkie.ready(function() {
981      if (loaded) return;
982      loaded = true;
983
984      window.ShopifyAnalytics.lib = window.trekkie;
985
986      var originalDocumentWrite = document.write;
987      document.write = customDocumentWrite;
988      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
989      document.write = originalDocumentWrite;
990
991      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
992      var token = match? match[1]: undefined;
993      if (!hasLoggedConversion(token)) {
994        setCookieIfConversion(token);
995        window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"USD","variantId":42314501161078,"productId":7762516574326,"productGid":"gid:\/\/shopify\/Product\/7762516574326","name":"Camera Module Assembly Services","price":"0.00","sku":"MODULEFOCUS","brand":"Commonlands","variant":null,"category":"Non Stock","nonInteraction":true,"remote":false,"available":true},undefined,undefined,{"shopifyEmitted":true});
996      }
997    });
998
999    window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":7762516574326,"requestId":"577ea9d9-1423-4b3a-84d8-092e08e25280-1790963489","shopifyEmitted":true});
1000
1001    var eventsListenerScript = document.createElement('script');
1002    eventsListenerScript.async = true;
1003    eventsListenerScript.src = "//commonlands.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
1004    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
1005})();</script>
vendor: 1 bytes, line 1005
1005
1006<script
1007  defer
1008  src="https://commonlands.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
1009  data-application="storefront-renderer"
1010  data-shop-id="27392737398"
1011  data-render-region="gcp-us-central1"
1012  data-page-type="product"
1013  data-theme-instance-id="146457821302"
1014  data-theme-name="Dawn"
1015  data-theme-version="15.4.0"
1016  data-monorail-region="shop_domain"
1017  data-resource-timing-sampling-rate="10"
1018  data-shs="true"
1019  data-shs-beacon="true"
1020  data-shs-export-with-fetch="true"
1021  data-shs-logs-sample-rate="1"
1022  data-shs-beacon-endpoint="https://commonlands.com/api/collect"
1023></script>
1023
1024<meta name="shopify-y" content="5bf894be-9efb-4842-9996-607464b1f8ea" data-expiration="1822521089000"><meta name="shopify-s" content="3b61fd26-fa9d-4e24-b74d-c6a98af48719" data-expiration="1790965289000"><meta name="new-cookie-storage-activated" content="t">
1025</head>
1026
1027  <body class="gradient">
1028    <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 1028-1029
1028
1029    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1029GTM-TG4895P2
vendor: 91 bytes, lines 1029-1031
1029"
1030    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1031    
1031<!-- End Google Tag Manager (noscript) -->
1032    <a class="skip-to-content-link button visually-hidden" href="#MainContent">
1033      Skip to content
1034    </a>
1035
1036<link href="//commonlands.com/cdn/shop/t/50/assets/quantity-popover.css?v=160630540099520878331784481374" rel="stylesheet" type="text/css" media="all" />
1037<link href="//commonlands.com/cdn/shop/t/50/assets/component-card.css?v=120341546515895839841784481358" rel="stylesheet" type="text/css" media="all" />
1038
1039<script src="//commonlands.com/cdn/shop/t/50/assets/cart.js?v=25986244538023964561784481354" defer="defer"></script>
vendor: 1 bytes, line 1039
1039
1040<script src="//commonlands.com/cdn/shop/t/50/assets/quantity-popover.js?v=987015268078116491784481374" defer="defer"></script>
1040
1041
1042<style>
1043  .drawer {
1044    visibility: hidden;
1045  }
1046</style>
1047
1048<cart-drawer class="drawer is-empty">
1049  <div id="CartDrawer" class="cart-drawer">
1050    <div id="CartDrawer-Overlay" class="cart-drawer__overlay"></div>
1051    <div
1052      class="drawer__inner gradient color-scheme-5b945e79-3d10-4fdc-bd02-8482ef769ae3"
1053      role="dialog"
1054      aria-modal="true"
1055      aria-label="Your cart"
1056      tabindex="-1"
1057    ><div class="drawer__inner-empty">
1058          <div class="cart-drawer__warnings center cart-drawer__warnings--has-collection">
1059            <div class="cart-drawer__empty-content">
1060              <h2 class="cart__empty-text">Your cart is empty</h2>
1061              <button
1062                class="drawer__close"
1063                type="button"
1064                onclick="this.closest('cart-drawer').close()"
1065                aria-label="Close"
1066              >
1067                <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
1068</span>
1069              </button>
1070              <a href="/collections/all" class="button">
1071                Continue shopping
1072              </a><p class="cart__login-title h3">Have an account?</p>
1073                <p class="cart__login-paragraph">
1074                  <a href="https://commonlands.com/customer_authentication/redirect?locale=en&region_country=US" class="link underlined-link">Log in</a> to check out faster.
1075                </p></div>
1076          </div><div class="cart-drawer__collection">
1077              
1078<div class="card-wrapper animate-arrow collection-card-wrapper">
1079  <div
1080    class="
1081      card
1082      card--standard
1083       card--media
1084      
1085      
1086      
1087    "
1088    style="--ratio-percent: 100%;"
1089  >
1090    <div
1091      class="card__inner color-scheme-5b945e79-3d10-4fdc-bd02-8482ef769ae3 gradient ratio"
1092      style="--ratio-percent: 100%;"
1093    ><div class="card__media">
1094          <div class="media media--transparent media--hover-effect">
1095            <img
1096              srcset="//commonlands.com/cdn/shop/collections/Commonlands_M12_Lenses.jpg?v=1716229416&width=165 165w,//commonlands.com/cdn/shop/collections/Commonlands_M12_Lenses.jpg?v=1716229416&width=330 330w,//commonlands.com/cdn/shop/collections/Commonlands_M12_Lenses.jpg?v=1716229416&width=535 535w,//commonlands.com/cdn/shop/collections/Commonlands_M12_Lenses.jpg?v=1716229416&width=750 750w,//commonlands.com/cdn/shop/collections/Commonlands_M12_Lenses.jpg?v=1716229416&width=1000 1000w,//commonlands.com/cdn/shop/collections/Commonlands_M12_Lenses.jpg?v=1716229416 1024w
1097              "
1098              src="//commonlands.com/cdn/shop/collections/Commonlands_M12_Lenses.jpg?v=1716229416&width=1500"
1099              sizes="
1100                (min-width: 1200px) 1100px,
1101                (min-width: 750px) calc(100vw - 10rem),
1102                calc(100vw - 3rem)
1103              "
1104              alt="M12 Lenses / S-Mount Lenses"
1105              height="1024"
1106              width="1024"
1107              loading="lazy"
1108              class="motion-reduce"
1109            >
1110          </div>
1111        </div><div class="card__content">
1112          <div class="card__information">
1113            <h3 class="card__heading">
1114              <a
1115                
1116                  href="/collections/m12-lenses"
1117                
1118                class="full-unstyled-link"
1119              >M12 Lenses (S-Mount Lenses) for Embedded Machine Vision
1120              </a>
1121            </h3><p class="card__caption">M12 Lenses are miniature lenses for embedded cameras, computer vision, and human viewing...<span class="icon-wrap"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1121ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1122</span>
1123              </p></div>
1124        </div></div><div class="card__content">
1125        <div class="card__information">
1126          <h3 class="card__heading">
1127            <a
1128              
1129                href="/collections/m12-lenses"
1130              
1131              class="full-unstyled-link"
1132            >M12 Lenses (S-Mount Lenses) for Embedded Machine Vision<span class="icon-wrap"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewBox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1133</span>
1134            </a>
1135          </h3></div>
1136      </div></div>
1137</div>
1138
1139            </div></div><div class="drawer__header">
1140        <h2 class="drawer__heading">Your cart</h2>
1141        <button
1142          class="drawer__close"
1143          type="button"
1144          onclick="this.closest('cart-drawer').close()"
1145          aria-label="Close"
1146        >
1147          <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
1148</span>
1149        </button>
1150      </div>
1151      <cart-drawer-items
1152        
1153          class=" is-empty"
1154        
1155      >
1156        <form
1157          action="/cart"
1158          id="CartDrawer-Form"
1159          class="cart__contents cart-drawer__form"
1160          method="post"
1161        >
1162          <div id="CartDrawer-CartItems" class="drawer__contents js-contents"><p id="CartDrawer-LiveRegionText" class="visually-hidden" role="status"></p>
1163            <p id="CartDrawer-LineItemStatus" class="visually-hidden" aria-hidden="true" role="status">
1164              Loading...
1165            </p>
1166          </div>
1167          <div id="CartDrawer-CartErrors" role="alert"></div>
1168        </form>
1169      </cart-drawer-items>
1170      <div class="drawer__footer"><details id="Details-CartDrawer">
1171            <summary>
1172              <span class="summary__title">
1173                
1174            Enter Notes, PO#, and/or Shipping Account #<svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
1175</span>
1176            </summary>
1177            <cart-note class="cart__note field">
1178              <label class="visually-hidden" for="CartDrawer-Note">Order special instructions</label>
1179              <textarea
1180                id="CartDrawer-Note"
1181                class="text-area text-area--resize-vertical field__input"
1182                name="note"
1183                placeholder="Order special instructions"
1184              ></textarea>
1185            </cart-note>
1186          </details><!-- Start blocks -->
1187        <!-- Subtotals -->
1188
1189        <div class="cart-drawer__footer" >
1190             <div class="docapp-cart-with-shipping-summary"></div>
1191           
1192        </div>
1193
1194        <!-- CTAs -->
1195
1196        <div class="cart__ctas" >
1197          <button
1198            type="submit"
1199            id="CartDrawer-Checkout"
1200            class="cart__checkout-button button"
1201            name="checkout"
1202            form="CartDrawer-Form"
1203            
1204              disabled
1205            
1206          >
1207            Check out
1208          </button>
1209        </div>
1210      </div>
1211    </div>
1212  </div>
1213</cart-drawer>
1214<!-- BEGIN sections: header-group -->
1215<div id="shopify-section-sections--20119088595062__header" class="shopify-section shopify-section-group-header-group section-header"><link rel="stylesheet" href="//commonlands.com/cdn/shop/t/50/assets/component-list-menu.css?v=151968516119678728991784481359" media="print" onload="this.media='all'">
1216<link rel="stylesheet" href="//commonlands.com/cdn/shop/t/50/assets/component-menu-drawer.css?v=147478906057189667651784481361" media="print" onload="this.media='all'">
1217<link
1218  rel="stylesheet"
1219  href="//commonlands.com/cdn/shop/t/50/assets/component-cart-notification.css?v=54116361853792938221784481364"
1220  media="print"
1221  onload="this.media='all'"
1222><style>
1223  header-drawer {
1224    justify-self: start;
1225    margin-left: -1.2rem;
1226  }@media screen and (min-width: 990px) {
1227      header-drawer {
1228        display: none;
1229      }
1230    }.menu-drawer-container {
1231    display: flex;
1232  }
1233
1234  .list-menu {
1235    list-style: none;
1236    padding: 0;
1237    margin: 0;
1238  }
1239
1240  .list-menu--inline {
1241    display: inline-flex;
1242    flex-wrap: wrap;
1243  }
1244
1245  summary.list-menu__item {
1246    padding-right: 2.7rem;
1247  }
1248
1249  .list-menu__item {
1250    display: flex;
1251    align-items: center;
1252    line-height: calc(1 + 0.3 / var(--font-body-scale));
1253  }
1254
1255  .list-menu__item--link {
1256    text-decoration: none;
1257    padding-bottom: 1rem;
1258    padding-top: 1rem;
1259    line-height: calc(1 + 0.8 / var(--font-body-scale));
1260  }
1261
1262  @media screen and (min-width: 750px) {
1263    .list-menu__item--link {
1264      padding-bottom: 0.5rem;
1265      padding-top: 0.5rem;
1266    }
1267  }
1268</style><style data-shopify>.header {
1269    padding: 8px 3rem 8px 3rem;
1270  }
1271
1272  .section-header {
1273    position: sticky; /* This is for fixing a Safari z-index issue. PR #2147 */
1274    margin-bottom: 0px;
1275  }
1276
1277  @media screen and (min-width: 750px) {
1278    .section-header {
1279      margin-bottom: 0px;
1280    }
1281  }
1282
1283  @media screen and (min-width: 990px) {
1284    .header {
1285      padding-top: 16px;
1286      padding-bottom: 16px;
1287    }
1288  }</style>
1288<script src="//commonlands.com/cdn/shop/t/50/assets/cart-notification.js?v=133508293167896966491784481363" defer="defer"></script>
1288
1289
1290<sticky-header
1291  
1292    data-sticky-type="always"
1293  
1294  class="header-wrapper color-scheme-5b945e79-3d10-4fdc-bd02-8482ef769ae3 gradient header-wrapper--border-bottom"
1295><header class="header header--middle-left header--mobile-center page-width header--has-menu header--has-account">
1296
1297<header-drawer data-breakpoint="tablet">
1298  <details id="Details-menu-drawer-container" class="menu-drawer-container">
1299    <summary
1300      class="header__icon header__icon--menu header__icon--summary link focus-inset"
1301      aria-label="Menu"
1302    >
1303      <span><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-hamburger" viewBox="0 0 18 16"><path fill="currentColor" d="M1 .5a.5.5 0 1 0 0 1h15.71a.5.5 0 0 0 0-1zM.5 8a.5.5 0 0 1 .5-.5h15.71a.5.5 0 0 1 0 1H1A.5.5 0 0 1 .5 8m0 7a.5.5 0 0 1 .5-.5h15.71a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5"/></svg>
1304<svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
1305</span>
1306    </summary>
1307    <div id="menu-drawer" class="gradient menu-drawer motion-reduce color-scheme-5b945e79-3d10-4fdc-bd02-8482ef769ae3">
1308      <div class="menu-drawer__inner-container">
1309        <div class="menu-drawer__navigation-container">
1310          <nav class="menu-drawer__navigation">
1311            <ul class="menu-drawer__menu has-submenu list-menu" role="list"><li><details id="Details-menu-drawer-menu-item-1">
1312                      <summary
1313                        id="HeaderDrawer-find-a-lens"
1314                        class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
1315                      >
1316                        Find a Lens
1317                        <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1317ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1318</span>
1319                        <span class="svg-wrapper"><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
1320</span>
1321                      </summary>
1322                      <div
1323                        id="link-find-a-lens"
1324                        class="menu-drawer__submenu has-submenu gradient motion-reduce"
1325                        tabindex="-1"
1326                      >
1327                        <div class="menu-drawer__inner-submenu">
1328                          <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1329                            <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1329ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1330</span>
1331                            Find a Lens
1332                          </button>
1333                          <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a
1334                                    id="HeaderDrawer-find-a-lens-search-and-buy-samples"
1335                                    href="/collections/m12-lenses"
1336                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1337                                    
1338                                  >
1339                                    Search and Buy Samples:
1340                                  </a></li><li><a
1341                                    id="HeaderDrawer-find-a-lens-m12-lenses"
1342                                    href="/collections/m12-lenses"
1343                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1344                                    
1345                                  >
1346                                    M12 Lenses
1347                                  </a></li><li><a
1348                                    id="HeaderDrawer-find-a-lens-c-mount-lenses"
1349                                    href="/collections/c-mount-lenses"
1350                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1351                                    
1352                                  >
1353                                    C-Mount Lenses
1354                                  </a></li><li><a
1355                                    id="HeaderDrawer-find-a-lens-m7-m8-lenses"
1356                                    href="/collections/m8-lenses-and-m7-lenses"
1357                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1358                                    
1359                                  >
1360                                    M7/M8 Lenses
1361                                  </a></li></ul>
1362                        </div>
1363                      </div>
1364                    </details></li><li><details id="Details-menu-drawer-menu-item-2">
1365                      <summary
1366                        id="HeaderDrawer-filters-and-mounts"
1367                        class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
1368                      >
1369                        Filters and Mounts
1370                        <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1370ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1371</span>
1372                        <span class="svg-wrapper"><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
1373</span>
1374                      </summary>
1375                      <div
1376                        id="link-filters-and-mounts"
1377                        class="menu-drawer__submenu has-submenu gradient motion-reduce"
1378                        tabindex="-1"
1379                      >
1380                        <div class="menu-drawer__inner-submenu">
1381                          <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1382                            <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1382ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1383</span>
1384                            Filters and Mounts
1385                          </button>
1386                          <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a
1387                                    id="HeaderDrawer-filters-and-mounts-optical-filters-bandpass-dual-bandpass-ir-cut"
1388                                    href="/collections/optical-filters"
1389                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1390                                    
1391                                  >
1392                                    Optical Filters (Bandpass, Dual-Bandpass, IR Cut)
1393                                  </a></li><li><a
1394                                    id="HeaderDrawer-filters-and-mounts-mounts-adapters-switchers-vcms"
1395                                    href="/collections/board-lens-accessories"
1396                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1397                                    
1398                                  >
1399                                    Mounts, Adapters, Switchers, VCMs
1400                                  </a></li></ul>
1401                        </div>
1402                      </div>
1403                    </details></li><li><details id="Details-menu-drawer-menu-item-3">
1404                      <summary
1405                        id="HeaderDrawer-calculators"
1406                        class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
1407                      >
1408                        Calculators
1409                        <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1409ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1410</span>
1411                        <span class="svg-wrapper"><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
1412</span>
1413                      </summary>
1414                      <div
1415                        id="link-calculators"
1416                        class="menu-drawer__submenu has-submenu gradient motion-reduce"
1417                        tabindex="-1"
1418                      >
1419                        <div class="menu-drawer__inner-submenu">
1420                          <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1421                            <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1421ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1422</span>
1423                            Calculators
1424                          </button>
1425                          <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a
1426                                    id="HeaderDrawer-calculators-field-of-view-calculator"
1427                                    href="/pages/camera-field-of-view-calculator"
1428                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1429                                    
1430                                  >
1431                                    Field of View Calculator
1432                                  </a></li><li><a
1433                                    id="HeaderDrawer-calculators-focal-length-calculator"
1434                                    href="/pages/efl-calculator"
1435                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1436                                    
1437                                  >
1438                                    Focal Length Calculator
1439                                  </a></li><li><a
1440                                    id="HeaderDrawer-calculators-depth-of-field-calculator"
1441                                    href="/pages/camera-depth-of-field-calculator"
1442                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1443                                    
1444                                  >
1445                                    Depth of Field Calculator
1446                                  </a></li><li><a
1447                                    id="HeaderDrawer-calculators-angle-of-view-calculator"
1448                                    href="/pages/camera-angle-of-view-calculator"
1449                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1450                                    
1451                                  >
1452                                    Angle of View Calculator
1453                                  </a></li><li><a
1454                                    id="HeaderDrawer-calculators-format-type-calculator"
1455                                    href="/blogs/technical/cmos-sensor-size"
1456                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1457                                    
1458                                  >
1459                                    Format Type Calculator
1460                                  </a></li></ul>
1461                        </div>
1462                      </div>
1463                    </details></li><li><details id="Details-menu-drawer-menu-item-4">
1464                      <summary
1465                        id="HeaderDrawer-services"
1466                        class="menu-drawer__menu-item list-menu__item link link--text focus-inset menu-drawer__menu-item--active"
1467                      >
1468                        Services
1469                        <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1469ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1470</span>
1471                        <span class="svg-wrapper"><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
1472</span>
1473                      </summary>
1474                      <div
1475                        id="link-services"
1476                        class="menu-drawer__submenu has-submenu gradient motion-reduce"
1477                        tabindex="-1"
1478                      >
1479                        <div class="menu-drawer__inner-submenu">
1480                          <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1481                            <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1481ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1482</span>
1483                            Services
1484                          </button>
1485                          <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a
1486                                    id="HeaderDrawer-services-camera-module-assembly"
1487                                    href="/products/camera-module-assembly"
1488                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset menu-drawer__menu-item--active"
1489                                    
1490                                      aria-current="page"
1491                                    
1492                                  >
1493                                    Camera Module Assembly
1494                                  </a></li><li><a
1495                                    id="HeaderDrawer-services-custom-lens-design"
1496                                    href="/pages/optical-design"
1497                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1498                                    
1499                                  >
1500                                    Custom Lens Design
1501                                  </a></li><li><a
1502                                    id="HeaderDrawer-services-trioptics-hr2-mtf-testing"
1503                                    href="/products/mtf-testing-trioptics-hr2"
1504                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1505                                    
1506                                  >
1507                                    Trioptics HR2 MTF Testing
1508                                  </a></li><li><a
1509                                    id="HeaderDrawer-services-product-reliability-testing"
1510                                    href="/collections/reliability-testing"
1511                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1512                                    
1513                                  >
1514                                    Product Reliability Testing
1515                                  </a></li></ul>
1516                        </div>
1517                      </div>
1518                    </details></li><li><details id="Details-menu-drawer-menu-item-5">
1519                      <summary
1520                        id="HeaderDrawer-about"
1521                        class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
1522                      >
1523                        About
1524                        <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1524ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1525</span>
1526                        <span class="svg-wrapper"><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
1527</span>
1528                      </summary>
1529                      <div
1530                        id="link-about"
1531                        class="menu-drawer__submenu has-submenu gradient motion-reduce"
1532                        tabindex="-1"
1533                      >
1534                        <div class="menu-drawer__inner-submenu">
1535                          <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1536                            <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1536ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1537</span>
1538                            About
1539                          </button>
1540                          <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a
1541                                    id="HeaderDrawer-about-about-us"
1542                                    href="/pages/about-commonlands"
1543                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1544                                    
1545                                  >
1546                                    About Us
1547                                  </a></li><li><a
1548                                    id="HeaderDrawer-about-use-agentic-mcp"
1549                                    href="/pages/agentic-mcp-for-m12-lenses-and-optics"
1550                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1551                                    
1552                                  >
1553                                    Use Agentic MCP
1554                                  </a></li><li><a
1555                                    id="HeaderDrawer-about-tradeshows"
1556                                    href="/pages/tradeshows"
1557                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1558                                    
1559                                  >
1560                                    Tradeshows
1561                                  </a></li><li><a
1562                                    id="HeaderDrawer-about-technical-articles"
1563                                    href="/blogs/technical"
1564                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1565                                    
1566                                  >
1567                                    Technical Articles
1568                                  </a></li><li><a
1569                                    id="HeaderDrawer-about-image-sensor-list"
1570                                    href="/pages/image-sensors"
1571                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1572                                    
1573                                  >
1574                                    Image Sensor List
1575                                  </a></li><li><a
1576                                    id="HeaderDrawer-about-tariffs-and-the-impact"
1577                                    href="/pages/tariffs"
1578                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1579                                    
1580                                  >
1581                                    Tariffs and the Impact
1582                                  </a></li><li><a
1583                                    id="HeaderDrawer-about-faqs"
1584                                    href="/pages/faq"
1585                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1586                                    
1587                                  >
1588                                    FAQs
1589                                  </a></li><li><a
1590                                    id="HeaderDrawer-about-join-our-team"
1591                                    href="/pages/careers"
1592                                    class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
1593                                    
1594                                  >
1595                                    Join Our Team
1596                                  </a></li></ul>
1597                        </div>
1598                      </div>
1599                    </details></li><li><a
1600                      id="HeaderDrawer-contact-us"
1601                      href="/pages/contact-us"
1602                      class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
1603                      
1604                    >
1605                      Contact Us
1606                    </a></li></ul>
1607          </nav>
1608          <div class="menu-drawer__utility-links"><a
1609                href="https://commonlands.com/customer_authentication/redirect?locale=en&region_country=US"
1610                class="menu-drawer__account link focus-inset h5 medium-hide large-up-hide"
1611                rel="nofollow"
1612              ><account-icon>
1612<span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-account" viewBox="0 0 18 19"><path fill="currentColor" fill-rule="evenodd" d="M6 4.5a3 3 0 1 1 6 0 3 3 0 0 1-6 0m3-4a4 4 0 1 0 0 8 4 4 0 0 0 0-8m5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15M9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.1-3.67-1.35-6.17-1.35" clip-rule="evenodd"/></svg>
1613</span></account-icon>Log in</a>
1614            <ul class="list list-social list-unstyled" role="list"></ul>
1615          </div>
1616        </div>
1617      </div>
1618    </div>
1619  </details>
1620</header-drawer>
1621<a href="/" class="header__heading-link link link--text focus-inset"><div class="header__heading-logo-wrapper">
1622            
1623            <img src="//commonlands.com/cdn/shop/files/Commonlands_Camera_Logo_20220819_Horizontal_100px_height_420px_width.png?v=1724861426&amp;width=600" alt="Commonlands Optics" srcset="//commonlands.com/cdn/shop/files/Commonlands_Camera_Logo_20220819_Horizontal_100px_height_420px_width.png?v=1724861426&amp;width=210 210w, //commonlands.com/cdn/shop/files/Commonlands_Camera_Logo_20220819_Horizontal_100px_height_420px_width.png?v=1724861426&amp;width=315 315w, //commonlands.com/cdn/shop/files/Commonlands_Camera_Logo_20220819_Horizontal_100px_height_420px_width.png?v=1724861426&amp;width=420 420w" width="210" height="50.0" loading="eager" class="header__heading-logo motion-reduce" sizes="(max-width: 420px) 50vw, 210px">
1624          </div></a>
1625
1626<nav class="header__inline-menu">
1627  <ul class="list-menu list-menu--inline" role="list"><li><header-menu>
1628            <details id="Details-HeaderMenu-1">
1629              <summary
1630                id="HeaderMenu-find-a-lens"
1631                class="header__menu-item list-menu__item link focus-inset"
1632              >
1633                <span
1634                >Find a Lens</span><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
1635</summary>
1636              <ul
1637                id="HeaderMenu-MenuList-1"
1638                class="header__submenu list-menu list-menu--disclosure color-scheme-5b945e79-3d10-4fdc-bd02-8482ef769ae3 gradient caption-large motion-reduce global-settings-popup"
1639                role="list"
1640                tabindex="-1"
1641              ><li><a
1642                        id="HeaderMenu-find-a-lens-search-and-buy-samples"
1643                        href="/collections/m12-lenses"
1644                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1645                        
1646                      >
1647                        Search and Buy Samples:
1648                      </a></li><li><a
1649                        id="HeaderMenu-find-a-lens-m12-lenses"
1650                        href="/collections/m12-lenses"
1651                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1652                        
1653                      >
1654                        M12 Lenses
1655                      </a></li><li><a
1656                        id="HeaderMenu-find-a-lens-c-mount-lenses"
1657                        href="/collections/c-mount-lenses"
1658                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1659                        
1660                      >
1661                        C-Mount Lenses
1662                      </a></li><li><a
1663                        id="HeaderMenu-find-a-lens-m7-m8-lenses"
1664                        href="/collections/m8-lenses-and-m7-lenses"
1665                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1666                        
1667                      >
1668                        M7/M8 Lenses
1669                      </a></li></ul>
1670            </details>
1671          </header-menu></li><li><header-menu>
1672            <details id="Details-HeaderMenu-2">
1673              <summary
1674                id="HeaderMenu-filters-and-mounts"
1675                class="header__menu-item list-menu__item link focus-inset"
1676              >
1677                <span
1678                >Filters and Mounts</span><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
1679</summary>
1680              <ul
1681                id="HeaderMenu-MenuList-2"
1682                class="header__submenu list-menu list-menu--disclosure color-scheme-5b945e79-3d10-4fdc-bd02-8482ef769ae3 gradient caption-large motion-reduce global-settings-popup"
1683                role="list"
1684                tabindex="-1"
1685              ><li><a
1686                        id="HeaderMenu-filters-and-mounts-optical-filters-bandpass-dual-bandpass-ir-cut"
1687                        href="/collections/optical-filters"
1688                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1689                        
1690                      >
1691                        Optical Filters (Bandpass, Dual-Bandpass, IR Cut)
1692                      </a></li><li><a
1693                        id="HeaderMenu-filters-and-mounts-mounts-adapters-switchers-vcms"
1694                        href="/collections/board-lens-accessories"
1695                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1696                        
1697                      >
1698                        Mounts, Adapters, Switchers, VCMs
1699                      </a></li></ul>
1700            </details>
1701          </header-menu></li><li><header-menu>
1702            <details id="Details-HeaderMenu-3">
1703              <summary
1704                id="HeaderMenu-calculators"
1705                class="header__menu-item list-menu__item link focus-inset"
1706              >
1707                <span
1708                >Calculators</span><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
1709</summary>
1710              <ul
1711                id="HeaderMenu-MenuList-3"
1712                class="header__submenu list-menu list-menu--disclosure color-scheme-5b945e79-3d10-4fdc-bd02-8482ef769ae3 gradient caption-large motion-reduce global-settings-popup"
1713                role="list"
1714                tabindex="-1"
1715              ><li><a
1716                        id="HeaderMenu-calculators-field-of-view-calculator"
1717                        href="/pages/camera-field-of-view-calculator"
1718                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1719                        
1720                      >
1721                        Field of View Calculator
1722                      </a></li><li><a
1723                        id="HeaderMenu-calculators-focal-length-calculator"
1724                        href="/pages/efl-calculator"
1725                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1726                        
1727                      >
1728                        Focal Length Calculator
1729                      </a></li><li><a
1730                        id="HeaderMenu-calculators-depth-of-field-calculator"
1731                        href="/pages/camera-depth-of-field-calculator"
1732                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1733                        
1734                      >
1735                        Depth of Field Calculator
1736                      </a></li><li><a
1737                        id="HeaderMenu-calculators-angle-of-view-calculator"
1738                        href="/pages/camera-angle-of-view-calculator"
1739                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1740                        
1741                      >
1742                        Angle of View Calculator
1743                      </a></li><li><a
1744                        id="HeaderMenu-calculators-format-type-calculator"
1745                        href="/blogs/technical/cmos-sensor-size"
1746                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1747                        
1748                      >
1749                        Format Type Calculator
1750                      </a></li></ul>
1751            </details>
1752          </header-menu></li><li><header-menu>
1753            <details id="Details-HeaderMenu-4">
1754              <summary
1755                id="HeaderMenu-services"
1756                class="header__menu-item list-menu__item link focus-inset"
1757              >
1758                <span
1759                    class="header__active-menu-item"
1760                  
1761                >Services</span><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
1762</summary>
1763              <ul
1764                id="HeaderMenu-MenuList-4"
1765                class="header__submenu list-menu list-menu--disclosure color-scheme-5b945e79-3d10-4fdc-bd02-8482ef769ae3 gradient caption-large motion-reduce global-settings-popup"
1766                role="list"
1767                tabindex="-1"
1768              ><li><a
1769                        id="HeaderMenu-services-camera-module-assembly"
1770                        href="/products/camera-module-assembly"
1771                        class="header__menu-item list-menu__item link link--text focus-inset caption-large list-menu__item--active"
1772                        
1773                          aria-current="page"
1774                        
1775                      >
1776                        Camera Module Assembly
1777                      </a></li><li><a
1778                        id="HeaderMenu-services-custom-lens-design"
1779                        href="/pages/optical-design"
1780                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1781                        
1782                      >
1783                        Custom Lens Design
1784                      </a></li><li><a
1785                        id="HeaderMenu-services-trioptics-hr2-mtf-testing"
1786                        href="/products/mtf-testing-trioptics-hr2"
1787                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1788                        
1789                      >
1790                        Trioptics HR2 MTF Testing
1791                      </a></li><li><a
1792                        id="HeaderMenu-services-product-reliability-testing"
1793                        href="/collections/reliability-testing"
1794                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1795                        
1796                      >
1797                        Product Reliability Testing
1798                      </a></li></ul>
1799            </details>
1800          </header-menu></li><li><header-menu>
1801            <details id="Details-HeaderMenu-5">
1802              <summary
1803                id="HeaderMenu-about"
1804                class="header__menu-item list-menu__item link focus-inset"
1805              >
1806                <span
1807                >About</span><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
1808</summary>
1809              <ul
1810                id="HeaderMenu-MenuList-5"
1811                class="header__submenu list-menu list-menu--disclosure color-scheme-5b945e79-3d10-4fdc-bd02-8482ef769ae3 gradient caption-large motion-reduce global-settings-popup"
1812                role="list"
1813                tabindex="-1"
1814              ><li><a
1815                        id="HeaderMenu-about-about-us"
1816                        href="/pages/about-commonlands"
1817                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1818                        
1819                      >
1820                        About Us
1821                      </a></li><li><a
1822                        id="HeaderMenu-about-use-agentic-mcp"
1823                        href="/pages/agentic-mcp-for-m12-lenses-and-optics"
1824                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1825                        
1826                      >
1827                        Use Agentic MCP
1828                      </a></li><li><a
1829                        id="HeaderMenu-about-tradeshows"
1830                        href="/pages/tradeshows"
1831                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1832                        
1833                      >
1834                        Tradeshows
1835                      </a></li><li><a
1836                        id="HeaderMenu-about-technical-articles"
1837                        href="/blogs/technical"
1838                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1839                        
1840                      >
1841                        Technical Articles
1842                      </a></li><li><a
1843                        id="HeaderMenu-about-image-sensor-list"
1844                        href="/pages/image-sensors"
1845                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1846                        
1847                      >
1848                        Image Sensor List
1849                      </a></li><li><a
1850                        id="HeaderMenu-about-tariffs-and-the-impact"
1851                        href="/pages/tariffs"
1852                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1853                        
1854                      >
1855                        Tariffs and the Impact
1856                      </a></li><li><a
1857                        id="HeaderMenu-about-faqs"
1858                        href="/pages/faq"
1859                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1860                        
1861                      >
1862                        FAQs
1863                      </a></li><li><a
1864                        id="HeaderMenu-about-join-our-team"
1865                        href="/pages/careers"
1866                        class="header__menu-item list-menu__item link link--text focus-inset caption-large"
1867                        
1868                      >
1869                        Join Our Team
1870                      </a></li></ul>
1871            </details>
1872          </header-menu></li><li><a
1873            id="HeaderMenu-contact-us"
1874            href="/pages/contact-us"
1875            class="header__menu-item list-menu__item link link--text focus-inset"
1876            
1877          >
1878            <span
1879            >Contact Us</span>
1880          </a></li></ul>
1881</nav>
1882
1883<div class="header__icons">
1884      <div class="desktop-localization-wrapper">
1885</div>
1886      
1887      <form action="/search" method="get" role="search" class="search search-modal__form">
1888        <div class="field">
1889          <input class="search__input field__input" 
1890                 id="Search-In-Modal"
1891                 type="search"
1892                 name="q"
1893                 value=""
1894                 placeholder="Search">
1895          <label class="field__label" for="Search-In-Modal"></label>
1896          <input type="hidden" name="options[prefix]" value="last">
1897          <button class="search__button field__button" aria-label="search button">
1898            <svg class="icon icon-search" aria-hidden="true" focusable="false" role="presentation">
1899              <use href="#icon-search">
1900                </svg>
1901              </button> 
1902            </div></form><a
1903          href="https://commonlands.com/customer_authentication/redirect?locale=en&region_country=US"
1904          class="header__icon header__icon--account link focus-inset small-hide"
1905          rel="nofollow"
1906        ><account-icon><span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-account" viewBox="0 0 18 19"><path fill="currentColor" fill-rule="evenodd" d="M6 4.5a3 3 0 1 1 6 0 3 3 0 0 1-6 0m3-4a4 4 0 1 0 0 8 4 4 0 0 0 0-8m5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15M9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.1-3.67-1.35-6.17-1.35" clip-rule="evenodd"/></svg>
1907</span></account-icon><span class="visually-hidden">Log in</span>
1908        </a><a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble">
1909        
1910          <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-cart-empty" viewBox="0 0 40 40"><path fill="currentColor" fill-rule="evenodd" d="M15.75 11.8h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33L28.4 11.8zm0 1h-2.22l-.71 10.67a4 4 0 0 0 3.99 4.27h7.38a4 4 0 0 0 4-4.27l-.72-10.67h-2.22v.63a4.75 4.75 0 1 1-9.5 0zm8.5 0h-7.5v.63a3.75 3.75 0 1 0 7.5 0z"/></svg>
1911</span>
1912        
1913        <span class="visually-hidden">Cart</span></a>
1914    </div>
1915  </header>
1916</sticky-header>
1917
1918</div>
1919<!-- END sections: header-group -->
1920
1921    <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1">
1922      <div id="shopify-section-template--20119089709174__camera-module-assembly" class="shopify-section">
1923
1924<link href="//commonlands.com/cdn/shop/t/50/assets/camera-module-assembly.css?v=162731997387079912231784758081" rel="stylesheet" type="text/css" media="all" />
1925
1926<script type="application/ld+json">
1927{
1928  "@context": "https://schema.org",
1929  "@graph": [
1930    {
1931      "@type": "Service",
1932      "name": "Camera Module Assembly Services",
1933      "alternateName": ["MIPI Camera Module Assembly", "Custom Camera Assembly", "Cleanroom Camera Manufacturing"],
1934      "provider": {
1935        "@type": "Organization",
1936        "name": "Commonlands",
1937        "url": "https://commonlands.com",
1938        "address": {
1939          "@type": "PostalAddress",
1940          "addressLocality": "San Diego",
1941          "addressRegion": "CA",
1942          "addressCountry": "US"
1943        }
1944      },
1945      "description": "Professional camera module assembly services in Class 1000 cleanroom. Custom MIPI CSI-2, DVP, and USB camera modules using Commonlands M12 lenses for machine vision, robotics, and industrial automation. Volume production from 100 to 100,000 units per year.",
1946      "areaServed": {
1947        "@type": "Place",
1948        "name": "Worldwide"
1949      },
1950      "serviceType": [
1951        "Camera Module Assembly",
1952        "MIPI Camera Module Manufacturing",
1953        "DVP Camera Assembly",
1954        "USB Camera Assembly",
1955        "Custom Camera Module Development"
1956      ],
1957      "hasOfferCatalog": {
1958        "@type": "OfferCatalog",
1959        "name": "Camera Assembly Services",
1960        "itemListElement": [
1961          {
1962            "@type": "Offer",
1963            "name": "Consigned Camera Assembly",
1964            "description": "Manual cleanroom assembly for 100-100,000 units per year with customer-provided cameras and Commonlands M12 lenses"
1965          },
1966          {
1967            "@type": "Offer",
1968            "name": "Custom MIPI Camera Modules",
1969            "description": "Custom MIPI CSI-2, DVP, and USB camera modules for volumes above 1,000 units per year. Automated focusing stations, each running 120 modules per hour, will be online for volume production by the end of 2026."
1970          }
1971        ]
1972      }
1973    },
1974    {
1975      "@type": "FAQPage",
1976      "inLanguage": "en",
1977      "mainEntity": [
1978        {
1979          "@type": "Question",
1980          "name": "What is the minimum order quantity for camera module assembly?",
1981          "acceptedAnswer": {
1982            "@type": "Answer",
1983            "text": "For consigned camera assembly using manual stations, we support quantities from 100 units with capacity up to 100,000 units per year. This range suits prototype validation through high-volume production. Custom MIPI and DVP camera module development requires minimum annual volumes of 1,000 pieces to justify NRE costs. All assemblies require use of Commonlands lenses."
1984          }
1985        },
1986        {
1987          "@type": "Question",
1988          "name": "Do I need to use Commonlands lenses for assembly services?",
1989          "acceptedAnswer": {
1990            "@type": "Answer",
1991            "text": "Yes, our camera module assembly service is exclusively available for customers using Commonlands optical products including M12 lenses, C-mount lenses, and M8 lenses. This lets us verify lens performance against known specifications and keep quality control under one roof. Browse our extensive lens collection at commonlands.com/collections/m12-lenses to find the right optics for your application."
1992          }
1993        },
1994        {
1995          "@type": "Question",
1996          "name": "What camera interfaces do you support for custom MIPI camera modules?",
1997          "acceptedAnswer": {
1998            "@type": "Answer",
1999            "text": "We support MIPI CSI-2 for embedded and mobile applications, DVP parallel interface for cost-sensitive designs, and USB for plug-and-play connectivity. Our engineering team can help select the optimal interface based on your bandwidth, latency, and integration requirements for machine vision and robotics applications."
2000          }
2001        },
2002        {
2003          "@type": "Question",
2004          "name": "What cleanroom classification is used for camera module assembly?",
2005          "acceptedAnswer": {
2006            "@type": "Answer",
2007            "text": "Our camera modules are assembled in a Class 1000 cleanroom environment, maintaining fewer than 1,000 particles of 0.5 micron or larger per cubic foot. This prevents sensor contamination that causes dark spots and image artifacts. Operators wear full bunny suits, and all tools undergo ultrasonic cleaning between builds."
2008          }
2009        },
2010        {
2011          "@type": "Question",
2012          "name": "Are your camera modules NDAA compliant?",
2013          "acceptedAnswer": {
2014            "@type": "Answer",
2015            "text": "Not by default. Standard camera module builds use globally sourced electronics, while lens focusing, assembly, and MTF testing take place in our San Diego cleanroom. If your program requires NDAA Section 889 compliance, talk to an applications engineer before ordering and we will scope a compliant bill of materials and build path."
2016          }
2017        },
2018        {
2019          "@type": "Question",
2020          "name": "Can you focus camera modules at production volume?",
2021          "acceptedAnswer": {
2022            "@type": "Answer",
2023            "text": "Yes. Technicians focus each module on manual stations, scored live by our proprietary focus scoring software, and that line covers consigned builds up to 100,000 units per year. Automated camera module focusing stations, each running 120 modules per hour, will be online for volume production by the end of 2026. Send your sensor, lens, and annual volume, and we will tell you which line your build runs on."
2024          }
2025        },
2026        {
2027          "@type": "Question",
2028          "name": "What testing is performed on assembled camera modules?",
2029          "acceptedAnswer": {
2030            "@type": "Answer",
2031            "text": "Every module undergoes optical inspection for particle contamination, adhesive coverage verification, and alignment checks between Commonlands lenses and sensors. Our proprietary focus scoring software provides quantitative sharpness metrics during assembly, supporting tight unit-to-unit consistency. Testing stations utilize relay lenses and customizable test charts matched to your application requirements. Optional services include MTF testing, thermal cycling (-40°C to +85°C), and vibration testing per customer specifications."
2032          }
2033        },
2034        {
2035          "@type": "Question",
2036          "name": "How do you ensure unit-to-unit consistency across production runs?",
2037          "acceptedAnswer": {
2038            "@type": "Answer",
2039            "text": "We developed proprietary focus scoring software in-house specifically for camera module assembly. This software provides real-time quantitative sharpness metrics during the focusing process and supports VIS, 850nm, and 940nm wavelengths for both visible and NIR camera applications. Combined with statistical process control tracking, customizable test charts designed for your application, and relay lens test stations with controlled illumination, we maintain tight tolerances across production volumes from hundreds to tens of thousands of units."
2040          }
2041        }
2042      ]
2043    },
2044    {
2045      "@type": "BreadcrumbList",
2046      "itemListElement": [
2047        {
2048          "@type": "ListItem",
2049          "position": 1,
2050          "name": "Home",
2051          "item": "https://commonlands.com/"
2052        },
2053        {
2054          "@type": "ListItem",
2055          "position": 2,
2056          "name": "Camera Module Assembly Services",
2057          "item": "https://commonlands.com/products/camera-module-assembly"
2058        }
2059      ]
2060    }
2061  ]
2062}
2063</script>
2063
2064
2065<div class="cma"><section class="cma-hero">
2066    <div class="cma-container">
2067      <div class="cma-hero-grid">
2068        <div class="cma-hero-content">
2069          <h1>Camera Module Assembly Services</h1>
2070          <p class="cma-tagline">Custom MIPI camera modules with lens focusing, assembly, and MTF testing. San Diego assembly options.</p>
2071
2072          <div class="cma-hero-features">
2073            <div class="cma-feature-badge">
2074              <span>Class 1000 Cleanroom</span>
2075            </div>
2076            <div class="cma-feature-badge">
2077              <span>100-100K Units/Year</span>
2078            </div>
2079            <div class="cma-feature-badge">
2080              <span>Custom MIPI Cameras</span>
2081            </div>
2082            <div class="cma-feature-badge">
2083              <span>San Diego Assembly</span>
2084            </div>
2085          </div>
2086
2087          <div class="cma-hero-cta">
2088            <a href="#quote" class="cma-btn cma-btn-primary">Request Assembly Quote</a>
2089            <a href="https://commonlands.com/collections/m12-lenses" class="cma-btn cma-btn-secondary">Browse M12 Lenses</a>
2090          </div>
2091        </div>
2092
2093        <div class="cma-hero-image">
2094          <img src="https://commonlands.com/cdn/shop/files/CameraModuleAssemblyM12lenses.webp?v=1750195519&width=2048"
2095               alt="Camera module cleanroom assembly station for MIPI and USB cameras"
2096               width="2048" height="2048"
2097               fetchpriority="high" decoding="async">
2098        </div>
2099      </div>
2100    </div>
2101  </section><section class="cma-section cma-section--white">
2102    <div class="cma-container">
2103      <div class="cma-section-header">
2104        <h2>Camera Module Assembly Options</h2>
2105        <p class="cma-section-subtitle">Professional assembly services exclusively for Commonlands lens customers</p>
2106      </div>
2107
2108      <div class="cma-service-grid">
2109        <div class="cma-service-card">
2110          <div class="cma-service-header">
2111            <div>
2112              <h3>Consigned Camera Assembly</h3>
2113              <p class="cma-service-volume">100 - 100,000 units/year</p>
2114            </div>
2115          </div>
2116
2117          <p class="cma-service-description">
2118            Precision manual assembly for customer-provided sensors paired with Commonlands lenses. Our technicians
2119            perform lens focusing, adhesive dispensing, and flex cable attachment within controlled environments.
2120            Perfect for startups validating designs or companies needing reliable assembly without capital equipment
2121            investment. Volume production up to 100,000 units per year supported.
2122          </p>
2123
2124          <ul class="cma-specs-list">
2125            <li>
2126              <span class="cma-spec-label">Cleanroom Class</span>
2127              <span class="cma-spec-value">1000</span>
2128            </li>
2129            <li>
2130              <span class="cma-spec-label">Lens Options</span>
2131              <span class="cma-spec-value"><a href="https://commonlands.com/collections/m12-lenses">M12</a>, <a href="https://commonlands.com/collections/c-mount-lenses">C-mount</a></span>
2132            </li>
2133            <li>
2134              <span class="cma-spec-label">Lead Time</span>
2135              <span class="cma-spec-value">5-10 days</span>
2136            </li>
2137            <li>
2138              <span class="cma-spec-label">Annual Capacity</span>
2139              <span class="cma-spec-value">Up to 100,000 pieces</span>
2140            </li>
2141          </ul>
2142        </div>
2143
2144        <div class="cma-service-card">
2145          <div class="cma-service-header">
2146            <div>
2147              <h3>Custom MIPI Camera Modules</h3>
2148              <p class="cma-service-volume">&gt;1,000 units/year</p>
2149            </div>
2150          </div>
2151
2152          <p class="cma-service-description">
2153            Custom MIPI CSI-2 camera module development featuring Commonlands optics with multiple interface options. We handle
2154            schematic design and PCB layout for MIPI CSI-2, DVP parallel, and USB interfaces. Complete
2155            integration with our <a href="https://commonlands.com/collections/m12-lenses">M12</a> or <a href="https://commonlands.com/collections/c-mount-lenses">C-mount lenses</a> matched to your sensor and application.
2156            Automated focusing stations, each running 120 modules per hour, will be online for volume production by the end of 2026.
2157          </p>
2158
2159          <ul class="cma-specs-list">
2160            <li>
2161              <span class="cma-spec-label">Interface Support</span>
2162              <span class="cma-spec-value">MIPI CSI-2, DVP, USB</span>
2163            </li>
2164            <li>
2165              <span class="cma-spec-label">Automated Focusing</span>
2166              <span class="cma-spec-value">120 units/hr per station, end of 2026</span>
2167            </li>
2168            <li>
2169              <span class="cma-spec-label">Sample Lead-time</span>
2170              <span class="cma-spec-value">8 weeks</span>
2171            </li>
2172            <li>
2173              <span class="cma-spec-label">Lens Integration</span>
2174              <span class="cma-spec-value">Commonlands Lenses</span>
2175            </li>
2176          </ul>
2177        </div>
2178      </div>
2179
2180      <div class="cma-service-cta">
2181        <a href="https://commonlands.com/collections/m12-lenses" class="cma-btn cma-btn-primary">Select M12 Lens for Your Project</a>
2182      </div>
2183    </div>
2184  </section><section class="cma-section cma-section--alt">
2185    <div class="cma-container">
2186      <div class="cma-section-header">
2187        <h2>Proven Production Success</h2>
2188        <p class="cma-section-subtitle">Real-world high-volume camera module assembly for machine vision and robotics</p>
2189      </div>
2190
2191      <div class="cma-reference-content">
2192        <div class="cma-reference-image">
2193          <img src="https://cdn.shopify.com/s/files/1/0273/9273/7398/files/Commonlands_Camera_Module_IMX577_IMX477.webp?v=1756994451"
2194               alt="IMX577 MIPI camera module with CIL227 fisheye lens for robotics"
2195               width="1000" height="1000" loading="lazy" decoding="async">
2196        </div>
2197
2198        <div class="cma-reference-details">
2199          <h3>20,000 Unit IMX577 MIPI Camera Module Production</h3>
2200          <p>
2201            We successfully delivered 20,000 MIPI camera modules combining Sony IMX577 sensors with our
2202            <a href="https://commonlands.com/products/3mm-fisheye-m12-lens-cil227">CIL227 2.7mm fisheye M12 lens</a>
2203            for an autonomous navigation customer. This high-volume project demonstrates our capability to scale from
2204            prototype to production while maintaining consistent optical performance across the production run using our proprietary focus scoring software.
2205          </p>
2206
2207          <div class="cma-project-stats">
2208            <div class="cma-stat-card">
2209              <span class="cma-stat-value">20,000</span>
2210              <span class="cma-stat-label">Units Delivered</span>
2211            </div>
2212            <div class="cma-stat-card">
2213              <span class="cma-stat-value">IMX577</span>
2214              <span class="cma-stat-label">12MP MIPI Sensor</span>
2215            </div>
2216            <div class="cma-stat-card">
2217              <span class="cma-stat-value"><a href="https://commonlands.com/products/3mm-fisheye-m12-lens-cil227">CIL227</a></span>
2218              <span class="cma-stat-label">2.7mm Fisheye M12 Lens</span>
2219            </div>
2220            <div class="cma-stat-card">
2221              <span class="cma-stat-value">186°</span>
2222              <span class="cma-stat-label">Diagonal Field of View on IMX577</span>
2223            </div>
2224          </div>
2225
2226          <p>
2227            This project showcased our ability to maintain sub-1% defect rates across large production runs while
2228            meeting aggressive delivery schedules. The combination of our precision-tested <a href="https://commonlands.com/products/3mm-fisheye-m12-lens-cil227">CIL227 fisheye M12 lens</a> with
2229            the high-resolution IMX577 MIPI sensor delivered exceptional wide-angle performance for robotics navigation. Browse our full selection of <a href="https://commonlands.com/collections/m12-lenses">M12 lenses for machine vision</a>.
2230          </p>
2231        </div>
2232      </div>
2233    </div>
2234  </section><section class="cma-section cma-section--green">
2235    <div class="cma-container">
2236      <div class="cma-lens-box">
2237        <h2>Why Commonlands Lenses for Camera Modules?</h2>
2238        <p>
2239          Our camera module assembly service is exclusively available for customers using Commonlands optical products. This
2240          integrated approach lets us match lens image circle and chief ray angle to your sensor before assembly. Quality
2241          control runs under one roof: incoming lens inspection, lens-to-sensor focusing, and MTF verification, with
2242          single-source accountability for your machine vision system performance.
2243        </p>
2244
2245        <a href="https://commonlands.com/collections/m12-lenses" class="cma-lens-image">
2246          <img src="https://cdn.shopify.com/s/files/1/0273/9273/7398/files/M12_Lenses_and_M8_Lenses.webp?v=1701464974"
2247               alt="Commonlands M12 and M8 lens collection for MIPI camera modules"
2248               width="1000" height="1000" loading="lazy" decoding="async">
2249        </a>
2250
2251        <p>
2252          Choose from more than 70 <a href="https://commonlands.com/collections/m12-lenses">M12 lens</a> models,
2253          professional <a href="https://commonlands.com/collections/c-mount-lenses">C-mount lenses</a>,
2254          miniature <a href="https://commonlands.com/collections/m8-lenses-and-m7-lenses">M8 lenses</a>,
2255          or specialized <a href="https://commonlands.com/collections/relay-lenses">relay lenses</a> for inspection systems.
2256          Lenses used in assembly are MTF tested against their published specifications, so out-of-spec units are screened out before they reach your camera module. This quality
2257          assurance combined with cleanroom assembly delivers reliable c
2257amera modules for machine vision, robotics, and industrial automation applications.
2258        </p>
2259        <a href="https://commonlands.com/collections/m12-lenses" class="cma-btn cma-btn-primary">Browse Our M12 Lens Collection</a>
2260      </div>
2261    </div>
2262  </section><section class="cma-section cma-section--white">
2263    <div class="cma-container">
2264      <div class="cma-section-header">
2265        <h2>How Does Camera Module Assembly Work?</h2>
2266        <p class="cma-section-subtitle">Our systematic approach to optical precision with Commonlands lenses</p>
2267      </div>
2268
2269      <div class="cma-process-steps">
2270        <div class="cma-step-card">
2271          <div class="cma-step-number">1</div>
2272          <h4 class="cma-step-title">Lens Selection</h4>
2273          <p class="cma-step-description">Choose from our <a href="https://commonlands.com/collections/m12-lenses">M12</a>, <a href="https://commonlands.com/collections/c-mount-lenses">C-mount</a>, or <a href="https://commonlands.com/collections/m8-lenses-and-m7-lenses">M8</a> lens collection matched to your sensor specifications and field of view requirements</p>
2274        </div>
2275
2276        <div class="cma-step-card">
2277          <div class="cma-step-number">2</div>
2278          <h4 class="cma-step-title">Component Inspection</h4>
2279          <p class="cma-step-description">Incoming QC validates Commonlands lens MTF performance and sensor PCBA cleanliness and function</p>
2280        </div>
2281
2282        <div class="cma-step-card">
2283          <div class="cma-step-number">3</div>
2284          <h4 class="cma-step-title">Precision Assembly</h4>
2285          <p class="cma-step-description">Technicians focus each lens on live video, scored by our proprietary focus scoring software for tight unit-to-unit consistency</p>
2286        </div>
2287
2288        <div class="cma-step-card">
2289          <div class="cma-step-number">4</div>
2290          <h4 class="cma-step-title">Validation Testing</h4>
2291          <p class="cma-step-description">Image quality verification using customizable test charts and <a href="https://commonlands.com/collections/relay-lenses">relay lenses</a> screens each camera module against its specifications before shipment</p>
2292        </div>
2293      </div>
2294    </div>
2295  </section><section class="cma-section cma-section--alt" id="capabilities">
2296    <div class="cma-container">
2297      <div class="cma-section-header">
2298        <h2>Camera Module Assembly Capabilities</h2>
2299        <p class="cma-section-subtitle">Comprehensive assembly services for embedded vision systems and machine vision applications</p>
2300      </div>
2301
2302      <div class="cma-capability-grid">
2303        <div class="cma-capability-card">
2304          <h4 class="cma-capability-title">Sensor Integration</h4>
2305          <ul class="cma-capability-list">
2306            <li>Sony IMX, OmniVision, OnSemi sensors</li>
2307            <li>Rolling and global shutter support</li>
2308            <li>RGB Bayer and monochrome formats</li>
2309            <li>1/4" to 1" optical formats</li>
2310            <li><span><a href="https://commonlands.com/collections/m12-lenses">M12 lens</a> optimization for each sensor</span></li>
2311          </ul>
2312        </div>
2313
2314        <div class="cma-capability-card">
2315          <h4 class="cma-capability-title">Mechanical Assembly</h4>
2316          <ul class="cma-capability-list">
2317            <li><span><a href="https://commonlands.com/collections/m12-lenses">M12</a>, CS, and <a href="https://commonlands.com/collections/c-mount-lenses">C-mount</a> threading</span></li>
2318            <li>Precision manual alignment</li>
2319            <li>Automated focusing, 120 units/hr per station (end of 2026)</li>
2320            <li>Focus and back-focal adjustment</li>
2321            <li>IR filter installation</li>
2322          </ul>
2323        </div>
2324
2325        <div class="cma-capability-card">
2326          <h4 class="cma-capability-title">Interface and Capacity</h4>
2327          <ul class="cma-capability-list">
2328            <li>100 to 100,000 units per year</li>
2329            <li>MIPI CSI-2 implementation</li>
2330            <li>DVP parallel interface</li>
2331            <li>USB camera module support</li>
2332            <li>ESD protection implementation</li>
2333          </ul>
2334        </div>
2335      </div>
2336
2337      <p class="cma-capability-note">
2338        We build modules around sensors spanning the current CMOS market, including the onsemi
2339        <a href="https://commonlands.com/pages/image-sensors/ar0234">AR0234</a> global-shutter sensor, the Sony
2340        <a href="https://commonlands.com/pages/image-sensors/imx415">IMX415</a>,
2341        <a href="https://commonlands.com/pages/image-sensors/imx462">IMX462</a>, and
2342        <a href="https://commonlands.com/pages/image-sensors/imx577">IMX577</a> rolling-shutter sensors, and the OmniVision OG05B1S global-shutter sensor and
2343        <a href="https://commonlands.com/pages/image-sensors/ov5640">OV5640</a>. See the full
2344        <a href="https://commonlands.com/pages/image-sensors">image sensor list</a> for specifications and Commonlands lens
2345        compatibility for the sensor in your design.
2346      </p>
2347    </div>
2348  </section><section class="cma-section cma-section--white">
2349    <div class="cma-container">
2350      <div class="cma-section-header">
2351        <h2>
2351Proprietary Focus Scoring Software</h2>
2352        <p class="cma-section-subtitle">Internally developed testing technology with VIS, 850nm, and 940nm support for tight unit-to-unit consistency</p>
2353      </div>
2354
2355      <div class="cma-capability-grid">
2356        <div class="cma-capability-card">
2357          <h4 class="cma-capability-title">Focus Scoring Algorithm</h4>
2358          <ul class="cma-capability-list">
2359            <li>Proprietary software developed in-house</li>
2360            <li>Real-time sharpness metrics during assembly</li>
2361            <li>VIS, 850nm, and 940nm wavelength support</li>
2362            <li>Automated pass/fail determination</li>
2363            <li>Statistical process control tracking</li>
2364          </ul>
2365        </div>
2366
2367        <div class="cma-capability-card">
2368          <h4 class="cma-capability-title">Customizable Test Charts</h4>
2369          <ul class="cma-capability-list">
2370            <li>Application-specific chart designs</li>
2371            <li>Slanted-edge MTF targets</li>
2372            <li>Resolution and distortion patterns</li>
2373            <li>Field curvature characterization</li>
2374            <li>Customer-specified test criteria</li>
2375          </ul>
2376        </div>
2377
2378        <div class="cma-capability-card">
2379          <h4 class="cma-capability-title"><a href="https://commonlands.com/collections/relay-lenses">Relay Lens</a> Test Stations</h4>
2380          <ul class="cma-capability-list">
2381            <li>Infinity-conjugate optical setups</li>
2382            <li>Consistent illumination control</li>
2383            <li>Multi-field position testing</li>
2384            <li>Repeatable measurement conditions</li>
2385            <li>Traceable calibration standards</li>
2386          </ul>
2387        </div>
2388      </div>
2389    </div>
2390  </section><section class="cma-section cma-section--alt">
2391    <div class="cma-container">
2392      <div class="cma-section-header">
2393        <h2>Camera Module Assembly FAQs</h2>
2394        <p class="cma-section-subtitle">Common questions about MIPI camera modules and assembly services</p>
2395      </div>
2396
2397      <div class="cma-faq-list">
2398        <details class="cma-faq-item">
2399          <summary>What is the minimum order quantity for camera module assembly?</summary>
2400          <div class="cma-faq-answer">
2401            For consigned camera assembly using manual stations, we support quantities from 100 units with capacity up
2402            to 100,000 units per year. This range suits prototype validation through high-volume production. Custom MIPI
2403            and DVP camera module development requires minimum annual volumes of 1,000 pieces to justify
2404            NRE costs. All assemblies require use of Commonlands lenses.
2405          </div>
2406        </details>
2407
2408        <details class="cma-faq-item">
2409          <summary>Do I need to use Commonlands lenses for assembly services?</summary>
2410          <div class="cma-faq-answer">
2411            Yes, our camera module assembly service is exclusively available for customers using Commonlands optical
2412            products including <a href="https://commonlands.com/collections/m12-lenses">M12 lenses</a>, <a href="https://commonlands.com/collections/c-mount-lenses">C-mount lenses</a>, and <a href="https://commonlands.com/collections/m8-lenses-and-m7-lenses">M8 lenses</a>. This lets us verify lens performance against
2413            known specifications and keep quality control under one roof. Browse our extensive lens collection at
2414            <a href="https://commonlands.com/collections/m12-lenses">commonlands.com/collections/m12-lenses</a> to find the right optics for your application.
2415          </div>
2416        </details>
2417
2418        <details class="cma-faq-item">
2419          <summary>What camera interfaces do you support for custom MIPI camera modules?</summary>
2420          <div class="cma-faq-answer">
2421            We support MIPI CSI-2 for embedded and mobile applications, DVP parallel
2422            interface for cost-sensitive designs, and USB for plug-and-play connectivity. Our engineering team can help select the optimal interface based on your bandwidth,
2423            latency, and integration requirements for machine vision and robotics applications.
2424          </div>
2425        </details>
2426
2427        <details class="cma-faq-item">
2428          <summary>What cleanroom classification is used for camera module assembly?</summary>
2429          <div class="cma-faq-answer">
2430            Our camera modules are assembled in a Class 1000 cleanroom environment, maintaining fewer than 1,000
2431            particles of 0.5 micron or larger per cubic foot. This prevents sensor contamination that causes dark spots and
2432            image artifacts. Operators wear full bunny suits, and all tools undergo ultrasonic cleaning between builds.
2433          </div>
2434        </details>
2435
2436        <details class="cma-faq-item">
2437          <summary>Are your camera modules NDAA compliant?</summary>
2438          <div class="cma-faq-answer">
2439            Not by default. Standard camera module builds use globally sourced electronics, while lens focusing,
2440            assembly, and MTF testing take place in our San Diego cleanroom. If your program requires NDAA
2441            Section 889 compliance, <a href="https://commonlands.com/pages/contact-us">talk to an applications
2442            engineer</a> before ordering and we will scope a compliant bill of materials and build path.
2443          </div>
2444        </details>
2445
2446        <details class="cma-faq-item">
2447          <summary>Can you focus camera modules at production volume?</summary>
2448          <div class="cma-faq-answer">
2449            Yes. Technicians focus each module on manual stations, scored live by our proprietary focus scoring software, and
2450            that line covers consigned builds up to 100,000 units per year. Automated camera module focusing stations, each
2451            running 120 modules per hour, will be online for volume production by the end of 2026. Send your sensor, lens, and annual
2452            volume, and we will tell you which line your build runs on.
2453          </div>
2454        </details>
2455
2456        <details class="cma-faq-item">
2457          <summary>What testing is performed on assembled camera modules?</summary>
2458          <div class="cma-faq-answer">
2459            Every module undergoes optical inspection for particle contamination, adhesive coverage verification, and
2460            alignment checks between <a href="https://commonlands.com/collections/m12-lenses">Commonlands lenses</a> and sensors. Our proprietary focus scoring software provides quantitative sharpness metrics during assembly, supporting tight unit-to-unit consistency. Testing stations utilize <a href="https://commonlands.com/collections/relay-lenses">relay lenses</a> and customizable test charts matched to your application requirements. Optional services include MTF testing, thermal cycling (-40°C to +85°C), and vibration testing per customer specifications.
2461          </div>
2462        </details>
2463
2464        <details class="cma-faq-item">
2465          <summary>How do you ensure unit-to-unit consistency across production runs?</summary>
2466          <div class="cma-faq-answer">
2467            We developed proprietary focus scoring software in-house specifically for camera module assembly. This software provides real-time quantitative sharpness metrics during the focusing process and supports VIS, 850nm, and 940nm wavelengths for both visible and NIR camera applications. Combined with statistical process control tracking, customizable test charts designed for your application, and <a href="https://commonlands.com/collections/relay-lenses">relay lens</a> test stations with controlled illumination, we maintain tight tolerances across production volumes from hundreds to tens of thousands of units.
2468          </div>
2469        </details>
2470      </div>
2471    </div>
2472  </section><section class="cma-cta" id="quote">
2473    <div class="cma-container">
2474      <h2>Ready to Start Your Custom Camera Module Project?</h2>
2475      <p class="cma-cta-subtitle">Combine our M12 lenses with professional cleanroom assembly for custom MIPI, DVP, and USB camera modules</p>
2476
2477      <div class="cma-cta-buttons">
2478        <a href="https://commonlands.com/pages/contact-us" class="cma-btn cma-btn-primary">Get Assembly Quote</a>
2479        <a href="https://commonlands.com/collections/m12-lenses" class="cma-btn cma-btn-secondary">Browse M12 Lenses</a>
2480      </div>
2481    </div>
2482  </section><section class="cma-contact">
2483    <div class="cma-container">
2484      <div class="cma-form-container">
2485        <h2>Contact Us</h2>
2486        <p>Connect with our US-based engineering team</p>
2487        <div id="hubspot-form-container"></div>
2488      </div>
2489    </div>
2490  </section>
2491  
2491<script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/embed/v2.js" defer></script>
2491
2492  
2492<script defer>
2493    window.addEventListener('load', function() {
2494          if(window.hbspt) {
2495              hbspt.forms.create({
2496                  region: "na1",
2497                  portalId: "8610188",
2498                  formId: "4579a068-6104-486c-a50d-013cf52f1c78",
2499                  target: "#hubspot-form-container"
2500              });
2501          }
2502      });
2503  </script>
2503
2504
2505</div>
2506
2507
2508</div>
2509    </main>
2510
2511    <!-- BEGIN sections: footer-group -->
2512<div id="shopify-section-sections--20119088562294__footer" class="shopify-section shopify-section-group-footer-group">
2513<link href="//commonlands.com/cdn/shop/t/50/assets/section-footer.css?v=116830518411336652941784481375" rel="stylesheet" type="text/css" media="all" />
2514<link href="//commonlands.com/cdn/shop/t/50/assets/component-newsletter.css?v=4727253280200485261784481362" rel="stylesheet" type="text/css" media="all" />
2515<link href="//commonlands.com/cdn/shop/t/50/assets/component-list-menu.css?v=151968516119678728991784481359" rel="stylesheet" type="text/css" media="all" />
2516<link href="//commonlands.com/cdn/shop/t/50/assets/component-list-payment.css?v=69253961410771838501784481359" rel="stylesheet" type="text/css" media="all" />
2517<link href="//commonlands.com/cdn/shop/t/50/assets/component-list-social.css?v=35792976012981934991784481360" rel="stylesheet" type="text/css" media="all" />
2518<style data-shopify>.footer {
2519    margin-top: 0px;
2520  }
2521
2522  .section-sections--20119088562294__footer-padding {
2523    padding-top: 12px;
2524    padding-bottom: 12px;
2525  }
2526
2527  @media screen and (min-width: 750px) {
2528    .footer {
2529      margin-top: 0px;
2530    }
2531
2532    .section-sections--20119088562294__footer-padding {
2533      padding-top: 16px;
2534      padding-bottom: 16px;
2535    }
2536  }</style><footer class="footer color-scheme-1 gradient section-sections--20119088562294__footer-padding"><div class="footer__content-top page-width"><div
2537            class="footer__blocks-wrapper grid grid--1-col grid--2-col grid--4-col-tablet "
2538            
2539          ><div
2540                class="footer-block grid__item footer-block--menu"
2541                
2542                
2543              ><h2 class="footer-block__heading inline-richtext">All specifications, online details, and drawings are subject to change without notice.</h2><ul class="footer-block__details-content list-unstyled"><li>
2544                            <a
2545                              href="/"
2546                              class="link link--text list-menu__item list-menu__item--link"
2547                            >
2548                              Home
2549                            </a>
2550                          </li><li>
2551                            <a
2552                              href="/apps/tracking"
2553                              class="link link--text list-menu__item list-menu__item--link"
2554                            >
2555                              Track Order
2556                            </a>
2557                          </li><li>
2558                            <a
2559                              href="/pages/agentic-mcp-for-m12-lenses-and-optics"
2560                              class="link link--text list-menu__item list-menu__item--link"
2561                            >
2562                              Agent MCP
2563                            </a>
2564                          </li><li>
2565                            <a
2566                              href="https://docsend.com/view/xcspidx48npzihkd"
2567                              class="link link--text list-menu__item list-menu__item--link"
2568                            >
2569                              ISO9001 Certificate
2570                            </a>
2571                          </li><li>
2572                            <a
2573                              href="/pages/tariffs"
2574                              class="link link--text list-menu__item list-menu__item--link"
2575                            >
2576                              Tariffs
2577                            </a>
2578                          </li><li>
2579                            <a
2580                              href="/policies/privacy-policy"
2581                              class="link link--text list-menu__item list-menu__item--link"
2582                            >
2583                              Privacy
2584                            </a>
2585                          </li><li>
2586                            <a
2587                              href="/policies/terms-of-service"
2588                              class="link link--text list-menu__item list-menu__item--link"
2589                            >
2590                              Terms of Service
2591                            </a>
2592                          </li><li>
2593                            <a
2594                              href="/policies/shipping-policy"
2595                              class="link link--text list-menu__item list-menu__item--link"
2596                            >
2597                              Shipping Terms
2598                            </a>
2599                          </li><li>
2600                            <a
2601                              href="/policies/refund-policy"
2602                              class="link link--text list-menu__item list-menu__item--link"
2603                            >
2604                              Return Policy
2605                            </a>
2606                          </li><li>
2607                            <a
2608                              href="https://commonlands.com/sitemap.xml"
2609                              class="link link--text list-menu__item list-menu__item--link"
2610                            >
2611                              Sitemap
2612                            </a>
2613                          </li><li>
2614                            <a
2615                              href="/pages/withdraw-contract"
2616                              class="link link--text list-menu__item list-menu__item--link"
2617                            >
2618                              Withdraw contract
2619                            </a>
2620                          </li></ul></div></div><div
2621          class="footer-block--newsletter"
2622          
2623        ></div>
2624      </div><div
2625    class="footer__content-bottom"
2626    
2627  >
2628    <div class="footer__content-bottom-wrapper page-width">
2629      <div class="footer__column footer__localization isolate"></div>
2630      <div class="footer__column footer__column--info"><small class="copyright__content">&copy; 2026 Commonlands LLC</small> 
2631      </div>
2632    </div>
2633    
2634  </div>
2635</footer>
2636
2637
2638</div>
2639<!-- END sections: footer-group -->
2640
2641    <ul hidden>
2642      <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li>
2643      <li id="a11y-new-window-message">Opens in a new window.</li>
2644    </ul>
2645
2646    
2646<script>
2647      window.shopUrl = 'https://commonlands.com';
2648      window.routes = {
2649        cart_add_url: '/cart/add',
2650        cart_change_url: '/cart/change',
2651        cart_update_url: '/cart/update',
2652        cart_url: '/cart',
2653        predictive_search_url: '/search/suggest',
2654      };
2655
2656      window.cartStrings = {
2657        error: `There was an error while updating your cart. Please try again.`,
2658        quantityError: `You can only add [quantity] of this item to your cart.`,
2659      };
2660
2661      window.variantStrings = {
2662        addToCart: `Add to cart`,
2663        soldOut: `Sold out`,
2664        unavailable: `Unavailable`,
2665        unavailable_with_option: `[value] - Unavailable`,
2666      };
2667
2668      window.quickOrderListStrings = {
2669        itemsAdded: `[quantity] items added`,
2670        itemAdded: `[quantity] item added`,
2671        itemsRemoved: `[quantity] items removed`,
2672        itemRemoved: `[quantity] item removed`,
2673        viewCart: `View cart`,
2674        each: `[money]/ea`,
2675        min_error: `This item has a minimum of [min]`,
2676        max_error: `This item has a maximum of [max]`,
2677        step_error: `You can only add this item in increments of [step]`,
2678      };
2679
2680      window.accessibilityStrings = {
2681        imageAvailable: `Image [index] is now available in gallery view`,
2682        shareSuccess: `Link copied to clipboard`,
2683        pauseSlideshow: `Pause slideshow`,
2684        playSlideshow: `Play slideshow`,
2685        recipientFormExpanded: `Gift card recipient form expanded`,
2686        recipientFormCollapsed: `Gift card recipient form collapsed`,
2687        countrySelectorSearchCount: `[count] countries/regions found`,
2688      };
2689    </script>
2689<script src="//commonlands.com/cdn/shop/t/50/assets/cart-drawer.js?v=169981311261118214701784481363" defer="defer"></script>
2689<div id="shopify-block-AWUJZM1huRjREckdHZ__16256948136948485038" class="shopify-block shopify-app-block"><link href="//cdn.shopify.com/extensions/01a0f72c-9d3f-7540-a6eb-956be5e1c506/upcharge-fees-385/assets/mws_fees_bundle.css" rel="stylesheet" type="text/css" media="all" />
2690
2691
2692
2693
2694<script type="module" defer="defer" src="https://cdn.shopify.com/extensions/01a0f72c-9d3f-7540-a6eb-956be5e1c506/upcharge-fees-385/assets/mws_fees_bundle.js"></script>
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706<script type='application/json' id='mwFeesCart'>
2707  
2708
2709  
2710  {
2711    "attributes": {},
2712    "collections": 
2713  {
2714  
2715  }
2716,
2717    "item_count": 0,
2718    "items_subtotal_price": 0,
2719    "items": [],
2720    "tags": 
2721  {
2722  
2723  }
2724,
2725    "total_discount": 0,
2726    "total_price": 0,
2727    "total_weight": 0.0,
2728    "original_total_price": 0
2729  }
2730  
2731</script>
2731
2732
2733<script type='application/json' id='mwFeesConfigData'>
2734  {"cache_hash":1787316559,"shop_primary_locale":null,"settings":{"calendar_format":"m\/d\/Y","force_reload_page":false,"never_reload_cart_page":false,"combined_hidden_fees":false,"combined_hidden_fees_title":"Extra charges","custom_money_format":"","translations":{"text_fee_property_name":"Message","date_fee_property_name":"Date","apply_button_label":"Apply","none_option_label":"-- Please select --","none_option_label_radio":"None","fee_required_message":"This fee is required","value_blank_message":"Value can't be blank","cta_fee_price_property_name":"Fee","cta_product_price_property_name":"Price","checkout_warning_message":"The following required fees have been added to your order.","checkout_warning_continue":"Continue","checkout_warning_return":"Decline \u0026 return","hidden_fee_notice_message":"","hidden_fee_notice_button_label":"OK","hidden_fee_notice_description":"The mandated fee has been applied to your order and is already included in the total.","i18n_fee_property_title":"Fee for"},"selectors":{"cart_line_item":"","cart_line_item_filter":"","cart_line_item_qty":"","cart_subtotal":".docapp-cart-item.docapp-cart-subtotal","cart_count":"","checkout_btn":"","hidden_elements":""},"styling":{"enable_custom_css":true,"custom_css":" .fast-ac-item:has(a[href*=\"fee\"]) {\n  display: none; \n}"},"wrapper_cart_cta":{"base_title":"Additional fees","meta":{"product_id":"7708595552374","variant_id":"42132441825398","handle":"additional-fees-1"}},"store_front_token":"2cd5b96b9afce9152d182d009703b26c","feature_toggles":{"use_nested_cart_line":false,"hide_fee_for_prop":false,"is_default_enabled":true,"progressive_fees_enabled":false,"percent_base_enabled":false},"hide_fees_name_in_warning_message":false},"fees":[{"product_id":7708595454070,"product_handle":"trump-tariff-adjustment","type":"CART","input_type":"HIDDEN","title":"Price increase for tariff offset","condition_type":"ANY","conditions":[],"options":[{"title":"10%","price_type":"PERCENT","price":10,"step_percent_value":1,"sort_order":1,"variant_id":42132441694326,"is_default":false,"progressive":null,"taxable":null,"requires_shipping":true,"sku":null}],"geo_restriction":["US_ALL"],"geo_is_reversed":false,"is_required":true,"is_onetime":false,"property_title":"Fee for","description":"","clone_percent_fee":true,"api_type":"MIXED_CTA_AJAX","is_checkout":false,"is_pos":false,"limits":null,"percent_base":"FULL_PRICE"}],"deactivated_clones":[],"i18n_labels":{},"i18n_fees":{}}
2735</script>
2735
2736
2737<script id='mwFeesConfig'>
2738    
2739    
2740    function mwsFeesNextInit() {
2741      let config = JSON.parse(document.getElementById('mwFeesConfigData')?.textContent || 'null');
2742      config = config || {
2743        "settings": {},
2744        "fees": [],
2745        "cache_hash": 123456789
2746      };
2747
2748      if (config.settings.styling && config.settings.styling.enable_custom_css && config.settings.styling.custom_css.length) {
2749        const styleEl = document.createElement('style');
2750
2751        styleEl.innerHTML = config.settings.styling.custom_css;
2752        document.head.appendChild(styleEl);
2753      }
2754
2755      window.mwFeesConfig = {
2756        ... config,
2757        cart: 
2758  {
2759    "attributes": {},
2760    "collections": 
2761  {
2762  
2763  }
2764,
2765    "item_count": 0,
2766    "items_subtotal_price": 0,
2767    "items": [],
2768    "tags": 
2769  {
2770  
2771  }
2772,
2773    "total_discount": 0,
2774    "total_price": 0,
2775    "total_weight": 0.0,
2776    "original_total_price": 0
2777  }
2778  ,
2779        customer_tags: 
2780  [
2781  
2782  ]
2783,
2784        current_product: {
2785          id: 7762516574326,
2786          title: "Camera Module Assembly Services",
2787          handle: "camera-module-assembly",
2788          product_type: "Non Stock",
2789          tags: [],
2790          vendor: "Commonlands",
2791          collections: 
2792  [
2793  
2794    
2795  
2796  ]
2797,
2798          selected_variant: {
2799            id: 42314501161078,
2800            title: "Default Title",
2801            price: 0,
2802            sku: "MODULEFOCUS",
2803            grams: null,
2804            available: true
2805          }
2806        },
2807        shop: {
2808          domain: "commonlands.com",
2809          permanent_domain: "commonlands-camera-components.myshopify.com"
2810        },
2811        template_name: "product",
2812        money_format: "${{amount}}",
2813        shop_currency: "USD",
2814        current_money_format: "$0.00 USD",
2815        market_handle: "us",
2816        current_locale: "en",
2817        default_locale: "en",
2818        default_locale_root_url: "\/"
2819      }
2820  }
2821
2822  mwsFeesNextInit();
2823</script>
2823
2824
2825
2826</div>
2826<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
2826
2827</body>
2828</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.