{
  "guild": {
    "id": "1361349522684510449",
    "name": "wafer.space Community",
    "iconUrl": "2025-11_media/fb143eaa45770cbb40493d09b625e98b-09FD1.png"
  },
  "channel": {
    "id": "1444418732343427175",
    "type": "GuildPublicThread",
    "categoryId": "1409660288822673408",
    "category": "questions",
    "name": "Pin Placement",
    "topic": null
  },
  "dateRange": {
    "after": "2025-10-31T23:59:59.999+00:00",
    "before": "2025-12-01T00:00:00+00:00"
  },
  "exportedAt": "2026-05-11T22:26:31.4671259+00:00",
  "messages": [
    {
      "id": "1444418732343427175",
      "type": "Default",
      "timestamp": "2025-11-29T20:04:21.793+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "Hi all. I\u2019m using the template project to PnR some small digital modules and plan to integrate them into a larger analog block. I\u2019m not using the template configs, just the Librelane environment.\nI have a question: how can I more precisely customize pin locations? Is there any script or config that lets me specify the absolute position of each pin on the floorplan? With pin_order.cfg I can only spread pins evenly along one side.\nAny help will be appreciated.",
      "author": {
        "id": "839883081896689765",
        "name": "buck_042",
        "discriminator": "0000",
        "nickname": "Buck",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-11_media/1-B2132.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1444429809227923556",
      "type": "Default",
      "timestamp": "2025-11-29T20:48:22.728+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "The easiest is to the the \"DEF template\" feature. See FP_DEF_TEMPLATE.",
      "author": {
        "id": "596068704471482370",
        "name": "246tnt",
        "discriminator": "0000",
        "nickname": "tnt",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1444429848188813537",
      "type": "Default",
      "timestamp": "2025-11-29T20:48:32.017+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "Then you can write a DEF that define exact positions of the pins you want.",
      "author": {
        "id": "596068704471482370",
        "name": "246tnt",
        "discriminator": "0000",
        "nickname": "tnt",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1444464425275883632",
      "type": "Default",
      "timestamp": "2025-11-29T23:05:55.837+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "Thank you! Are there any DEF template files that I can use as a reference?",
      "author": {
        "id": "839883081896689765",
        "name": "buck_042",
        "discriminator": "0000",
        "nickname": "Buck",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-11_media/1-B2132.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1444608239756120215",
      "type": "Default",
      "timestamp": "2025-11-30T08:37:23.881+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "@Buck the caravel's user_project_wrapper uses one. https://github.com/chipfoundry/caravel_user_project/blob/main/openlane/user_project_wrapper/fixed_dont_change/user_project_wrapper_gf180mcu.def",
      "author": {
        "id": "738396032295108721",
        "name": "bailey8889",
        "discriminator": "0000",
        "nickname": "bailey",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-11_media/0-EB806.png"
      },
      "attachments": [],
      "embeds": [
        {
          "title": "caravel_user_project/openlane/user_project_wrapper/fixed_dont_chang...",
          "url": "https://github.com/chipfoundry/caravel_user_project/blob/main/openlane/user_project_wrapper/fixed_dont_change/user_project_wrapper_gf180mcu.def",
          "timestamp": null,
          "description": "Contribute to chipfoundry/caravel_user_project development by creating an account on GitHub.",
          "color": "#1E2327",
          "thumbnail": {
            "url": "2025-11_media/caravel_user_project-AE990",
            "width": 1200,
            "height": 600
          },
          "images": [],
          "fields": [],
          "inlineEmojis": []
        }
      ],
      "stickers": [],
      "reactions": [],
      "mentions": [
        {
          "id": "839883081896689765",
          "name": "buck_042",
          "discriminator": "0000",
          "nickname": "Buck",
          "color": null,
          "isBot": false,
          "roles": [],
          "avatarUrl": "2025-11_media/1-B2132.png"
        }
      ],
      "inlineEmojis": []
    },
    {
      "id": "1444609370460782592",
      "type": "Default",
      "timestamp": "2025-11-30T08:41:53.462+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "https://github.com/TinyTapeout/tt-support-tools/blob/main/tech/gf180mcuD/def/tt_block_1x1_pgvdd.def",
      "author": {
        "id": "596068704471482370",
        "name": "246tnt",
        "discriminator": "0000",
        "nickname": "tnt",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png"
      },
      "attachments": [],
      "embeds": [
        {
          "title": "tt-support-tools/tech/gf180mcuD/def/tt_block_1x1_pgvdd.def at main ...",
          "url": "https://github.com/TinyTapeout/tt-support-tools/blob/main/tech/gf180mcuD/def/tt_block_1x1_pgvdd.def",
          "timestamp": null,
          "description": "Tiny Tapeout project build tools + chip integration scripts - TinyTapeout/tt-support-tools",
          "color": "#1E2327",
          "thumbnail": {
            "url": "2025-11_media/tt-support-tools-64586",
            "width": 1200,
            "height": 600
          },
          "images": [],
          "fields": [],
          "inlineEmojis": []
        }
      ],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1444609428199575654",
      "type": "Default",
      "timestamp": "2025-11-30T08:42:07.228+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "Tiny Tapeout  above also use some and they're pretty minimal.",
      "author": {
        "id": "596068704471482370",
        "name": "246tnt",
        "discriminator": "0000",
        "nickname": "tnt",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1444740867431862433",
      "type": "Default",
      "timestamp": "2025-11-30T17:24:24.783+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "Thank for everyone's help!",
      "author": {
        "id": "839883081896689765",
        "name": "buck_042",
        "discriminator": "0000",
        "nickname": "Buck",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-11_media/1-B2132.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1444742078377492501",
      "type": "Default",
      "timestamp": "2025-11-30T17:29:13.495+00:00",
      "timestampEdited": "2025-11-30T17:31:14.039+00:00",
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "If you have an abstract LEF (for example after LibreLane run with pin placement you would like to fix) you could easily make a template DEF from it with magic, [like this](https://github.com/egorxe/gf180mcu-sram-wrappers/blob/main/utils/magic_def.tcl).",
      "author": {
        "id": "709384666909507634",
        "name": "egorxe",
        "discriminator": "0000",
        "nickname": "Egor Lukyanchenko",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-11_media/3-FB033.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [
        {
          "emoji": {
            "id": "",
            "name": "\ud83d\udc4d",
            "code": "thumbsup",
            "isAnimated": false,
            "imageUrl": "2025-11_media/1f44d-27259.svg"
          },
          "count": 1,
          "users": [
            {
              "id": "839883081896689765",
              "name": "buck_042",
              "discriminator": "0000",
              "nickname": "Buck",
              "color": null,
              "isBot": false,
              "avatarUrl": "2025-11_media/1-B2132.png"
            }
          ]
        }
      ],
      "mentions": [],
      "inlineEmojis": []
    }
  ],
  "messageCount": 9
}