free-hardware-designs.html (26722B)
1 <!--#include virtual="/server/header.html" --> 2 <!-- Parent-Version: 1.96 --> 3 <!-- This page is derived from /server/standards/boilerplate.html --> 4 <!--#set var="TAGS" value="essays aboutfs extension" --> 5 <!--#set var="DISABLE_TOP_ADDENDUM" value="yes" --> 6 <title>Free Hardware and Free Hardware Designs 7 - GNU Project - Free Software Foundation</title> 8 <!--#include virtual="/philosophy/po/free-hardware-designs.translist" --> 9 <!--#include virtual="/server/banner.html" --> 10 <!--#include virtual="/philosophy/ph-breadcrumb.html" --> 11 <!--GNUN: OUT-OF-DATE NOTICE--> 12 <!--#include virtual="/server/top-addendum.html" --> 13 <div class="article reduced-width"> 14 <h2>Free Hardware and Free Hardware Designs</h2> 15 16 <address class="byline">by <a href="https://www.stallman.org/">Richard 17 Stallman</a></address> 18 19 <div class="introduction"> 20 <p>To what extent do the ideas of free software extend to hardware? 21 Is it a moral obligation to make our hardware designs free, just as it 22 is to make our software free? Does maintaining our freedom require 23 rejecting hardware made from nonfree designs?</p> 24 </div> 25 26 <h3 id="definitions">Definitions</h3> 27 28 <p><em>Free software</em> is a matter of freedom, not price; broadly 29 speaking, it means that users are free to use the software and to copy 30 and redistribute the software, with or without changes. More 31 precisely, the definition is formulated in terms of <a 32 href="/philosophy/free-sw.html">the four essential freedoms</a>. To 33 emphasize that “free”refers to freedom, not price, we 34 often use the French or Spanish word “libre” along with 35 “free.”</p> 36 37 <p>Applying the same concept directly to hardware, <em>free 38 hardware</em> means hardware that users are free to use and to copy 39 and redistribute with or without changes. However, there are no 40 copiers for hardware, aside from keys, DNA, and plastic objects' 41 exterior shapes. Most hardware is made by fabrication from some sort 42 of design. The design comes before the hardware.</p> 43 44 <p>Thus, the concept we really need is that of a <em>free hardware 45 design</em>. That's simple: it means a design that permits users to 46 use the design (i.e., fabricate hardware from it) and to copy and 47 redistribute it, with or without changes. The design must provide the 48 same four freedoms that define free software.</p> 49 50 <p>Then we can refer to hardware made from a free design as 51 “free hardware,” but “free-design hardware” is 52 a clearer term since it avoids possible misunderstanding.</p> 53 54 <p>People first encountering the idea of free software often think it 55 means you can get a copy gratis. Many free programs are available for 56 zero price, since it costs you nothing to download your own copy, but 57 that's not what “free” means here. (In fact, some spyware 58 programs such as <a 59 href="/proprietary/proprietary-surveillance.html">Flash 60 Player and Angry Birds</a> are gratis although they are not free.) 61 Saying “libre” along with “free” helps clarify 62 the point.</p> 63 64 <p>For hardware, this confusion tends to go in the other direction; 65 hardware costs money to produce, so commercially made hardware won't 66 be gratis (unless it is a loss-leader or a tie-in), but that does not 67 prevent its design from being free/libre. Things you make in your own 68 3D printer can be quite cheap to make, but not exactly gratis since 69 the raw materials will typically cost something. In ethical terms, the 70 freedom issue trumps the price issue totally, since a device that 71 denies freedom to its users is worth less than nothing.</p> 72 73 <p>We can use the term “libre hardware” as a concise 74 equivalent for “hardware made from a free (libre) 75 design.”</p> 76 77 <p>The terms “open hardware” and “open source 78 hardware” are used by some with the same concrete meaning as 79 “free-design hardware,” but those terms downplay freedom as an 80 issue. They were derived from the term “open source 81 software,” which refers more or less to free software but <a 82 href="/philosophy/open-source-misses-the-point.html">without talking 83 about freedom or presenting the issue as a matter of right or 84 wrong</a>. To underline the importance of freedom, we make a point of 85 referring to freedom whenever it is pertinent; since 86 “open” fails to do that, let's not substitute it for 87 “free.”</p> 88 89 <h3 id="hw-and-sw">Hardware and Software</h3> 90 91 <p>Hardware and software are fundamentally different. A program, even 92 in compiled executable form, is a collection of data which can be 93 interpreted as instructions for a computer. Like any other digital 94 work, it can be copied and changed using a computer. A copy of a 95 program has no inherent preferred physical form or embodiment.</p> 96 97 <p>By contrast, hardware is a physical structure and its physicality 98 is crucial. While the hardware's design might be represented as data, 99 in some cases even as a program, the design is not the hardware. A 100 design for a CPU can't execute a program. You won't get very far 101 trying to type on a design for a keyboard or display pixels on a 102 design for a screen.</p> 103 104 <p>Furthermore, while you can use a computer to modify or copy the 105 hardware design, a computer can't convert the design into the physical 106 structure it describes. That requires fabrication equipment.</p> 107 108 <h3 id="boundary">The Boundary between Hardware and Software</h3> 109 110 <p>What is the boundary, in digital devices, between hardware and 111 software? It follows from the definitions. Software is the 112 operational part of a device that can be copied and changed in a 113 computer; hardware is the operational part that can't be. This is the 114 right way to make the distinction because it relates to the practical 115 consequences.</p> 116 117 <p>There is a gray area between hardware and software that contains 118 firmware that <em>can</em> be upgraded or replaced, but is not meant 119 ever to be upgraded or replaced once the product is sold. Or perhaps 120 it is possible but unusual, or the manufacturer can release a 121 replacement but you can't. In conceptual terms, the gray area is 122 rather narrow. In practice, it is important because many products 123 fall in it. Indeed, nowadays keyboards, cameras, disk drives and USB 124 memories typically contain an embedded nonfree program that could be 125 replaced by the manufacturer.</p> 126 127 <p>We can treat that firmware as hardware with a small stretch, but we 128 must not try to have it both ways. If we treat certain firmware as 129 impossible to change, since it is not realistically possible to avoid 130 that firmware, we must also treat it as impossible to change when we 131 might wish it could be changed. That entails refusing all upgrades or 132 patches to that firmware. That is what I do, and this is the reason I 133 do it. Until we can get computers with entirely free firmware, there 134 is no feasible way to do better than this.</p> 135 136 <p>Some have said that preinstalled firmware programs and 137 Field-Programmable Gate Array chips (FPGAs) “blur the boundary 138 between hardware and software,” but I think that is a 139 misinterpretation of the facts. Firmware that is installed during use 140 is software; firmware that is delivered inside the device and can't be 141 changed is software by nature, but we can treat it as if it were a 142 circuit. As for FPGAs, the FPGA itself is hardware, but the gate 143 pattern that is loaded into the FPGA is a kind of firmware.</p> 144 145 <p>Running free gate patterns on FPGAs could potentially be a useful 146 method for making digital devices that are free at the circuit level. 147 However, to make FPGAs usable in the free world, we need free 148 development tools for them. The obstacle is that the format of the 149 gate pattern file that gets loaded into the FPGA is secret. For many 150 years there was no model of FPGA for which those files could be 151 produced without nonfree (proprietary) tools.</p> 152 153 <p>As of 2015, free software tools are available for <a 154 href="https://web.archive.org/web/20211106213411/http://www.clifford.at/icestorm/"> 155 programming the Lattice 156 iCE40</a>, a common model of FPGA, from input written in a hardware 157 description language (HDL). It is also possible to compile C programs 158 and run them on the Xilinx Spartan 6 LX9 FPGA 159 with <a href="https://github.com/Wolfgang-Spraul/fpgatools">free 160 tools</a>, but those do not support HDL input. We recommend that you 161 reject other FPGA models until they too are supported by free 162 tools.</p> 163 164 <p>As for the HDL code itself, it can act as software (when it is run 165 on an emulator or loaded into an FPGA) or as a hardware design (when 166 it is realized in immutable silicon or a circuit board).</p> 167 168 <h3 id="ethical-3d-printers">The Ethical Question for 3D Printers</h3> 169 170 <p>Ethically, <a 171 href="/philosophy/free-software-even-more-important.html">software 172 must be free</a>; a nonfree program is an injustice. Should we take 173 the same view for hardware designs?</p> 174 175 <p>We certainly should, in the fields that 3D printing (or, more 176 generally, any sort of personal fabrication) can handle. Printer 177 patterns to make a useful, practical object (i.e., functional rather 178 than decorative) <em>must</em> be free because they are works made for 179 practical use. Users deserve control over these works, just as they 180 deserve control over the software they use. Distributing a nonfree 181 functional object design is as wrong as distributing a nonfree 182 program.</p> 183 184 <p>Be careful to choose 3D printers that work with exclusively free 185 software; the Free Software Foundation <a 186 href="https://ryf.fsf.org/">endorses such 187 printers</a>. Some 3D printers are made from free hardware designs, 188 but <a 189 href="https://www.cnet.com/tech/tech-industry/pulling-back-from-open-source-hardware-makerbot-angers-some-adherents/">Makerbot's 190 hardware designs are nonfree</a>.</p> 191 192 <h3 id="reject-nonfree">Must We Reject Nonfree Digital Hardware?</h3> 193 194 <p>Is a nonfree digital <a href="#fn1">[1]</a> hardware design an 195 injustice? Must we, for our freedom's sake, reject all digital 196 hardware made from nonfree designs, as we must reject nonfree 197 software?</p> 198 199 <p>Due to the conceptual parallel between hardware designs and 200 software source code, many hardware hackers are quick to condemn 201 nonfree hardware designs just like nonfree software. I disagree 202 because the circumstances for hardware and software are different.</p> 203 204 <p>Present-day chip and board fabrication technology resembles the 205 printing press: it lends itself to mass production in a factory. It 206 is more like copying books in 1950 than like copying software 207 today.</p> 208 209 <p>Freedom to copy and change software is an ethical imperative 210 because those activities are feasible for those who use software: the 211 equipment that enables you to use the software (a computer) is also 212 sufficient to copy and change it. Today's mobile computers are too 213 weak to be good for this, but anyone can find a computer that's 214 powerful enough.</p> 215 216 <p>Moreover, a computer suffices to download and run a version changed 217 by someone else who knows how, even if you are not a programmer. 218 Indeed, nonprogrammers download software and run it every day. This 219 is why free software makes a real difference to nonprogrammers.</p> 220 221 <p>How much of this applies to hardware? Not everyone who can use 222 digital hardware knows how to change a circuit design, or a chip 223 design, but anyone who has a PC has the equipment needed to do so. 224 Thus far, hardware is parallel to software, but next comes the big 225 difference.</p> 226 227 <p>You can't build and run a circuit design or a chip design in your 228 computer. Constructing a big circuit is a lot of painstaking work, 229 and that's once you have the circuit board. Fabricating a chip is not 230 feasible for individuals today; only mass production can make them 231 cheap enough. With today's hardware technology, users can't download 232 and run a modified version of a widely used digital hardware design, 233 as they could run a modified version of a widely used program. 234 Thus, the four freedoms don't give users today collective control over 235 a hardware design as they give users collective control over a 236 program. That's where the reasoning showing that all software must be 237 free fails to apply to today's hardware technology.</p> 238 239 <p>In 1983 there was no free operating system, but it was clear that 240 if we had one, we could immediately use it and get software freedom. 241 All that was missing was the code for one.</p> 242 243 <p>In 2014, if we had a free design for a CPU chip suitable for a PC, 244 mass-produced chips made from that design would not give us the same 245 freedom in the hardware domain. If we're going to buy a product mass 246 produced in a factory, this dependence on the factory causes most of 247 the same problems as a nonfree design. For free designs to give us 248 hardware freedom, we need future fabrication technology.</p> 249 250 <p>We can envision a future in which our personal fabricators can make 251 chips, and our robots can assemble and solder them together with 252 transformers, switches, keys, displays, fans and so on. In that 253 future we will all make our own computers (and fabricators and 254 robots), and we will all be able to take advantage of modified designs 255 made by those who know hardware. The arguments for rejecting nonfree 256 software will then apply to nonfree hardware designs too.</p> 257 258 <p>That future is years away, at least. In the meantime, there is no 259 need to reject hardware with nonfree designs on principle.</p> 260 261 <h3 id="free-designs">We Need Free Digital Hardware Designs</h3> 262 263 <p>Although we need not reject digital hardware made from nonfree 264 designs in today's circumstances, we need to develop free designs and 265 should use them when feasible. They provide advantages today, and in 266 the future they may be the only way to use free software.</p> 267 268 <p>Free hardware designs offer practical advantages. Multiple 269 companies can fabricate one, which reduces dependence on a single 270 vendor. Groups can arrange to fabricate them in quantity. Having 271 circuit diagrams or HDL code makes it possible to study the design to 272 look for errors or malicious functionalities (it is known that the NSA 273 has procured malicious weaknesses in some computing hardware). 274 Furthermore, free designs can serve as building blocks to design 275 computers and other complex devices, whose specs will be published and 276 which will have fewer parts that could be used against us.</p> 277 278 <p>Free hardware designs may become usable for some parts of our 279 computers and networks, and for embedded systems, before we are able 280 to make entire computers this way.</p> 281 282 <p>Free hardware designs may become essential even before we can 283 fabricate the hardware personally, if they become the only way to 284 avoid nonfree software. As common commercial hardware is increasingly 285 designed to subjugate users, it becomes increasingly incompatible with 286 free software, because of secret specifications and requirements for 287 code to be signed by someone other than you. Cell phone modem chips 288 and even some graphics accelerators already require firmware to be 289 signed by the manufacturer. Any program in your computer, that 290 someone else is allowed to change but you're not, is an instrument of 291 unjust power over you; hardware that imposes that requirement is 292 malicious hardware. In the case of cell phone modem chips, all the 293 models now available are malicious.</p> 294 295 <p>Some day, free-design digital hardware may be the only platform 296 that permits running a free system at all. Let us aim to have the 297 necessary free digital designs before then, and hope that we have the 298 means to fabricate them cheaply enough for all users.</p> 299 300 <p>If you design hardware, please make your designs free. If you use 301 hardware, please join in urging and pressuring companies to make 302 hardware designs free.</p> 303 304 <h3 id="levels-of-design">Levels of Design</h3> 305 306 <p>Software has levels of implementation; a package might include 307 libraries, commands and scripts, for instance. But these levels don't 308 make a significant difference for software freedom because it is 309 feasible to make all the levels free. Designing components of a 310 program is the same sort of work as designing the code that combines 311 them; likewise, building the components from source is the same sort 312 of operation as building the combined program from source. To make 313 the whole thing free simply requires continuing the work until we have 314 done the whole job.</p> 315 316 <p>Therefore, we insist that a program be free at all levels. For a 317 program to qualify as free, every line of the source code that 318 composes it must be free, so that you can rebuild the program out of 319 free source code alone.</p> 320 321 <p>Physical objects, by contrast, are often built out of components 322 that are designed and build in a different kind of factory. For 323 instance, a computer is made from chips, but designing (or 324 fabricating) chips is very different from designing (or fabricating) 325 the computer out of chips.</p> 326 327 <p>Thus, we need to distinguish <em>levels</em> in the design of a 328 digital product (and maybe some other kinds of products). The circuit 329 that connects the chips is one level; each chip's design is another 330 level. In an FPGA, the interconnection of primitive cells is one 331 level, while the primitive cells themselves are another level. In the 332 ideal future we will want the design be free at all levels. Under 333 present circumstances, just making one level free is a significant 334 advance.</p> 335 336 <p>However, if a design at one level combines free and nonfree 337 parts—for example, a “free” HDL circuit that 338 incorporates proprietary “soft cores”—we must 339 conclude that the design as a whole is nonfree at that level. 340 Likewise for nonfree “wizards” or “macros,” if 341 they specify part of the interconnections of chips or programmably 342 connected parts of chips. The free parts may be a step towards the 343 future goal of a free design, but reaching that goal entails replacing 344 the nonfree parts. They can never be admissible in the free 345 world.</p> 346 347 <h3 id="licenses">Licenses and Copyright for Free Hardware Designs</h3> 348 349 <p>You make a hardware design free by releasing it under a free 350 license. We recommend using the GNU General Public License, version 3 351 or later. We designed GPL version 3 with a view to such use.</p> 352 353 <p>Copyleft on circuits, and on nondecorative object shapes, doesn't 354 go as far as one might suppose. The copyright on these designs only 355 applies to the way the design is drawn or written. Copyleft is a way 356 of using copyright law, so its effect carries only as far as copyright 357 law carries.</p> 358 359 <p>For instance, a circuit, as a topology, cannot be copyrighted (and 360 therefore cannot be copylefted). Definitions of circuits written in 361 HDL can be copyrighted (and therefore copylefted), but the copyleft 362 covers only the details of expression of the HDL code, not the circuit 363 topology it generates. Likewise, a drawing or layout of a circuit can 364 be copyrighted, so it can be copylefted, but this only covers the 365 drawing or layout, not the circuit topology. Anyone can legally draw 366 the same circuit topology in a different-looking way, or write a 367 different HDL definition that produces the same circuit.</p> 368 369 <p>Copyright doesn't cover physical circuits, so when people build 370 instances of the circuit, the design's license will have no legal 371 effect on what they do with the devices they have built.</p> 372 373 <p>For drawings of objects, and 3D printer models, copyright doesn't 374 cover making a different drawing of the same purely functional object 375 shape. It also doesn't cover the functional physical objects made 376 from the drawing. As far as copyright is concerned, everyone is free 377 to make them and use them (and that's a freedom we need very much). 378 In the US, copyright does not cover the functional aspects that the 379 design describes, but <a 380 href="https://www.copyright.gov/title17/92chap13.html#1301">does cover decorative 381 aspects</a>. When one object has decorative aspects and functional 382 aspects, you get into tricky ground <a href="#fn2">[2]</a>.</p> 383 384 <p>All this may be true in your country as well, or it may not. 385 Before producing objects commercially or in quantity, you should 386 consult a local lawyer. Copyright is not the only issue you need to 387 be concerned with. You might be attacked using patents, most likely 388 held by entities that had nothing to do with making the design you're 389 using, and there may be other legal issues as well.</p> 390 391 <p>Keep in mind that copyright law and patent law are totally 392 different. It is a mistake to suppose that they have anything in 393 common. This is why the term “<a 394 href="/philosophy/not-ipr.html">intellectual property</a>” is 395 pure confusion and should be totally rejected.</p> 396 397 <h3 id="promoting">Promoting Free Hardware Designs Through Repositories</h3> 398 399 <p>The most effective way to push for published hardware designs to be 400 free is through rules in the repositories where they are published. 401 Repository operators should place the freedom of the people who will 402 use the designs above the preferences of people who make the designs. 403 This means requiring designs of useful objects to be free, as a 404 condition for posting them.</p> 405 406 <p>For decorative objects, that argument does not apply, so we don't 407 have to insist they must be free. However, we should insist that they 408 be sharable. Thus, a repository that handles both decorative object 409 models and functional ones should have an appropriate license policy 410 for each category.</p> 411 412 <p>For digital designs, I suggest that the repository insist on GNU 413 GPL v3-or-later, Apache 2.0, or CC0. For functional 3D designs, the 414 repository should ask the design's author to choose one of four 415 licenses: GNU GPL v3-or-later, Apache 2.0, CC BY-SA, CC BY or CC0. For 416 decorative designs, it should suggest GNU GPL v3-or-later, Apache 2.0, CC0, 417 or any of the CC licenses.</p> 418 419 <p>The repository should require all designs to be published as source 420 code, and source code in secret formats usable only by proprietary 421 design programs is not really adequate. For a 3D model, the <a 422 href="https://en.wikipedia.org/wiki/STL_%28file_format%29">STL 423 format</a> is not the preferred format for changing the design and 424 thus is not source code, so the repository should not accept it, 425 except perhaps accompanying real source code.</p> 426 427 <p>There is no reason to choose one single format for the source code 428 of hardware designs, but source formats that cannot yet be handled 429 with free software should be accepted reluctantly at best.</p> 430 431 <h3 id="warranties">Free Hardware Designs and Warranties</h3> 432 433 <p>In general, the authors of free hardware designs have no moral 434 obligation to offer a warranty to those that fabricate the design. 435 This is a different issue from the sale of physical hardware, which 436 ought to come with a warranty from the seller and/or the 437 manufacturer.</p> 438 439 <h3 id="conclusion">Conclusion</h3> 440 441 <p>We already have suitable licenses to make our hardware designs 442 free. What we need is to recognize as a community that this is what 443 we should do and to insist on free designs when we fabricate objects 444 ourselves.</p> 445 <div class="column-limit"></div> 446 447 <h3 class="footnote">Footnotes</h3> 448 <ol> 449 <li id="fn1">As used here, “digital hardware” includes 450 hardware with some analog circuits and components in addition to 451 digital ones.</li> 452 453 <li id="fn2">An article by Public Knowledge gives useful information 454 about this <a 455 href="https://web.archive.org/web/20211203021432/https://www.publicknowledge.org/assets/uploads/documents/3_Steps_for_Licensing_Your_3D_Printed_Stuff.pdf"> 456 complexity</a>, for the US, though it falls into the common mistake of 457 using the bogus concept of “intellectual property” and the 458 propaganda term “<a 459 href="/philosophy/words-to-avoid.html#Protection">protection</a>.”</li> 460 </ol> 461 462 <!-- rms: I deleted the links because of Wired's announced 463 anti-ad-block system --> 464 <div class="infobox extra" role="complementary"> 465 <hr /> 466 <p>Most of this article was published in two parts in <cite>Wired</cite> in 467 March 2015.</p> 468 </div> 469 </div> 470 471 </div><!-- for id="content", starts in the include above --> 472 <!--#include virtual="/server/footer.html" --> 473 <div id="footer" role="contentinfo"> 474 <div class="unprintable"> 475 476 <p>Please send general FSF & GNU inquiries to 477 <a href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. 478 There are also <a href="/contact/">other ways to contact</a> 479 the FSF. Broken links and other corrections or suggestions can be sent 480 to <a href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p> 481 482 <p><!-- TRANSLATORS: Ignore the original text in this paragraph, 483 replace it with the translation of these two: 484 485 We work hard and do our best to provide accurate, good quality 486 translations. However, we are not exempt from imperfection. 487 Please send your comments and general suggestions in this regard 488 to <a href="mailto:web-translators@gnu.org"> 489 <web-translators@gnu.org></a>.</p> 490 491 <p>For information on coordinating and contributing translations of 492 our web pages, see <a 493 href="/server/standards/README.translations.html">Translations 494 README</a>. --> 495 Please see the <a 496 href="/server/standards/README.translations.html">Translations 497 README</a> for information on coordinating and contributing translations 498 of this article.</p> 499 </div> 500 501 <!-- Regarding copyright, in general, standalone pages (as opposed to 502 files generated as part of manuals) on the GNU web server should 503 be under CC BY-ND 4.0. Please do NOT change or remove this 504 without talking with the webmasters or licensing team first. 505 Please make sure the copyright date is consistent with the 506 document. For web pages, it is ok to list just the latest year the 507 document was modified, or published. 508 509 If you wish to list earlier years, that is ok too. 510 Either "2001, 2002, 2003" or "2001-2003" are ok for specifying 511 years, as long as each year in the range is in fact a copyrightable 512 year, i.e., a year in which the document was published (including 513 being publicly visible on the web or in a revision control system). 514 515 There is more detail about copyright years in the GNU Maintainers 516 Information document, www.gnu.org/prep/maintain. --> 517 518 <p>Copyright © 2015, 2021, 2022 Richard Stallman</p> 519 520 <p>This page is licensed under a <a rel="license" 521 href="http://creativecommons.org/licenses/by-nd/4.0/">Creative 522 Commons Attribution-NoDerivatives 4.0 International License</a>.</p> 523 524 <!--#include virtual="/server/bottom-notes.html" --> 525 526 <p class="unprintable">Updated: 527 <!-- timestamp start --> 528 $Date: 2022/03/05 13:35:13 $ 529 <!-- timestamp end --> 530 </p> 531 </div> 532 </div><!-- for class="inner", starts in the banner include --> 533 </body> 534 </html>