微電腦 - GPD MicroPC - UART改造



雖然這台掌機的定位爲IT網絡相關應用,不過對於司徒來說,由於具備UART串口介面,實爲難得的配置,畢竟目前主流筆電已經找不到這樣的配置了,而UART是一個相當方便除錯的介面,雖然可以使用USB轉UART線,不過司徒還是喜愛原生介面,因此,考慮一段時間後,司徒還是說服自己入手這臺筆電,而爲了方便除錯,司徒特意將原本RS-232電位(正負12V)改成3.3V,原因是目前司徒接觸到的開發板都是3.3V UART,如果不改造,那司徒感覺浪費了這個介面,改造過此如下說明

拆機後的樣子


原本UART接頭


電位轉換IC


Pin1~10: GND、RI、CTS、RTS、DSR、GND、DTR、TXD、RXD、CD


司徒手畫對應腳位


電位對應腳位


可以偷電的地方(用來提供外部電壓)


裁切PCB


上排針


拉線


確認位置


置中就可以


依據電路圖跳線


終於有3.3V UART可以使用了!

P.S. Debian 10: /dev/ttyS1

要求完美的司徒決定把這個洞補起來,因爲怕有東西掉進去


司徒使用OpenSCAD畫了一個擋板

$fn = 100;
 
module meniscus(h=10, r=1){
  difference(){
    translate([r/2+0.1, r/2+0.1, 0]){
      cube([r+0.2, r+0.1, h+0.2], center=true);
    }
    cylinder(h=h+0.2, r=r, center=true);
  }
}
 
module cube_round_corner(w=10, h=10, z=10, r=1){
  difference(){
    cube([w, h, z], center=true);
    translate([(w/2)-r, (h/2)-r]){
      rotate(0){  
        meniscus(z, r);
      }
    }
    translate([(-w/2)+r, (h/2)-r]){
      rotate(90){
        meniscus(z, r);
      }
    }
    translate([(-w/2)+r, (-h/2)+r]){
      rotate(180){
        meniscus(z, r);
      }
    }
    translate([(w/2)-r, (-h/2)+r]){
      rotate(270){
        meniscus(z, r);
      }
    }
  }
}


difference(){
  union(){
    translate([0, 2.5, 0]){
      cube_round_corner(w=16, h=7, z=2, r=2.5);
    }
    cube_round_corner(w=18, h=7, z=2, r=2.5);
    translate([0, 1.25, 0]){
      cube_round_corner(w=31, h=6, z=2, r=3);
    }
  }
  
  translate([-6.5, -1.5, -1]){
    cube([14.5, 3, 2]);
  }
}

電腦預覽顯示


司徒使用3D Printer列印


完美


使用三秒膠固定


完成


為了漂亮的外觀,司徒決定重新改造,從原本公座改成母座,接腳只留下VCC、RXD、TXD、GND四根腳位


漂亮的母座


PCB固定回去


OpenSCAD

$fn = 30;
  
module meniscus(h=10, r=1){
  difference(){
    translate([r/2+0.1, r/2+0.1, 0]){
      cube([r+0.2, r+0.1, h+0.2], center=true);
    }
    cylinder(h=h+0.2, r=r, center=true);
  }
}
  
module cube_round_corner(w=10, h=10, z=10, r=1){
  difference(){
    cube([w, h, z], center=true);
    translate([(w/2)-r, (h/2)-r]){
      rotate(0){  
        meniscus(z, r);
      }
    }
    translate([(-w/2)+r, (h/2)-r]){
      rotate(90){
        meniscus(z, r);
      }
    }
    translate([(-w/2)+r, (-h/2)+r]){
      rotate(180){
        meniscus(z, r);
      }
    }
    translate([(w/2)-r, (-h/2)+r]){
      rotate(270){
        meniscus(z, r);
      }
    }
  }
}
 
 
difference(){
  union(){
    translate([0, 2.5, 0]){
      cube_round_corner(w=16, h=7, z=2, r=2.5);
    }
    cube_round_corner(w=18, h=7, z=2, r=2.5);
    translate([0, 1.25, 0]){
      cube_round_corner(w=31, h=6, z=2, r=3);
    }
  }
   
  translate([-6, 3.2, -1]){
    cube([12, 10, 2]);
  }
}

預覽


使用3D印表機列印


完美