> ## Documentation Index
> Fetch the complete documentation index at: https://docs.researchanddesire.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Buttons

> Under-screen tactile button caps for the RADR wireless remote

export const STLViewer = ({url}) => {
  const [loading, setLoading] = useState(true);
  const EMBED_URL = `https://www.viewstl.com/?embedded&url=${encodeURIComponent(url)}`;
  const getGitHubUrl = rawUrl => {
    if (rawUrl.includes('raw.githubusercontent.com')) {
      return rawUrl.replace('raw.githubusercontent.com', 'github.com').replace(/\/main\//, '/blob/main/');
    }
    return rawUrl;
  };
  const fileUrl = getGitHubUrl(url);
  const fileName = decodeURIComponent(url.split('/').pop());
  return <div style={{
    width: '100%',
    maxWidth: '800px',
    margin: '0 auto'
  }}>
      {loading && <div style={{
    position: 'absolute',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center',
    width: '100%',
    height: '500px',
    background: '#f5f5f5',
    borderRadius: '8px',
    zIndex: 1
  }}>
          Loading 3D viewer...
        </div>}
      <div style={{
    position: 'relative'
  }}>
        <iframe src={EMBED_URL} style={{
    width: '100%',
    height: '500px',
    border: 'none',
    borderRadius: '8px',
    background: '#f5f5f5'
  }} onLoad={() => setLoading(false)} title="STL Viewer" allowFullScreen />
      </div>
      <div style={{
    display: 'flex',
    justifyContent: 'space-between',
    alignItems: 'center',
    marginTop: '8px',
    fontSize: '12px',
    color: '#666'
  }}>
        <span>Drag to rotate • Scroll to zoom</span>
        <a href={fileUrl} target="_blank" rel="noopener noreferrer" style={{
    color: '#0066cc',
    textDecoration: 'none'
  }}>
          {fileName} ↗
        </a>
      </div>
    </div>;
};

<STLViewer url="https://raw.githubusercontent.com/researchanddesire/radr-wireless-remote/main/Hardware/Print%20Files/Buttons.stl" />

## Function

The Buttons are small caps that sit over the tactile switches beneath the display. This component:

* Provides a comfortable press surface for the three under-screen buttons
* Transfers actuation force to the underlying tactile switches
* Features optional translucent sections for LED status indicators
* Three buttons required per remote

## Print Settings

| Setting           | Value           |
| ----------------- | --------------- |
| Layer Height      | 0.12mm          |
| Walls             | 4               |
| Infill Type       | Gyroid          |
| Infill Percentage | 30%             |
| Supports          | Minimal or none |

<Tip>
  These are small parts. Use a brim for bed adhesion if needed, and print multiple at once for efficiency.
</Tip>

## Multi-Color Printing (Optional)

The buttons include a separate body for the LED indicator area:

| Area             | Purpose                 | Recommended Material    |
| ---------------- | ----------------------- | ----------------------- |
| Indicator window | Shows button status LED | Transparent/translucent |
| Button face      | Press surface           | Any opaque color        |

<Info>
  Multi-color printing is optional. Single-color buttons work perfectly—you just won't see the status LEDs through the button caps.
</Info>

## Installation

<Steps>
  <Step title="Print three buttons">
    Print all three button caps using the settings above.

    <Check>
      Buttons are free of stringing and have clean surfaces.
    </Check>
  </Step>

  <Step title="Test fit">
    Place each button into its housing slot in the top enclosure. They should move freely up and down.

    <Warning>
      If buttons bind or stick, lightly sand the sides. Do not force them into place.
    </Warning>
  </Step>

  <Step title="Verify actuation">
    With the PCB installed, press each button to confirm it properly actuates the underlying switch.

    <Check>
      Each button clicks cleanly and springs back when released.
    </Check>
  </Step>
</Steps>

## Download Files

<CardGroup cols={2}>
  <Card title="STEP File" icon="cube" href="https://github.com/researchanddesire/radr-wireless-remote/blob/main/Hardware/Print%20Files/Buttons.step">
    Download for CAD editing
  </Card>

  <Card title="3MF Project" icon="layer-group" href="https://github.com/researchanddesire/radr-wireless-remote/blob/main/Hardware/Print%20Files/Bambu%20A1%20Remote_V1.01.3mf">
    Bambu Studio project with print settings
  </Card>
</CardGroup>
