Claude
Skills
Sign in
โ† Back

readme-generator

Included with Lifetime
$97 forever

Auto-generates professional README.md files for Arduino/ESP32/RP2040 projects following open-source best practices. Use when user wants to document their project for GitHub, needs help writing a README, or says "make my project shareable". Follows awesome-readme standards with sections for Overview, Hardware, Software, Setup, Usage, Troubleshooting, and Contributing.

Writing & Docsscripts

What this skill does


# README Generator

Creates professional, beginner-friendly README files for maker projects.

## Resources

This skill includes bundled tools:

- **scripts/generate_readme.py** - Full README generator with wiring diagrams and templates

## Quick Start

**Interactive mode:**
```bash
uv run --no-project scripts/generate_readme.py --interactive
```

**Quick generation:**
```bash
uv run --no-project scripts/generate_readme.py --project "Weather Station" --board "ESP32" --output README.md
```

**Scan existing project:**
```bash
uv run --no-project scripts/generate_readme.py --scan /path/to/arduino/project --output README.md
```

## When to Use
- "Help me document this project"
- "I want to share this on GitHub"
- "Write a README for my project"
- User has working project, needs documentation
- Before publishing to GitHub/Instructables

## Information Gathering

### Ask User For:
```
1. Project name and one-line description
2. What problem does it solve / why did you build it?
3. Main features (3-5 bullet points)
4. Hardware components used
5. Software libraries required
6. Any photos/videos/GIFs available?
7. License preference (MIT recommended for open source)
8. Target audience (beginners/intermediate/advanced)
```

### Auto-Extract From Code:
- Pin assignments from config.h
- Library includes
- WiFi/Bluetooth features
- Sensor types

---

## README Template

Generate using this structure (based on awesome-readme best practices):

```markdown
# ๐ŸŽฏ [Project Name]

![Project Status](https://img.shields.io/badge/status-active-brightgreen)
![Platform](https://img.shields.io/badge/platform-ESP32-blue)
![License](https://img.shields.io/badge/license-MIT-green)

> One-line description of what this project does and why it's useful.

![Project Photo/GIF](images/project-demo.gif)

## ๐Ÿ“‹ Table of Contents

- [Overview](#overview)
- [Features](#features)
- [Hardware Components](#hardware-components)
- [Wiring Diagram](#wiring-diagram)
- [Software Dependencies](#software-dependencies)
- [Installation](#installation)
- [Configuration](#configuration)
- [Usage](#usage)
- [Troubleshooting](#troubleshooting)
- [Contributing](#contributing)
- [License](#license)
- [Acknowledgments](#acknowledgments)

## ๐Ÿ” Overview

[2-3 paragraphs explaining:]
- What the project does
- Why you built it / what problem it solves
- Who it's for (target audience)

### Demo

[Embed video or GIF showing project in action]

## โœจ Features

- โœ… Feature 1 - brief description
- โœ… Feature 2 - brief description
- โœ… Feature 3 - brief description
- ๐Ÿšง Planned: Feature 4 (coming soon)

## ๐Ÿ”ง Hardware Components

| Component | Quantity | Purpose | Notes |
|-----------|----------|---------|-------|
| [MCU Board] | 1 | Main controller | [version/variant] |
| [Sensor 1] | 1 | [function] | [I2C address, etc.] |
| [Display] | 1 | User interface | [resolution] |
| ... | ... | ... | ... |

**Estimated Cost:** $XX-XX

### Where to Buy

- [Component 1](link) - Amazon/AliExpress
- [Component 2](link) - Adafruit/SparkFun

## ๐Ÿ“ Wiring Diagram

![Wiring Diagram](images/wiring-diagram.png)

### Pin Connections

| MCU Pin | Component | Pin | Function |
|---------|-----------|-----|----------|
| GPIO21 | BME280 | SDA | I2C Data |
| GPIO22 | BME280 | SCL | I2C Clock |
| GPIO4 | LED | Anode | Status indicator |
| ... | ... | ... | ... |

## ๐Ÿ’ป Software Dependencies

### Required Software

- [Arduino IDE](https://www.arduino.cc/en/software) (v2.0+) or [PlatformIO](https://platformio.org/)
- [Board package] - [installation link]

### Required Libraries

| Library | Version | Purpose | Install via |
|---------|---------|---------|-------------|
| [Library1] | >=1.0.0 | [function] | Library Manager |
| [Library2] | >=2.3.0 | [function] | Library Manager |
| ... | ... | ... | ... |

## ๐Ÿ“ฆ Installation

### Option 1: Arduino IDE

1. **Install Arduino IDE**
   - Download from [arduino.cc](https://www.arduino.cc/en/software)
   
2. **Add Board Support** (if using ESP32/RP2040)
   ```
   File โ†’ Preferences โ†’ Additional Board Manager URLs:
   https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
   ```
   Then: Tools โ†’ Board โ†’ Boards Manager โ†’ Search "[board]" โ†’ Install

3. **Install Required Libraries**
   - Sketch โ†’ Include Library โ†’ Manage Libraries
   - Search and install each library from the table above

4. **Clone or Download This Repository**
   ```bash
   git clone https://github.com/[username]/[repo-name].git
   ```
   Or download ZIP and extract

5. **Open the Project**
   - Open `[project-name].ino` in Arduino IDE

### Option 2: PlatformIO (Recommended for Advanced Users)

1. Install [VS Code](https://code.visualstudio.com/) + [PlatformIO extension](https://platformio.org/install/ide?install=vscode)

2. Clone and open:
   ```bash
   git clone https://github.com/[username]/[repo-name].git
   cd [repo-name]
   code .
   ```

3. PlatformIO will automatically install dependencies from `platformio.ini`

## โš™๏ธ Configuration

Before uploading, customize `config.h`:

```cpp
// === NETWORK SETTINGS ===
#define WIFI_SSID     "your-wifi-name"
#define WIFI_PASSWORD "your-wifi-password"

