molecule
BQ25792 Charger
Public Made by Adomby adom
Buck-boost 1S-4S battery charger board (TI BQ25792) with 14 Adom machine pins, by Adonis
← Commit history
RESTORE inner copper L2/L15 (a greedy regex in the all-vector edit had deleted their loader); tooltips: real enter/leave semantics + 600ms (svg-child crossings were resetting the timer forever); layer checkbox tooltips
3 files changed
+22−9
package.json+1−1@@ -2,7 +2,7 @@ "slug": "bq25792-charger", "title": "BQ25792 Charger", "type": "component",- "version": "0.1.83",+ "version": "0.1.84", "description": "BQ25792 Charger - buck-boost 1S-4S battery charger board by Adonis, with real 3D copper traces and measured stackup.", "tags": [ "hardware"
page.json+10−3@@ -4,9 +4,16 @@ "slug": "bq25792-charger", "title": "BQ25792 Charger", "brief": "Buck-boost 1S-4S battery charger board (TI BQ25792) with 14 Adom machine pins, by Adonis",- "version": "0.1.83",+ "version": "0.1.84", "tags": [- "hardware"+ "adom",+ "adom-modular",+ "component",+ "charger",+ "battery",+ "bq25792",+ "power",+ "usb-c" ], "license": "proprietary", "component": {@@ -49,7 +56,7 @@ "email": "[email protected]" }, "visibility": "public",- "description": "BQ25792 Charger - buck-boost 1S-4S battery charger board by Adonis, with real 3D copper traces and measured stackup.",+ "description": "BQ25792 Charger - a buck-boost 1S-4S battery charger board (Texas Instruments BQ25792) designed by Adonis in Fusion 360, with 14 Adom machine pins for the modular stack. Interactive colored 3D model, schematic and layout views.", "dependencies": {}, "files": [ "README.md",
readme.html+11−5@@ -38,7 +38,7 @@ background:rgba(13,17,23,0.55); backdrop-filter:blur(8px); border:1px solid rgba(48,54,61,0.8); border-radius:10px; padding:6px; } .fbtn { padding:7px; border-radius:8px; border:1px solid transparent; background:transparent; color:#c9d1d9; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }- .fbtn svg { width:16px; height:16px; flex:none; stroke:currentColor; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }+ .fbtn svg { pointer-events:none; width:16px; height:16px; flex:none; stroke:currentColor; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; } .fbtn:hover { background:rgba(48,54,61,0.7); } .fbtn.active { background:#0b3d33; border-color:#00b8b1; color:#5ff5e8; } #vstatus { position:absolute; right:14px; bottom:10px; z-index:30; font-size:12px; color:#8b949e;@@ -377,12 +377,13 @@ exported bodies + design rules.</p> // ALL-VECTOR silk + mask (real geometry; textured quads cast no/solid shadows). // Masks are gerber NEGATIVES (board outline minus pad openings); z baked in each GLB. for(const v of [["silk-top-vec.glb.png","silk_top"],["mask-top-vec.glb.png","mask_top"],- ["mask-bot-vec.glb.png","mask_bot"],["silk-bot-vec.glb.png","silk_bot"]]){+ ["mask-bot-vec.glb.png","mask_bot"],["silk-bot-vec.glb.png","silk_bot"],+ ["cu-l2-vec.glb.png","cu_l2"],["cu-l15-vec.glb.png","cu_l15"]]){ const vb=await loadPngBytes(R+v[0]); let vpre=sc.meshes.length; await B().SceneLoader.AppendAsync("", new File([vb],v[1]+".glb",{type:"model/gltf-binary"}), sc, null, ".glb"); const vm=sc.meshes.slice(vpre).filter(m=>m.getTotalVertices&&m.getTotalVertices()>0);- vm.forEach(m=>{ m.position.z=0; });+ vm.forEach(m=>{ m.position.z=0; if(v[1].indexOf("cu_")===0) m.material=copperMat; }); attach(v[1], vm); } @@ -557,6 +558,7 @@ exported bodies + design rules.</p> bx.setAttribute("data-tip","Bounding box: draw this layer's exact extents (X/Y/Z) to verify its position and height"); bx.textContent="\u25A1"; bx.addEventListener("click",function(e){ e.stopPropagation(); toggleBBox(L,bx); }); const cb=document.createElement("input"); cb.type="checkbox"; cb.checked=true; L.cb=cb;+ cb.setAttribute("data-tip","Show or hide this layer"); cb.addEventListener("change",function(){ L.visible=cb.checked; applyVisibility(); }); const nm=document.createElement("span"); nm.className="lp-name"; nm.textContent=L.label; const z=document.createElement("span"); z.className="lp-z"; L.zEl=z;@@ -719,13 +721,17 @@ exported bodies + design rules.</p> } function show(el){ const t=el.getAttribute("data-tip"); if(!t) return; tt.textContent=t; tt.style.left="-9999px"; tt.classList.add("show"); place(el); } function hide(){ tt.classList.remove("show"); }+ let curEl=null; document.addEventListener("mouseover",function(e){ const el=e.target.closest("[data-tip]"); if(!el) return;- clearTimeout(timer); timer=setTimeout(function(){ show(el); },800);+ if(el===curEl) return; // crossing into svg/path CHILDREN - not a new hover+ curEl=el;+ clearTimeout(timer); timer=setTimeout(function(){ show(el); },600); }); document.addEventListener("mouseout",function(e){ const el=e.target.closest("[data-tip]"); if(!el) return;- clearTimeout(timer); hide();+ if(el.contains(e.relatedTarget)) return; // still inside the control - not a real leave+ curEl=null; clearTimeout(timer); hide(); }); document.addEventListener("click",hide,true); window.__ttReady=true;