Creation IDs are used to digitally identify unique creations of many forms. The term creation is intentionally vague to encompass anything digitally identifiable. Creation IDs can be used in any system that needs a standard creation identifier such as BLE device discovery, WiFi device identification or FPGA peripheral identification.
Creation IDs are administered by a person or organization who has been assigned a creator ID. They may or may not actually be the creator of the creation. Creator IDs are 32-bit numbers administered in this repository and are paired with 32-bit creation ids that are administered by the creator. These are similar to USB vendor ID (VID) and product ID (PID) but open source and freely available.
Creator IDs are 32-bit numbers that designate who created something. In practice, this may also designate a third-party who is maintaining IDs on the behalf of the creator. For example, creator IDs automatically encompass all 16-bit USB vendor IDs by prepending the 16-bit 0x0000 prefix. Creator and creation IDs use _ to separate the 16-bit halves to make these prefixes more obvious. We also have the 0x000C prefix for community administered creation IDs for creators with an existing USB VID.
Make a change to this README and make a PR to get a new creator ID for your own creations. If you have your own USB VID already, add an entry with the 0x0000 prefix and link to the location of your creation IDs. If not, choose a unique 32-bit number that doesn't start with 0x00 because that is reserved for other ID subsets.
Make a change to this README and make a PR to document it. If the creator has a USB VID assigned to them, then add an entry with the 0x000C prefix to denote that it is community administered. If not, choose a unique 32-bit number that doesn't start with 0x00 because that is reserved for other ID subsets. The complete list of USB Vendor IDs is available from the USB Developers page under "Valid USB Vendor ID Numbers". We're ok using obsolete VIDs as well because they are still unique.
It is often the case that community creation ids will also be administered in this repo as well. If that's what you want to do, then also add a creations/<creator>.md file in your PR. You can also create a separate place to administer creation ids so that you control who can assign them. We don't care as long as the creation id is unique and makes that clear.
Creation ID allocation is left up to the creator. However, here are some guidelines for consistency.
- If the creator has a USB VID and the creation is a product with a USB PID, then use the
0x0000prefix plus the USB PID for the creation id. - If the creation doesn't use USB or doesn't have a unique USB PID, then use a prefix that isn't
0x0000(to reserve it for USB PIDs.) - Use the 16-bit prefix to group creations. For example, Espressif development boards usually have a chip specific prefix such as
0x00C3.
0x000C_15BAOlimex0x000C_2886Seeed Studio0x000C_303AEspressif0x000C_303BAI Thinker
0x0101_1ACE01 Space
0x0D10_C000VIDI0x0D10_D000Hardkernel0x0DB6_ED6EDebug Edge
0x1010_1010DFRobot0x1011_1011WeAct0x1015_1015M5Stack0x1136_1206cezerio0x1337_1337Mark Olsson (k0d)0x148E_173CHeltec0x1876_0000Spotpear0x1923_1923Deneyap0x1988_1988Wemos0x1996_0000Silabs0x1998_1000Maker Go0x1999_1000Sunton0x1A00_0000Makerfabs0x1BBB_0000Waveshare0x1C33_0000Freenove0x1C34_0000April_Brother0x1C35_0000Elecrow
0x4496_E3F4SQFMI0x4D69_0000Oak Dev Tech0x4F58_3097Oxocard
0x6d44_6576MicroDev
0x7001_0001Bruce Segal (skieast)
0xB0B0_0000Unexpected Maker0xBA00_0000Espruino / Bangle.js
0xC3C3_0000LILYGO