四個問題 + 一份實踐指南,讓你全面了解開源硬體

本文為開源硬體實驗室原創文章,轉載此文章請註明出處(開源硬體實驗室知乎專欄)。

一、開源硬體是什麼?

詳細的說明可以看開源硬體協會的定義,簡單來說就是一個硬體項目的原始設計文件是公開的,所有人都可以根據這些資料學習、修改、製作。

二、開源硬體有什麼好處?

1. 公開原始設計文件,如果這個項目很好,就會很快聚集一幫粉絲,來幫助完善這個項目,加速市場成熟。

2. 開源硬體能減少重複發明輪子的勞動力,讓後來者能站在前人的肩膀上,站的更高。

三、有哪些優秀的開源硬體項目?

1. Arduino,開源硬體上的一個里程碑,其後衍生出了許許多多的各種硬體。

2. 以GRBL為核心的開源3D印表機項目RepRap,推動了桌面3D印表機的普及。

四、開源怎麼保護權益?

以Arduino的做法就是,雖然原始設計文件都公開,別人可以直接那他的文件生產,但是未經允許,不能直接使用Arduino的商標。

另外Arduino的電路板油墨,專門配置了一種自己的顏色,和市面上其他類似電路板區別開來,這樣能讓用戶方便識別官方出品。

開源項目最重要的是品牌和社區,別人能山寨你的硬體,但是山寨不了你的社區,官方出品的硬體可以高定價,用來維持開源項目的維持和發展。

不是所有人拿到原始設計文件就能馬上量產的,用戶能用你的資料製作一個DEMO,但是要到量產,還需要下很多功夫在裡面,包括了供應鏈的優化、工藝的改進、量產的一致性,穩定性、配套資料、售後服務等等。

下面是StarLab創客社區的一次創客沙龍里,創客之父——米奇奧特曼和帥天龍大律師給我們分享的一些他們關於開源和版權的思考。

StarLab創客沙龍 | 奧特曼和帥天龍分享對開源的觀點 - 騰訊視頻 https://v.qq.com/x/page/x0375u6klrt.html

視頻中,奧特曼主要分享了他的TV-B-Gone項目的經歷,當他看到很多使用他的項目製作TV-B-Gone時獲得的成就感遠遠大於金錢。

題外話:帥天龍律師,在2016年6月21日,突發心梗,年僅50歲,英年早逝。我們工作之餘,應該多愛惜一點自己的身體。

五、一個開源硬體項目的組成部分

當你希望發布開源硬體項目時,你應該考慮共享這些文件。你不需要發布所有的文件,但是你共享的越多,社區就會收益越多,而社區選擇你的項目的可能性就越大。

概述/簡介

開源硬體項目應包括一份硬體特性和目的的整體概述,撰寫時儘可能地將讀者當作普通觀眾。也就是說,在講述技術細節之前應解釋項目是什麼及其目的。一張好的照片或效果圖都會有很大幫助。

原始設計文件

這些文件是你將用來更改硬體設計的原始源文件。共享這些文件的行為是開源硬體的核心範例。

理想情況下,你應使用一個免費的開源軟體應用程序設計開源硬體項目,以最大限度地方便他人查看和編輯。然而,硬體設計文件往往是在專有程序中創建並以專有格式存儲。共享這些原始設計文件仍然是必要的,它們構成了硬體的原始「源代碼」。人們要對你的項目做修改時就需要這些文件.

盡量將你的設計文件做的易讀。有邏輯地將他們組織好;解釋一下複雜部分;說明任何特殊的製造程序,等等

原始設計文件示例如下:

  • 2D繪圖或計算機輔助設計(CAD )文件,例如那些按原始格式保存的用於描述二維激光切割,乙烯基切割,或噴水切割部分的文件。格式示例:Corel Draw(.cdr 格式), Inkscape(.svg格式),Adobe Illustrator(.ai格式)及AutoCAD中保存的本地2D設計文件
  • 3D設計可用於3D列印,鍛造,注塑,擠出,機械加工等。

    格式示例:SolidWorks (.sldprt,.sldasm格式)及Rhino等軟體中保存的本地文件
  • 電路板CAD文件,例如截圖文件(原理圖)及PCB(布局)設計文件。格式示例:Eagle, Altium, KiCad及 gEDA等軟體中保存的本地文件
  • 對CAD文件進行本地修改需要的零件庫(符號,封裝,緊固件等)
  • 其他按原始設計格式保存的技術圖紙,若設備生產需要的話。
  • 其他可能會在設備上使用並包含在OSHW發布中的圖片,如按原始設計格式保存的徽章或裝飾覆蓋圖。

