Friend Maker 是一个 macOS/Windows 工具包,可将图像转换为像素网格和 ESP32 控制器脚本,从而在 Tomod 中实现在 Nintendo Switch 上的自动绘制。
Friend Maker 是一个 macOS/Windows 工具包,可将图像转换为像素网格和 ESP32 控制器脚本,从而在 Tomod 中实现在 Nintendo Switch 上的自动绘制。
This README includes both Simplified Chinese and English sections. Use the buttons above to jump to your preferred language. 本页同时包含简体中文与 English 内容,请使用上方按钮跳转。
If this project helps you, click here to support me. 如果这个项目对你有帮助,点击这里资助我。
朋友制作器 是一个面向 Nintendo Switch《朋友收集:梦想生活》 / Tomodachi Life 的自动绘制工作台。
它把 刷入 ESP32 固件、测试手柄连接、调试输入时序、导入图片并执行绘制 放进同一套本地界面。图片会被转换成像素预览和动作脚本,再通过 ESP32-WROOM-32 / ESP-32S 模拟 Switch Pro Controller 输入完成自动绘制。
ESP32 固件、串口 ACK 发送、Switch 手柄链路测试 和 图片转绘制脚本 串成一套闭环刷入固件、手柄测试、调试测速、脚本生成PNG / JPG / WEBP / SVG 图片,生成像素预览、统计信息与动作脚本单色绘制、官方色绘制 和 自定义多色1 / 3 / 7 / 13 / 19 / 27 六种大小;圆形像素笔刷当前仍在公开界面预留256x256 画布建模、模板裁切、辅助线预览和自动扣背景PlatformIO 固件刷写、串口枚举、Windows 驱动安装辅助、蓝牙连接测试与 timing 调整Nintendo Switch 和 ESP32-WROOM-32 / ESP-32S 开发板输入稳定性,而不是极限速度或零校准上手零门槛、即装即用 的纯消费级工具ESP32 刷写、串口或驱动识别、Switch 手柄配对和 timing 调整ESP32、PlatformIO 或类似链路,建议严格按文档逐步验证;首次环境准备通常需要稳定外网,并预留一定的准备与调试时间当前公开文档默认支持两条进入路线,它们在安装方式上并列,但最终都会汇合到同一套四页工作流:
| 进入路线 | 适合场景 | 入口 |
|---|---|---|
桌面端安装包 |
想最快开始试用 | macOS .dmg / Windows x64 .exe |
仓库源码路线 |
想从源码运行、调试或二次开发 | npm install + npm run ui:dev + PlatformIO |
启动后统一按下面顺序使用:
刷入固件:确认 PlatformIO、串口和固件环境正常手柄测试:完成 Switch 配对、按钮和方向测试调试测速:先调 inputDelay,再微调 buttonPressDuration脚本生成:导图、检查预览、开始绘制,并在需要时从页面内的恢复任务继续;正式绘制前会自动切到所选像素画笔,无需再手动在游戏里选笔刷单色绘制、官方色绘制 和 自定义多色单色绘制 或结构更简单的图片验证整体链路256x256 和 画布中心起步 建模稳定性,不是 速度ESP32 兼容板存在连接个体差异;如果出现频繁断链、串键或异常连发,除软件重试外,也建议一起排查数据线、供电和板子做工差异macOSWindows x64Windows ARM64LinuxESP32-WROOM-32 / ESP-32SESP32 DevKitC、NodeMCU-32SUSB 串口、可直接刷机的版本ESP32-C3 / ESP32-S3 / ESP32-C6 当作主线板型macOS:安装 .dmg 后直接启动 Friend MakerWindows x64:运行 .exe 安装包后直接启动 Friend Maker刷入固件 页时,如果提示缺少 PlatformIO,点击 准备 PlatformIO刷入固件 页现在会先让你选择 Switch 型号:Switch1 和 Lite 固件、Switch 2刷入固件 页里也会提示 Friend Maker Firmware Flasher 这个 GitHub Pages 在线刷机站;如果改走网页刷机,请刷入与当前 Switch 型号对应的版本,刷完后回到桌面端的 手柄测试 页继续Switch1 和 Lite 固件 / Switch 2 当前只给主线 ESP32-WROOM-32 / ESP-32S 提供专用固件;旧标准 Switch 固件已在界面隐藏,仅作为命令行兼容兜底保留PlatformIO、下载工具链与部分依赖时,需要 稳定联网Python,允许它下载一个供 Friend Maker 使用的本地运行环境即可Windows 下如果 PlatformIO 已就绪但没有串口,可在应用里优先安装 CP210x 驱动,再尝试 CH340/CH341建议先准备:
Node.js 20+npm 10+PlatformIO Core 6+Windows 手动安装 PlatformIO 时还需要可用的 Python 3常用命令:
cd /path/to/friendmaker
npm install
npm run check
npm run ui:dev
刷入固件:
cd /path/to/friendmaker/firmware/esp32
# 旧标准 Switch 固件(界面已隐藏,仅命令行兜底)
pio run -e esp32dev_wireless -t upload
# Switch 2(仅限 ESP32-WROOM-32 / ESP-32S)
pio run -e esp32dev_wireless_switch2 -t upload
# Switch1 和 Lite 固件(仅限 ESP32-WROOM-32 / ESP-32S)
pio run -e esp32dev_wireless_switch_lite -t upload
如果 pio 不在 PATH 里,请改用完整路径:
macOS:~/.platformio/penv/bin/pioWindows:%USERPROFILE%\.platformio\penv\Scripts\pio.exewinget、COM 口和 Windows 特有注意事项官方色绘制 依赖游戏默认的 9 个色盘槽位起始状态自动扣背景 适合白底、浅灰底和棋盘格假透明素材,不是 AI 抠图本仓库采用 GPL-3.0-or-later 开源协议。完整协议内容请查看 LICENSE。
firmware/esp32 中的 Switch 蓝牙兼容实现,引入并改写自 UARTSwitchCon 的思路与代码路径,因此仓库采用 GPL 以保持许可证一致。
惜羽拓麻镇惜羽拓麻镇Friend Maker is a local automatic-drawing workspace for Nintendo Switch Tomodachi Life.
It brings ESP32 firmware flashing, controller connection testing, input timing tuning, and image-to-drawing execution into one interface. Images are converted into pixel previews and action scripts, then sent through an ESP32-WROOM-32 / ESP-32S that emulates Switch Pro Controller input.
ESP32 firmware, serial ACK transport, Switch controller testing, and image-driven drawing into one usable workflowFirmware Flash, Controller Test, Timing Tune / Benchmark, and Script StudioPNG / JPG / WEBP / SVG images and generate pixel previews, stats, and action scriptsmono drawing, official palette drawing, and custom multicolor1 / 3 / 7 / 13 / 19 / 27; round pixel brushes are still reserved in the public UI256x256 canvas modeling, template cropping, preview guides, and automatic background removalPlatformIO flashing, serial-port enumeration, Windows driver helper flows, controller tests, and timing adjustments from the same UINintendo Switch and an ESP32-WROOM-32 / ESP-32S boardinput stability rather than maximum speedzero-setup, consumer-style plug-and-play toolESP32 flashing, serial-port or driver setup, Switch controller pairing, and timing adjustmentESP32, PlatformIO, or similar device workflows before, follow the docs step by step; first-time environment setup usually needs stable internet access, and you should leave time for setup and debuggingThe public docs support two entry routes. They are parallel at install time, then converge into the same four-page workflow once the app is running:
| Route | Best for | Entry |
|---|---|---|
Packaged desktop app |
Fastest first-run path | macOS .dmg / Windows x64 .exe |
Repo-based workflow |
Source-based runs, debugging, and contribution | npm install + npm run ui:dev + PlatformIO |
After startup, use the same flow:
Firmware Flash: confirm PlatformIO, serial port, and firmware targetController Test: pair with Switch and verify button / direction behaviorTiming Tune / Benchmark: adjust inputDelay first, then fine-tune buttonPressDurationScript Studio: import images, review previews, start drawing, and resume from in-page recovery tasks when needed; before drawing starts, the app switches to the selected pixel brush automatically, so you no longer need to choose it manually in-gamemono drawing, official palette drawing, and custom multicolormono drawing or structurally simpler images256x256 and start from canvas centerESP32-compatible boards still vary in controller-link quality, so frequent disconnects or ghost inputs may also require checking cable quality, power delivery, and board variancemacOSWindows x64Windows ARM64LinuxESP32-WROOM-32 / ESP-32SESP32 DevKitC, NodeMCU-32SUSB serial for direct flashingESP32-C3 / ESP32-S3 / ESP32-C6 are not the current recommended mainline pathmacOS: install the .dmg, then launch Friend MakerWindows x64: run the .exe installer, then launch Friend MakerFirmware Flash, click Prepare PlatformIO if it is missingFirmware Flash now asks you to choose a Switch model first: Switch 1 and Lite firmware or Switch 2Firmware Flash page also points to Friend Maker Firmware Flasher on GitHub Pages; if you switch to the web flasher, flash the build that matches your current Switch model, then return to Controller Test in the desktop appSwitch 1 and Lite firmware / Switch 2 is currently only provided for mainline ESP32-WROOM-32 / ESP-32S; the old standard Switch firmware is hidden in the UI and kept only as a command-line fallbackstable network connectionPython is missing, allow it to download an app-local runtime for Friend MakerWindows, if PlatformIO is ready but no serial port appears, try the in-app CP210x helper before CH340/CH341Recommended prerequisites:
Node.js 20+npm 10+PlatformIO Core 6+Python 3 if you install PlatformIO manually on WindowsCommon commands:
cd /path/to/friendmaker
npm install
npm run check
npm run ui:dev
Flash firmware:
cd /path/to/friendmaker/firmware/esp32
# Old standard Switch firmware (hidden in the UI; command-line fallback only)
pio run -e esp32dev_wireless -t upload
# Switch 2 (ESP32-WROOM-32 / ESP-32S only)
pio run -e esp32dev_wireless_switch2 -t upload
# Switch 1 and Lite firmware (ESP32-WROOM-32 / ESP-32S only)
pio run -e esp32dev_wireless_switch_lite -t upload
If pio is not in PATH, use the full path instead:
macOS: ~/.platformio/penv/bin/pioWindows: %USERPROFILE%\.platformio\penv\Scripts\pio.exewinget, and COM-port notes暂无开放 Issues,或尚未同步最近议题。