Post
Topic
Board Hardware
Merits 1 from 1 user
Re: Official FutureBit Apollo BTC Software/Image and Support thread
by
MrMik
on 22/10/2022, 11:31:33 UTC
⭐ Merited by n0nce (1)
I am about to start designing and printing a bottom cover for the Apollo BTC.

The newbies section is so full of interesting links, I cannot concentrate on finding the answer to how I can post a picture.

Anyway, I'm quite certain that I have landed in the right place here for now and stuff will work itself out.

My OpenScad skills are not sophisticated, but I am persistent and use repetition when required to get the result I want, eventually.
https://openscad.org/

So until I figure out more visually pleasing ways to communicate here, I shall post the OpenScad code for rendering and 3D printing a bottom cover for the Apollo BTC.

This is the first attempt, it takes a bit of paint off the Apollo, but warranties fade as soon as I receive an interesting thingamabob, then they vanish.

So don't print this just yet... Grin

But seriously, I feel so much better when picking up my 'Polli' since I have installed the bottom cover to stop me from putting my paws through it's squishy innards!

This bottom cover needs somewhat skilled application of hot melt glue after printing - not a finished product! And takes some paint off your precious.....

Paste the following in to OpenScad if interested:

Code:
$fn=30;


// 20221022 making Polli bottom cover

// dimensions:
// 155mm x 104mm outer
// 131.6mm x 100.5mm inner

// screwless press fit design

// Rear USB and ETH connectors: Continuous cutout 5mm from bottom and side and stretching to 55mm from side
// Front LED light starts 17mm from bottom
// make 15mm high from bottom with cutouts for connectors
// side connectors and antenna hole cutout: 20mm to 90mm from rear side edge and 4mm from bottom (included // 6VDC hole: 23.6mm from side edge;' 10.9mm wide; 7.7mm high; 5.2mm from bottom edge)

// purpose: Protection from physical damage
// better air entry
// Wifi antenna outside


union(){// All of Polli bottom cover

difference(){// remove bits from cube above zero line

cube([160, 109, 17.5]);//the part above ground level that slides onto the original housing; adding 2.5mm each side for wall thickness

translate([2.5,2.5,2.5])
cube([155, 104, 17.5]);// removing the space where the Polli body will be


// side connectors and antenna hole cutout: 20mm to 90mm from rear side edge and 4mm from bottom (included // 6VDC hole: 23.6mm from side edge;' 10.9mm wide; 7.7mm high; 5.2mm from bottom edge)
translate([67.5,-47.5,6.5])
cube([70, 50, 17.5]);//Cutout for side connectors and antenna


// Rear USB and ETH connectors: Continuous cutout 5mm from bottom and side and stretching to 55mm from side
translate([110,7.5,7.5])
cube([50, 50, 17.5]);//Cutout for rear USB and ETH connectors

union(){// making lots of holes (9mm optimised) in bottom plate

translate([0,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([9,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([18,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([27,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([36,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([45,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([54,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([63,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([72,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([81,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([90,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([99,4.5,0])
union(){//one row of holes

translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes
translate([108,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([117,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([126,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([135,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([144,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes











}
// End union making up to 150 holes (9mm optimised) in bottom plate



// 131.6mm x 100.5mm inner
translate([14.5,4.5,0.4])
cube([131,100,2.5]);// thinning out the perforated area


}
// End difference remove bits from cube above sero line


}
// End of union all of Polli bottom cover