540 lines
23 KiB
Markdown
540 lines
23 KiB
Markdown
# Tapo Ceiling Mount
|
||
|
||
A parametric ceiling-mount adapter for a **TP-Link Tapo C202 / C210** camera. It
|
||
uses **only the existing round ceiling hole**. It drills **no new holes**.
|
||
|
||
<img src="preview.png" width="480">
|
||
|
||
The adapter clamps the false-ceiling panel between one exterior plate below and
|
||
two interior clamps above. Two **M4** screws (one per clamp) travel up through the existing
|
||
hole and pull the clamps down onto the ceiling.
|
||
|
||
A **modular camera connector** hangs below the plate. It carries no ceiling
|
||
load. It routes the cables and it accepts exchangeable camera adapters through
|
||
two bayonet interfaces. See [Modular camera connector](#modular-camera-connector).
|
||
|
||
## Load path
|
||
|
||
The load goes through this chain:
|
||
|
||
1. camera
|
||
2. original Tapo base
|
||
3. exterior plate
|
||
4. M4 screws
|
||
5. captive M4 nuts
|
||
6. interior clamps
|
||
7. upper surface of the ceiling panel
|
||
|
||
Broad bearing surfaces spread the load. They protect the plasterboard from
|
||
point pressure.
|
||
|
||
## Files
|
||
|
||
| File | Part | Print? |
|
||
|------|------|--------|
|
||
| `tapo_ceiling_outer_plate.scad` | Exterior plate (below ceiling) | Yes, ×1 |
|
||
| `tapo_ceiling_inner_clamp.scad` | Interior clamps, joined as a pair | Yes, ×1 pair |
|
||
| `tapo_ceiling_camera_connector.scad` | Modular connector collar | Yes, ×1 |
|
||
| `tapo_ceiling_camera_adapter_blank.scad` | Blank adapter template | Optional |
|
||
| `tapo_ceiling_camera_adapter_tapo.scad` | Direct Tapo adapter (male twist mount) | Optional |
|
||
| `tapo_ceiling_camera_adapter_tapo_original_base.scad` | Adapter for the factory Tapo base | Yes, ×1 |
|
||
| `tapo_ceiling_tapo_base.scad` | Printed Tapo base, and the lug gap test | Test first |
|
||
| `tapo_ceiling_nut_fit_test.scad` | Nut press-fit test coupon | Test first |
|
||
| `tapo_ceiling_mount_parameters.scad` | Shared parameters and modules | No (include only) |
|
||
| `tapo_ceiling_mount_assembly.scad` | Preview of the full assembly | No |
|
||
|
||
Print **one** camera adapter. Use `..._tapo_original_base.scad` for a reliable
|
||
fit. Use `..._blank.scad` as a template for another camera.
|
||
|
||
**The two clamps print as one part.** They are identical, and a thin flexible
|
||
line joins them across the hole center. You push one clamp up through the hole,
|
||
and the other one follows on the line. A lip under each clamp drops into the
|
||
hole from above, like the plate lip from below. It seats the clamp and stops it
|
||
from turning around its screw. Set `clamp_link = false` to print the clamps
|
||
separately.
|
||
|
||
**Edit `tapo_ceiling_mount_parameters.scad` only.** Every part reads its values
|
||
from that file.
|
||
|
||
## Hardware
|
||
|
||
| Item | Quantity | Note |
|
||
|------|----------|------|
|
||
| M4 machine screw | 2 | Length from the formula below. Default = **25 mm**. |
|
||
| M4 hex nut | 2 | Standard nut, 7.0 mm across flats, 3.2 mm thick. |
|
||
| ST3.5 screws for the Tapo base | 2 | Up to 13 mm long. The 20 mm factory screws are too long for the adapter. |
|
||
| TPU / rubber pad | 2 | Optional. See `clamp_tpu_pad`. |
|
||
|
||
### Screw length
|
||
|
||
The design computes a recommended length. Open any file in OpenSCAD. Read the
|
||
console line:
|
||
|
||
```
|
||
ECHO: "Recommended M4 screw length (under head): 25 mm"
|
||
```
|
||
|
||
The formula is:
|
||
|
||
```
|
||
length = plate_thickness + ceiling_thickness + clamp_boss_height - head_recess_depth
|
||
```
|
||
|
||
The result rounds up to the next 5 mm. A thicker ceiling needs a longer screw.
|
||
|
||
## Key parameters
|
||
|
||
Group `[Existing Ceiling Hole]`:
|
||
|
||
- **`ceiling_hole_diameter`** — the real hole diameter. Default 80 mm.
|
||
- **`ceiling_thickness`** — the real panel thickness. Default 12.5 mm.
|
||
- **`install_clearance`** — gap so parts do not scrape the hole edge.
|
||
|
||
Group `[Exterior Plate]`:
|
||
|
||
- **`outer_diameter`** — plate diameter. Default 105 mm. Keep it at least 105 mm, so the collar rim sits on the flat face.
|
||
- **`plate_thickness`** — plate thickness. Default 3 mm.
|
||
- **`centering_lip_height`** — depth the lip enters the hole.
|
||
|
||
Group `[Central Cable Opening]`:
|
||
|
||
- **`central_opening_diameter`** — main cable opening. Default 54 mm.
|
||
- **`cable_slot_reach`** — extra opening reach for cable routing.
|
||
- **`cable_slot_angle`** — direction of that extra reach.
|
||
|
||
Group `[M4 Fasteners]`:
|
||
|
||
- **`screw_boss_d`** — boss around each screw on the plate top. The screw
|
||
position is derived from it: the screw and its boss always stay inside the
|
||
centering lip, so they enter the hole. A smaller boss moves the screws out.
|
||
- **`head_type`** — `cap` for a counterbore, or `countersunk` for a cone.
|
||
- **`m4_nut_flats`**, **`m4_nut_thickness`** — measure your real nuts.
|
||
- **`nut_pocket_tol`** — across-flats offset for the nut press fit. Default
|
||
-0.15 mm. Raise it if the nut does not go in. Lower it if the nut falls out.
|
||
- **`nut_pocket_depth_tol`** — extra pocket depth, so the nut sits below the
|
||
boss top. Default 0.2 mm.
|
||
- **`nut_pocket_lead`** — lead-in chamfer at the pocket mouth. Default 0.4 mm.
|
||
|
||
Group `[Interior Clamps]`:
|
||
|
||
- **`clamp_outer_r`** — clamp reach. It must exceed the hole radius.
|
||
- **`clamp_half_angle`** — clamp arc width. A smaller value inserts more easily.
|
||
- **`clamp_grip_ribs`** — anti-slip grooves on the bearing face.
|
||
- **`clamp_lip`**, **`clamp_lip_h`** — centering lip under each clamp. Default
|
||
3 mm high.
|
||
- **`clamp_link`**, **`clamp_link_w`**, **`clamp_link_t`** — the thin line that
|
||
joins the clamps. Default 2 x 1.2 mm.
|
||
|
||
Group `[Camera Base Mount]`:
|
||
|
||
- **`camera_mount_hole_spacing`** — distance between the base screw holes.
|
||
The original Tapo base uses 39 mm.
|
||
- **`camera_mount_hole_diameter`** — base screw hole size.
|
||
- **`camera_mount_rotation`**, **`camera_mount_offset_x`**, **`camera_mount_offset_y`**
|
||
— position of the base pattern on the plate, for the direct base mount
|
||
without the connector. The original-base adapter follows `tapo_wing_angle`
|
||
instead.
|
||
|
||
The model checks its own limits with `assert`. A bad value stops the render and
|
||
prints the reason.
|
||
|
||
## Modular camera connector
|
||
|
||
The connector makes the ceiling mount reusable for different cameras. You change
|
||
the camera adapter without touching the structural ceiling mount.
|
||
|
||
### Architecture
|
||
|
||
The system has three layers:
|
||
|
||
```
|
||
exterior plate -> connector collar -> camera adapter -> camera
|
||
```
|
||
|
||
Two bayonet interfaces join the layers. Both use the same mechanism. The fixed
|
||
part has a short ring with outward load tabs. The hanging part is a cup that
|
||
wraps around the ring. Rigid tabs carry the load. A click latch stops the part
|
||
from turning loose.
|
||
|
||
| Interface | Joins | Tabs | Key (gaps from cable exit) | Lock turn | Lock |
|
||
|-----------|-------|------|----------------------------|-----------|------|
|
||
| Upper bayonet | plate to collar | 3 | 0, 90, 180 degrees | 30 degrees | click latch |
|
||
| Lower bayonet | collar to adapter | 3 | 0, 90, 180 degrees | 30 degrees | click latch |
|
||
|
||
The two interfaces are identical. So a camera adapter locks onto the collar
|
||
bottom, or straight onto the plate without the collar. It ends in the same
|
||
orientation both ways.
|
||
|
||
### Upper bayonet (plate to collar)
|
||
|
||
The plate has a short ring with three outward tabs. The collar is larger. It
|
||
wraps around the ring and sits flush against the plate face. So the tabs, the
|
||
back stops and the two M4 screw heads stay hidden when the collar is locked.
|
||
|
||
The three entry gaps are not evenly spaced (0, 90 and 180 degrees from the cable
|
||
exit). The collar fits one way only. In that position its cable exit always
|
||
meets a window in the plate ring.
|
||
|
||
### Lower bayonet (collar to adapter)
|
||
|
||
The collar bottom repeats the plate design one level down. It has a flat bottom
|
||
face and a short ring with three outward tabs, back stops and a latch bump.
|
||
|
||
The adapter is a cup with the same outer diameter as the collar (101.6 mm). It
|
||
wraps around the collar ring. So the collar and the adapter look like one
|
||
cylinder with a thin seam, and the ring stays hidden.
|
||
|
||
The ring, the key, the latch and the back stops copy the plate exactly. The
|
||
adapter fits one way only, so its orientation to the cable exit is always the
|
||
same. Its release nub sits under the collar release nub.
|
||
|
||
### Adapter straight on the plate
|
||
|
||
Without the collar, the adapter locks onto the plate ring in the same way: push
|
||
it up, turn it 30 degrees until it clicks. The camera face then sits 11.6 mm
|
||
below the plate face instead of 24.2 mm. There is no side cable exit, so the
|
||
cables must reach the camera through the adapter center.
|
||
|
||
### Click latch
|
||
|
||
Each cup has a flexible beam in its rim. The beam carries a notch. A bump on the
|
||
fixed part lifts the beam during the last few degrees of the turn. Then the
|
||
bump drops into the notch with a click. The steep notch wall blocks the reverse
|
||
turn, so the part cannot turn loose. A hard back stop blocks over-rotation.
|
||
|
||
The latch only stops rotation. The tabs carry the camera load.
|
||
|
||
The latch sits right beside the cable exit (`ui_latch_beside_exit`). The beam
|
||
starts at the exit edge, and the release nub is just beside the exit. Both
|
||
bayonets share the latch position, so when everything is closed the collar
|
||
nub and the adapter nub line up, one above the other.
|
||
|
||
### Camera load path
|
||
|
||
The camera hangs from rigid bayonet tabs, not from clips:
|
||
|
||
```
|
||
camera -> adapter lugs -> collar bottom tabs -> collar -> collar lugs -> plate tabs -> plate
|
||
```
|
||
|
||
### Fit the collar
|
||
|
||
1. Turn the collar so its cable exit is 30 degrees past the ring window.
|
||
2. Push the collar straight up over the plate ring until the rim meets the plate.
|
||
3. Turn it until it clicks. Seen from below, it turns counterclockwise.
|
||
|
||
### Remove the collar
|
||
|
||
1. Press the release nub on the collar side toward the floor.
|
||
2. Turn the collar back 30 degrees.
|
||
3. Pull it straight down.
|
||
|
||
### Fit an adapter
|
||
|
||
1. Hold the adapter under the collar. Turn it until its lugs meet the three
|
||
gaps in the collar bottom ring. It fits one way only.
|
||
2. Push the adapter straight up until its rim meets the collar.
|
||
3. Turn it about 30 degrees until it clicks. Seen from below, it turns
|
||
counterclockwise, the same way as the collar.
|
||
|
||
### Remove an adapter
|
||
|
||
1. Press the release nub on the adapter side toward the floor.
|
||
2. Turn the adapter back 30 degrees.
|
||
3. Pull it straight down.
|
||
|
||
Both parts lock in the same direction. When you lock the adapter, the turn
|
||
pushes the collar against its back stop. When you unlock the adapter, the
|
||
collar latch holds the collar. So the collar stays locked while you change the
|
||
adapter.
|
||
|
||
### Cable management
|
||
|
||
The collar is hollow. The center stays open for the RJ45 and DC cables. The
|
||
collar bottom ring leaves a 79 mm passage. Inside the adapter, a 45-degree
|
||
funnel leads the cables to the 40 mm central hole. The side cable exit is open
|
||
at the collar rim and lines up with the window in the plate ring. So the cables
|
||
can leave sideways right under the ceiling.
|
||
|
||
The side cable exit is 24 mm wide and 10 mm deep. Route the cables after the
|
||
collar is locked: pass each plug from inside the collar out through the exit.
|
||
The RJ45 plug goes through with its latch pressed.
|
||
|
||
Do not lay the cables in before you fit the collar. The collar turns 30
|
||
degrees to lock, so its exit moves away from the window in the plate ring and
|
||
the rim would pinch the cables.
|
||
|
||
The collar ends 2.3 mm below the cable exit, so it is as short as the exit
|
||
allows. 10 mm is the smallest exit an RJ45 plug passes through. Set
|
||
`cable_exit_count = 2` for a second exit on the opposite side.
|
||
|
||
### Tapo twist mount
|
||
|
||
The Tapo camera does not hold a base. It holds a socket. The original Tapo base
|
||
is **male**: a 56 mm disc with a short boss and 2 lugs at 180 degrees. The
|
||
camera slides its socket over the lugs and turns **clockwise, seen from below**,
|
||
until its own latch clicks. To remove it, turn it back.
|
||
|
||
It fits C200, C202, C210, C211, C212, C216, C220, C222, C230, TC70 to TC74 and
|
||
Kasa EC70/EC71. It does not fit C100/C110.
|
||
|
||
No official drawing exists. The values come from 11 printable replicas that
|
||
users report as a good fit:
|
||
|
||
| Feature | Value |
|
||
|---------|-------|
|
||
| Boss diameter, root to top | 30.4 to 28.4 mm |
|
||
| Lugs | 2 at 180 degrees, 7.0 mm wide, 1.5 mm thick |
|
||
| Lug tips | 44 mm across (radius 22) |
|
||
| Gap from the camera face to the lug underside | 3.0 mm (`tapo_lug_gap`) |
|
||
| Recess around the boss | 47 mm diameter, 1 mm deep |
|
||
| Base screws | 2, 39 mm apart, at 90 degrees to the lugs |
|
||
|
||
**Wing rotation.** `tapo_wing_angle` turns the two wings relative to the cable
|
||
exit. Set it so that the camera connectors face the cable exit once the camera
|
||
has clicked on. It turns the wings of the direct Tapo adapter and the printed
|
||
base. It also turns the two screw holes of the original-base adapter, because
|
||
the factory base has its screws at 90 degrees to its wings.
|
||
|
||
Three ways to hang the camera:
|
||
|
||
- **Original-base adapter + factory base** — the reliable choice. Screw the
|
||
factory base on with two ST3.5 screws up to 13 mm long.
|
||
- **Original-base adapter + printed base** — `tapo_base.stl` is a copy of the
|
||
factory base with the same screw holes. Use it if the factory base is lost.
|
||
- **Direct Tapo adapter** — the boss and lugs are part of the adapter. It is one
|
||
part less, but it needs support under the two lugs.
|
||
|
||
### Tapo lug gap test
|
||
|
||
The gap from the camera face to the lug underside is the one sensitive value.
|
||
A smaller gap holds tighter.
|
||
|
||
1. Print `tapo_base_test_set.stl`. It has three bases with gaps of 2.7, 3.0 and
|
||
3.3 mm. The edge notches number them 1, 2 and 3.
|
||
2. Put the camera on each base and turn it until it clicks.
|
||
3. Keep the tightest base that turns in fully and holds with no play.
|
||
4. Set `tapo_lug_gap` to its gap. Then print the direct Tapo adapter or
|
||
`tapo_base.stl`.
|
||
|
||
A small rib under each lug tip (`tapo_detent_h`, 0.3 mm) adds grip. Set it to 0
|
||
if the camera does not turn in.
|
||
|
||
### Connector parameters
|
||
|
||
Group `[Camera Connector Collar]`:
|
||
|
||
- **`enable_connector_interface`** — add the bayonet ring to the plate.
|
||
- **`connector_shelf_angle`** — optional inner shelf under the collar floor.
|
||
Default 0: a flat floor, and the collar ends 2.3 mm below the cable exit.
|
||
The flat floor needs support inside the collar. 35 or 45 degrees print
|
||
without that support, but make the collar 5.1 or 7.3 mm taller.
|
||
- **`connector_floor_t`** — collar floor thickness at the bottom ring. Default
|
||
2 mm.
|
||
- The collar height follows from these values and `cable_exit_height`. It is
|
||
not set directly.
|
||
- **`cable_exit_width`**, **`cable_exit_height`**, **`cable_exit_count`** — the
|
||
side cable exit. Default 24 x 10 mm. A deeper exit makes the collar taller.
|
||
|
||
Group `[Upper Bayonet - Plate to Collar]`:
|
||
|
||
- **`ui_ring_r_i`** — plate ring radius. It must stay outside the screw heads.
|
||
- **`ui_gap_centers`** — the keyed gap layout.
|
||
- **`ui_lock_rot`** — lock turn angle.
|
||
- **`ui_clearance`** — fit clearance per surface. Default 0.3 mm.
|
||
|
||
Group `[Click Latch - Plate to Collar]`:
|
||
|
||
- **`ui_latch_bump_h`** — how far the bump reaches into the notch. Higher gives a
|
||
firmer lock.
|
||
- **`ui_latch_beam_t`** — beam thickness. Thicker gives a stiffer click.
|
||
|
||
Group `[Lower Bayonet - Collar to Adapter]`:
|
||
|
||
- The lower bayonet takes every value from the upper bayonet. Change the
|
||
`ui_*` values to change both.
|
||
- **`li_floor_gap`** — gap between the ring and the adapter floor.
|
||
|
||
The collar outer diameter follows from the ring and tab sizes (101.6 mm). The
|
||
adapter outer diameter equals the collar outer diameter. The camera face of an
|
||
adapter sits 24.2 mm below the plate face with the collar, and 11.6 mm without
|
||
it.
|
||
|
||
The model checks both bayonets with `assert`. Each lug must pass its gap and
|
||
land fully on its tab. Each back stop must sit on its tab. The latch groove must
|
||
be long enough for the turn. The notch must be shallower than the beam. Each
|
||
key must fit one way only. The adapter key must also fit the plate ring.
|
||
|
||
### Fit test
|
||
|
||
Print the collar and one adapter first. Try the twist-locks by hand. Use the
|
||
`ui_*` values for both joints.
|
||
|
||
- Too tight or it will not start: raise the clearance by 0.05 mm.
|
||
- Loose or it rattles: lower the clearance by 0.05 mm.
|
||
- Click too weak: raise the latch bump height by 0.2 mm.
|
||
- Click too hard to push over: lower the latch beam thickness by 0.2 mm.
|
||
|
||
## Print settings
|
||
|
||
- Material: **PETG** or **ASA**. This part hangs overhead, so use a strong
|
||
material.
|
||
- Perimeters: **4 to 5**.
|
||
- Infill: **35 to 50 %**.
|
||
- Layer height: **0.2 mm**.
|
||
- Supports: only where the list below says so.
|
||
|
||
Every load face stays flat. The lugs of a cup (collar top, adapter top) print
|
||
on the bed, so their load faces point up. The tabs of a fixed ring (plate ring,
|
||
collar bottom ring) end up at the top of the print, so their load faces point
|
||
down. Those tabs need a little support.
|
||
|
||
Print each part in the orientation below:
|
||
|
||
- **Clamps** — flat top on the bed. The link prints on the bed, the lips point
|
||
up and the nut pockets open onto the bed. No support.
|
||
- **Connector collar** — rim on the bed. The lugs and the latch beam print on
|
||
the bed. The flat floor needs support inside the collar, and the three lower
|
||
tabs need support under them.
|
||
- **Adapters** — rim on the bed. The lugs and the latch beam print on the bed.
|
||
An inner wall and a 45-degree cable funnel hold up the base plate. The floor
|
||
over the ring channel is a 4.8 mm bridge. No support.
|
||
- **Direct Tapo adapter** — rim on the bed, like the other adapters. The twist
|
||
ring points up. Add light support under its three inward lock tabs.
|
||
- **Plate, no connector** (`enable_connector_interface = false`) — visible face on
|
||
the bed. The lip and bosses point up. No support.
|
||
- **Plate, with connector** — the plate then has features on both faces. It is the
|
||
one part that needs a little support. Print it with the bayonet ring pointing
|
||
up. The visible face then points up and stays clean. Use a brim for stability.
|
||
Add light support under the disc and under the three tabs. The tab support
|
||
marks sit inside the collar footprint, so the collar hides them.
|
||
|
||
## STL files for a build plate
|
||
|
||
The `stl/` folder holds each part, already turned to its print orientation and
|
||
placed on the bed. Import them and arrange your plate.
|
||
|
||
| STL | Quantity | Size on bed (mm) | Support |
|
||
|-----|----------|------------------|---------|
|
||
| `inner_clamps.stl` | 1 (the linked pair) | 108 x 66 x 12 | none |
|
||
| `inner_clamp.stl` | 0 (single clamp, only to replace one) | 37 x 66 x 12 | none |
|
||
| `camera_connector.stl` | 1 | Ø 101.6 x 18.9 | inside under the flat floor, and under the 3 lower tabs |
|
||
| `outer_plate.stl` | 1 | Ø 105 x 12.6 | light, on the ceiling side; use a brim |
|
||
| `camera_adapter_tapo_original_base.stl` | 1 (reliable choice) | Ø 101.6 x 11.3 | none |
|
||
| `camera_adapter_blank.stl` | 0-1 (template) | Ø 101.6 x 11.3 | none |
|
||
| `camera_adapter_tapo.stl` | 0-1 (direct Tapo mount) | Ø 101.6 x 15.8 | under the 2 Tapo lugs |
|
||
| `tapo_base_test_set.stl` | test first | 180 x 56 x 8.3 | under the lugs, through the plate windows |
|
||
| `tapo_base.stl` | 0-1 (printed factory base) | Ø 56 x 8 | under the lugs, through the plate windows |
|
||
| `nut_fit_test.stl` | test first | 65 x 19 x 5.4 | none |
|
||
|
||
The collar and the adapters also carry a 1.5 mm release nub on the side.
|
||
|
||
Print **one** adapter. Choose `camera_adapter_tapo_original_base.stl` for a
|
||
reliable fit. A full plate is: 1 plate, 2 clamps, 1 connector, 1 adapter.
|
||
|
||
To regenerate the STLs after a parameter change, run `./generate-print-stls.sh`.
|
||
It turns each part to its print orientation and puts it on the bed.
|
||
|
||
## Assembly and installation
|
||
|
||
Do this before you start. Press one M4 nut into each clamp pocket:
|
||
|
||
1. Set the nut in the chamfer at the pocket mouth, with its flats aligned.
|
||
2. Press it down square with your thumb or flat pliers until it sits on the
|
||
floor.
|
||
3. If it is too tight, pull it in with the screw. Pass an M4 screw up through the
|
||
bearing face, thread the nut and tighten until the nut seats. Then remove the
|
||
screw.
|
||
|
||
The nut stays in place when you turn the clamp upside down.
|
||
|
||
Then follow this sequence:
|
||
|
||
1. Disconnect the camera. Remove it.
|
||
2. Pass the Ethernet cable and the power cable through the ceiling hole.
|
||
3. Push one clamp of the pair up through the hole. Lay it on the ceiling with
|
||
its lip in the hole.
|
||
4. Push the second clamp up through the hole. It follows on the line. Set its
|
||
lip in the hole on the opposite side.
|
||
5. Hold the exterior plate under the ceiling.
|
||
6. Push the two M4 screws up through the plate.
|
||
7. Start each screw into its captive nut by hand.
|
||
8. Pull the plate gently down while you turn each screw. This keeps each clamp
|
||
from turning with the screw.
|
||
9. Tighten the two screws in small, even steps.
|
||
10. Confirm the ceiling panel sits tight between the plate and the clamps.
|
||
|
||
Then attach the modular connector:
|
||
|
||
11. Push the connector collar up over the plate ring (it fits one way only).
|
||
12. Turn the collar about 30 degrees until it clicks.
|
||
13. Reach in through the open collar bottom. Pass the Ethernet plug and the
|
||
power plug out through the side exit. Press the RJ45 latch to get it through.
|
||
14. Screw the factory Tapo base onto the camera adapter.
|
||
15. Push the adapter up over the collar bottom ring in the keyed orientation.
|
||
16. Turn the adapter about 30 degrees until it clicks.
|
||
17. Lead the cables to the camera connectors.
|
||
18. Attach the camera.
|
||
|
||
To change the camera later, press the adapter release nub toward the floor, turn
|
||
the adapter back and pull it down. The ceiling mount stays in place.
|
||
|
||
## Measurements to verify before you print
|
||
|
||
Measure these values on the real installation. Set them in the parameters file.
|
||
A wrong value gives a loose or a tight fit.
|
||
|
||
1. **`ceiling_hole_diameter`** — measure the real hole. This value is critical.
|
||
2. **`ceiling_thickness`** — measure the real panel.
|
||
3. **`camera_mount_hole_spacing`** — measure the two screw holes on your Tapo
|
||
base.
|
||
4. **`camera_mount_hole_diameter`** — match your base screws.
|
||
5. **`m4_nut_flats`** and **`m4_nut_thickness`** — measure your real nuts.
|
||
6. **`tapo_lug_gap`** — use the Tapo lug gap test.
|
||
|
||
Print the two test coupons first:
|
||
|
||
- `nut_fit_test.stl` has four nut pockets at -0.25, -0.20, -0.15 and -0.10 mm. The
|
||
edge notches number them 1 to 4. Press a nut into each pocket. Choose the
|
||
tightest pocket that takes the nut fully and holds it upside down. Set
|
||
`nut_pocket_tol` to its offset.
|
||
- `tapo_base_test_set.stl` sets the Tapo lug gap.
|
||
|
||
Then print one clamp. Test the fit through the hole. Then print the rest.
|
||
|
||
## Design checks
|
||
|
||
The assembly preview confirms the mechanical rules. Open
|
||
`tapo_ceiling_mount_assembly.scad`. Check that:
|
||
|
||
- No screw touches the ceiling material.
|
||
- Every screw stays inside the existing hole.
|
||
- Each clamp passes through the hole one at a time.
|
||
- Each clamp overlaps the ceiling top by about 14 mm (default 80 mm hole).
|
||
- The clamps leave the hole center open.
|
||
- The Ethernet and DC connectors pass through the open center.
|
||
- The plate covers the whole hole.
|
||
- The two screws and their bosses stay inside the ceiling hole.
|
||
- The two screws stay clear of the camera base.
|
||
|
||
For the modular connector, check also that:
|
||
|
||
- The connector locks and unlocks from below.
|
||
- The connector cannot pull straight down when locked.
|
||
- The adapter cannot pull straight down when locked.
|
||
- Each lug bears on a solid tab.
|
||
- The adapter fits the collar one way only, and it does not fit the plate.
|
||
- The center stays open for the RJ45 and DC connectors.
|
||
- The side notch gives room for the cable bend.
|
||
- You can change the adapter without removing the ceiling mount.
|
||
|
||
Set `assembly_mode` in the preview to `assembled`, `exploded` or `section`. The
|
||
`section` view cuts the model on the y=0 plane and shows the cable path.
|
||
|
||
Where rules conflict, the design keeps this order of priority:
|
||
|
||
1. structural safety
|
||
2. no new ceiling holes
|
||
3. cable clearance
|
||
4. easy installation
|
||
5. compact look
|