Import 19 official Espressif modules, replace easyeda2kicad ESP32-S31
Imports ESP32-C3/C5/C6/H2/S2/S3 MINI/WROOM/WROVER/SOLO modules and
ESP8684-WROOM-02C/U from the official espressif/kicad-libraries repo,
each with symbol + footprint + 3D model. Skipped bare SoC/die symbols
(no footprint of their own) and DevKit board symbols (not components
you'd place on your own board).
ESP32-S31-WROOM-3 is replaced: the previous easyeda2kicad.py export had
a fatal unquoted-URL syntax bug (fixed in an earlier commit, but the
official symbol/footprint/3D model is simply better -- real chip is
brand new, Espressif's own library already supports it).
All 19 footprints referenced their 3D model via ${KICAD8_3RD_PARTY} /
${KICAD9_3RD_PARTY} (KiCad Plugin & Content Manager install path, not
defined since this library isn't PCM-installed). Repointed to
${KIPRJMOD}/3dmodels/microcontrollers/ using the STEP files copied in
alongside each part, so every model resolves without PCM.
This commit is contained in:
@@ -0,0 +1,530 @@
|
||||
(footprint "ESP32-C5-WROOM-1"
|
||||
(version 20241229)
|
||||
(generator "pcbnew")
|
||||
(generator_version "9.0")
|
||||
(layer "F.Cu")
|
||||
(descr "ESP32-C5-WROOM-1: Module that supports 2.4 and 5 GHz dual-band Wi-Fi 6 (802.11ax), Bluetooth ® 5 (LE), Zigbee, and Thread (802.15.4) Built around ESP32-C5 series of SoCs, 32-bit RISC-V single-core microprocessor Flash up to 32 MB Up to 22 GPIOs, rich set of peripherals")
|
||||
(tags "esp32-c5")
|
||||
(property "Reference" "REF**"
|
||||
(at 0 -15 0)
|
||||
(layer "F.SilkS")
|
||||
(uuid "6a494ce2-3e36-47fb-b812-2b7bd4826e62")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Value" "ESP32-C5-WROOM-1"
|
||||
(at 0 15.6 0)
|
||||
(layer "F.Fab")
|
||||
(uuid "783caf9d-4324-476e-a13f-fdc754e21b09")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Datasheet" "https://documentation.espressif.com/esp32-c5-wroom-1_wroom-1u_datasheet_en.html"
|
||||
(at 0.25 2.5 0)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "57987a8b-f9f5-4fa1-925e-03f23bc17481")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Description" "Module that supports 2.4 and 5 GHz dual-band Wi-Fi 6 (802.11ax), Bluetooth ® 5 (LE), Zigbee, and Thread (802.15.4) Built around ESP32-C5 series of SoCs, 32-bit RISC-V single-core microprocessor Flash up to 32 MB Up to 22 GPIOs, rich set of peripherals"
|
||||
(at 0.25 2.5 0)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "7cedd4b5-a149-484e-bc40-7e5cd407df12")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(attr smd)
|
||||
(fp_line
|
||||
(start -8.75 -13.75)
|
||||
(end -8.75 -6.5)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "f09cb53d-3c7f-41e1-9378-7a694a6c7669")
|
||||
)
|
||||
(fp_line
|
||||
(start -8.75 -13.75)
|
||||
(end 9.25 -13.75)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "634c074d-f53a-4f17-a01c-c427dd463e8b")
|
||||
)
|
||||
(fp_line
|
||||
(start -8.75 13)
|
||||
(end -8.75 13.75)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "1da9e0f4-67f1-4c87-b759-aa83e451c712")
|
||||
)
|
||||
(fp_line
|
||||
(start -8.75 13.75)
|
||||
(end -7.75 13.75)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "9ee2fba6-6fe2-4858-a44e-be5b98019ec5")
|
||||
)
|
||||
(fp_line
|
||||
(start 9.25 -13.75)
|
||||
(end 9.25 -6.5)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "eb034fbd-6e78-4af0-bae0-69aac2ddde9d")
|
||||
)
|
||||
(fp_line
|
||||
(start 9.25 -7.25)
|
||||
(end -8.75 -7.25)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "8eb6d55e-a524-4dfa-9f3c-f6e2b6c699d3")
|
||||
)
|
||||
(fp_line
|
||||
(start 9.25 12.975)
|
||||
(end 9.25 13.75)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "b6834186-afee-4ae0-9a93-925c0bb9e7de")
|
||||
)
|
||||
(fp_line
|
||||
(start 9.25 13.75)
|
||||
(end 8.25 13.75)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "d9dd9499-26b8-4e11-910f-0111dd31ef04")
|
||||
)
|
||||
(fp_line
|
||||
(start -8.75 -13.75)
|
||||
(end 9.25 -13.75)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Eco2.User")
|
||||
(uuid "7d0b72d7-5116-4177-9258-1878f8bef9cc")
|
||||
)
|
||||
(fp_line
|
||||
(start -8.75 -7.25)
|
||||
(end 9.25 -7.25)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Eco2.User")
|
||||
(uuid "8abdc6f3-9a5f-4da3-9c34-b23c59c8590c")
|
||||
)
|
||||
(fp_line
|
||||
(start -8.75 13.75)
|
||||
(end -8.75 -13.75)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Eco2.User")
|
||||
(uuid "0ca656fa-48af-4a1c-a601-053be9ebbad1")
|
||||
)
|
||||
(fp_line
|
||||
(start 9.25 -13.75)
|
||||
(end 9.25 13.75)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Eco2.User")
|
||||
(uuid "84e68fa2-bb13-4777-9070-15cd537d0952")
|
||||
)
|
||||
(fp_line
|
||||
(start 9.25 13.75)
|
||||
(end -8.75 13.75)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Eco2.User")
|
||||
(uuid "b7478048-2075-4121-afa4-bb285dd4be82")
|
||||
)
|
||||
(fp_line
|
||||
(start -9.55 -14.05)
|
||||
(end -9.55 14.55)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "2c8b8865-c8e2-4a82-94a6-ef91b67d531b")
|
||||
)
|
||||
(fp_line
|
||||
(start -9.55 14.55)
|
||||
(end 10.05 14.55)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "80d0bbc2-14f7-448d-8aa6-8c3905d3d9e6")
|
||||
)
|
||||
(fp_line
|
||||
(start 10.05 -14.05)
|
||||
(end -9.55 -14.05)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "25835b1c-7754-4fc7-b535-341b92f55e01")
|
||||
)
|
||||
(fp_line
|
||||
(start 10.05 -14.05)
|
||||
(end 10.05 14.55)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "1c186107-50c1-4782-abbf-69f5ab7ac836")
|
||||
)
|
||||
(fp_text user "Antenna Area"
|
||||
(at 0.25 -10.25 0)
|
||||
(layer "F.SilkS")
|
||||
(uuid "6e73b5a0-8e83-4e1d-ab2d-f2e051dcd480")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(fp_text user "Antenna Area"
|
||||
(at 0.25 -10.25 0)
|
||||
(layer "Eco2.User")
|
||||
(uuid "177f12b8-8bd0-4a12-ab65-379074d27aa7")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(fp_text user "${REFERENCE}"
|
||||
(at 0.25 2.5 0)
|
||||
(layer "F.Fab")
|
||||
(uuid "d1bd5684-5703-4f21-8944-f8b5e664753a")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pad "1" smd rect
|
||||
(at -8.5 -5.76)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "50487783-7a00-479f-b02e-a22f2e69705c")
|
||||
)
|
||||
(pad "2" smd rect
|
||||
(at -8.5 -4.49)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "74edfefe-235e-4cba-b7c7-0b3ef3f4e3d8")
|
||||
)
|
||||
(pad "3" smd rect
|
||||
(at -8.5 -3.22)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "f06e6b01-b7fe-465d-a080-7a947f0af6d0")
|
||||
)
|
||||
(pad "4" smd rect
|
||||
(at -8.5 -1.95)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "b3f3b826-ad37-4009-a80e-3d8374cc0c38")
|
||||
)
|
||||
(pad "5" smd rect
|
||||
(at -8.5 -0.68)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "9131a2a0-95c6-4580-b1cf-f88f8563575e")
|
||||
)
|
||||
(pad "6" smd rect
|
||||
(at -8.5 0.59)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "cda21c99-c83e-4d0b-8571-0ed3b4b0e679")
|
||||
)
|
||||
(pad "7" smd rect
|
||||
(at -8.5 1.86)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "6cbd0f57-25f9-4b44-8052-5c8529f27482")
|
||||
)
|
||||
(pad "8" smd rect
|
||||
(at -8.5 3.13)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "7bfde213-a42f-4eef-a297-a0e64894c965")
|
||||
)
|
||||
(pad "9" smd rect
|
||||
(at -8.5 4.4)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "277311bb-ff9f-4a6e-9cb5-34a5d0e9cdfa")
|
||||
)
|
||||
(pad "10" smd rect
|
||||
(at -8.5 5.67)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "ef54d737-e14c-4d0c-a88b-0b55885d2cf7")
|
||||
)
|
||||
(pad "11" smd rect
|
||||
(at -8.5 6.94)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "f9825c58-09cb-46e1-96b1-d7fd60161d40")
|
||||
)
|
||||
(pad "12" smd rect
|
||||
(at -8.5 8.21)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "80ead716-583c-4503-93ec-8d1c5a6014a1")
|
||||
)
|
||||
(pad "13" smd rect
|
||||
(at -8.5 9.48)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "cd959b9f-9c4c-436a-979c-f6aeaafb6760")
|
||||
)
|
||||
(pad "14" smd rect
|
||||
(at -8.5 10.75)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "48a365e1-9db9-40b7-9444-7fc8ebac0bcd")
|
||||
)
|
||||
(pad "15" smd rect
|
||||
(at 9 10.75 180)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "2a5fdc24-53cd-4dcf-904b-b1f9b160516e")
|
||||
)
|
||||
(pad "16" smd rect
|
||||
(at 9 9.48 180)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "00e44920-5998-4350-aeb4-9640bdd7172e")
|
||||
)
|
||||
(pad "17" smd rect
|
||||
(at 9 8.21 180)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "45eb453f-e0ae-4db3-9c1d-e15003abe653")
|
||||
)
|
||||
(pad "18" smd rect
|
||||
(at 9 6.94 180)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "72b57dd8-1622-4a76-8600-8cfe0daf5e9b")
|
||||
)
|
||||
(pad "19" smd rect
|
||||
(at 9 5.67 180)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "a7bfb3d7-0315-4e87-9b1e-57b0d2c0efda")
|
||||
)
|
||||
(pad "20" smd rect
|
||||
(at 9 4.4 180)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "d3e0c4f7-434f-48fe-87b3-e2c61acd4905")
|
||||
)
|
||||
(pad "21" smd rect
|
||||
(at 9 3.13 180)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "c3f7ab00-389b-4625-aacc-888299416a0a")
|
||||
)
|
||||
(pad "22" smd rect
|
||||
(at 9 1.86 180)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "47be7051-02f5-4711-b225-3a4f00922cb4")
|
||||
)
|
||||
(pad "23" smd rect
|
||||
(at 9 0.59 180)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "ad9c8ceb-b0ce-44d3-b2dc-d0d049b15f81")
|
||||
)
|
||||
(pad "24" smd rect
|
||||
(at 9 -0.68 180)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "6534dc4e-1b20-4fa0-bf2a-be27e43b11d0")
|
||||
)
|
||||
(pad "25" smd rect
|
||||
(at 9 -1.95 180)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "3770d143-f149-483c-8a17-3b2681e7d7be")
|
||||
)
|
||||
(pad "26" smd rect
|
||||
(at 9 -3.22 180)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "8798b91f-06df-4395-bce5-dcd7a16e347b")
|
||||
)
|
||||
(pad "27" smd rect
|
||||
(at 9 -4.49 180)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "e9365a3d-136f-4dee-ad48-b9b90adfb53f")
|
||||
)
|
||||
(pad "28" smd rect
|
||||
(at 9 -5.76 180)
|
||||
(size 1.5 0.9)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "29771e24-4118-4caa-bbbc-d0798b82d7fc")
|
||||
)
|
||||
(pad "29" smd rect
|
||||
(at -0.6202 1.128 180)
|
||||
(size 1.3 1.3)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "dad2fb5a-76f0-416b-9ab7-6aefb4f77880")
|
||||
)
|
||||
(pad "29" smd rect
|
||||
(at -0.6202 2.828 180)
|
||||
(size 1.3 1.3)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "19bf64dd-bb25-4648-abf9-abeacb2cf075")
|
||||
)
|
||||
(pad "29" smd rect
|
||||
(at -0.6202 4.528 180)
|
||||
(size 1.3 1.3)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "82819b3b-e328-48a1-814c-98ff5628291c")
|
||||
)
|
||||
(pad "29" smd rect
|
||||
(at 1.0798 1.128 180)
|
||||
(size 1.3 1.3)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "ce73bf6c-f7cb-4a52-a654-cc9a35d8b733")
|
||||
)
|
||||
(pad "29" smd rect
|
||||
(at 1.0798 2.828 180)
|
||||
(size 1.3 1.3)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "972ffe27-3da7-463d-8bfe-731fb5799bd0")
|
||||
)
|
||||
(pad "29" smd rect
|
||||
(at 1.0798 4.528 180)
|
||||
(size 1.3 1.3)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "61074b46-e156-4187-bca8-6cb22c232052")
|
||||
)
|
||||
(pad "29" smd rect
|
||||
(at 2.7798 1.128 180)
|
||||
(size 1.3 1.3)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "17957eb7-e9b3-4669-9fd1-9fe15d7eaa79")
|
||||
)
|
||||
(pad "29" smd rect
|
||||
(at 2.7798 2.828 180)
|
||||
(size 1.3 1.3)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "aad52faa-3cb8-46ac-9658-2a5bae99907e")
|
||||
)
|
||||
(pad "29" smd rect
|
||||
(at 2.7798 4.528 180)
|
||||
(size 1.3 1.3)
|
||||
(layers "F.Cu" "F.Mask" "F.Paste")
|
||||
(uuid "fed77e15-0e7c-4e9c-a46c-40b479e0f558")
|
||||
)
|
||||
(zone
|
||||
(net 0)
|
||||
(net_name "")
|
||||
(layers "F.Cu" "B.Cu" "In1.Cu" "In2.Cu" "In3.Cu" "In4.Cu" "In5.Cu" "In6.Cu"
|
||||
"In7.Cu" "In8.Cu" "In9.Cu" "In10.Cu" "In11.Cu" "In12.Cu" "In13.Cu" "In14.Cu"
|
||||
"In15.Cu" "In16.Cu" "In17.Cu" "In18.Cu" "In19.Cu" "In20.Cu" "In21.Cu"
|
||||
"In22.Cu" "In23.Cu" "In24.Cu" "In25.Cu" "In26.Cu" "In27.Cu" "In28.Cu"
|
||||
"In29.Cu" "In30.Cu"
|
||||
)
|
||||
(uuid "7c42c954-9db0-42ff-86ed-63966c53d2eb")
|
||||
(name "antenna keepout")
|
||||
(hatch edge 0.508)
|
||||
(connect_pads
|
||||
(clearance 0)
|
||||
)
|
||||
(min_thickness 0.254)
|
||||
(filled_areas_thickness no)
|
||||
(keepout
|
||||
(tracks not_allowed)
|
||||
(vias not_allowed)
|
||||
(pads not_allowed)
|
||||
(copperpour not_allowed)
|
||||
(footprints not_allowed)
|
||||
)
|
||||
(placement
|
||||
(enabled no)
|
||||
(sheetname "")
|
||||
)
|
||||
(fill
|
||||
(thermal_gap 0.508)
|
||||
(thermal_bridge_width 0.508)
|
||||
)
|
||||
(polygon
|
||||
(pts
|
||||
(xy 9.25 -7.25) (xy -8.75 -7.25) (xy -8.75 -13.75) (xy 9.25 -13.75)
|
||||
)
|
||||
)
|
||||
)
|
||||
(embedded_fonts no)
|
||||
(model ${KIPRJMOD}/3dmodels/microcontrollers/ESP32-C5-WROOM-1.step
|
||||
(offset
|
||||
(xyz -8.75 -13.75 0)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz -0 -0 -0)
|
||||
)
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user