0. Workshop

1. Audience Survey

Questions

Q1. How many people here have released a OSHW project? (x1/y)

Q2. How many of you have certified any of those projects? (x2/x1)

Q3. Have any of you certified multiple projects? (x3/x2)

Q4. How many of you have re-certified updated releases of certified projects? (x4/x2)

Q5. Has anyone tried modifying or building on top of existing projects? (x5/y)

Summary

example projects

  • led prototype board light-on wsd 20 clone stm32 - up and running
  • halloween vending machine build earrings for rabbi
  • rc2014

notes

  • diffs are useless unless you pay for a service
  • openscad - jump to microelectronics
  • challenge getting into digital space
  • "structural diffing" - see diff tastic
  • need for name-spacing; unambiguous means of referencing component instances
    • need a means of mapping dof schema to other tools (e.g., KiCad, FreeCAD)
      • this enables referencing data (s.a., part description) in DOF to enhance understanding data in other tools (e.g., what is the purpose of capacitor C2 in board layout)
      • this enables deeper referencing within instructions (e.g., where to place capacitor on a board based on board layout within assembly instructions)
    • any instance of a component in DOF needs to have a (fully qualified?) singular definitive name; this should be one-to-one and onto
      • investigate connection between structural diffing and mapping to other tools in user stories
  • need context as to why a design was changed (e.g., a capacitor was swapped out or removed), or any design decision
    • this is a kind of annotation capability that should
      • annotate any element in a project (e.g., components, aspects of components, steps in instructions, any data structure)
      • include ability to leave commentary
      • be able to point to one or more element(s) that it is annotating
      • be able to point to one or more "source" element(s), s.a.,
        • a Bib reference
        • another annotation
        • an "analysis artifact"
      • be supported in m30ml

notes

  • newer process makes more sense
  • fairly seamless

notes

  • 5 certified

notes

  • one and done for most

notes

  • (example projects from audience)
  • (specific experiences from audience, "what project(s) did you make/modify/reuse?")

2. There Must Be a Better Way

1. Core Capabilities

These are the core needs of the OSHW community when sharing, communicating, and collaborating on OSHW projects

1. OSHW Definition

OSHW projects should be developed and shared in accordance to the OSHW Definition.1

1: https://www.oshwa.org/definition/

2. OSHW Certification

OSHW projects should be developed and shared in accordance to the OSHW Certification process.1

1: https://certification.oshwa.org/process.html

3. OSHW Should Be like OSS

OSHW should be like Open Source Software (OSS) to the greatest degree possible (e.g. sharing, development, licensing).

4. OSHW Development Should Leverage Modern Software Development Techniques

OSHW development should leverage modern software development techniques to improve the OSHW developer experience.

examples

  • package management
  • DevOps (e.g., DevSecOps, DocOps)
  • mono-repos
  • design patterns (e.g., model-view-controller)
  • semantic versioning

2. Pillars

Classes of data that need to be captured 1. Core Capabilities

1. BOM Data

Bill of Materials (BOM) data: list of components and counts covering all parts and tools which must be procured to build the project

2. Instructions

  • Assembly Instructions: complete list of instructions to build the project from its procured parts
  • Operating Instructions: complete list of instructions to use the project safely and effectively

3. Supporting Data

e.g. design files,

  • CAD models (e.g., Mechanical CAD files, PCB Gerbers files)
  • Specifications (e.g., operating temperature range)
  • Interface definitions (e.g., board pinout)
  • Schematics (e.g., Circuit boards)

3. Developing User Stories

See also User Story template.

User Stories

As a OSHW User, I want to Build an OSHW Project, so that I can Reproduce the OSHW Project

related to 1. Core Capabilities: 1. OSHW Definition

notes

  • build using alternative components for (end-of-life) availability

As a OSHW Developer, I want to Organize OSHW Project, so that I can Conform to DRY Principle

related to 1. Core Capabilities: 4. OSHW Development Should Leverage Modern Software Development Techniques

notes

  • need for bridging knowledge gap between industry standard and open-source practices; no mentoring programs / methodology
    • while the DOF team agrees this is a challenge within the OSHW community, it is outside the scope of DOF (packaging a OSHW project to be shareable/modifiable/reproducible)
  • lintable data structure
    • interpret "lintable" to mean the content in the model is verifiable (no missing fields, orphan elements, etc.)
    • LinkML "validate" capability implements these kinds of tests
    • a.k.a., expose ability to validate content

Users

notes

  • user who builds OSHW projects for their own use

notes

  • user who develops/maintains OSHW project(s)

Use Cases

List of actions to be performed by a user

Rationales

List of objectives/reasons