Only this pageAll pages
Powered by GitBook
1 of 13

🇺🇸English Version

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Useful Links 🕸

Nybble User Manual 😼

Rongzhong Li

Getting started

To keep these instructions simple to use, I’m focusing on the assembly rather than an in-depth explanation.

If you have specific questions on “why” rather than “how”, please post on our Petoi robot forum at or write to [email protected].

You can support us by shopping at Petoi coding robot shop. Our social media (Instagram/Twitter/Facebook/GitHub) account is @PetoiCamp. Share your build with us by tagging #nybble #petoi #opencat so we can repost it for you!

Last Updated: 07/24/2022

1 🧘‍♂️ Tools and Preparation

"A beard well lathered is half shaved." 🪒

1.1 Preparation

Prepare a clean desk and some small boxes to unzip the package. Take a picture of the kit contents in case you lost something later.

It’s better to work in a room without carpet or textured mosaic. Little screws and springs can magically hide themselves if dropped onto the ground.

1.2 Tools and accessories

2 🧩 Open the Box

"life is like a box of Nybble." 🔍

The actual kit contents and packaging method may be adjusted as we improve the product. This instruction will keep consistent with the current namespace.

Newest kit contents:

Early kit contents:

2.1 Cut body pieces off the baseboard.

8 👨‍🏫 Teach Nybble New Skills

"Give a cat a fish and you feed it for a day. Teach a cat to fish and you feed it for a lifetime." 🎣

8.1 Understand skills in InstinctNybble.h.

8.2 Example InstinctNybble.h

8.2.1 Defined constants

8.2.2 Data structure of skill array

8.2.3 Suffix for indicating Instinct and Newbility

8.3 Define new skills and behaviors

8.3.2 Add more skills in InstinctNybble.h

There are two ways to create new skills for Nybble:

  • Use the Skill Composer in the desktop app

  • Write Arduino code

Don’t mix with regular AA batteries (1.5V)!

The capacity should be around 800mAh.

Smart charger for batteries

Wrong charger may cause danger!

Tool

Note

Soldering iron w/ accessories

HC-05 bluetooth module

Color paints

Give your Nybble a unique look

3D printer w/ accessories

Add your special design

Arduino/Raspberry Pi kit

Add more gadgets to Nybble

Tool

Notes

Utility knife

Cut the tabs holding the wooden puzzle pieces

Sanding paper/foam

Remove pointy fibers

Flat and Phillips screwdrivers

For M2 (diameter = 2mm) screws

A Windows/Mac/Linux Computer

Install the latest Arduino IDE or the Desktop App

USB-microUSB or USB-TypeC cable

Connect the uploader to the computer.

There might be some tar residue on the wooden pieces from laser cutting. Use a piece of wet soft tissue to clean up the board.

The functional pieces are attached to the baseboard by lightly cut tabs. Though you could pop those pieces out by hand, it’s very highly recommended that you use a knife to cut on the backside of the tabs to avoid potential damage to the middle layer, where the fiber direction is perpendicular to the surface fiber.

After taking out all the pieces from the baseboard, you are encouraged to bend and break the remaining structures on the baseboard, to understand the mechanical properties of plywood, such as anisotropic strength, elasticity, etc. That will give you confidence in later handling.

2.2 Remove pointy fibers.

Use the sanding foam to clean up any thorns on the pieces. Don’t sand too much, or it may affect the tightness between joints.

2.3 Screws

There are five different screws used in the kit. I’m coloring them differently to indicate their locations better. Not all screws are required to assemble Nybble. Not all holes on the puzzle pieces need screws. Observe the assembling animation carefully to locate them.

● A is for attaching servo arms. D (sharp tip) is for attaching servos to the frame. A and D come in each servo's accessory pouch with plastic servo arms.

● B is for attaching servo arms/circuit boards to the frame.

● C (flat tip) is for binding the thighs.

● E (always the longest) is for attaching the battery holder.

In later versions, the types of screws are reduced to simplify the kit content and avoid confusion.

  • Screw B and D are both replaced by C.

  • Screw E is canceled after a rechargeable battery is used to replace the battery holder.

For the earliest packages, B, C and E are located in the shank board within the multi-punched blocks like this:

2.4 Springs

There are three different springs: F, G, H.

● The eight spring F is used for elastic connection in the thigh. There’s one spare unit.

● The hard short spring G is for the neck

● The soft short spring H is for attaching the battery holder.

In later versions, the types of springs are reduced to simplify the kit content and avoid confusion.

  • The hard short spring G is replaced by spring F.

  • The soft short spring H is canceled after a rechargeable battery is used to replace the battery holder.

