u2E7uO

SlimeVR_BMI270

 
Overview
SlimeVR_BMI270
1. What is SlimeVR?
SlimeVR is a set of open hardware sensors and open-source software that facilitates full-body tracking (FBT) in virtual reality.

Official documentation
: l0ud/SlimeVR-Tracker-ESP-BMI270 branch

2. Introduction
This project consists of an ESP-12F + IP5306-CK + BMI270, with a CH340K for automatic downloading, an LDO for step-down, and a 3.3V power supply.
The official website describes the BMI270 as follows: The BMI270 is a relatively new experimental IMU for DIY SlimeVR. Its performance appears to be significantly better than the BMI160, while being more affordable.
The casing uses the Fusion360 design shell. 3. Firmware:
The main branch of the SlimeVR firmware does not yet support this BMI270, therefore this project uses the l0ud/SlimeVR-Tracker-ESP-BMI270 branch.
3.1 Building SlimeVR Firmware


: Install the CH340 driver


and VSCode. Install the PlatformIO IDE extension.


Clone the l0ud/SlimeVR-Tracker-ESP-BMI270 branch and open it through VSCode (VSCode will automatically configure the environment during this process; please ensure a stable network connection).


In platformio.ini, set DWIFI_CREDS_SSID and DWIFI_CREDS_PASSWD.


Replace src/defines.h with


: #define IMU IMU_BMI270
#define SECOND_IMU IMU
#define BOARD BOARD_CUSTOM
#define IMU_ROTATION DEG_90
#define SECOND_IMU_ROTATION DEG_0

#define PRIMARY_IMU_OPTIONAL true
#define SECONDARY_IMU_OPTIONAL true

#define MAX_IMU_COUNT 1

#ifndef IMU_DESC_LIST
#define IMU_DESC_LIST
IMU_DESC_ENTRY(IMU, PRIMARY_IMU_ADDRESS_ONE, IMU_ROTATION, PIN_IMU_SCL, PIN_IMU_SDA, PRIMARY_IMU_OPTIONAL, PIN_IMU_INT)

#endif

#define BATTERY_MONITOR BAT_EXTERNAL
#define BATTERY_SHIELD_RESISTANCE 180

#define PIN_IMU_SDA D2
#define PIN_IMU_SCL D1
#define PIN_IMU_INT D0
#define PIN_IMU_INT_2 D5
#define PIN_BATTERY_LEVEL A0
3.2 1. Upload firmware

using a data cable connection.
Click PlatformIO:Upload and wait for the flashing to complete.

2.

Open the SlimeVR server and follow the prompts

. 3. The I2C address for other
BMI270s is 0x68 (when SDO pin is grounded) / 0x69 (when SDO pin is pulled high). In the SlimeVR source code, the default I2C address for the MPU9250/BMI160/MPU6500/ICM20948/ICM42688 as the main sensor is 0x68. In my first version, I pulled the SDO pin high, so I replaced 0x68 and 0x69 in the src/sensors/sensoraddresses.h file. No need to pay attention to modified versions.
4. Thanks to

SlimeVR_BNO085 for the main circuit reference, and
to zhangwenchao1992/SlimeVR_DeftTracker for the housing and base design reference.
参考设计图片
×
 
 
Search Datasheet?

Supported by EEWorld Datasheet

Forum More
Update:2026-03-28 03:05:44

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
community

Robot
development
community

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号