若這個設計最初是按另一種格式創建的,即使這個文件可能通常會被視為輔助設計文件(如在下面部分中討論的),原始格式下的最初設計仍可被視為「原始設計文件」。

特殊情況下其他格式的文件仍能被視為原始設計文件的例子包括:

  • 給加工件手編的G-code。(G-code)
  • 手繪封裝的掃描圖。(JPEG格式)
  • 詳細的手工製作樹脂壓鑄模具的3D掃描圖。(STL格式)
  • 在MS Paint中繪製的蝕刻單面電路板的掩膜圖案。(PNG格式)

輔助設計文件

除了原始設計文件,用其他更易使用的格式共享您的設計往往也是很有幫助的。例如,開源一個CAD設計的最佳範例不僅是共享其本地文件格式的設計,而且還共享一系列其他CAD程序能打開和導入的互換或導出格式。

向希望了解(不一定會更改)設計的終端用戶提供現成的視圖輸出也是有幫助的。例如,可以是一個電路板示意圖的PDF文檔或者一個3D設計的STL文件。這些輔助設計文件使人們能夠學習硬體的設計,有時甚至可以生產它,即使他們沒能使用特定的專有軟體套件。但是,請注意,我們從來不允許用輔助設計文件替代原始設計文件。

輔助設計文件的示例包括:

  • 2D導出或互換格式的2D圖紙或CAD文件。格式示例:DXF,SVG
  • 易於查看的2D導出格式的2D圖紙或CAD文件。格式示例:PDF,JPEG,PNG等(如果可能的話,首選矢量格式而不是點陣圖格式)
  • 3D導出或互換格式的3D設計或CAD文件。格式示例:STEP,IGES
  • 生產就緒導出格式的2D或3D設計。格式示例:G-code,STEP-NC,STL,AMF
  • 導出或互換格式的電路板設計文件。 格式示例:EDIF,Open JSON
  • 生產就緒格式的電路板設計 格式示例:Gerber RS-274X, Excellon
  • 其他原始格式(常見可讀的格式,如PDF)的技術圖紙,若需要用於設備生產的話。
  • 其他圖片,例如,儀錶板的不同顏色皮膚。

物料清單

雖然有可能從設計文件推斷一個硬體是由哪些零件組成的,但是提供一個單獨的物料清單還是很重要的。 它可以是一個電子表格(如CSV,XLS,Google Doc),或者簡單地一個文本文件且在每行列出一個零件。 如果您的CAD軟體包集成了或附加了物料清單管理工具,也是一個不錯的選擇。(例子包括SolidWorks中的內置工具和Eagle的bom-ex)。物料清單中實用的部分包括零件編號,供應商,成本,以及對每個零件的簡短說明。 要使用戶很容易判斷出物料清單里的哪些項目對應設計文件中的哪個零件:在這兩個地方使用匹配的參考標誌,提供一個圖表顯示哪個零件在哪,或以其他方式闡述對應關係。

軟體及固件

你必須共享操作硬體所需的任何代碼或固件。 這樣其他人才能將它與他們的硬體一起使用或與對你的硬體進行修改。 將創建你的軟體所需的流程以文檔形式歸檔包括到任何相關(如第三方庫或工具)的鏈接。 此外,提供軟體的狀況概述也是很有幫助的(如「stable」或「beta」或「barely-working hack」)。

圖片

圖片可幫助人們了解你的項目是什麼,以及如何進行組裝。 最好能夠發布多個角度的照片和組裝各階段的照片。如果沒有照片,發布設計的3D效果圖也是一個很好的選擇。 無論用哪種方式,提供標題或文字來闡述每個圖片所展示的內容和圖片為何有用的原因都是不錯的。

使用說明及其他說明

除了設計文件本身,還有很多說明對於幫助他人製作或修改你的硬體是非常寶貴的;

***製作硬體*** 為了幫助他人製作及修改你的硬體設計,你應該提供一份說明包括你的設計文件到工作的物理硬體。作為說明的一部分,提供硬體的部件/零件數據錶鏈接並且列出組裝所需的工具是非常有幫助的。如果設計需要專門的工具,請說明可以在哪裡獲取到。

***使用硬體*** 一旦有人製作了硬體,他們就需要知道如何使用它。請提供說明解釋它能做什麼,如何設置它,以及如何與它進行互動。

***設計原理*** 如果有人想修改你的設計,他們會想知道為什麼它是這樣的。請說明硬體設計的總體規劃以及你做了具體選擇的原因。

請記住,這些說明的讀者所接受的專業知識或訓練可能與你不一樣。儘可能地把讀者當作一個普通觀眾,並檢查你的說明中是否含有行業術語,從而明確你所希望用戶了解的內容,等等。

