CanMV K230 SBC - Kendryte RISC-V MCU with Vector Extension 1.0.0 (RVV 1.0.0)
HTML-код
- Опубликовано: 29 авг 2024
- Thank you @PCBWay for sponsoring this video!
🔥 Get $5 off your first order with my referral URL: plati.ma/go/pc... 🔥
Don't forget to check out their promos such as 10x PCBs for $5 🤘
❤ DON'T FORGET TO LIKE AND SUBSCRIBE! ❤
Some clarification about the cores:
- When in the Debian or Ubuntu build, your userland is running on the 1.6GHZ C908 core with all the goodies it has. The smaller core does nothing AFAIK.
- When in the MicroPython build, your busybox shell is running on the 800MHz core, with RTSmart (as shown by its shell `msh`) running MicroPython (via repl) on the big core.
- When in the C build, same as MicroPython, but you're just at the msh prompt.
More info coming, just give me a week or two! (inc power consumption)
🔗 Resources
- Blog Post: plati.ma/... crap, I forgot to do one. Give me some more time!
- English Docs: github.com/ken...
- Previous Video: • Milk-V Duo 256M - The ...
- Reddit Discussion: / deep_overview_into_the...
- Build Your Own Image: www.remlab.net... (Thanks Rémi!)
🛒 Shop: shop.plati.ma
💵 PayPal: paypal.me/Plat...
📺 Other Channel: / @platima
📷 Instagram: / platimatinkers
🌏 Reddit: / platimazero
💳 Patreon: / platima
⚡ Power Consumption
- TBC
📊 Geekbench Results
- v5: 76 single / 78 multi (browser.geekbe...)
- v6: 48 single / 35 multi (browser.geekbe...)
Chapters
TBC
#Platima #Canaan #RISCV #SBC #Kendryte #K230
Im asking for more of this. I want all the RISC V content you can push out. Esp more info on replacing micro pi and other stuff w rust.
Yeah RISC-V and bespoke SBCs is where I focus - and what I stock in the shop - but I do like Rust too, having a programming background myself.
Thanks for your feedback!
Im liking and subscribing specifically for this.
Much appreciated mate!
I really like this as a motherboard for some sort of Cyberdeck build. You can run a decent Linux environment on the main core and have a little micro controller / micro-python environment ready to go for running specialized I/O or just extra stuff you don't want directly touching the main OS.
Yeah that would be pretty sweet. Give it a crack! Or go scour Reddit and see if anyone else has?
@PlatimaTinkers Just placed my order lol.
@@DigitalJediNice!
Awesome that you got one as it's cool little board.
I believe Bananapi have announced their own RVV 1.0 board but no pricing as yet - Banana Pi BPI-F3 with K1 chip.
Did you also see Sipeed released their own version of the Milk-V Duo S called the NanoRv with smaller footprint which is exciting as the more RISC-V boards the better!
I ordered a NanoRV. Should be on it's way. I ordered a camera with it as well, and some other little things from Sipeed. Should be fun.
Thanks mate appreciated!
Yeah I am hanging for that F3 - saw the announcement on Reddit 🤤
Got a link to that NanoRv? At a cursory glance I cannot see it. Cheers
I am gaga over that banana pi.
Uploaded :P
How interesting! Long long ago i worked with kind of an industrial grandfather of this (VxWorks backend + Windows frontend + connected via shm).
Talking like Pentium 90ish times. I'll not mislead myself into thinking the RiscV will get similar performance, but for sure its not useles.
I have absolutely no need for this but to try build of a mock industrial controller😂
Woah that is one hell of an interesting computer. What was it called?
Oh I miss the old days of Slot 1 processors and dual CPU desktop mainboards haha.
You certainly should :P
Running baremetal Micropython is pretty cool. A bit expensive but it seems capable. How good software support turns out to be will be interesting to see.
Yeah I think this can do a lot more than I've shown too. Only just really started digging into its capabilities. Lack of eMMC sucks though!
@@PlatimaTinkers I use Ultibo on Pi's so this is an interesting option that is not Linux.
Shaking my head because I'm sure Geekbench won't be compiled to use RVV at all, yet. Do an objdump on it and grep for 'vsetvl'.
Hahah I'm glad you watched it all - cheers.
And pfft, lazy. But alas, right you are;
owner@Pi7:~$ wget --show-progress -q cdn.geekbench.com/Geekbench-6.2.2-LinuxRISCVPreview.tar.gz -O gb6.tgz && tar -zxf gb6.tgz && riscv64-linux-gnu-objdump -D Geekbench-6.2.2-LinuxRISCVPreview/* 2>/dev/null | grep vsetvl; echo $?
1
owner@Pi7:~$ :(
-bash: syntax error near unexpected token `newline'
Cool board
Yuuuup!
Problem with Kendryte is that there is basically no documentation, just a SDK. It was already the same issue with the K210. What they call the "K230 full datasheet" is just a 27-page product brief.
Unless, of course, I missed some documentation - in that case, I'd be happy to have a look!
Yeah it took me bloody ages but eventually I found github.com/kendryte/k230_docs/blob/main/README_en.md
Between that and www.remlab.net/op/k230-canmv-debian.shtml I got there eventually!
@@PlatimaTinkers Thanks. Unfortunately, it's mostly SDK documentation (which is better than nothing as the K210 didn't even have a doc for the SDK IIRC) and hardware design guide, but no real datasheet (it's a brief) and no reference manual. So, still the usual with Kendryte. Note that it's a relatively common issue among vendors for this kind of SoCs. You're supposed to use them as you're being told to and not try to use them any other way. Haven't looked at the SDK source code though, so maybe it's clean enough that figuring out most things may not be that hard.
@@joseoncrack It is actually all in there, but you have to dig a fair bit. The link structure and hierarchy makes no sense. Eg this one has a fair bit: github.com/kendryte/k230_docs/blob/main/en/01_software/board/examples/K230_SDK_CanMV_Board_Demo_User_Guide.md
Looking at my history, I also used developer.canaan-creative.com/k230/dev/zh/00_hardware/K230_datasheet.html#feature which appears to have full specifications, and then developer.canaan-creative.com/k230_canmv/main/index.html which the orig docs link to, and you just need to use the 'Translate to English' function as I don't think there is an English copy.
But yeah, not awesome that's for sure
The "English docs" link in the description does not work. (right now)
Ooh good catch! Cheers (Was a random space in the URL)
Very interesting bit of kit! Are you able to program the second core from the initial core?
I.e once it’s in the field it can be updated.
Yeah to a degree - depends how good you are!
The two can communicate, so if you wrote custom code for each, you can pass messages between them. But as far as updating in the field you would likely a) use the MicroPython build and push code onto the big core to run, else b) use the C build and put a file with a known name in /sharefs after reconfigure RTSmart to execute that known binary name in a loop.
That being said, if you're really good at editing the device tree you can probably setup the UART output from the big core to present as a COM port to the small core, instead of mapping it to the USB port, and then just treat the big core like a serial-networked computer.
Not sure about restarting the 2nd core, but I would expect there is a way!
@@PlatimaTinkers very interesting! Thanks for the detailed response!
@@alexlovett1991Not a problem at all mate - it's a cool bit of kit, so worth exploring!
what about the main feature that this board is specail for . Vector extensions ?
No demo for that ?
Unfortunately there's no real way to show that off. Most things don't support RVV 1.0.0 yet, eg Geekbench and similar benchmarks. RVV 0.7.1 as implemented in most RISC-V SBCs the last few years should perform much the same as RVV 1.0.0, but this design is now 'stable'. That means that software can actually start adding support for the RISC-V vector extensions, which going forward makes a huge difference.
If you know of any way to show it off I would gladly show it in a 'Part 2', eg putting this side-by-side with a JH7110. Cheers!
This one looks interesting
congrats! 😂
If the Beaglefire -v Turns out to be something I would be geeking. It looks good on paper at least.
That it is my friend! Just uploaded the video: ruclips.net/video/CZGM__LlW_Q/видео.html
$150AUD? Was that a mistake?
edit, yep expensive. I guess having some tensor acceleration is worth a bit more.
Most of those openai python demos will run on an stm32 7.
At least from the benchmarks on their website, they claim resnet50 with 65FPS while a raspberry pi 5 can do around 5 FPS, so it's not that bad if it's true. That said, I couldn't find any similar benchmarks for the STM32 7. So from what I can tell for image recognition this is actually quite impressive
Yeah I added a correction in the video to that. About $105 AUD inc shipping - $59 USD.
@@PlatimaTinkers I paid $49.99 + $7.60 shipping to NZ from Analoglamb in October (I've taken it out of the box to look at it, but haven't yet used it).: AU$86.66 total (no tax was charged)
So a K210 with more bits
Ehhh, it's quite a bit different to a K210 IMHO. The RVV 1.0 implementation is the big thing here really.
@@PlatimaTinkers actually you should do a show on edgeimpulse and how it can be used with the kendryte modules, then sell them
@@TheShorterboyOh never even heard of it - thanks for the info!
I got this for $44.95 w shipping from China it came w ur Milk Vs. But I want more info on this and architecture and using it.
Nice! It's a very odd and interesting little example board.
Is the second one a RISC-V core? what's its ISA implemented?
Yep! Ref: ruclips.net/video/OhjAqnWa1U8/видео.html (not shown on the BD for some reason, but both T-Head C908)
Thanks!
I'm not sure if I can trust Kendryte again, I bought a few K210s and seeming the support has evaporated and documentation was never translated. Perhaps they've slowed down and changed now.
Hrmm damn. Time will tell I guess! Does seem a touch all over the place haha.
Once Canaan bought the licenses I'm sure alot was lost in translation.
@@filthyfrankblack4067 Oooh i did not know that happened, great info - cheers!
Hi, do I need to install any drivers for the computer to recognize the board? When I connect my K230 to my PC, it doesn't show up under Ports like it does at the 6:45 mark in the video. Instead, the device appears under "Other devices" and indicates that no drivers are installed.
Not that I recall. Just need a compatible cable and for your storage to be flashed with a compatible image.
If you're using a third party image, it might not expose the right interfaces, and if your USB cables are dicky or you don't have both connected you may have issues.
DarkAudacity can clean your sound in few clicks. Thank you for video.
Thanks for the tip!
hey I got the board but I could not figure out how to get wifi working on the small core. Any tip? But I really enjoyed watching your video! Very Interesting channel!
Hey thanks mate much appreciated, and so yeah this is a bit of an odd/interesting one you raised!
The default image, from memory, runs on the big core, so the little core is left doing nothing. In the MicroPython build, your Linux environment is on the little core, with FreeRTOS running on the big core. Both should have access to the AP6212 depending on the DTB file included.
I didn't get wifi going personally, but I can only imagine if you dig through the device trees you should be able to find something. That being said, Rémi (www.remlab.net/op/k230-canmv-debian.shtml) didn't get it going either.
Might see what Bruce Holt gets from it, and let you know if he had any luck. Mine K230 is back out at the lab somewhere as I've been messing with the BeagleV-Fire last few weeks instead.
oh note I can see people with Wifi working in this GitHub issue: github.com/kendryte/k230_docs/issues/25 so that may give you a better idea, as they reference a certain part of the docs and image too!
@@PlatimaTinkers Thanks!
@@BensProgrammingLab Any time :)
coquetry + low level programming passion!
I never saw this combination.
Hah yeah it's getting quite common!
I also just noticed yesterday that the ATtiny1616 even has a 'CCL'!
It would be cool is this was in a smaller form factor.
Yeah I am sure there will be more to come in stick and CM forms!
So, could this thing run a desktop environment and function somewhat like a Raspberry Pi? I can get one for quite cheap but running standard Linux programs is kind of a requirement for me. It seems to be the cheapest RISC-V "computer" available.
Also, could you get the HDMI to work as a proper video out and the USB port as an actual USB port for the OS?
Nah it's more of a proof of concept than to be used like that. It's
I don't think the ports are designed to be used by an OS like that either, as I don't think it has a GPU in the traditional sense. It's more of a "devboard" than most devboards really, but it's the first to show off RVV 1.0
As far as wanting an RV64 computer for desktop use, the upcoming Milk-V Meles, in SBC format, or the Oasis or Pioneer desktop boards, look excellent, but for now there is also the Milk-V Mars, which I quite like and have made a video about.
There is also the StarFive VisionFive 2, which I made a video about, but has a bit of work to be done. Else the Lichee Pi 4A seems dang powerful, but I've not actually tested one yet!
@@PlatimaTinkers Ah, that's unfortunate. I'm aware of the proper "Raspberry Pi replacements", but they end up very expensive when factoring in shipping to my country. I'll have another look and see if any good deals have popped up.
Thanks for replying.
@@masterkamen371 No worries at all! Does it have to be RISC-V? Else there are some REALLY good ARM64 alternatives to Raspberry Pi. Personally I have 1x Raspberry Pi to compare with, but I don't use it. I prefer the alts!
@@PlatimaTinkers Not really, it doesn't.
If I looked enough, I'd be able to get some forgotten Raspberry Pi locally for cheap. Realistically, it is the most economical option for what I want to do.
It's just that Arm doesn't have the same coolness factor as RISC-V for me. You can find it everywhere after all.
I'll take a look at the videos you mentioned.
@@masterkamen371 I absolutely agree; I love RISC-V for the open nature, for what they are trying to do, etc. All the principals behind it align with my beliefs haha.
These are the two others I'd suggest and am quite happy with myself, if you're willing to go ARM, www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5B.html and radxa.com/products/rock4/4se. Both fairly affordable, and there are even higher-end models than the Rock 4SE, but that's the one I have and like. Just the Radxa images are a bit rubbish, so you'd likely need to build your own.
Else anything with the new SG2000 or SG2002 is both RISC-V and ARM in one (not at the same time), eg Milk-V Duo 256, albeit only 1-2 core, not quad, and no HDMI.
neat
Seconded :P
From where do the items in your shop get delivered?
I deliver them from Australia, to nearly anywhere in the world :)
Thanks for the video. I have one of these and I'm using the Ubuntu image from the Kendryte dev section. Am I right in saying that the Debian and Ubuntu images they provide are still running on the small core? I can't seem to assemble any code that is making use of the Vector extensions, and I'm using the most up-to-date gcc-riscv-unknown-elf assembler
You're welcome, but I am guessing you did not watch the entire video 😊😊
@@PlatimaTinkers Thanks. I thought I had! After the Micropython and C bit I had seen you boot Debian towards the end and mention that it has access to the full amount of RAM, WiFi doesn’t work etc but maybe I missed the bit where it’s stated which core that is running on? Thanks!
@@steverich1366 Haha fk knows I thought I covered that in the video. Apologies - didn't mean to insult. There is a clarification in the description though which I forgot about until just now 😂
Copy/paste for ya:
- When in the Debian or Ubuntu build, your userland is running on the 1.6GHZ C908 core with all the goodies it has. The smaller core does nothing AFAIK.
- When in the MicroPython build, your busybox shell is running on the 800MHz core, with RTSmart (as shown by its shell `msh`) running MicroPython (via repl) on the big core.
- When in the C build, same as MicroPython, but you're just at the msh prompt.
I could very well be wrong though!
@@PlatimaTinkers Thanks for the reply! I'll have to keep investigating! I initially was under the assumption that the full Debian ran on the 1.6GHz core. I can assemble and execute none-vector instructions just fine, but the assembler errors if I try to assemble vector instructions. I would have thought I could still assemble though (even if I was running on the smaller core), even if I couldn't execute the resulting binary. Maybe the error I'm getting is somewhere else. I'll likely post a query on the RISCV reddit over the next couple of days. :-) Thanks again.
@@steverich1366 Yeah should be able to assemble for sure, just not execute.
Want to email me the error? I'm curious! Cheers
where did you purchase the board from? Can you post link?
Yo. www.analoglamb.com/
steal this comment
stolen
Was RUclips eating comments?
I happened upon your reddit posts recently, you have been busy! I think you are PlatimaZero there..
Hah yep that's the ticket! Someone with a suspended account already has 'Platima', and it ain't me :(