Close
0%
0%

Stack-chan - JavaScript driven super-kawaii robot

An easy-to-build and companion robot for everyone

Public Chat
Similar projects worth following
Stack-chan is a palm-sized super-kawaii companion robot with M5Stack embedded.
It can shake its head, watch people's faces, talk, and possess you with various face expressions.
The exterior, board data, and software are fully open source. Detailed assembly instructions are available, so anyone can make one.


The open communication robot for everyone

In recent years, a variety of communication robots have appeared on the market. However, most of them are "closed", dependent on specific proprietary services, or their specifications are not disclosed to the public. In fact, compared to other bipedal, quadrupedal, and wheeled robots, there are surprisingly few open source communication robots.

We often see the tragedy of communication robots reaching the end of life as their backend services goes by.

"Why don't they make communication robots more open and hackable?" It is the problem and why Stackchan was born.

As a solution, I decided to create an open-source robot that anyone could build from scratch. This means that open community, rather than a closed, specific company or individual, will collaborate to grow the robot.

The most important feature of Stack-chan is that everything is open.

Stack-chan is open in two aspects. First, All the resources of Stack-chan are distributed under Apache-2.0 license, including the schematics, the 3D model of the case and the firmware. Second, I'm opening up not only the source code and model data for Stack-chan, but also the entire process of creating it. In other words, I shared widely the background issues, the decisions I made, the troubles I had, and the mistakes I made so that users can learn how to make and customize Stack-chan. You can follow the process by searching its official twitter hashtags.

#stackchan, #スタックチャン on Twitter

As a result, over 30 enthusiasts have already started making Stack-chan and putting them into their varius appilcations from frontend of voice assistant to quadrupedal robot. You can see the most impressive works from the community in my project logs. Over 200 tweets by them doing trial and error are in the curated list below.

Stack-chan - Togetter


System architecture

The robot consists of a case, an M5Stack and a dedicated expansion board, and firmware. Each component is fully customizable. The functionality as a communication robot is provided in the form of a framework, which users can easily access through applications (mods). M5Stack is equipped with wireless communication functions such as Wi-Fi and BLE, so it can be used with external services, smartphones, and other robots.

Detailed assembly instruction

The detailed assembly instructions are available on GitHub.

Lifelike behaviors

Stack-chan themselves has no special mission to solve. They just live. They have multiple communication modality such as speech and gaze. In despite of its small size, Stack-chan has a very lifelike appearance with its eyes and breathing. This behavior is achieved by simulating neurophysiological phenomena such as saccadic eye movements. But who cares the detail? It's just so cute. you can't stop loving it!


Unleash your creativity

Stack-chan is a kind of platform robot. While Stack-chan itself is quite simple in function, it can be used in various applications. For example:

  • A "sales robot" that finds people's faces and fiercely promotes products.
  • A "butler robot" with cute notifications of the day and Alexa functionality.
  • A "babysitting robot" that watches over children from their desk.

Sounds interesting? Fork my repositorylaunch dockernized environment in minutes and start making! Take advantage of many examples, especially for integration to external APIs and M5Stack units. Unfamiliar with embedded development? No problem. I choosed JavaScript, the world's most used programming language. Stack-chan's firmware is written on the Moddable SDK: a JavaScript framework for embedded systems. You can achieve brazing fast development with full of the latest ECMAScript features.

So what will you do with Stack-chan? Leave a comment and let's start...

Read more »

JPEG Image - 5.54 MB - 11/07/2021 at 05:18

Preview
Download

JPEG Image - 1.76 MB - 11/07/2021 at 05:18

Preview
Download

JPEG Image - 1.26 MB - 11/07/2021 at 05:18

Preview
Download

JPEG Image - 706.75 kB - 11/07/2021 at 05:18

Preview
Download

JPEG Image - 582.51 kB - 11/07/2021 at 05:18

Preview
Download

View all 14 files

