The stats suggest at least one person had a bad night:

If that makes you feel itchy, the overview may bring eventual relief, although some better pictures may restart the itch.
Good hunting …
The Smell of Molten Projects in the Morning
Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
Other creatures in our world

The stats suggest at least one person had a bad night:

If that makes you feel itchy, the overview may bring eventual relief, although some better pictures may restart the itch.
Good hunting …

On rare occasions I see a small bee or wasp investigating the bamboo tunnel nests at the windows:

Several of the tubes filled & sealed in early June have served their purpose:

Bamboo tubes have a paper-thin liner around the edge, but the mud-sealed tubes have obvious small holes chewed through the end caps:

My assumption that various insects would pick their favorite tube from the assortment seems to be working:

The medium and large tubes haven’t seen much traffic:

We’re glad to help!

An inch-long Praying Mantis stood guard on a carton delivered to the front door:

We hope to see many more of its kind.
Two views of a one-turn snail found on a lettuce leaf from the garden:
Mary has developed a Zero-Tolerance Policy for snails & slugs, so this one must start over again from the bottom of the food chain.
With sparrows excluded, the House Wrens eventually began setting up their second nest of the season, with the male proclaiming both he and his lady’s chosen nest are the best in the land:
Wrens are on our Most Favored Critter list!
Previous encounters with their ancestors and relatives:

Just over a month after mounting bamboo bee tunnel nest bundles here & there around the house & yard, they have occupants!
One of the bundles of small (a few mm ID) stalks on the kitchen window:

Another bundle of small stalks on a window a dozen feet away:

A bundle of medium (five to ten mm ID) stalks lashed to a downspout:

Unlike the mud dauber wasps decorating our previous house, these little bees dart in and out without announcing their presence: we’ve never seen them at work.
Assuming a single bee works on each bundle, she apparently starts with the lowest stalk and moves upward after filling & capping it.
Larger bees have yet to discover the bundles of larger stalks out on the trees, but … so far, so good!

The rpicam.cfg file holding the parameters for the Raspberry Pi watching the Prusa MK 4 printer:
bitrate=2000000
framerate=15
timeout=0
nopreview=
codec=libav
libav-format=mpegts
width=1280
height=720
rotation=180
roi=0.00,0.00,1.0,1.0
hdr=auto
The RPi camera for the wren nest is just taped to the window, but has a configuration providing a bigger picture:
bitrate=2000000
framerate=15
timeout=0
nopreview=
codec=libav
libav-format=mpegts
width=1920
height=1080
roi=0.00,0.00,1.0,1.0
hdr=auto
The useful pieces:
bitrate sets the average data rate, which may be too high for comfort outside your immediate LANframerate need not be as high as you thinknopreview prevents a preview picture while startingwidth and height do the obvious thing, but don’t try to be too cleverroi picks the image from a specific part of the camera sensor, so you can adjust the image layout if you have a rigidly fixed camerahdr doesn’t do anything for cheap RPi camerasPutting all the fiddly config in a file reduces the command line invocation to a mere jawbreaker:
rpicam-vid --config rpicam.cfg -o - | cvlc stream:///dev/stdin --sout '#rtp{sdp=rtsp://:5886/wrens}' &
Although you’d want to set that up to run automagically when the RPi starts up, for now I just fire it off as needed through an SSH session, with the ampersand letting it run after that terminal session closes.
The RTSP port (5886) and stream (wrens) can be anything you like, which comes in handy when squirting streams through port-forwarded firewall pinholes using a router that cannot handle different external and internal port numbers.
Useful background info:

Mary suggested converting wild bamboo up the hill into tunnel nests (per a xerces.org paper) for native bees buzzing around flowers in the yard, so:

I hung bundles of larger tubes in trees out back, in hopes of attracting huge carpenter bees.
3D printed mounts hold smaller bundles on the windows to let us keep an eye on the proceedings:
![Bee Tunnel Nest Mount - installed-]](https://softsolder.com/wp-content/uploads/2026/04/pxl_20260427_183308319-bee-tunnel-nest-mount-installed.jpg?w=1499)
Which look better when not seen though two layers of glass in desperate need of Spring Cleaning:

The tabs provide a bit of pressure to hold the mounts in place, although I don’t know if they have enough springiness or will survive contact with the elements:

The key advantage of not building bigger bee motels: these little bundles don’t need annual cleaning / maintenance and will eventually fall apart.
If the bees find them suitable, more power to ’em!
And I realized the cut-off ends fit in the rotary. Witticisms engraved on bamboo could become the New Hotness:

Stipulated: I’m barely half-right about being a wit …
The OpenSCAD source code as a GitHub Gist:
| // Bee Tunnel Nest Mount | |
| // Ed Nisley – KE4ZNU | |
| // 2026-04-26 | |
| include <BOSL2/std.scad> | |
| Layout = "Show"; // [Build,Show,Window,Bundle,Tabs] | |
| BundleOD = 35.0; | |
| BundleOffset = 0.0; | |
| SlotDepth = 18.0; | |
| SlotGap = 1.2; | |
| /* [Hidden] */ | |
| HoleWindage = 0.2; | |
| Protrusion = 0.01; | |
| NumSides = 3*2*4; | |
| Clearance = 0.3; | |
| //$fn=NumSides; | |
| WallThick = 2.0; | |
| MountHeight = 1.5*BundleOD; | |
| MountWidth = 1.5*BundleOD + BundleOffset; | |
| ClipOA = [SlotDepth + WallThick,SlotGap + 2*WallThick,MountHeight]; | |
| BundleCtr = [-WallThick/2,ClipOA.y + MountWidth/2 + BundleOffset/2,MountHeight/2]; | |
| TabOA = [0.7*SlotDepth,5.0,0.7*WallThick]; | |
| TabOffset = 0.2*SlotDepth; | |
| TabOC = MountHeight/2; | |
| TabClearance = [4*Clearance,0,Clearance]; | |
| //—– | |
| // Define things | |
| module BundleMount() { | |
| difference() { | |
| cuboid([WallThick,MountWidth + ClipOA.y,MountHeight], | |
| rounding=3.0,edges=[TOP+BACK,BOTTOM+BACK],anchor=FRONT+RIGHT); | |
| back(BundleCtr.y) | |
| xcyl(3*WallThick,d=BundleOD); | |
| for (j=[-1,1],k=[-1,1]) | |
| translate([BundleCtr.x,j*BundleOD/2 + BundleCtr.y,k*BundleOD/2]) | |
| xcyl(3*WallThick,d=3.0,$fn=6); | |
| } | |
| } | |
| module WindowMount() { | |
| difference() { | |
| cuboid(ClipOA,rounding=3.0,edges=[TOP+LEFT,BOTTOM+LEFT], | |
| anchor=FRONT+RIGHT); | |
| left(WallThick) back(WallThick) | |
| cuboid([2*SlotDepth,SlotGap,2*MountHeight],anchor=FRONT+RIGHT); | |
| for (k=[-1,1]) | |
| translate([-(ClipOA.x – TabOffset),-Protrusion,k*TabOC/2]) | |
| cuboid([TabOA.x + TabClearance.x,WallThick + 2*Protrusion,TabOA.y + 2*TabClearance.z],anchor=FRONT+LEFT); | |
| } | |
| } | |
| module Tabs() { | |
| for (j=[-1,1]) | |
| fwd(j*TabOC/2) | |
| cuboid(TabOA,anchor=BOTTOM+LEFT) position(LEFT+TOP) | |
| prismoid(size1=[3*SlotGap,TabOA.y],size2=[0,TabOA.y/2], | |
| h=(WallThick – TabOA.z) + SlotGap/3,anchor=BOTTOM+LEFT); | |
| } | |
| module Assembly() { | |
| union() { | |
| BundleMount(); | |
| WindowMount(); | |
| left(ClipOA.x – TabOffset – TabClearance.x) | |
| xrot(-90) | |
| Tabs(); | |
| } | |
| } | |
| //—– | |
| // Build things | |
| if (Layout == "Bundle") { | |
| BundleMount(); | |
| } | |
| if (Layout == "Window") { | |
| WindowMount(); | |
| } | |
| if (Layout == "Tabs") { | |
| Tabs(); | |
| } | |
| if (Layout == "Show") { | |
| Assembly(); | |
| } | |
| if (Layout == "Build") { | |
| yrot(90) | |
| Assembly(); | |
| } | |

Skunks are generally crespecular animals, so seeing this critter in broad daylight was unusual:

That’s taken through two layers of half-century old glass, for obvious reasons.
What may not be obvious: that skunk was not behaving at all like the ones in our previous sightings. It had unkempt fur, staggered around the house twice while twitching uncontrollably, slumping face-down, and falling on its side. I am not qualified to diagnose animal diseases, but rabies seems likely.
It eventually staggered off and, we hope, died quietly in a very secluded spot.
The Town of Poughkeepsie’s Animal Control officer now specializes in dog problems across several towns, with “all other animals” handled by the county’s Department of Health.