AIPI Moto Studio is a visual motion editing platform designed for AIPI Lite creators.
Through our early interactions with AIPI Lite creators, we discovered that many users were connecting AIPI Lite to their own DIY projects, giving their creations the ability to speak, or even bringing old toys back to life. We were amazed by the creativity and hands-on skills of the AIPI Lite community, as well as their enthusiasm for the platform.
To make it easier for creators to bring their ideas to life with AIPI Lite, we developed Moto Studio.
With Moto Studio, you don't need to write code. Simply configure your hardware output devices and use the visual editor to create motion sequences that can be controlled by AIPI Lite—including servo movements, motor operations, and other hardware actions.
By combining different actions, you can create fun projects such as:
Turn your ideas into reality with AIPI Lite and Moto Studio.
AIPI Lite is a customizable AI-powered smart hardware device designed for creators. More than just an AI device capable of natural conversations, it serves as an open platform that connects users' creativity with the capabilities of artificial intelligence.
Through the AIPI Creation Platform, users can customize AI personalities, select AI models, configure conversational capabilities, and create unique AI voices through voice cloning. Once created, an AI agent can be connected to AIPI Lite, allowing users to interact with it naturally through voice in real time.
Whether you're creating a companion, a learning partner, a creative character, or an AI companion with a unique personality, AIPI Lite makes it easy for everyone to create and bring their own AI agent to life.
Built around powerful AI interaction capabilities and an open creator-focused philosophy, AIPI Lite brings together hardware, AI models, and personalized creation. It enables users to move beyond simply using AI to creating their own AI experiences, opening up new possibilities for intelligent interaction.
AIPI Lite is powered by ESP32-S3 as its main controller.
The ESP32-S3 is a high-performance, low-power microcontroller designed for IoT applications. It provides a wide range of communication and control capabilities for device control, data processing, and interactive applications.
Key Features:
In AIPI Lite, the ESP32-S3 receives motion commands created by the user and controls connected external devices through PWM signals. This allows creators to control hardware such as servos and motors and bring their custom projects to life.
The back of AIPI Lite features a 6-pin expansion connector for connecting external hardware modules and enabling a wider range of creative projects.
| Name | Function | ESP32-S3 | Moto Studio Output |
|---|---|---|---|
| VBAT | 5 V power output, up to 500 mA total | IO38 | / |
| GND | Ground connection | GND | / |
| TX | TX | IO43 | CH4 |
| RX | RX | IO44 | CH3 |
| IO41 | IO | IO41 | CH2 |
| IO40 | IO | IO40 | CH1 |
AIPI Lite supports controlling servos through PWM (Pulse Width Modulation) signals, enabling precise position control. A servo contains a motor and a control circuit that adjusts its position based on the incoming PWM signal.
A servo is a small actuator designed to precisely control position and angle. It can rotate to a specified angle according to a control command and hold that position. Servos can be used to control the movement of robot joints, robotic arms, grippers, and other mechanical structures.
Based on their operating modes, common servos can be divided into two types:
AIPI Lite supports controlling motors through PWM (Pulse Width Modulation) signals. By adjusting the PWM duty cycle, the motor's operating parameters can be controlled.
A motor is a power actuator that converts electrical energy into mechanical motion, providing continuous power for a device.
Unlike a servo, a motor is primarily used to control speed and direction (clockwise/counterclockwise) rather than maintain a specific position. By controlling the motor through PWM signals, AIPI Lite can adjust the motor's speed and direction, enabling a wide range of motion effects, such as driving a small robot car, rotating mechanisms, and other moving structures.
| Servo | Motor | |
|---|---|---|
| Primary Function | Position Control | Power / Motion |
| Control Target | Angle | Speed |
| Motion Type | Limited-Angle Rotation | Continuous Rotation |
| Typical Applications | Robotic Arms, Grippers | Robot Cars, Fans |
| Control Method | PWM | PWM |
Before connecting, you need to expose the six pins on the back of the AIPI to facilitate connection;
Method 1: Solder six DuPont wires to the six pins
Method 2: Official No-Solder Mechanical Connection
The official mechanical connection method allows you to connect the hardware without soldering.
First, print the provided STL file using a 3D printer. Then, prepare six male header pins and assemble the components as shown in the figure.
You can also use elastic rubber bands to secure the structure and apply additional pressure, helping ensure better contact between the header pins and the connector.
Using the MG90S servo as an example:
Connect the wires as follows:
| MG90S Wire | Function | AIPI Lite Connection |
|---|---|---|
| Brown | GND | GND |
| Red | Power | VBAT |
| Yellow | PWM Signal | TX / RX / IO41 / IO40 |
Connect the brown wire to GND, the red wire to VBAT, and the yellow wire to any available TX, RX, IO41, or IO40 pin on AIPI Lite.
Note: Make sure the servo wiring is connected correctly before powering on the device. Reversing the power and ground connections may damage the servo or AIPI Lite.
AIPI Lite supports connecting up to four servos simultaneously.
For each servo:
When connecting multiple servos, assign each servo's signal wire to a different available signal pin.
| Servo | GND | Power | PWM Signal |
|---|---|---|---|
| Servo 1 | GND | VBAT | TX |
| Servo 2 | GND | VBAT | RX |
| Servo 3 | GND | VBAT | IO41 |
| Servo 4 | GND | VBAT | IO40 |
!Important: It is not recommended to power multiple servos directly from the development board.
For projects using multiple servos, we recommend using an external power supply for the servos while connecting the external power supply ground (GND) to the ESP32/AIPI Lite GND.
This creates a common ground, allowing the PWM control signals from AIPI Lite to be correctly referenced by the servos.
Notes
The home page displays several quick-start options, such as connecting devices, creating new actions, and recently edited action groups.
Connect the AIPI to your computer using a data cable that supports data transfer, then click "Connect Device" to establish a serial connection.
If the device is connected successfully, the web page will display the Serial Port Selection dialog. Select the appropriate serial port, then click Connect.
Once connected, the device page will display information about the currently connected device.
!Note: If the device information is not displayed, make sure that your AIPI device has been updated to the latest firmware version.
Click "New Motion" to go to the motion editor page
The Output Device panel on the left allows you to add and configure output devices and their corresponding output ports.
For example, when connecting an MG90S servo, add a CH1 output port and configure it accordingly. In this example, the servo is connected to IO40 on AIPI Lite.
Important: Make sure the output port configured in Moto Studio matches the corresponding physical pin on the back of AIPI Lite. Otherwise, the connected device may not respond or move as expected.
| Pin Names | AIPI Motion Editor Output Port |
|---|---|
| VBAT | / |
| GND | / |
| TX | CH4 |
| RX | CH3 |
| IO41 | CH2 |
| IO40 | CH1 |
Once the output device has been added, you can test whether the connection is working properly by dragging the PWM slider at the bottom.
When the servo is connected correctly, moving the PWM slider will cause the servo to move according to the corresponding PWM value.
This feature provides a visual way to understand how different PWM values affect servo movement, making it easier to identify the servo's operating range and movement behavior before creating motion sequences.
Tip: A PWM value of 1500 represents the center position. At this value, the servo is at its center position, which is recommended as a safe starting position for setup and testing.
Before introducing the Block Editor, it is important to understand the relationship between Motion Groups, Motions, and Motors/Servos.
A Motion Group is a complete sequence made up of multiple motions. It describes a series of actions that a device needs to perform in a specific order.
For example, users can combine individual motions into a Motion Group to create behaviors such as waving, dancing, or nodding.
A Motion Group can contain multiple motion steps. By managing and triggering these motions as a single unit, complex movement sequences can be quickly executed and reused.
A Motion is the basic execution unit within a Motion Group. It represents a specific operation that the device needs to perform.
For example:
Each Motion contains the corresponding output device and motion parameters. Multiple Motions can be arranged in sequence to create a complete Motion Group.
Motors and servos are the hardware devices that execute motion commands. They convert the commands configured in the software into actual mechanical movement.
A servo is primarily used for precise position control, such as controlling the angle of a robotic arm joint or gripper.
A motor is primarily used to provide continuous rotational motion, such as driving a small robot car or other motorized mechanisms.
On AIPI Lite, motors and servos are controlled through PWM signals. Users can configure device parameters in the Motion Editor to create different movement effects.
The basic structure can be understood as:
Motion Group → Motion → Motor / Servo
This structure allows creators to combine simple hardware movements into complex and reusable motion sequences.
In the Block Editor, the green block at the top represents a Motion Group.
You can edit the Motion Group name to make it easier to identify and remember. Once the Motion Group has been created, you can simply say its name to AIPI Lite, and AIPI Lite can directly execute the corresponding motion sequence.
The "Loop … Times" option determines how many times the entire Motion Group will be executed. For example, setting it to 3 times means the Motion Group will be performed three consecutive times.
The Steps section contains the individual motions that make up the Motion Group. Drag and drop the appropriate Motion Blocks into this section and arrange them in the desired execution order.
The yellow blocks represent individual Motions.
The "Duration … ms" setting determines how long the motion takes to complete. For example, if a servo moves from 0° to 90°:
In other words, the shorter the duration, the faster the movement.
The "Delay … ms" setting determines the amount of time between the completion of the current motion and the start of the next motion.
Important: The delay is measured after the current motion has finished. It does not include the motion's duration.
For example:
Duration: 500 ms
Delay: 200 ms
→ The servo moves for 500 ms, then waits 200 ms before the next motion starts.
Drag and drop the yellow Motion Blocks into the Steps section of the Motion Group block.
Tips
Example:
Motion 1 → Duration: 500 ms → Delay: 200 ms → Motion 2
This means Motion 1 runs for 500 ms, waits another 200 ms, and then Motion 2 begins.
The blue blocks represent Output Modules. They use PWM signals to control the movement or operation of connected servos and motors.
Drag and drop the blue Output Blocks underneath a Motion Block to define the hardware output for that motion.
A single Motion Block can contain up to four Output Blocks, allowing multiple servos or motors to operate simultaneously as part of the same motion.
Structure:
Motion Group → Motion Block → Output Blocks
For example, one Motion Block could control four servos at the same time, allowing creators to create more complex movements such as a robot raising both arms, turning its head, and moving another mechanism simultaneously.
Let's use an MG90S servo as an example. We will create a motion sequence in which the servo:
Note: The first Motion Block does not allow you to set a custom duration, so its duration is set to 100 ms by default.
The first motion is:
Rotate 90° in 100 ms
First, add a Motion Group Block, then drag a Motion Block into the Steps section.
Set the following parameters:
100 ms1100 msThe delay is set to 1100 ms because the servo takes 100 ms to complete the movement, followed by a 1-second pause:
100 ms + 1000 ms = 1100 ms
Next, drag an Output Block into the Motion Block.
The MG90S is a 0–180° positional servo, with a typical PWM range of 500–2500 μs. Assuming 1500 μs represents the center position, moving from 1500 μs to 2500 μs corresponds to approximately 90°.
Set the PWM value to:
2500 μs
The second motion is:
Return to the original position in 500 ms
Add another Motion Block and configure it as follows:
500 ms500 ms1500 μsSince there is no following motion, the delay does not affect the execution of another step. Setting it to 500 ms keeps the timing configuration consistent.
| Step | Motion | Duration | Delay | PWM |
|---|---|---|---|---|
| 1 | Rotate 90° | 100 ms | 1100 ms | 2500 |
| 2 | Return to Center | 500 ms | 500 ms | 1500 |
The resulting behavior is:
Center → Rotate 90° → Pause 1 second → Return to Center
After completing the motion setup, click the "Test Run" button below the motor/output controls to test the motion. The servo should move according to the configured parameters.
Below the editor, you can configure the Motion Group Settings. These settings allow you to specify when the Motion Group should be automatically executed based on the device's current state.
For example, you can configure a Motion Group to execute automatically when AIPI is listening.
If no automatic trigger is configured, you can simply say the name of the Motion Group to AIPI Lite, and the device will execute the corresponding motion sequence.
Note: Motion Group trigger settings only take effect after the Motion Group has been uploaded/flashed to the device.
After completing the Motion Group, click "Save" to save it to the Motion Library.
At this point, the Motion Group is only saved in Moto Studio and has not yet been transferred to AIPI Lite.
To make the Motion Group available on the device, click "Deploy to Device" to upload it to AIPI Lite.
Note: The Motion Group will only be available for execution on AIPI Lite after it has been successfully deployed to the device.
In Motion Library, you can view all the Motion Groups you have saved.
You can manage your Motion Groups by:
The official motion examples can be used as references to help you understand how to create and configure different types of motions in Moto Studio.