這些說明可以是各種不同的格式,例如wiki ,文本文件,google文檔或PDF。但是請記住,修改了你的硬體設計的人可能也需要修改你的說明,所以最好是提供原始可編輯的文件而不只是如PDF的輸出格式。

六、開源硬體流程及範例

設計你的硬體

如果你打算開源一個特定的硬體,在其設計中遵循某些最佳範例將使他人更容易製作和修改硬體:

  • 儘可能地使用免費的開源軟體設計(CAD)工具。如果不能,盡量使用低成本和/或通用的軟體包。
  • 使用標準且通用的組件,材料和生產工藝。盡量避免使用不能提供給單個客戶的零件或那些需要昂貴安裝成本的工藝。

託管你的設計文件

共享文件的一個基本途徑是在你的網站上保存一個zip文件。雖然這算是一個很好的開始,但是很難讓別人跟上你的進度或作出改善。

我們建議使用在線源代碼存儲庫(比如GitHub, Gitorious ,或Google Code)來存儲你的開源硬體項目。應該儘可能地對所有文件(包括設計,物料清單,組裝說明,代碼等)進行版本控制。如果你想公開開發硬體,使用在線存儲庫可以很容易地將你隨時所做的更改發布到你的文件。或者,您可以發布與硬體發行相關的更新。

大多數在線存儲庫還包括問題跟蹤器,這對保持追蹤軟體里的錯誤和將來的升級是很好的方式,而且其他人可以查看和評論。有些在線存儲庫還有wiki,可以很好地用來記錄你的項目。

除了在線存儲庫,你還可以使用在線CAD工具(如Upverter)開發你的項目。或者,你可以在Thingiverse這樣的網站上共享你的文件。

授權你的設計

雖然授權是一個複雜的問題,但是使用授權是一個示意他人如何能夠且應該利用你的項目的重要途徑。給你的硬體設計文件及其他文件明確應用了開源授權,就表明別人可以複製並修改它們。當授權你的項目時,請記住有人複製了你的硬體可能也想要利用你的軟體,使用說明和其他文檔,你應該也要授權你項目的這些其他元素而不僅僅是硬體設計文件。

需要注意的是版權(大多數授權的基礎)並不適用於硬體本身,只適用於它的設計文件以及構成「原創作品」(美國法律)的元素,而不適用於相關功能或創意。儘管硬體設計文件使用的基於版權的授權究竟受到哪些法律保護還是沒有完全清楚明確 — 但這些授權作為一個說明希望他人如何使用你的設計的方式仍然很重要。

主要有兩大類開源或免費軟體授權:公共版權授權要求衍生項目按相同的條款授權;而許可證允許他人進行修改而不能按開源硬體發布。需要注意的是,開源硬體的定義規定你必須允許修改和重複使用你的設計做商業用途,所以不要使用無衍生或非商業條款的授權。

**流行的公共版權授權包括**:

  • Creative Commons Attribution, Share-Alike (BY-SA)
  • GNU General Public License (GPL)
  • 硬體專用授權: TAPR OHL, CERN OHL

**許可證包括**:

  • FreeBSD license
  • MIT license
  • Creative Commons Attribution (BY)

在版本控制庫中包含授權的副本,在每個文件中附加一份聲明或至少添加一份README說明重大更改的作者和年份以及授權是很好的作法。

分銷開源硬體

  • 在硬體產品或者包裝/文檔上提供設計源文件的鏈接;
  • 讓人們可以很容易從網站上找到產品的設計源文件;
  • 標註硬體版本號或發布日期以使人們能對產品實物與其設計文件的相應版本進行匹配。;
  • 在您的硬體上使用開源硬體標識。要清楚地標識出該標誌適用於硬體上的哪些零件(即哪些零件是開源的)。
  • 總之,清楚地闡述產品的哪些部件是開源的以及哪些不是。
  • 沒有共享設計文件之前不要描述硬體是開源的。如果計劃以後將產品開源,那麼請明確說明以後將是開源產品。

基於他人的開源硬體

  • 尊重他人的商標。
  • 請對一個硬體做有效的改進,而不是簡單地賣它的複製品。
  • 與原始硬體開發者分享你的修改和改進。

下一期文章,我們來講講現在有哪些開源硬體,作為初學者要怎麼選用?歡迎關注開源硬體實驗室知乎專欄,分享開源硬體使用過程中的新得和體會。

推薦閱讀:

如何評價 Windows 10 提供對 Raspberry Pi 2 的支持?
程序員如何看懂開源硬體(Arduino、Raspberry pi..)原理圖?
如何看待"硬體復興"?
Intel的Galileo和 Arduino以及Raspberry Pi有什麼區別?
開源 Sensor Beacon 焊樣現場還原

TAG:开源硬件 | 开源许可证 | 山寨 |