View all 18 components

  • Stack-chan got the 2nd place of HackadayPrize!

    Shinya Ishikawa6 days ago 0 comments

    I'm so excited to tell you that Stack-chan got the 2nd place of HackadayPrize!!

    Since I am not a native English speaker, I had prepared a script of greetings in case I needed to use it. But that is much longer than what I read out in the video. I'm posting it in its entirety as a memorial.


    Thank you HackadayPrize for giving me the honorable 2nd place.

    First of all, I would like to thank all members of the worldwide Stack-chan community. Without your passion and creativity, I wouldn't be standing here.
    Next, I'd like to thank Jimmy Lai and the M5Stack team. And thanks to Peter Hoddie and the ModdableSDK team.
    I couldn't have achieved the concept of a "cute robot that runs in JavaScript" without the help of their excellent devices and frameworks.
    Thank you SupplyFrame, Digikey and all HackadayPrize staffs for giving me the opportunity to share Stack-chan with the world.
    Finally, I would like to thank my wife and three children for their patience. I have dedicated almost all of my non-work time to Stack-chan. The kids have been Stack-chan's best playmates and also the most strict reviewers of new features. They can easily detect "childish tricks". They get bored so easily. I put a lot of effort into how to keep them happy.

    I am very lucky. In fact, I only started developing robots last year. Let me tell you a little about my story.

    I was doing research on human-robot interaction systems at university.
    However, for me, robots were something that I could buy and use, not something that I could build myself. Robot development and hardware hacking were things that I longed for, but also things that were far away.

    After a few setbacks, I joined a systems vendor and run into web development, forgetting about robots for a while. No, actually, I had many opportunities to recall them: Jibo, Vector, Robi or the new AIBO, LOVOT. As I watched the rise and fall of household robots, they remained distant to me, despite my growing longing for them.

    The trigger was the M5Stack. When I first got my hands on the M5Stack, I came up with the idea. "If I had a robot this size, it would be so cute!" The first thing I did was to write a library to display a simple face in M5Stack. Then the world changed. Makers from Japan and all over the world used the library to make various things. My maker spirit was sparked.

    Things accelerated from there. I moved to a robotics venture company, learned circuit design, CAD and ROS, got a 3D printer in my house. When I found out about ModdableSDK, my soul trembled because I realized that I might be able to put my JavaScript skills and web background to use in robotics development. Then it didn't take long for me to come up with the idea of "an open robot that anyone (even a web engineer like me, for example) can easily assemble and program.

    Looking back on my activities and its chain reaction, I am once again amazed at how simple the beginning was. I think I was "over-prepared" in the past when I gave up on robots. If I wanted to make a robot, the first thing I had to do was not to do research on robots at university. All I had to do was buy a motor and get it running.

    So again thank you to everyone who helped me realize this and encouraged to continue making.
    And I hope that Stack-chan can be a first step for people like me who are interested in robot development and for those who have once given up on robots.

    In recent years, robots have been playing an important role in many areas of society. An ever greater amount of money is being spent on robot development. I am afraid that this will lead to robot development being regarded as something privileged.

    We all know, essentially, we do not need a license or permission to develop robots except high voltage ones. I hope that Stack-chan will encourage as many people as possible to become interested in robot development and start creating robots. This is my dream.

    I will continue to develop Stack-chan so that it does not end...

    Read more »

  • From the community #9: Cardboard Stack-chan!

    Shinya Ishikawa11/18/2021 at 13:38 0 comments

    Kudos to ふるおらいと(@36kyo and 駿馬(@syumme01!

    They managed to make the Stack-chan case out of cardboard.

    Instead of doing 3D printing, ふるおらいと used regular cardboard to surround the M5Stack.

    https://twitter.com/36kyo/status/1454436387000762370?s=20

    It's hacky, but it just works! According to him, "I was disassembling my 3D printer for a move, so I just hacked it up with materials I had on hand."

    You want some chocolate?
    https://twitter.com/36kyo/status/1458803946063941637?s=20

    Inspired by this, 駿馬 further brushed up the structure of the bracket and other parts.

    (https://twitter.com/syumme01/status/1460994818629603328)

    The bracket is made up of three flat parts and is strong enough to be used.

    (https://twitter.com/syumme01/status/1460986171409207301?s=20)

    These examples are simple, yet very complete. I love them!
    It might be a good idea to distribute them as paper crafts.

    (https://twitter.com/syumme01/status/1460232273375412225?s=20)

    The experience of being able to magically create a robot with simple cardboard construction has the potential to lower the bar for robot development in one fell swoop, just as Google has done with Google Cardboard and AIY kits.

    These examples blew my mind, as I had been struggling with "what shape to make the 3D printed parts". I personally learned a lot from them:

    • the 3D printer I use everyday is still not the norm for many developers.
    • It is the core of creativity to devise ways to make things out of common materials.

    This is real hacker spirit, isn't it?

  • Stack-chan is now OSHWA certified

    Shinya Ishikawa11/18/2021 at 08:35 0 comments

    Stack-chan is certified as open source hardware by OSHWA!

    OSHWA stands for Open Source HardWare Association, for more information on OSHWA's activities and the meaning of OSHWA, please see the following page.
    https://www.oshwa.org/about/

    Stack-chan's page can be found at

    https://certification.oshwa.org/jp000014.html

    To be honest, OSHWA is not well known in Japan; Stack-chan is only the 14th certification in Japan, and I only became aware of its existence after I started developing Stack-chan. In fact, the culture of open source hardware is spreading in Japan, especially with homemade keyboards.

    One of the benefits of certification is that it proves that you meet the requirements for documentation and licensing as an OSHW, and having your name on the list and being searchable should help spread the word about your device.

    The authentication process was surprisingly easy, as long as you met the requirements beforehand. I will be writing a blog to encourage Japanese makers to register as well.

  • Hooray!

    Shinya Ishikawa11/07/2021 at 13:53 0 comments

    Entries to the final round of HackadayPrize are now closed. What does this mean? It means that today is the start of another day of development!

    Now, I have the following items in my backlog that have a high priority

    - SG-90 servo version of the servo bracket that can be snapped into place
    - Modifying the circuitry to improve stability and safety for distribution of the board and case
    - An attractive application that demonstrates the ability of "swarm robots to communicate.

    (I wish I could shadow myself as the mechanical, circuit, and software person!)

    The first step was to implement the software part which had been not ready in time for the contest deadline. We further improved on the previous FaceSync demo to make a cute cheerleader robot.

    The rules are simple. When the user strikes a pose that says "hooray!", the robot shouts with joy.

    Google MediaPipe provides a variety of ready-to-use recognition models for developers who want to easily use the results of deep learning. This time I used hand position and posture estimation as well as face. This application calculates if the hand position is higher than the top edge of the face to determine if the user is doing a "Hooray! The robots cheer when they detect the rising flag.

    Think about the number of robots; wouldn't it be more interesting and energizing to have three robots than one robot answering? And what will be the effect when the number of robots increases to 10 or 20? Isn't that exciting?

    There is no need to worry about performance. Since the cheering voice is stored in the M5Stack beforehand, the WebSocket payload is very small. Even if the number of robots increases, there will be no performance degradation.

    Both the facial recognition web application and the Stack-chan cheering squad have their sources available on GitHub.

    The possibility of "swarm robot interaction" like this application is something I will continue to pursue personally. Hopefully the robot army won't turn against us before then!

  • A short summary of our achievements with Stack-chan

    Shinya Ishikawa11/07/2021 at 05:17 0 comments

    The deadline for HackadayPrize 2021 is fast approaching.

    Thanks to your help, I was able to post the video and I was able to fulfill all the mandatory requirements of the contest. In my video I put speech in Japanese but it has also English subtitles. Glad if you watch it.

    Finally, this post will summarize the results of the last six months since Stack-chan was released to the public.

    Implementing the robot

    I have released the first version of Stack-chan.

    I created the robot's exterior that is easy to build with less screws.

    I built pan-tilt control board compatible with different kinds of motor(TTL serial/ PWM) and development module (M5Stack Basic/Go/Fire/CORE2)

    I implemented features that form the basis of Stack-chan's communication.

    - A motor driver for serial servos
    - Avatar library with replaceable images
    - Basic motion control and communication functions
      - Text to Speech
      - Face orientation and eye control
      - Facial expressions (smiling)
      - Lifelike breathing and blinking

    - Architecture that can separate firmware into basic framework and user application

    I have implemented several sample applications that demonstrate the capabilities of Stack-chan.

    - Tracking the user's face (in combination with UnitV2)
    - Talking at the push of a button- Replacing a face
    -A "mimicry game" using multiple Stack-chans

    I put together a README with Stack-chan parts, schematics, exterior data, and information on how to make Stack-chan, so that others could make Stack-chans.

    Community Activities

    The Stack-chan community was born, full of wonderful contributions and challenging minds.
    Community members are actively exchanging information on a daily basis, and many examples are being created.
    The examples include the following challenging elements

    - Conducting and monetizing third-party workshops with original learning materials
    - Transforming Stack-chan by modifying its exterior data
    - Use cases in actual event displays. Catching the attention of participants
    - Integration with AI services such as Siri, Google Translate, and Alexa
    - Build-in walking functionality

    In addition to thefive pull requests I got from the members,
    I made improvements to the exterior, circuitry, and software based on the feedback we received through these activities.

    Join the community today! Our base of activity is Twitter, and you can join right away by using the official hashtag #stackchan.


    Through the development of Stack-chan, I will continue to do my best to realize a "life with robots", a life in which robots not only provide a variety of support in daily life, but also enable us to enjoy the interaction itself.

  • ​From the community #8: One small step for Stack-chan, but...

    Shinya Ishikawa11/06/2021 at 18:00 0 comments

    のむむ (@umumon) is a professional robotics engineer who has dedicated his life to building robots of all kinds.

    He made Stack-chan walk. No, I'm not kidding. I couldn't believe that such a small robot could walk either until I saw it in action.

    He kept Stack-chan's appearance the same, but revamped its internal mechanism and added the ability to walk.What happens when Stack-chan, which is cute even when stationary, starts walking? How could it not be cute!

    What makes Stack-chan different from other small bipedal robots is that it has a walking function and also realizes pan-tilt movement. This means that Stack-chan's original head-shaking function can be used. And did you hear it say "Yoisho(grunts)" as he walked step by step, showing his respect for Stack-chan's kawaii principles?

    I would like to give him the words, "One step for Stack-chan, one giant leap for whole Stack-chan community"

    Looking inside, you can see that it is an amazingly complex system.

    He used the RS204MD, which is a serial servo even smaller than the RS304MD. He also modified the circuit board to fit this connector.

    The backpack on his back is for storing batteries, but it also serves as a weight for shifting the center of gravity necessary for walking.

    Various other improvements have been made to the exterior. The modification of Stack-chan's case that I introduced earlier was inspired by his walking Stack-chan. For example, a frame that allows the servos to be snapped into place without screws.

    The data for his walking Stack-chan is available (in 3D printable form) on GitHub. The number of parts has increased to over 40, but if you are a skilled Maker, why not give it a try?


    Now, I have introduced eight examples with permission from the user community. If you missed any of them, please my project log archives! There are many more Stack-chans being created on Twitter (by over 30 Makers in the first six months, with over 200 tweets). I myself did not expect Stack-chan to become such a big movement, and I can't predict how it will turn out in the future. However, I do believe that the concept of "an open community raising one robot as a whole" will gradually come true. I enjoy following the tweets every day, and the more I see unexpected ways to use the robot that I hadn't thought of, the more motivated I get to develop it. I'm sure tomorrow will be even better.

    A summary of the examples can be viewed on Togetter. You can check out the latest tweets from the official Stack-chan hashtag on Twitter, so please take a look. What would you do with Stack-chan? If you're interested, try making one!

  • From the community #7: Stack-chan becomes a science teacher

    Shinya Ishikawa11/06/2021 at 16:20 0 comments

    namako (@KantenNamako) is an Professional Engineer in Biotechnology and Bio-engineering; Ph.D. in Biology. He loves Robotics, animals, especially for birds.

    He first noticed the eye-catching movement of Stack-chan. He used Stack-chan as a display to show the values of sensors, in a booth for teaching about sensing at "Chiba science festa". Stack-chan was so effective in attracting visitors that he was able to keep the children occupied until the end of his explanation.

    (https://twitter.com/KantenNamako/status/1446680277653155841)

    Stack-chan is equipped with a single I2C Grove port, but it is possible to connect multiple sensors by using an I2C hub unit like this.

    (https://twitter.com/KantenNamako/status/1446073305933357056)

    As simple as Stack-chan itself is, it can be equipped with additional sensors and gimmicks for various kinds of play. The work below combines a 3D printed rubber band gun with Stack-chan.

    (https://twitter.com/KantenNamako/status/1452654062948601859)

    This super-cool robot makes a "blam!" sound and flash as the rubber bands are fired. All these effects is written in UIFlow, M5Stack's visual programming platform.

    Full Armor Stack-chan...shortened to Full Stack-chan ;)

    He is also developing a wing unit to be attached to the Stack-chan.

    (https://twitter.com/KantenNamako/status/1455880713849294849)

    And the owl face. He plans to make Stack-chan into a smart bird robot.

    (https://twitter.com/KantenNamako/status/1456884566782742531)

    He is using Stack-chan in this way to develop a learning platform robot for kids. He plans to show it off at a science event next year. Can't wait to see what it turns out to be!

  • From the community #6: Six Stack-chans in a row!

    Shinya Ishikawa11/05/2021 at 08:07 0 comments

    hirot78 (@hirot78) is an IT infrastructure consultant who specializes in cloud computing. He was also one of the first makers to try out Stack-chan.

    (https://twitter.com/hirot78/status/1441561937326723079)

    ...Six of them! Even I, the original creator, have never made that many Stack-chans at once. He used my documentation as a reference to assemble and mount the parts himself, and successfully built all six.

    (https://twitter.com/hirot78/status/1443822629635256320)

    In addition to the SG-90 case, he used my Stack-chan board and ModdableSDK-based JavaScript firmware.
    The firmware was not yet SG-90 compatible, but he implemented the SG-90 driver on his own.

    (https://twitter.com/hirot78/status/1436203420839415822)

    (https://twitter.com/hirot78/status/1437728684484354050)

    There are several variations of the M5Stack module. He scrounged up all the M5Stacks in the house to complete his robot, which included versions of M5Stack Basic, M5Stack Gray, and M5GO. I am happy to see all versions working.

    (https://twitter.com/hirot78/status/1446600296554065922)

    His 4 year old son also held one of these devices and played with it until the batteries ran out.

    (https://twitter.com/hirot78/status/1444266552816140292)

    This video is from a Stack-chan meeting.

    (https://twitter.com/hirot78/status/1446600690499919873)

    See there is one robot whose servos are vibrating in small increments? He describes this child as having "unique movements", which may be a result of the fact that he built it with his own hands and became more attached to it than a ready-made robot.

  • From the community #5: "Stamp-chan" and the tiny robot movement

    Shinya Ishikawa11/05/2021 at 05:41 0 comments

    Nochi (@shikarunochi) is one of the biggest fans of M5Stack, and is also known as a lover of very small retro PC figures.

    https://shikarunochi.matrix.jp/

    After he made his first Stack-chan, he decided to take on an additional challenge. That is "Stack-chan in miniature".

    Is it really possible to make a miniature version of Stack-chan? Even Stack-chan itself is only about 50mm cubic? The answer is yes! That's what this "Stamp-chan" is all about.

    (https://twitter.com/shikarunochi/status/1452568711307546625)

    Stick on a sticker that resembles the M5Stack's control panel and... tada!!

    (https://twitter.com/shikarunochi/status/1452632311825010688)

    Stamp-chan is driven by a small ESP32-PICO-D4 based module "M5Stamp" instead of M5Stack.
    Smaller alternatives are also used for the servo motor and display, respectively.
    Nochi's series of tweets shows his effort to make the exterior as small as possible.

    (https://twitter.com/shikarunochi/status/1451889003397980167)

    Since I published Stack-chan, there has been a small movement in the Japanese Maker community to make small, cute, tabletop-sized robots. Some of them use other modules in the M5Stack series, such as M5Stamp and M5ATOM, and some others use other modules with displays, such as WioTerminal and even micro:bit. Check out myStack-chan tweet list for more inspired work!

  • From the community #4: "DIY"ed SG-90 Stack-chan!

    Shinya Ishikawa11/04/2021 at 01:16 0 comments

    Tomorrow56 (@tomorrow56) is a professional electronics engineer, who sells a lot of original PCBs as ThousanDIY, and he is also the originator of the SG-90 compatible version of the stackchan.

    (https://twitter.com/tomorrow56/status/1415328179695194114?s=20)

    When I built the first version of the Stack-chan board, I wired the pins for small hobby servos driven by PWM, but since I was mainly using TTL serial servos, this support was only "just in case". The task of "developing a case and firmware to support PWM servos" was buried at the bottom of the backlog.

    He was one of the first to modify my case and make an SG-90 version of the stackchan. He then submitted a pull request to my repository. (I found out later that this was his first pull request! I'm glad I could contribute to his great contribution to OSS.)

    Since SG-90 servo motors are readily available and inexpensive, many other makers today use his case to build their Stack-chans.

    He also gave me feedback on improving the board. The SG-90 does not have built-in speed control like serial servos, and it has a large peak current when changing angles rapidly. Therefore, the voltage drop sometimes caused the M5Stack to lose power. This voltage drop can be mitigated by connecting the battery to the 5V line via a diode.


    After this, he created many applications using the SG-90 version of Stack-chan.

    He created a "discomfort index meter" on the Stack-chan to cope with the hot Japanese summer. He demonstrated the use case of Stack-chan as a small indicator.

    He also incorporated the Stack-chan into a quadruped robot. Since Stack-chan has a pan-tilt movement, it is also ideal for use cases in robot faces.

    Last but not least, knowingly or unknowingly of the recent Stack-chan movement, M5Stack is also working on a small bipedal robot kit. Ahead of that, He is developing a robot that incorporates Stack-chan and adds our own bipedal capabilities.

    (https://twitter.com/tomorrow56/status/1455847065318092803)

    Who will win the development race against the official M5Stack? We'll be keeping an eye on this one!

View all 26 project logs

View all instructions

Enjoy this project?

Share

Discussions

M K wrote 11/21/2021 at 02:48 point

Congrats on your win today! So kawaii <3

  Are you sure? yes | no

Arnas MasRodjie wrote 09/05/2021 at 04:08 point

Can you post STEP files on the github? There are many SG90 servo model so they able to modify to fit the servo. Thank you

  Are you sure? yes | no

Shinya Ishikawa wrote 09/05/2021 at 15:45 point

Actually I have SG90 compatible case.

https://github.com/meganetaaan/stack-chan/tree/main/case/case_SG90

But it is a good idea to share STEP files. I'll deal with it later. Thank you very much! 

  Are you sure? yes | no

Shinya Ishikawa wrote 09/05/2021 at 17:03 point

Posted an issue: https://github.com/meganetaaan/stack-chan/issues/14

  Are you sure? yes | no

Shinya Ishikawa wrote 11/02/2021 at 17:57 point

Now I'm posting a STEP files of the cases totally refined. SG90 versions of them will be available soon!

https://github.com/meganetaaan/stack-chan/tree/feature/new-case/case/case_RS30X

  Are you sure? yes | no

Maximiliano Rojas wrote 08/31/2021 at 01:58 point

kawai XDD

  Are you sure? yes | no

Shinya Ishikawa wrote 09/04/2021 at 16:58 point

Thanks you! As I posted, you can check many Stack-chan works by me and other developers on Twitter. Hope you also like them!

https://togetter.com/li/1759098

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates