Milk-V Duo 64M RISC-V Linux Development Board – Pinout Diagram & Arduino Reference

Complete pinout reference for the Milk-V Duo-64M Linux and Arduino development board including Arduino pin and interface references.

Milk-V Duo 64M Pinout Diagram Featured Image by CIRCUITSTATE Electronics

The Duo 64M from Milk-V is a dual-core RISC-V SoC capable of running the Linux operating system. It can also run your Arduino sketches at the same time. We have designed a beautiful vector pinout diagram for the Milk-V Duo 64M board. We have tried our best to keep as many details as accurate as possible here. But due to the insufficient official documentation, there could be a few things that are out of place. In case you find any errors, please let us know in the comments and we will improve them. If you want to get started with the Milk-V Duo board for Linux and Arduino development, follow our getting started tutorial.

Getting Started with Milk-V Duo RISC-V Linux Development Board CIRCUITSTATE Electronics Featured Image

Getting Started with Milk-V Duo – RISC-V Linux Development Board

Learn how to use the Milk-V Duo Linux development board with dual-core 1 GHz CVITEK CV1800B CPU, 64 MB RAM and a MicroSD card slot. Run Linux and Arduino sketches at the same time.

General Pinout

  • Filename: Milk-V-Duo-64M-General-Pinout-R0.1-CIRCUITSTATE-Electronics-1.pdf
  • Latest Revision: R0.1, 07-08-2025
  • Designed by: Vishnu Mohanan (@vizmohanan, @vishnumaiea)
  • License: CC-BY-SA 4.0

Pinouts are based on the latest documentation from Milk-V. While we try our best to be accurate and up-to-date here, we can not guarantee correctness. Please also cross verify the pin assignments with that from the official documentation. If you found any errors here, please let us know in the comments and will update our designs.

PNG

Milk-V Duo 64M General Pinout Diagram R0.1 by CIRCUITSTATE Electronics

This pinout is only applicable for Linux development with the board. For development with Arduino, use the Arduino pinout diagram. Also, there are subtle differences between the 64MB and the 256MB versions of the Duo board. Therefore, you must use the pinouts for the specific variant. Following are the notes added to the pinout diagram.

  • Default UART0 mapped to pins 16 & 17 can be used for debugging.
  • ADC inputs are 1.8V only.
  • Debug LED is connected to GP25 which is not broken out.

PDF

PDF preview may not load on mobile devices. Click the link to open an interactive preview, or download it directly.

Arduino Pinout

  • Filename: Milk-V-Duo-64M-Arduino-Pinout-R0.1-CIRCUITSTATE-Electronics-1.pdf
  • Latest Revision: R0.1, 15-08-2025
  • Designed by: Vishnu Mohanan (@vizmohanan, @vishnumaiea)
  • License: CC-BY-SA 4.0

This Pinouts are based on the latest documentation from Milk-V. While we try our best to be accurate and up-to-date here, we can not guarantee correctness. Please also cross verify the pin assignments with that from the official documentation. If you found any errors here, please let us know in the comments and will update our designs.

PNG

Milk-V-Duo 64M Arduino Pinout Diagram R0.1 by CIRCUITSTATE Electronics
Click for high resolution

This pinout is only applicable for Arduino development with the Duo board. For development with Linux, use the General pinout diagram. Also, there are subtle differences between the 64MB and the 256MB versions of the Duo board. Therefore, you must use the pinouts for the specific variant. Following are the notes added to the pinout diagram.

  • Default UART0 mapped to pins 16 & 17 can be used for debugging.
  • ADC inputs are 1.8V only.
  • Debug LED is connected to GP25 which is not broken out.

PDF

Pinout Reference

This pinout reference is only applicable for the Arduino pinout. The general mapping and the Arduino mapping of the pins are different in many places. There is also a lack of sufficient documentation. So if you run into any issues while using our references, please let us know.

Power & Control

There are two positive power supply input pins and one control pin on the Milk-V Duo-64M.

Pin NameFunction
VBUSThe USB 5V input. This will be connected to VSYS via a diode. You can supply 5V directly here if the USB is not connected.
VSYSThe output coming through the VBUS diode. You can supply 5~12V here.
3.3VOutput from the MP1657 DC-DC voltage regulator. This is an output only. The maximum current can be up to 2A.
3V3-ENEnables the main 3.3V/2A supply. Proving a HIGH signal here will disable the 3.3V output.
GNDGround (Negative) supply pins.
RUNThis is the reset pin. Connecting this pin to HIGH will reset the board.
ESP32 power supply and reset pins

GPIO

Even though the Milk-V Duo 64M breaks out 25 GPIO pins from the SoC, only 6 pins are assigned in the official pinout diagram. This is probably because of the limitation of the second C906 core running the Arduino sketch.

LED

The blue LED on the board is connected to GPIO25. You can access this pin in Arduino by using the GPIO number 0.

UART

You only get a single UART (Universal Asynchronous Receiver Transmitter) when using the Arduino core. You can use this to communicate with a sensor or a PC using a UART-USB converter.

Arduino InstanceUARTRX PinTX Pin
Serial3UART3RX3 (GP5)TX3 (GP4)
Arduino Serial UART pins

SPI

There is a single instance of SPI (Serial Peripheral Interface) available for Arduino sketches.

Arduino InstanceSPICOPICIPOSCKCS
SPISPI2GP7GP8GP6GP9
Arduino SPI pins

ADC

There is a single ADC (Analog to Digital Converter) input pin available for the Milk-V Duo-64M board. The maximum input voltage of this pin is 1.8V. If you want to provide a larger input voltage, use a voltage divider.

Arduino PinGPIO
A0ADC1 (GP26)
Arduino ADC pins

I2C

We get four I2C (Inter-Integrated Circuit) interfaces on the Milk-V Duo-64M board. These can be accessed as Wire0 to Wire3.

Arduino InstanceI2CSDASCL
Wire (Wire0)I2C02 (GP1)1 (GP0)
Wire1I2C111 (GP8)12 (GP9)
Wire2I2C214 (GP10)15 (GP11)
Wire3I2C39 (GP6)10 (GP7)
Arduino I2C pins

PWM

There are 8 PWM channels and 12 PWM pins from the Milk-V Duo-64M board. This is because some of the channels are available in multiple GPIO pins.

ChannelPin #Pin Name
PWM412GP9
16GP12
PWM56GP4
17GP13
PWM65GP3
7GP5
PWM74GP2
11GP8
PWM810GP7
PWM99GP6
PWM1014GP10
PWM1115GP11
Arduino PWM pins

JTAG

JTAG (Joint Test Action Group) is a standard interface used for programming and debugging microcontrollers. Milk-V Duo-64M supports JTAG programming and debugging. JTAG has four main signals and an optional reset line.

Signal NamePin NamePin #Function
TDIGP01Test Data In
TCKGP1317Test Clock
TMSGP1216Test Mode Select
TDOGP12Test Data Out
JTAG pins
  1. Milk-V Duo – Product Page
  2. Milk-V Duo – Datasheet [PDF]
  3. Milk-V Duo – Hardware Design Resources
  4. Milk-V Duo – Documentation
  5. Buy Milk-V Duo – Robu.in
  6. Duo SDK – GitHub
  7. Balena Etcher
Share to your friends
Vishnu Mohanan

Vishnu Mohanan

Founder and CEO at CIRCUITSTATE Electronics

Articles: 104

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.