Steward
分享是一種喜悅、更是一種幸福
手機 - Motorola XT897 - 終級改造
參考資訊:
https://dimi.tw/store/product/rode-sc6
OpenSCAD
$fn = 50;
module frame(off) {
hull() {
c = 3;
h = 7;
// left-bottom
translate([0 - off, 4 - off / 2, 0]) cylinder(h, c, c);
translate([6.5 - off / 2, 0 - off, 0]) cylinder(h, c, c);
// right-bottom
translate([112.5 + off / 2, 0 - off, 0]) cylinder(h, c, c);
translate([118.5 + off, 4 - off / 2, 0]) cylinder(h, c, c);
// left-top
translate([6.5 - off / 2, 57 + off, 0]) cylinder(h, c, c);
translate([0 - off, 53.5 + off / 2, 0]) cylinder(h, c, c);
// right-top
translate([118.5 + off, 53.5 + off / 2, 0]) cylinder(h, c, c);
translate([112.5 + off / 2, 57 + off, 0]) cylinder(h, c, c);
}
}
module earphone() {
rotate([180, 0, 90]) difference() {
translate([0, 0, 0]) cube([16, 22, 5]);
translate([2.3, 2, 1]) cube([13, 18, 10]);
}
}
module typec() {
rotate([180, 0, 90]) difference() {
translate([0, 0, 0]) cube([16.5, 13.5, 5]);
translate([1.8, 1, 1]) cube([13.5, 11.5, 10]);
}
}
module btn() {
rotate([0, 180, 0]) difference() {
translate([0, 0, 0]) cube([6, 16.5, 5]);
translate([0, 6, 1]) cube([6, 6, 5]);
}
}
module speaker() {
difference() {
translate([0, 0, 4]) cylinder(5, 8.5, 8.5);
translate([0, 0, 3]) cylinder(5, 7.65, 7.65);
}
}
module aux() {
x = -1.6;
y = 53;
h = 21.6 + 0.8;
w = 120.1;
difference() {
hull() {
translate([x, y, 0.1]) cylinder(8.5, 3, 3);
translate([w, y, 0.1]) cylinder(8.5, 3, 3);
translate([x, y + h, 0.1]) cylinder(8.5, 3, 3);
translate([w, y + h, 0.1]) cylinder(8.5, 3, 3);
}
translate([0, 0, -1]) hull() {
off = 1.6;
translate([x + off, y + off, -off]) cylinder(8.5, 3, 3);
translate([w - off, y + off, -off]) cylinder(8.5, 3, 3);
translate([x + off, y + h - off, -off]) cylinder(8.5, 3, 3);
translate([w - off, y + h - off, -off]) cylinder(8.5, 3, 3);
}
translate([-5, 45, -1]) cube([130, 9, 10]);
translate([3, 50, -1]) cube([110, 10, 10]);
hull() {
c = 3;
h = 7;
off = 0;
translate([6.5 - off / 2, 57 + off, 0]) cylinder(h, c, c);
translate([0 - off, 53.5 + off / 2, 0]) cylinder(h, c, c);
translate([118.5 + off, 53.5 + off / 2, 0]) cylinder(h, c, c);
translate([112.5 + off / 2, 57 + off, 0]) cylinder(h, c, c);
}
}
}
module back(h, off, extra) {
c0 = 3;
c1 = 3;
translate([118.5, 0, 0]) rotate([0, 180, 0]) difference() {
hull() {
translate([0 - off, 4 - off / 2, 0]) cylinder(h, c0, c0);
translate([6 - off / 2, 0 - off, 0]) cylinder(h, c0, c0);
translate([112 + off / 2, 0 - off, 0]) cylinder(h, c0, c0);
translate([118.5 + off, 4 - off / 2, 0]) cylinder(h, c0, c0);
translate([0 - off, (74.4 + off / 2) + extra, 0]) cylinder(h, c0, c0);
translate([118.5 + off, (74.4 + off / 2) + extra, 0]) cylinder(h, c0, c0);
translate([0 - off, 4 - off / 2, 0]) sphere(c1);
translate([6 - off / 2, 0 - off, 0]) sphere(c1);
translate([112 + off / 2, 0 - off, 0]) sphere(c1);
translate([118.5 + off, 4 - off / 2, 0]) sphere(c1);
translate([0 - off, (74.4 + off / 2) + extra, 0]) sphere(c1);
translate([118.5 + off, (74.4 + off / 2) + extra, 0]) sphere(c1);
}
}
}
module case(ch, cw, ce) {
difference() {
h = 7;
union() {
holder_z = 1;
holder_h = h - holder_z;
difference() {
union() {
difference() {
frame(1.6);
frame(0);
}
translate([0, 0, 11]) {
back(ch, cw, ce);
}
// keyboard holder
translate([8, 60.8, -0.3]) hull() {
translate([0, 0, 0]) sphere(0.8);
translate([101, 0, 0]) sphere(0.8);
}
}
translate([8, 59, -0.3]) cube([4, 2, 5]);
translate([12, 58.5, -0.3]) cube([88, 2, 5]);
translate([98, 59, -0.3]) cube([5, 2, 5]);
// sdcard
translate([63.5, -6, 0]) cube([12, 5, 4]);
// wires
translate([11, 58, 5]) cube([3, 6, 2]);
translate([38, 58, 5]) cube([3, 6, 2]);
translate([91, 58, 5]) cube([3, 6, 2]);
translate([103, 58, 5]) cube([3, 6, 2]);
}
// holder
translate([-3, 23, holder_z]) cube([2, 11, holder_h]);
translate([16.5, -3, holder_z]) cube([23, 1.5, holder_h]);
translate([89, -3, holder_z]) cube([12, 1.5, holder_h]);
difference() {
translate([0, 0, h - 0.1]) frame(1.6);
translate([-10, -10, h + 1.6]) cube([200, 200, 10]);
// wires - battery
translate([80, 54, -2]) cube([26, 10, 10]);
translate([11, 54, -2]) cube([30, 10, 10]);
}
difference() {
union() {
aux();
translate([11, 61, 8]) btn();
translate([16, 61.5, 8]) earphone();
translate([75, 61.5, 8]) typec();
translate([100, 61, 8]) btn();
translate([112, 61, 8]) btn();
translate([127 / 2 - 2.5, 69.2, -1]) speaker();
}
// earphone
translate([20, 75, -5]) cube([6, 6, 10]);
// speaker
translate([45, 66.5, -4.1]) cube([10, 6, 10]);
// typec
translate([76.75, 75, -5]) cube([10, 6, 10]);
}
}
// battery
translate([15, 3, 0]) cube([82, 51, 12.8]);
translate([2, 9, 0]) cube([15, 25, 10]);
// screw
c0 = 1;
h0 = 50;
z0 = -20;
translate([3.5, 2, z0]) cylinder(h0, c0, c0);
translate([46.5, 0.5, z0]) cylinder(h0, c0, c0);
translate([109.5, 1, z0]) cylinder(h0, c0, c0);
//translate([1, 37.3, z0]) cylinder(h0, c0, c0);
//translate([115, 23, z0]) cylinder(h0, c0, c0);
translate([1, 50, z0]) cylinder(h0, c0, c0);
translate([47, 57.5, z0]) cylinder(h0, c0, c0);
translate([109.8, 56.7, z0]) cylinder(h0, c0, c0);
// screw
c1 = 1.8;
h1 = 20;
z1 = 11;
translate([3.5, 2, z1]) cylinder(h1, c1, c1);
translate([46.5, 0.5, z1]) cylinder(h1, c1, c1);
translate([109.5, 1, z1]) cylinder(h1, c1, c1);
//translate([1, 37.3, z1]) cylinder(h1, c1, c1);
//translate([115, 23, z1]) cylinder(h1, c1, c1);
translate([1, 50, z1]) cylinder(h1, c1, c1);
translate([47, 57.5, z1]) cylinder(h1, c1, c1);
translate([109.8, 56.7, z1]) cylinder(h1, c1, c1);
}
}
module upper() {
difference() {
case(3, 1, 0);
translate([-10, -10, 6.9]) cube([200, 200, 50]);
// screw
translate([0.5, 72, -2]) cylinder(10, 0.5, 0.5);
translate([45, 72, -2]) cylinder(10, 0.5, 0.5);
translate([118, 72, -2]) cylinder(10, 0.5, 0.5);
}
}
module lower() {
difference() {
case(5, 2.4, 0.6);
translate([0, 0, -3]) {
difference() {
translate([0, 0, 11]) {
difference() {
translate([0, 0, 0]) {
back(10, 1.65, 0.2);
}
translate([-10, -10, 0]) {
cube([200, 200, 10]);
}
}
}
}
}
translate([-10, -10, -12]) cube([200, 200, 16.9]);
// screw
translate([0.5, 72, 0]) cylinder(10, 0.5, 0.5);
translate([45, 72, 0]) cylinder(10, 0.5, 0.5);
translate([118, 72, 0]) cylinder(10, 0.5, 0.5);
// earphone
translate([18, 75, -3]) cube([10, 6, 10]);
// typec
translate([74, 75, -3]) cube([15.5, 6, 10]);
}
}
module shell() {
ch = 3;
cw = 1;
ce = 0;
difference() {
h = 7;
translate([-4, 50, 3]) cube([126, 27, 1]);
union() {
holder_z = 1;
holder_h = h - holder_z;
difference() {
union() {
difference() {
frame(1.6);
frame(0);
}
}
}
difference() {
translate([0, 0, h - 0.1]) frame(1.6);
translate([-10, -10, h + 1.6]) cube([200, 200, 10]);
}
aux();
}
// btn
translate([8 - 0.5, 70, 1]) cylinder(5, 2.25, 2.25);
translate([8 + 89, 70, 1]) cylinder(5, 2.25, 2.25);
translate([8 + 101, 70, 1]) cylinder(5, 2.25, 2.25);
// speaker
translate([8 + 53.5, 69.5, 1]) cylinder(5, 5, 5);
// earphone
translate([8 + 12, 60, 2]) cube([6.5, 20, 5]);
}
// support
translate([0.5, 67, 3]) cylinder(5.8, 2, 2);
translate([42, 67, 3]) cylinder(5.8, 2, 2);
translate([72, 70, 3]) cylinder(5.8, 2, 2);
translate([118, 68, 3]) cylinder(5.8, 2, 2);
// speaker
translate([8 + 53.5, 69.5, 3]) difference() {
cylinder(1.5, 6, 6);
cylinder(1.5, 5, 5);
}
}
upper();
lower();
shell();



3D列印



解焊

跳線

固定元件

走線

正面

耳機座需要小改一下,用來偵測耳機插入的狀態

耳機腳位

XT897耳機腳位

蓋上背蓋

兩顆電池

背蓋使用 M1.6x10 螺絲

耳機座末端使用插入偵測墊片

改上前蓋面板

完成




