From c8e0beb614c99f0d45dd75c59289a332c6f32400 Mon Sep 17 00:00:00 2001 From: victorhblancom-design Date: Thu, 28 May 2026 18:56:06 -0600 Subject: [PATCH 1/2] docs: link MicroMod connector tutorial --- docs/elements/connector.mdx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/elements/connector.mdx b/docs/elements/connector.mdx index 8a5a60d3..4ad6ef33 100644 --- a/docs/elements/connector.mdx +++ b/docs/elements/connector.mdx @@ -16,6 +16,9 @@ Connectors support: import CircuitPreview from "@site/src/components/CircuitPreview" +For a complete carrier-board workflow with SparkFun MicroMod processor modules, +see [Using SparkFun MicroMod M.2 Connectors](/tutorials/using-sparkfun-micromod-m2-connectors). + ## Standard Connector Example Date: Thu, 28 May 2026 18:56:23 -0600 Subject: [PATCH 2/2] docs: add SparkFun MicroMod tutorial --- .../using-sparkfun-micromod-m2-connectors.mdx | 187 ++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 docs/tutorials/using-sparkfun-micromod-m2-connectors.mdx diff --git a/docs/tutorials/using-sparkfun-micromod-m2-connectors.mdx b/docs/tutorials/using-sparkfun-micromod-m2-connectors.mdx new file mode 100644 index 00000000..15bed208 --- /dev/null +++ b/docs/tutorials/using-sparkfun-micromod-m2-connectors.mdx @@ -0,0 +1,187 @@ +--- +title: Using SparkFun MicroMod M.2 Connectors +description: Model SparkFun MicroMod carrier boards with an M.2 connector, named interface nets, and reusable processor-module wiring. +--- + +import CircuitPreview from "@site/src/components/CircuitPreview" + +SparkFun MicroMod processor boards plug into a carrier board through an M.2 +connector. In tscircuit, the carrier-side connector is best modeled as a +`` with the `m2` standard hint plus MicroMod-specific pin labels. + +The important habit is to name the electrical interface first: power rails, +reset, boot, I2C, SPI, UART, USB, SDIO, analog pins, PWM pins, and general GPIO. +Then you can reuse those names across carrier boards without tying every design +to a specific processor module. + +## References + +Keep the SparkFun pinout open while assigning the exact pin numbers for your +board: + +- [SparkFun MicroMod Interface v1.0 - Pin Descriptions](https://cdn.sparkfun.com/assets/learn_tutorials/1/2/0/6/SparkFun_MicroMod_Interface_v1.0_-_Pin_Descriptions.pdf) +- [SparkFun MicroMod Interface v1.0 - Pinout](https://cdn.sparkfun.com/assets/learn_tutorials/1/2/0/6/SparkFun_MicroMod_Interface_v1.0_-_Pinout.pdf) +- [Designing with MicroMod](https://learn.sparkfun.com/tutorials/designing-with-micromod) +- [Getting Started with MicroMod](https://learn.sparkfun.com/tutorials/getting-started-with-micromod) + +## Minimal Carrier Connector + +Start by giving the connector a stable name and labeling the signals that your +carrier board actually uses. The example below shows a practical subset for a +sensor or display carrier: 3.3 V power, ground, I2C, SPI, UART, reset, boot, and +two GPIO nets. + + ( + + + +) + `} +/> + +The numbers above are intentionally compact for the example. For production +hardware, expand `pinLabels` to match the full SparkFun MicroMod pinout and keep +the names aligned with SparkFun's published signal groups. + +## Connect a Qwiic Peripheral + +MicroMod carriers commonly expose I2C through Qwiic. Once the M.2 connector +labels are in place, route peripherals by net name instead of routing to raw pin +numbers. + + ( + + + + + + + + +) + `} +/> + +## Reusable MicroMod Connector Component + +For real projects, keep the connector definition in a small reusable component. +That makes it easy to share the same MicroMod net names across several carrier +boards and to swap a partial pin map for a full one later. + +```tsx +import type { CommonLayoutProps } from "tscircuit" + +export const microModCarrierPins = { + 1: "GND", + 2: "V3_3", + 3: "I2C_SDA", + 4: "I2C_SCL", + 5: "SPI_COPI", + 6: "SPI_CIPO", + 7: "SPI_SCK", + 8: "SPI_CS", + 9: "UART_TX", + 10: "UART_RX", + 11: "RESET", + 12: "BOOT", + 13: "G0", + 14: "G1", +} as const + +export const MicroModM2Connector = (props: CommonLayoutProps) => ( + +) +``` + +Use that component inside a carrier board: + +```tsx +import { MicroModM2Connector } from "./MicroModM2Connector" + +export default () => ( + + + + + + + + +) +``` + +## Design Checklist + +- Use `standard="m2"` on the carrier connector so downstream tooling knows this + is an M.2-style board interface. +- Copy exact pin numbers from the SparkFun pinout PDF before sending a PCB to + fabrication. +- Keep the net names close to SparkFun's signal names: `I2C_SDA`, `I2C_SCL`, + `SPI_COPI`, `SPI_CIPO`, `SPI_SCK`, `UART_TX`, `UART_RX`, `RESET`, `BOOT`, + `USB_D+`, `USB_D-`, `G0`, `G1`, and so on. +- Prefer named traces such as `.J_MICROMOD > .I2C_SDA` over raw connector pin + references. The schematic stays readable even when the physical pin map grows. +- Leave unused MicroMod pins out of the first schematic, then add them as your + carrier board needs them.