2.5 Servos

We are switching to a new servo manufacturer from recent batches. Previously, MG92B was used for the four shoulder joints. MG90D was used for other joints.

The new servos are differentiated by their cable length. Shorter cables are used for the neck, tail, and four shoulder joints. Longer cables are used for head tilting and the four knee joints.

For hobbyist servos, there are several fields where they can differentiate.

In the Nybble kit, we are using ODMed metal gear, digital PWM, HV servos with bearing, and brushed iron core motors. Other generic servos can still work with the OpenCat framework but may need more trials and errors for best performance.

Gear

Signal

Protocol

Voltage

Motor

Bearing

Plastic

Analog

PWM

5V

Brushed

None

Metal

Digital

2.6 Test Stand

You can 3D print this test stand so Nybble's legs won't touch the ground during programming and testing.

7 🕹 Play with Nybble

"You can't direct the wind, but you can adjust your sails." ⛵️

See the Getting Started guide.

There are 4 methods for users without any programming experience to control Nybble:

  • Use the IR Remote Controller.

  • Use .

  • Use .

  • Use .

If you have some programming experience or want to explore more advanced features, you can try the following methods:

  • Use .

  • Use .

  • Use .

  • Use .

11 🛠 Do more with Nybble

"Faster! Smarter! Cuter!" 🦾

To be written by 👉 YOU!

Share your knowledge and creativity with the community at https://www.petoi.com/forum.

5 ⌨️ NyBoard Configuration

"Who loves fried chips?" 🍟

There are two methods to config the NyBoard:

  • The simplest method is to use the Petoi Desktop App. No programming is involved. You can play with some preset modes.

  • If you have some programming experience, you can use the Arduino IDE. You will be able to modify the open-source codes for your new projects.

If you are using the BiBoard, please refer to this Arduino configuration instruction.

  • The simplest method is to use the .

  • If you have some programming experience, you can use the .

9 👨‍🎓 Understand OpenCat.h

"Let the cat out of the bag." 🧞‍♂️

🔬It will make another textbook.

The controlling framework behind Nybble is OpenCat, which I've been developing for a while. You can read more stories from my on Hackster.io.

It's too much work for now 🤷🏻‍♂️ but you are welcome to discuss it with me on the forum or through email. Good thing is, I will keep the code compatible with future OpenCat models, and even ! Hopefully, the documentation will be completed during the processes.

10 🔩 Extensible Modules

Please refer to the in the Doc center.

