發表文章

目前顯示的是 2019的文章

文章總列表

KCDesign 高容量濾心review

圖片
今天把車上的空氣濾網換成高容量濾心,據說可以提高進氣量,產品包裝說可以稍微提升馬力。以下是機械白癡瞎猜的評估報告,用什麼東西之前我都盡力思考後再使用 原廠的空氣濾芯阻力是經過計算的,但依舊會越用越大。想精準控制進氣量,一定得做closed loop:讀取空氣流量計控制電子節氣門,取得需要的空氣流量。用了這種機制才能*動態適應*濾心的阻力會隨時間變化。我認為引擎終究會取得他要的進氣量,所以改裝進氣系統,大概無法提高馬力 有感的是反應速度 高容量濾心的阻力天生小,進氣量變化速度會快一些。人類大概30ms(千分之一秒)就有感,產品包裝說能稍微提升馬力,我實測也覺得起步快一點,算是中肯不豪小的評價 如果原廠就是要那個阻力,讓空氣流量變化慢一點,高容量濾心就適得其反 不過渦輪增壓就是要提高進氣量,顯然是希望反應速度快些,這個邏輯也怪怪的 Anyway,當中的取捨只有VOLVO能回答;車主只能實測了 用高容量濾心的缺點 最大的缺點是麻煩,五千或一萬公里得自己動手清洗,忘記清洗更糟糕;換一般濾心技師會幫忙搞定,用這種濾心等於體力活自己做 拆裝濾芯需要專門T25螺絲頭,需要自備工具;拆裝也有風險,我就掉了一顆螺絲在引擎室找不到,還有螺絲滑牙。機械白癡就是會出包啊啊啊 高容量濾心的過濾能力一定比較差,問題是濾心該擋下什麼?樹葉,沙子,昆蟲屍體是一定要的;PM2.5大概沒辦法。寫信問KCDesign,他們認為引擎燒完的空氣更髒,空氣濾心搞搞定大顆雜物就好 這個說法我買單 用KCDesign高容量濾心的理由 省錢 高容量濾心價格大概是紙濾心兩倍,做得很強壯洗澡不壞,換兩次就回本了 每萬公里保養順便洗 濾心阻力會逐漸上升,反正都比紙濾心低,能偷懶絕不勤勞 乾式設計 K&N也有類似的產品,需要上油,過濾性能會好一點,但是油上太多可能搞壞空氣流量計 乾式設計對機械白癡比較友善,我出包的機率比較低 最後我就開始用高容量濾心了,這篇文章以後會持續追蹤使用狀態 使用紀錄 20191127 換上高容量濾心,里程30000,踩起來確實感覺反應速度快一點,經過仔細思考覺得可以繼續用下去,這是實驗的起點

VOLVO+開發故事 (11),第二次發表

圖片
新功能發表A-SS OFF & 露營模式韌體修正 XC60 ASS-OFF開發完成 VOLVO+開發故事 (8),A-SS OFF功能定義 VOLVO+開發故事 (9),A-SS OFF開發過程 Demo Video 露營模式 VOLVO+開發故事 (10),露營模式 舊車友特價升級A-SS OFF方案 付費升級A-SS OFF方案, 請填單 (選$800,升級C版,舊車友專案),特價800免運費到2019/11E,郵寄地址: 郵遞區號:30099 地址:交通大學郵局第102號信箱 收件者: QQM LAB 產品的主頁在此,內有說明書和訂購表單 致謝 感謝新竹陳Sir,提供硬體相關知識,幫我review線路圖 感謝購買的車友,如果沒人要,這個專案就沒有意義 感謝 協助測試A-SS OFF的車友 ,我不可能買一堆車做實驗,感謝你們讓專案成功 感謝Volvo in Taiwan臉書社團 & 管理員冬雪飄飄同意發布 特別感謝新竹徐Sir,這個專案因你幫忙而能完成

VOLVO+開發故事 (10),露營模式

