Petoi Bittle Nybble · Volume 4
Electronics — Boards, Servos and Power

4.1 Two boards, a decade apart in capability
Every Petoi quadruped carries one of two control boards. They are not revisions of each other; they are different computers, and the gap between them is the gap between an 8-bit microcontroller and a 32-bit dual-core system-on-chip with radios.
4.1.1 NyBoard V1
The legacy board, fitted to the original Bittle and Nybble.
Table 1 — NyBoard V1
| Item | Specification |
|---|---|
| Processor | ATmega328P (Bittle) / ATmega328PA (Nybble) |
| Class | Arduino Uno compatible |
| External EEPROM | 64 Kbit |
| Inertial sensor | 6-axis MPU6050 |
| PWM channels | 16 |
| Grove connectors | 4 |
| Built-in | serial UART, I2C network, infrared receiver, buzzer |
| RGB LEDs | 7 NeoPixel (Nybble) |
| Wireless | none on board; optional Bluetooth and Wi-Fi dongles |
An ATmega328P runs at 16 MHz with 2 KB of RAM. That OpenCat performs inverse kinematics, drives up to twelve servos and closes an inertial balance loop on that part is the most impressive engineering claim in this dive, and it is worth understanding why it is possible: the gait tables are precomputed, so the runtime work is interpolation and correction rather than solving kinematics from scratch each cycle. That design choice is what fits the whole thing into a microcontroller from 2008.
4.1.2 BiBoard V1
The current board, fitted to Bittle X V2 and Nybble Q.
Table 2 — BiBoard V1
| Item | Specification |
|---|---|
| Processor | ESP32-WROOM-32D |
| Cores and clock | dual-core, 240 MHz |
| SRAM | 520 KB |
| Flash | see the conflict below |
| External EEPROM | 64 Kbit |
| Inertial sensor | 6-axis MPU6050 or ICM42670, depending on chip availability |
| PWM channels | 12 (Nybble Q specification) |
| Servo capacity | up to 12 |
| Built-in | serial UART, I2C network, speaker, Bluetooth, Wi-Fi |
The integrated radios are the practical difference. They are what make the web-based block-coding environment, wireless control and on-board voice processing possible without add-on hardware.
4.1.3 A specification conflict worth recording
Petoi’s own pages disagree about the BiBoard’s flash capacity:
Table 3 — Petoi's own pages disagree about the BiBoard's flash capacity
| Source | Stated flash |
|---|---|
| petoi.com, Bittle X technical specifications | 16 MB QSPI flash |
| petoi.com, Nybble Q technical specifications | 4 MB QSPI flash |
OpenCatEsp32 README, upload settings | 4 MB partition scheme |
Two of the three say 4 MB, including the firmware repository’s own documented upload configuration, which is the source with the least incentive to be wrong. The 16 MB figure on the Bittle X page is the outlier.
This dive does not resolve the conflict. It records it, notes that the weight of evidence favours 4 MB, and flags that anyone planning work that depends on available flash should read the partition table off their own board rather than trusting either page.
4.1.4 The honest inertial-sensor entry
Petoi states the IMU is an “MPU6050 or ICM42670 depending on chip availability.” This is unusual candour — most vendors would name one part and quietly substitute — and it has a practical consequence: code that assumes a specific register map may encounter either device. The firmware abstracts this, but anyone reading raw sensor data should confirm which part is fitted.
4.2 Servos
The servos are the most consequential components in the machine, because in a legged robot they set the performance envelope and they are the parts that wear out.
Table 4 — Servos
| Item | Specification |
|---|---|
| Models | P1S alloy-geared, P1L lite plastic-geared |
| Motor type | coreless |
| Maximum voltage | 8.4 V |
| Legacy Nybble | DS031 metal-geared, 11 fitted |
| Quantity in pack | 10 (Bittle), 12 (Nybble Q) |
| Current generation | position feedback |
The pack quantity exceeds the joint count, and this confuses readers of the specification tables. Bittle has 9 joints and ships 10 servos; Nybble Q has 11 joints and ships 12. The extras are spares, not additional axes — an acknowledgement by the vendor that these parts are consumable. That is a realistic piece of kit design and worth reading as a signal about expected service life.
Petoi does not publish torque or speed ratings for P1S or P1L on the specification pages consulted for this dive. Those figures are therefore not established here, which is a real gap: without torque numbers, the payload and dynamic performance of these machines cannot be derived, only observed.
4.2.1 Position feedback
The current-generation servos report actual position rather than only accepting a commanded one. Two capabilities follow, and both are covered further in Vol 5: teaching by demonstration, where an operator poses the robot by hand and the firmware records the joint angles; and mirroring, where one servo follows another that is being moved.
This is the single most useful upgrade in the BiBoard generation for anyone intending to author their own motions, because it removes the need to derive joint angles analytically before trying them.
4.3 Power
Table 5 — Power
| Item | Specification |
|---|---|
| Type | Li-ion battery pack |
| Nominal | 7.4 V, 1000 mAh |
| Current draw | approximately 2 A typical, 5 A maximum |
| Runtime | about 1 hour of continuous walking |
| Charge time | 1.5 hours (BiBoard generation), 2 hours (NyBoard generation) |
| Charger | USB 5 V 1 A; not included with the legacy Nybble |
The same 7.4 V 1000 mAh pack serves every machine in the range, from the 265 gram legacy Bittle to the 433 gram Nybble Q, and delivers roughly an hour in each. The 2 A typical against 5 A peak figure is the number that matters for anyone powering a robot from a bench supply during development: the peak occurs when multiple servos accelerate simultaneously, and a supply sized to the typical figure will brown out during a jump.
An hour of continuous walking is a genuinely good figure for a machine of this size, and it is worth noting that it is continuous walking rather than standby — legged robots consume power holding a pose as well as moving.
Battery cycle life, replacement availability and pack chemistry beyond “Li-ion” are not established by the sources consulted.
4.4 Payload
Secondary coverage states that Bittle is capable of carrying approximately one pound. This figure does not appear on the technical specification pages consulted for this dive and is recorded as unverified. Given that no servo torque ratings were located either, it cannot be checked by derivation.
4.5 Programming the board
Firmware is uploaded through the Arduino IDE. The documented settings for the BiBoard generation are:
Table 6 — BiBoard generation are
| Setting | Value |
|---|---|
| Upload speed | 921600 baud |
| CPU frequency | 240 MHz |
| Flash mode | QIO |
| Partition scheme | 4 MB |
That the repository’s own upload instructions specify a 4 MB partition scheme is the strongest single piece of evidence in the flash-capacity conflict recorded above.
4.6 Figure slots for the unit documented here
Sources
- petoi.com technical specification pages for Bittle, Bittle X, Nybble and Nybble Q — all board, processor, EEPROM, IMU, PWM, servo, battery and charging figures tabulated above, and the source of the recorded flash-capacity conflict.
github.com/PetoiCamp/OpenCatEsp32-Quadruped-RobotREADME — the ESP32 dual-core 240 MHz specification, the twelve-servo capacity, and the Arduino IDE upload settings including the 4 MB partition scheme.github.com/PetoiCamp/OpenCatREADME — the NyBoard’s twelve-servo capacity and its scope.- tvgreport.com, “Review Preview: Petoi Bittle X” — the 520 KB SRAM, 64 Kbit EEPROM, six-axis IMU, and the 2 A typical / 5 A maximum current figures; the payload figure recorded as unverified.
Comments (0)