
Stack-chan
M5Stack-based pan-tilt companion robot with JavaScript firmware and printable cases.
- $99preassembled M5StackChan AI Desktop Robot K151 (upstream standard configuration); DIY case builds have no published total, vendor, assembled
- 2 DoF
- Apache-2.0hardware
- 80 / 100 reproducibilityStrong source coverage, unverified
What it is
Stack-chan is an open-source, JavaScript-driven "super-kawaii" desktop companion robot built on M5Stack, credited in its README to Shinya Ishikawa and the Stack-chan community. An M5Stack core is the face and controller on top of a two-servo pan-tilt body. The upstream standard configuration is M5Stack's preassembled M5StackChan CoreS3 (K151, two SCS0009 feedback servos per M5Stack's docs); for DIY builds the repo holds case v0 STEP and STL sets for SG90, SCS0009 and RS30X servos, the case v1.0 set for DYNAMIXEL XL330, battery backpacks, community case variants, and the KiCad source of the Stack-chan servo board (PWM or serial servos). The firmware is TypeScript/JavaScript on the Moddable SDK, with MODs, browser tools and a WebAssembly simulator. The README License section distributes the repo's resources under Apache-2.0 (a vendored dock module is MIT); the board BOM is not committed and no DIY build total is published, so the price shown is the M5StackChan shop price. The 3D view lays out the printed parts of the case v1.0 side by side, because upstream publishes no assembly.
Licenses
- Hardware
- Apache-2.0
- Software
- Apache-2.0
- Docs
- Not published
Degrees of freedom
2 DoF pan 1tilt 1
Pan tilt headDesktop companionsource
Auto-assembled, not yet reviewed
Source record
- Source
- 1.7k stars, last push 2026-09-30
- HW license
- Apache-2.0
- Cost
- $99vendor, assembled, preassembled M5StackChan AI Desktop Robot K151 (upstream standard configuration); DIY case builds have no published total
- Lifecycle
- Active
- Engine
- v3.1.1
- Checked
- Model
- shell.stl@c44ec74source parts laid out, not the assembled robotrendered 2026-10-02
Maintain Stack-chan? Claim this page to correct it.
Parts and cost
Cost to build
- preassembled M5StackChan AI Desktop Robot K151 (upstream standard configuration); DIY case builds have no published total
In the source currency, as read on 2026-09-30. Not converted, and not checked against current vendor prices: none of these is a Motari-verified checkout total.
Stack-chan parts, as the source lists them. Prices are the source's, not checked against vendors.
| Part | Qty | Spec | Source | Confidence |
|---|---|---|---|---|
M5StackChan AI Desktop Robot (K151)Preassembled upstream standard configuration (alternative to a DIY build); the README says the standard package is enough to get started | 1 | M5Stack CoreS3 pre-installed, two feedback servos (SCS0009 per M5Stack docs) | M5Stack official shop$99.00 on the M5Stack official shop, checked 2026-09-30stack-chan/stack-chan README.md lines 21-28; M5Stack shop product page K151 | high |
Circuit board (Stack-chan board)Case v1.0 item 1; KiCad sources in schematics/m5-pantilt drive two PWM or two serial servos | 1 | Stack-chan board v1.0 | PCB fab of choice (schematics README names JLCPCB as an example)not listed in source BOMstack-chan/stack-chan case/v1/dynamixel.md line 15 | high |
M5 Stack CoreS3Case v1.0 controller and face display | 1 | M5Stack CoreS3 | not named in source listnot listed in source BOMstack-chan/stack-chan case/v1/dynamixel.md line 16 | high |
XL330Case v1.0 servos: leg servo ID 1 (pan) and neck servo ID 2 (tilt), both set to 1 Mbps | 2 | ROBOTIS DYNAMIXEL XL330 | not named in source listnot listed in source BOMstack-chan/stack-chan case/v1/dynamixel.md line 29 | high |
4cm Communication CableCase v1.0 servo and board cabling | 2 | 4 cm servo communication cable | not named in source listnot listed in source BOMstack-chan/stack-chan case/v1/dynamixel.md line 28 | high |
M2x4mm Pan Tapping ScrewsCase v1.0: fix the board and shell | 4 | M2 x 4 mm pan-head tapping screw | not named in source listnot listed in source BOMstack-chan/stack-chan case/v1/dynamixel.md line 24 | high |
M2.5x6mm Bind Tapping ScrewsCase v1.0: fix the servos; included with the XL330 | 2 | M2.5 x 6 mm binding-head tapping screw | included with XL330not listed in source BOMstack-chan/stack-chan case/v1/dynamixel.md line 27 | high |
3D printed case v1.0 partsPrinted parts from case/v1 as listed in the guide; the backpack count is not stated upstream; use gear_XL330_narrow if the gear hole is too loose | 1 | shell x1, horn x1, gear_XL330 x2, bracket_XL330_f x1, bracket_XL330_b x1, feet_top x1, feet_bottom x1, backpack | 3D print yourself or a 3D printing service (JLCPCB 3D printing, DMM.make)not priced in source liststack-chan/stack-chan case/v1/dynamixel.md lines 17-26 | high |
Two servos (case v0)Case v0 alternative to XL330: RS30X (TTL) or SCS0009 (TTL) serial servos, or SG-90 PWM servos; ID 1 foot side (pan), ID 2 face side (tilt) | 2 | RS30X series TTL, SCS0009 TTL, or SG-90 PWM | Vstone / Switch Science / Akizuki Denshi (links from the project)not listed in source parts liststack-chan/stack-chan case/README.md lines 45-49 | high |
M5Stack Core Basic/Gray/Go/Fire (case v0)Case v0 controller; the Japanese guide also allows Core2 | 1 | M5Stack Core Basic, Gray, Go or Fire | not named in source listnot listed in source parts liststack-chan/stack-chan case/README.md line 43 | high |
3.7V Battery with PH 2-pin cable (case v0)Tested with 400 mAh and 640 mAh lithium polymer batteries | 1 | 3.7V LiPo, PH 2-pin connector | Sengoku (links from the project)not listed in source parts liststack-chan/stack-chan case/README.md lines 50-53 | high |
Screws (case v0)Case v0 screw set as grouped upstream | 1 | M2 4mm x4, M2 8mm x2, optional M3 15mm x2 | not named in source listnot listed in source parts liststack-chan/stack-chan case/README.md lines 54-57 | high |
Rows from the source's own parts list 21
case/v1/dynamixel.md@c44ec74markdown
| Source row | Qty | Price and vendor | Line |
|---|---|---|---|
Circuit board | 1 | vendor not listedno price listed | L15 |
M5 Stack CoreS3 | 1 | vendor not listedno price listed | L16 |
Horn | 1 | vendor not listedno price listed | L17 |
Shell | 1 | vendor not listedno price listed | L18 |
Gear_XL330 | 2 | vendor not listedno price listed | L19 |
Backpack | vendor not listedno price listed | L21 | |
Bracket_XL330_f | 1 | vendor not listedno price listed | L22 |
Bracket_XL330_b | 1 | vendor not listedno price listed | L23 |
6 more rows in case/v1/dynamixel.md
case/README.md@c44ec74markdown
| Source row | Qty | Price and vendor | Line |
|---|---|---|---|
M5Stack Core Basic/Gray/Go/Fire | vendor not listedno price listed | L43 | |
Stack-chan board | vendor not listedno price listed | L44 | |
Two servos (RS30X, SCS0009 or SG-90) | 2 | vendor not listedno price listed | L45 |
3.7V Battery with PH 2-pin cable | vendor not listedno price listed | L50 | |
Screws (case v0) | vendor not listedno price listed | L54 |
M5Stack official shop, M5StackChan K151html
| Source row | Qty | Price and vendor | Line |
|---|---|---|---|
M5StackChan AI Desktop Robot (K151) | 1 | M5Stack$99.00 | L1 |
How to build
Upstream step marks a step taken from the linked guide.
Print the case v1.0 parts
Print the shell, horn, two gear_XL330 (gear_XL330_narrow if the hole is loose), bracket_XL330_f and _b, feet_top, feet_bottom and a backpack, or order them from a 3D printing service such as JLCPCB or DMM.make; upstream suggests buying a kit if neither is practical.
Upstream stepgithub.com/stack-chan/stack-chan/blob/c44ec745401dd33914c12b...Set servo IDs and baud rate
Connect one XL330 at a time through a U2D2 and SMPS2Dynamixel with a 5V adapter, and use ROBOTIS Dynamixel Wizard 2 to set the leg servo to ID 1 and the neck servo to ID 2, both at 1 Mbps (factory default is ID 1 at 57600).
Upstream stepgithub.com/stack-chan/stack-chan/blob/c44ec745401dd33914c12b...Assemble the leg and neck servos
Press a gear_XL330 onto the ID 1 servo, fit it into feet_top (the notched protrusion is the front), secure it from the back with M2.5x6 mm tapping screws and slide in feet_bottom. Press a gear_XL330 onto the ID 2 servo, secure it with M2.5x6 mm tapping screws and attach the horn.
Upstream stepgithub.com/stack-chan/stack-chan/blob/c44ec745401dd33914c12b...Assemble the body
Attach the servo cables, join the upper and lower servos with bracket_XL330_f, secure them with bracket_XL330_b, and connect the board to the servos.
Upstream stepgithub.com/stack-chan/stack-chan/blob/c44ec745401dd33914c12b...Close the shell and stack the M5Stack
Slide the horn into the shell, fix the board and shell with four M2x4 mm pan tapping screws, and insert the M5Stack CoreS3.
Upstream stepgithub.com/stack-chan/stack-chan/blob/c44ec745401dd33914c12b...Flash the firmware
Without a Moddable SDK environment, flash Stack-chan from a web browser: install the M5Stack USB driver on a PC that supports the Web Serial API, connect the M5Stack, open the web flasher, choose the M5Stack type (M5Stack, M5Stack Core2, M5Stack CoreS3 or M5StackChan CoreS3) and install; it takes 2 to 3 minutes. The factory default settings use the SCS0009 servo, so change the servo type from the browser settings for other servos.
Upstream stepgithub.com/stack-chan/stack-chan/blob/c44ec745401dd33914c12b...
Wiring, power and firmware are safety-relevant and shown for reference only. Check them against the source before building.
metCAD / mesh present62 editable CAD files (STEP/STP) for 28 parts + 101 mesh files20/20
Quality tier 3 of 3
partialBOM evidenceReviewedThe Case v1.0 guide's 'Required Items' list names 14 parts, 13 with quantities, and no prices, vendor links or total. It is a numbered list, not a table, so the engine found no BOM.10/20
Quality tier 2 of 5
metWiring diagramschematic or PCB source files (3 files, kicad_pcb/kicad_pro/kicad_sch) + 1 diagram15/15
Quality tier 3 of 3
metFirmware linkedfirmware source in the repo10/10
Quality tier 3 of 3
metBuild instructionsstep-by-step guide with images15/15
Quality tier 2 of 3
- 22 assembly step imagesc44ec74
- case/README.md: Assemblyc44ec74
- case/README.md: How to Assemblec44ec74
metOSHW-compatible licenseApache-2.0 (from repository license)10/10
Quality tier 2 of 2
- LICENSEc44ec74
missingKnown reproductionsno verified builds yet0/10
Quality tier 0 of 2
Only build reports a maintainer or admin has reviewed count here.
Engine v3.1.1 at c44ec74, 1 item reviewed by hand
- The engine found no joint model or stated figure to count degrees of freedom from.
- The engine could not tell what kind of robot this is from its sources.
Files and sim
- case/v1/shell.step
- case/v1/shell.stl
- case/v1/feet_top.step
- case/v1/bracket_XL330_f.step
- case/case_SG90/shell_SG90.step
- case/case_SCS0009/shell_SCS0009.step
- case/case_RS30X/shell_RS30X.step
- case/backpack/backpack_640mah.step
- schematics/m5-pantilt/m5-pantilt.kicad_sch
- schematics/m5-pantilt/m5-pantilt.kicad_pcb
- schematics/m5-pantilt/m5-pantilt.pdf
- firmware/host/app/main.ts
- case/v1/dynamixel.md
- case/README.md
Files stay in the upstream repository under their own licenses; these links open them there. The 3D model on this page is Motari's conversion of the file named under Simulation.
Simulation
Robot description files a simulator or CAD tool can load, linked at the commit they were found.
No URDF, MJCF, SDF, USD or Onshape model has been found in the sources.
The 3D specimen on this page is converted from case/v1/shell.stl at c44ec74, with the parts laid out side by side because the source has no assembly.
Builds
No reviewed builds of Stack-chan yet.
A build log records the evidence (photos, a video, your repository), what the build cost, how long it took and what you changed. Each one is checked by Motari (until a maintainer claims this page) before it shows here, and reviewed builds count toward the reproducibility score.
Sources
Where the facts come from
- Hardwaregithub.com/stack-chan/stack-chanc44ec74
- Build guidegithub.com/stack-chan/stack-chan/blob/develop/case/v1/dynami...c44ec74
- Build guidegithub.com/stack-chan/stack-chan/blob/develop/case/README.mdc44ec74
- Bill of materialsgithub.com/stack-chan/stack-chan/blob/develop/case/v1/dynami...c44ec74
- Softwaregithub.com/stack-chan/stack-chan/blob/develop/firmware/README.mdc44ec74
- Documentationstack-chan.github.io/stack-chan/web
- Storeshop.m5stack.com/products/stackchan-kawaii-co-created-open-s...
Last push to stack-chan/stack-chan: 2026-09-30 (checked 2026-10-02)
Related links
- Stack-chan boardKiCad schematic and layout
- M5StackChan docsM5Stack product documentation
- M5StackChan structure STLsm5stack/M5_Hardware K151 (MIT)
How this page was made
Assembled from public sources on 2026-09-30, not yet reviewed by the maintainer. Each figure links to where it is stated; a value the sources do not state reads "not published". Last source review: 2026-09-30 stack-chan/stack-chan@c44ec74 README, LICENSE, tree.
Original files stay intact and separately licensed; Motari adds only the summary on this page. Maintainer? Request a correction or removal.
Badge for the README
Maintain Stack-chan? Show its reproducibility score in the project's README. The badge links back to this page and updates with the score.
[](https://motari.io/r/stack-chan)<a href="https://motari.io/r/stack-chan"><img src="https://motari.io/api/v1/badge/stack-chan" alt="Motari reproducibility score for Stack-chan" height="20"></a>Not fully met yet: bom evidence (partial). The score is read from the project's own sources, so publishing what is missing is what raises it. A score of 90 or more needs a reviewed build. How the score is computed