Use Raspberry Pi.

  • Use the extensible modules.

  • Petoi Mobile App
    Petoi Desktop App
    Petoi Coding Blocks
    Arduino IDE
    Python
    MicroPython
    ESP8266 + Python
    Petoi Desktop App
    Arduino IDE

    Multimeter

    Test and debug

    Oscilloscope

    Test and debug

    Hot glue/super glue

    Avoid using them. OpenCat is designed to be soft!

    2 x 14500 3.7V Li-ion batteries
    Solder the decorative LED to ultrasound sensor
    Wirelessly upload sketch and communicate
    Extensive Modules

    Serial

    HV (up to 8V)

    Coreless

    Yes

    Brushless

    posts
    your own DIY robots

    6 📐 Calibration

    "A miss is as good as a mile." 🎯

    You should NOT attach the legs to the servos before the first-time calibration.

    When the servos are powered off, their output shafts can be rotated to random angles. If you attach the legs, the robot won't know where the legs are pointing. When the robot is powered, the legs could run into each other or collide with the body. The servos may be damaged after getting stuck for a long time.

    The joints of the robot have to be calibrated before future use. Make sure all the servos are connected to the right spot on the circuit board in the right direction, the battery is powering (the yellow LED in the cat's logo is lighting up), and all the legs and head/tail are NOT attached to the servos so that the servos can rotate freely.

    Our calibration routine will send a calibration signal to the main board and rotate all the joints to known positions. Then you can attach the legs close to the reference posture, and fine-tune the angles using the software.

    There are three methods to calibrate Nybble:

    • Use the mobile app .

    • Use the .

    • Use the .

    Petoi
    Petoi Desktop App
    Arduino IDE

    3 🏗 Assemble the Frame

    "The whole is more than the sum of its parts." 🔩

    We highly recommend you watch the overall assembling process before starting. Some updated components are noted in the following paragraphs.

    3.1 Head and neck

    3.1.1 Part list

    3.1.2 Prepare ultrasonic sensor

    The obstacle avoidance algorithm using the ultrasound sensor has not yet been integrated into the released code. The following setup provides a starting point but is not mandatory.

    We include an ODMed in the Nybble kit. It doesn't require soldering, but you need to trim off the plastic clip residue of the connection wire on the head's end.

    You can download the demo code at

    BelowT is a tutorial video:

    With the basic distance detection and some proportional reactions, you can achieve the following demo:

    Before Jan 2021, we used a standard ultrasonic sensor. The sensor is connected to the NyBoard via a 4-pin cable.

    • Solder on the optional LED to the ultrasonic sensor

    The optional RGB LED can be soldered to the four pins of the ultrasound sensor () to indicate its working status or can be programmed as decorative light. Bend the pins of the ultrasonic sensor for later installation.​Write a caption​

    3.1.3 Trim the servo arms for attaching servos.

    Most of the servo arms on the model are trimmed from the cross-shaped arm I. Since there will be more unused straight arms, you can practice trimming with them first.

    An alternative method to trimming is using a half-burned knife to cut the plastic parts off. Leave a little bit longer because melted plastic will have a rounded edge.

    Pay attention to the width difference between servo arm I’s two long sides, as well as the trimming location (using screw holes as references).

    As we switched servo suppliers, the servo arms also changed a little bit (as shown below). To reduce confusion, the servo arm I can be used for most of the joints, just trim it accordingly. Servo arm K is used for the tail. Servo J can be omitted.

    In kits after January 2021, we included the new servo arms that require minimal effort to cut. You only need to cut the cross-shaped servo arm to make the L-shaped connector for the neck joint.

    3.1.4 Assemble the head group.

    Watch the to understand the assembling process, but don't assemble them all at once. Every part that connects to the servo's output shaft should not be fixed before calibration.

    Notice how the servo wire is organized in the head.

    Note that the base should only be partially assembled for later calibration. Otherwise, it will be difficult to insert the servo between neckpieces.

    3.2 Body

    3.2.1 Part list

    • NyBoard only

    Note that without the Raspberry Pi, the NyBoard is mounted to the underside of y1 with the servo connections facing downward. In later versions, the y1 piece is designed to be symmetric so that both ends have two screw holes.

    • NyBoard with Raspberry Pi

    Use y1Pi to replace y1, and add Pi Stand. Pay attention to the location of the pink pieces. Note that with the Raspberry Pi, the NyBoard is mounted on top of y1Pi.

    On earlier batches of NyBoards, the manufacturer used taller jumper pins than expected, so it will be necessary to bend pins or otherwise modify the NyBoard to fit a Pi on top and use the Pi Stand. There is a list of suggested solutions in the forum by this link:

    • Other controllers

    I also included 5 x 1”/4 nuts for mounting other circuit boards.

    3.2.2 Install the adjustable battery holder to the belly

    After June 2022, we start to equip Nybble with a rechargeable Li-ion battery pack. It's also available at our if you get an earlier version of Nybble with a battery holder. Please add a note if you need the as well.

    If you get the battery holder version:

    Bend the hinge L of the battery holder to 90 degrees, close to the wall. It functions as a switch. Insert the long screw E through the rivet so that you can better handle the rivet. Insert and push the rivet into the hole on the bottom of the battery holder. Pay attention to the holes’ locations.

    The spring attached structure of the battery holder is used for shifting the center of mass when fine-tuning gaits.

    3.2.3 Assemble the body group

    Pay attention to the long pins of the infrared receiver and FTDI port. They are designed to be bent in favorable directions. Don’t bend the pins too often or it will lead to metal fatigue. Observe the if you want to mount a Pi.

    Assemble the body group as shown in the .

    The spine piece may be thicker than the slot on the shoulder. You can insert it from the outside first to compress the tip and widen the slot, then insert it into the inside of the shoulder.

    3.3 Shank

    3.3.1 Part list

    3.3.2 Attach the rubber to the tip of the shank.

    The serrated structure on the tip of the shank is already good for walking. The rubber toe is optional to increase friction and soften each step.

    3.3.3 Insert the servo into the slot on the shank.

    Pay attention to the direction that the wire is twisted. The small dent on the long edge is designed to let the wire go through. Think about the symmetry of the four legs. Assemble the shank as shown in the .

    DO NOT install the servo screw A yet.

    3.4 Thigh

    3.4.1 Part list

    In later versions, we will use plastic pieces for thigh2.

    3.4.2 Trim the servo arms for attaching servos.

    The location has been shown in the section. The trimmed narrower servo arm is designed to be inserted into spring F.

    3.4.3 Assemble the thigh.

    Before closing thigh1 and thigh2, put the wire of the shank through the slot in the middle of the thigh. Think about the symmetry of the four legs.

    When installing the screws, pay attention to the directions you insert them.

    The servo arm should be able to slide in the track on thigh2 with subtle friction after thigh1 and thigh2 are screwed together. You can tune the tightness of screw C to achieve proper friction. If you need more control over the tightness:

    • Scratch the track using a flat screwdriver to reduce friction.

    • Apply a little paper glue to the track and let it dry to increase friction.

    Assemble the thigh as shown in the .

    DO NOT screw the neck and legs to the body’s servos yet.

    3.5 Tail

    3.5.1 Part list

    3.5.2 Assemble the tail.

    The screw D is installed in the third hole counted from the center of the servo arm K. Pay attention to the order that every piece is stacked. The wheel (tail2) should be able to rotate with little friction, and the whole tail should be able to tilt by a small degree.

    Assemble the tail as shown in the .

    In kits after January, we included a special servo arm to simplify the installation of the tail joint.

    DO NOT connect the tail to the body yet.

    4 🔌 Connect Wires

    "Everything is connected." 🤝

    4.1 Joint map

    Nybble's servos are connected to NyBoard's PWM pins symmetrically and resemble the nerves along the spinal cord. Though Nybble doesn't have shoulder roll DoF, those indexes(4~7) are reserved for the full OpenCat framework.

    Solder 4-pin ultrasonic sensor header to NyBoard

    The ultrasonic module is connected to the exposed GPIO pins located in the opposite corner of the board from the TTL connector. You can customize the pin definitions in OpenCat.h. By default definitions, solder the ultrasonic module connection header in the holes labeled “D8 D9 D10 GND” as pictured below.​Write a caption

    The battery holder is generic for AA (1.5V) batteries. But Nybble uses 3.7V Li-ion batteries.

    ultrasonic sensor with RGB LED
    https://github.com/PetoiCamp/OpenCat/tree/main/ModuleTests/testRGBLedUlrasonic
    instructions
    head animation
    https://www.petoi.com/forum/clinic/placement-of-raspberry-pi-3b
    online store
    3D-printed belly
    adjusted configuration
    body animation
    shank animation
    Head and Neck
    thigh animation
    tail animation

    NyBoard V0_* and V1_* have different PWM pin orders, but the physical servo connection remains the same. All adjustments are handled in the software. You don't even need to read the pin numbers on the PCB board.

    4.2 Plug in the servos

    Observe the indexing pattern to connect servos with the correct PWM pins. Be careful with the wires’ direction. The brown wire of the servo is GND, while the GND on NyBoard V0_1 is along the centerline. In later versions of NyBoards, they are the opposite.

    A quick check is that all On NyBoard V0_1 the brown wires should be far away from the board surface. On NyBoard V0_2 the brown wires should be close to the board surface.

    From NyBoard V0_2 (to NyBoard V1_X), the location of servo wires will still be the same, but their direction of colors will be opposite.

    Even though the PCB layouts vary on different NyBoards, the wiring pattern is the same. You don't need to read the indexes of the servo pins when plugging the servos. The joint mapping is done automatically in the OpenCat code. You just need to select the right board version when uploading the code.

    4.3 Wiring

    4.3 Prepare for calibration

    You must enter the calibration mode before installing the head and the legs. After entering the calibration state, you need to attach the head, tail, and leg components to the servo's output shaft. Don't screw them yet.

    There are five methods to enter the calibration state:

    • Long-press the battery and boot up the robot with one side up. It will enter the calibration state automatically.

    • Use the mobile app and enter the calibration panel.

    • Use in Petoi Desktop App:

      • If you have already connected the robot and computer with a serial port, It will enter the calibration state after you click the "Joint Calibrator" button

      • Click the "Calibrate" button in the calibrator's interface

    • In the of Arduino IDE, enter the serial command "c"

    • Press the calibrating button (3,3 - the 3rd row and 3rd column) on the infrared remote.

    Install the head, tail and leg components as following picture:

    You can install the legs with the reference of a triangle ruler or the L-shaped ruler included in the kit.

    4.4 Wiring

    After calibration, troubleshooting and final assembling, It’s time to think about wiring routes to make Nybble look neat. There are multiple slots on the frame designed as a wire organizer. Feel free to develop your own style for connecting future accessories. Make sure the wires don’t get in the way of the servos‘ movement.

    Below are the wiring routes.:

    NyBoard V1_* :

    NyBoard V0_* :

    Observe the wiring pattern on the board
    OpenCat Nybble standThingiverse
    Petoi
    Joint Calibrator
    serial monitor
    Simply match and slide the battery
    Logo
    NyBoard with Raspberry Pi
    NyBoard alone