I love how this turned from "hello world on a cheap new embedded chip" to "summarize and compare 40+ years of instruction set architectures" while still being comprehensible!
It's a nice, well done video. I did notice one problem though: Andrew may have confused Arm and MIPS because he said Arm is like RISC-V in not using flags/condition codes. While ARMv7 (Thumb2) added "cbz"/"cbnz" instructions that branch based on the contents of a register, Arm in fact has NZVC condition codes in the DEC/Motorola tradition (PDP-11, VAX, 6800, 68000, 6502 etc) and all other conditional branches are based on those. The Milk-V Duo is a nice little board and the 1 GHz CPU pretty capable, but the 64 MB RAM is a little limiting. It's enough to run emacs and gcc on the Duo itself to write and compile small to medium programs, which is cool. Meanwhile Milk-V has announced the Duo 256M which increases the RAM to 256 MB, and (weirdly) adds a 1 GHz Arm A53 core to the 1 GHz and 700 MHz RISC-V cores in the original Duo. Price and shipping date haven't been announced yet.
linux is kinda overkill depending on what you are actually planning to use it for. for a lot of embedded stuff an RTOS may be more suitable, but since linux is easy to find stuff for its kinda nice to just have a full OS for. and yes. the unix/*nix/linux way of making basically everything a file is super cool
It's certainly a useful and valuable design paradigm, even if it isn't perfect in every situation. Too much complexity at the bottom of the software stack can really make a mess. --- That said, you can "have a whole OS" without necessarily including the Linux kernel and GNU tools. CP/M and MS-DOS, among hundreds of other historical example, were all /operating systems/ in their own right, even though many had little or no built-in support for any kind of local networking of machines.
Isn't Linux a "everything is a file" OS? The webcam? A file. The screen? A file. Your keyboard? A file. A file? A file. Nothing? You guessed it, a file.
@@top.of.reddit For the most part. Since Linux is "Unix-like" and not a real UNIX system it doesn't always follow that design pattern, though. For most hackers and makers it's useful, though! I'm about to start working on a script to control a USB-connected CPU fan using the USB device files, for example.
@@merthyr1831 : A lot of the certified Unix distributions didn't make everything a file either, it wasn't actually rare. At any rate, the "real" "everything is a file" OS is Plan 9 and it's derivatives, which a bunch of the original Unix guys created as a successor to Unix- in essence, enough of a mess had developed in the Unix space that they had enough reference points to figure out how to make an OS be more Unix than Unix itself. Anything with FUSE support can be turned into a Plan 9-alike, so much of the *nix world will probably eventually drift over in that direction.
ARM has sorta pay for what you need with the Cortex M/A/R families, but you still have to buy the core from ARM, with no options for alternate designs or designing the core yourself, and there aren't very many options.
Fabulous hands-on with affordable hardware I didn't know exist! Very nice explanation at the end about different architectures! (BTW Big thanx for doing some magic on the audio side of things! Excellent listening experience with this video!)
Man, it's so refreshing to hear about a device from somebody that knows what they're talking about (mips, arm, ppc experience). Does this little chip have any audio capabilities?
It doesn't show up in the peripheral docs, but it looks like it does potentially support using the ADC input for audio. I'm not sure really. My guess is yes, since it's a security camera chip, but software support might not be all there.
@@apalrdsadventures According to the docs there is an audio subsystem with I2S and PCM capabilities. Also, regarding the RISC-V branching instructions, I am not sure what you mean by doing a subtraction first. RISC-V doesn't need an extra subtraction, it happens internally with the branch instructions, which admittedly is a small difference. By the way, BEQZ is not a real instruction, it gets expanded to BEQ x0 by the assembler. The compiler here hides some things.
This is one of the best videos I've seen in the past few months, at least. Super well explained, useful interjections and lots of info about the different asm variants. Plus the board itself looks super interesting, I just wish there was a European reseller or something. Or that it wasn't sold out... Again, excellent video, keep up the good work!
@@therealchaydThey do, but it turns a 10€ computer into a 30€ computer. Plus the possibility of huge import taxes. At that point you might as well get a more capable device. It's only worth it if you're buying in quantity.
I like RISC-V. It seems highly comprehensible. This board and the work they put in to making it accessible and usable seems exceptional. I'll pick up a couple. And your discussion of it and of ISA's really enhances and completes the package! Thank you!
As an old "full stack dev" (including assembler on some archs) - it was a joy to listen to your presentation. The right level and speed for a more tech savvy audience. Thanks 🙂
small correction: morse code is not a Huffman code, since it doesn't satisfy the prefix-property (meaning that no encoded letter is included at the beginning of another letter), which is the main point of doing Huffman encoding anyway. the benefit of these prefix codes is, that do not have to incorporate separations for letters, since you know exactly when a new symbol starts. there also exist "morse" codes which are prefix codes, but those are not as commonly used/known as the standard version. small example for the point above: take the morse sequence .-. this can be anything from these words: AE, EN, ETE or R with a prefix code (such as a Huffman code), there would only be one possible translation, even when omitting separation
I'd love to see more like this. I've recently finished work as full time developer, I never got to do low level stuff but I was always interested. Here's an idea, maybe you could put together a short series of videos, say half a dozen, introducing people to RISC-V and low level development. We could pick up a board like this for cheap it to follow along. Obviously, this is a huge amount of work you'd have at least one person that was really interested :)
I have a video coming up using this to build a display, so I'm sure there will be plenty of embedded programming in that video. The nice thing about using Linux on this board is the development setup is way easier than using a microcontroller.
@@apalrdsadventures Subscribed, and waiting for that video. I was thinking of using this board to drive a SSD1322 Oled at +60fps to replace some unobtainium VFDs.
So technically we could run statically compiled Go tools on it? Not sure if goc supports RISC-V, but since GCC does, GCCGO should work I guess. Edit: Just looked it up, there's actually a goc port for RISC-V. Nice!
Didn't expect to dive into systems architecture like this when I opened RUclips for dinner, but thanks! The sysadmin stuff is what I do myself, this is a topic I'm not familiar with (other than hearing about it) so this video was really interesting and so well explained/delivered I feel like I actually understood!
I come from the computer science world, so while I did some assembly (in MIPS) in college it wasn't a major part of my education. Also did only a little with hardware. If I could do it all again I think I might have chosen computer engineering. I tinker around with dev boards and I love the hardware side of things. While the pure theory stuff with algorithms scratches an intellectual itch, the fact is we live in the physical realm and doing stuff with microcontrollers and small boards and all the various I/O they offer makes for some fun and very practical projects. Honestly, college was wasted on me. I had all this opportunity to take classes in network security, robotics, computer engineering, etc. but never took advantage when I was there. I just wanted to get my degree and get out into the real world. I should have taken so many more electives in related fields. So now I just learn this stuff on my own with the internet as a resource. I'm also really into radio stuff, got my ham license.
Wow! I'm seriously impressed by your knowledge and, of course, this video. I was as involved with assembly language 50 years ago as you are now. I cut my teeth on the IBM 7074 and the CDC 6000 series. I also dabbled in Z80, 8080, 6800 and 6502. I wrote a rudimentary OS for the 6502 using a Tarbell floppy controller and a couple of 8" floppy drives all in assembly language. So this video took me back. Thanks!
CDC 6000!!! Wow! Arguably the first RISC ISA (Cray 1 was the 2nd), though the term hadn't been invented yet. With 15 bit and 30 bit instruction lengths it was really quite similar to RISC-V or Thumb-2. The only really weird (but valid) thing was there were no load or store instructions. Instead you just stored the desired memory address into one of the A registers and the corresponding X register was automatically loaded (A1-A5) or stored (A6-A7) from memory. I fall between you and Andrew. I started with 6502 and z80 (and TI and HP programmable calculators before them), went to university and used PDP-11 and VAX, and by the time I graduated the first 68000 Mac was out. I worked on a DG MV10000 supermini (VAX competitor) for a couple of years, but from 1987 on was exclusively Mac, then Linux in the late 90s when MacOS 9 was looking very dated, then back to OSX in combination with Linux. Later I got into compilers and ISA design (proprietary and RISC-V).
Excellent video. I like your straightforward approach of showing the board...showing the compiled code. Good explanation of instructions and history. I have been working with low level code for 12 years now and did not know about the 16-bit ones 😂😂
Really enjoyed your presentation and video. I especially liked your c and asm walkthrough. I think you would make a GREAT teacher as well. Looking for more content like this.
I love the way you present "the most complicated way of producing the ubiquitous 'Hello World' program yet" in such a deadpan manner. apalrds adventures is always full of funny, if unintentional, turns 😂😂😂
_Very _*_COOL_* , when younger I did some basic electronics This makes me wanna get BACK To it (totally) *And ALSO* Learn Linux I'm faintly familiar with Linux but....... This is *COOL HARDWARE* ....... Great Presentation
I've done assembly programming on the following systems: DEC PDP-8, DEC PDP-11, Intel 8080/85 (& Zilog Z80), Motorola 680X0, IBM 360/370. At Bankers Trust of SC, I had to add the check number to a tape that was read by a microfiche writer. The PL/1 was impossible to understand with way too many GOTO's. I rewrote that in 370 assembly. The mainframe operators said that the program nearly spun the tape off the tape drive.
Very much appreciate your level of explanation and obvious enthusiasms about the topics (and to see you are a fellow t-shirt connaisseur ;-) ). Subscribed and judging by the other comments on this video, I think the algorithm has found you and is pushing you (37K as I write this). Enjoy the ride ;-). Looking forward to watching your older and new video’s! All the best from 🇳🇱
7:20 Here I thought that all of the modern boards without visible transformers were not standards compliant! I had no idea that they were hidden in the RJ45 port now. 24:20 I have a Lemote Yeelong with a MIPS-el (Little endian) processor. It is supposed to have x86 compatibility instructions to speed up emulation: but never got around to playing with it.
Been messing with MIPS64, not with SGI hardware (tho I've got an Octane2, O2 and others) but with an Exablox RAID appliance that I picked up on eBay and discovered it's a Cavium Octeon 6-core machine running on a barebones Busybox Debian, 16GB of RAM. Octeon hardware is pretty interesting as there's hardware packet processing, hardware REGEX for packet inspection and gzip compression in hardware.
You're bad ass dude! Thank you for sharing! I plan on teaching myself assembly on RiscV before moving on to high-level languages and was impressed with how many ISA's you were familiar with. I was like, "Damn.....I'ma suck!" 😛
Hello! OI just found your channel! I am so happy I did, you do so many things I want to do or am doing. Use Linux a lot but you do so much more than me. Programming in SDL2 on linux mostly but I have other things too. Looking forward to catching up on all your videos.
Thanks for this refreshingly amateur video. I can hardly remember the last time I heard someone speaking about mips and powerpc in the same breath ! Obviously, I like a lot ideas behind open source ISA, hence RISC V. First time on your channel, I bet I will enjoy watching some more videos. Subscribed, but the way.
18:49, i was really hoping those datalines where extra to be able to use it as a usb gadget while also having a few usb devices plugged in. Well, at least the ethernet is available. Hope mine get shipped soon, made the mistake to also preorder a mars in the same order instead of a separate order.
Thanks for the video. I like RISC-V because I'm not locked in a ARM hold. Went to mentioned links but seems sold out. Will try back on occasion. Liked and subscribed!
It's fairly implementation-specific, but this particular board uses about 0.4W in my testing (I think there's a pic with the USB-C power meter at one point). It's not doing much computational work, but it's also using basically no power. I'd need a more powerful SBC to do a better test.
RISC and CISC are general terms in computer science that describe the inherent complexity of the core instructions. --- Intel x86 hardware is nominally based on CISC design concepts, whereas Berkeley RISC-V is a fairly new architecture based on RISC design concepts. --- It's hard to make a real comparison of power consumption without comparably performant hardware, because you really want to measure computational power/watt of electricity consumed.
Pretty cool. I heard of this board few weeks ago, and definitively going to grab few to do some testing and development. If you want to extend storage, you can use micro SD card, USB drive, or just mount some file system over network (i.e. NFS or sshfs). This way you could even get rid of cross-compiling and compile directly on board. Crazy.
Yes, 64 MB is just enough RAM to run a full current version Debian/Ubuntu/Fedora server install with about half the RAM free, making it possible to run emacs, gcc and so forth to edit and build small to medium programs. There has recently been a 256 MB version of this board announced, though we don't yet know the price or delivery date. My first Linux machine in the mid 90s (a Pentium Pro 200) had only 32 MB RAM!! Well, that really wasn't enough for serious work and I soon threw another 128 MB in the free sockets, which was ample at the time.
@@BruceHoult I see in their Git repo mention of a new model with 256MB of RAM, plus an extra core (ARM one, as an addition to existing to RISC-V cores; a bit weird, but ok).
Ah, backwards compatibility with the 70s. Where would we be without it??? Well, in the 60s I guess, since everything since then has had it. Hooray for consistency.
Caraca, um dos melhores vídeos que assisti ultimamente no RUclips!
Год назад+8
Raspberry Pi was also supposed to be a cheap alternative for hobbyists. Now it's more expensive than some Intel SBCs. Only time will show where it's all going.
I thought that the Duo was doomed to obscurity, but it's been amazing to see it get more popularity and support. Fairly recently I setup X11 forwarding (something it shouldn't do) and used MPV to rickroll Milk-V forum members lol
@@apalrdsadventuresyes, for some reason Milk-V includes a whopping 256mb swap partition with the default image, but you need to manually mkswap and swapon it yourself
I love all these dev boards but for embedded systems it would be hard to beat the older chips like Z80 or 6502 (and derivatives) with mature development tools. These chips will be great for edge computing and custom processing. Love the innovation here.
The shipping price scared me off for now but I want to test drive RISC-V and will keep an eye out for another group-buy. I appreciate your great taste in keyboards and t-shirts
Hmm, if it has a couple of a/d converters, am wondering now if it has enough pins to control a 3d printer with 5 steppers. Have been able to do this with a stm32f103c8t6.
we need clx for prosumers and also gpu #eat the document this was an informative look as you included all the arcane and dirty work - setting it up and looking at what is included - riscV will be a force in a few years and challenge arm and x86 - more room for innovation
Wish there was an existing yocto layer, I think buildroot is kind of old school, well ordered some of them anyway to try some stuff, not a few more dev board laying around that is gonna hurt :P
There's also a Milk-V Duo S now and it's fire 🔥 It also has a RISC-V cpu, but also a second CPU with ARM, not 64 MB, but 512 MB of RAM, it has Ethernet and USB ports on the board itself (you don't need to buy another board for it!), but who needs Ethernet, when this board also supports WiFi and Bluetooth (make sure to buy model with it!), it says it also supports audio via GPIO header and it also has more GPIO pins. I bought Milk-V Duo S (with WiFi) myself, and it's good. It was long to wait for Arduino support in software, but we finally got it! 🎉
Better for machine control, because it doesn't have to do calculations, more or less dealing with libraries and no floating point needed.. that can be off loaded to the 'master'. Speed can matter and 2 core, if programed right gives a back-up redundancy in critical implementation.. a worker and a guard that can pickup the worker's implementation and flag operation, but still get communication and operational results if a core freezes. Code smart and know your core kernel functions. I wish that they would do some of the micro controllers in dual core and 16 bit..
@@apalrdsadventures the ctype functions are very efficient, but require an array of at least 128 bytes, or a larger sized-type to hold more flag bits; which might be too much for some embedded systems.
Wow, with such a nice interface this could be serious competition for the RPi zero for small projects. I'm curious about the power consumption, it's probably quite low.
Board alone over USB-C measured around 0.5W max, adding the breakout board with USB+Ethernet active (but no USB devices) bumped it up to about 0.7W. Not really doing anything though, just sitting there with ssh open.
It's kind of a cross between the RPi Zero and Pico. The 1 GHz C906 Linux core performs about 15% better than the older Arm core in the original Zero, plus you've got a 2nd 700 MHz 64 bit RISC-V core for doing bare metal / RTOS things on like a Pico (but vastly faster)
1:08 not language… instruction set and register types… I think it would be confusing to use the word language because multiple languages can run on a cpu. Great video!
Can it run Lem Editor? Ncurses of course. As a test, to write a Machin-Like formula to calculate Pi to 100 and 1000 digits, how long would it take? on this MilkV board?
It's a standard interface in the Linux kernel, so all SBCs which properly implement GPIO / IO drivers in the kernel should have that available. Of course not all do.
I love how this turned from "hello world on a cheap new embedded chip" to "summarize and compare 40+ years of instruction set architectures" while still being comprehensible!
don't buy it it's too risky
@@Mika43344 ha ha ha. I see what you did there...
It's a nice, well done video. I did notice one problem though: Andrew may have confused Arm and MIPS because he said Arm is like RISC-V in not using flags/condition codes. While ARMv7 (Thumb2) added "cbz"/"cbnz" instructions that branch based on the contents of a register, Arm in fact has NZVC condition codes in the DEC/Motorola tradition (PDP-11, VAX, 6800, 68000, 6502 etc) and all other conditional branches are based on those. The Milk-V Duo is a nice little board and the 1 GHz CPU pretty capable, but the 64 MB RAM is a little limiting. It's enough to run emacs and gcc on the Duo itself to write and compile small to medium programs, which is cool. Meanwhile Milk-V has announced the Duo 256M which increases the RAM to 256 MB, and (weirdly) adds a 1 GHz Arm A53 core to the 1 GHz and 700 MHz RISC-V cores in the original Duo. Price and shipping date haven't been announced yet.
@@Mika43344 at least it does not cost an arm and a leg
@@Mika43344 LOL
Some people might not like having a whole OS for their dev board, but the "Everything is a file" paradigm looks insanely intuitive!
linux is kinda overkill depending on what you are actually planning to use it for. for a lot of embedded stuff an RTOS may be more suitable, but since linux is easy to find stuff for its kinda nice to just have a full OS for.
and yes. the unix/*nix/linux way of making basically everything a file is super cool
It's certainly a useful and valuable design paradigm, even if it isn't perfect in every situation. Too much complexity at the bottom of the software stack can really make a mess. --- That said, you can "have a whole OS" without necessarily including the Linux kernel and GNU tools. CP/M and MS-DOS, among hundreds of other historical example, were all /operating systems/ in their own right, even though many had little or no built-in support for any kind of local networking of machines.
Isn't Linux a "everything is a file" OS? The webcam? A file. The screen? A file. Your keyboard? A file. A file? A file. Nothing? You guessed it, a file.
@@top.of.reddit For the most part. Since Linux is "Unix-like" and not a real UNIX system it doesn't always follow that design pattern, though. For most hackers and makers it's useful, though! I'm about to start working on a script to control a USB-connected CPU fan using the USB device files, for example.
@@merthyr1831 : A lot of the certified Unix distributions didn't make everything a file either, it wasn't actually rare. At any rate, the "real" "everything is a file" OS is Plan 9 and it's derivatives, which a bunch of the original Unix guys created as a successor to Unix- in essence, enough of a mess had developed in the Unix space that they had enough reference points to figure out how to make an OS be more Unix than Unix itself. Anything with FUSE support can be turned into a Plan 9-alike, so much of the *nix world will probably eventually drift over in that direction.
Spent the first 10 years of my career writing MIPS assembly. RISC-V is so close to it, and I love it.
You are a computer engineer and it shows. Thanks so much for sharing your knowledge with us.
Writing code since 40 years, but learned a lot from your video. Very well done.
The major benefits of RISC are that it follows the KISS rule rather well, and is also modular IIRC.
With optional modules it's performant up to big systems, and without it's scalable down to small systems.
@@apalrdsadventures indeedilydoodily, plus you only have to pay for what you need :D.
ARM has sorta pay for what you need with the Cortex M/A/R families, but you still have to buy the core from ARM, with no options for alternate designs or designing the core yourself, and there aren't very many options.
@@apalrdsadventures true, and it's proprietary :P.
@apalrdsadventures In my retirement, I'm getting involved with RISC-V and ARM. Intel Core processors are so complex, I doubt I'd pick that up.
Fabulous hands-on with affordable hardware I didn't know exist! Very nice explanation at the end about different architectures!
(BTW Big thanx for doing some magic on the audio side of things! Excellent listening experience with this video!)
Man, it's so refreshing to hear about a device from somebody that knows what they're talking about (mips, arm, ppc experience).
Does this little chip have any audio capabilities?
It doesn't show up in the peripheral docs, but it looks like it does potentially support using the ADC input for audio. I'm not sure really. My guess is yes, since it's a security camera chip, but software support might not be all there.
@@apalrdsadventures According to the docs there is an audio subsystem with I2S and PCM capabilities.
Also, regarding the RISC-V branching instructions, I am not sure what you mean by doing a subtraction first. RISC-V doesn't need an extra subtraction, it happens internally with the branch instructions, which admittedly is a small difference. By the way, BEQZ is not a real instruction, it gets expanded to BEQ x0 by the assembler. The compiler here hides some things.
This is one of the best videos I've seen in the past few months, at least. Super well explained, useful interjections and lots of info about the different asm variants. Plus the board itself looks super interesting, I just wish there was a European reseller or something. Or that it wasn't sold out...
Again, excellent video, keep up the good work!
They do ship to Europe, I ordered a bunch of these direct from milk-v and they got to the UK within a week.
@@therealchaydThey do, but it turns a 10€ computer into a 30€ computer. Plus the possibility of huge import taxes. At that point you might as well get a more capable device.
It's only worth it if you're buying in quantity.
I like RISC-V. It seems highly comprehensible. This board and the work they put in to making it accessible and usable seems exceptional. I'll pick up a couple. And your discussion of it and of ISA's really enhances and completes the package! Thank you!
As an old "full stack dev" (including assembler on some archs) - it was a joy to listen to your presentation.
The right level and speed for a more tech savvy audience.
Thanks 🙂
small correction: morse code is not a Huffman code, since it doesn't satisfy the prefix-property (meaning that no encoded letter is included at the beginning of another letter), which is the main point of doing Huffman encoding anyway. the benefit of these prefix codes is, that do not have to incorporate separations for letters, since you know exactly when a new symbol starts. there also exist "morse" codes which are prefix codes, but those are not as commonly used/known as the standard version.
small example for the point above:
take the morse sequence .-.
this can be anything from these words: AE, EN, ETE or R
with a prefix code (such as a Huffman code), there would only be one possible translation, even when omitting separation
this has always irritated me about Morse code
Yes, with Morse code you have to listen for the rhythm, if you listen to it as dots and dashes, chances are you'll just hear gibberish.
Great stuff! Mr Sherlock realized there was some attention being given to something that was not him and came to politely point this out.
I'd love to see more like this. I've recently finished work as full time developer, I never got to do low level stuff but I was always interested. Here's an idea, maybe you could put together a short series of videos, say half a dozen, introducing people to RISC-V and low level development. We could pick up a board like this for cheap it to follow along. Obviously, this is a huge amount of work you'd have at least one person that was really interested :)
I have a video coming up using this to build a display, so I'm sure there will be plenty of embedded programming in that video. The nice thing about using Linux on this board is the development setup is way easier than using a microcontroller.
That is a great idea!
@@apalrdsadventures Subscribed, and waiting for that video. I was thinking of using this board to drive a SSD1322 Oled at +60fps to replace some unobtainium VFDs.
dude, i did asm x86 it is just another level (back in 1999). You cannot compare it to JS or PY.
This was an insanely good video! I’m really happy that I just stumbled over this. Subscribed!
So technically we could run statically compiled Go tools on it? Not sure if goc supports RISC-V, but since GCC does, GCCGO should work I guess.
Edit: Just looked it up, there's actually a goc port for RISC-V. Nice!
a great job on explaning the assembly for each different architecture ^^
Didn't expect to dive into systems architecture like this when I opened RUclips for dinner, but thanks! The sysadmin stuff is what I do myself, this is a topic I'm not familiar with (other than hearing about it) so this video was really interesting and so well explained/delivered I feel like I actually understood!
I come from the computer science world, so while I did some assembly (in MIPS) in college it wasn't a major part of my education. Also did only a little with hardware. If I could do it all again I think I might have chosen computer engineering. I tinker around with dev boards and I love the hardware side of things. While the pure theory stuff with algorithms scratches an intellectual itch, the fact is we live in the physical realm and doing stuff with microcontrollers and small boards and all the various I/O they offer makes for some fun and very practical projects.
Honestly, college was wasted on me. I had all this opportunity to take classes in network security, robotics, computer engineering, etc. but never took advantage when I was there. I just wanted to get my degree and get out into the real world. I should have taken so many more electives in related fields. So now I just learn this stuff on my own with the internet as a resource. I'm also really into radio stuff, got my ham license.
Thanks for sharing as most of the online stuff surrounding this neat RISC-V board is in Chinese. Look forward to future Milk-V content 👍
Wow! I'm seriously impressed by your knowledge and, of course, this video. I was as involved with assembly language 50 years ago as you are now. I cut my teeth on the IBM 7074 and the CDC 6000 series. I also dabbled in Z80, 8080, 6800 and 6502. I wrote a rudimentary OS for the 6502 using a Tarbell floppy controller and a couple of 8" floppy drives all in assembly language. So this video took me back. Thanks!
I've never had to work on an 8-bit system other than the HCS12 (which is "16-bit" with a lot of 8-bit legacy). All 32-bit from then on!
8 bits micro-controller, writing assembly language to it, no need to purchase seperate complier to run it, complier is not free of charge 20 years ago
CDC 6000!!! Wow! Arguably the first RISC ISA (Cray 1 was the 2nd), though the term hadn't been invented yet. With 15 bit and 30 bit instruction lengths it was really quite similar to RISC-V or Thumb-2. The only really weird (but valid) thing was there were no load or store instructions. Instead you just stored the desired memory address into one of the A registers and the corresponding X register was automatically loaded (A1-A5) or stored (A6-A7) from memory. I fall between you and Andrew. I started with 6502 and z80 (and TI and HP programmable calculators before them), went to university and used PDP-11 and VAX, and by the time I graduated the first 68000 Mac was out. I worked on a DG MV10000 supermini (VAX competitor) for a couple of years, but from 1987 on was exclusively Mac, then Linux in the late 90s when MacOS 9 was looking very dated, then back to OSX in combination with Linux. Later I got into compilers and ISA design (proprietary and RISC-V).
I really enjoyed the gentle trip back to asm. 😊
Excellent video. I like your straightforward approach of showing the board...showing the compiled code. Good explanation of instructions and history. I have been working with low level code for 12 years now and did not know about the 16-bit ones 😂😂
Really enjoyed your presentation and video. I especially liked your c and asm walkthrough. I think you would make a GREAT teacher as well. Looking for more content like this.
I love the way you present "the most complicated way of producing the ubiquitous 'Hello World' program yet" in such a deadpan manner. apalrds adventures is always full of funny, if unintentional, turns 😂😂😂
_Very _*_COOL_* , when younger I did some basic electronics
This makes me wanna get BACK To it (totally) *And ALSO* Learn Linux
I'm faintly familiar with Linux but....... This is *COOL HARDWARE*
....... Great Presentation
Really awesome video, and solid channel! I don't have time to watch most of this right now but i'm commenting to remember to watch it in the future
Very nice! Riscv really has got me excited too! I’ve been learning riscv assembly. So fun!
I've done assembly programming on the following systems: DEC PDP-8, DEC PDP-11, Intel 8080/85 (& Zilog Z80), Motorola 680X0, IBM 360/370.
At Bankers Trust of SC, I had to add the check number to a tape that was read by a microfiche writer. The PL/1 was impossible to understand with way too many GOTO's. I rewrote that in 370 assembly. The mainframe operators said that the program nearly spun the tape off the tape drive.
I wish I knew what you were talking about so I could truly appreciate how cool this thing is....
This is literally the best video on the milk v duo.
Very much appreciate your level of explanation and obvious enthusiasms about the topics (and to see you are a fellow t-shirt connaisseur ;-) ). Subscribed and judging by the other comments on this video, I think the algorithm has found you and is pushing you (37K as I write this). Enjoy the ride ;-). Looking forward to watching your older and new video’s! All the best from 🇳🇱
7:20 Here I thought that all of the modern boards without visible transformers were not standards compliant!
I had no idea that they were hidden in the RJ45 port now.
24:20 I have a Lemote Yeelong with a MIPS-el (Little endian) processor. It is supposed to have x86 compatibility instructions to speed up emulation: but never got around to playing with it.
Been messing with MIPS64, not with SGI hardware (tho I've got an Octane2, O2 and others) but with an Exablox RAID appliance that I picked up on eBay and discovered it's a Cavium Octeon 6-core machine running on a barebones Busybox Debian, 16GB of RAM. Octeon hardware is pretty interesting as there's hardware packet processing, hardware REGEX for packet inspection and gzip compression in hardware.
Finally a video about MilkV. That company is new and insane! Not seeing any videos or things on the internet made me think it's a bit underrated.
Hoping to explore the Mars next, when it releases
Very nice little board. I can think of tons of things to do with this. Thank you for the in-depth and detailed video!
As an average Joe, what are some practical uses for this board?
You're bad ass dude! Thank you for sharing! I plan on teaching myself assembly on RiscV before moving on to high-level languages and was impressed with how many ISA's you were familiar with. I was like, "Damn.....I'ma suck!" 😛
Hello! OI just found your channel! I am so happy I did, you do so many things I want to do or am doing. Use Linux a lot but you do so much more than me. Programming in SDL2 on linux mostly but I have other things too. Looking forward to catching up on all your videos.
i snapped up out of my chair with the GYAAAATTT eyes at this LITERALLY .... thank you for putting this in my algorithm sir , i could almost cry
Thanks for this refreshingly amateur video.
I can hardly remember the last time I heard someone speaking about mips and powerpc in the same breath !
Obviously, I like a lot ideas behind open source ISA, hence RISC V.
First time on your channel, I bet I will enjoy watching some more videos.
Subscribed, but the way.
Thank you, apalrd's adventures for the demo. Great job!
Great vid! Enjoyed seeing the C for the morse code, the assembly tour, and kernel recompilation! Those are my jams 😎😎
I recently discovered your channel, and I love it! Keep it up! 👏
This is so interesting and very cool. Thank you for showing this to us. I am definingly going to give this a try.
Have fun!
It's neat to hear about PowerPC again, I'm going to have to look at what modern applications are still using it.
1:14 "The instruction set is not particularly complex" Well, I think that was the whole point!
Wow!!!! I gotta buy one of these. Love your videos man keep it up
Very informative… camera looked better than most mid-rang leaning towards high end commercial security cameras! Good job…
It's $3.50 for the camera module, but I agree it does look pretty good for the price.
FYI they are out of stock as per 10 october 23 ($5) but AliX has them for $10 incl postage
they went out of stock a few hours after the video published, oops
AliX has them for $10 incl postage so it is not that bad
Very cool video! Thanks for doing something different and more involved than the common format of: 1. Talk about the specs, 2. Run blink demo. 😂
Awesome video, I'm going to grab a couple of these soon, thanks!
Nicely done. Very well explained and interesting even though most of the programming stuff was over my head I still gained some insight. Subscribed😊
Glad you enjoyed it!
Very interesting, especially the assembly, i remember arm Assembler from a long while ago.
18:49, i was really hoping those datalines where extra to be able to use it as a usb gadget while also having a few usb devices plugged in.
Well, at least the ethernet is available. Hope mine get shipped soon, made the mistake to also preorder a mars in the same order instead of a separate order.
Thanks for the video. I like RISC-V because I'm not locked in a ARM hold. Went to mentioned links but seems sold out. Will try back on occasion. Liked and subscribed!
I like your shirt for the kernel build portion :)
Definitely a lot of kernel building when you play with RISC-V
The problem with an OS on any SBC other than a Raspberry Pi or a board with an X86 chip, is that good software support is hard to come by.
I bought that board a month ago. I haven't gotten to it yet. So far it seems awesome.
Great video. Could you talk about the power consumption of the risk platform compared to x86 ? Or power consumption/ features of this board?
It's fairly implementation-specific, but this particular board uses about 0.4W in my testing (I think there's a pic with the USB-C power meter at one point). It's not doing much computational work, but it's also using basically no power. I'd need a more powerful SBC to do a better test.
RISC and CISC are general terms in computer science that describe the inherent complexity of the core instructions. --- Intel x86 hardware is nominally based on CISC design concepts, whereas Berkeley RISC-V is a fairly new architecture based on RISC design concepts. --- It's hard to make a real comparison of power consumption without comparably performant hardware, because you really want to measure computational power/watt of electricity consumed.
So cool, can't wait to get my tinkering hands on one!
I just ordered one! Amazing content!
Pretty cool. I heard of this board few weeks ago, and definitively going to grab few to do some testing and development. If you want to extend storage, you can use micro SD card, USB drive, or just mount some file system over network (i.e. NFS or sshfs). This way you could even get rid of cross-compiling and compile directly on board. Crazy.
Yes, 64 MB is just enough RAM to run a full current version Debian/Ubuntu/Fedora server install with about half the RAM free, making it possible to run emacs, gcc and so forth to edit and build small to medium programs. There has recently been a 256 MB version of this board announced, though we don't yet know the price or delivery date. My first Linux machine in the mid 90s (a Pentium Pro 200) had only 32 MB RAM!! Well, that really wasn't enough for serious work and I soon threw another 128 MB in the free sockets, which was ample at the time.
@@BruceHoult I see in their Git repo mention of a new model with 256MB of RAM, plus an extra core (ARM one, as an addition to existing to RISC-V cores; a bit weird, but ok).
@@movax20h yes, I mentioned that new board in the comment you replied to.
@@BruceHoult You are right! Thanks.
Ah, backwards compatibility with the 70s. Where would we be without it??? Well, in the 60s I guess, since everything since then has had it. Hooray for consistency.
I am curious what arcade boards could looks like beig built with RISC-V in mind since arcade boards were RISC architecture until as of late.
Caraca, um dos melhores vídeos que assisti ultimamente no RUclips!
Raspberry Pi was also supposed to be a cheap alternative for hobbyists. Now it's more expensive than some Intel SBCs. Only time will show where it's all going.
I should get looking into this some more, would make like a nice cheap DIY reverse camera for my car.
I thought that the Duo was doomed to obscurity, but it's been amazing to see it get more popularity and support.
Fairly recently I setup X11 forwarding (something it shouldn't do) and used MPV to rickroll Milk-V forum members lol
I'm guessing it's using quite a bit of swap doing x11 applications?
@@apalrdsadventuresyes, for some reason Milk-V includes a whopping 256mb swap partition with the default image, but you need to manually mkswap and swapon it yourself
I love all these dev boards but for embedded systems it would be hard to beat the older chips like Z80 or 6502 (and derivatives) with mature development tools. These chips will be great for edge computing and custom processing. Love the innovation here.
Any help on setting up Visual Studio Code for the MilkV-Duo would be appreciated. Great video! More videos on this part would be super.
The shipping price scared me off for now but I want to test drive RISC-V and will keep an eye out for another group-buy. I appreciate your great taste in keyboards and t-shirts
My Duo cost $14.62 USD including shipping from China across the Pacific to New Zealand.
Hmm, if it has a couple of a/d converters, am wondering now if it has enough pins to control a 3d printer with 5 steppers.
Have been able to do this with a stm32f103c8t6.
we need clx for prosumers and also gpu #eat the document this was an informative look as you included all the arcane and dirty work - setting it up and looking at what is included - riscV will be a force in a few years and challenge arm and x86 - more room for innovation
Wish there was an existing yocto layer, I think buildroot is kind of old school, well ordered some of them anyway to try some stuff, not a few more dev board laying around that is gonna hurt :P
There's also a Milk-V Duo S now and it's fire 🔥
It also has a RISC-V cpu, but also a second CPU with ARM, not 64 MB, but 512 MB of RAM, it has Ethernet and USB ports on the board itself (you don't need to buy another board for it!), but who needs Ethernet, when this board also supports WiFi and Bluetooth (make sure to buy model with it!), it says it also supports audio via GPIO header and it also has more GPIO pins.
I bought Milk-V Duo S (with WiFi) myself, and it's good. It was long to wait for Arduino support in software, but we finally got it! 🎉
I have it and it's great
I still prefer wired Ethernet over wifi though
Better for machine control, because it doesn't have to do calculations, more or less dealing with libraries and no floating point needed.. that can be off loaded to the 'master'. Speed can matter and 2 core, if programed right gives a back-up redundancy in critical implementation.. a worker and a guard that can pickup the worker's implementation and flag operation, but still get communication and operational results if a core freezes. Code smart and know your core kernel functions. I wish that they would do some of the micro controllers in dual core and 16 bit..
thanks for the code, i will be studying it and using it when i get my board
btw c has several functions like isdigit, isalpha, islower and isupper
Perhaps the Debian static libs he used don't include the ctype functions. But if they do, he should use toupper() as well.
yeah I could have used toupper() but my history is on systems which have no library so it escaped me
@@apalrdsadventures the ctype functions are very efficient, but require an array of at least 128 bytes, or a larger sized-type to hold more flag bits; which might be too much for some embedded systems.
It's more of an issue of needing to safety certify all code, so not using any libraries for that reason, not space constraints.
I didn't knew the riscv until I found it mentioned on a recent comment on a Jhon Carmack post about OSS
and I enjoy your videos from which I am learning and thank you for that ;)
Auto sub cause who would not love a nerdy good stuff like this.
This is so cool! I would like to see it run some CLI applications though.
Wow, with such a nice interface this could be serious competition for the RPi zero for small projects. I'm curious about the power consumption, it's probably quite low.
Board alone over USB-C measured around 0.5W max, adding the breakout board with USB+Ethernet active (but no USB devices) bumped it up to about 0.7W. Not really doing anything though, just sitting there with ssh open.
It's kind of a cross between the RPi Zero and Pico. The 1 GHz C906 Linux core performs about 15% better than the older Arm core in the original Zero, plus you've got a 2nd 700 MHz 64 bit RISC-V core for doing bare metal / RTOS things on like a Pico (but vastly faster)
Thx for the introduction! Great video!
1:08 not language… instruction set and register types…
I think it would be confusing to use the word language because multiple languages can run on a cpu.
Great video!
Voice volume is good now. Thanks.
5:14 that a frequency generator?
It's an analog audio frequency generator, yes
Nice use of cloest space, I'm diggin it. Good vidya thanks!
I don't know most of the terms, but I really liked the video!
Nice video. I'm in the process of trying to use an ESP32 as an wifi card for the milk-v duo via SDIO with esp-hostef.
Good timing have 2 of these on order with breakout and camera
I have two questions:
Have you had a look at the RP2350 yet?
Is it possible to make a reasonable desktop by clustering a bunch of tiny processors?
Cool video. I recreated the string C library in MIPS assembly back in college. Does anyone know of a good project to get into RISC-V assembly?
9:28 , line 195 instead of string[0], it could be just *string 🙂
Cool little chip, I think I will use it in future projects!
Subbed. Awesome explanation and walkthrough.
Finally getting around to ordering some to play with!
I did not understand most of this video but I still enjoyed it thank you 😂
cool, is possible to get the cam stream via RTSP?
The example code does that, although the example app doesn't provide much in source form
@@apalrdsadventures thanks, do you think it's stable or it overheats after a while?
Can it run Lem Editor? Ncurses of course.
As a test, to write a Machin-Like formula to calculate Pi to 100 and 1000 digits, how long would it take? on this MilkV board?
Accessing the GPIO pins through the file system is absolutely fantastic. Does anybody know whether that's also possible on the Raspbery Pi?
It's a standard interface in the Linux kernel, so all SBCs which properly implement GPIO / IO drivers in the kernel should have that available. Of course not all do.