Hello,
I am Rongzhong writing the post in a Dongguan factory. Two years after Nybble's launch, I'm now launching a new robot model, the Bittle dog, on Kickstarter! This time, I'm putting more effort into making a polished product and improving the user experience. It's a much more complicated task and is 90% done! I will need your support to finalize the design, kick-off mass production, and build a team to deliver the orders.
You may discover all the exciting features of Bittle on my Kickstarter page. I'm adding more technical details here to discuss the design process. In the end, I'll unveil some background stories about the project. It might be common knowledge for people in the industry, but it's a brand-new adventure away from my original academic path. As a maker who both DIYed a product and bootstrapped a startup, I hope my story will help our community members push their projects to the next level.
---
OverviewPetoi Bittle is a tiny but powerful robot that can play tricks like real animals. We fine-tuned every bit to fit agile maneuverability into a palm-sized robot pet. You can bring Bittle to life by assembling its puzzle-like frame and downloading our demo codes on GitHub. You can also teach it new skills to win prizes in our community challenges. Bittle makes a perfect tool for learning, teaching, researching, or a surprising gift to impress your family and friends. However, Bittle is not a toy for small kids. We recommend parental guidance to appreciate its rich content and avoid damage or injury.
Evolving with an open-source gene, Bittle is an open platform to fuse multiple makers' gadgets into one organic system. With our customized Arduino board coordinating all instinctive and sophisticated movements, you can clip various sensors to add perception. You could also inject artificial intelligence capabilities by mounting a Raspberry Pi or other AI chips via wired/wireless connections.
Bittle is the second product of OpenCat, a sibling of Nybble, Backed by a worldwide user group, you can find many tutorials and project ideas on the Internet. By posting on our forum or social media (Instagram/Twitter @PetoiCamp), you can contribute to the community or make your wishes heard. We are always drawing the blueprint for futuristic robots!
Bittle is a palm-sized robot that moves with four legs rather than wheels. Legged motion gives it more freedom to navigate unstructured terrains and expresses the joy of life whenever it moves. Such dynamic maneuverability was only seen on a few luxury robots from the best labs or tycoon companies previously. We came up with a grassroots solution to simplify the system to make it affordable and mass-producible.
Bittle is a compact system of five major components: body frame, actuator, electronics, battery, and the software to coordinate all the hardware to perform varied tasks. It’s 20cm x 11cm x 11cm in dimension. It weighs less than 280g but can carry up to 450g cargo under its belly. With proper programming and calibration, It can run faster than two body lengths per second.
Body frame
We designed Bittle's interlocking frame as a 3D puzzle with very few screws involved. Most body parts are symmetric for simplicity and aesthetics.
It's a pleasure to assemble and disassemble Bittle for teaching or maintenance. On average, it takes about one hour to put together the body from scratch.
I have made a short assembling animation and will shoot an in-person tutorial before Bittle's delivery.
The prototype was initially made with 3D printing to validate geometry, interface, and functionalities. 3D printing works well for solid shapes. But when it comes to internal and delicate structure, some problems will arise. The fused layers cannot create a uniformed strength. And it will crack where elasticity is required. The internal ceiling will always be rough, and its thickness is not consistent. Printing will take about three days, and post-processing can take several hours and introduce more errors in critical dimensions. So, we decided that it had to be made with injection molds.
The molds are expensive, and the making process is irreversible. It was a serious move from a maker's toy to an industrial level product. The design precision of Nybble and my other 3D printed gadgets is usually 0.5mm. While for injection molds, the precision is about 0.001mm. So, I had to increase my model's precision to 0.1mm, leaving a moderate range for plastic shrinkage, interfaces fitting, texture and other adjustments to be made on the mold. Besides precision, the CNC making process is a reversed process of 3D printing (subtractive processing vs. additive manufacturing).
There was a set of brand new design principles to consider. I've been living in the factory since March to work closely with their engineers. I eventually redesigned the whole model. Each piece has gone through tens of iterations with 3D printing and a couple of adjustments on the final steel molds. The entire process took about 100 days, and I'm happy with the results. My future models should take less time with this experience too.
With the precise molds, we then inject high-strength plastic to make the parts. They provide Bittle the best protection from collision and dust, though NOT waterproof. In the stress tests, the assembled robot can take an adult's stepping without breaking any components (do NOT try this at home!).
We also coupled the hardness with tenderness. Besides the material's elasticity, the spring-loaded upper legs flatten the joint servos' shock to protect their gears. It's one of our innovations to bring suspension structure on small legged robots. It can significantly extend the lifespan of servos compared with the direct and rigid connection.
Bittle usually survives moderate collision. In extreme cases, it will disintegrate at the designated "weak link in the chain", which is easy and cheap to reinstall or replace.
In case that we may change servo models in the future, we designed the frame to be compatible with most 9g servos. Even the different directions of servo cable were considered in the structure. You could order the "Bittle Shell" perk alone to compile your spare servos into a beautiful action figure. However, we cannot guarantee the DIY robot would walk.
Actuator
Traditionally, small servos are used for steering or other light-duty functionalities. OpenCat got popularity because it showed the servos' potential to be used for high-performance legged motion. However, the new use case puts special requirements for its speed, torque, and precision. Most of the servos on the market are not optimized for legged motion. After returning to China, we visited several servo manufacturers and iterated many times to find the best parameters. We OEMed the model and name it as model P1S with a coreless motor, alloy gears, ball bearing, and plastic case. It's 8.4V compatible, high speed, and has a controllable range of 270 degrees.
We use nine P1S servos on Bittle. Eight of them are for walking joints, and one is for head panning. We will also include one spare servo for replacement, as brushed motors are consumable after a certain period of wearing. You may order the "Bittle Servo Set" perk if you expect to use Bittle intensively for teaching or researching.
The original OpenCat was designed in Google SketchUp. It has fourteen active DoFs, two on the head, and twelve on the legs for walking. On each leg, it has shoulder roll, shoulder pitch, and knee pitch joints. It even has passive joints on the ankles and paws for the best morphological mapping of real animals. However, it makes the project too complicated and expensive at the current stage.
Our next model will have 12+ DoF. The prototype was created almost at the same time as Bittle. Let's hope the project goes well so that we can publish it in two years. BTW, the code for 12 DoF is included in the current OpenCat code. I've seen many hackers make their 12 DoF models already!
Electronics
Bittle is controlled by NyBoard V1, a customized Arduino board with rich peripherals. It's a revision of NyBoard V0 that has been driving 2000 Nybbles all over the world. NyBoard V1 has an Atmega328P with 16MHz CPU, 2K SRAM, and 32K flash. We also added an 8K I2C EEPROM, an IMU, a servo driver for 12 PWM servos, an infrared receiver, and a buzzer. It has a 2x5 socked to mount on a Raspberry Pi and 4 Grove sockets to connect to extensible modules.
We fully utilized the chip (Atmega328P) of a regular Arduino Uno to coordinate sophisticated motions. Next time when you buy an Arduino Uno only to light up an LED, think what great things you can invent with it!
The 12 PWM servos can be used to drive an 8 DoF leg robot with head and tail, or a 12DoF leg robot with 3DoF on each leg. The IMU (Inertial Measurement Unit) is used for detecting body status (orientation and acceleration) and balancing. The I2C EEPROM stores "muscle memory", and we provide an infrared remote to trigger those basic movements. The board also listens to string commands from the serial port, such as "walk", "sit", or more detailed instructions for individual joints.
The design of "muscle memory" makes it possible to generate sophisticated motion patterns on a relatively simple chip. It's based on the fact that most motion sequences are periodic or repetitive. Once practiced and fixed, we don't need to recalculate the pattern again. The implementation of muscle memory is a game on C-pointers and memory. Bittle can remember tens of instinctive motion patterns and can perform more fancy tricks with realtime instructions. You will unlock the full potential of the board after understanding the code structure.
We continue to provide a 2x5 socket for mounting Raspberry Pi on NyBoard V1. It powers the Pi and communicates with it through the serial or I2C network. The Pi gives Bittle the ability to analyze more sensory data, connect to the Internet, and make decisions by itself. Due to Bittle's small size, it best fits Pi Zero and Pi 3A+. For larger Pi models, you will need to tilt the Pi and 3D print some supporting structures.
Extensible modules
We also added four Seeed Grove sockets on NyBoard V1 for extensible modules. To make the installation easier, we designed Bittle's head as a clip to bite on those modules. That explains why we created a dog out of OpenCat this time.
We also compiled a "sensor pack" perk, including an intelligent camera module, a gesture sensor, a PIR motion sensor, and some other useful sensors. There's also a screw hole inside Bittle's head for fixing additional modules. You will discover how I designed the jaw joint to achieve a wide elastic range without using a spring!
Thanks to the Arduino and Raspberry Pi community, you can find many customization ideas for Bittle. As a small team, we only have the energy to build the platform within a limited time. We look forward to our users' exploration of Bittle's full potential!
Wireless
We developed a Bluetooth dongle for wirelessly connecting Bittle from PC or smartphone Apps. It connects to the serial port of NyBoard and can send a reset signal for uploading new sketches. We have tested its compatibility with Windows, macOS, and Android. It can also work on IOS with some additional software.
We also developed a WiFi dongle for wirelessly communicating with Nybble. It can host a small WebUI to send commands through the HTTP protocol. You can access it with a regular web browser.
Wireless allows you to play with Bittle without messing around with cables. Wireless is also essential when you are studying balancing related motion planning. You can even utilize the computational power of a remote "brain" without the constraints of Bittle's size and cargo capacity. The dongles are compatible with our previous Nybble model. We will include one extra set for our Nybble backers as a "Thank You" gift.
Furthermore, we have made a functional beta version called the "BiBoard V0" for developers. It has an ESP32 with 240MHz dual-core CPU, 520KB SRAM, and up to 16M flash. It has built-in WiFi and Bluetooth, 12 PWM servo pins, an IMU, an infrared receiver, an audio amplifier, and a speaker. It has extra communication ports to connect to other devices. We expect a considerable performance boost, and you are welcome to join our exploration.
Software
Bittle is driven by our OpenCat code. It has 3K lines of Arduino codes, excluding 3rd party libraries. It defines the minimal data structure and algorithms for performing quadruped motion. We also provide example commander and parser in Python so that you can send instructions from other devices. The Python master can run on a Raspberry Pi and send serial commands through a direct serial connection. It can also run on any supported processors via wired or wireless connection. You can even translate the Python code into your favorite language. It's already running on thousands of small quadruped robots, including many variants of OpenCat.
If a pure text programming environment still looks too complicated, you may try Codecraft. We are collaborating with TinkerGen, a STEM education company that kindly developed a graphical coding environment for Bittle. They will also provide a free curriculum for you to learn programming in Codecraft and create a wide array of educational and fun projects with it.
We plan to refactor Bittle's code between the production and release it before Bittle's delivery. You may start to explore the current OpenCat repository on GitHub to get familiar with the framework. We will announce new community challenges with huge prizes in the community section!
Battery
We designed a Li-ion battery pack with built-in charging and protection indicated by an RGB LED. It runs at 7.4V~8.4V and can power Bittle for at least one hour of moderate walking. Charging takes about 2 hours with a 5V 1A micro USB port. It can slide into the track underneath Bittle and tune its center of mass. With the slide-in installation mechanism and an anti-reverse plug, it's not too hard to switch batteries. You may order extra batteries for uninterrupted research or playing.
Previously, some users could not find the right batteries for Nybble. This time we take the troubles on our side to make a customized battery pack. Because 2S li-ion batteries have to be coupled by two near-identical cores, the manufacturers recommend a MOQ of 5000 units! 😱 It's putting immense pressure on our budget, storage, and sales, but it also shows our dedication to making Bittle more user-friendly. With some reconfiguration, the battery can also power Nybble.
To demonstrate how Bittle could be smarter, we ODMed an intelligent camera module. It integrates multiple vision recognition algorithms running on its ESP32 dual-core processor. It can return recognized human body, objects, and symbols through serial/I2C/WiFi at a rate of 25fps or 50fps. It can even stream video through WiFi. We will include a deck of symbol cards for building many challenge scenarios.
Bittle is a perfect example to show "small is big". We wanted to encourage people to free their creativity and make wonderful things from limited resources. We have built a growing community since the release of the OpenCat demo. We have @petoicamp on social media to update our fans about the progress of the project. After Nybble's launch, we built the forum on our site (petoi.com) to discuss the project, showcase DIY models, and add function modules.
Looking back at all the challenges we went through, the community was the most significant support that encouraged us to continue. We got thousands of backers to bring Nybble to life. The fund has been our only financial source until the launch of Bittle. Fans all around the world volunteered to translate our documentation into their languages. And many developers added new features to OpenCat. We cannot wait to see what Bittle will bring to us!
To make our community more productive, educational, and rewarding, we will launch an online challenge for all OpenCat users. You can find our proposed rules in this forum post and give suggestions before it officially starts. We have registered www.petoi.camp for your easy access. In short, we will define several tasks that can be measured quantitatively, e.g., programing Bittle to get onto the highest step. You have to both demo your solution and teach others to validate your entry. On the first day of each month, we will announce the world's record-breaker and gift a free Bittle or Nybble to the winner!
You can check this 30-min interview by Hackster.io for all the cool features.
Pathway and DiscussionI was very impressed by the demo of Boston Dynamics' big dog in 2016. It was a huge, bulky, and noisy beast tortured by some rude soldiers. I could not imagine how I could own one until I bought a Raspberry Pi to control servos. I realized that it could be a cheap solution to make a walking robot. There were already some servo-actuated spiders and quadruped crawlers on the Internet. But none of them could reproduce natural mammal gaits, except the discontinued Sony Aibo. So I had to design a robot by myself. That was the beginning of OpenCat.
I majored in physics and computer science. I like Einstein's quote, "Everything should be made as simple as possible, but no simpler." I need to build: an actuated joint, a leg with multiple joints, four legs, and a pattern generator. In one month, I created a robot cat with pop sticks and Raspberry Pi. And in the following month, I taught it basic gaits to patrol around my room.
For the next year, I upgraded the frame from wood to 3D printed plastic and paired the Pi with an Arduino for much better dynamic performance. All of the hardware related topics were new to me. I just learned to solve the problems along the way.
My belief in OpenCat is that we don't have to use too complex theories and structures to reproduce legged motion. I know it by observing its popularity in nature. From giant elephant to "cheap" beetles, they all excel with legs. My goal on the research side was to find the core principle of legged motion and validate it on light-weighted robots. My goal on the application side was to build a pet robot that can entertain people and save them from solitude, including myself.
It could be another Ph.D. subject requiring several years of effort. However, It was hard to apply for university or government grants as a foreigner without related expertise. So I had to finance it myself. After careful consideration, I quit my faculty job at Wake Forest University and moved to Pittsburgh to turn the prototype into a product. I found Factory Unlocked LLC and served there in exchange for a free space.
I set two fundamental design principles: affordable and mass-producible. I focused more on smart design and efficient algorithms because I could not afford expensive components myself. I make direct sales without ads or resellers to keep the price down for final customers. I considered simplicity and reliability to avoid troubles from production to customer service.
I learned laser cutting and Fusion360 in two months. Then I designed Nybble the wooden kitten. The successful crowdfunding in 2018 was my first income two years after the project started. It also brought me confidence and encouragement to face future challenges. I realized that what I want to do is more important than where I want to stay. After nine years in the US, I moved to Shenzhen, China, to enjoy its hardware ecosystem. Now I'm living in a Dongguan factory for the best efficiency of research and production.
Though the project was formalized as a company, I have been the only full-time member until last year. When in the US, I kept a 4-dollar budget for everyday food. The earning from the Nybble project could barely hire another person and have been used up for Bittle and taxes. I'm working 14 hours a day, seven days a week, to keep up with the schedule. On one day, I may be pitching to a billionaire; on the next day, I may be counting screws and looking for the naughty springs. I'm living far away from my parents, and could not settle down to make a family.
The first exposure of OpenCat got me featured in several tech news. It was a great honor for a maker's side project, but I hoped to push the robot to my ideal shape. So I could not stop. I also hoped to support the project by serving real customers rather than telling good stories to venture investors. I may lack the craze for money and missed many chances to grow the business. As a maker deep in my heart, I'm always questioning whether the toy is useful. I'd rather see the clean sales data without ads. I'm still taking fans' reposts and purchases as "votes" on my vision and design. In that sense, I'm almost an artist.
I'm enjoying the freedom (or the customized cage) of this project. Though I'm locked in a small room, I feel I could hear the world. Many people asked me questions about their startup projects. I can hardly give an answer because every company has its specialty. And I'm not successful in terms of business.
I do have some useful experience:
First, you need to find a great thing both you and others love, and realize that money is only a must resource to make it. Then put all your energy and passion into it. Build a working prototype without considering cost-down to get others' feedback. Adjust your design based on your community's input and consider every detail in manufacturing to make it a practical product. Once it's ready, tell everyone about the news, and you will be amazed by their support. Lastly, be prepared for failure. It's still helpful to understand how the real world works.
If I were not running this project, I would never connect to so many great people and appreciate their enormous efforts to achieve a tiny success!
In the end, I'd like to invite you to read and share Bittle's online store to get the news out. We focus so much on Bittle's deliverables that we barely have the budget for ads and marketing. We need your voice to spread out the news to reach more people. The more orders we get, the more leverages we have to negotiate with suppliers for the best quality and production priority. The more users we have, the more fun you get when everyone pitches in and builds applications upon Bittle.
Thanks for your support!
Rz
Comments