wareium‎ > ‎

resources


It is easy to collaborate on software over the internet. Partly because there is no need to move the idea off of the computer in order to use it, but mostly because the software tools are created by the same people using them. As collaboration moves into the hardware domain not only does the idea have to be physically built (which requires more time and money) but the people directly capturing value from the idea are less able to build their own software tools. 

So the open hardware community has been attempting to use tools designed for software collaboration, with modest success. There is so much complexity in hardware projects that it often cannot be captured by existing tools. When software tools can clearly define hardware projects, they often do not allow for ongoing changes.

There are software engineers who will build tools for hardware collaboration...if the open hardware community can clearly define what they need.


What follows is an overivew of existing resources, what they have to offer, and thoughts on what needs to be available. Each subject is further subdivided.
  • Formats - the schema, or conceptual structure, that defines how the data is named and arranged
  • Applications - executable software that places a layer of abstraction between the raw format and the user
  • Portals - websites which host tools/services and possibly make them accessible without downloading

Existing Resources

Formats

  • Most of the things that can be measured already have at least one standard
    • ASME (American Society of Mechanical Engineers)
    • EverySpec (focused on military)
    • ASTM (American Society for Testing and Materials)
    • NIST (National Institute of Standards and Technology)
    • ...and many more
  • SKDB (Social Knowledge Data Base)
    • a standard packaging format
    • define the necessary toolchain
    • dependencies are critical
  • ThingDoc (like JavaDoc)
    • reads and processes comments left in .scad and .tdoc files
    • calculates bill of materials
    • generates "hyperlocal" hierarchies
  • MCAD/ECAD (Mechanical/Electrical Computer Aided Design)
    • ensures accurate data exchange
    • seems to be most useful designing circuit boards and housing in small spaces
    • uses IDF (.pdf) (Intermediate Data Format)
    • OpenSCAD MCAD library
  • TangibleBit
    • not much information on this
    • seems to be a parser that interprets text files
    • an example
  • ISO 10303
    • standard for the computer interpretable representation and exchange of product manufacturing information
    • also known as STEP (STandard for the Exchange of Product model data)
    • neutral, independent file exchange
    • ISO technical committee TC 184, sub-committee SC 4
    • AP239 schema
  • Computer graphics 
    • there are a lot of formats
  • Document markup languages
  • FreeMind
    • open format in XML
    • exchange information between mind mapping programs
  • OManual
    • open manual format by iFixit
    • file manifest, procedural information and topic section
    • expandable in the future
    • written in XML
    • incorporates multi-media
  • OProject
    • created for, and used on Open Hardware Hub
    • uses five XML files: manifest, description, downloads, parts, and steps
    • similar to OManual
  • Thing Tracker Network
    • starts with a text document based on a JSON schema
    • lists open hardware projects
    • also lists other documents that list open hardware projects
    • one document links to another and forms an ad-hoc network
  • schemas
  • Linked Data
  • key project information
    • .json formatted
    • ideally would be a standard file

Applications

Portals

  • GitHub
    • develops software like Git
    • file hosting, wiki, issue tracking, live comments
    • social networking
    • distributed version control
    • a big part of the success of open source software
  • Aligni
    • free for open source projects
    • bill of materials management
    • inventory management
    • integration with vendors and manufacturers
    • any kind of component
  • VehicleForge
    • funded by DARPA
    • will be open source after FANG design challenge
    • aims for full simulation and validation of cyber-electro-mechanical systems
    • "correct by construction"
    • social networking
    • includes several applications
    • uses XML, python, subversion
  • Open Source Ecology (OSE)
    • almost entirely machines and buildings
    • wiki and forum
    • Factor E Farm is a brick'n'mortar location where prototyping happens
  • Open Hardware Repository (OHWR)
    • run by CERN
    • states that "projects must present an interest to the community of electronics designers for experimental physics facilities"
    • project page, wiki, task tracker, scheduling tools, file hosting
  • Open Hardware Hub (OHH)
    • "we strive to be the number one place people go to connect with other builders and share their open source creations with the world"
    • not just electronics projects
    • hosts files for download
    • project page with commenting
    • forum
  • Public Laboratory (PLOTS)
    • focused on environmental science
    • project page, wiki, file hosting, mailing list
    • has an integrated store
  • Sunglass.io
    • real-time collaboration from anywhere
    • virtually collaborate on 3D assets
    • version control
    • cloud based
    • file hosting, issue tracking, previews, integrated into other applications like Solidworks
  • Sketchup
    • 3D design
    • web-based
    • low barriers to entry
    • file hosting
    • basic social networking
  • Thingiverse
    • project page, file hosting, commenting
    • customizer; web-based editing of files with parametric variables
    • basic social networking
  • GrabCAD
    • focused on 3D files by and for mechanical engineers
    • challenges sponsored by customers
    • file hosting, networking
  • Team Platform
    • web-based PLM
    • branding, share permissions, 100% search, online preview of 135 formats, full version control, remote syncing, component hierarchies, integrated quotes, team task management, convert projects to templates, workspace statistics, guest/customer accounts, integrated billing
  • Upverter
    • For designing circuit boards, managing parts, etc
    • Does simulation, verification and prototyping
    • Claims to be a superior alternative to Eagle (higher performance) and Cadence (too expensive)
    • Individual open source accounts are free; pay for privacy
    • Integrated ordering
  • Open Design Engine (ODE)
    • focused on space technology, but available for anything
    • project page, wiki, forum, file hosting, issue tracking, schedule management
  • Alchematter
    • open hardware documentation
    • modular information
    • based on things and processes
  • makeystreet
    • layered on top of GitHub
    • emphasizes a work breakdown structure and collaboration
  • DIYZER
    • built in Git repository
    • branch & patch projects
    • circuit diagramming tool
    • instruction authoring

Resource Analysis

Formats

  • There are plenty of existing standards that could be used to document open hardware projects
    • they are complicated
    • but there are a lot of free/open choices
  • It seems safe to assume that any documentation standard, old or new, will require an application to do the actual reading and writing
    • most people are not going to learn how to read/write the raw file
    • many free/open options already exist
  • Text is easier to deal with than binary but some information cannot be contained in text
    • any standard will have to accommodate both
    • binary, and some text formats, are not human understandable

Applications

  • Again, there are plenty of free/open applications available
    • even proprietary options are not necessarily expensive
    • some could be adapted or extended
  • Working within one application, or one suite, is generally problem free
    • the application may not have all of the features needed/desired
    • even software that is open has to be curated, which creates a bottleneck
    • the difficulty is an application agnostic format
  • Applications tend to work with only one kind of product
    • it becomes necessary to combine products that are totally different
    • ultimately, products like documents, images and CAD just get put in a list

Portals

  • Sites tend to focus on one subset of the open hardware community
    • Github is primarily for software
    • Thingiverse is primarily for CAD
    • Open Source Ecology is primarily for political rambling (just kidding)
  • Integrating effective social networking mechanisms is either difficult or unwanted
    • Github seems to have done well
    • Open Design Engine seems to be trying, but also seems to have siloed people into individual projects
  • At any rate, the community is all spread out across multiple large sites, multiple small sites, and multiple personal sites
    • not necessarily a bad thing
    • there is value to massing in one place
    • obligatory Github namecheck (because you can't argue with results)
    • without scale it is difficult to justify the investment required for newer/better tools

Future Resources

Formats

  • Open standards organization
  • Whole-community input
    • actively seek out and recruit non-professional community members
    • wareium's Open Hardware Community Survey is working to accomplish this goal
    • test the standard in the field, with people who have never seen it, while it is being developed
  • Human understandable
    • total openness requires as much information as possible saved in a format that an average person can read and understand
    • only the bare minimum stored in machine-readable text or binary
    • integrate translation and accessibility features
  • Resolution
    • capable of simultaneously storing information at high and low detail
    • most high detail information will probably end up in binary anyway
    • must not require high detail if the project does not require high detail
    • must not restrict future detail level based on initial choice
  • Flexibility
    • inject or remove information anywhere 
    • translate without losing information
    • tie together incompatible formats

Applications

  • Distributed version control
    • proven way to empower all developers equally; no barrier to entry
    • allows for simultaneous work in private and in public
    • easy to build a community around
  • Wiki-type engine
    • at the end of the day all of the different files will just be put in a list; there is no point in pretending they were combined into one file
    • a proven way to accumulate useful and living documentation
    • have been written in all languages and used on all platforms
    • builds off of expertise many people already have
    • easily transition between stand-alone and web-based
    • can be searched, browsed and edited by non-developers
  • Mind map
    • the information is relational, not hierarchical
    • flexible
    • easy to collaborate around
    • probably requires a GUI (Graphical User Interface)
  • Portable
    • runs on whatever operating system is available
    • either low overhead or scales to fit into available resources

Portals

  • sense of community
    • social networking is an integral component of openness
    • reward ethical standards
    • ensure attribution even for indirect contributions
  • integrate
    • hardware is inherently expensive and local
    • connect hackerspaces, educational institutions, libraries, etc
    • reach out for input and collaboration from industry
  • maximize participation
    • single point of entry for new community members
    • single point of contact for existing community
    • make it easier to "stumble across" people and things
  • host resources
    • repository
    • web-based services
    • education