圖片
露營模式 XC60非常適合露營,車友反映開尾門卸貨,幾分鐘後尾門就關不起來了 這個場景真的沒測過:糗了。驗屍報告如下: 車子放著,幾分鐘後CAN Bus睡著了,Volvo+也跟著睡著 Volvo+睡著後,每三秒(3000ms)起來聽10ms,有封包才會醒來 關門要落在10ms才行,機率10/3000 = 0.3%,三百次成功一次,不可能接受,修改參數看看: 改成每秒(1000ms)起來聽10ms,成功率1%,一百次成功一次,爛透了 改成每秒(1000ms)起來聽500ms,成功率50%,兩次成功一次,超耗電 改成車子睡著後,等10分鐘再睡,拿電瓶來換但不是根治(開著尾門開Party不行嗎?) 於是 我自豪的省電機制 完全崩潰了。仔細再讀MCU的手冊,找到希望: CAN收發晶片能省電的監看網路,上面有任何擾動,都能發出信號叫醒MCU MCU進入深睡時,看到CAN晶片的喚醒信號會立刻起來 於是這題解掉,省電機制也進化了 喚醒速度(<1ms)遠勝舊的機制,改善10~3000倍,一個CAN封包就搞定 待機耗電表現稍稍改善,1%電瓶能待機2年 作為負責的開發者,我會通知出問題的Volvo+修復,來回運費我會負擔 也許我也應該去露營,這樣設計就能更全面了

VOLVO+開發故事 (9),A-SS OFF開發過程

圖片
這篇我想分享A-SS OFF開發的技術細節;裡面有些Hack汽車CAN Bus的思路可以參考 先找到觸發信號 想要A-SS在 引擎發動 後關閉,那就得在CAN Bus辨識引擎發動的訊息,發動後才能對A-SS動手腳。所以我得監聽CAN Bus,在上萬筆記錄裡大海撈針 我不可能寫信和VOLVO要他們CAN Bus規格(理我才怪),更沒有現成的VOLVO CAN Bus分析工具,我只能自製工具。以下是嘗試過的方法,沒有哪招特別靈驗,一般我只能用著 堅忍不拔 的毅力撐著分析下去 我大多透過Linux和CAN Bus打交道,這裡寫程式方便些; Linux有現成的can-utils套件,裡面的candump是所有工作的源頭,可以錄下記錄檔 直接讀記錄聽起來很笨,抓手感是必要的 錄下來的記錄可以搭配grep指令快速分析 或是candump也能監看特定封包 錄下的記錄,塞到Excel分析 微軟的旗艦級軟體,可以把紀錄分門別類,統計數量,過濾,非常好用 也可以寫軟體對封包處理,進行可視化分析,找到引擎發動的信號 找到關A-SS的封包 接下來要再找怎麼讓A-SS關燈 監控CAN Bus,測試各種場景按下A-SS的按鈕的封包。下面是我嘗試過的各種組態,盯著看完全看不懂的紀錄,在裡面找規則(總不能發信問VOLVO吧) 我做過不少開發工具。下圖是生產兼開發的設備,現在有個鋁盒,檔次高多了(笑) 自製工具吃苦頭:電路板有個焊點鬆脫,導致這盒幾個月來都不穩定 外出精簡工具盒,我喜歡豐富的色彩,嬌小的體積,方便攜帶 對俄羅斯的產品逆向工程,分析封包。雖然不認識,但我覺得與他在心靈上有著高層次的交流(也許他不願意就是) 附帶一提,老婆是對的,做腸子鏡如果會流血,夜用型用就對了,洗床單很麻煩 至於有人說這世界上有棉條可以用(這個就過份了>_<) 開發韌體 & 測試 找到引擎狀態和A-SS封包,寫韌體串起來,最後的精華是短短20行code 驗證一下功能正確與否,下圖上方黃條代表引擎發動,下方黃條成功把A-SS關閉,搞定! 我不是專業做CAN Bus逆向工程,短短幾個步驟也花了幾百個鐘頭,不管怎樣,我搞定他了!現在發動汽車,我再也不用伸手去

VOLVO+開發故事 (8),A-SS OFF功能定義

圖片
遙控關閉尾門完成後,接下來要開發自動啟停(Auto Start-Stop,以下簡稱A-SS),這篇我想討論這個功能 很多車友不喜歡A-SS,他毫無疑問會多吃電瓶,多用一些啟動馬達,不少人是發動就伸手關閉;我不討厭這個功能,等90秒紅綠燈停下引擎我滿好的;但是左轉排隊有點惱人,發動延遲一下,有時候就過不去了! 對A-SS的看法大概有三種 永遠打開A-SS,不關 永遠關閉A-SS,發動立刻關 發動關閉A-SS,需要再打開 俄羅斯的產品支援A-SS OFF,他會記憶熄火前的狀態,下次發動會回存;這個邏輯正好能讓第一和第二種人滿足,但是我不喜歡:我得在熄火時關閉A-SS,反而增加腦力的負擔 經過很多訪談,我定義功能是插上去A-SS OFF, 不用記憶任何規則 。所以區分成三個版本,至於Z版最後取消了,誰會想買這片板子回去寫程式呢(笑) Z版:純硬體 A版:A-SS OFF (2019/11 Deliver) B版:Remote Tailgate (2019/6 Deliver) C版:A-SS OFF + Remote Tailgate (2019/11 Deliver) 現在回頭看,結論超簡單;不知道為何當時很糾結

VOLVO+開發故事 (7),向您介紹我的產品!!

圖片
第二片電路板拔掉不必要的設計,送去PCB打件(手焊的觀感不好)。我給產品命名為Volvo+,給車子增加新功能;絲印有我的書房名字(QQM Lab),以及我一直想養的貓 30片PCB排在一起有點密集恐懼症 試做幾個看看 真的會動沒問題 產品的主頁 在此,有興趣請參考

VOLVO+開發故事 (6),Sample Back

圖片
在我工作的地方,我們說Sample Back代表IC從晶圓廠製作完畢,封裝好,回到公司進行驗證(我們也即將進行超高強度的工作)。不管多少次,我都會仔細的看看IC,看看上面的絲印,看看他是大顆還是小顆。IC承載著團隊的智慧,眾人的努力 IC要上電才會發燙;但是設計的人,心是火熱的 ---- 我設計的PCB透過 JLCPCB製作 ,我的瑞典同事對這間讚不絕口!生產的步驟還可以及時觀看進度。這片板子到我手上,就是Sample Back 我很快把IC準備好找硬體專家解釋圖面,幫我焊接(順便問一下焊接的技巧) 接著轉念一想,就算我畫錯layout,我也想第一個知道;連板子都做了,為什麼不自己焊?我這輩子不能當外科醫生動手術,但是焊接手藝還是能鍛鍊的 拿了IC和PCB到實驗室施工,很快焊錫就糊成一團。別怕,熱風槍吹下IC,清理後再來,這片板子我練了很多次。隔天再拿一片到實驗室報到,果然又短路了。照著網路文章,沾上松香用烙鐵抖抖抖,還真的是刷過去整排針腳就搞定,一瞬間我的焊接技能晉級了 繼續加工,焊上降壓IC,CAN收發器,電阻電容。檢查電壓和clock,正常;然後接上電腦正確下載程式,MCU運作正常;接上汽車模擬器也能正確運作;最後上車測試,我沒焊上LED不能閃動,但是車門就如同預期關上了 我搞定了! IC不發燙,因為省電做得好 我是工程師,用專業做產品,以創造為榮

VOLVO+開發故事 (5),Low Power比想像得更難做

圖片
第二篇 做了樣品上車測試,結果第一晚過去了,電瓶電壓掉得比平常更低,發動後自動啟停也不反應。看起來我量到很低的電流跟成功搞定省電(low power)是兩件事(淚) 當晚我在汽車鎖定的狀態下,端詳著板子上的LED燈。他設計成有封包就會閃,而且是每0.1秒亮暗切換。我真的看到LED一閃一閃亮晶晶,想破頭不小心觸發汽車警報!我一直都沒辦法順利解除警報,最後把OBD-II電源 & 警報系統的保險絲燒壞,車子也跑出錯誤碼收場 有三個讓LED閃爍的可能 LED閃爍讓汽車警報系統送出CAN封包 汽車休眠,還是定期會有CAN封包 我的關門器插上去,把汽車喚醒,於是出現CAN封包 看來問題不單純,要找兇手了 我還是得先修車,不然OBD-II頭沒電不能做實驗。雖然還在保固期,但跑原廠和他說我開發車用電子要出保固,似乎不大妥。趕緊約新竹知名的外場(昇佑汽車)處理,老闆很專業,很快就定位到保險絲的問題,幫忙消除錯誤碼,整台車又回復正常 下圖是換下來的5A保險絲,可以看到裡面的線已經斷掉 我和老闆討論起實驗,老闆很有把握:LED閃爍不會觸發警報。所以眼下只剩兩個可能(柯南背景音樂響起) 汽車休眠,還是定期會有CAN封包 我的關門器插上去,把汽車喚醒,於是出現CAN封包 ELM327還是很好用的 從駕駛座拉出一分二延長線,一邊接ELM327,一邊接遙控關門器,有趣的地方來了 接ELM327,汽車鎖定幾分鐘後,CAN bus確實平靜無波 接ELM327和遙控關門器,ELM327和遙控關門器都會看到CAN bus有封包 每隔幾秒就有一些封包送出 所以接上遙控關門器,就會讓汽車定期被喚醒一下(然後又立刻睡下去)。所以第一晚測試,汽車不斷被喚醒,吃了不少電 驗屍報告 CAN Transceiver有根腳叫CAN-TX,這根腳收到0,就會送出CAN bus的"dominant"信號叫醒大家。所以汽車睡覺時, CAN-TX必須永遠保持是1,才不會驚擾大家 經過一長串debug,我找到錯誤的原因了 開機瞬間,CAN Transceiver還沒啟動,CAN-TX是0或1都沒關係 事件A: 打開CAN Transceiver CAN-TX pin開機預設是0

VOLVO+開發故事 (4),定義產品外觀,畫電路

圖片
在我之前,戰鬥民族俄羅斯已經有類似的產品,一共有兩個版本。第一個要拆開電動尾門後飾板,在裡面接5根線。這個版本其實非常省電,可靠,而且他有蜂鳴器可以提醒人注意。程式簡單無比,不用折騰CAN bus。缺點是安裝比較麻煩,像我就沒把握拆開自己的車,還有辦法無損再裝回去 俄羅斯人的CAN Bus產品長得像下面這樣:一個OBD-II的頭,搭配一串尾巴連接到盒子裡   安裝好以後,再把盒子藏到飾板裡面 這個外觀我就覺得不OK了:太大了!還要想辦法藏盒子,我覺得不好 我的原型只有三顆IC,最理想的尺寸是下圖ELM327的大小。我打開外殼,把裡面印刷電路板的大小用A4紙裁下來,再剪三張真實IC大小的紙片排排看 扮家家酒的結果顯示:似乎塞得下 只是藍色透明的外殼感覺有點low,我另外訂購了黑白兩色的外殼,感覺和車子比較搭 我找了身邊的硬體專家評估可能性。他們聽到信號速度只有125kHz,沒有高速信號,評語很簡單:塞得進去就結案了。問要不要幫我畫? 我寫了十幾年的韌體,一直想畫一次Layout,這個產品只有三顆IC,成功率滿高的,為什麼不試試看?KiCAD是一款免費的PCB軟體,裝了就開始動工了! 畫PCB有點像畫室內設計,需要先畫原理圖,描述IC怎麼連接,再來才是實際擺放。擺放的時候,軟體會提醒你哪根PIN要彼此相連,把所有線都接完基本上就搞定了 以前我看IC的手冊很少看封裝,現在我就得仔細核對IC的型號和封裝尺寸,畢竟畫錯了板子就是垃圾 電源的部分我有點特別留意要用高耐壓的元件,避免被突波打壞。不過這裡的耗電量只有13mA,只要降壓IC就結案了。最後挑選的元件都能承受到36v 擺放元件有點像老婆神奇的收納術,要在有限的面積塞下元件和走線。走線很難一次就滿意,多試幾次反覆修改,還真的給我畫出來了!同一顆IC我甚至留了兩個封裝的腳座,還可以選擇不同尺寸放上去(我買了兩種尺寸的CAN Transceiver,也才用得上) 我把圖印下來,放上連接器再確認尺寸。但是訂購的外殼還沒回來,不過尺寸看起來合用 幾個容易出錯的點要注意 IC接腳的定義要再看仔細,看錯了回來就是垃圾 還真的有幾顆電源元件錯了 OBD-II接頭定義再仔細核對,

VOLVO+開發故事 (3),製作開發版

圖片
要做出遙控關門器,第一步就是拿現成的零件兜出我要的功能。自己做不比外面上班,有專門的HW team搞定板子的事;遇到問題也可以找IC廠的FAE幫忙。自己做才知道團隊的偉大,校長兼撞鐘,每樣東西都得錯個幾次才挑出合用的 第一樣是MCU主板, Blue Pill ,藍色小藥丸,電子材料行都買得到STM32最小核心版。這板子多年前我就備了很多片在家裡,處理器可以跑72Mhz,64K Flash,20K SRAM記憶體,其實拿來製作關門器有點大材小用! 每次我都要挑掉上頭的power LED(因為它會吃電),把燒錄的pin腳解下重焊;拔掉板子背後5v to 3.3v轉換器避免影響電流數據。它的製作品質也是參差不齊,我手邊有一批上面的銅箔特別薄,刮到就會斷線! 再來是CAN收發晶片,這東西讓我吃足苦頭:TI的晶片我買過一批爛貨,最後總算是取得可以用的貨。後來火大又額外備了好幾種。下面那顆IC上面印著淡淡的230,正是折磨我的那顆 NXP TJA1050, 5v Microchip MCP2551, 5v TI SN65HVD230, 3.3v TI SN65HVD231, 3.3v Maxim MAX3051, 3.3v 最後是電源轉換IC,將12v降壓到3.3v。以我的耗電量(<20mA),用LDO降壓就好。最早我用AMS1117/3.3製作原型,不過他的靜態耗電是5mA! 前一篇 文章我把耗電壓到0.385mA都還想繼續省電,這顆IC顯然不合我用 另外朋友幫我申請了台灣IC設計公司的樣片,他的待機耗電只有15uA,不愧是台灣精品!如果你仔細看照片,會發現我故意把商標和型號遮住(他們沒公開放在網路上)另外我還用過DC-to-DC的模組,這東西的基礎耗電量更大,40mA,可調電壓很好用,但是小電流不好用 已經把IC解焊準備換TI LM2936 這顆是DC to DC module 零件東拼西湊,有些零件不適合,也有零件是壞的,還有不小心燒掛,所以我陸續做了4片原型。第一片我用洞洞板做,想說體積小,可以上車直接用。 事實是這片很快就燒了。 第二片我決定用麵包板做,上面備了5v和3.3v的電源,也有3.3v/ 5v兩種CAN收發器的插座。用麵包版最省事是不用焊接,測試那堆C

VOLVO+開發故事 (2),關於省電機制

圖片
前一篇 的電路板被我燒壞以後,我又陸續做了幾片,燒的燒壞的壞,功能穩定後,終於打到魔王:省電機制。Volvo XC60使用AGM或EFB電瓶,一顆大概$7000,很多車友大概兩年一換,相當於一年燒$3500,實在不便宜。鉛電池盡量充飽比較不會壞。 玩具會搞壞電瓶,我是絕對不敢用的! 關門器只有電子元件,運作電量只有13mA,對汽車的發電機九牛一毛,只要控制處理器運作速度,讓他夠用就好(不消耗沒必要的功率)。汽車熄火後,CAN bus還會再運作幾分鐘才停下。 關門器會隨著汽車一起進入待機模式, 開始對電瓶吸血 ,所以待機電流做得越小越好! 我評量省電的標準是 1%電瓶電量能支持多久 ,這個單位比起安培更有物理意義:時間越長,代表越省電,搞壞電池的機率就越低!下圖是我的原車電瓶,EFB 70Ah。這篇文章1%電瓶電量是70Ah*1% = 0.7Ah 靜態耗電(2019/05) 經過一系列努力(工程師時間,這裡就跳過了),當前已經把待機電流做到0.385mA,這表示1%電瓶能支持75天,兩個半月。鉛電池的自放電率大概一個月3%,做到比自放電還低兩倍就很堪用了 0.7Ah = (0.385*0.001)A *24h* 75.75days Low Power機制 Low Power需要參考實際汽車的CAN bus行為,設計喚醒和睡覺的機制。下圖是真實的CAN封包,左邊括號的單位是秒,汽車醒著時,幾乎每0.001秒(1ms)都有封包進來 我設計的喚醒機制是:只要MCU睡醒,就監聽CAN bus 10ms,這段時間起碼能框到5個封包。只要收到任何有效的封包,就保持喚醒20秒 如果沒收到任何封包,代表車子還在睡。人去解鎖車門,打開尾門,放東西,一系列操作大概也要10秒。MCU每次睡3秒,只要人有操作汽車都來得及喚醒 根據上面兩個參數(待機3000ms,喚醒10ms),計算加權耗電量為0.385mA 3000ms待機,電流0.345mA 10ms一般接收,電流12.430mA 加權平均 (3000*0.345 + 10*12.430) / (3010) = 0.385mA = 385uA 進一步分析待機電流的組成如下,可以看到TI的CAN收發器占了95% TI CAN TRANSCEIVER,