Duo
Milk-V Duo is an ultra-compact embedded development platform based on the CV1800B chip. It can run Linux and RTOS, providing a reliable, low-cost, and high-performance platform for professionals, industrial ODMs, AIoT enthusiasts, DIY hobbyists, and creators.
Introduction of CV1800B
CV1800B is a high-performance, low-power chip for residential consumer surveillance IP cameras, home intelligence and many other products, integrated with H.264/H.265 video compression encoder and ISP; supports digital broad dynamic, 3D noise reduction, defogging, lens distortion correction and other image enhancement and correction algorithms, providing customers with professional-grade video image quality.
The chip integrates self-developed intelligent reference solutions (human detection, area detection, motion detection), built-in DDR and complete peripherals and peripherals, providing a highly integrated and simple solution to support customer product development and mass production.
In addition, it also provides secure boot, secure update, secure encryption, etc., providing users with a series of security solutions from development, mass production, and product application with an 8-bit MCU subsystem integrated into the chip, which can replace the general external MCU to achieve the purpose of saving BOM cost and power consumption.
CV1800B Public Preliminary Datasheet
We have open sourced the Public Preliminary Datasheet of CV1800B to GitHub. please check it out.
Buy the CV1800B Chips
Milk-V is the Authorised Global Distributor of the CV1800B chips. You can buy samples of the CV1800B chip from our distributor online store directly. For volume order, please contact Milk-V Sales Team for the qoutation.
Getting Started
Installing the system
Please refer to the Start Up section.
USB Network Usage
Please refer to the Setup section.
Duo GPIO Pinout
GPIO pin mapping
GROUP | ADDR | PORT | CHIP | NUM | NAME | START |
---|---|---|---|---|---|---|
gpio0 | gpio@03020000 | porta | gpiochip0 | 480-511 | XGPIOA | 480 - XGPIOA[0] |
gpio1 | gpio@03021000 | portb | gpiochip1 | 448-479 | XGPIOB | 448 - XGPIOB[0] |
gpio2 | gpio@03022000 | portc | gpiochip2 | 416-447 | XGPIOC | 416 - XGPIOC[0] |
gpio3 | gpio@03023000 | portd | gpiochip3 | 384-415 | ||
gpio4 | gpio@05021000 | porte | gpiochip4 | 352-383 | PWR_GPIO | 352 - PWR_GPIO[0] |
GPIO Pinout
JTAG | SPI | SPI NOR | SD | PWM | I2C | UART | NUM | CV1800B | NAME | PIN | PIN | NAME | CV1800B | NUM | ADC | SPI NOR | SPI NAND |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
JTAG_TDI | I2C0_SCL | UART1/2_TX | 508 | XGPIOA[28] | GP0 | 1 | 40 | VBUS(5V) | |||||||||
JTAG_TDO | I2C0_SDA | UART1/2_RX | 509 | XGPIOA[29] | GP1 | 2 | 39 | VSYS(5V) | |||||||||
GND | 3 | 38 | GND | ||||||||||||||
SD1_GP1 | PWM10 | UART4_TX | 378 | PWR_GPIO[26] | GP2 | 4 | 37 | 3V3_EN | |||||||||
SD1_GP0 | PWM11 | UART4_RX | 377 | PWR_GPIO[25] | GP3 | 5 | 36 | 3V3(OUT) | |||||||||
SPINOR1_HOLD_X | SD1_D2 | PWM5 | I2C1_SCL | UART2/3_TX | 371 | PWR_GPIO[19] | GP4 | 6 | 35 | ||||||||
SPINOR1_WP_X | SD1_D1 | PWM6 | I2C1_SDA | UART2/3_RX | 372 | PWR_GPIO[20] | GP5 | 7 | 34 | ||||||||
GND | 8 | 33 | GND | ||||||||||||||
SPI2_SCK | SPINOR1_SCK | SD1_CLK | PWM9 | I2C3_SDA | 375 | PWR_GPIO[23] | GP6 | 9 | 32 | GP27 | XGPIOB[6] | 454 | ADC2(1.8V) | ||||
SPI2_SDO | SPINOR1_MOSI | SD1_CMD | PWM8 | I2C3_SCL | 374 | PWR_GPIO[22] | GP7 | 10 | 31 | GP26 | XGPIOB[3] | 451 | ADC1(1.8V) | ||||
SPI2_SDI | SPINOR1_MISO | SD1_D0 | PMW7 | I2C1_SDA | UART3_RTS | 373 | PWR_GPIO[21] | GP8 | 11 | 30 | RUN | ||||||
SPI2_CS_X | SPINOR1_CS_X | SD1_D3 | PWM4 | I2C1_SCL | UART3_CTS | 370 | PWR_GPIO[18] | GP9 | 12 | 29 | GP22 | PWR_GPIO[4] | 356 | ||||
GND | 13 | 28 | GND | ||||||||||||||
I2C1_SDA | 425 | XGPIOC[9] | GP10 | 14 | 27 | GP21 | XGPIOA[26] | 506 | SPINOR_HOLD_X | SPINAND_HOLD | |||||||
I2C1_SCL | 426 | XGPIOC[10] | GP11 | 15 | 26 | GP20 | XGPIOA[27] | 507 | SPINOR_WP_X | SPINAND_WP | |||||||
JTAG_TMS | PWM4 | UART0/1_TX | 496 | XGPIOA[16] | GP12 | 16 | 25 | GP19 | XGPIOA[25] | 505 | SPINOR_MOSI | SPINAND_MOSI | |||||
JTAG_TCK | PWM5 | UART0/1_RX | 497 | XGPIOA[17] | GP13 | 17 | 24 | GP18 | XGPIOA[22] | 502 | SPINOR_SCK | SPINAND_SCK | |||||
GND | 18 | 23 | GND | ||||||||||||||
494 | XGPIOA[14] | GP14 | 19 | 22 | GP17 | XGPIOA[24] | 504 | SPINOR_CS_X | SPINAND_CS | ||||||||
495 | XGPIOA[15] | GP15 | 20 | 21 | GP16 | XGPIOA[23] | 503 | SPINOR_MISO | SPINAND_MISO | ||||||||
440 | XGPIOC[24] | LED |
Camera interface
Duo camera uses a 16-pin connector with a distance of 0.5 mm, which can be directly used with the CAM-GC2083 camera head.
Connector FPC Definition
J1 | Description |
---|---|
1 | GND |
2 | MIPI0_DN0 |
3 | MIPI0_DP0 |
4 | GND |
5 | MIPI0_DN1 |
6 | MIPI0_DP1 |
7 | GND |
8 | MIPI0_CKN |
9 | MIPI0_CKP |
10 | GND |
11 | SENSOR_RSTN (1.8V) |
12 | SENSOR_CLK (1.8V) |
13 | I2C1_SCL (1.8V) |
14 | I2C1_SDA (1.8V) |
15 | |
16 | 3V3 |
Duo User Guide
UART Serial Console
Duo has a reserved UART debug serial port, which can be used to view the system startup log, or to log in to the console after the system starts and execute some terminal commands.
USB-TTL Serial Cable
The serial port level of Duo series is 3.3V.
The pin definitions of common USB to TTL serial cables are as follows:
Connection
Connect the USB to TTL serial cable as shown below, leaving the red wire unconnected.
Milk-V Duo | <---> | USB to TTL |
---|---|---|
TX (pin 16) | <---> | White wire |
RX (pin 17) | <---> | Green wire |
GND (pin 18) | <---> | Black wire |
The default serial port parameters of Duo are as follows:
baudrate: 115200
data bit: 8
stop bit: 1
parity : none
flow control: none
Hardware Docs
V1.2
- Schematic: duo-schematic-v1.2.pdf
- SMD TOP: duo-component-list-top-v1.2.pdf
- SMD BOTTOM: duo-component-list-bottom-v1.2.pdf
- 2D dxf: duo-mechanical-drawings-v1.1.zip
V1.1
- Schematic: duo-schematic-v1.1.pdf
Others
https://github.com/milkv-duo/duo-files/tree/main/duo/hardware