Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 103 additions & 0 deletions boards/sparkfun-micromod-rp2040-processor/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# SparkFun MicroMod RP2040 Processor

A tscircuit implementation of the SparkFun MicroMod RP2040 Processor board.

## Overview

The SparkFun MicroMod RP2040 Processor is a compact microcontroller board featuring the Raspberry Pi RP2040 dual-core ARM Cortex-M0+ processor. It's designed to work with SparkFun's MicroMod ecosystem, allowing it to be paired with various carrier boards for different applications.

## Features

- **Microcontroller**: Raspberry Pi RP2040
- Dual-core ARM Cortex-M0+ processor
- 133MHz operating frequency
- 264KB of SRAM
- **Flash Memory**: 16MB (W25Q128JVSIQ)
- **Connectivity**:
- USB-C connector for programming and power
- MicroMod M.2 connector (75-pin)
- SWD debug interface
- **Power**: 3.3V operating voltage with onboard regulator
- **Indicators**: Status LED (GPIO25)
- **User Interface**: Reset and Boot buttons
- **Form Factor**: 22mm x 22mm MicroMod processor board

## Pin Mapping

### MicroMod Connector Pins

The board follows the MicroMod standard pinout:

| Function | Pin | RP2040 GPIO | Description |
|----------|-----|-------------|-------------|
| PWM0 | 41 | GPIO0 | PWM/Digital I/O |
| PWM1 | 32 | GPIO1 | PWM/Digital I/O |
| SPI_COPI | 33 | GPIO3 | SPI COPI (Controller Out Peripheral In) |
| SPI_CIPO | 34 | GPIO4 | SPI CIPO (Controller In Peripheral Out) |
| SPI_SCK | 35 | GPIO2 | SPI Clock |
| SPI_CS | 36 | GPIO5 | SPI Chip Select |
| UART1_TX | 24 | GPIO8 | UART1 Transmit |
| UART1_RX | 25 | GPIO9 | UART1 Receive |
| UART1_RTS | 27 | GPIO10 | UART1 Request To Send |
| UART1_CTS | 26 | GPIO11 | UART1 Clear To Send |
| I2C_SCL | 21 | GPIO13 | I2C Clock |
| I2C_SDA | 22 | GPIO12 | I2C Data |

Copilot AI Jan 22, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pin mapping table in the README shows I2C_SDA on pin 22, but the circuit file has "I2C1_SDA" for that pin. These should be consistent. Based on the MicroMod standard, pin 22 should be I2C_SDA (primary I2C interface).

Copilot uses AI. Check for mistakes.
| A0 | 40 | GPIO26 | Analog Input 0 |
| A1 | 38 | GPIO27 | Analog Input 1 |
| D0 | 60 | GPIO6 | Digital I/O 0 |
| D1 | 30 | GPIO7 | Digital I/O 1 |

### Special Functions

- **GPIO25**: Connected to onboard status LED
- **USB_DP/USB_DM**: Connected to USB-C connector
- **QSPI**: Connected to 16MB flash memory
- **XIN/XOUT**: Connected to 12MHz crystal oscillator

## Usage

```tsx
import { SparkfunMicroModRP2040Processor } from "sparkfun-boards"

Copilot AI Jan 22, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The import statement in the usage example uses "sparkfun-boards" but this doesn't match the actual package structure. The import should reference the correct package name based on how this repository is structured.

Suggested change
import { SparkfunMicroModRP2040Processor } from "sparkfun-boards"
import { SparkfunMicroModRP2040Processor } from "@tsci/sparkfun-boards/sparkfun-micromod-rp2040-processor"

Copilot uses AI. Check for mistakes.

function MyCircuit() {
return (
<board width="40mm" height="30mm">
<SparkfunMicroModRP2040Processor
name="processor"
x={20}
y={15}
/>
</board>
)
}
```

## Development

To run this board in development mode:

```bash
tsci dev ./boards/sparkfun-micromod-rp2040-processor/sparkfun-micromod-rp2040-processor.circuit.tsx
```

## References

- [SparkFun Product Page](https://www.sparkfun.com/sparkfun-micromod-rp2040-processor.html)

Copilot AI Jan 22, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The SparkFun product page URL appears to be incomplete or potentially incorrect. The URL "https://www.sparkfun.com/sparkfun-micromod-rp2040-processor.html" does not follow SparkFun's typical product URL format which usually includes a product ID number (e.g., "/products/17720").

Suggested change
- [SparkFun Product Page](https://www.sparkfun.com/sparkfun-micromod-rp2040-processor.html)
- [SparkFun Product Page](https://www.sparkfun.com/products/17720)

Copilot uses AI. Check for mistakes.
- [RP2040 Datasheet](https://datasheets.raspberrypi.org/rp2040/rp2040-datasheet.pdf)
- [MicroMod Specification](https://www.sparkfun.com/micromod)

## Board Dimensions

- **Length**: 22mm
- **Width**: 22mm
- **Thickness**: 1.6mm (standard PCB thickness)
- **Connector**: M.2 MicroMod (75-pin)

## Power Requirements

- **Input Voltage**: 3.3V - 5.5V (via MicroMod connector or USB-C)
- **Operating Voltage**: 3.3V
- **Current Consumption**:
- Active (both cores): ~20-30mA
- Sleep mode: <1mA
- Deep sleep: <100µA
1 change: 1 addition & 0 deletions boards/sparkfun-micromod-rp2040-processor/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default as SparkfunMicroModRP2040Processor } from "./sparkfun-micromod-rp2040-processor.circuit"

Copilot AI Jan 22, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The export statement uses a named export, but based on the pattern seen in other boards (like SparkFun-Atmospheric-Sensor-Breakout-BME280), the index file should use a default export instead of a named export.

Suggested change
export { default as SparkfunMicroModRP2040Processor } from "./sparkfun-micromod-rp2040-processor.circuit"
export { default } from "./sparkfun-micromod-rp2040-processor.circuit"

Copilot uses AI. Check for mistakes.
Loading
Loading