Duo 256M is a compact SBC based on SG2002 multi-architecture SoC

Duo 256M is a small board powered by SOPHGO SG2002 multi-architecture Arm/RISC-V/8051 SoC with 256MB of on-chip RAM and a 1 TOPS NPU, a microSD card for storage, a camera connector, a USB-C port for power and programming, and two headers for GPIO expansion.

We covered the SOPHGO SG2002 (and SG2000)  Arm+RISC-V+8051 AI SoC earlier this month saying a couple of boards were expected very soon. We’ve already covered Sipeed LicheeRV Nano with optional Ethernet or WiFi 6, and now we’ll look at the Duo 256M designed by Milk-V Technology in more detail since it’s available now.

Duo 256M SBC

Duo 256M specifications:

  • SoC – SOPHGO SG2002
    • Main core – 1GHz 64-bit RISC-V C906 or Arm Cortex-A53 core (selectable)
    • Minor core – 700MHz 64-bit RISC-V C906 core
    • Low-power core – 25 to 300MHz 8051 MCU core
    • NPU – 1 TOPS INT8, supports BF16
    • Integrated 256MB DDR3 (SiP)
  • Storage
    • MicroSD card slot
    • 32Gbit NAND flash (CSNP32GCR01)
  • Camera Interface – 4-lane MIPI CSI input connector
  • Audio – Built-in microphone
  • Networking – Support for 100Mbps Ethernet via adapter connected to 5x I/O pins
  • USB – 1x USB Type-C port for power and programming
  • Expansion – 2x 20-pin 2.54 pitch headers with access to GPIO, PWM, I2C, SPI, UART, JTAG, ADC, Audio, Arm/RISC-V switch signal
  • Misc – Power LED
  • Power Supply – 5V via USB-C port
  • Dimensions – 51 x 21mm
Duo 256M pinout diagram
Duo 256M pinout diagram
Duo 256M pinout diagram
Duo 256M pinout diagram (different representation showing Arm/RISC-V switch and audio out)

You’ll find hardware documentation – including schematics, PCB layout, and datasheets – on GitHub. Instructions to getting started with buildroot (Linux 5.10 + FreeRTOS), the TDL SDK leveraging the NPU for computer vision workloads (e.g. face detection, face tracking, license plate recognition, gesture detection, etc…), and various code samples for GPIO and other features on the documentation website.

The Duo 256M board can be purchased for $7.99 plus shipping on Arace Tech. If you are interested in building your own board based on SG2000 or SG2002, samples of the chips can be purchased for respectively $6 and $5 each in packs of 5 pieces ($30 and $25).

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
21 Comments
oldest
newest
Willy
5 months ago

Such solutions are getting increasingly interesting. @dgp’s dream has come true,now you have Linux in a device the size of an arduino nano, and with 4 times more RAM than before. The board’s form factor makes it easy to solder on another PCB thanks to the castellated pins, like is usually done for ESP32. I think we’d need to see a tiny board with more compact pins like we’re seeing with the ESP series (e.g. the PSF85B) in order to let adopters make their own boards without having to deal with too fine PCB routing nor too small pitch soldering.… Read more »

Willy
5 months ago

Another good point is that these boards already have partial support in mainline since 6.7: uart & gpio for now (and only the 64MB version).

Andreas Elfving
Andreas Elfving
5 months ago

Interesting, indeed. Hopefully the work goes forward. Adding a bit more ram should only be a dt fix, right?

dgp
dgp
5 months ago

This looks really good. You even get a 300mhz 8051 🙂

itchy n scratchy
itchy n scratchy
5 months ago

Some silicone real estate i could imagine being put to better use…

willmore
willmore
5 months ago

You know how tiny an 8051 and 6K of SRAM is in a modern process? It’s probably stuffed into otherwise unused space between other existing functions. 🙂 I’m no 8051 fan, but the area is beyond trivial.

dgp
dgp
5 months ago

The 8051 is probably there for deep sleep. If you don’t have something that can run code the things you can check to work out if you should boot up the main CPU are very trivial so you end up booting most of the system to check something and go back to sleep.

