2021年3月14日 星期日

Raspberry Pi 3 B+ 無法啟動之修復紀錄 Non-Bootable Raspberry Pi 3 B+ Recovery

約莫N年前,因緣際會下,在 Openlab.Taipei 收到了光華某廠商捐贈的 RMA 產品:一台開不了機的 Raspberry Pi 3 B+ 。當下因工作繁忙又沒太大的需求,所以就先認養收著。

最近發覺自己在架設 RTL-SDR 站台時,需要效能相對強大的 Raspberry Pi 3 以後版本,才足夠流暢的處理 SDR 降頻出來的寬頻 IF 訊號串流,因此開始想到手邊還有這塊開不了機的 RPi 3 B+ ,決定買個正常的 PMIC 來修復看看。

其實幾年前就一直有在追蹤相關的討論串,不能開機的症狀大概就是 3V3 的輸出短路到地。但當時的時空受限於 MXL7704-R3 這顆 PMIC 是 MXL7704 的特殊版本,取得不易而作罷。

幸好隨著光陰的飛逝,問題自然的開始收斂。

到了 2019 的下半年,開始有人在網站上販賣 Raspberry Pi 3 用的這顆 MXL7704-R3 ,另一個討論串開始傳出捷報 ,Youtube 上也出現了更換紀錄的影片,於是這幾天我也買了幾顆來試試。

更換之前先拍照留念

2019年4月23日 星期二

Linux Shell Scripting: 符號連結檔案的存在判斷 Link Exist or Linked Target Exist ?


最近因為工作上的需求,接觸到不少 Linux Shell 相關的系統應用,其中遇到了一個蠻值得注意的細節,就是在使用 test 指令 (或是中括號 [] ) 來製作判斷可能為符號連結 (symbolic link) 的位置,該『檔名』是否存在時,若只單獨考慮 exist (-e) 或是 is link (-L) 判斷條件是不夠的,必須同時使用兩者才能正確判斷。

為了釐清兩者的關係,在這裡做了個小實驗
## 新增一個普通檔案 "normalfile123"
$ touch "normalfile123"
$ if [ -e "normalfile123" ]; then echo "TRUE"; else echo "FALSE"; fi
TRUE
$ if [ -L "normalfile123" ]; then echo "TRUE"; else echo "FALSE"; fi
FALSE

## 不存在的檔名 "notexisting1234" 
$ if [ -e "notexisting1234" ]; then echo "TRUE"; else echo "FALSE"; fi
FALSE
$ if [ -L "notexisting1234" ]; then echo "TRUE"; else echo "FALSE"; fi
FALSE

## 建立指向 "normalfile123" 的符號連結 "link123"
$ ln -s "link123" "normalfile123"
$ if [ -e "link123" ]; then echo "TRUE"; else echo "FALSE"; fi
TRUE
$ if [ -L "link123"  ]; then echo "TRUE"; else echo "FALSE"; fi
TRUE

## 刪除 "normalfile123" ;使符號連結 "link123" 成為無效連結
$ rm "normalfile123"
$ if [ -e "link123" ]; then echo "TRUE"; else echo "FALSE"; fi
FALSE
$ if [ -L "link123"  ]; then echo "TRUE"; else echo "FALSE"; fi
TRUE

實驗中得到的結果:

存在的普通檔案 不存在的檔名 有效符號連結 無效符號連結
-e True False True False
-L False False True True
-e or -L True False True True

結果其實不難推測得到,在讀寫 Symbolic Link 類型的檔案時,系統預設是直接看到連結指向的檔案而非連結本身,就連在使用 C++ 的標準函式庫 fopen() 讀寫檔案時也一樣,因此在開發上若遇到符號連結務必多加留意。

參考資料:

2018年8月5日 星期日

RTL8188 迷你無線網卡在 Raspberry Pi Raspbian 上開啟 AP-Mode 紀錄

今天心血來潮,把之前在某機器人王國清倉大拍賣時撿到的 Raspberry Pi Model B+ 接上在Openlab.Taipei 撿到的 netcore NW337 迷你無線網卡,打算來架個實驗 AP 。



這張 netcore NW337 迷你無線網卡是使用瑞昱的 RTL8188EUS 晶片,之前用過 RTL8188CU 這顆晶片的小網卡,或許是因為比較早期的產品,相容性比這顆 RTL8188EUS 好許多,不過隨著作業系統的更新,現在的 Windows 10 和最新版的 Raspbian ( Kernel 4.14.52+ ) 也支援 RTL8188EUS Station Mode的隨插即用。因為螃蟹卡公司的官方網站在產品資訊的提供相當有限,所以 RTL8188 系列的詳細差異列表可以到 devWiki 查閱。

2018年4月28日 星期六

AVR-TransistorTester: LCR-T4 元件測試儀電源改造紀錄

AVR-TransistorTester是一個由德國原作Markus Frejek 在 mikrocontroller.net上發表,目前由  Karl-Heinz Kübbeler 繼續維護的開放專案,主要在於使用 MCU 搭配精簡的電路做出多功能、精確的電子元件測試儀。除了能測試基本的被動元件之外,更可以測試出多種電晶體、二極體等主動元件的通用參數。官方的程式碼中還附有頻率產生器、 PWM 脈波產生器、計頻器、 UART 輸出或是電壓表等炫砲功能。我最推崇的是官方韌體最新版本中的電容量測校正功能,經過校正之後,在pF等級的電容測試,測到的可以精準落在高精度溫度補償電容的誤差範圍內,對於做通訊類的實驗是非常實用的。不僅如此,官方的文件更是詳盡到幾乎每種測試功能都有錯誤率分析的統計圖表,測試流程圖與等校模型應有盡有。軟體的部分使用make建置,方便使用者對針對自己的硬體進行客製化,程式碼中註解也很完整,讓初次使用的新手可以很快速的入門。

2016年9月8日 星期四

[Blender] 好用的 Network Renderer

上次這麼瘋狂的用Blender也是N年之前的事了,更新到最新的2.7發現新功能多了好多,以前覺得很強但是還在 Testing 的 addons 現在也都進入 Stable 版。今天就來介紹這個以前就覺得很屌的功能:
Network Renderer
用起來相當簡單,主要功能就是把另一台或多台能跑 Blender 的電腦當作 Render Farm 服務,

2015年5月21日 星期四

簡易伺服馬達測試器555 Timer Servo Tester

工欲善其事,必先利其器。

今年年初,Openlab.Taipei啟動了口丁蛋蛋 (honki's egg) 計畫,展出的場地正好在高雄兒美館。身為一位來自高雄的熱血小志工,就有義務在蛋蛋們有難的時候進行一個即刻救援的任務…

2015年5月11日 星期一

我的74系列二進位石英鐘 74XX Based Crystal Binary Clock

去年(大一下)的時候,因緣際會下加入了班上同學創的小小讀書會。原本一開始聚會方向大致在分享自己高中時代學習的心路歷程,後來系主任告訴我們學校有鼓勵學生進行自主學習計畫的比賽。報名後才開始找到了讀書會的新目標:
製作一個二進制鐘