CircuitData-Language

An open language for communicating Printed Circuits Specifications, Requirements and Capabilities

View the Project on GitHub CircuitData/CircuitData-Language

CircuitData Language

An open language for communicating specifications on a printed circuit (mainly Printed Circuit Boards - PCBs). Can be used to interchange information on the specification (fabrication data only), a profile (requirements and default values when exchanging data) and capabilities (the production facility capabilities of a supplier). It can also be used to exchange a material list or other needed related data.

How to use this documentation

Version

Current version is 1.0. This should stated in every section directly below the “circuitdata” element in an element called “version”.

Based on the Open Trade Transfer Package format (OTTP)

Open Trade Transfer Package defines a structure on how the information is to be passed in either JSON or XML format. Printed Circuit data should be placed within an element called “circuitdata” and also contain a version. “circuitdata” objects can be placed within the following sub-objects:

JSON schema

JSON schema is available in at its own site (schema.circuitdata.org) in version folders. The schema allows you to validate your OTTP file syntax. An example of how this is done in Ruby with the json-schema GEM below:

ottp = '{
  "open_trade_transfer_package": {
    "version": 1.0,
    "information": {
      "company": "Elmatica as",
      "created": "2017-04-03T08:00:00Z"
    },
    "profiles": {
      "restricted": {
        "circuitdata": {
          "generic": {
            "version": 1.0,
            "country_of_origin": {
              "nato_member": false
            }
          }
        }
      }
    }
  }
}'

puts JSON::Validator.validate!('http://schema.circuitdata.org/v1/ottp_circuitdata_schema.json', ottp)

About types and how to use them

Under each element and subelement, you’ll find the type that is expected there. These are to be understood as this:

The custom elements

As described in the Open Trade Transfer Package project, a file can contain an element called custom. This element is where you place description of colors, materials or additional elements. Custom objects are always listed in an array.

Colors

Describing colors is part of the OTTP project. You’ll find the documentation here

Contributing to the project

We really appreciate all involvement. If you feel that there are additions or changes needed to the language, please start out by raising the issue in the CircuitData Forum. Then clone this repo and branch out before you make your changes. Please use a branch name that explains what you want to add. When you are done and have tested it, make a Pull Request in this GitHub project. It is the board of CircuitData that decided when code is to merged with the master and thus become part of the language.