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.
0x0000 prefix plus the USB PID for the creation id.0x0000 (to reserve it for USB PIDs.)0x00C3.0x0000_xxxx - Reserved for USB VID IDs and official allocations0x000C_xxxx - Reserved for USB VID IDs administered by the community0x000C_15BA Olimex0x000C_2886 Seeed Studio0x000C_303A Espressif0x000C_303B AI Thinker0x00xx_xxxx - Reserved for future ID subsets0x01xx_xxxx0x0101_1ACE 01 Space0x0Dxx_xxxx0x0D10_C000 VIDI0x0D10_D000 Hardkernel0x0DB6_ED6E Debug Edge0x1xxx_xxxx0x1010_1010 DFRobot0x1011_1011 WeAct0x1015_1015 M5Stack0x1136_1206 cezerio0x1337_1337 Mark Olsson (k0d)0x148E_173C Heltec0x1876_0000 Spotpear0x1923_1923 Deneyap0x1988_1988 Wemos0x1996_0000 Silabs0x1998_1000 Maker Go0x1999_1000 Sunton0x1A00_0000 Makerfabs0x1BBB_0000 Waveshare0x1C33_0000 Freenove0x1C34_0000 April_Brother0x1C35_0000 Elecrow0x4xxx_xxxx0x4496_E3F4 SQFMI0x4D69_0000 Oak Dev Tech0x4F58_3097 Oxocard0x6xxx_xxxx0x6d44_6576 MicroDev0x7xxx_xxxx0x7001_0001 Bruce Segal (skieast)0xBxxx_xxxx0xB0B0_0000 Unexpected Maker0xBA00_0000 Espruino / Bangle.js0xCxxx_xxxx0xC3C3_0000 LILYGO0xDxxx_xxxx