Controller Software for the Brother PP-1 SKiTCH embroidery machine.
Find a file
Jan-Henrik Bruhn e03e89e76a Implement comprehensive UI/UX improvements
Visual enhancements:
- Create design tokens system with semantic colors (primary, success, warning, danger, info, neutral)
- Enhanced button states with hover shadow, active press feedback, and focus rings
- Improved WorkflowStepper with larger circles, gradient progress bar, and green completion indicators
- Enhanced color blocks with larger swatches (w-8 h-8), better shadows, and animated current indicator
- Reorganized ProgressMonitor layout - progress/controls on left, color blocks on right
- Moved disconnect button to header as small, compact button

Accessibility improvements:
- Added comprehensive ARIA labels to all interactive elements
- Implemented proper focus states with color-matched rings
- Added role attributes for navigation and progress elements
- Enhanced screen reader support with descriptive labels
- All buttons now meet 44px touch target requirements

Button improvements across all components:
- Standardized to rounded-lg for softer appearance
- Added hover:shadow-lg for depth perception
- Added active:scale-[0.98] for tactile feedback
- Clean disabled states without grayscale filter
- Keyboard navigation with visible focus rings
- Consistent transition timing (150ms)

Typography:
- Maintained minimum 12px text size throughout
- Proper hierarchy with defined heading sizes
- Improved readability with consistent weights

Documentation:
- Created comprehensive UI design analysis
- Implementation guides and checklists
- Before/after examples
- Design tokens reference

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06 13:15:51 +01:00
.claude Fix PEN encoding and improve UI layout 2025-12-06 12:56:27 +01:00
public initial 2025-11-30 22:18:14 +01:00
src Implement comprehensive UI/UX improvements 2025-12-06 13:15:51 +01:00
.gitignore Migrate to Tailwind CSS and fix canvas zoom issues 2025-12-05 23:25:55 +01:00
COMPONENT_IMPLEMENTATION_CHECKLIST.md Implement comprehensive UI/UX improvements 2025-12-06 13:15:51 +01:00
DESIGN_TOKENS_REFERENCE.md Implement comprehensive UI/UX improvements 2025-12-06 13:15:51 +01:00
eslint.config.js initial 2025-11-30 22:18:14 +01:00
index.html initial 2025-11-30 22:18:14 +01:00
package-lock.json Add Heroicons and remove button hover lift effect 2025-12-05 23:44:48 +01:00
package.json Add Heroicons and remove button hover lift effect 2025-12-05 23:44:48 +01:00
QUICK_UI_IMPROVEMENTS.md Implement comprehensive UI/UX improvements 2025-12-06 13:15:51 +01:00
README.md initial 2025-11-30 22:18:14 +01:00
tsconfig.app.json initial 2025-11-30 22:18:14 +01:00
tsconfig.json initial 2025-11-30 22:18:14 +01:00
tsconfig.node.json initial 2025-11-30 22:18:14 +01:00
UI_BEFORE_AFTER_EXAMPLES.md Implement comprehensive UI/UX improvements 2025-12-06 13:15:51 +01:00
UI_DESIGN_ANALYSIS.md Implement comprehensive UI/UX improvements 2025-12-06 13:15:51 +01:00
UI_IMPROVEMENTS.md Fix PEN encoding and improve UI layout 2025-12-06 12:56:27 +01:00
UI_IMPROVEMENTS_IMPLEMENTED.md Implement comprehensive UI/UX improvements 2025-12-06 13:15:51 +01:00
UI_IMPROVEMENTS_SUMMARY.md Implement comprehensive UI/UX improvements 2025-12-06 13:15:51 +01:00
vite.config.ts Migrate to Tailwind CSS and fix canvas zoom issues 2025-12-05 23:25:55 +01:00

Brother Embroidery Machine Web Controller

A modern web application for controlling Brother embroidery machines via WebBluetooth.

Features

  • WebBluetooth Connection: Connect directly to Brother PP1 embroidery machines from your browser
  • Pattern Upload: Load and upload PEN format embroidery files
  • Pattern Visualization: Preview embroidery patterns on an interactive canvas with color information
  • Real-time Monitoring: Monitor sewing progress, position, and status in real-time
  • Machine Control: Start mask trace, start sewing, and manage patterns

Requirements

  • Modern browser with WebBluetooth support (Chrome, Edge, Opera)
  • HTTPS connection (required for WebBluetooth API)
  • Brother PP1 compatible embroidery machine with BLE

Getting Started

Installation

npm install

Development

npm run dev

The application will be available at http://localhost:5173

Note: WebBluetooth requires HTTPS. For local development, you can use:

  • localhost (works with HTTP)
  • A reverse proxy with SSL
  • Vite's HTTPS mode: npm run dev -- --https

Build for Production

npm run build

The built files will be in the dist directory.

Preview Production Build

npm run preview

Usage

  1. Connect to Machine

    • Click "Connect to Machine"
    • Select your Brother embroidery machine from the browser's Bluetooth device picker
    • Machine information and status will be displayed
  2. Load Pattern

    • Click "Choose PEN File" and select a .pen embroidery file
    • Pattern details and preview will be shown on the canvas
    • Different colors are displayed in the preview
  3. Upload to Machine

    • Click "Upload to Machine" to transfer the pattern
    • Upload progress will be shown
    • Pattern information will be retrieved from the machine
  4. Start Mask Trace (optional)

    • Click "Start Mask Trace" to trace the pattern outline
    • Confirm on the machine when prompted
  5. Start Sewing

    • Click "Start Sewing" to begin the embroidery process
    • Real-time progress, position, and status will be displayed
    • Follow machine prompts for color changes
  6. Monitor Progress

    • View current stitch count and completion percentage
    • See real-time needle position
    • Track elapsed time

Project Structure

web/
├── src/
│   ├── components/       # React components
│   │   ├── MachineConnection.tsx
│   │   ├── FileUpload.tsx
│   │   ├── PatternCanvas.tsx
│   │   └── ProgressMonitor.tsx
│   ├── hooks/           # Custom React hooks
│   │   └── useBrotherMachine.ts
│   ├── services/        # BLE communication
│   │   └── BrotherPP1Service.ts
│   ├── types/           # TypeScript types
│   │   └── machine.ts
│   ├── utils/           # Utility functions
│   │   └── penParser.ts
│   ├── App.tsx          # Main application component
│   ├── App.css          # Application styles
│   └── main.tsx         # Entry point
├── public/              # Static assets
├── package.json
├── tsconfig.json
└── vite.config.ts

Technology Stack

  • React 18: UI framework
  • TypeScript: Type safety
  • Vite: Build tool and dev server
  • WebBluetooth API: BLE communication
  • HTML5 Canvas: Pattern visualization

Protocol

The application implements the Brother PP1 BLE protocol:

  • Service UUID: a76eb9e0-f3ac-4990-84cf-3a94d2426b2b
  • Write Characteristic: a76eb9e2-f3ac-4990-84cf-3a94d2426b2b
  • Read Characteristic: a76eb9e1-f3ac-4990-84cf-3a94d2426b2b

See ../emulator/PROTOCOL.md for detailed protocol documentation.

PEN Format

The application supports PEN format embroidery files:

  • Binary format with 4-byte stitch records
  • Coordinates in 0.1mm units
  • Supports multiple colors and color changes
  • Includes jump stitches and flags

Browser Compatibility

WebBluetooth is supported in:

  • Chrome 56+
  • Edge 79+
  • Opera 43+

Not supported in:

  • Firefox (no WebBluetooth support)
  • Safari (no WebBluetooth support)

License

MIT