A small 8 bit core is perfect for waiting for a wake up signal, checking if you really want to wake up or not by poking around.

Jon Smirl
5 months ago

I agree, similar to the ESP32 ULP.

Eugene
Eugene
5 months ago

We live in exciting times for microcontrollers, but it seems to be this is a weird product, a Frankenstein of a SoC with three different architectures. If this was April 1st, I’d be thinking it was a joke. Am I mistaken? Mixing cores is not new in larger CPUs and even mixing architectures as I think Intel’s CPUs carry out used to carry a non-x86 core for the ME stuff? But still, this seems unusual in microcontrollers. Apart from it being awesome that someone can do this, can someone point out real life advantages of such an approach? Seems to… Read more »

tkaiser
tkaiser
5 months ago
willmore
willmore
5 months ago

As much as I don’t like to see wasted silicon, this chip isn’t as much of an abomination as it seems–or it is, but for different reasons. The three cores are all different enough that you would need different environments to develop for them anyway–the SG2000 already had an 64 bit RV core with MMU (suitable for a paging OS) with a slower 64 bit RV core with just a basic memory protection unit (not suitable for a paging OS), and a third core with an MSC51 architecture. You wouldn’t use the same compiler for the two 64 bit RV… Read more »

Ray Knight
Ray Knight
5 months ago

On Arace Tech they also offer a USB/Ethernet IO board for 5$. I’ve not had the opportunity to test as I apparently order the Duo board without the headers and haven’t taken the time to solder them on!

willmore
willmore
5 months ago

I picked up some of their boards on Ali and they work quite well. I also cut up an old 10/100 PCI ethernet board to steal its magnetics and that also worked–once I reversed the pinout of the darn magnetics…

So, yes, ethernet works just fine on there.

kxygk
5 months ago

I’ve never heard of RNDIS. Would this work as straightforward on a machine running Ubuntu? (seems it’s some MS thing)

> but worse since it’s RNDIS

Trying to understand the drawback 🙂

tkaiser
tkaiser
5 months ago

> RNDIS. Would this work as straightforward on a machine running Ubuntu?

Ubuntu running on the machine you connect to the board or running on the latter?

For the 1st scenario it should work OOTB, the other way around (enabling USB gadget mode on the OTG port of a board which involves switching the port from host to device mode and loading g_ether driver) can sometimes be tricky. Personal experience with smelly Allwinner BSP kernel here and Raspberries there.

willmore
willmore
5 months ago

RNDIS is a very old Microsoft standard for networking attachment. Its biggest problems are *it’s old* and *its Microsoft*. That said, it’s widely supported. I don’t ever use Ubuntu, but the device showed up immediately on Debian and Fedora as a network device and was trivial to bring up the network connection. It was hardly any harder than installing a terminal program, chaning the groups/permissions on the USB serial device process that boards with serial over USB use. *And* it allowed a full network connection–so multiple ssh connections, routable connection to the outside world, scp, etc. That’s a clear step… Read more »

kxygk
5 months ago

Thank you for that detailed explanation! Very useful 🙂

itchy n scratchy
itchy n scratchy
5 months ago

To my surprise my Samsung phone exposes some rndis when tethering

PuceBaboon
5 months ago

Works fine out of the box with Ubuntu and FreeBSD. You’ll need to set “sysctl net.ipv4.ip_forward=1;” in Ubuntu to enable fowarding between USB0 and wlo0 (or whatever your main network port is) and add a route, but it is surprisingly fast.

milters
milters
5 months ago

Has anyone tested the ARM core on these chips (2000 and 2002)? And any benchmarks comparing the C906 and A53?

The official builds seem to be RISCV only. I still don’t understand the purpose of a selectable core, why would anyone choose the RISCV option?

willmore
willmore
5 months ago

I’ve been trying to find out how to run code on the 8051 for as long as I’ve had the boards and I haven’t found anything on their wiki or their forum. The question has been asked, just not answered. 🙁

Khadas VIM4 SBC