BPI-Bit
Contents
Introduction
The BPI bit (also referred to as BPI-bit, stylised as bpi:bit) is an ESP32 with 32-bit Xtensa LX6 dual-core processor based embedded system. It supports Webduino, Arduino, MicroPython as well as Scratch X programming environments.
BPI:bit hardware main function:
bpi:bit board is 5 cm x 5 cm in size, weighs 10 ~ 12 grams, it houses a 20-Pin edge connector, built-in lighting matrix with 25 programmable full-color LEDs , two photosensitive light sensors, two programmable buttons, an NTC resistor, a buzzer and a nine shaft sensor (triaxial acceleration Three-axis gyroscope and three-axis magnetic compass), the I/O space configuration is as follows:
- Full color LED matrix: GPIO4
- Photosensitive sensor: GPIO36 (Analog A0, upper left), GPIO39 (Analog A3, upper right)
- Button switch : GPIO35 (Botton A), GPIO27 (Botton B)
- Temperature sensor: GPIO34 (Analog A6)
- Buzzer: GPIO25
- MPU-9250 9-axis sensor: GPIO0, GPIO21(SDA), GPIO22(SCL)
Hardware
Description
The board is 5 cm × 5 cm and has an ESP32 module with 32bit Xtensa LX6 dual-core processor, with a capacity of up to 600DMIPS, with a built-in 448KB ROM and 520 KB SRAM.accelerometer and magnetometer sensors,2.4G WiFI,Bluetooth and USB connectivity, a display consisting of 25 LEDs, two programmable buttons, and can be powered by either USB or an external battery pack.The device inputs and outputs are through five ring connectors that are part of the 23-pin edge connector.
BPI:bit provides a wide range of onboard resources, supports photosensitive sensor, digital triaxial sensor, digital compass, temperature sensor interface.Webduino:bit have 25 intelligent control LED light source that the control circuit and RGB chip are integrated in a package of 5050 components.Cascading port transmission signal by single line.Each pixel of the three primary color can achieve 256 brightness display, completed 16777216 color full color display, and scan frequency not less than 400Hz/s.
BPI:bit use MPU9250 onboard, MPU-9250 is a multi-chip module (MCM) consisting of two dies integrated into a single QFN package. One die houses the 3-Axis gyroscope and the 3-Axis accelerometer. The other die houses the AK8963 3-Axis magnetometer from Asahi Kasei Microdevices Corporation. Hence, the MPU-9250 is a 9-axis MotionTracking device that combines a 3-axis gyroscope, 3-axis accelerometer, 3-axis magnetometer and a Digital Motion Processor™ (DMP) all in a small 3x3x1mm package available as a pin-compatible upgrade from the MPU-6515. With its dedicated I2C sensor bus, the MPU-9250directly provides complete 9-axis MotionFusion™ output. The MPU-9250 MotionTracking device, with its 9-axis integration, on-chip MotionFusion™, and runtime calibration firmware, enables manufacturers to eliminate the costly and complex selection, qualification, and system level integration of discrete devices, guaranteeing optimal motion performance for consumers. MPU-9250 is also designed to interface with multiple non-inertial digital sensors, such as pressure sensors, on its auxiliary I²C port.
Interface
Edge interface
File:BPI bit edge pin define.png
PIN definitions
The edge interface is much compatible with those of micro:bit. so you may able to use micro:bit accessories on bpi:bit
HardWare PIN define of BPI:bit | |||||
Pin Name | Analog Function1 | Analog Function2 | Function1 | Function2 | Power |
P3 | ADC2_CH4 | GPIO13 | |||
P0 | ADC2_CH8 | DAC_1 | GPIO25 | ||
P4 | ADC2_CH3 | GPIO16 | |||
P5 | ADC1_CH7 | GPIO35 | |||
P6 | ADC2_CH5 | GPIO12 | |||
P7 | ADC2_CH6 | GPIO14 | |||
P1 | ADC1_CH4 | GPIO32 | |||
P8 | GPIO16 | ||||
P9 | GPIO17 | ||||
P10 | ADC2_CH9 | DAC_2 | GPIO26 | ||
P11 | ADC2_CH7 | GPIO27 | |||
P12 | ADC2_CH2 | GPIO02 | |||
P2 | ADC1_CH5 | GPIO33 | |||
P13 | GPIO18 | SPI_SS | |||
P14 | GPIO19 | SPI_SCK | |||
P15 | GPIO23 | SPI_MISO | |||
P16 | GPIO05 | SPI_MOSI | |||
3V3 | POWER:3V3 | ||||
3V3 | POWER:3V3 | ||||
3V3 | POWER:3V3 | ||||
P19 | GPIO22 | I2C_SCL | |||
P20 | GPIO21 | I2C_SDA | |||
GND | GROUND | ||||
GND | GROUND | ||||
GND | GROUND |
5*5 LED list
BPI:bit have 25 LEDs on board, it can be controlled with a single GPIO.
25 5*5 LED list of BPI:bit | ||||
20 | 15 | 10 | 5 | 0 |
21 | 16 | 11 | 6 | 1 |
22 | 17 | 12 | 7 | 2 |
23 | 18 | 13 | 8 | 3 |
24 | 19 | 14 | 9 | 4 |
MPU9250 9-axis sensor
The 9-axis sensor, MPU9250, is placed on the BPI:bit board. and MPU9250 uses I2C 0x69 address.
The 9-axis is the combination of 3 separate triple axis sensors. For more detailed information of this chip, click here MPU 9250 datasheet to view the datasheet.
BPI:bit power
When you use BPI:bit, you need to supply the board first, and the bit supports three power supply modes
- 1.micro USB port:USB cable power supply, the design of BPI:bit board has Micro USB interface, which is quite common in daily life and is quite convenient to use.
- 2.Battery port:Through 2 pin battery power supply socket, can through the lithium battery, battery pack to power supply board, interface fool proof design, don't worry about the power supply through the 2 pin battery power supply socket, can through the lithium battery, battery pack to power supply board, interface fool proof design, don't have to worry about power supply meet the problem.
- 3.Goldfinger :Power is supplied through the gold finger, and the gold finger at the bottom of the board contains the power interface. Meanwhile, it has both input and output functions and has high compatibility.
BPI:bit VS micro:bit
bpi:bit VS micro:bit | |||||||
Module | bpi:bit | micro:bit | |||||
CPU | Dual-core 32bit Xtensa LX6, up to 240MHz | NXP KL26Z 32bit ARM Cortex M0, up to 16MHz | |||||
RAM | 520 KB | 16 KB | |||||
ROM | 448 KB | Unkown | |||||
Flash | 4096 KB | 256 KB | |||||
Bluetooth | BT4.2 BR/EDR and BLE | BLE only | |||||
WIFI | 802.11 b/g/n/e/i | N/A | |||||
Buzzer | 1x Buzzer | N/A | |||||
5*5 LEDS | 25 intelligent-control full-color (16777216 color) LEDs, Cascading all LEDs by a single line. | 25 red LEDs | |||||
photosensitive sensor | 2 light sensors | Basic light detection function on LEDs | |||||
temperature sensor | Stand along temperature sensor | On CPU chip temperature sensor | |||||
Motion sensor | MPU-9250 9-axis Motion Tracking : 3-axis accelerometer, 3-axis magnetometer, 3-axis gyroscope | 3-axis Accelerometer; 3-axis magnetometer; no gyroscope, no motion processor | |||||
IO interface | edge interface (compatible with most micro:bit I/O features) | edge interface | |||||
Button | 2 programmable buttons | 2 programmable buttons | |||||
micro USB | 1x micro USB(UART) | 1 x micro USB(Mass Storage Device) | |||||
Software | Webduino, Arduino, MicroPython, Scratch X | Microsoft MakeCode, MicroPython, Scratch X | |||||
Size | 5*5 cm | 5*4 cm |
Software
BPI:bit planning programming:
Webduino
What is Webduino
Webduino = WebComponents + Arduino
BPI:bit for Webduino
How to :Use BPI:bit with webduino
Arduino
Arduino IDE Programing Function Define | |||
Function | IO | ||
---|---|---|---|
RGB_LED | IO4 | ||
RGB_LED_POWER | IO2 | ||
BUZZER | IO25 | ||
BOTTON_A | IO35 | ||
BOTTON_B | IO27 | ||
LIGHT_SENSOR1(upper left) | IO36 | ||
LIGHT_SENSOR2(upper right) | IO39 | ||
TEMPERTURE_SENSOR | IO34 | ||
MPU9250_AD0 | IO0 | ||
Communication Protocol | |||
SPI | |||
MISO | IO19 | ||
MOSI | IO23 | ||
SCK | IO23 | ||
SS | IO5 | ||
I2C | |||
SCL | IO22 | ||
SDA | IO21 |
Arduino IDE
- Arduino IDE Compiled
Platform IO
MicroPyhton
Use Serial
Use uPyCraft
Use WebDAV
Use VSCode
Scratch
Examples
MPU9250 sample code
- code update to github : https://github.com/yelvlab/BPI-BIT/tree/master/Code/MPU9250
The following is the result of the return of the serial port
Resources
- BPI:bit Webduino Easy How-To's Episode 1: Initial Setup : https://www.youtube.com/watch?v=23_a27N3_7k
Github
- Webduino github: https://github.com/webduinoio
- bpi:bit github: https://github.com/yelvlab/BPI-BIT
Useful links
- BPI:bit schematic diagram : https://github.com/yelvlab/BPI-BIT/blob/master/doc/BPI-WEBDUINO-BIT-V1_2-20180417.pdf
- BPI:bit user manual : https://github.com/yelvlab/BPI-BIT/blob/master/doc/BPI-bit_user_manual.pdf
- BPI:bit dxf file : http://forum.banana-pi.org/uploads/default/original/2X/0/0b86ccaeb565cdeef093164fd1ff837727ca2887.rar
- ESP32 datasheet: https://github.com/yelvlab/BPI-BIT/blob/master/doc/ESP32-datesheet_english.pdf
- ESP32 Arduino Tutorial Overview : https://www.dfrobot.com/blog-964.html
- Espressif ESP32 Resources :https://www.espressif.com/products/hardware/esp32/resources
- Espressif ESP-IDF Programming Guide : https://esp-idf.readthedocs.io/en/latest/
- MPU9250 datasheet:http://www.invensense.com/wp-content/uploads/2015/02/PS-MPU-9250A-01-v1.1.pdf
- More others : https://github.com/yelvlab/BPI-BIT/tree/master/doc
- Webduino official website : http://webuino.io
- Webduino website in China : http://www.webduino.com.cn/site/en/
- Easy to buy bpi:bit sample form aliexpress
- Facebook group
webduino See sample
- BPI:bit Through the photosensitive resistors built into Webduino Bit on the left and right sides, it is easy to determine which side the gesture comes from
- Using Webduino Bit nine shaft sensor "attitude Angle" + full color dot matrix, simple implementation ~ ^_^ interesting effects