// === HARDWARE PINS ===
#define LED_PIN       4
#define SENSOR_SDA    21
#define SENSOR_SCL    22

// === FEATURE FLAGS ===
#define ENABLE_OLED   true
#define ENABLE_WIFI   true
#define DEBUG_MODE    true
```

### Environment-Specific Settings

| Setting | Development | Production |
|---------|-------------|------------|
| DEBUG_MODE | true | false |
| SERIAL_BAUD | 115200 | 9600 |
| SLEEP_INTERVAL | 10s | 300s |

## ๐Ÿš€ Usage

### Basic Operation

1. **Power On** - Connect USB or battery
2. **Wait for Boot** - Status LED blinks during initialization
3. **[Normal Operation]** - Description of what happens

### LED Status Indicators

| LED State | Meaning |
|-----------|---------|
| Solid Green | Normal operation |
| Blinking Blue | WiFi connecting |
| Red Flash | Error (check serial) |

### Serial Monitor

Open Serial Monitor at 115200 baud to see:
```
[BOOT] Project Name v1.0.0
[INFO] Initializing sensors...
[OK] BME280 found at 0x76
[INFO] Connecting to WiFi...
[OK] Connected: 192.168.1.100
[DATA] Temp: 23.5ยฐC, Humidity: 45%
```

### Web Interface (if applicable)

Navigate to `http://[device-ip]` to access:
- Real-time sensor readings
- Configuration panel
- Data export

## โ“ Troubleshooting

### Common Issues

<details>
<summary><b>Upload fails: "Failed to connect"</b></summary>

**ESP32:** Hold BOOT button while clicking Upload, release when "Connecting..." appears.

**Arduino:** Check correct COM port selected in Tools โ†’ Port.
</details>

<details>
<summary><b>Sensor not detected</b></summary>

1. Check wiring (SDA/SCL not swapped?)
2. Run I2C scanner sketch to verify address
3. Add pull-up resistors (4.7kฮฉ) if not on module
4. Check voltage compatibility (3.3V vs 5V)
</details>

<details>
<summary><b>WiFi won't connect</b></summary>

1. Verify SSID/password in config.h (case-sensitive!)
2. 2.4GHz only (ESP32 doesn't support 5GHz)
3. Check router isn't blocking new devices
4. Try moving closer to router
</details>

<details>
<summary><b>Random resets</b></summary>

1. Power supply too weak - use 500mA+ source
2. Add 100ยตF capacitor near MCU
3. Check for short circuits
4. Disable brownout detector (ESP32)
</details>

### Still Stuck?

1. Check [Issues](https://github.com/[username]/[repo]/issues) for similar problems
2. Open a new issue with:
   - Hardware setup (board, sensors)
   - Error messages (full serial output)
   - Steps to reproduce

## ๐Ÿค Contributing

Contributions are welcome! Here's how:

### Reporting Bugs

1. Check existing issues first
2. Use the bug report template
3. Include serial output and hardware details

### Suggesting Features

1. Open an issue with `[Feature Request]` prefix
2. Describe use case and expected behavior

### Pull Requests

1. Fork the repository
2. Create a feature branch: `git checkout -b feature/amazing-feature`
3. Make your changes
4. Test thoroughly
5. Commit

Related in Writing & Docs