[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Debconf-discuss] Discuss: where do you draw the line of "Open" in open hardware?



On 27/06/16 15:05, Bernelle Verster wrote:
> Hi all
>
> If you are interested in open hardware, please indulge me.
> The context:
> On our trip to the Honingklip brewery, Andy and I got talking about
> open hardware, a big mutual passion. The conversation continued all
> through the trip.
>
> I would like to write this up as a blogpost, and a draft is copied below.
>
> This email is mainly for Andy, Marc, Mark and Graham to give input,
> but why not build on the discussion with the whole of DebConf?
>
> The purpose of the blogpost is not to be decisive on an opinion, but
> to give an idea of the tensions at play.
>
> If there are other posts out there about this topic, I'd appreciate
> links to them too.
>
> (There is also a panel discussion on Saturday 2 July where we can pick
> up on this more formally)
>
> best regards
> Bernelle
>
> ======
>
> DebConf16: Where do you draw the line of "Open" in open hardware?
>
> pre-amble - great beer at Honingklip, a brewery that is a good example
> of open hardware. But what does this mean?
>
> At the most basic level, it is about what is available. What is
> manufactured, and how available are the units once these are not
> manufactured commercially anymore?
>
> There are different levels to consider, including the platform used
> and the chip architecture.
> The CPU (central processing unit), I/O (input/output)
> The thing that it boots from, e.g. an ARM64 tech alpha instruction set.
>
> The questions to ask when you need to determine your own level of "openness":
> - At what level are you willing to buy it?
> - Can I reproduce this at home? (And this is relative, comes back to
> the question of, at what point am I willing to buy (some of) the
> components?
>
> Now the units are running stuff we can't even see, it is too complex to analyze.
>
> What does it mean to be open?
> - To be accessible, hackable
> - To give a 'How To' manual with the hardware, to say what they did,
> and how the user could do the same thing, explaining how it works.
> - Open is about the idea that you can at least try to reproduce something.
> - To share your design, and let other people comment on that design.
>
> But, to implement the design, you need money. Hardware is different
> from software in it's materiality. Software scales exponentially: once
> you made something, you can sell every new unit with a very small
> increase in cost. Hardware scales linearly. While the overall cost of
> design per unit reduces with the more units you produce, there is
> still a cost associated with each new unit produced. There is material
> cost, and cost of production, time on a machine, electricity, labour,
> shipping... There is a difference between 'telling' people something,
> and 'giving' people something.
>
> A challenge to hardware is that it is more and more integrated, and if
> you want to do a thing, you need to pay someone to do it for you.
>
> We then chatted about what to do about this. Appropriate level of
> complexity is one clear argument.
>
> There was talk about overspecification. The metaphor of music cassette
> tapes were used: they are no longer made, but they may be appropriate
> for simple applications.
> You need, for example, a 74 series TTL to control temperature, an
> Arduino is already much too complicated.
>
> There was something about the difficulty of achieving/maintaining open
> hardware standards, this was a more fuzzy second argument.
>
> On the way back from Honingklip we spoke about that hardware always
> forces a compromise. You can work, for example, on C++, but you still
> need to rely on something else to compile it.
>

So in an ideal world...

Hardware would be Open and Free (libre).

-  Everything from the ground up is available and free to access, use,
change as you see fit. 
-  Licence is permissive and inclusive
-  A/The community is able to refine materials, produce components,
Silicon wafer, package it, fabricate boards, populate boards, write and
debug any firmware, and then move into the very bottom of the open
source software stack....


Of course even if this IS the case is it feasible to manufacture
everything yourself?  certainly not.  First of all this is a very  broad
subject area.  Forget SoCs and VLSI for the moment the materials science
just to understand and build simple passive components and
semiconductors (a simple diode for example) is one serious curve to
climb, and what you'll end up with is something that is very clunky,
unreliable and physically much larger than anything that you can
purchase today.  never mind the plant and facilities you will need - and
yes truly open means that that should be open as well....   "Turtles all
the way down".

Sure you could perhaps build this yourself, but would anyone ever do
this?  Individual people MAY be interested in some or many of the steps
(hopefully we can build diverse enough communities to be able to do this
before we need to re-bootstrap humanity).  Now we are looking at a
comparable stack to that of open software, i.e. it is very rare that the
person interested in maintaining and developing a compiler is the SAME
person that is interested in adding to the GUI design.  But as a
community, together we can do everything we want.

Moving on... 

For your chosen open project, will everything you want to produce be
available in the open?  Perhaps not, almost certainly not - Does anyone
reading this know where I can buy an Open Hardware processor comparable
in performance to an ARM7TDMI?  really you know of one?  hold on, 
that's not open.  It is an open implementation of a processor in VHDL,
but I am still stuck, because I can't buy an open hardware FPGA onto
which I can load your VHDL processor 'simulate'.

Over time these things may come, personally I am not that interested in
building and selling open hardware components, I doubt there is a
sustainable business model for this either (remember unlike software
every COPY of your product is something physical and has an associated
cost), but for an interesting project understanding some of the steps
and perhaps being able to reproduce them myself IS something I could be
interested enough in to have a go.


I think I have successfully argued that whilst it would be idyllic to be
able to produce everything in a product/project/thing entirely open,
today that is not really feasible.  Perhaps we can look at what is?

manufacturing our own components isn't really viable (with perhaps the
exception of wound inductors).  passive devices are however a commodity,
there are many different manufactures of resistors and capacitors (in
$dayjob I personally do not specify manufactures or part numbers for my
designs - instead I specify a component footprint, and the important
parts of the component specification.  i.e. I might specify a 100nF
capacitor as follows:
     100nF <= 20% (20% or better tolerance to the 200nF value)
      X5R (the dialectic I want)
      => 6V (working voltage of at least 6V)
      0402 (physical size)

This is fine for simple passive components, and true as well for most
desecrate semiconductors; although finding suitable FETs to match
particular characteristics / specification yields far fewer compatible
devices to choose from.

Simple logic / LSI / VLSI devices are also pretty simple to select from
generic supply (there are many companies making 4000 series CMOS logic
devices for example).  However the trend within electronics has been
more towards specialist devices, more and more integration of
functionality within a single package.  and even where there is
commoditisation and standardisation for example in SDRAM the world is
moving so fast that whole swaths of technology are made obsolete after
shorter and shorter production life as the manufactures are forever
competing to lower their production costs whilst improving headline
stats (i.e. more storage on the Chip and faster access time - although
this may need more work in terms of error correction)

Move up to a SoC and you will probably only ever have once vendor device
because the competition even if it has the same headline specification
is not pin compatible, and requires differant support logic / power
supplies etc.  Pic a new wonder SoC for a mobile phone for example and
it is likly to be available for perhaps 2 years and then only to a
specially selected customer base (i.e. one with a proven trading history
who will buy litteraly millions of these devices)

Perhaps these aren't the correct devices to use for your projects if long
term availability is what you want.  Then again, if you need a 3D GPU
and a full Linux distribution (such as Debian) on your system then your
choice is very limited... 

I do Open hardware  , what do I consider is enough - for now?

All electronics start from a schematic (the circuit diagram).  This
absolutely must be made available (imo this must be available in the
native CAD package used, along with all libraries used - NOT just a
pdf!  Good practice would be to provide your calculations and rationale
for your design decisions and component selection (a mailing list?)
Next is the PCB design.  Just like the circuit diagram this is essential
(imo this again should be in the native CAD package used and not just
Gerber files)  again follow the good practice of providing rationale for
design decisions (controlled impedance, design rules followed, flight
times, etc)
Accompany this with the full Bill of Materials (including suppliers and
alternative parts)
A suitable Licence.

Ideally you will use an open source CAD package - KyCAD is pretty damn
good and I recommend it as a first port of call.  I do use it for a lot
of my smaller boards but I am happy to use commercial, non free CAD for
more complex designs (think tablet PCs or mobile phones).

At this point we are on par with of older FLOSS cousins, work we have
done is available to be picked up and used by anyone.  Where Open
Hardware differs is at this stage we need to spend some money and
fabricate PCBs, populate them and test them.     Hopefully your project
has attracted enough of a community that you can perhaps share the cost
of your PCB fabrication (perhaps it is simple enough that you can do it
yourself) and assembly (again this may be something that you could do
dependant upon the component technologies you have selected)

Personally I try to select parts that are likely to be available for the
foreseeable useful life of the project, but expecting a mobile phone SoC
to be available 3 years from now is just unrealistic - and I would only
select that sort of thing given no other choice).


I hope that this perhaps better outlines where I draw the boundaries
between the ideal world and the one we find ourselves in.

/Andy


Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: